Skill Builder
Create focused, discoverable Agent Skills that solve specific problems with clear descriptions and progressive disclosure patterns.
Workflow
1. Design the Skill
Before building, clarify:
- •What: What specific problem does this skill solve?
- •When: What triggers would tell Claude to use it? (3-5 concrete phrases)
- •Scope: Single capability or multiple related features?
- •Location: Personal (
~/.claude/skills/) or project (.claude/skills/)?
Example:
- •What: "Generate clear commit messages from git diffs"
- •When: "user wants to create a commit", "reviewing staged changes", "explaining code changes"
- •Scope: Single capability (commit messages only, not other git tasks)
- •Location: Personal (useful across projects)
2. Write the Description
Description formula: <What it does>. Use when <trigger> or <trigger> or <trigger>
Good: "Generate clear commit messages from git diffs. Use when creating commits, reviewing staged changes, or explaining what changed in your code."
Weak: "Helps with git" (too vague, no triggers)
Effective trigger words:
- •Action verbs: extract, analyze, generate, review, validate, debug, migrate
- •File types: PDF, .xlsx, Python files, YAML
- •Domain terms: commits, staging, forms, spreadsheets, SwiftUI
Length: Name max 64 chars, Description max 1024 chars
3. Create Directory Structure
For minimal skills (single focused task):
my-skill/ └── SKILL.md
For skills needing supporting files:
my-skill/ ├── SKILL.md (main instructions - keep <200 lines) └── REFERENCE.md (detailed patterns, examples)
4. Write the SKILL.md
Minimal template (under 200 lines):
--- name: Your Skill Name description: What it does and when to use. [Include 3-5 trigger phrases] --- # Your Skill Name ## Quick Start [One-paragraph overview of what this skill does] ## Instructions 1. Understand the requirement: [Ask clarifying questions] 2. [Core step with specific approach] 3. [Next step] 4. [Final step with verification] ## Examples [2-3 concrete, realistic examples] ## Best Practices - Do X in situation Y - Avoid Z because... - Use this pattern when...
5. Validate Skill Quality
Structure checklist:
- • YAML frontmatter valid (--- on line 1 and before content)
- •
nameunder 64 characters - •
descriptionunder 1024 characters - •
descriptionincludes 3-5 trigger phrases and covers "what" + "when" - • Markdown syntax correct (# for headers, ``` for code blocks)
- • All referenced files exist in skill directory
Discovery checklist:
- • Description could NOT describe a different skill
- • Trigger words match how users actually phrase problems
- • 3-5 concrete terms, not generic language
- • Clear distinction from related skills
Functionality checklist:
- • Instructions are step-by-step and clear
- • Examples are concrete, not abstract
- • Edge cases or limitations documented
- • Workflow is focused on single capability
6. Test Discovery
Generate 2-3 natural prompts matching your description:
For "Commit Message Generator":
- •✅ "Write a commit message for these staged changes"
- •✅ "Help me create a clear git commit"
- •✅ "I need to describe what I just changed"
- •❌ "Analyze my code" (wrong skill territory)
For "SwiftUI Engineer":
- •✅ "Review my SwiftUI code for anti-patterns"
- •✅ "Debug this view rendering issue"
- •✅ "Help me migrate this from AppKit to SwiftUI"
- •❌ "Write Python code" (wrong domain)
7. Common Patterns
Single-capability skill: One specific task (commit messages, PDF extraction)
Multi-mode skill: Related capabilities under one umbrella
- •SwiftUI Engineer: architecture, review, debugging, modernization
- •Keep main file 150-200 lines, use REFERENCE.md for detailed patterns
- •Main file explains "what mode to use when"
Structure Reference
Minimal Single-File
Use when: Focused skill with simple instructions
skill/ └── SKILL.md (100-150 lines)
With Progressive Disclosure
Use when: Related capabilities or lots of examples
skill/ ├── SKILL.md (150-200 lines with quick patterns) └── REFERENCE.md (300-400 lines with detailed examples and TOC)
Key Principles
Focused scope: One skill = one primary capability or related group
Specific triggers: Include domain terms users actually say
Progressive disclosure: Load details only when needed (use REFERENCE.md)
Concrete examples: Show real scenarios, not abstract ideas
One-level references: All references point from SKILL.md to supporting files only
No duplication: Don't repeat patterns across skills
Anti-Patterns to Avoid
❌ Overloaded: "Does commits, reviews code, analyzes data, generates docs..." → Split into separate focused skills
❌ Vague triggers: "Helps with stuff", "General purpose" → Add 3-5 specific domain terms
❌ Nested references: SKILL.md → REFERENCE.md → DETAILS.md → Keep references flat (only one level deep)
❌ Marketing language: "Amazing tool for awesome results!" → Be specific about what it does
When to Iterate
If Claude doesn't use your skill when expected:
- •Check YAML syntax first (most common issue)
- •Add more specific trigger words to description
- •Verify description covers both "what" AND "when"
- •Test with natural language phrasings
- •Make sure trigger words match user vocabulary