Publish a subagent with no description line and nobody's Claude Code will ever hand it a task. Your file sits in the repository looking correct, it parses, it installs, and the one sentence the agent reads to decide when to delegate is absent, so there is nothing to route on.
That failure is silent by construction. A run that never selects a subagent does not error. It does the work inline, finishes, and reports that it finished. The self-report is accurate about the outcome and says nothing about the file you spent an afternoon writing.
What the census found
On 2026-08-14 I read every Claude Code skill, subagent, plugin and marketplace repository that could be found on GitHub and skills, from source, and checked one thing: whether an agent runtime could register the file at all. Not whether it is good, not whether it is popular. 445,348 artefacts, of which 43,199 fail, 9.7 percent.
The aggregate hides the finding. Subagents fail at 21.9 percent, skills at 7.9 percent, and the gap is 2.8 times.
| Kind | Read from source | Failing | Rate |
name required |
description required |
|---|---|---|---|---|---|
| Subagent | 71,430 | 15,669 | 21.9% | Yes | Yes |
| Skill | 347,382 | 27,398 | 7.9% | No, falls back to the directory name | Recommended |
| Plugin | 20,212 | 33 | 0.16% | Not a frontmatter question, plugin.json must parse |
Not specified |
| Marketplace | 6,324 | 99 | 1.6% | Not a frontmatter question, the manifest must list at least one plugin | Not specified |
The failure causes, counted across all four kinds: 38,183 files whose settings block does not parse, 4,119 subagent files with no name, 1,799 subagent files with no description. A file can carry more than one, so those do not sum to the total.
The same careless file is a working skill and a dead subagent
The reason subagents fail three times harder is not that the people writing them are worse. It is a difference between two pages of documentation.
Anthropic's subagent reference says "Only name and description are required" and marks both Required: Yes. The skills reference says "All fields are optional. Only description is recommended", marks name Required: No, and defaults it to the directory name. So one hurried block of settings at the top of a markdown file loads cleanly as a skill and dies as a subagent, and the author has no way to tell which of the two they wrote unless they read both pages.
That asymmetry is the whole 2.8x. It is a specification difference, not a culture difference.
A verdict that rests on someone else's sentence
Here is the part that made me change how the index stores its own rules. The pass or fail decision is exactly this, from src/data/census.json:
{
"always": ["broken-frontmatter", "broken-manifest", "empty-marketplace"],
"subagent_only": ["no-name", "no-description"],
"note": "works=false is exactly these flags and nothing else. Every other flag is a score deduction, not a load verdict."
}
no-name and no-description sit under subagent_only for one reason: two sentences on claude say so. If Anthropic revises either page, 15,669 subagent failures stop being failures and the headline number moves, without a line of my code changing.
So both sentences are stored in the product's claim register with a probe, which is the literal substring that has to still be present on the page. ops/qa/facts-gate.mjs --verify refetches both references and fails when a probe stops matching. Two dates are kept apart on purpose: asOf is the day a person read the source, lastVerified is the day a machine last confirmed the probe is still there, and --stamp may only move the second one. An HTTP 200 is not somebody having read the rule. Both probes last matched on 2026-09-04.
What I changed
I stopped treating a measured number as the thing that decays and started treating the rule underneath it as the thing that decays. The figures on the census page are my own measurements, so the only thing that can make them wrong is a bug in the export. The definition of "works" belongs to somebody else's documentation, and that is now the part with a probe on it and a gate that fails when it moves.
Toolproof publishes nine indexes that read AI agent tooling from source and record what they find, with the method for each one stated on the page. The census is free, CC-BY-4.0, and every figure above comes out of it.
A subagent with no description line never gets picked, so the rule that decides that is now stored with a probe and rechecked.

Top comments (1)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.