skills/skills-authoring/progressive-disclosure/SKILL.md
Structure SKILL.md content so the model reads just enough — concise summary up front, progressively deeper detail, examples on demand. Covers section ordering, length budgets, when to split into multiple skills. Use this skill when writing or refactoring a skill body, one skill has grown too long, or a skill is wordy but not useful. Activate when: SKILL.md structure, skill content, skill too long, split skill, progressive disclosure, skill body.
npx skillsauth add latestaiagents/agent-skills progressive-disclosureInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A skill is consumed by a model with finite attention. Put the highest-signal content first, let depth come later. Length without structure is noise.
Target ≈ 150-300 lines. Order sections from most-essential to least:
1. ---frontmatter---
2. One-line bolded summary
3. When to Use (bullet list)
4. Core concept (≤ 5 sentences)
5. Minimal example
6. Deeper patterns / variations
7. Anti-patterns
8. Best Practices (numbered list)
The model reads top-down. Every section should earn its place.
# Skill Title
**One sentence that captures the whole skill's value proposition.**
If the reader stops after this line, they still learned something.
A bullet list of 3-6 situations. Concrete, not abstract:
## When to Use
- Your agent needs to remember user preferences across sessions
- You're replacing "stuff everything into system prompt" with structured state
- You're building coding agents that learn about a codebase over time
Bad:
5 sentences. Maximum. Explain the mental model:
The Memory tool gives Claude a file system. Claude issues read/write ops;
your app executes them on real storage. Per-user roots isolate data.
Unlike RAG, the agent curates what's worth remembering. Unlike context-stuffing,
state persists without growing every message.
If you need 3 paragraphs, you probably have two concepts and should split.
The fewest lines of code that demonstrate the thing:
const response = await client.messages.create({
model: "claude-sonnet-4-6",
tools: [{ type: "memory_20250818", name: "memory" }],
messages: [...],
});
No setup boilerplate the reader already knows. Start where the skill-specific code starts.
After the minimal, show variations and production patterns. Use subheadings:
### Persistent Containers
### Streaming Results
### Error Handling
Each pattern: 1 short paragraph + 1 short code block. Resist the urge to write an essay.
Numbered list of things people get wrong:
## Anti-Patterns
1. Running on a host with real data — one injection away from disaster
2. Using Computer Use when an API exists — 10-100× more expensive
3. No human-in-loop for destructive actions
This section is high-value. Readers who've hit these pain points become believers.
Numbered list of recommendations. Each one actionable:
## Best Practices
1. Use sub-agents for research and context isolation
2. Prompt sub-agents self-contained — they have no prior context
3. Require summarized output with word limits
Not "be careful", not "consider X" — imperatives.
| Skill type | Target length | |---|---| | Quick reference (git commands, API shapes) | 80-150 lines | | Concept + workflow (most skills) | 150-300 lines | | Deep dive (rare; prefer splitting) | 300-500 lines |
Past 500 lines you almost always have two or three skills masquerading as one.
Signals your skill should become multiple:
Split along:
Reference sibling skills by name, not duplicate their content:
See the `mcp-security-sandboxing` skill for full threat model.
If your skill is re-explaining what another skill covers, trust the reader will load both.
Skim the skill in 10 seconds. Can you answer:
If yes on all three, you're there. If no, the structure's off — reorder or trim.
await fetch(...) noise in every blockdevelopment
Test skills for correct activation, content quality, and regression — both automated checks (frontmatter validity, lint) and manual verification (query-suite activation testing). Covers CI integration and how to catch skill regressions before users do. Use this skill when adding skills to a repo, setting up CI for a skill library, or debugging "the skill exists but doesn't work". Activate when: test skills, validate skills, skill CI, skill linting, skill activation test, skill regression.
documentation
Write the YAML frontmatter for a SKILL.md file so it activates reliably — name, description, and activation keywords that the model matches against. Covers length, tone, and the most common frontmatter mistakes. Use this skill when authoring a new skill, fixing a skill that isn't auto-activating, or reviewing skills for publication. Activate when: SKILL.md frontmatter, skill description, skill activation, skill YAML, write a skill, author a skill.
development
Design skills that fire at the right moment — neither over-eager (noise) nor under-eager (silent). Covers activation specificity, trigger phrases, disambiguation between overlapping skills, and debugging activation. Use this skill when multiple skills could fire on the same query, a skill never fires, or a skill fires too often. Activate when: skill won't activate, skill over-activates, overlapping skills, skill triggers, skill selection, skill disambiguation.
development
OWASP A04 - XML External Entity (XXE) Prevention. Use this skill when parsing XML, processing SOAP requests, handling SVG uploads, or working with XML-based formats. Activate when: XML parsing, SOAP, SVG upload, XML input, DOCTYPE, DTD, external entity, XML bomb, billion laughs, XSLT.