This ensures commands follow security, clarity, and effectiveness standards.
- Read best practices from the creating-commands skill and its reference files
- Read the command file at
$ARGUMENTS
- Evaluate against all areas: YAML, arguments, dynamic context, tool restrictions, content
- Report findings using the severity-based output format
- YAML compliance (description quality, allowed-tools configuration, argument-hint)
- Argument usage ($ARGUMENTS, positional arguments $1/$2/$3)
- Dynamic context loading (proper use of exclamation mark + backtick syntax)
- Tool restrictions (security, appropriate scope)
- File references (@ prefix usage)
- Clarity and specificity of prompt
- Multi-step workflow structure
- Security patterns (preventing destructive operations, data exfiltration)
- Locate the creating-commands skill and its references:
- Use Glob:
.claude/plugins/cache/**/creating-commands/SKILL.md
- Then read the SKILL.md, and its
references/arguments.md, references/patterns.md, references/tool-restrictions.md
- Handle edge cases:
- If reference files are missing or unreadable, note in findings under "Configuration Issues" and proceed with available content
- If YAML frontmatter is malformed, flag as critical issue
- If command references external files that don't exist, flag as critical issue and recommend fixing broken references
- If command is <10 lines, note as "simple command" in context and evaluate accordingly
- Read the command file at
$ARGUMENTS
- Evaluate against best practices from steps 1-2
Use ACTUAL patterns from references, not memory.
- description: Clear, specific description of what the command does. No vague terms like "helps with" or "processes data". Should describe the action clearly.
- allowed-tools: Present when appropriate for security (git commands, thinking-only, read-only analysis). Properly formatted (array or bash patterns).
- argument-hint: Present when command uses arguments. Clear indication of expected arguments format.
Simple commands (single action, no state):
- Dynamic context may not be needed - don't flag its absence
- Minimal tool restrictions may be appropriate
- Brief prompts are fine
State-dependent commands (git, environment-aware):
- Missing dynamic context is a real issue
- Tool restrictions become important
Security-sensitive commands (git push, deployment, file modification):
- Missing tool restrictions is critical
- Should have specific patterns, not broad access
Delegation commands (invoke subagents):
allowed-tools: Task is appropriate
- Success criteria can focus on invocation
- Pre-validation may be redundant if subagent validates
Always explain WHY something matters for this specific command, not just that it violates a rule.
## Audit Results: [command-name]
### Assessment
[1-2 sentence overall assessment: Is this command fit for purpose? What's the main takeaway?]
### Critical Issues
Issues that hurt effectiveness or security:
1. **[Issue category]** (file:line)
- Current: [What exists now]
- Should be: [What it should be]
- Why it matters: [Specific impact on this command's effectiveness/security]
- Fix: [Specific action to take]
2. ...
(If none: "No critical issues found.")
### Recommendations
Improvements that would make this command better:
1. **[Issue category]** (file:line)
- Current: [What exists now]
- Recommendation: [What to change]
- Benefit: [How this improves the command]
2. ...
(If none: "No recommendations - command follows best practices well.")
### Strengths
What's working well (keep these):
- [Specific strength with location]
- ...
### Quick Fixes
Minor issues easily resolved:
1. [Issue] at file:line → [One-line fix]
2. ...
### Context
- Command type: [simple/state-dependent/security-sensitive/delegation]
- Line count: [number]
- Security profile: [none/low/medium/high - based on what the command does]
- Estimated effort to address issues: [low/medium/high]
Completeness checks:
Accuracy checks:
Quality checks:
Only present findings after all checks pass.
- All reference documentation files have been read and incorporated
- All evaluation areas assessed (YAML, Arguments, Dynamic Context, Tool Restrictions, Content)
- Contextual judgment applied based on command type and purpose
- Findings categorized by severity (Critical, Recommendations, Quick Fixes)
- At least 3 specific findings provided with file:line locations (or explicit note that command is well-formed)
- Assessment provides clear, actionable guidance
- Strengths documented (what's working well)
- Context section includes command type and security profile
- Next-step options presented to reduce user cognitive load
- Implement all fixes automatically
- Show detailed examples for specific issues
- Focus on critical issues only
- Other
1---2name: auditing-commands3description: ALWAYS invoke this skill when auditing, reviewing, or evaluating slash command .md files. NEVER audit slash commands without this skill.4---56<objective>7Evaluate slash command .md files against best practices for structure, YAML configuration, argument usage, dynamic context, tool restrictions, and effectiveness. Then provide actionable findings with contextual judgment, not arbitrary scores.89This ensures commands follow security, clarity, and effectiveness standards.10</objective>1112<quick_start>13141. Read best practices from the creating-commands skill and its reference files152. Read the command file at `$ARGUMENTS`163. Evaluate against all areas: YAML, arguments, dynamic context, tool restrictions, content174. Report findings using the severity-based output format1819</quick_start>2021<constraints>22- NEVER modify files during audit - ONLY analyze and report findings23- MUST read all reference documentation before evaluating24- ALWAYS provide file:line locations for every finding25- DO NOT generate fixes unless explicitly requested by the user26- NEVER make assumptions about command intent - flag ambiguities as findings27- MUST complete all evaluation areas (YAML, Arguments, Dynamic Context, Tool Restrictions, Content)28- ALWAYS apply contextual judgment based on command purpose and complexity2930</constraints>3132<focus_areas>33During audits, prioritize evaluation of:3435- YAML compliance (description quality, allowed-tools configuration, argument-hint)36- Argument usage ($ARGUMENTS, positional arguments $1/$2/$3)37- Dynamic context loading (proper use of exclamation mark + backtick syntax)38- Tool restrictions (security, appropriate scope)39- File references (@ prefix usage)40- Clarity and specificity of prompt41- Multi-step workflow structure42- Security patterns (preventing destructive operations, data exfiltration)4344</focus_areas>4546<critical_workflow>47**MANDATORY**: Read best practices FIRST, before auditing:48491. Locate the creating-commands skill and its references:50 - Use Glob: `.claude/plugins/cache/**/creating-commands/SKILL.md`51 - Then read the SKILL.md, and its `references/arguments.md`, `references/patterns.md`, `references/tool-restrictions.md`522. Handle edge cases:53 - If reference files are missing or unreadable, note in findings under "Configuration Issues" and proceed with available content54 - If YAML frontmatter is malformed, flag as critical issue55 - If command references external files that don't exist, flag as critical issue and recommend fixing broken references56 - If command is <10 lines, note as "simple command" in context and evaluate accordingly573. Read the command file at `$ARGUMENTS`584. Evaluate against best practices from steps 1-25960**Use ACTUAL patterns from references, not memory.**61</critical_workflow>6263<evaluation_areas>64<area name="yaml_configuration">65Check for:6667- **description**: Clear, specific description of what the command does. No vague terms like "helps with" or "processes data". Should describe the action clearly.68- **allowed-tools**: Present when appropriate for security (git commands, thinking-only, read-only analysis). Properly formatted (array or bash patterns).69- **argument-hint**: Present when command uses arguments. Clear indication of expected arguments format.7071</area>7273<area name="arguments">74Check for:75- **Appropriate argument type**: Uses $ARGUMENTS for simple pass-through, positional ($1, $2, $3) for structured input76- **Argument integration**: Arguments properly integrated into prompt (e.g., "Fix issue #$ARGUMENTS", "@$ARGUMENTS")77- **Handling empty arguments**: Command works with or without arguments when appropriate, or clearly requires arguments7879</area>8081<area name="dynamic_context">82Check for:83- **Context loading**: Uses exclamation mark + backtick syntax for state-dependent tasks (git status, environment info)84- **Context relevance**: Loaded context is directly relevant to command purpose8586</area>8788<area name="tool_restrictions">89Check for:90- **Security appropriateness**: Restricts tools for security-sensitive operations (git-only, read-only, thinking-only)91- **Restriction specificity**: Uses specific patterns (Bash(git add:*)) rather than overly broad access9293</area>9495<area name="content_quality">96Check for:97- **Clarity**: Prompt is clear, direct, specific98- **Structure**: Multi-step workflows properly structured with numbered steps or sections99- **File references**: Uses @ prefix for file references when appropriate100101</area>102103<area name="anti_patterns">104Flag these issues:105- Vague descriptions ("helps with", "processes data")106- Missing tool restrictions for security-sensitive operations (git, deployment)107- No dynamic context for state-dependent tasks (git commands without git status)108- Poor argument integration (arguments not used or used incorrectly)109- Overly complex commands (should be broken into multiple commands)110- Missing description field111- Unclear instructions without structure112113</area>114</evaluation_areas>115116<contextual_judgment>117Apply judgment based on command purpose and complexity:118119**Simple commands** (single action, no state):120121- Dynamic context may not be needed - don't flag its absence122- Minimal tool restrictions may be appropriate123- Brief prompts are fine124125**State-dependent commands** (git, environment-aware):126127- Missing dynamic context is a real issue128- Tool restrictions become important129130**Security-sensitive commands** (git push, deployment, file modification):131132- Missing tool restrictions is critical133- Should have specific patterns, not broad access134135**Delegation commands** (invoke subagents):136137- `allowed-tools: Task` is appropriate138- Success criteria can focus on invocation139- Pre-validation may be redundant if subagent validates140141Always explain WHY something matters for this specific command, not just that it violates a rule.142</contextual_judgment>143144<output_format>145Audit reports use severity-based findings, not scores. Generate output using this markdown template:146147```markdown148## Audit Results: [command-name]149150### Assessment151152[1-2 sentence overall assessment: Is this command fit for purpose? What's the main takeaway?]153154### Critical Issues155156Issues that hurt effectiveness or security:1571581. **[Issue category]** (file:line)159 - Current: [What exists now]160 - Should be: [What it should be]161 - Why it matters: [Specific impact on this command's effectiveness/security]162 - Fix: [Specific action to take]1631642. ...165166(If none: "No critical issues found.")167168### Recommendations169170Improvements that would make this command better:1711721. **[Issue category]** (file:line)173 - Current: [What exists now]174 - Recommendation: [What to change]175 - Benefit: [How this improves the command]1761772. ...178179(If none: "No recommendations - command follows best practices well.")180181### Strengths182183What's working well (keep these):184185- [Specific strength with location]186- ...187188### Quick Fixes189190Minor issues easily resolved:1911921. [Issue] at file:line → [One-line fix]1932. ...194195### Context196197- Command type: [simple/state-dependent/security-sensitive/delegation]198- Line count: [number]199- Security profile: [none/low/medium/high - based on what the command does]200- Estimated effort to address issues: [low/medium/high]201```202203</output_format>204205<validation>206Before presenting audit findings, verify:207208**Completeness checks**:209210- [ ] All evaluation areas assessed (YAML, Arguments, Dynamic Context, Tool Restrictions, Content)211- [ ] Findings have file:line locations212- [ ] Assessment section provides clear summary213- [ ] Strengths identified214215**Accuracy checks**:216217- [ ] All line numbers verified against actual file218- [ ] Recommendations match command complexity level219- [ ] Context appropriately considered (simple vs state-dependent vs security-sensitive)220221**Quality checks**:222223- [ ] Findings are specific and actionable224- [ ] "Why it matters" explains impact for THIS command225- [ ] Remediation steps are clear226- [ ] No arbitrary rules applied without contextual justification227228Only present findings after all checks pass.229</validation>230231<success_criteria>232Task is complete when:233234- All reference documentation files have been read and incorporated235- All evaluation areas assessed (YAML, Arguments, Dynamic Context, Tool Restrictions, Content)236- Contextual judgment applied based on command type and purpose237- Findings categorized by severity (Critical, Recommendations, Quick Fixes)238- At least 3 specific findings provided with file:line locations (or explicit note that command is well-formed)239- Assessment provides clear, actionable guidance240- Strengths documented (what's working well)241- Context section includes command type and security profile242- Next-step options presented to reduce user cognitive load243244</success_criteria>245246<final_step>247After presenting findings, offer:2482491. Implement all fixes automatically2502. Show detailed examples for specific issues2513. Focus on critical issues only2524. Other253254</final_step>