Skip to main content

The guards

36 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 36 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. 24 of 36 guards carry a self-test, 140 controls in total, and on 2026-10-04 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 140 — short by exactly one per guard, which is the kind of near-miss that survives review. They now come from guard-controls-2026-10-04.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. guards: push, PR 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. guards: push, PR 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. guards: push, PR 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. guards: push, PR 9
check-cost-qualifier Cost and savings figures carry the qualifier that makes them honest, rather than standing as bare numbers. guards: push, PR runs, count not printed
--selftest
check-css-classes Pinned utility classes are present and the known-missing set does not grow silently. guards: push, PR none
check-decision-result-consumer The vendored Decision Spec consumer schema loads and every fixture validates against it. guards: push, PR 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. guards: push, PR 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. guards: push, PR 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. guards: push, PR 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. guards: push, PR 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. guards: push, PR 15
check-licensing-notices The trust-center licensing table matches each named checkout's LICENSE file and THIRD_PARTY_NOTICES.md. A row that says the notices file is absent fails when the file appears, and the other way around. not in any workflow 4
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. guards: push, PR 8
check-live-demo The live coderifts/demo check-runs for pull requests 4 and 26 still conclude failure, and the site still quotes check_run 111270526393 as STOP, 3 breaking, Risk Score 59/100. live: manual, daily 30 6 * * * 3
check-llms-live Every 'measured <date>' sentence in llms.txt is one this guard can re-check. Daily mode re-probes engine_build_id on the live analyze response, the three tools on tools/list, and the does_not_prove length. live: manual, daily 30 6 * * * 3
check-marketplace-listings The served HTML of the two Marketplace listings. The App listing must carry the check names CodeRifts / issuer and CodeRifts / contract-gate, the Free description Contract-change decisions with signed, offline-verifiable receipts. Free during beta., the sentence During the beta each self-serve key allows 1,000 requests a month, public and private repositories alike; one email to hello@coderifts.com raises the limit., and Team ($149/month, $0 during beta). The Action listing must carry the two check names and is not graded on a plan price. HTTP 403 and 429 are notes, not failures. guards: push, PR
live: manual, daily 30 6 * * *
7
check-mcp-server-card The served MCP server card is byte-identical to the mirror this site vendors. live: manual, daily 30 6 * * * none
check-mcp-surface-anchor The MCP surface anchor, its mirror and the HTML that quotes it all carry the same digest. live: manual, daily 30 6 * * * 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. guards: push, PR 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. guards: push, PR 9
check-pricing-truth Every pricing surface agrees on the decided unit, tiers and limits, including the structured data. guards: push, PR 11
check-proof-badges Every badge on /verify/ says what the newest proof run actually found, and the run is not older than eight days. live: manual, daily 30 6 * * * 8
check-prose-claims The vendored prose-claims mirror matches the table the app serves. guards: push, PR none
check-provider-statements Statements about what a PROVIDER does are the provider's own words, or are marked as ours. guards: push, PR none
check-safe-for-agent-branch No page instructs a caller to skip the API because safe_for_agent is false. The branch is execution_action. guards: push, PR 2
check-selection-claims No selection number is published anywhere while benchmark/north-star.json holds no results entry measured by selection-parser/2. guards: push, PR 12
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. live: manual, daily 30 6 * * * none
check-stale-since A page that cites an older coderifts build also names the published version from releases/atomic-stack.json. guards: push, PR 3
check-system-prompts The published system prompts match the ones the app serves. live: manual, daily 30 6 * * * 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. guards: push, PR 4
check-tool-catalog The published tool catalogue matches the live tools/list, in both the default and the advanced-tools form. live: manual, daily 30 6 * * * 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. guards: push, PR runs, count not printed
--selftest
check-two-contexts The install, success, and path pages name exactly two required contexts, read from the app CHECK_NAME and the contract-gate template job name. A third required context fails, and the Action's posted check name appears only as the row to replace. not in any workflow 3
check-waf-probes Eight dotfile paths answer 403, /.well-known/coderifts.json stays 200, and the raw traversal is graded with the dots left in the request. live: manual, daily 30 6 * * * 3
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. live: manual, daily 30 6 * * * 6

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.