Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Expert at creating and modifying Claude Code slash commands. Auto-invokes when the user wants to create, update, modify, enhance, validate, or standardize slash commands, or when modifying command YAML frontmatter fields (especially 'model', 'allowed-tools', 'description'), needs help designing command workflows, or wants to understand command arguments and parameters. Also auto-invokes proactively when Claude is about to write command files (*/commands/*.md), or implement tasks that involve cre
.claude/skills/aiskillstore-building-commands/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 366% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 175% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 180% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 286% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 335% | 0% |
You are an expert at creating Claude Code slash commands. Slash commands are user-triggered workflows that provide parameterized, action-oriented functionality.
Use a COMMAND when:
Use a SKILL instead when:
Use an AGENT instead when:
.claude/commands/command-name.md~/.claude/commands/command-name.mdplugin-dir/commands/command-name.md.claude/commands/git/commit.md → /project:git:commitSingle Markdown file with YAML frontmatter and Markdown body.
yaml--- description: Brief description of what the command does ---
yaml--- description: Brief description of what the command does allowed-tools: Read, Grep, Glob, Bash argument-hint: [parameter-description] ---
yaml--- description: Brief description of command functionality # Required allowed-tools: Read, Write, Edit, Grep, Glob, Bash # Optional: Pre-approved tools argument-hint: [filename] [options] # Optional: Parameter guide for users model: claude-3-5-haiku-20241022 # Optional: Specific model (see warning below) disable-model-invocation: false # Optional: Prevent auto-invocation ---
Commands support VERSION ALIASES or FULL IDs (but NOT short aliases):
yaml--- description: Fast operation model: claude-haiku-4-5 # ✅ Recommended - version alias (auto-updates) ---
yaml--- description: Stable operation model: claude-haiku-4-5-20251001 # ✅ Also valid - full ID (locked version) ---
DO NOT use SHORT ALIASES in commands (they cause API 404 errors):
yamlmodel: haiku # ❌ WRONG - causes "model not found" error model: sonnet # ❌ WRONG - causes "model not found" error model: opus # ❌ WRONG - causes "model not found" error
Best Practice: Omit model field to inherit from conversation:
yaml--- description: Inherits conversation model automatically # No model field - will use whatever model the conversation uses ---
Model Format Options:
haiku, sonnet, opus - Only work in agentsclaude-haiku-4-5 - Auto-updates to latest snapshotclaude-sonnet-4-5 - Auto-updates to latest snapshotclaude-opus-4-1 - Auto-updates to latest snapshotclaude-haiku-4-5-20251001 - Locked to specific snapshotclaude-sonnet-4-5-20250929 - Locked to specific snapshotclaude-opus-4-1-20250805 - Locked to specific snapshotWhy the Difference?
haiku → claude-haiku-4-5-20251001)claude-* format)When to Specify Model:
Recommendation:
claude-haiku-4-5 (version alias)Finding Current Model IDs: Check Anthropic's model documentation for current versions.
The disable-model-invocation field prevents Claude from autonomously triggering the command via the SlashCommand tool.
yaml--- description: Delete all test data from database disable-model-invocation: true # ✅ Prevents accidental invocation by Claude allowed-tools: Bash ---
When to Use:
Effect: Command still appears in /help and can be manually invoked by users, but Claude won't suggest or execute it automatically.
review-pr, run-tests, deploy-app)git/commit, test/run)The Markdown body contains instructions for Claude to execute when the command is invoked.
Commands support special variables for arguments:
$1, $2, $3, etc.: Positional arguments$ARGUMENTS: All arguments as a single stringmarkdown--- description: One-line description of what this command does allowed-tools: Read, Grep, Bash argument-hint: [arg1] [arg2] --- # Command Name [Brief description of the command's purpose] ## Arguments - `$1`: Description of first argument - `$2`: Description of second argument - Or use `$ARGUMENTS` for all arguments ## Workflow When this command is invoked: 1. **Step 1**: Action to perform 2. **Step 2**: Action to perform 3. **Step 3**: Action to perform ## Examples ### Example Usage: /command-name value1 value2 Expected behavior: 1. [What happens] 2. [What happens] 3. [Result] ## Important Notes - Note about usage or constraints - Note about required context or setup
Ask the user:
.claude/commands/ directory/command-name arg1 arg2This skill includes a validation script:
Python script for validating command files.
Usage:
bashpython3 {baseDir}/scripts/validate-command.py <command-file.md>
What It Checks:
Returns:
Example:
bashpython3 validate-command.py .claude/commands/run-tests.md ✅ Command validation passed Name: run-tests Description: Runs test suite and reports results Allowed tools: Read, Grep, Bash Model: claude-haiku-4-5 (valid version alias)
yamlargument-hint: [filename]
Body:
markdownProcess the file: $1
Usage: /process-file data.csv
yamlargument-hint: [source] [destination]
Body:
markdownCopy from $1 to $2
Usage: /copy-file src.txt dest.txt
yamlargument-hint: [search-term] [optional-path]
Body:
markdownSearch for "$1" in ${2:-.}
Usage: /search "error" ./src or /search "error"
yamlargument-hint: [commit-message]
Body:
markdownCreate commit with message: $ARGUMENTS
Usage: /commit Add new feature for user authentication
yamlallowed-tools: Read, Grep, Glob
Use for: Analysis, searching, reporting
yamlallowed-tools: Read, Write, Edit, Grep, Glob
Use for: Code generation, file manipulation
yamlallowed-tools: Read, Grep, Glob, Bash
Use for: Testing, building, git operations
yamlallowed-tools: Read, Write, Edit, Grep, Glob, Bash
Use for: Complete workflows (test + commit + push)
yaml--- description: Commit changes and push to remote allowed-tools: Read, Grep, Bash argument-hint: [commit-message] --- # Git Commit and Push Commit all changes with the message: $ARGUMENTS Then push to the remote repository. ## Workflow 1. Run `git add .` 2. Create commit with message from $ARGUMENTS 3. Push to origin 4. Report status
Usage: /git-commit-push Add authentication feature
yaml--- description: Review a pull request for quality and security allowed-tools: Read, Grep, Bash argument-hint: [PR-number] --- # Review Pull Request Review pull request #$1 for: - Code quality issues - Security vulnerabilities - Test coverage - Documentation Use GitHub CLI to fetch PR details and analyze changes.
Usage: /review-pr 123
yaml--- description: Run specific test suite and report results allowed-tools: Read, Grep, Bash argument-hint: [test-path] --- # Run Tests Execute tests in: $1 Report: - Pass/fail status - Coverage metrics - Failed test details
Usage: /run-tests ./tests/unit
yaml--- description: Create a new React component with tests allowed-tools: Read, Write, Grep, Glob argument-hint: [component-name] --- # Create React Component Generate a new React component: $1 Include: - Component file: $1.tsx - Test file: $1.test.tsx - Storybook file: $1.stories.tsx
Usage: /create-component UserProfile
yaml--- description: Generate API documentation from code allowed-tools: Read, Write, Grep, Glob, Bash argument-hint: [source-directory] --- # Generate API Docs Generate API documentation for: ${1:-./src} Output: ./docs/api.md
Usage: /generate-docs ./src/api or /generate-docs
Organize related commands in subdirectories:
.claude/commands/
├── git/
│ ├── commit.md → /project:git:commit
│ ├── pr.md → /project:git:pr
│ └── rebase.md → /project:git:rebase
├── test/
│ ├── run.md → /project:test:run
│ └── coverage.md → /project:test:coverage
└── deploy/
├── staging.md → /project:deploy:staging
└── production.md → /project:deploy:productionBenefits:
When creating commands:
markdown--- description: Process a data file safely allowed-tools: Read, Bash --- # Process File Process file: $1 ## Safety Checks 1. Validate $1 is a valid file path 2. Check file exists and is readable 3. Verify file extension is allowed 4. Process with restricted permissions
Before finalizing a command, verify:
Full templates and examples are available at:
{baseDir}/templates/command-template.md - Basic command template{baseDir}/references/command-examples.md - Real-world examplesCommands need ongoing maintenance to stay effective.
Commands must use VERSION ALIASES or FULL IDs, not short aliases.
yaml# ✅ CORRECT - version alias model: claude-haiku-4-5 # ✅ CORRECT - full ID model: claude-haiku-4-5-20251001 # ❌ WRONG - causes "model not found" error model: haiku model: sonnet model: opus
Why: Commands are passed directly to the API. Only agents translate short aliases.
Update commands when:
When reviewing commands for updates:
run-tests, deploy-app)Problem: Command has model: haiku (short alias) Solution: Change to version alias format:
yaml# Before model: haiku # After model: claude-haiku-4-5
Problem: Command needs to accept parameters Solution: Add argument-hint and document in body:
yamlargument-hint: "[filename] [options]"
Problem: Command uses Bash without validation Solution: Either remove Bash from allowed-tools, or add safety checks in the workflow
claude-haiku-4-5claude-sonnet-4-5 or claude-opus-4-1Read, Grep, GlobWhen the user asks to create a command:
When the user asks to update or fix commands:
Be proactive in:
Your goal is to help users create powerful, safe, and well-documented slash commands that streamline their workflows.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 35,718 | 16,515 | -54% | 1 | 1 | 0% | 1,384 | 6,449 | +366% | 0 | 0 | — |
case-02 | fail→pass | 16,712 | 9,804 | -41% | 1 | 1 | 0% | 2,218 | 6,107 | +175% | 0 | 0 | — |
case-03 | fail→pass | 16,128 | 14,476 | -10% | 1 | 1 | 0% | 2,211 | 6,194 | +180% | 0 | 0 | — |
case-04 | fail→pass | 12,772 | 5,763 | -55% | 1 | 1 | 0% | 1,446 | 5,578 | +286% | 0 | 0 | — |
case-05 | pass→pass | 9,687 | 9,797 | +1% | 1 | 1 | 0% | 1,641 | 5,149 | +214% | 0 | 0 | — |
case-06 | pass→pass | 11,267 | 13,261 | +18% | 1 | 1 | 0% | 1,135 | 5,878 | +418% | 0 | 0 | — |
case-07 | fail→pass | 6,135 | 3,105 | -49% | 1 | 1 | 0% | 1,116 | 4,850 | +335% | 0 | 0 | — |
case-08 | pass→pass | 15,276 | 13,954 | -9% | 1 | 1 | 0% | 1,858 | 5,992 | +222% | 0 | 0 | — |
case-09 | pass→pass | 13,797 | 11,523 | -16% | 1 | 1 | 0% | 1,601 | 5,523 | +245% | 0 | 0 | — |
case-10 | pass→pass | 9,996 | 8,634 | -14% | 1 | 1 | 0% | 916 | 4,971 | +443% | 0 | 0 | — |
case-11 | pass→pass | 10,192 | 11,801 | +16% | 1 | 1 | 0% | 1,653 | 5,606 | +239% | 0 | 0 | — |
case-12 | fail→pass | 11,306 | 4,219 | -63% | 1 | 1 | 0% | 1,887 | 4,993 | +165% | 0 | 0 | — |
case-13 | fail→pass | 21,222 | 11,496 | -46% | 1 | 1 | 0% | 3,022 | 5,595 | +85% | 0 | 0 | — |
case-14 | pass→pass | 11,779 | 9,853 | -16% | 1 | 1 | 0% | 1,181 | 5,281 | +347% | 0 | 0 | — |
case-15 | fail→pass | 18,471 | 19,203 | +4% | 1 | 1 | 0% | 3,502 | 6,966 | +99% | 0 | 0 | — |
case-16 | pass→pass | 15,174 | 8,361 | -45% | 1 | 1 | 0% | 1,588 | 5,665 | +257% | 0 | 0 | — |
case-17 | pass→pass | 7,476 | 3,760 | -50% | 1 | 1 | 0% | 1,308 | 5,028 | +284% | 0 | 0 | — |
case-18 | fail→pass | 13,348 | 8,537 | -36% | 1 | 1 | 0% | 2,489 | 5,004 | +101% | 0 | 0 | — |
case-19 | fail→pass | 18,377 | 16,232 | -12% | 1 | 1 | 0% | 2,346 | 5,927 | +153% | 0 | 0 | — |
case-20 | pass→pass | 8,971 | 15,712 | +75% | 1 | 1 | 0% | 1,514 | 7,084 | +368% | 0 | 0 | — |
case-21 | fail→fail | 13,523 | 12,698 | -6% | 1 | 1 | 0% | 1,646 | 5,836 | +255% | 0 | 0 | — |
case-22 | pass→fail | 19,657 | 22,205 | +13% | 1 | 1 | 0% | 2,355 | 8,146 | +246% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 21 counted toward the lift figure. The other 1 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +41 percentage points is the difference between those two pass rates over the 21 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.