Create new Claude Code skills following best practices with proper structure, frontmatter, and self-evolution pattern. Use when scaffolding or building a new skill.
Build a skill at ~/.claude/skills/$ARGUMENTS[0] following the specification.
Extract from $ARGUMENTS:
SKILL_NAME = first argument (the directory/command name)DESCRIPTION = remaining arguments (one-line description, may be empty)Validate SKILL_NAME:
Check if ~/.claude/skills/{SKILL_NAME} already exists. If so, ask user: update or abort?
Ask the user up to 3 questions (skip any already answered by the arguments):
Purpose: "What should this skill do? Describe the primary use case in 1-2 sentences."
DESCRIPTION is already clear and specificInvocation mode: "How should it be triggered?"
/slash-command — for side effects (creates files, deploys, sends)Tools and dependencies: "Does it need scripts, APIs, or specific tools?"
allowed-tools are neededBased on answers, determine all frontmatter fields.
For the full field reference, read references/frontmatter-fields.md.
Present the plan to the user before creating anything:
Plan for skill "{SKILL_NAME}":
Frontmatter:
name: {SKILL_NAME}
description: {DESCRIPTION} (X chars)
disable-model-invocation: {true/false}
allowed-tools: {list}
{other fields if applicable}
Directories: {list only what's needed}
IMPROVEMENTS.md: included
Proceed? [y/n]
Wait for confirmation before continuing.
Create only directories that will contain files:
mkdir -p ~/.claude/skills/{SKILL_NAME}
# Only create subdirectories if they'll have content:
# mkdir -p ~/.claude/skills/{SKILL_NAME}/references
# mkdir -p ~/.claude/skills/{SKILL_NAME}/scripts
# mkdir -p ~/.claude/skills/{SKILL_NAME}/examples
Generate the SKILL.md with:
Follow the body writing rules from references/spec.md.
Choose the appropriate skill pattern from references/patterns.md.
Always include this section at the end of the body:
## Self-Improvement Protocol
When you notice something that would improve this skill:
1. Append the insight to IMPROVEMENTS.md with date and context
2. Do NOT modify SKILL.md directly
3. Tell the user: "I logged a potential improvement for {SKILL_NAME}"
# Improvements Log for {SKILL_NAME}
Claude logs observations and improvement ideas here.
DO NOT modify SKILL.md directly. The user reviews and promotes changes.
## Format
- **Date**: YYYY-MM-DD
- **Context**: What was happening when the insight occurred
- **Observation**: What could be improved
- **Suggested change**: Concrete proposal
---
<!-- Entries below this line -->
Only create if the skill needs them:
references/ — for detailed specs, API docs, field referencesscripts/ — for executable automation (make executable with chmod +x)examples/ — for sample inputs/outputsRun the validation script against the new skill:
~/.claude/skills/meta-skill-creator/scripts/validate_skill.sh ~/.claude/skills/{SKILL_NAME}
Review the checklist from references/checklist.md.
If validation fails, fix issues and re-validate.
Show the created structure:
find ~/.claude/skills/{SKILL_NAME} -type f
Tell the user:
/skill-name [arguments]When you notice something that would improve this skill: