command-skill-creator
Command Skill Creator
Create command-type skills - imperative prompts that guide Claude through phased execution of multi-step workflows. These are /slash-commands users invoke explicitly, not passive reference material.
Command skills live in project-level .claude/skills/<name>/SKILL.md and are invoked as /name [arguments].
When to use this vs skill-creator
- This skill: Commands that DO things - deploy, commit, migrate, sync, release, scaffold. Side effects, approval gates, phased execution.
- skill-creator: Knowledge that INFORMS Claude - coding standards, API references, framework guides. No side effects, auto-triggered by context.
Creation Workflow
Step 1: Understand Intent
Establish what the command automates. Ask (or extract from conversation context):
- What does this command do? What are the major phases?
- Which actions have side effects? (commits, deploys, file mutations, external APIs)
- Does it take arguments? What kind?
- Does it operate across multiple repos/projects?
- Are there approval gates needed before irreversible actions?
- What model complexity is needed? (most commands work with default; complex multi-phase reasoning may need
opus)
If the user says "turn this into a command," extract the workflow from conversation history - tools used, sequence, corrections made.
Step 2: Design Frontmatter
Choose fields based on the command's nature. See the frontmatter reference table below.
Minimum viable frontmatter:
---
name: my-command
description: What it does and when to use it
disable-model-invocation: true
---
The reason disable-model-invocation: true is the default for command skills: commands have side effects by definition. If it had no side effects, it would be a knowledge skill instead. Setting this to true ensures the command only runs when the user explicitly invokes it, preventing Claude from autonomously deploying, committing, or mutating state.
Add more fields based on characteristics:
- Takes arguments →
argument-hint: "[arg-name]" - Needs strong reasoning →
model: opus - Should restrict tools →
allowed-tools: Read, Bash(specific-cmd *) - Self-contained exploration →
context: fork+agent: Explore
Step 3: Structure Phases
Break the command into numbered phases with markdown headers (##). Claude follows numbered sequences with headers reliably - dense paragraphs get lost.
Common phase progression:
- Pre-flight - validate preconditions, read config, check state
- Research/Discovery - gather info for decisions (parallelize with subagents when possible)
- Present/Approve - show recommendations, wait for explicit user approval
- Execute - make the changes
- Verify - smoke tests, health checks
- Summary - report outcomes
Not every command needs all phases. A simple formatter might just be execute + verify.
Step 4: Add Safety
For each phase with side effects:
- Approval gate: "STOP and wait for user approval before proceeding."
- Error handling: "If X fails, stop and show the error. Do NOT proceed to Phase N."
- Rollback path: How to undo if something goes wrong
- Verification: Check that each action succeeded before moving on
These aren't bureaucracy - they prevent the command from autonomously deploying broken code or committing garbage. A 2-second approval pause costs nothing compared to rolling back a bad deploy.
Step 5: Write the SKILL.md
Generate the complete skill file. Keep it under 200 lines - command skills are prompts, not documentation. If the command needs extensive reference material, use supporting files.
Always start with the argument guard:
The target is: $ARGUMENTS
If no argument was provided, ask the user for one and stop.
Then: rules section, phases, summary template.
Step 6: Audit
Run through every item on the audit checklist below. Fix failures before finalizing. Present the audit results to the user.
Step 7: Place
Save the skill to the target project:
<project>/.claude/skills/<command-name>/SKILL.md
If supporting files are needed, they go alongside SKILL.md.
Frontmatter Reference
| Field | Type | Default | When to Use |
|---|---|---|---|
name |
string | dir name | Always. Lowercase, hyphens, max 64 chars |
description |
string | required | Action-oriented: what it does + when to trigger |
model |
string | inherit | Complex reasoning: opus. Cost savings: haiku |
disable-model-invocation |
bool | false |
Always true for command skills (they have side effects) |
argument-hint |
string | none | If command takes args: [service-name], [model-id] |
allowed-tools |
string | all | Restrict: Read, Bash(npm *), mcp__github__* |
context |
string | inline | fork for isolated subagent (read-only exploration) |
agent |
string | general | With context: fork: Explore, Plan |
user-invocable |
bool | true |
false hides from menu (background knowledge only) |
$ARGUMENTS
$ARGUMENTS is replaced with the user's full argument string. Positional access via $0, $1, or $ARGUMENTS[N] (0-based).
/deploy twitter staging
# $ARGUMENTS = "twitter staging", $0 = "twitter", $1 = "staging"
Don't over-specify argument parsing. Trust Claude to understand natural language - describe what you expect and let Claude validate, rather than writing brittle format parsers.
Path Variables
Never hardcode absolute paths. Use:
${CLAUDE_PROJECT_DIR}- project root${CLAUDE_SKILL_DIR}- skill's own directory (for bundled scripts)- Relative paths from repo root
Design Patterns
See references/design-patterns.md for detailed patterns with full examples. Quick reference:
| Scenario | Pattern |
|---|---|
| One action, no approval needed | Simple Task |
| Multiple steps, some irreversible | Phased Workflow with Approval Gate |
| Need info from multiple sources | Parallel Research + Sequential Implementation |
| Modifying another project | Cross-Repo with Adaptive Discovery |
| Command exceeds 200 lines | Progressive Disclosure with supporting files |
Anti-Patterns
Watch for these when reviewing command skills:
- Hardcoded paths:
/Users/someone/...→ use${CLAUDE_PROJECT_DIR}or relative - Missing safety: no
disable-model-invocationon commands with side effects - Over-specification: complex argument parsers instead of natural language
- No checkpoints: making changes without showing what will happen first
- Blind edits: modifying files without reading them
- Silent failures: no error handling or status reporting
- Context ignorance: not reading CLAUDE.md, existing conventions, or config files
- Monolithic prompt: 500+ line SKILL.md instead of using supporting files
Audit Checklist
Every command skill must pass before finalizing:
disable-model-invocation: trueif any side effects existargument-hintpresent if command takes arguments- No hardcoded absolute paths
- Adaptive discovery (grep/glob) for cross-repo file references
- Guard clause for missing
$ARGUMENTS - Approval gate before destructive/irreversible operations
- Clear outcome reporting (succeeded, failed, next steps)
- SKILL.md under 200 lines (supporting files for overflow)
- Explicit error handling ("if X fails, stop and show error")
${CLAUDE_PROJECT_DIR}or relative paths, never absolute- Reads files before editing (no blind modifications)
- Reads target project's CLAUDE.md for cross-repo operations
More from tenequm/claude-plugins
chrome-extension-wxt
Build Chrome extensions using WXT framework with TypeScript, React, Vue, or Svelte. Use when creating browser extensions, developing cross-browser add-ons, or working with Chrome Web Store projects. Triggers on phrases like "chrome extension", "browser extension", "WXT framework", "manifest v3", or file patterns like wxt.config.ts.
96shadcn-tailwind
Build UIs with Tailwind CSS v4 and shadcn/ui. Covers CSS variables with OKLCH colors, component variants with CVA, responsive design, dark mode, and Tailwind v4.2 features. Supports Radix UI and Base UI primitives, CLI 3.0, and visual styles. Use when building interfaces with Tailwind, styling shadcn/ui components, implementing themes, or working with utility-first CSS. Triggers on tailwind, shadcn, utility classes, CSS variables, OKLCH, component styling, theming, dark mode, radix ui.
75founder-playbook
Decision validation and thinking frameworks for startup founders. Use when you need to pressure-test a decision, validate your next steps, think through strategic options, or sanity-check your approach. Triggers on phrases like "should I", "help me think through", "is this the right move", "validate my thinking", "what am I missing". Covers fundraising, customer development, runway management, prioritization, and crypto/web3 founder challenges.
72skill-finder
Find and evaluate Claude skills for specific use cases using semantic search, Anthropic best practices assessment, and fitness scoring. Use when the user asks to find skills for a particular task (e.g., "find me a skill for pitch decks"), not for generic "show all skills" requests.
64solana-security
Audit Solana programs (Anchor or native Rust) for security vulnerabilities. Use when reviewing smart contract security, finding exploits, analyzing attack vectors, performing security assessments, or when explicitly asked to audit, review security, check for bugs, or find vulnerabilities in Solana programs.
46gh-cli
GitHub CLI for remote repository analysis, file fetching, codebase comparison, and discovering trending code/repos. Use when analyzing repos without cloning, comparing codebases, or searching for popular GitHub projects.
43