Skip to content
Engineering the next generation of applied AIExplore more

August 12, 2026 · The journal

The Three Levels a Skill Loads In

The usual objection to Skills is that they will eat the context window. It is a reasonable fear and it is wrong, because a Skill is not one blob of text. It loads in three stages, and two of them cost nothing until you need them.

Second in a series on Agent Skills.

Level 1 — metadata, always loaded

At startup, only the name and description of every installed Skill are placed in the system prompt. Roughly a hundred tokens each.

That is the number that matters for the objection. Thirty Skills installed is about three thousand tokens of permanent overhead — the price of a short email. You can install a lot of capability before this is worth optimising.

Level 2 — instructions, loaded on trigger

When your request matches a description, the agent reads SKILL.md off the filesystem and its body enters context. The guidance is to keep this under about five thousand tokens.

Note what just happened: the body was on disk the whole time, costing nothing, and became visible only at the moment it was relevant. This is the mechanism, and it has a name — progressive disclosure.

Level 3 — bundled files, loaded only if read

A Skill can ship as many extra files as you like: additional markdown, API references, database schemas, templates, examples, executable scripts. None of it costs anything until something reads it.

The consequence is unintuitive and useful: there is no real limit on how much you bundle. A Skill can carry a complete API reference and a dozen worked examples. If a task needs one of them, one loads. The rest stay on disk at zero cost.

what sits in the context windowLEVEL 1name + descriptionalways · ~100 tokens eachLEVEL 2SKILL.md bodyon trigger · under 5k tokensLEVEL 3REFERENCE.md · schema.sql · examples/ · scripts/ — on disk, unread, freea script is the special case:its code never enters context — only the output it prints does
Three levels. Only the first is unconditional, and it is the cheapest.

What this looks like in a real Skill

Here are the measurements from a Skill sitting on my machine, one that recommends automation for a codebase:

So a Skill carrying roughly 43KB of material has a resting cost of a couple of sentences. Ask it about hooks and one 6KB file opens; the 8KB one about MCP servers stays shut.

The design rule this implies

Because Level 2 is paid in full every time the Skill fires, and Level 3 is paid only when read, the split matters:

A common mistake is a single 20,000-token SKILL.md that documents every branch. It works, and it charges the full price on every trigger. Splitting it costs nothing and often makes the instructions clearer, because the main file goes back to describing the happy path.

Where the model does the reading

Worth being precise about the mechanism, because it explains the cost model. There is no special loader. The agent reads these files with ordinary shell commands, the same way you would. When instructions mention another file, it reads that file too. When they mention a script, it runs it and sees only what the script printed.

That last clause is the most useful sentence in this series, and the next article is about it.

What to take away

Skills are cheap while idle, moderately priced when triggered, and free for anything they carry but do not read. Design against that gradient: a lean body, generous references, and the expensive detail one level further out than feels natural.

Next: why the description is the only part of a Skill most requests will ever see.

Bring the difficult part. Let’s build what comes next.

Get in touch