Create a new slash command from the standard skill template
Create a new slash command skill from the standard template with interactive configuration.
/create-skill <skill-name> # Create new skill interactively
/create-skill --list # List all existing skills
/create-skill --template # Show the skill template
Examples: /create-skill deploy-staging, /create-skill validate-schema, /create-skill cost-report
# Check name is kebab-case
Validate: {name} matches ^[a-z][a-z0-9-]+$
# Check skill doesn't already exist
Glob(".claude/skills/{name}/SKILL.md")
→ If exists: "Skill '{name}' already exists at .claude/skills/{name}/SKILL.md"
Ask the user these questions using AskUserQuestion:
<file> [--verbose])workflow (multi-step process), generator (creates files), analyzer (reads and reports), utility (simple action)--dry-run flag is automatically included# Read template
Read(".claude/skills/_template.md.example")
# Create skill directory
Bash("mkdir -p .claude/skills/{name}")
# Generate SKILL.md with:
# - Frontmatter: name, description, argument-hint from answers
# - Usage section with invocation patterns
# - Execution Steps tailored to the category:
# - workflow: multi-step with validation → process → verify
# - generator: input → generate → write → report
# - analyzer: scan → analyze → format → output
# - utility: validate → execute → confirm
# - Flags table (always includes --dry-run if skill writes files)
# - See Also from related answer
Write(".claude/skills/{name}/SKILL.md", content)
CREATE-SKILL RESULTS
━━━━━━━━━━━━━━━━━━━━
Created: .claude/skills/{name}/SKILL.md
Invocation:
/{name}
/{name} {argument-hint}
Category: {category}
Flags: {flags}
Next steps:
1. Review and customize the generated SKILL.md
2. Test with: /{name} --dry-run
3. Run /sync-context to update CLAUDE.md
━━━━━━━━━━━━━━━━━━━━
| Flag | Description |
|---|---|
--list | List all existing skills with descriptions |
--template | Display the skill template |
When this command is invoked:
If --list flag: List all directories in .claude/skills/ (excluding _template*), read each SKILL.md frontmatter, display name + description table.
If --template flag: Display contents of .claude/skills/_template.md.example.
If <name> provided:
a. Validate name is kebab-case (lowercase, hyphens, starts with letter)
b. Check .claude/skills/{name}/SKILL.md doesn't already exist
c. Ask interactive questions per Step 2
d. Read template from .claude/skills/_template.md.example
e. Generate SKILL.md by filling template with answers:
{skill-name} with name{Skill Title} with title-cased name--dry-run to Flags if skill writes filesf. Write to .claude/skills/{name}/SKILL.md
g. Report success
If no argument: Show usage help and prompt for skill name
/sync-repos.claude/rules/skill-development.md for conventions and size guidelines.claude/skills/_template.md.example.claude/rules/skill-development.md.claude/skills//create-agent/create-kb