{"id":"df32e0e5-ab30-4550-9d1f-a35287182e6a","shortId":"EErLv7","kind":"skill","title":"command-skill-creator","tagline":"Create automation command skills (slash commands) for Claude Code projects. Use when building `/slash-commands` that automate multi-step workflows - deploys, commits, releases, migrations, cross-repo operations, or any repeatable process. Triggers on \"create a command\", \"make a s","description":"# Command Skill Creator\n\nCreate 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.\n\nCommand skills live in project-level `.claude/skills/<name>/SKILL.md` and are invoked as `/name [arguments]`.\n\n## When to use this vs skill-creator\n\n- **This skill**: Commands that DO things - deploy, commit, migrate, sync, release, scaffold. Side effects, approval gates, phased execution.\n- **skill-creator**: Knowledge that INFORMS Claude - coding standards, API references, framework guides. No side effects, auto-triggered by context.\n\n## Creation Workflow\n\n### Step 1: Understand Intent\n\nEstablish what the command automates. Ask (or extract from conversation context):\n\n- What does this command do? What are the major phases?\n- Which actions have side effects? (commits, deploys, file mutations, external APIs)\n- Does it take arguments? What kind?\n- Does it operate across multiple repos/projects?\n- Are there approval gates needed before irreversible actions?\n- What model complexity is needed? (most commands work with default; complex multi-phase reasoning may need `opus`)\n\nIf the user says \"turn this into a command,\" extract the workflow from conversation history - tools used, sequence, corrections made.\n\n### Step 2: Design Frontmatter\n\nChoose fields based on the command's nature. See the frontmatter reference table below.\n\nMinimum viable frontmatter:\n```yaml\n---\nname: my-command\ndescription: What it does and when to use it\ndisable-model-invocation: true\n---\n```\n\nThe 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.\n\nAdd more fields based on characteristics:\n- Takes arguments → `argument-hint: \"[arg-name]\"`\n- Needs strong reasoning → `model: opus`\n- Should restrict tools → `allowed-tools: Read, Bash(specific-cmd *)`\n- Self-contained exploration → `context: fork` + `agent: Explore`\n\n### Step 3: Structure Phases\n\nBreak the command into numbered phases with markdown headers (`##`). Claude follows numbered sequences with headers reliably - dense paragraphs get lost.\n\nCommon phase progression:\n1. **Pre-flight** - validate preconditions, read config, check state\n2. **Research/Discovery** - gather info for decisions (parallelize with subagents when possible)\n3. **Present/Approve** - show recommendations, wait for explicit user approval\n4. **Execute** - make the changes\n5. **Verify** - smoke tests, health checks\n6. **Summary** - report outcomes\n\nNot every command needs all phases. A simple formatter might just be execute + verify.\n\n### Step 4: Add Safety\n\nFor each phase with side effects:\n- **Approval gate**: \"**STOP and wait for user approval before proceeding.**\"\n- **Error handling**: \"If X fails, stop and show the error. Do NOT proceed to Phase N.\"\n- **Rollback path**: How to undo if something goes wrong\n- **Verification**: Check that each action succeeded before moving on\n\nThese 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.\n\n### Step 5: Write the SKILL.md\n\nGenerate 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.\n\nAlways start with the argument guard:\n```markdown\nThe target is: $ARGUMENTS\n\nIf no argument was provided, ask the user for one and stop.\n```\n\nThen: rules section, phases, summary template.\n\n### Step 6: Audit\n\nRun through every item on the audit checklist below. Fix failures before finalizing. Present the audit results to the user.\n\n### Step 7: Place\n\nSave the skill to the target project:\n```\n<project>/.claude/skills/<command-name>/SKILL.md\n```\n\nIf supporting files are needed, they go alongside SKILL.md.\n\n---\n\n## Frontmatter Reference\n\n| Field | Type | Default | When to Use |\n|-------|------|---------|-------------|\n| `name` | string | dir name | Always. Lowercase, hyphens, max 64 chars |\n| `description` | string | required | Action-oriented: what it does + when to trigger |\n| `model` | string | inherit | Complex reasoning: `opus`. Cost savings: `haiku` |\n| `disable-model-invocation` | bool | `false` | Always `true` for command skills (they have side effects) |\n| `argument-hint` | string | none | If command takes args: `[service-name]`, `[model-id]` |\n| `allowed-tools` | string | all | Restrict: `Read, Bash(npm *)`, `mcp__github__*` |\n| `context` | string | inline | `fork` for isolated subagent (read-only exploration) |\n| `agent` | string | general | With `context: fork`: `Explore`, `Plan` |\n| `user-invocable` | bool | `true` | `false` hides from menu (background knowledge only) |\n\n## $ARGUMENTS\n\n`$ARGUMENTS` is replaced with the user's full argument string. Positional access via `$0`, `$1`, or `$ARGUMENTS[N]` (0-based).\n\n```\n/deploy twitter staging\n# $ARGUMENTS = \"twitter staging\", $0 = \"twitter\", $1 = \"staging\"\n```\n\nDon'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.\n\n## Path Variables\n\nNever hardcode absolute paths. Use:\n- `${CLAUDE_PROJECT_DIR}` - project root\n- `${CLAUDE_SKILL_DIR}` - skill's own directory (for bundled scripts)\n- Relative paths from repo root\n\n## Design Patterns\n\nSee [references/design-patterns.md](references/design-patterns.md) for detailed patterns with full examples. Quick reference:\n\n| Scenario | Pattern |\n|----------|---------|\n| One action, no approval needed | Simple Task |\n| Multiple steps, some irreversible | Phased Workflow with Approval Gate |\n| Need info from multiple sources | Parallel Research + Sequential Implementation |\n| Modifying another project | Cross-Repo with Adaptive Discovery |\n| Command exceeds 200 lines | Progressive Disclosure with supporting files |\n\n## Anti-Patterns\n\nWatch for these when reviewing command skills:\n- **Hardcoded paths**: `/Users/someone/...` → use `${CLAUDE_PROJECT_DIR}` or relative\n- **Missing safety**: no `disable-model-invocation` on commands with side effects\n- **Over-specification**: complex argument parsers instead of natural language\n- **No checkpoints**: making changes without showing what will happen first\n- **Blind edits**: modifying files without reading them\n- **Silent failures**: no error handling or status reporting\n- **Context ignorance**: not reading CLAUDE.md, existing conventions, or config files\n- **Monolithic prompt**: 500+ line SKILL.md instead of using supporting files\n\n## Audit Checklist\n\nEvery command skill must pass before finalizing:\n\n1. `disable-model-invocation: true` if any side effects exist\n2. `argument-hint` present if command takes arguments\n3. No hardcoded absolute paths\n4. Adaptive discovery (grep/glob) for cross-repo file references\n5. Guard clause for missing `$ARGUMENTS`\n6. Approval gate before destructive/irreversible operations\n7. Clear outcome reporting (succeeded, failed, next steps)\n8. SKILL.md under 200 lines (supporting files for overflow)\n9. Explicit error handling (\"if X fails, stop and show error\")\n10. `${CLAUDE_PROJECT_DIR}` or relative paths, never absolute\n11. Reads files before editing (no blind modifications)\n12. Reads target project's CLAUDE.md for cross-repo operations","tags":["command","skill","creator","skills","tenequm","agent-skills","ai-agents","claude-code","claude-skills","clawhub","erc-8004","mpp"],"capabilities":["skill","source-tenequm","skill-command-skill-creator","topic-agent-skills","topic-ai-agents","topic-claude-code","topic-claude-skills","topic-clawhub","topic-erc-8004","topic-mpp","topic-openclaw","topic-skills","topic-solana","topic-x402"],"categories":["skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/tenequm/skills/command-skill-creator","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add tenequm/skills","source_repo":"https://github.com/tenequm/skills","install_from":"skills.sh"}},"qualityScore":"0.461","qualityRationale":"deterministic score 0.46 from registry signals: · indexed on github topic:agent-skills · 23 github stars · SKILL.md body (7,634 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-22T01:01:39.233Z","embedding":null,"createdAt":"2026-04-18T23:05:12.507Z","updatedAt":"2026-04-22T01:01:39.233Z","lastSeenAt":"2026-04-22T01:01:39.233Z","tsv":"'/.claude/skills':631 '/deploy':774 '/name':89 '/skill.md':84,632 '/slash-commands':18,68 '/users/someone':908 '0':767,772,780 '1':141,395,768,782,991 '10':1066 '11':1075 '12':1083 '2':235,405,525,1002 '200':551,889,1049 '3':369,416,1011 '4':425,455,1016 '5':430,539,1026 '500':974 '6':436,599,1032 '64':658 '7':622,1038 '8':1046 '9':1055 'absolut':815,1014,1074 'access':765 'across':185 'action':166,195,503,664,854 'action-ori':663 'adapt':885,1017 'add':330,456 'agent':366,733 'allow':353,712 'allowed-tool':352,711 'alongsid':640 'alway':569,654,687 'anoth':879 'anti':897 'anti-pattern':896 'api':126,175 'approv':113,190,424,464,471,527,856,867,1033 'aren':509 'arg':342,704 'arg-nam':341 'argument':90,179,337,339,573,579,582,697,753,754,762,770,777,789,931,1004,1010,1031 'argument-hint':338,696,1003 'ask':149,585 'audit':600,607,616,982 'auto':134 'auto-trigg':133 'autom':6,20,148 'autonom':324,517 'back':534 'background':750 'bad':536 'base':240,333,773 'bash':356,718 'blind':947,1081 'bool':685,744 'break':372 'brittl':808 'broken':519 'build':17 'bundl':831 'bureaucraci':511 'chang':429,940 'char':659 'characterist':335 'check':403,435,500 'checklist':608,983 'checkpoint':938 'choos':238 'claud':12,57,123,322,381,792,803,818,823,910,1067 'claude.md':966,1088 'claude/skills':83 'claus':1028 'clear':1039 'cmd':359 'code':13,124,520 'command':2,7,10,41,45,50,76,101,147,158,202,222,243,259,285,287,312,374,442,515,553,561,690,702,887,904,923,985,1008 'command-skill-cr':1 'command-typ':49 'commit':26,106,170,326,522 'common':392 'compar':531 'complet':545 'complex':198,206,675,930 'config':402,970 'contain':362 'context':137,154,364,722,737,962 'convent':968 'convers':153,227 'correct':232 'cost':529,678 'creat':5,39,48 'creation':138 'creator':4,47,98,119 'cross':30,882,1022,1091 'cross-repo':29,881,1021,1090 'decis':410 'default':205,283,646 'definit':292 'dens':388 'deploy':25,105,171,325,518,537 'describ':797 'descript':260,660 'design':236,838 'destructive/irreversible':1036 'detail':844 'dir':652,820,825,912,1069 'directori':829 'disabl':270,277,682,919,993 'disable-model-invoc':269,276,681,918,992 'disclosur':892 'discoveri':886,1018 'document':558 'edit':948,1079 'effect':112,132,169,290,298,463,695,926,1000 'ensur':310 'error':474,483,957,1057,1065 'establish':144 'everi':441,603,984 'exampl':848 'exceed':888 'execut':60,116,426,452 'exist':967,1001 'expect':800 'explicit':71,318,422,1056 'explor':363,367,732,739 'extens':563 'extern':174 'extract':151,223 'fail':478,1043,1061 'failur':611,955 'fals':686,746 'field':239,332,644 'file':172,547,568,635,895,950,971,981,1024,1052,1077 'final':613,990 'first':946 'fix':610 'flight':398 'follow':382 'fork':365,725,738 'format':809 'formatt':448 'framework':128 'frontmatt':237,248,254,642 'full':761,847 'garbag':523 'gate':114,191,465,868,1034 'gather':407 'general':735 'generat':543 'get':390 'github':721 'go':639 'goe':497 'grep/glob':1019 'guard':574,1027 'guid':56,129 'haiku':680 'handl':475,958,1058 'happen':945 'hardcod':814,906,1013 'header':380,386 'health':434 'hide':747 'hint':340,698,1005 'histori':228 'hyphen':656 'id':710 'ignor':963 'imper':53 'implement':877 'info':408,870 'inform':122 'inherit':674 'inlin':724 'instead':305,933,977 'intent':143 'invoc':272,279,684,743,921,995 'invok':70,87,319 'irrevers':194,863 'isol':727 'item':604 'keep':548 'kind':181 'knowledg':120,303,751 'languag':796,936 'let':802 'level':82 'line':552,890,975,1050 'live':78 'lost':391 'lowercas':655 'made':233 'major':163 'make':42,427,939 'markdown':379,575 'materi':75,565 'max':657 'may':211 'mcp':720 'menu':749 'might':449 'migrat':28,107 'minimum':252 'miss':915,1030 'model':197,271,278,347,672,683,709,920,994 'model-id':708 'modif':1082 'modifi':878,949 'monolith':972 'move':506 'multi':22,63,208 'multi-phas':207 'multi-step':21,62 'multipl':186,860,872 'must':987 'mutat':173,328 'my-command':257 'n':489,771 'name':256,343,650,653,707 'natur':245,795,935 'need':192,200,212,344,443,562,637,857,869 'never':813,1073 'next':1044 'none':700 'noth':530 'npm':719 'number':376,383 'one':589,853 'oper':32,184,1037,1093 'opus':213,348,677 'orient':665 'outcom':439,1040 'over-specif':927 'over-specifi':786 'overflow':1054 'paragraph':389 'parallel':411,874 'pars':790 'parser':810,932 'pass':988 'passiv':73 'path':491,811,816,834,907,1015,1072 'pattern':839,845,852,898 'paus':528 'phase':59,115,164,209,371,377,393,445,460,488,595,864 'place':623 'plan':740 'posit':764 'possibl':415 'pre':397 'pre-flight':396 'precondit':400 'present':614,1006 'present/approve':417 'prevent':321,513 'proceed':473,486 'process':36 'progress':394,891 'project':14,81,630,819,821,880,911,1068,1086 'project-level':80 'prompt':54,556,973 'provid':584 'quick':849 'rather':805 'read':355,401,717,730,952,965,1076,1084 'read-on':729 'reason':210,275,346,676 'recommend':419 'refer':74,127,249,564,643,850,1025 'references/design-patterns.md':841,842 'relat':833,914,1071 'releas':27,109 'reliabl':387 'repeat':35 'replac':756 'repo':31,836,883,1023,1092 'report':438,961,1041 'repos/projects':187 'requir':662 'research':875 'research/discovery':406 'restrict':350,716 'result':617 'review':903 'roll':533 'rollback':490 'root':822,837 'rule':593 'run':314,601 'safeti':457,916 'save':624,679 'say':217 'scaffold':110 'scenario':851 'script':832 'second':526 'section':594 'see':246,840 'self':361 'self-contain':360 'sequenc':231,384 'sequenti':876 'servic':706 'service-nam':705 'set':306 'show':418,481,942,1064 'side':111,131,168,289,297,462,694,925,999 'silent':954 'simpl':447,858 'skill':3,8,46,52,77,97,100,118,286,304,546,554,626,691,824,826,905,986 'skill-command-skill-creator' 'skill-creat':96,117 'skill.md':542,641,976,1047 'slash':9 'smoke':432 'someth':496 'sourc':873 'source-tenequm' 'specif':358,929 'specifi':788 'specific-cmd':357 'stage':776,779,783 'standard':125 'start':570 'state':329,404 'status':960 'step':23,64,140,234,368,454,538,598,621,861,1045 'stop':466,479,591,1062 'string':651,661,673,699,714,723,734,763 'strong':345 'structur':370 'subag':413,728 'succeed':504,1042 'summari':437,596 'support':567,634,894,980,1051 'sync':108 'tabl':250 'take':178,336,703,1009 'target':577,629,1085 'task':859 'templat':597 'test':433 'thing':104 'tool':229,351,354,713 'topic-agent-skills' 'topic-ai-agents' 'topic-claude-code' 'topic-claude-skills' 'topic-clawhub' 'topic-erc-8004' 'topic-mpp' 'topic-openclaw' 'topic-skills' 'topic-solana' 'topic-x402' 'trigger':37,135,671 'true':273,280,309,688,745,996 'trust':791 'turn':218 'twitter':775,778,781 'type':51,645 'understand':142,794 'undo':494 'use':15,93,230,267,566,649,817,909,979 'user':69,216,317,423,470,587,620,742,759 'user-invoc':741 'valid':399,804 'variabl':812 'verif':499 'verifi':431,453 'via':766 'viabl':253 'vs':95 'wait':420,468 'watch':899 'without':941,951 'work':203 'workflow':24,65,139,225,865 'would':300 'write':540,807 'wrong':498 'x':477,1060 'yaml':255","prices":[{"id":"66dfccae-40eb-4dd5-9cda-bc952c4235d1","listingId":"df32e0e5-ab30-4550-9d1f-a35287182e6a","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"tenequm","category":"skills","install_from":"skills.sh"},"createdAt":"2026-04-18T23:05:12.507Z"}],"sources":[{"listingId":"df32e0e5-ab30-4550-9d1f-a35287182e6a","source":"github","sourceId":"tenequm/skills/command-skill-creator","sourceUrl":"https://github.com/tenequm/skills/tree/main/skills/command-skill-creator","isPrimary":false,"firstSeenAt":"2026-04-18T23:05:12.507Z","lastSeenAt":"2026-04-22T01:01:39.233Z"}],"details":{"listingId":"df32e0e5-ab30-4550-9d1f-a35287182e6a","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"tenequm","slug":"command-skill-creator","github":{"repo":"tenequm/skills","stars":23,"topics":["agent-skills","ai-agents","claude-code","claude-skills","clawhub","erc-8004","mpp","openclaw","skills","solana","x402"],"license":"mit","html_url":"https://github.com/tenequm/skills","pushed_at":"2026-04-14T16:24:57Z","description":"Agent skills for building, shipping, and growing software products","skill_md_sha":"d6c3483cad8202ce3b45c83d2db2b9d7b79b2eb1","skill_md_path":"skills/command-skill-creator/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/tenequm/skills/tree/main/skills/command-skill-creator"},"layout":"multi","source":"github","category":"skills","frontmatter":{"name":"command-skill-creator","description":"Create automation command skills (slash commands) for Claude Code projects. Use when building `/slash-commands` that automate multi-step workflows - deploys, commits, releases, migrations, cross-repo operations, or any repeatable process. Triggers on \"create a command\", \"make a slash command\", \"automate this workflow\", \"turn this into a command\", \"build a command skill\", or when designing phased execution skills with approval gates. For command-type skills (imperative prompts in `.claude/skills/`), NOT knowledge/reference skills."},"skills_sh_url":"https://skills.sh/tenequm/skills/command-skill-creator"},"updatedAt":"2026-04-22T01:01:39.233Z"}}