Skill Creator
Create high-quality Claude Code skills following progressive disclosure — metadata always loaded, SKILL.md body on trigger, references on demand.
Core Process
1. Interview
Gather requirements through focused questions. Limit to 3-4 AskUserQuestion calls maximum:
- What should this skill enable?
- When should it trigger? (user phrases, file patterns, contexts)
- What tools does it need? (Read, Write, Edit, Bash, Agent, etc.)
- Where should it run? (Skills loaded into the main session inherit the user's chosen model. Only specify a model when the skill ships an agent with its own override.)
Skip questions where the answer is obvious from context.
2. Explore Existing Patterns
Use Glob + Read directly to find existing conventions in the target project:
- Glob
**/skills/**/SKILL.mdto list defined skills, read 2-3 closest matches - Sample the file structure and naming conventions via
ls - Detect the technology stack from manifest files (
package.json,composer.json,pubspec.yaml)
3. Dedup Audit
Read ${CLAUDE_SKILL_DIR}/../prompt-writer/references/cc-dedup-guide.md before drafting. Check what CC already provides natively — the skill body must not repeat general concepts the model already knows. Cut anything CC handles by default.
4. Draft Skill
Follow progressive disclosure. SKILL.md body ≤500 lines. Move detail to references/. Read references/skill-patterns.md for description patterns, invocation control, string substitutions, and directory structure before writing.
Key decisions at this stage:
- Which description pattern fits? (A/B/C/D — see skill-patterns.md)
user-invocable: false?disable-model-invocation: true? (see Invocation Control Matrix)context: forkif the skill is self-contained and parallelizable?paths:if the skill activates only for specific file types?
5. Wire References
CC does NOT auto-load references/ files. The model never sees them unless SKILL.md points to them explicitly.
- Add inline "read this when" links at the point of use.
- Add a
## Referencestable at the end for 3+ files. - Verify every file in
references/,scripts/,assets/is reachable — orphan files are invisible.
6. Frontmatter Validation
Read ${CLAUDE_SKILL_DIR}/../prompt-writer/references/frontmatter-schemas.md for the complete skill frontmatter schema. Key effective fields: name, description, when_to_use, user-invocable, disable-model-invocation, effort, context, agent, argument-hint, arguments, paths, hooks. Do NOT declare model, allowed-tools, disallowedTools, or tools — CC ignores them for plugin components.
7. Review
Present the draft. Run the quality checklist below before delivering.
Progressive Disclosure Architecture
Design every skill with three loading levels.
Level 1 — Metadata (~100 tokens)
- Only
name+descriptioninjected into<system-reminder>listing - Hard cap: 250 characters per entry — front-load key use case
- This is ALL the model sees until it invokes the skill
Level 2 — SKILL.md body (≤5k tokens)
- Full body injected on invocation via Skill tool or
/name - On context compaction: truncated to 5,000 tokens with ellipsis
- Target: <500 lines / <3k words. Challenge every token — the model already knows general concepts
Level 3 — Bundled resources (unlimited)
references/— detailed docs, API refs, schemasscripts/— executable helpers (stdout consumed, source NOT loaded)assets/— HTML templates, static files- NOT auto-loaded — model must explicitly Read them
- One level deep rule:
SKILL.md → reference.mdworks. Deeper chains break
Token Efficiency
- SKILL.md body under 500 lines / 3k words
- Large references (>100 lines) need a TOC at the top
- Scripts in
scripts/— executed, not loaded (only stdout consumes tokens) - Avoid time-sensitive information in the body
- Move API refs, schemas, and boilerplate to
references/
Quality Checklist
Run before presenting any skill to the user.
Frontmatter
- Description ≤250 chars, front-loaded with key use case?
when_to_usepresent for auto-triggered skills?user-invocable/disable-model-invocationset correctly?- No ineffective frontmatter declared (
model,allowed-tools,disallowedTools,tools)? pathsfield used if file-type specific?context: forkif parallelizable?
Content 6. Every sentence is an action? ("Consider" → "Use", "Extract", "Run") 7. No unnecessary concept explanations? (the model already knows them) 8. No vague words? ("good", "proper" → concrete rule) 9. No repetition across sections? 10. CRITICAL/IMPORTANT inflation? Maximum 1-2 per file
Progressive Disclosure
11. SKILL.md body <500 lines? References >100 lines have TOC?
12. Every reference explicitly linked with "read this when" guidance?
13. All files in references/ reachable from SKILL.md?
14. One level deep only — no chained reference files?
Style 15. Imperative mood throughout? No passive voice? 16. Nesting depth ≤1? Sentences under 25 words? 17. No hardcoded paths or usernames?
References
| Topic | File | When to read |
|---|---|---|
| Skill patterns | skill-patterns.md | Before drafting — description patterns, invocation matrix, string substitutions, directory structure |
| Shared writing conventions | ${CLAUDE_SKILL_DIR}/../prompt-writer/references/cc-dedup-guide.md |
Before drafting — what CC already provides natively (skip in skill body) |
| Frontmatter schema | ${CLAUDE_SKILL_DIR}/../prompt-writer/references/frontmatter-schemas.md |
During frontmatter validation — complete field reference |