Skills Are the Package Manager for Procedural Knowledge
Every team building agents eventually hits the same wall. The system prompt started at 400 tokens. Then someone added the database migration checklist. Then the postmortem template, the deploy runbook, the style guide for customer emails. Eighteen months later it's a 9,000-token monolith that nobody dares to edit, because changing the line about rollback procedures somehow degrades the agent's tone in support tickets. You've built the prompt equivalent of a single 50,000-line main.c — and everyone is statically linking against it.
The instinct is to reach for RAG: chunk the runbooks, embed them, retrieve on demand. That fails in a subtler way. RAG is built to retrieve facts, and facts degrade gracefully when fragmented — three out of five relevant chunks about your billing model still tells the agent most of what it needs. Procedures don't degrade gracefully. A database migration runbook retrieved at 60% is not 60% useful; it's a production incident. Steps 1 through 4 without step 5 ("verify replication lag before cutting over") is worse than no runbook at all, because the agent now acts with confidence it hasn't earned.
What procedures need is a different loading model entirely: complete, versioned modules that activate by task type rather than semantic similarity, load whole rather than in fragments, and carry their own resources with them. That's not a retrieval problem. It's a dependency management problem — and the industry has quietly converged on a solution that looks exactly like a package manager.
Facts Retrieve; Procedures Install
The distinction worth internalizing is the one between declarative and procedural knowledge. Declarative knowledge — what your refund policy is, what the schema looks like, what the customer said last week — is fact-shaped. It tolerates chunking, benefits from semantic search, and stale fragments are individually harmless. RAG was designed for it and is genuinely good at it.
Procedural knowledge — how we do a database migration, how we write a postmortem, how we cut a release — has completely different physics:
- It's sequential. Order carries meaning. A retrieval system that returns steps by cosine similarity will happily hand back step 7 as the most "relevant" chunk while omitting the preconditions that make step 7 safe.
- It's all-or-nothing. Partial procedures create the illusion of competence. The agent doesn't know there was a step 5 it never saw.
- It's triggered by task, not by topic. You want the migration runbook loaded because the agent is doing a migration, not because the user's message happened to be embedding-adjacent to the word "database."
- It bundles artifacts. Real runbooks come with scripts, templates, and checklists. A retrieved text fragment can describe the validation script; a skill ships it.
Once you see this split, the failure mode of prompt-stuffing becomes obvious too. The monolithic system prompt loads every procedure for every task — you pay the token cost of the postmortem template while answering a question about button colors, and each procedure dilutes attention on the others. RAG under-delivers procedures; the system prompt over-delivers them. The right granularity is the module.
The Convergence Was Fast for a Reason
Anthropic shipped Agent Skills as a format in late 2025: a folder with a SKILL.md file — YAML metadata plus markdown instructions — optionally bundling scripts, templates, and reference documents. In December 2025 it became an open standard, and the adoption curve that followed was one of the steepest in recent dev-tools memory: OpenAI's Codex, GitHub Copilot, VS Code, Cursor, and Gemini CLI within weeks; roughly forty compatible platforms within six months. Community directories now index skills in the seven figures.
Formats don't spread that fast because of marketing. They spread because everyone was already building the same thing internally and was relieved to stop maintaining a proprietary version. Every serious agent team had some homegrown mechanism for "load these instructions when the task looks like X" — the standard just gave it a name and a file layout.
The mechanism that makes it work is progressive disclosure, and it maps precisely onto how package managers handle dependency metadata versus payloads. At startup, the agent sees only each skill's name and one-line description — a few dozen tokens per skill, the equivalent of scanning an index. When a task matches, the agent loads the full SKILL.md — installing the package. If the instructions reference deeper material (a schema reference, an edge-case appendix, an executable validation script), the agent pulls those only when needed — lazy-loading submodules. An agent can have hundreds of procedures available while paying context cost only for the two it's actually using.
That's the load-time story RAG can't tell: activation by declared purpose rather than embedding proximity, and atomicity by construction — a skill loads whole or not at all.
Your Process Docs Just Became Executable — Act Like It
Here's the implication most orgs haven't metabolized: the moment agents load your runbooks and follow them, your process documentation stops being documentation. It's code now. It executes. And almost nobody is applying code discipline to it.
- https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills
- https://agentskills.io/home
- https://github.com/agentskills/agentskills
- https://www.newsletter.swirlai.com/p/agent-skills-progressive-disclosure
- https://www.firecrawl.dev/blog/agent-skills
- https://agentman.ai/blog/agent-skills-ecosystem-report-2026
- https://snyk.io/blog/toxicskills-malicious-ai-agent-skills-clawhub/
- https://orca.security/resources/blog/ai-agent-skill-supply-chain-security/
- https://safedep.io/agent-skills-threat-model/
- https://blog.alexewerlof.com/p/rag-vs-skill-vs-mcp-vs-rlm
