June 10th, 2026
0 reactions

Stop skillmaxxing, save your tokens

Principal Developer Advocate

You built a dozen skills for your technology: authentication, CRUD, error handling, deployment, testing, monitoring. Then you installed a cloud platform bundle with 15 more covering diagnostics, storage, compliance, and cost optimization. A design suite. A marketing pack. Document converters for Word, Excel, PowerPoint, PDF. Fifty skills, all sitting in your workspace. Here is why that’s a problem.

The tax you pay before typing a single prompt Every skill has metadata: a name, a description, trigger phrases, sometimes parameter schemas. When you start a session, the agent discovers all of them and injects their metadata into the context window. Whether you need them or not. Fifty skills with descriptions averaging 200 tokens each? That’s 10,000 tokens burned before you’ve asked anything. And that’s just the descriptions. If the agent decides to invoke one, the full skill content lands in context too. Stack a few invocations and you’re looking at tens of thousands of tokens spent on skills,

crowding out the workspace files and conversation history the model actually needs to help you. The thing is though, that most of those skills aren’t relevant to what you’re doing right now. You’re debugging an auth flow, but the agent is carrying metadata for your SEO audit skill, your cold email skill, your PowerPoint converter, and your 6 design taste variants. That’s noise, and noise has a cost.

Auto-invocation breaks down at scale Most skills are designed to be called automatically. The agent reads the task, scans what’s available, picks the best match, and calls it. That works with 3 skills. With 50, the agent starts guessing. Your “API authentication” skill and your “OAuth setup” skill both look relevant when someone asks about auth. Your 3 different “frontend design” skills all fire when someone mentions UI. The agent picks one (maybe the wrong one), or calls both,

burning tokens on redundant context. You’ve seen this: the agent calls a skill you didn’t expect, returns content you didn’t need, and response quality drops because the agent is drowning in options. So what do people do? They give up on auto-invocation and start typing /skill-name explicitly. Problem solved, right?

Explicit invocation doesn’t fix the real problem When you type

/my-deployment-skill, you bypass the auto-invocation mess. The agent calls exactly the skill you asked for. Except you’re still paying the metadata tax: all 50 skills are still discovered at session start, their descriptions still occupy context. You’ve fixed the selection problem but not the budget problem. And if you’re always invoking skills explicitly, you’re not really using skills. You’re using prompts with extra overhead.

Skills vs. prompts: know the difference Skills exist for

automatic invocation. The agent reads the situation, decides a skill is relevant, and calls it. The metadata is there so the agent can make that decision. If it never does because you always invoke manually, the metadata is pure waste. Prompts exist for manual invocation. You pick when to run them, and they don’t carry metadata that gets injected into every session. If you’re explicitly invoking something every time, it should be a prompt. If the agent should decide on its own, it should be a skill. Mixing these up means you’re paying skill-level overhead for prompt-level usage.

What to do about it The principle is the same regardless of tooling: stop paying context taxes on things you don’t use automatically. Many popular AI coding agents like

GitHub Copilot and Claude Code support disable-model-invocation: true in skills. Set it, and the skill won’t be automatically loaded into each session. It’s still there when you need it, but it stops claiming tokens just by existing. In Visual Studio Code, you have a second option: if your skill is just instructions without tool references, convert it to a .prompt.md file. Prompts are designed for manual invocation: reusable, parameterized, but invisible to the agent until you explicitly call them with /prompt-name. Zero metadata tax on sessions where you don’t need it. Either way, go through your skills and ask: does the agent need to find this on its own, or do I always know when I need it? Keep as skills only what the agent should genuinely decide to use on its own: the gaps you’ve measured that the model can’t figure out from training data. Everything else gets the flag or becomes a prompt.

The skillmaxxing trap Collecting skills feels productive. Each one represents a solved problem, a shortcut. But they’re not free. Every skill you add takes up space and makes auto-invocation less reliable for the ones that actually matter.

The best skill setup is the smallest one that produces lift. Three well-scoped skills that the agent invokes correctly will outperform 50 that fight for context. Convert everything you invoke manually to prompts. Build skills only for the gaps. And stop paying taxes on capabilities you’re not using.

Category

Author

Waldek Mastykarz
Principal Developer Advocate

Waldek is a Principal Developer Advocate at Microsoft focusing on AI Coding Agents. He researches AI Coding Agents, and evaluates and improves Agent Experience for Microsoft's products and services.

0 comments