6.5 KiB
name, description, usage, argument-hint, examples, allowed-tools, model
| name | description | usage | argument-hint | examples | allowed-tools | model | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| auto | Auto-select and execute appropriate template based on user input analysis | /gemini:mode:auto "description of task or problem" | description of what you want to analyze or plan |
|
Bash(ls:*), Bash(gemini:*) | sonnet |
Auto Template Selection (/gemini:mode:auto)
Overview
Automatically analyzes user input to select the most appropriate template and execute Gemini CLI with optimal context.
Directory Analysis Rule: Intelligent detection of directory context intent - automatically navigate to target directory when analysis scope is directory-specific.
--cd Parameter Rule: When --cd parameter is provided, always execute cd [path] && gemini --all-files -p "prompt" to ensure analysis occurs in the specified directory context.
Process: List Templates → Analyze Input → Select Template → Execute with Context
Usage
Auto-Detection Examples
# Bug-related keywords → selects bug-fix.md
/gemini:mode:auto "React component not rendering after state update"
# Planning keywords → selects plan.md
/gemini:mode:auto "design microservices architecture for user management"
# Error/crash keywords → selects bug-fix.md
/gemini:mode:auto "API timeout errors in production environment"
# Architecture/design keywords → selects plan.md
/gemini:mode:auto "implement real-time chat system architecture"
# With directory context
/gemini:mode:auto "authentication issues" --cd "src/auth"
Template Selection Logic
Dynamic Template Discovery
Templates auto-discovered from: ~/.claude/prompt-templates/
Templates are dynamically read from the directory, including their metadata (name, description, keywords) from the YAML frontmatter.
Template Metadata Parsing
Each template contains YAML frontmatter with:
---
name: template-name
description: Template purpose description
category: template-category
keywords: [keyword1, keyword2, keyword3]
---
Auto-selection based on:
- Template keywords: Matches user input against template-defined keywords
- Template name: Direct name matching (e.g., "bug-fix" matches bug-related queries)
- Template description: Semantic matching against description text
Command Execution
Step 1: Template Discovery
# Dynamically discover all templates and extract YAML frontmatter
cd ~/.claude/prompt-templates && echo "Discovering templates..." && for template_file in *.md; do echo "=== $template_file ==="; head -6 "$template_file" 2>/dev/null || echo "Error reading $template_file"; echo; done
Step 2: Dynamic Template Analysis & Selection
FUNCTION select_template(user_input):
templates = list_directory("~/.claude/prompt-templates/")
template_metadata = {}
# Parse all templates for metadata
FOR each template_file in templates:
content = read_file(template_file)
yaml_front = extract_yaml_frontmatter(content)
template_metadata[template_file] = {
"name": yaml_front.name,
"description": yaml_front.description,
"keywords": yaml_front.keywords || [],
"category": yaml_front.category || "general"
}
input_lower = user_input.toLowerCase()
best_match = null
highest_score = 0
# Score each template against user input
FOR each template, metadata in template_metadata:
score = 0
# Keyword matching (highest weight)
FOR each keyword in metadata.keywords:
IF input_lower.contains(keyword.toLowerCase()):
score += 3
# Template name matching
IF input_lower.contains(metadata.name.toLowerCase()):
score += 2
# Description semantic matching
FOR each word in metadata.description.split():
IF input_lower.contains(word.toLowerCase()) AND word.length > 3:
score += 1
IF score > highest_score:
highest_score = score
best_match = template
# Default to first template if no matches
RETURN best_match || templates[0]
END FUNCTION
Step 3: Execute with Dynamically Selected Template
# Basic execution with selected template
gemini --all-files -p "$(cat ~/.claude/prompt-templates/[selected_template])
User Input: [user_input]"
# With --cd parameter
cd [specified_directory] && gemini --all-files -p "$(cat ~/.claude/prompt-templates/[selected_template])
User Input: [user_input]"
Template selection is completely dynamic - any new templates added to the directory will be automatically discovered and available for selection based on their YAML frontmatter.
Manual Template Override
# Force specific template
/gemini:mode:auto "user authentication" --template bug-fix.md
/gemini:mode:auto "fix login issues" --template plan.md
Dynamic Template Listing
# List all dynamically discovered templates
/gemini:mode:auto --list-templates
# Output:
# Dynamically discovered templates in ~/.claude/prompt-templates/:
# - bug-fix.md (用于定位bug并提供修改建议) [Keywords: 规划, bug, 修改方案]
# - plan.md (软件架构规划和技术实现计划分析模板) [Keywords: 规划, 架构, 实现计划, 技术设计, 修改方案]
# - [any-new-template].md (Auto-discovered description) [Keywords: auto-parsed]
Complete template discovery - new templates are automatically detected and their metadata parsed from YAML frontmatter.
Auto-Selection Examples
Dynamic Selection Examples
# Selection based on template keywords and metadata
"login system crashes on startup" → Matches template with keywords: [bug, 修改方案]
"design user dashboard with analytics" → Matches template with keywords: [规划, 架构, 技术设计]
"database timeout errors in production" → Matches template with keywords: [bug, 修改方案]
"implement real-time notification system" → Matches template with keywords: [规划, 实现计划, 技术设计]
# Any new templates added will be automatically matched
"[user input]" → Dynamically matches against all template keywords and descriptions
Session Integration
saves to:
.workflow/WFS-[topic]/.chat/auto-[template]-[timestamp].md
Session includes:
- Original user input
- Template selection reasoning
- Template used
- Complete analysis results
This command streamlines template usage by automatically detecting user intent and selecting the optimal template for analysis.