PluginBench
Skill
Pass
Audit score 90

command-creator

softaworks/agent-toolkit

Create reusable Claude Code slash commands for automating workflows and agent delegation.

What is command-creator?

This skill guides creation of Claude Code slash commands—markdown files stored in `.claude/commands/` that expand into prompts when invoked with `/command-name`. Use it when users want to automate repetitive workflows, document consistent processes, or create project-specific automation.

  • Detect appropriate command location (project-level `.claude/commands/` or global `~/.claude/commands/`)
  • Guide selection of command patterns (workflow automation, iterative fixing, agent delegation, simple execution)
  • Gather command metadata: name, purpose, arguments, workflow steps, and tool restrictions
  • Generate agent-optimized command files with imperative instructions and error handling
  • Create properly formatted markdown files with YAML frontmatter and structured instructions
  • Support both required and optional arguments with placeholder syntax

How to install command-creator

npx skills add https://github.com/softaworks/agent-toolkit --skill command-creator
Claude Code
Cursor
Windsurf
Cline

How to use command-creator

  1. 1.Determine command location by checking git repository status (project vs global)
  2. 2.Review available command patterns (workflow automation, iterative fixing, agent delegation, simple execution)
  3. 3.Gather command details: kebab-case name, concise description, required/optional arguments, and step-by-step workflow
  4. 4.Load bundled references (patterns.md, examples.md, best-practices.md) for guidance on structure and quality
  5. 5.Generate the command file with agent-optimized instructions using imperative form and explicit error handling
  6. 6.Create the markdown file at the determined location and confirm with the user

Use cases

Good for
  • Automate code review workflows that run repeatedly across projects
  • Create multi-step CI fixing commands that parse output and iterate until success
  • Document project-specific processes (e.g., submit-stack, ensure-ci) for consistent execution
  • Delegate specialized tasks to subagents with clear context and success criteria
  • Build global commands for common operations (linting, testing, code generation)
Who it's for
  • Developers automating repetitive workflows in Claude Code
  • Teams documenting project-specific processes as reusable commands
  • Agents executing multi-step autonomous tasks with consistent structure
  • Users creating both project-level and global slash commands

command-creator FAQ

What's the difference between project-level and global commands?

Project-level commands (`.claude/commands/`) are stored in the git repository and shared with the team. Global commands (`~/.claude/commands/`) are user-specific and available across all projects.

What naming convention should I use for commands?

Command names must be kebab-case (hyphens, not underscores). For example: `submit-stack`, `ensure-ci`, `create-from-plan`. The filename matches the command name: `my-command.md` is invoked as `/my-command`.

How do I add arguments to a command?

Add `argument-hint: <placeholder>` to the frontmatter. Use angle brackets `<required>` for required arguments and square brackets `[optional]` for optional ones. Reference arguments in the command body using the same syntax.

What tools should I use in commands?

Use the Bash tool for standard commands (pytest, pyright, ruff, prettier, make). Use the Task tool to invoke subagents for specialized work. Include explicit error handling and check for specific files before proceeding.

Can I test a command after creating it?

Yes. After the command is created, you can test it by running `/command-name [arguments]` in Claude Code. Be ready to iterate and update the file based on feedback.

Full instructions (SKILL.md)

Source of truth, from softaworks/agent-toolkit.


name: command-creator description: This skill should be used when creating a Claude Code slash command. Use when users ask to "create a command", "make a slash command", "add a command", or want to document a workflow as a reusable command. Essential for creating optimized, agent-executable slash commands with proper structure and best practices.

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:

  1. Check git repository status: git rev-parse --is-inside-work-tree 2>/dev/null
  2. Default location:
    • If in git repo → Project-level: .claude/commands/
    • If not in git repo → Global: ~/.claude/commands/
  3. 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: <placeholder> to frontmatter
  • Use <angle-brackets> for required arguments
  • Use [square-brackets] for optional arguments

C. Workflow Steps

Ask:

  • "What are the specific steps this command should follow?"
  • "What order should they happen in?"
  • "What tools or commands should be used?"

Gather details about:

  • Initial analysis or checks to perform
  • Main actions to take
  • How to handle results
  • Success criteria
  • Error handling approach

D. Tool Restrictions and Guidance

Ask:

  • "Should this command use any specific agents or tools?"
  • "Are there any tools or operations it should avoid?"
  • "Should it read any specific files for context?"

Step 4: Generate Optimized Command

Create the command file with agent-optimized instructions. Load references/best-practices.md for:

  • Template structure
  • Best practices for agent execution
  • Writing style guidelines
  • Quality checklist

Key principles:

  • Use imperative/infinitive form (verb-first instructions)
  • Be explicit and specific
  • Include expected outcomes
  • Provide concrete examples
  • Define clear error handling

Step 5: Create the Command File

  1. Determine full file path:

    • Project: .claude/commands/[command-name].md
    • Global: ~/.claude/commands/[command-name].md
  2. Ensure directory exists:

    mkdir -p [directory-path]
    
  3. Write the command file using the Write tool

  4. Confirm with user:

    • Report the file location
    • Summarize what the command does
    • Explain how to use it: /command-name [arguments]

Step 6: Test and Iterate (Optional)

If the user wants to test:

  1. Suggest testing: You can test this command by running: /command-name [arguments]
  2. Be ready to iterate based on feedback
  3. Update the file with improvements as needed

Quick Tips

For detailed guidance, load the bundled references:

  • Load references/patterns.md when designing the command workflow
  • Load references/examples.md to see how existing commands are structured
  • Load references/best-practices.md before finalizing to ensure quality

Common patterns to remember:

  • Use Bash tool for pytest, pyright, ruff, prettier, make, gt commands
  • Use Task tool to invoke subagents for specialized tasks
  • Check for specific files first (e.g., .PLAN.md) before proceeding
  • Mark todos complete immediately, not in batches
  • Include explicit error handling instructions
  • Define clear success criteria

Summary

When creating a command:

  1. Detect location (project vs global)
  2. Show patterns to frame the conversation
  3. Gather information (name, purpose, arguments, steps, tools)
  4. Generate optimized command with agent-executable instructions
  5. Create file at appropriate location
  6. Confirm and iterate as needed

Focus on creating commands that agents can execute autonomously, with clear steps, explicit tool usage, and proper error handling.