# Skill Structure The standard anatomy of a Claude Code skill, and how content is split across it via progressive disclosure. ## Required ``` skills// └── SKILL.md ``` `SKILL.md` is routing-only: "when to use" plus pointers to `workflows/*.md` and `references/*`. It should not inline substantial content — see `${CLAUDE_PLUGIN_ROOT}/references/progressive-disclosure/splitting-knowledge.md` for the size guidance that applies here too (SKILL.md itself should stay <=50 lines). ## Frontmatter expectations ```yaml --- name: skill-name description: [Action verb] [what]. [Unambiguous trigger]. --- ``` - `name` - kebab-case, <=64 chars, matches the directory name - `description` - follows the formula in `${CLAUDE_PLUGIN_ROOT}/references/layout/descriptions.md`; this is the only field another model sees before deciding whether to open the skill, so the trigger must be unambiguous ## Common additions ``` skills// ├── SKILL.md ├── workflows/ │ └── .md # one file per distinct task the skill handles ├── references/ │ └── / │ ├── reference.md # required routing file, see reference.md below │ └── .md ├── templates/ # repetitive structures to copy/fill ├── scripts/ # mechanical, deterministic operations └── state/ # gitignored working data, if the skill needs it ``` - `workflows/` - one file per task the skill handles (e.g. "create X", "audit X"). Each workflow states inputs, subtasks with subagent-tier hints, and outputs. - `references/` - knowledge organized by topic subdirectory. Every subdirectory needs a `reference.md` (see `${CLAUDE_PLUGIN_ROOT}/references/layout/reference.md`). - `templates/` and `scripts/` are optional and only added when the skill has mechanical, repeatable work to offload from the model. ## Progressive disclosure Splitting is not optional past a certain size — it's how the skill stays navigable for a model that only reads what it needs: - SKILL.md: routing only, <=50 lines - `reference.md` files: <=50 lines, list what's here and when to read each file, never duplicate the child files' content - Knowledge docs: target <=150 lines, hard limit ~200 (split if approaching) - Directory depth: <=3 levels (`references/topic/subtopic/`) Full splitting criteria (the "always needed together?" test, signs a doc should split, how to split) live in `${CLAUDE_PLUGIN_ROOT}/references/progressive-disclosure/splitting-knowledge.md`. ## Reversion protection (optional, added once a skill stabilizes) - `invariants.md` at skill root - behaviors that must not change without explicit approval - `examples/golden/` - golden examples that pin correct behavior - `.decisions/` - dated decision records See `${CLAUDE_PLUGIN_ROOT}/references/tool-patterns/reversion-protection.md`. ## Creating a new skill Follow the cc-architect workflow: → `${CLAUDE_PLUGIN_ROOT}/workflows/create-skill.md`