Sagrada — a linter for the belief state of agent instruction files
Sagrada — a linter for the belief state of agent instruction files<br>uvx sagrada-linter read .<br>code · PyPI · Apache-2.0
the Graveyard — a demo<br>When run on 400 of the most starred public repos, 14.5% had zombie rules walking in their agent instruction files.<br>top 80 by stars in each of five package ecosystems · 393 of 400 readable · not yet hand-checked for false positives, so 14.5% is a ceiling<br>This reads any public repo’s own history in the browser — no server, every request visible in devtools.<br>One GitHub request per commit that touched a rule file; GitHub allows 60 an hour per visitor. A long history can spend that in a single read — the CLI has no such limit.<br>read the recordWALKINGdeleted, now back — undeclaredno command — this is what the history shows<br>EXHUMEDdeleted, now back — declared, reason on the line: sagrada-linter restore wrote the reason<br>INTERREDdeleted, still goneno command — this is what the history shows<br>ENTOMBEDdeleted, still gone — with a dated tombstonesagrada-linter forget wrote it
limitations“The same rule” = the same term on a structured line (term: text or - term — text), lowercased and punctuation-collapsed; the text after the term may differ. Prose instructions are not tracked. This port is simplified — the CLI reads full history, signs a receipt, and wins any disagreement.
the Belief Rot Index — a weekly census of tracked repos<br>2026-W3138 repos27 CLEAR11 ROTTEN<br>reposcorezombiesdays walking (oldest)a tracked developer toolin AGENTS.md · unnamed518101a tracked agent-tooling libraryin CLAUDE.md · unnamed544187a tracked agent frameworkin CLAUDE.md · unnamed603222a tracked agent frameworkin AGENTS.md · unnamed65221a tracked developer toolin a rule file · unnamed661302a tracked agent frameworkin AGENTS.md · unnamed671a tracked agent frameworkin AGENTS.md · unnamed7415a tracked agent-tooling libraryin AGENTS.md · unnamed761170Cruxia-Labs/cruxia-engineself-listed·1000—Cruxia-Labs/sagrada-linterself-listed·1000—<br>Unnamed rows carry real numbers and no identity, itemized from the last reviewed bank (2026-W29).<br>the full Index →
Try it yourself<br>The same reading against a full clone. Shallow clones carry no history; the tool says so rather than printing a clean result.<br>git clone https://github.com/Cruxia-Labs/sagrada-specimen && cd sagrada-specimen && uvx sagrada-linter read .<br>EXAMEN — sagrada-specimen<br>reading 1 rule file across 17 commits. nothing leaves this machine.
o RESTORED WITH INTENT tone<br>"Keep error messages plain and unfunny"<br>killed 376ce593 2026-03-02<br>returned 2ba05a7d 2026-03-28 — with the decision on the books:<br>in-file · "restored 2026-04-02: the style guide never shipped"<br>not a zombie. an intentional restoration, recorded.
+ WALKING deploy_gate<br>"Always run migrations manually before deploy"<br>killed e48323d1 2026-02-14<br>revived 0f6c89af 2026-05-19<br>active again in CLAUDE.md:2 today · walking 74 days
sagrada-specimen: 1 walking · 1 restored with intentthe CLI’s own output, captured 2026-08-01 — the day count moves; the commits do not<br>the gateguard locks every dead rule and fails CI on an undeclared return, with the kill history in the failure. The specimen runs it on itself — three blocked pull requests and one declared restoration in its PR tab.<br>receiptsFindings carry a signed receipt that recomputes offline — three implementations on disjoint stacks. The verdict does not require trusting the party that produced it.<br>restoreA flagged rule can be one you re-added on purpose. restore writes the reason onto the line and the reading reports it as intentional. Wrong about your repo? Open an issue with the two commits.