We want to give the agent as many skills as possible. Picture it going into a mission with fifty of them, each one a document you wrote, a page, maybe ten.
An agent has to know what skills it has, or it can never use them. But every page it reads before the work begins takes room on the desk, and you already know that room runs out.
So at launch, when a session starts, the agent does not read the pages; it reads only the label of each skill, the name and the description of the problem that calls it up. Bug reproduction: use when a test fails and you suspect a bug. Fifty skills cost fifty short lines, not fifty pages. When it runs into the problem, it says, I might need this skill, let me use it, and only then does it read the whole page.
Skills are really, really good precisely because of context engineering, the work of choosing what the agent reads. Instead of thirty or forty thousand tokens at the start, about the length of a short book, the agent carries maybe one or two thousand, a few pages. The full instructions wait until the moment they are needed.
Your bug reproduction skill never runs, even on days when the agent clearly finds bugs. You open it, and the instructions inside are perfect. What do you fix?
Fix the label. At launch the label is all the agent sees. The agent compares the moment in front of it, a test that just failed, with the descriptions it carries. A vague description like "bug helper" names a topic, not a moment, so nothing matches, the page never opens, and perfect instructions never get read. Write the description as the situation: use this when a test fails and you think you found a bug. The description decides whether the skill is opened, and the instructions only matter after it is.