Grounding for learn-skills sessions. These are the principles to critique against.
Skills use progressive disclosure. At session start, only each installed skill's name + description (frontmatter) loads into Claude's context. The full SKILL.md body loads only when the skill is invoked. Files referenced inside SKILL.md (e.g. reference.md, templates) load only when SKILL.md tells Claude to read them. This is what makes a large skill library feasible — most of the content is dormant until needed.
The implication: the description is the entire selection signal. Everything else is invisible until selection has already happened.
It's the only thing Claude sees when deciding whether to invoke. A vague description means the skill fires when it shouldn't, misses when it should, or shadows better skills.
A strong description has two parts:
- When to use — concrete triggers, not vague categories
- When NOT to use — the false-positive cases this skill should NOT be invoked for
If the description doesn't include "do not use for X," assume Claude will use it for X.
A skill that does five things has a description that vaguely covers five things, which is functionally a description that covers nothing well. Five focused skills beat one omnibus skill.
Symptom: a description with multiple "and"s connecting unrelated capabilities. Cure: split.
- Auto-invoked: Claude picks it. The description must be precise enough to fire on the right situations and only those. The body should assume zero ramp-up — Claude was just dropped into this skill mid-conversation.
- User-invocable (
/skill-name): the user picks it. The description can be terser because the user is explicitly selecting. The body can assume the user wants to do this thing right now.
A skill can be both, but the description should be optimized for the primary mode.
SKILL.md is not a README for humans. It is instructions Claude will follow. Write it in the imperative ("Read X. Then do Y. If Z, branch to..."). Avoid descriptive prose like "this skill helps you..." — that wastes tokens because Claude already knows it just got invoked.
Long context costs every invocation. If your skill needs 2000 lines of API reference, put it in a sibling file and have SKILL.md say "For the full API surface, read api-reference.md." Then Claude only loads it when actually needed.
The bar: every line in SKILL.md either runs every invocation or directs Claude to load more.
Negative instructions ("do not preamble," "do not summarize what you did") are often more valuable than positive ones, because Claude's defaults skew toward verbose, helpful, hedging behavior. If you want a sharp output, you usually have to suppress something.
A skill can have flawless instructions and still never fire because the description doesn't match how the user actually phrases the request. Always test by trying to invoke it naturally, not by reading the SKILL.md aloud and saying "yes that's what I'd want."
If auto-invoke fails three natural attempts, the description is the bug.
If a skill encounters a precondition that isn't met (a missing file, a wrong context, a project type it doesn't apply to), it should say so explicitly and stop, not muddle through. Silent muddling is how you get bad output the user can't easily diagnose.
| Smell | What's wrong | Fix |
|---|---|---|
description: Helps with code |
Will fire on everything | Add specific triggers + when-NOT-to-use |
description is 5 lines listing all features |
Doing too much | Split into multiple skills |
| SKILL.md opens with "This skill is designed to..." | Wasting tokens on Claude-facing prose | Cut the preamble, start with imperatives |
| 1500-line SKILL.md | No progressive disclosure | Move reference material to sibling files |
| No "do not" instructions | Will hedge, preamble, over-explain | Add explicit negatives |
| Same skill installed in three projects with slight variations | Drift will happen | Centralize in a shared skills repo |
When critiquing, ask:
- If I read only the description, do I know exactly when this should fire and when it shouldn't?
- Is there any situation where this skill could be wrongly invoked? Is that prevented?
- Does the body waste tokens on prose Claude doesn't need?
- Does it tell Claude what NOT to do, or just what to do?
- If I were mentoring someone, what's the one thing about this skill I'd point at and say "look at this"?