Day 31 · Bonus 14 May 20, 2026

Agent Skills & the SKILL.md Standard

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.

Read: ~25 min Level: Senior engineer accuracy Day 31 · Bonus 14
Curriculum progress
31 / 31
01 — Core Concept

A skill is a tool with manners — and three levels of disclosure

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.

1Level 1 — Metadata pre-load (always in context)

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."

If the description is vague ("does spreadsheet stuff"), the model will under-trigger; if it overclaims, it will over-trigger. The description is the entire UI of your skill — it gets more editorial attention than the body.

2Level 2 — Body load (only when triggered)

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.

3Level 3 — Resource load (file-by-file, on demand)

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.

# Three levels of progressive disclosure [level 1] agent startup ├─ scan ./skills/* for SKILL.md files └─ inject name + description from each YAML frontmatter ≈ 100 tokens / skill · always present · the catalog [level 2] model decides "skill X applies" ├─ runtime reads rest of skill-x/SKILL.md └─ inject body into next turn ≤ 5K tokens · procedural markdown · the playbook [level 3] body's instructions trigger sub-actions ├─ cat skill-x/references/forms.md ├─ exec skill-x/scripts/extract.py --input=… └─ inject only the output of that step arbitrary size · on-demand · the materials

02 — Papers to Know

Three papers that turned skills from product to research field

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.

