Skip to content

A Skill Pack is a SKILL.md + resources directory that Claude auto-loads when your request matches its description — metadata is always visible, instructions load on trigger, resources load on demand.

Primitive

Skill Pack

The three-level progressive disclosure

Different context costs. Loaded at different moments.

1

~100 tokens

Metadata (name + description)

Always in context. Claude scans all metadata to decide whether the skill matches the user's request. If the description is wrong, the skill never triggers.

2

≤ 5k words

SKILL.md body (instructions)

Loaded on trigger. When Claude decides the skill applies, the body gets inlined into context. Keep it lean — budget matters.

3

unbounded

Resources (templates, docs, scripts)

Loaded on demand. SKILL.md references files in the dir. Claude opens them only when the branch of the workflow needs them.

Level 1 is cheap and always-on. Level 2 is triggered. Level 3 is lazy. Context usage scales with skill depth, not skill size.

What a Skill Pack looks like

One required file. Everything else is optional.

.claude/skills/meta-skill/

meta-skill/├── SKILL.mdREQUIRED# YAML frontmatter + body├── docs/# reference files loaded on demand│ ├── progressive-disclosure.md│ └── vs-orchestrator-skill.md├── templates/# skeletons the skill fills in│ └── SKILL.template.md├── examples/# few-shot references└── scripts/# tools the skill invokes └── validate_skill.py

The required file

Two frontmatter fields. Description is the whole trigger.

SKILL.md

---name: meta-skill← unique identifierdescription: Use when creating← THE trigger conditionnew Skill Packs. GeneratesSKILL.md with proper structure.---# Meta-SkillInstructions, workflow, references to docs/...

The description is the match condition. Vague description → skill never loads. Too-broad description → skill loads for unrelated requests. Write it like a trigger, not like documentation.

How loading happens

Implicit. Claude decides, not you.

01

User asks

"make a new skill"

02

Claude scans descriptions

finds meta-skill match

03

SKILL.md loads

body inlined into context

Unlike Skill (orchestrator), a Skill Pack is never explicitly invoked by a slash command. The description is the trigger. This makes Skill Packs great for domain knowledge that should activate by intent — and terrible when you need deterministic invocation.

When to use Skill Pack vs alternatives

Pick by how the knowledge should activate.

Skill Pack

Domain knowledge that should load when user intent matches. Description triggers it. Example: "meta-skill" activates when user asks to build a skill.

Skill (orchestrator)

Multi-step workflow you invoke explicitly. Slash command or ADW fires it. Example: /product-spec runs a 6-agent pipeline.

Mental Model

Expertise that should be read at task start for a specific domain. Structured YAML, 1000-line cap, self-improved.

The discipline

The description is the loading contract.

Level 1 metadata always visible, Level 2 instructions triggered, Level 3 resources on-demand. Context scales with the branch you hit, not with the total size of the skill. A Skill Pack with a vague description is a file Claude never opens; with a precise description it's expertise that activates at the moment it matters.