| name | skill-creator |
| version | 1.0.0 |
| description | This skill should be used when the user asks to 'create a skill', 'build a skill', 'make a skill', 'new skill', 'write a skill', 'skill for X', or wants to package a workflow as a reusable Claude Code skill. Guides through use case definition, frontmatter, instructions, testing, and file structure. NOT for reviewing existing skills — use /skill-content-reviewer instead. |
Skill Creator
Interactive guide for creating well-structured Claude Code skills. Walks through use case definition, frontmatter generation, instruction writing, reference organization, and validation.
This is a DESIGN + BUILD skill — first plan the skill, then generate the files.
Based on The Complete Guide to Building Skills for Claude by Anthropic.
Workflow
Step 1: Define Use Cases
Before writing anything, identify 2-3 concrete use cases.
Ask the user:
- What task should this skill automate or guide?
- What would a user say to trigger it? (collect 3-5 trigger phrases)
- Which category fits best?
- Document/Asset Creation — consistent output generation
- Workflow Automation — multi-step processes with validation gates
- MCP Enhancement — workflow guidance on top of MCP tool access
Capture:
- Target outcome per use case
- Required tools (built-in, MCP, scripts)
- Domain knowledge to embed
Step 2: Plan Structure
Choose complexity level based on content size:
| Level | Structure | When |
|---|
| Light | SKILL.md only | < 200 lines, single workflow |
| Medium | SKILL.md + references/ | 200-600 lines, multiple sub-topics |
| Heavy | SKILL.md + AGENTS.md + references/ + rules/ | 600+ lines, framework-level |
Plan the folder layout:
skill-name/
├── SKILL.md # Required — main instructions
├── references/ # Optional — detailed docs
│ ├── topic-a.md
│ └── topic-b.md
├── scripts/ # Optional — executable code
├── assets/ # Optional — templates, icons
└── examples/ # Optional — example implementations
Step 3: Write Frontmatter
Generate YAML frontmatter following these rules:
Required fields:
name: kebab-case, matches folder name, no spaces/capitals
description: WHAT it does + WHEN to use it + trigger phrases. Max 1024 chars. No XML tags.
Optional fields:
version: semver string
license: MIT, Apache-2.0, etc.
allowed-tools: space-separated tool list (e.g., "Bash(python:*) WebFetch Read")
metadata: author, version, mcp-server, tags, etc.
compatibility: environment requirements (1-500 chars)
Frontmatter template:
---
name: my-skill-name
description: "This skill should be used when the user asks to '[trigger phrase 1]', '[trigger phrase 2]', or [broader description]. [What it does in one sentence]."
---
Critical rules:
- File MUST be named
SKILL.md (case-insensitive per spec, but uppercase recommended)
- Folder MUST be kebab-case
- No
claude or anthropic in skill name (reserved)
- No XML angle brackets in frontmatter
- Description MUST include both WHAT and WHEN
See references/description-examples.md for good/bad examples.
Step 4: Write Instructions
Structure the SKILL.md body using this template:
# Skill Name
Brief overview — what problem this solves.
---
## When to Use This Skill
Bullet list of trigger conditions.
## Workflow / Instructions
### Step 1: [First Major Step]
Clear explanation with actionable details.
### Step 2: [Next Step]
Include validation/checks between steps.
## Examples
Example 1: [common scenario]
User says: "..."
Actions: ...
Result: ...
## Troubleshooting
Error: [Common error]
Cause: [Why]
Solution: [Fix]
## Constraints
- Hard rules the skill must follow
Instruction quality checklist:
- Specific and actionable (not "validate things properly")
- Critical instructions at the top
- Bullet points and numbered lists over prose
- Reference bundled resources explicitly (
references/api-patterns.md)
- Include error handling for common failures
- Add examples with expected inputs/outputs
- Keep SKILL.md under 5,000 words — move detail to references/
Step 5: Write Reference Files (if needed)
For medium/heavy skills, create reference files:
- Each file focused on one sub-topic
- Track token costs in a reference table in SKILL.md:
| Section | File | ~Tokens |
|---------|------|---------|
| Topic A | `references/topic-a.md` | 2,500 |
| Topic B | `references/topic-b.md` | 4,500 |
Step 6: Validate
Run through this checklist before finalizing:
Structure:
Content:
Triggering (test mentally):
Step 7: Place the Skill
Determine where the skill should live:
| Scope | Location |
|---|
| Open standard (portable) | .github/skills/ in project root |
| Single project (Claude-specific) | .claude/skills/ in project root |
| All projects (global) | ~/.dotfiles/claude/global/skills/ |
| Domain-specific (this dotfiles) | ~/.dotfiles/claude/project/{domain}/skills/ |
Prefer .github/skills/ for open-source or cross-platform projects (works with Copilot, Codex, etc.). Use .claude/skills/ for Claude-specific skills.
Patterns Reference
Five common skill patterns — choose based on use case:
- Sequential Workflow — ordered steps with dependencies and validation gates
- Multi-MCP Coordination — phases spanning multiple services with data passing
- Iterative Refinement — draft → validate → improve loops with quality thresholds
- Context-Aware Selection — decision trees choosing tools based on input
- Domain Intelligence — embedded expertise (compliance, best practices, standards)
See references/patterns.md for detailed examples.
Troubleshooting
Skill not triggering:
- Description missing trigger phrases — add specific user utterances
- Description too vague — "helps with projects" won't match anything
- Wrong folder — verify skill is in a
.claude/skills/ or .github/skills/ directory Claude discovers
Description validation error (>1024 chars):
- Move detail to SKILL.md body, keep description to WHAT + WHEN + triggers only
- Cut redundant trigger phrases — keep 3-5 most distinctive ones
Skill not discovered:
- Folder name doesn't match
name field in frontmatter
- SKILL.md missing or wrong case
- Nested too deep — skills must be direct children of a
skills/ directory
Skill loads but behaves wrong:
- Instructions too vague — use specific verbs, not "validate properly"
- Missing constraints — add hard rules for what the skill must/must not do
- References not linked — Claude won't read files it doesn't know about
Anti-Patterns
- Description too vague ("Helps with projects")
- Description missing trigger phrases
- Instructions too verbose — move detail to references
- All content inline instead of progressive disclosure
- Ambiguous language ("make sure to validate things properly")
- Missing error handling
- No examples
Constraints
- MUST ask user for use cases before generating any files
- MUST validate frontmatter against rules before writing
- MUST use kebab-case for folder and name
- MUST include trigger phrases in description
- MUST place critical instructions at top of SKILL.md
- If skill has hooks/agents, note integration points but don't generate those here — use separate tools
Step 8: Post-Creation Validation
After placing the skill, suggest running /skill-content-reviewer on it to validate structure, content quality, and triggering behavior.
Example: Complete Minimal Skill
my-formatter/
└── SKILL.md
---
name: my-formatter
version: 1.0.0
description: "This skill should be used when the user asks to 'format output', 'pretty print', 'clean up formatting', or needs consistent output formatting. Applies project formatting standards to generated content."
---
Applies project-specific formatting standards to generated output.
Check if output is code, markdown, JSON, or prose.
- Code: run project linter config
- Markdown: enforce heading hierarchy, link style
- JSON: 2-space indent, sorted keys
- Prose: sentence case headings, no trailing whitespace
Confirm formatting passes project checks. If not, re-apply.
- Never change content meaning — formatting only
- Preserve existing valid formatting choices