Command Creator This skill guides the creation of Claude Code slash commands - reusable workflows that can be invoked with /command-name in Claude Code conversations. About Slash Commands Slash commands are markdown files stored in .claude/commands/ (project-level) or ~/.claude/commands/ (global/user-level) that get expanded into prompts when invoked. They're ideal for: Repetitive workflows (code review, PR submission, CI fixing) Multi-step processes that need consistency Agent delegation patterns Project-specific automation When to Use This Skill Invoke this skill when users: Ask to "create a command" or "make a slash command" Want to automate a repetitive workflow Need to document a consistent process for reuse Say "I keep doing X, can we make a command for it?" Want to create project-specific or global commands Bundled Resources This skill includes reference documentation for detailed guidance: references/patterns.md - Command patterns (workflow automation, iterative fixing, agent delegation, simple execution) references/examples.md - Real command examples with full source (submit-stack, ensure-ci, create-implementation-plan) references/best-practices.md - Quality checklist, common pitfalls, writing guidelines, template structure Load these references as needed when creating commands to understand patterns, see examples, or ensure quality. Command Structure Overview Every slash command is a markdown file with:
description : Brief description shown in /help (required) argument-hint : <placeholder
(optional , if command takes arguments)
Command Title
[Detailed instructions for the agent to execute autonomously]
Command Creation Workflow
Step 1: Determine Location
Auto-detect the appropriate location:
Check git repository status:
git rev-parse --is-inside-work-tree 2>/dev/null
Default location:
If in git repo → Project-level:
.claude/commands/
If not in git repo → Global:
~/.claude/commands/
Allow user override:
If user explicitly mentions "global" or "user-level" → Use
~/.claude/commands/
If user explicitly mentions "project" or "project-level" → Use
.claude/commands/
Report the chosen location to the user before proceeding.
Step 2: Show Command Patterns
Help the user understand different command types. Load
references/patterns.md
to see available patterns:
Workflow Automation
- Analyze → Act → Report (e.g., submit-stack)
Iterative Fixing
- Run → Parse → Fix → Repeat (e.g., ensure-ci)
Agent Delegation
- Context → Delegate → Iterate (e.g., create-implementation-plan)
Simple Execution
- Run command with args (e.g., codex-review)
Ask the user: "Which pattern is closest to what you want to create?" This helps frame the conversation.
Step 3: Gather Command Information
Ask the user for key information:
A. Command Name and Purpose
Ask:
"What should the command be called?" (for filename)
"What does this command do?" (for description field)
Guidelines:
Command names MUST be kebab-case (hyphens, NOT underscores)
✅ CORRECT:
submit-stack
,
ensure-ci
,
create-from-plan
❌ WRONG:
submit_stack
,
ensure_ci
,
create_from_plan
File names match command names:
my-command.md
→ invoked as
/my-command
Description should be concise, action-oriented (appears in
/help
output)
B. Arguments
Ask:
"Does this command take any arguments?"
"Are arguments required or optional?"
"What should arguments represent?"
If command takes arguments:
Add
argument-hint: