Capabilities as packages. For two years the agent stack treated "tools" as the unit of capability — one function, one schema, one prompt-time decision. In October 2025 Anthropic shipped Agent Skills: not a tool, not a prompt, but a versioned directory containing a SKILL.md manifest plus scripts and resources, that an agent loads only when relevant. Eight months later there are six public marketplaces, OpenAI shipped its own Skills feature on top of Apps SDK, Vercel launched skills.sh as the npm-equivalent registry, and the "skill = the new app" thesis has become the dominant frame in agent product strategy. The mechanism underneath is small and elegant — progressive disclosure — and the consequences are large: capability scales without context-window scaling, distribution decouples from model providers, and the question "what is my agent good at?" becomes a packaging problem rather than a fine-tuning problem.
To understand why skills exploded, hold them next to the two abstractions they sit between. A tool is a single function with a JSON schema; the model sees the schema in every system prompt, decides at each turn whether to call it, and the runtime executes it. A fine-tune is the opposite extreme: capability baked into weights, always available but expensive to produce and impossible to update without a retraining pipeline. Skills sit precisely in between. They are capability-shaped instructions that ride along with the model, get installed once, and get loaded into context only when the description suggests they apply.
Analogy first. Imagine you hire a contractor and instead of training them you hand them a binder. The binder has a one-page index at the front — "Section 3: dealing with HVAC permits in San Francisco." The contractor only flips to Section 3 when the job mentions HVAC and SF. Most days they never open it. But when they do, they get exactly the procedure, the form templates, and the local code citations — pre-curated, version-controlled, and identical across every contractor in the firm. The binder is the skill; the index is the SKILL.md frontmatter; the rest of the section is the body and the bundled scripts. The contractor is the LLM. The point of the binder is to keep the contractor's head empty until needed.
Now precise. A skill is a directory containing a SKILL.md file at its root. The file begins with YAML frontmatter — two required fields, name and description — followed by the body, which is a markdown procedure the model will execute when the skill is activated. The directory may include arbitrary additional files: Python scripts, reference documents, asset templates, sub-instructions. At agent startup the runtime scans every installed skill and injects only the name + description from each frontmatter into the system prompt. Anthropic's number is ~100 tokens per skill at this scanning level. That is the first level of disclosure. The second level fires when the model decides a skill is relevant and the runtime loads the full SKILL.md body — typically under 5,000 tokens. The third level fires when the body's instructions tell the agent to cat a bundled reference file, or execute a bundled script, pulling additional content or running code only at that moment.
Every installed skill contributes its name + description (and only those) to the system prompt at session start. This is the catalog the LLM browses. Each entry costs ~100 tokens, so an agent with 50 installed skills pays ~5K tokens of overhead — comparable to listing 50 tools, but with two crucial differences: the description is natural language (richer than a schema), and the body that gets loaded later is not bounded by tool-schema rules. The description doubles as the routing function — Anthropic's own docx skill description starts with "Use this skill whenever the user wants to create, read, edit, or manipulate Word documents."
When the model decides a skill applies, the runtime reads the rest of SKILL.md and injects it into the next turn's context. Bodies are typically 1–5K tokens of markdown — written as a procedure the model will follow, not as documentation a human reads. The body is allowed to reference bundled files: "Read references/openapi.yaml for the schema" or "Execute scripts/build.py with the inputs you've collected." Those bundled files don't enter context until that specific instruction runs. This is what Simon Willison called "effectively unbounded context bundling" — the skill can ship a megabyte of reference material and only the few hundred tokens the agent actually needs reach the prompt.
The body of a SKILL.md doesn't have to fit the task. It typically defines a procedure: "Step 1: list files in ./templates. Step 2: ask user which template. Step 3: cat the chosen template and substitute the variables." Each cat is a deliberate disclosure — the agent has chosen which file to read based on Steps 1–2. Anthropic's pdf skill is the textbook case: SKILL.md is short and points to references/forms.md, references/extraction.md, references/manipulation.md — only the relevant reference loads when the agent decides which sub-task it's doing. This is "progressive disclosure" in the original UX sense: don't show what isn't needed yet.
What this changes architecturally. A tool-only agent's capability is bounded by what fits in the schema list. A fine-tuned agent's capability is bounded by what fits in the weights. A skill-equipped agent's capability is bounded only by installed skill count × ~100 tokens of metadata — and the actual capability content is loaded just-in-time and can include executable scripts, multi-page references, and brand assets. Karpathy's January 2026 framing — "80% of my coding is now agent-driven" — only works in practice when the agent's procedural knowledge ships with the codebase as a CLAUDE.md + .claude/skills/ tree, not stuffed into a brittle mega-prompt. That is the architectural unlock.
Skills are unusual: they shipped as a product feature (Anthropic, October 2025) before the academic literature caught up. By Q2 2026 there are now several arXiv preprints formalizing what was invented in shipping code. Three to know — verified on arXiv.
pdf + docx in one task), skills are model-agnostic (the format is just markdown — no Anthropic-specific bindings), and the right level for capability packaging is "filesystem directory" rather than "tool schema" or "fine-tuned model."template/SKILL.md first. It is the canonical example of "what an Anthropic engineer thinks a description should look like."skills/writing-skills/SKILL.md for the recursion.skills.sh. npx skills install <name>, listings, leaderboards. Treats skills as a package manager problem first.blog/en/progressive-disclosure-of-agent-tools-from-the-perspective-of-cli-tool-style.md — it argues skills are the right primitive precisely because CLI tools already are.CLAUDE.md at the repo root plus a .claude/skills/ tree that loads procedural rules only when invoked. The viral derivative is the andrej-karpathy-skills repo that translated his complaints into a skill bundle.Native, since October 16, 2025. Available in Claude.ai (Pro / Max / Team / Enterprise), Claude Code, and the Claude API. The anthropics/skills repo ships 17 official skills as of May 2026 — docx, pdf, pptx, xlsx, claude-api, mcp-builder, brand-guidelines, and others. Loading is automatic via metadata pre-load; users can also install third-party skills as plugins. Plugins (Claude Code) are the next layer up: bundles of skills + MCP servers + slash commands.
SKILL.md is the native format. The 9 CVEs and 1184 malicious-skill incidents from Day 14 forced the ecosystem to add skill signing, capability-scope declarations in frontmatter (which APIs / files a skill may touch), and hub-and-spoke isolation between skills. The format you write for Claude works here unchanged — that portability is the entire pitch.
"Skills" launched as a separate feature alongside the Apps SDK (which is built on MCP). Workspaces define reusable workflows; admins control creation/sharing via role-based controls. This is a parallel implementation, not file-compatible with Anthropic's SKILL.md format — OpenAI's skills live in the workspace, not as portable directories. Vercel's skills.sh bridges this by supporting both formats. The Apps SDK (November 2025) handles the "remote capability" side that overlaps with MCP.
Reads .claude/skills/ and .codex/skills/ via the open SKILL.md format. Karpathy's viral CLAUDE.md and the derivative skills bundles work in Codex CLI essentially unchanged — this is the portability the format was designed for. Skill activation is description-driven; routing accuracy is the chief open issue at scale.
Gemini supports the SKILL.md format via Vertex AI's agent runtime. Google has been slower to ship a first-party skills marketplace, leaning instead on the Vertex Agent Garden (curated agents, not skill packages). Cross-vendor portability — write once, run on Gemini, Claude, GPT — is the explicit selling point that pressured Google to adopt the format.
name, description, optionally version / scopes) + markdown body containing the procedure.scopes: [filesystem.read, network.none] — it can't exfiltrate."quarterly-report task composes xlsx for extraction + docx for output + brand-guidelines for formatting."For two years, agent capability lived inside a vendor's product surface — Anthropic's tools, OpenAI's actions, Google's extensions. Skills change that. A SKILL.md file is a markdown directory; it travels with the user, the team, or the company, and runs on whichever model is cheapest that quarter. For botlearn.ai specifically: your courseware-as-skills strategy isn't a feature, it's a moat — students who install botlearn-cgo-toolkit as a skill bundle keep botlearn.ai's procedural value even if they switch chat tools.
Six public marketplaces, ~100K+ skills indexed across them, install counts measured in hours not weeks (skills.sh top skill: 20K installs in 6 hours of launch). This is starting to look like the early App Store. For botlearn.ai's GTM: pricing-per-skill, bundled skill packs, certified skills with botlearn branding — these are all SKU shapes that didn't exist 8 months ago. The first companies to publish a curated, branded skill catalog will set the category defaults.
The OpenClaw 1184-malicious-skill incident is the cautionary tale every enterprise CIO can now name. Marketplaces that ship security scanning, capability-scope enforcement, and signed skills are charging premium rates and getting them. For botlearn.ai: enterprise sales motion changes — "our skill bundle is signed, scope-restricted, and pen-tested" is a board-friendly sentence that "we wrote good prompts" never was.
The deeper structural point: capability is no longer a feature of a model or a function in an API. It is a packaging artifact — a directory with a manifest, just like an npm package or a Docker image. For botlearn.ai's roadmap: every workflow you've taught a student to do manually is a candidate skill, and every candidate skill is a distribution and pricing opportunity. The 17-day curriculum itself could ship as a skill bundle that loads into Claude Code and trains junior engineers on what to ask.