From tenequm-skills
Creates automation command skills (slash commands) for Claude Code projects. Automates multi-step workflows like deploys, commits, releases, migrations, and cross-repo operations.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tenequm-skills:command-skill-creatorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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].
Establish what the command automates. Ask (or extract from conversation context):
opus)If the user says "turn this into a command," extract the workflow from conversation history - tools used, sequence, corrections made.
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:
argument-hint: "[arg-name]"model: opusallowed-tools: Read, Bash(specific-cmd *)context: fork + agent: ExploreBreak the command into numbered phases with markdown headers (##). Claude follows numbered sequences with headers reliably - dense paragraphs get lost.
Common phase progression:
Not every command needs all phases. A simple formatter might just be execute + verify.
For each phase with side effects:
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.
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.
Run through every item on the audit checklist below. Fix failures before finalizing. Present the audit results to the user.
Save the skill to the target project:
<project>/.claude/skills/<command-name>/SKILL.md
If supporting files are needed, they go alongside SKILL.md.
| 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 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.
Never hardcode absolute paths. Use:
${CLAUDE_PROJECT_DIR} - project root${CLAUDE_SKILL_DIR} - skill's own directory (for bundled scripts)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 |
Watch for these when reviewing command skills:
/Users/someone/... → use ${CLAUDE_PROJECT_DIR} or relativedisable-model-invocation on commands with side effectsEvery command skill must pass before finalizing:
disable-model-invocation: true if any side effects existargument-hint present if command takes arguments$ARGUMENTS${CLAUDE_PROJECT_DIR} or relative paths, never absolutenpx claudepluginhub tenequm/skillsGenerates Claude Code skills and slash commands: interviews for requirements, selects type, crafts dense frontmatter with trigger phrases, initializes directories via Python script.
Guides creation of Claude Code skills and slash commands: SKILL.md structure, frontmatter fields, invocation controls, commands vs skills, and best practices.
Creates new skills for Claude Code. Guides users through defining skill behavior, scope (project or global), and generating SKILL.md files with proper frontmatter and trigger phrases.