{"slug": "the-tomevault-instruction-corpus-2026-07", "title": "The TomeVault Instruction Corpus (2026-07)", "summary": "A developer released the TomeVault Instruction Corpus, a de-identified dataset of 229,375 AI instruction files (CLAUDE.md, AGENTS.md, SKILL.md, .cursorrules) with structural measurements. The dataset, licensed CC BY 4.0, includes columns for format, size, token count, and loadability, but excludes file contents and repository names to preserve privacy.", "body_md": "De-identified structural measurements of AI instruction files (CLAUDE.md, AGENTS.md, SKILL.md, .cursorrules and related conventions).\n\nEdition 2026-07. 229,375 files. Schema version 1.0.0. Licensed CC BY 4.0.\n\nTeams increasingly commit instructions for AI coding agents directly into their\n\nrepositories. `CLAUDE.md`\n\n, `AGENTS.md`\n\n, `SKILL.md`\n\n, `.cursorrules`\n\nand a dozen\n\nsibling conventions are now ordinary source-controlled artefacts, and almost\n\nnothing is measured about them.\n\nThis dataset is one row per instruction file that our pipeline has fetched and\n\nparsed, carrying that file's structural properties. Size, format, licence,\n\nwhether it names a model that no longer exists, and whether a deterministic\n\nruleset thinks an agent asked to load it would get what the author intended.\n\nIt contains no file contents, no owner names, no repository names and no URLs.\n\nEvery measurement in it is reproducible from the method described below.\n\nOne row per instruction FILE INSTANCE that the pipeline has fetched, converted, and RETAINED THE BODY OF. A row is a file, NOT a repository and NOT an owner: one repository commonly contributes many rows, and a widely-forked file appears once per fork. Any count derived from this table is a count of files unless it explicitly de-duplicates. Two exclusions narrow it further: rows whose deterministic security grade is 'fail', and rows the pipeline tracks without a stored body, which cannot be measured and are therefore absent rather than counted as passing. The retained-body requirement is the largest of the three filters, so this is a measurable subset of what we track and not a census of it.\n\nThree limits are worth stating before anyone builds on this.\n\nA row is a file, not a project and not a team. A popular instruction file that\n\nhas been forked four hundred times contributes four hundred rows. Any count\n\nhere is a count of file instances unless you de-duplicate it yourself, and the\n\ndifference between the two is large.\n\nThe observation window is ours, not the ecosystem's. The `ingested_week`\n\ncolumn\n\nrecords when our crawler first saw a file, which is not when it was written.\n\nGrowth curves drawn from that column describe our crawl, not adoption.\n\nStructural checks are not quality judgements. A file can pass every check here\n\nand still give an agent bad instructions. What the loadability columns measure\n\nis whether the instruction reaches the agent intact, which is a narrower and\n\nmore testable question than whether it is any good.\n\n| Column | Type | Meaning |\n|---|---|---|\n`format` |\nstring | The instruction-file convention this file follows, as detected by the pipeline (claude_md, agents_md, skill_md, cursorrules, cursor_mdc, gemini_md, copilot_instructions, windsurf_rules, other). |\n`format_family` |\nstring | The format grouped to its tool family (claude, agents, cursor, gemini, copilot, windsurf, skill, other). Formats that a single tool reads under more than one filename collapse to one family here. |\n`role` |\nstring | Whether the file is an always-on config, an on-demand skill, or a tome. |\n`source_platform` |\nstring | The platform the file was discovered on. |\n`account_type` |\nstring | Whether the owning account is an Organization or an individual User, as reported by the source platform. Null where the platform did not say. |\n`bytes` |\nint64 | Size of the file body in bytes. |\n`lines` |\nint32 | Number of newline-separated lines in the file body. |\n`token_count` |\nint32 | Approximate token count of the body, as computed by the pipeline at ingestion. Null where it was never computed. |\n`licence_spdx` |\nstring | SPDX identifier of the REPOSITORY's licence as reported by the source platform. Null means the platform reported none, which is not the same as the work being public domain. This population is licence-filtered, so the distribution here is not the ecosystem's: see the licence note in the biases section before deriving any rate from it. |\n`names_a_model` |\nbool | True when the body names at least one model identifier from the curated tracking list, at any lifecycle status. |\n`model_is_retired` |\nbool | True when the body names at least one model identifier whose curated status is deprecated, superseded or retired. False when the file names only live models AND when it names no model at all. Read this column together with names_a_model: the share of the whole corpus and the share of model-naming files are very different numbers, and only the first is a statement about the corpus. |\n`retired_model_count` |\nint32 | How many DISTINCT retired identifiers the body names. |\n`loadability_tier` |\nstring | The verdict of the deterministic loadability ruleset over this file: whether an agent asked to load it would get what the author intended. |\n`loadability_findings` |\nint32 | Number of distinct loadability checks that fired at least once on this file. Zero means the file passed every applicable check. |\n`has_broken_reference` |\nbool | True when at least one loadability finding is a reference the file makes to something that will not travel with it, or that is already gone. |\n`security_grade` |\nstring | Grade from the deterministic pattern scanner. Rows graded 'fail' are not in this dataset at all; this column distinguishes the rest. |\n`quality_grade` |\nstring | Grade from the deterministic quality ruleset. Null where never graded. |\n`ingested_week` |\nstring | ISO week (YYYY-Www) in which the pipeline first observed the file. See the ingestion-window caveat in the dataset card. |\n\nFiles are discovered by crawling public repositories, fetched, and classified by\n\nformat. Every measurement in this release comes from deterministic rulesets, not\n\nfrom a language model, so the same input always produces the same row.\n\nLoadability findings come from the same ruleset our product runs, version\n\n`loadability-v1.1`\n\n. The `has_broken_reference`\n\ncolumn is\n\ntrue when a file fires either the stale-path check or the reference-portability\n\ncheck, meaning it points at something that has gone or that will not travel with\n\nthe file when it moves.\n\nRetired-model flags come from a hand-curated list of model identifiers and their\n\nlifecycle status, last updated `2026-06-23`\n\n. Only\n\nidentifiers marked deprecated, superseded or retired are flagged. Matching is\n\nwhole-token, so `gpt-4`\n\ndoes not match inside `gpt-4o`\n\n.\n\nLicence classification reuses the same policy module that gates our own\n\ningestion, so the compliance figures here and our enforcement are definitionally\n\nthe same thing.\n\n`aggregate.json`\n\nin this release carries the corresponding month's headline\n\nmetrics computed over the same snapshot.\n\n**Read model_is_retired together with names_a_model.** Most files name no\n\n**The curated model list carries more dead identifiers than live ones.** That\n\nshape inflates any conditional staleness rate independently of how careless\n\nanyone has been.\n\n**Discovery is not uniform.** Coverage reflects what a crawler over public\n\nrepositories reaches. Private repositories, self-hosted platforms and files\n\ninside archives are absent, and there is no reason to assume the absent\n\npopulation resembles this one.\n\n**Security-failing files are excluded.** Rows whose deterministic security grade\n\nis `fail`\n\nwere removed before export. The remaining population is therefore\n\nslightly cleaner than the raw corpus.\n\n**The licence distribution is filtered, and it is not the ecosystem's.** Files\n\nwhose repository licence fails our ingestion policy do not reach this population\n\nat all, so permissive licences are heavily over-represented here by construction.\n\nA small share of rows additionally carry no SPDX identifier, because the source\n\nplatform reported none. Neither the shape of this column nor the size of its null\n\nslice supports any claim about how much of the wider ecosystem is unlicensed or\n\ncopyleft. Do not read a compliance rate out of this dataset.\n\n`ingested_week`\n\nis the ISO week in which OUR PIPELINE first observed the file, not the week the file was authored upstream. The series describes the pipeline's observation window and must never be presented as ecosystem growth. Deriving an adoption curve from this column is a misuse of it.\n\nThis release excludes every file belonging to an owner who has asked to be\n\nremoved. Owners are excluded at the OWNER level. The exporter first collects every owner having at least one row with opted_out = 1, then drops all rows belonging to those owners. Row-level filtering would leak the untouched rows of an owner who has already asked to be removed.\n\nEdition 2026-07 excludes 275 files across\n\n16 owners on that basis.\n\nTo be removed from future editions, contact [oli@tomevault.io](mailto:oli@tomevault.io). Because the\n\ndataset carries no owner names or repository names, removal takes effect by\n\ndropping the underlying rows, and subsequent editions simply do not contain\n\nthem.\n\nPlain text:\n\nTomeVault (2026). The TomeVault Instruction Corpus, edition\n\n2026-07.[https://tomevault.io/standards/state-reports]\n\nBibTeX:\n\n```\n@dataset{tomevault_instruction_corpus_2026_07,\n  title  = {The TomeVault Instruction Corpus},\n  author = {TomeVault},\n  year   = {2026},\n  note   = {Edition 2026-07, schema 1.0.0},\n  url    = {https://tomevault.io/standards/state-reports}\n}\n```\n\nCorrections ship as new dated editions. A published edition is never edited in\n\nplace, so a figure you quote does not change underneath you.\n\nThe full dataset, method and column definitions live at [https://tomevault.io/standards/state-reports](https://tomevault.io/standards/state-reports).", "url": "https://wpnews.pro/news/the-tomevault-instruction-corpus-2026-07", "canonical_source": "https://dev.to/olijboyd/the-tomevault-instruction-corpus-2026-07-3ib1", "published_at": "2026-07-31 16:19:39+00:00", "updated_at": "2026-07-31 16:36:38.767754+00:00", "lang": "en", "topics": ["developer-tools", "ai-agents", "ai-infrastructure"], "entities": ["TomeVault", ".cursorrules"], "alternates": {"html": "https://wpnews.pro/news/the-tomevault-instruction-corpus-2026-07", "markdown": "https://wpnews.pro/news/the-tomevault-instruction-corpus-2026-07.md", "text": "https://wpnews.pro/news/the-tomevault-instruction-corpus-2026-07.txt", "jsonld": "https://wpnews.pro/news/the-tomevault-instruction-corpus-2026-07.jsonld"}}