# Context Budget Is Spent By Default Not By Exception ## Claim When a fixed context window is shared across many active skills or plugins, every unconditionally-loaded piece of text is a standing tax on every session — so the default for a new skill should be a lazy-loaded body or hook-gated injection, not always-on prompt text. <!-- atomicity: 1 idea ✓ --> ## Scope & conditions - Holds when many skills/plugins compete for one context window — directly true of a large personal Claude Code skill library. - Breaks when a single fact is needed in nearly every session — at that point the fixed injection cost may be cheaper than repeated on-demand retrieval, and always-on loading is the right call. - Doesn't argue against customization generally — argues for treating context as a scarce, cache-sensitive resource by default rather than an unlimited one. ## Evidence Daisy Hollman (Anthropic) scores Claude Code's four plugin primitives on whether each "pays for what you don't use." MCP servers and skill description strings both tax every session even when idle — enough MCP servers or skills at true enterprise scale floods the context window regardless of relevance. Hooks are the one primitive that injects nothing until a specific trigger fires. Anthropic deliberately never built a plugin-level CLAUDE.md abstraction for this reason: unconditional prompt injection caps a setup at roughly 5–10 active plugins before context is dominated by boilerplate. > "hooks do scale... you don't pay for anything you don't use except for like CPU resources" ## Links - [[3. Resources/Permanent Notes/Early Observability Hooks Trade Completeness for Exposure Risk]] — because contrasts: that note is about a hook's *placement* trading completeness for exposure risk in a WordPress request lifecycle; this note is about a hook's *cost model* trading always-on overhead for conditional relevance in an agent's context window — different domains, same underlying discipline of examining what a "hook" actually costs before assuming it's free. - [[3. Resources/MOCs/AI Cost & Tokenomics MOC]] — because applies-in: directly actionable for any Claude Code plugin/skill-authoring decision under a fixed token budget. - [[3. Resources/Literature Notes/A Claude Code Skill Was Eating 200,000 Tokens Before Answering a Single Question]] — because evidence-for: Anthropic's own bundled skill eager-loading its full reference library is the strongest available demonstration that the default, not author carelessness, is what spends the budget. - [[3. Resources/Permanent Notes/Running Work Less Often Can Raise the Worst Frame When Every Instance Shares One Schedule]] — has evidence from: Cutting how often a repeated job runs lowers total work, but if every instance moves to the same new schedule, the instances fire together and one frame takes the whole load. ## Tests / falsifiers - Audit a personal Claude Code skill library for always-on/unconditional-injection patterns versus hook-gated or lazy-loaded skill bodies; measure the token cost of the always-on descriptions alone. - If task success rate doesn't measurably degrade as more always-on skills/MCP servers are added (up to some large number), that would weaken the claim that unconditional injection is a meaningful cost in practice, not just in theory. ## Maintenance - Last tended: 2026-08-16 - Next review: 2026-11-16 ## Source - [[3. Resources/Readwise/Articles/How Anthropic Uses Claude Code Agentic Software Engineering at Scale - Daisy Hollman]] — conference talk by Daisy Hollman, Anthropic Claude Code team.