The State of Agent Tooling 2026.1 — a structural census of the Claude Code artefact ecosystem
Authors/Creators
Description
9.70% of the published Claude Code artefact ecosystem does not load. 43,199 of 445,348 listings fail a structural check and cannot be registered by an agent runtime as published. This is the first published measurement of that rate.
Population. 347,382 skills, 71,430 subagents, 20,212 plugins, 6,324 marketplaces, discovered on GitHub and skills.sh and read from source. Scraped 2026-08-14. The listings come from 14,233 distinct repositories — an average of 31.3 apiece, because the ecosystem is heavily forked and vendored and the same file is counted once per repository carrying it. The failure rate is the citable figure; the population count is not a claim about how many distinct artefacts exist.
Method: static structural checking. Nothing is executed. No model judges
anything and no row is hand-curated. A listing fails only on a specific, checkable defect:
frontmatter that does not parse, a field the documentation marks Required: Yes that is absent, a
manifest that is not valid JSON, or a marketplace listing no plugins. name and
description are Required: Yes for a subagent and Required: No / Recommended for a
skill, per Anthropic's frontmatter reference, and are treated as fatal only on the kind that
requires them. Everything found is kept in the denominator, including everything that failed.
Failure rate by kind.
| Kind | Listings | Fail | Rate |
|---|---|---|---|
| skill | 347,382 | 27,398 | 7.89% |
| subagent | 71,430 | 15,669 | 21.94% |
| plugin | 20,212 | 33 | 0.16% |
| marketplace | 6,324 | 99 | 1.57% |
Failure by cause. A listing may carry more than one.
broken-frontmatter— 38,183no-name— 4,119no-description— 1,799broken-manifest— 128empty-marketplace— 99
Files.
census.json— every aggregate, plus the exact rule that decides a failure.broken-listings.csv— 43,199 rows, one per failing listing, with its repository, path and the cause that condemned it.listings.csv.gz— the full population, 445,348 rows.
Limits, stated. This is not an execution result — a listing that passes can still be wrong, useless or dangerous, and passing means only that the file parses into something a runtime could register. It is not a quality judgement. And it is not complete: discovery is bounded by GitHub's search API, which is rate-limited and does not return everything, so the population is a large sample of the public ecosystem rather than the whole of it.
Produced by SkillWorks, published under the Toolproof masthead by Kynth Studios. Method: toolproof.kynth.studio/methodology. Measurement vocabulary: /methodology/vocabulary. The live index updates nightly; this record is a dated, versioned snapshot of it.
Notes
Files
broken-listings.csv
Additional details
Related works
- Is derived from
- https://skillworks.kynth.studio (URL)
- Is documented by
- https://toolproof.kynth.studio/methodology (URL)
- Is supplement to
- https://toolproof.kynth.studio/census (URL)