Skip to main content

The guards

28 automated checks run against this site. Each one names a file, a rule and a finding; each one exits non-zero when the site and its own source of truth disagree. This page is generated from those scripts and from the workflow files that run them, so a guard cannot be added, removed, renamed or quietly unwired without this table following.

Why that matters more than the count. A hand-written list of what CI checks is the artifact a reviewer should trust least: it is a claim about coverage, written by the people whose coverage it describes, with nothing keeping it true. MEASURED 2026-09-24: four of these 28 were referenced by no workflow at all and had never been — they ran only when somebody remembered. They are wired now, and an unwired guard is a red run rather than a footnote.

Controls is how many planted defects a guard is tested against by its own self-test: a fixture is mutated and the run must go red for the named rule. A rule that cannot be made to fail is not a rule. 15 of 28 guards carry a self-test, 87 controls in total, and on 2026-09-24 every one of them passed.

⚠ These numbers are measured, not counted from the source, and the difference is not pedantry. The first version of this page derived them by counting call sites and published 28 against a real 87 — short by exactly one per guard, which is the kind of near-miss that survives review. They now come from guard-controls-2026-09-24.json, which runs every self-test and records what it printed. 3 guard(s) run a self-test that prints no count — check-cost-qualifier, check-design-system, check-tool-names — so their cell says runs, count not printed rather than a number nobody measured.

Guard What it measures Runs Controls
check-agent-skills-digest The published agent-skills bundle matches its digest, so the skill text an agent installs is the text this site vendored. agent-skills-index: push, PR, manual none
check-canonical-links Every HTML page declares a canonical pointing at its OWN url. A copied <head> would point two pages at one url and pass a mere has-a-canonical check. prose-and-structure: push, PR, manual none
check-claim-table-versions Every element marked data-version-of names the version releases/atomic-stack.json says is published. The versions are read from the release manifest, never typed on the page. claim-table-versions: push, PR, manual 9
check-claims-verbatim Every page a claim names carries that claim's exact_copy in VISIBLE text — attributes and comments do not count, which is how a phrase living only in <meta keywords> is caught. claims-verbatim: push, PR, manual 6
check-cost-qualifier Cost and savings figures carry the qualifier that makes them honest, rather than standing as bare numbers. prose-and-structure: push, PR, manual runs, count not printed
--selftest
check-css-classes Pinned utility classes are present and the known-missing set does not grow silently. css-classes: push, PR, manual none
check-decision-result-consumer The vendored Decision Spec consumer schema loads and every fixture validates against it. decision-result-consumer-gate: push, PR, manual none
check-design-system Pages obey the design-system rules in assets/design-system.css, against a baseline so an existing exception is not reported as new. css-classes: push, PR, manual runs, count not printed
--selftest
check-enforcement-vocabulary The word 'enforce' appears on a surface only where the platform truth table says that surface PREVENTS — and never attached to a COMMAND, because a command does not enforce, a boundary does. enforcement-vocabulary: push, PR, manual 7
check-guard-claims Claims about the shipped agent-guard package agree with what that package actually is, with the floor derived from the release manifest rather than typed. guard-claims: push, PR, manual none
check-host-stamps Every documented install route carries a measurement stamp. Older than 30 days, or never measured, it must say 'LIVE_ROUTE — unverified on current host', and no card may claim support without a current stamp. host-stamps: push, PR, manual, daily 40 6 * * * 8
check-internal-links Every internal link resolves on disk or through a declared redirect; external links are reported, never failed; and pinned external urls stay on their canonical form. internal-links: push, PR, manual 8
check-limits-count The published limit count in the prose equals the length of the shipped does_not_prove list, and one named page carries every entry verbatim. limits-count: push, PR, manual 7
check-mcp-server-card The served MCP server card is byte-identical to the mirror this site vendors. mcp-server-card-drift: push, PR, manual, daily 0 12 * * *
mcp-surface-anchor: push, PR, manual
none
check-mcp-surface-anchor The MCP surface anchor, its mirror and the HTML that quotes it all carry the same digest. mcp-surface-anchor: push, PR, manual none
check-orphan-pages Every INDEXED page is reachable by at least two internal links, or by one from its section's hub. The sitemap is a list we hand a crawler; the link graph is what a reader walks. orphan-pages: push, PR, manual 6
check-position-sentence The homepage, llms.txt and llms-full.txt open with the same positioning sentence, byte for byte, and the email signature carries its headline. position-sentence: push, PR, manual 9
check-pricing-truth Every pricing surface agrees on the decided unit, tiers and limits, including the structured data. pricing-truth: push, PR, manual none
check-proof-badges Every badge on /verify/ says what the newest proof run actually found, and the run is not older than eight days. proof-run: PR, manual, daily 20 6 * * * 8
check-prose-claims The vendored prose-claims mirror matches the table the app serves. prose-claims-drift: push, PR, manual, daily 0 12 * * * none
check-provider-statements Statements about what a PROVIDER does are the provider's own words, or are marked as ours. prose-and-structure: push, PR, manual none
check-selection-claims No selection number is published anywhere while benchmark/north-star.json holds no results entry measured by selection-parser/2. selection-claims: push, PR, manual 11
check-served-html The bytes coderifts.com serves match this repository, with only the two named third-party insertions tolerated. An uncommitted difference is reported as pending deploy, not drift. served-html-drift: push, PR, manual, daily 0 13 * * * none
check-system-prompts The published system prompts match the ones the app serves. system-prompts-drift: push, PR, manual, daily 0 12 * * * none
check-token-drift No tracked page declares its own :root block or introduces an off-palette colour. Scoped to git-tracked files, so the verdict does not depend on whose machine ran it. token-drift: push, PR, manual 4
check-tool-catalog The published tool catalogue matches the live tools/list, in both the default and the advanced-tools form. tool-catalog-drift: push, PR, manual, daily 0 12 * * * none
check-tool-names Only canonical tool names are presented as the surface: a hidden deprecation alias is never listed as current, and an opt-in advanced tool is never called a deprecation. prose-and-structure: push, PR, manual runs, count not printed
--selftest
check-wellknown-parity coderifts.com and app.coderifts.com serve the SAME DOCUMENT at /.well-known/coderifts.json — normalised, so formatting may differ and a field may not. wellknown-parity: push, PR, manual, daily 50 6 * * * 4

What this page does not prove

Related: what is a gate today versus planned, what each proof proves, and the proof runs that re-execute the terminal blocks on /verify/ every day.