Cloudflare's draft spec for publishing Agent Skills at a predictable URL — an index at /.well-known/agent-skills/ lists each skill as a single artifact with a type, a URL and a SHA-256 digest. Apache-2.0, v0.2.0, and a draft rather than a ratified IETF RFC.
Skills live wherever whoever wrote them left them — a GitHub repo, a docs page, a link in someone's timeline, a paragraph of setup instructions for the user to follow by hand. Nothing answers the obvious question: what skills does example.com publish? This document registers agent-skills as a suffix under the RFC 8615 .well-known prefix, so the answer becomes a single fetch of https://example.com/.well-known/agent-skills/index.json.
The index is deliberately thin. Each entry is one artifact: a type of either skill-md for a lone SKILL.md or archive for a skill that ships scripts, references and assets, plus a url and a digest. v0.2.0 is what collapsed the earlier files array and package object into that flat model, made the digest a SHA-256 over the artifact's raw bytes, and replaced the version field with a $schema URI that clients match as an opaque identifier rather than parse. Names, descriptions and the SKILL.md format itself stay the Agent Skills spec's business; this one only covers finding them.
Progressive disclosure is the reason the index carries descriptions at all. Name and description cost roughly 100 tokens per skill at discovery, the SKILL.md body loads when a task activates the skill, and referenced files load after that if the task reaches for them — so a skill can bundle a reference manual without charging context for it upfront.
The half worth reading closely is what a client owes the user. Digests MUST be verified and unverified content MUST NOT be used. Unpackers MUST reject .. paths and links that escape the skill directory, and SHOULD cap unpacked size against decompression bombs. Clients SHALL NOT execute anything under scripts/ by default, and SHOULD allowlist origins before letting a SKILL.md — which lands straight in the model's context — be loaded at all.
Status matters here: this is a draft, v0.2.0, published 17 January 2026 and last updated 12 March 2026. It is not a published IETF RFC despite the repo name, and the flat artifact model already broke v0.1.0 once. Apache-2.0, ~334 stars, with examples/ holding index handlers for Next.js, TanStack Start, Astro and a plain CGI script. It's the discovery half of the same problem Accept Markdown solves for page content — a predictable URL beats a convention nobody can query.