An August paper proposes we stop installing skills into AI agents and start calling them by name. The idea is good and the diagnosis is better. The implementation has been on GitHub for three weeks, has two forks, and ships a package that doesn’t exist yet.
A prompt that keeps getting fatter
If you’ve wired up a coding agent with more than four or five skills, you know the feeling. Every skill you install drops its description into the system prompt, and there it stays — in every single message you send, whether you use it or not. It’s rent paid upfront and forever, in exchange for the possibility that one day the model remembers it has the thing.
On August 12, 2026, a SylphAI team — Li Yin, Zhi Li, Zhan Shi, Haoran Zhang and Haebin Seong — together with Zhangyang “Atlas” Wang of the University of Texas at Austin, published “@skills: Attention is all you have” (arXiv:2608.12610). The title is a joke. The argument isn’t.
Their starting point: installing is currently the only persistent channel through which a skill can reach an agent. And that channel has a laughably small capacity compared to what’s out there.
The diagnosis: fewer than a hundred seats
The format underneath all of this is SKILL.md: a directory with a markdown file and a frontmatter block carrying a name and a description. Anthropic launched it on October 16, 2025 and published it as an open standard that December. Today, essentially every serious coding agent reads it.
The paper says its July 2026 crawl found 56,804 public skills across 1,133 GitHub repositories, all of them competing for “fewer than a hundred reliable auto-trigger slots per agent.”
One hygiene note before we go on, because that number is catchy and will travel on its own: both figures are self-reported. The crawl is the authors’ own and there’s no way to reproduce it from outside. The hundred-slot ceiling is backed by their own evidence, which they themselves call “conservative,” leaning on the literature about positional bias and instruction dilution. It is not an independent benchmark. It’s a reasoned estimate from an interested party, and it should be read that way.
That said, the mechanism they describe is one we’ve all lived through: when the prompt fills up with descriptions, the model doesn’t trigger better. It triggers worse. Every resident instruction dilutes the rest.
What a cell does with this exact problem
Biology has had the answer for about three billion years.
A human cell carries roughly twenty thousand genes. It does not manufacture twenty thousand proteins at once — that would kill it in minutes on energy cost alone. What it does instead is keep the full catalogue somewhere cheap and cold (the DNA), transcribe on demand whatever it needs at a given moment, and keep permanently expressed only a handful of housekeeping genes: the ones you need always, no matter what.
Three different regimes for three different needs: being available, being at hand, and being switched on. Nobody confuses the catalogue with the inventory.
AI agents, meanwhile, have run on a single regime from day one: either you install the skill — and switch it on forever — or it doesn’t exist. The paper proposes separating exactly what the cell separated eons ago.
The three tiers
The proposal is called @skills, and it boils down to three ways of invoking a path.
Tier 1 · Reference. You write @skills:<path> and the full skill body is injected at the point of use. Nothing installs. Resident prompt cost: zero. When the session ends, it evaporates. This is the tier that serves the long tail: all 56,804 skills, without having to win a seat before being used even once.
Tier 2 · Saved. Add :save and the protocol vendors a copy into .atskills/, inside your project’s git-tracked tree. Editable, reviewable in a pull request, shareable with a git clone. Still zero resident tokens: discovery happens in your tooling’s autocomplete, not in the model’s prompt.
Tier 3 · Installed. Add :install and a line gets written into .atskills/.autotrigger, a file with .gitignore-style syntax — globs, ! negation, # comments. Only the frontmatter (name and description, roughly 50–100 tokens) stays resident; the body loads when it triggers. This is the only tier that pays rent, and the authors recommend keeping it under ten essential skills.
What the protocol refuses to have
This is my favourite part, and it’s a list of absences.
No manifest. No lockfile. No database, no mandatory registry. All state lives in the project’s file tree and is versioned with git, like everything else in the repo.
There’s no versioning or pinning either. A saved copy detaches from its provider the moment you save it, and all that remains is .source: a two-line provenance stamp — origin on the first line, date and upstream revision on the second — written once and never consulted to resolve anything. The protocol’s own wording is lovely: pure provenance. A birth certificate, not a leash. Delete it and you’re fully detached.
Resolution is local-first: if a folder exists at .atskills/<path>, that folder always answers its own address — the same gesture as Go’s vendor/. If nothing exists locally, the path means the cloud, resolved through a shared validating cache (~/.cache/atskills/, common to every conforming client) that behaves like a browser: each use asks “did this change?” with a single revision probe, not a re-download.
Zero new mechanisms. Everything is a convention borrowed from somewhere it already works.
The feature that turns this into governance
There’s one piece that reads like a product detail and that I think matters most in the medium term.
The reference client ships a command, atskills prompt (and its visual equivalent, the View prompt view inside /skills), that does something apparently trivial: it shows you the exact, verbatim text the model is going to receive, with its token count.
Think about that for a second. That’s an AI auditing capability. In a world where the EU AI Act asks for traceability over what a system does and why, being able to say “these are the instructions the model saw in this session, and here’s the one-line diff that changed” is infinitely better than the usual alternative: a monolithic seven-hundred-line AGENTS.md nobody reviews and a plugin list nobody can account for.
A .gitignore-style file governing what auto-triggers is, above all, a file reviewable in a pull request. That’s not a feature. That’s a stance.
Where this sits on the map
- MCP solves a different, orthogonal problem: connecting agents to tools and services through a server.
@skillsdistributes procedural instructions as text. They get along fine. The paper does lean on an Anthropic figure worth citing carefully, though: the −98.7% token reduction (from 150,000 to 2,000) Anthropic published on November 4, 2025 measures loading MCP tool definitions on demand from the filesystem instead of preloading them all. It does not measure a migration from MCP to skills. That bridge is built by the paper’s authors, not by Anthropic. - skills.sh, from Vercel, is today’s dominant community registry and indexes a good chunk of that corpus. Watch out for a confusion doing the rounds: its flow is
npx skills add— it installs. The “use without installing” slogan belongs toatskills.one, not to skills.sh. - Anthropic’s Agent Skills is the format standard everything else depends on.
@skillsdoesn’t replace it: it declares itself explicitly additive, with zero new fields. AGENTS.md/CLAUDE.mdis the real competition, and the paper admits it. It’s the crude but dominant convention. Tier 2 is presented, fairly honestly, as “anAGENTS.mdfactored into pieces” that load on demand instead of taxing every message.
The fine print
Now the uncomfortable part, which is why this article doesn’t end with “go install it.”
The repository was created on July 27, 2026. As of today, August 20, it has 66 stars and 2 forks. MIT licensed, no commercial restrictions — that’s good. But no other agent framework has integrated it.
The npm package atskills is not published. The registry returns a clean 404. The repo’s package.json declares the name and version 0.1.0, and the README itself lists publishing it as a pending task, so consumers can pin a version instead of pointing at a clone’s path. Right now, adopting this means cloning a repository.
The hub carries a curious contradiction between two primary sources: atskills.one is deployed and live, boasts 60,000+ skills and runs the slogan “your agent never starts from zero”; the repo’s README, meanwhile, says literally “the hub ships later.” I’m not picking a side — I’m reporting it.
And the detail that grates most. The paper’s first author is cofounder and CEO of SylphAI, the company that operates the infrastructure the paper advocates for — and that sells AdaL Engineer, its commercial agent, where the reference client lives. The conflict of interest exists, and the paper does not declare it. No competing-interests section, no funding statement. Just affiliations. For the record, the company has a track record: AdalFlow, its flagship library, is around 4,200 stars. But spec, reference client and the only production case cited all belong to the same house.
My verdict: take the pattern
The diagnosis is well argued and describes a real problem anyone with a moderately loaded agent has felt. Splitting into three regimes — available, at hand, switched on — is the right way to think about a context budget, and I’d be surprised if within twelve months it isn’t absorbed in some form into the official spec or into Vercel’s registry.
The implementation is another matter: barely three weeks on GitHub, a single vendor behind it, no published package and no measurable outside adoption.
So, the usual. Yes to the pattern, not yet to the dependency. Path-based addressing, versioned vendoring with minimal provenance, an auto-trigger file reviewable in a PR, and a cache that asks before it downloads: you can take all of that into your own system today without depending on anyone. Cloning a three-week-old repository and making it the backbone of your agent architecture, no.
The cell doesn’t keep the catalogue in the same place where it manufactures. We’ve been doing exactly that for two years, and the prompt has grown to the size of a wardrobe.
Ideas over code; evidence over smoke.

Leave a Reply