Agent skill
command-authoring
Guide for authoring slash commands. Use when creating, building, reviewing, or improving commands, learning command best practices, or deciding when to use commands vs skills.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/command-authoring
SKILL.md
Reference Files
Detailed command authoring guidance:
- command-design-patterns.md - Four design patterns with complete examples and when to use each
- command-creation-process.md - Step-by-step command creation workflow (7 steps)
- command-examples.md - Real command examples with analysis and best practices
About Commands
Commands are user-invoked shortcuts that provide explicit control over when capabilities are used. They're typed as /command-name.
Key characteristics:
- User-invoked - Typed explicitly as
/command-name(not auto-triggered) - Simple - Focused instructions or actions rather than complex logic
- Focused - Single, clear purpose
- Explicit - User controls timing of invocation
- Discoverable - Shown in
/helpoutput
When to use commands:
- User wants explicit shortcut for frequent task
- Simple, focused instructions
- User should control timing
- Convenience wrapper for common operations
Core Philosophy
Commands Should Be Simple
Golden rule: Commands provide focused instructions, they don't implement complex logic.
Good command (simple and focused):
---
description: Run comprehensive code quality checks
---
# check-quality
Run linting, type checking, and tests on the codebase.
!npm run lint && npm run type-check && npm test
Bad command (complex logic):
# bad-example
# DON'T DO THIS - complex logic in command
First analyze all files, then determine which linters to run, then parse results,
then generate a custom report format, then send notifications...
[50 lines of implementation details]
Why keep it simple:
- Easier to maintain
- Clear purpose
- Less prone to errors
- Follows single responsibility principle
Commands Are Explicit
Unlike skills (which auto-trigger), commands require user action.
Use commands when:
- User wants control over timing
- Action shouldn't happen automatically
- Frequently-used prompt that deserves shortcut
- Explicit workflow trigger
Use skills when:
- Should auto-trigger based on context
- User doesn't need to remember to invoke it
- Complex domain knowledge that enhances conversation
Command Structure
Required Elements
Every command must have:
- description field (in frontmatter) - Required for
/helpand model invocation - Command name heading (# command-name)
- Clear purpose - What the command does
Optional Elements
Depending on complexity:
- Usage section - How to invoke, with/without arguments
- What It Does - Detailed explanation
- Examples - Sample invocations
- Use Cases - When to use the command
- Output - What to expect
Two Patterns
Pattern 1: Simple Command (6-10 lines)
- Just frontmatter + brief description
- Minimal documentation
- Clear, focused instructions
Pattern 2: Documented Command (30-80 lines)
- Full usage instructions
- Examples and use cases
- Detailed explanation of what happens
- What It Does section
Choose based on:
- Complexity of the operation
- Whether arguments need explanation
- How often users will reference it
See command-design-patterns.md for detailed design patterns and examples.
See command-creation-process.md for step-by-step creation workflow.
Commands vs Skills Decision Guide
📄 See when-to-use-what.md for complete decision guide including agents and output-styles (shared)
Quick guide:
Use a Command when:
- User wants explicit control over timing
- Action should be deliberate, not automatic
- Frequently-used prompt deserves shortcut
- User-initiated workflow
- Simple wrapper around agent/skill
Use a Skill when:
- AI should auto-discover capability
- Complex domain knowledge
- Should trigger on user queries automatically
- Needs progressive disclosure with references/
- Automatic workflow assistance
Common Mistakes to Avoid
- Complex logic in command - Commands should provide focused instructions, not implement complex workflows
- Missing description - Frontmatter description is required
- Unclear purpose - Command should have single, clear focus
- Vague purpose - Be specific about what the command does
- Too many arguments - Keep it simple, 0-2 args typically
- Not testing with /help - Verify command appears correctly
- Poor naming - Use descriptive, action-oriented names
See command-examples.md for complete examples with analysis.
Tips for Success
- Keep commands under 50 lines unless truly necessary
- Stay focused - one clear purpose per command
- Test with
/helpto verify display - Use descriptive names - action verbs work well
- Make purpose immediately clear - no guessing
- Optional arguments are better - provide defaults
- Start simple - can always add documentation later
Related Skills
This skill is part of the authoring skill family:
- author-agent - Guide for creating agents
- author-skill - Guide for creating skills
- author-command - Guide for creating commands (this skill)
- author-output-style - Guide for creating output styles
For validation, use the corresponding audit skills:
- audit-command - Validate command configurations
- audit-coordinator - Comprehensive multi-faceted audits
Quick Start Checklist
Creating a new command:
- Identify the purpose and operation
- Choose descriptive name (kebab-case)
- Write clear description (50-150 chars)
- Decide: simple (6-10 lines) or documented (30-80 lines)?
- Create file at
~/.claude/commands/command-name.md - Add required frontmatter with description
- Write focused instructions
- Test with
/helpand invocation - Verify arguments work correctly (if any)
Reference to Standards
For detailed standards and validation:
- Naming conventions - Use kebab-case for command names
- Frontmatter requirements - description field is required
- File organization -
~/.claude/commands/command-name.md
See audit-coordinator skill for comprehensive standards.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?