Progressive Disclosure: Why You Can Install 30 Skills and Pay for Almost Nothing Claude Code Skills use progressive disclosure to load only relevant instructions per request, allowing users to install dozens of Skills without bloating context. A Skill loads in three stages: frontmatter always, body on request match, and files only when referenced. This design keeps sessions efficient and encourages modular Skill writing. Part 5 of the "Automating Playwright with Claude Code" series. In Part 4, we built a single playwright-form-tester Skill. This post explains the mechanism that lets you install dozens more like it without bloating every session — and shows how to structure a Skill to actually take advantage of it. If you've ever wondered "wait, if I install 10 Skills, does Claude load all 10 into context on every single request?" — the answer is no, and the reason why is one of the more elegant parts of how Claude Code Skills are designed: progressive disclosure . Understanding it changes how you write Skills, not just how many you install. It's the difference between a Skill and a bloated CLAUDE.md. A CLAUDE.md file is always fully in context. A Skill isn't — and that's the entire point.Completed Part 4 https://dev.to/aswani25/what-is-skillmd-building-a-reusable-playwright-testing-skill-for-claude-code-27b1 of this series, with the playwright-form-tester Skill installed. Comfortable editing a SKILL.md file and creating subfolders alongside it. Every installed Skill loads in three stages, only as needed: | Layer | What's in it | When it loads | |---|---|---| | 1. Frontmatter | name + description ~100 tokens | Always, for every Skill, at session start | | 2. Body | The full SKILL.md instructions | Only when your request matches the description | | 3. Files | references/ , scripts/ , assets/ | Only when a step in the body actually calls for that specific file | This is why installing 30 Skills doesn't mean paying for 30 Skills' worth of context on every request — you're only ever paying for Layer 1 across the board, plus Layers 2 and 3 for the one or two Skills that actually apply to what you asked. At the start of every Claude Code session, only this much of each installed Skill gets loaded: --- name: playwright-form-tester description: Test HTML forms using Playwright CLI. Use this whenever the user asks to test, validate, or verify a form login, signup, checkout, contact, etc. on a web page, or mentions form submission, validation errors, or success messages. --- The moment you say something like "test the checkout form" , Claude matches it against the description field above, and only then pulls in the full body: Process 1. Navigate to the target page with playwright-cli navigate