Engineering Note Anthropic Blog · Oct 2025
Equipping agents for the real world with Agent Skills
Anthropic Engineering team
The launch post that defined the SKILL.md format and progressive-disclosure principle. Three claims to absorb: skills compose (an agent can chain 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."
Why it matters: This is the announcement that crystallized the abstraction. The "skill = directory + markdown manifest" definition is now the de-facto standard across Anthropic, OpenAI, Vercel, and the open ecosystem.
anthropic.com/engineering/…
Recent arXiv preprint 2026
Agent Skills for Large Language Models: Architecture, Acquisition, Security, and the Path Forward
Multiple authors · February 2026
The first systematic paper on skills as an academic object. It formalizes the three-level disclosure stack, distinguishes skill acquisition (hand-authored vs LLM-generated vs distilled-from-traces) from skill composition, and catalogs the security surface — injection through skill body, untrusted bundled scripts, dependency confusion when names collide across registries. The "Path Forward" section names skill marketplaces and skill signing as open problems.
Why it matters: Gives the field a shared vocabulary. The acquisition / composition / security tripartite is now how researchers structure follow-up work.
arXiv:2602.12430
Recent arXiv preprint 2026
SoK: Agentic Skills — Beyond Tool Use in LLM Agents
Multiple authors · February 2026
A Systematization-of-Knowledge paper that explicitly contrasts skills with the older "tools" abstraction. Argues that tools (single function, schema-typed inputs) and skills (procedural markdown, multi-step, bundled resources) are complementary rather than substitutable — a skill typically calls several tools and connects them with prompt-time reasoning. Maps out the composition graph: skills calling skills, skills calling MCP servers, MCP servers shipping skills.
Why it matters: If you only read one paper, read this one — it gives you the mental model for when to write a tool vs when to write a skill vs when to write an MCP server.
arXiv:2602.20867
Recent arXiv preprint 2026
Organizing, Orchestrating, and Benchmarking Agent Skills at Ecosystem Scale
Multiple authors · February 2026
First attempt at evaluating skill collections, not skills in isolation. Introduces a benchmark that measures (a) routing accuracy — does the agent pick the right skill from N installed? (b) composition success — when two skills both apply, does the agent chain them correctly? and (c) negative-set discipline — does the agent refuse to invoke a skill that doesn't apply? Finds that routing accuracy degrades sharply past ~30 installed skills unless descriptions follow strict authoring conventions.
Why it matters: First quantitative evidence that "description discipline" is the bottleneck in scaling skill libraries. Marketplaces are now copying the benchmark's authoring conventions into their submission guidelines.
arXiv:2603.02176

03 — GitHub Pulse

The repos that define what "a skill" actually looks like

anthropics/skills actively maintained
Anthropic's public skills repository. The reference implementation — docx, pdf, pptx, xlsx, claude-api, mcp-builder skills all live here.
Read template/SKILL.md first. It is the canonical example of "what an Anthropic engineer thinks a description should look like."
obra/superpowers actively maintained
Jesse Vincent's "superpowers" plugin — a skills bundle for software engineering agents. TDD, systematic-debugging, verification-before-completion skills.
Studies the meta-skill problem: which skills are about how the agent should work? Read skills/writing-skills/SKILL.md for the recursion.
vercel-labs/skills actively maintained
The reference CLI for skills.sh. npx skills install <name>, listings, leaderboards. Treats skills as a package manager problem first.
If you want to understand how Vercel is positioning skills as "npm for agents," this is the source of truth — including the manifest, install resolver, and registry API.
obra/superpowers-marketplace actively maintained
A curated plugin marketplace for Claude Code. Bundles of skills shipped as installable plugins. Shows the layering: skill → plugin → marketplace.
Plugins are the distribution unit one level above skills. Worth tracing to see why Anthropic separated the two abstractions.
travisvn/awesome-claude-skills actively maintained
An awesome-list of Claude Skills, plugins, marketplaces, and authoring tools. The default starting index for the ecosystem.
Use it to find adjacent ecosystem: skill linters, description optimizers, automated migration tools. The metadata is where the bottleneck has moved.
musistudio/claude-code-router actively maintained
A skill-aware router for Claude Code — picks which model handles each skill invocation. Hosts a blog post that became influential on progressive disclosure as a CLI pattern.
Worth reading the blog at 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.
Star-count discipline: the public counts moved fast (some sources cite 73K, others 138K) over a short window. Treat "actively maintained" as the safe label; what matters is that all six repos are the canonical references, not the snapshot count.

04 — Community Pulse

What the people building this think — last 30–60 days

Simon Willison · simonw.substack.com / late October 2025
"Claude skills are awesome, maybe a bigger deal than MCP."
Willison's headline post reverse-engineered the format the same week it shipped. His argument: MCP standardized how agents reach remote capability; skills standardize how they carry local capability — and most production tasks need the latter more than the former. The post is widely cited as the moment the developer community caught on. source
Andrej Karpathy · X post · January 26, 2026
Karpathy has argued that the failure mode of agent-driven coding is the model "making wrong assumptions without checking, over-complicating everything, and quietly messing with unrelated code as side effects," and that the cure is a 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.
Significance for our purposes: Karpathy is not framing skills as "a feature of Claude" but as "the unit of corrective procedural memory" for any agent. That framing is what made skills cross from Anthropic-specific to ecosystem-standard.
Harrison Chase · LangChain · Spring 2026
Chase has argued that owning your agent harness is non-negotiable, because "when you use a closed agent harness, you're giving away your agent's memory, and memory is really just context." The implication for skills: a skill bundle is the portable form of an agent's procedural memory — if you keep the bundle, you keep the agent's IP regardless of which model vendor you swap in.
This is the framing that's reshaped LangChain's positioning in 2026 — from orchestration framework to "carrier" for portable skill + memory bundles.
Anthropic Engineering · October 16, 2025
The launch post stated the design goal directly: skills are the way to "equip agents for the real world" — meaning, give them domain-specific procedural knowledge without retraining and without context bloat. The progressive-disclosure framing was elevated to a first-class principle, not an implementation detail.
Worth reading verbatim — it's the rare launch post that doubles as the canonical technical spec. source

05 — Platform Deep-Dive

How each platform implements skills today (May 2026)

Claude
Anthropic · originator

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.

OpenClaw
open ecosystem

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.

ChatGPT / GPT-5.5
OpenAI

"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.

Codex CLI
OpenAI · CLI agent

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 3.1 / Vertex Agents
Google DeepMind

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.

The cross-vendor portability story is what makes skills strategically interesting. Tools were locked to schemas; fine-tunes were locked to weights; skills travel as markdown. In a CGO conversation, this is the single most important sentence: skills are the first agent capability format that travels with the user, not the vendor.

06 — Vocabulary

10 terms to use with engineer-level precision

Progressive disclosure渐进式披露
The three-level loading scheme: metadata always in prompt → body loaded on trigger → bundled resources loaded only when the body's instructions explicitly read them.
⚠ Misuse: treating it as a marketing phrase. It is a quantifiable mechanism — count the tokens at each level.
"Their skill loader doesn't do progressive disclosure — they're pre-injecting all bodies, which is why their 50-skill agent has 250K of system prompt."
SKILL.md技能清单文件
The required manifest file at a skill's root. YAML frontmatter (name, description, optionally version / scopes) + markdown body containing the procedure.
⚠ Misuse: treating it as documentation. It is an instruction file the model executes — written in second person, with imperatives, not as a README.
"The SKILL.md description triggers; the body executes. Two different writing styles."
Description routing描述路由
The implicit selection mechanism by which the model chooses a skill from the catalog using only the descriptions. Routing accuracy degrades as the catalog grows.
⚠ Misuse: assuming you can "fix routing" with prompt engineering. Past ~30 skills you need authoring conventions and possibly a router layer.
"They tried to scale to 200 skills with vague descriptions and routing accuracy collapsed."
Bundled resources捆绑资源
Files in a skill directory other than SKILL.md — scripts, reference docs, asset templates. Loaded only when the body's instructions explicitly read or execute them.
⚠ Misuse: shipping bundled resources you forgot to reference from the body. The model can't see them.
"Their PDF skill bundles a 200-page IRS form library and only loads the relevant form when the user names a form type."
Capability scope能力作用域
Frontmatter-declared restrictions on what APIs, files, or tools a skill is permitted to use. The OpenClaw ecosystem made this mandatory after the 1184-malicious-skill incident.
⚠ Misuse: confusing capability scope (what a skill can do) with sandboxing (what the runtime enforces). Scope is declarative; sandboxing is the enforcer.
"This skill declares scopes: [filesystem.read, network.none] — it can't exfiltrate."
Skill composition技能组合
An agent invoking multiple skills in a single task — typically the body of one skill triggers another. PDF→DOCX is the canonical example.
⚠ Misuse: writing a single mega-skill that does everything. Composition only works when each skill is single-purpose and its description is sharp.
"Their quarterly-report task composes xlsx for extraction + docx for output + brand-guidelines for formatting."
Plugin插件
The distribution layer one above skills. A plugin bundles skills + MCP servers + slash commands into a single installable unit (Claude Code terminology).
⚠ Misuse: using "plugin" and "skill" interchangeably. A plugin can ship zero skills (if it's pure MCP) or many.
"Anthropic's official plugin marketplace ships plugins; each plugin contains 1–N skills."
Description discipline描述规范
The authoring conventions (use trigger words, name file types, list when NOT to use) that determine routing accuracy at scale.
⚠ Misuse: leaving description authoring to engineers. It is closer to product copy than to docstrings — review it editorially.
"Their authoring guide requires every description to list both trigger phrases and an explicit 'do not use for' clause."
Skill marketplace技能市场
A registry that hosts skills for discovery, install, and update. Examples (May 2026): skills.sh (Vercel), agensi.io, skillsmp.com, LobeHub Skills, claudebazaar.com.
⚠ Misuse: assuming all marketplaces are equivalent. They differ on curation strictness, security review, creator payments, and MCP-based delivery.
"Agensi takes 20% — most of the rest take less but do no security scan."
MCP-delivered skillMCP 交付技能
A skill that lives on a remote MCP server and is loaded on demand rather than installed locally. The newer marketplaces favor this — no version drift, no local clutter.
⚠ Misuse: thinking MCP and skills are alternatives. MCP can be the transport for a skill; the skill format is still SKILL.md.
"They moved their internal skills to MCP delivery so legal could enforce one auditable version."

07 — Expert Questions

5 questions that reveal you've thought about this

Q1
At what skill-count does your routing degrade, and what's your description-authoring convention?
The Q2 2026 paper found degradation past ~30 skills without strict conventions. Anyone shipping a real product has hit this wall and either solved it with description discipline, added a router layer, or capped catalog size. "We just have great descriptions" is not an answer.
Q2
Where do you draw the line between a tool, a skill, and a fine-tune?
The serious answer is: tool = single function with a typed schema; skill = procedural markdown that may chain multiple tools; fine-tune = behaviors so persistent or so latency-sensitive that prompt-time loading is the wrong shape. Anyone who only uses one of the three is leaving capability on the floor.
Q3
How do you secure the third level of disclosure — the bundled scripts?
Level 1 and 2 are just text — the worst case is a confused model. Level 3 can execute code. Capability-scope declarations + signed skills + sandboxed execution are the table-stakes triad. If they don't mention sandboxing, they have an OpenClaw-1184 incident waiting.
Q4
If we swap our model vendor next quarter, which skills come with us and which die?
SKILL.md format skills (Claude / Codex / OpenClaw / Gemini-via-Vertex) port directly; OpenAI workspace-style "Skills" do not. The honest answer is: "we standardize on the markdown format and treat workspace-locked skills as throwaway." Anything else is vendor lock-in repackaged.
Q5
Composition vs router-layer: at what point do you stop trusting description-routing and add a deterministic dispatcher?
Description routing is elegant but probabilistic. When the cost of mis-routing is high — wrong tax form, wrong legal template, wrong escalation path — production teams add a deterministic dispatcher on top: a rules engine or a small classifier that hard-routes intent to skill. Anyone shipping safety-critical agents has done this; anyone who hasn't will.

08 — CGO Lens

Why this matters for botlearn.ai (and your sales decks)

$Distribution decouples from the model vendor

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.

Skills are the new SKU

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.

Security review becomes a competitive advantage

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.

Product strategy: the right unit of capability is a directory

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.

~100
tokens per skill at metadata pre-load (Level 1)
≤5K
tokens for a full SKILL.md body when triggered (Level 2)
~30
skill-count where routing accuracy degrades without authoring discipline
6+
public skill marketplaces by Q2 2026 (skills.sh, agensi, skillsmp, LobeHub, claudebazaar, more)
17
official skills shipped in the anthropics/skills repo as of May 2026
20K
installs in the first 6 hours after skills.sh launched (top skill)

09 — Curriculum Tracker

Where Day 31 sits in the journey

D01Full Agent Stack
D02Memory Architecture
D03Planning & Tool Use
D04RAG Deep Dive
D05Agent Frameworks
D06Benchmarks & Eval
D07Multi-Agent Systems
D08Computer Use Agents
D09Code Agents
D10Long-Horizon Tasks
D11Agent Safety
D12Agent Economics
D13Research Frontiers
D14OpenClaw Deep-Dive
D15A2A Protocols
D16Agentic Commerce
D17Synthesis
D18Reasoning & Test-Time Compute
D19Agent Observability
D20Voice & Realtime Agents
D21Agent RL & Fine-tuning
D22Context Engineering
D23Open-Weight Agent Models
D24Deep Research Agents
D25Async Agents
D26Agentic Browsers
D27Embodied & VLA Models
D28Generative UI
D29Agent Sandboxing
D30Personalization & User Memory
D31Agent Skills & SKILL.md ← today
Day 31 closes the loop opened on Day 03 (Planning & Tool Use) and Day 14 (OpenClaw Deep-Dive). Tools were "what an agent can call." OpenClaw was "how a hub-and-spoke skill ecosystem fails when unsigned." Day 31 is the synthesis: capability is a directory, distribution is a marketplace, and SKILL.md is the format the entire industry now reads.