tools/ci/registry-evidence-check.sh runs in merge-to-master.sh after rule 26: (1) a landing that sets a case's run_status to PASS must name an evidence_path that exists, in the tree at the landing or on a build box over ssh (a box that does not answer is a line, not a refusal); (2) a landing that changes a file under docs/analysis/ or a path a registry row names without moving that row's updated field is refused (GOV-04: the row and its evidence move together); (3) a PASS whose evidence record pins another manifest than the registry's pinned_manifest_sha is refused (GOV-08: stale evidence reads NOT RUN); (4) a run_status written while the registry carries no approval block is refused (GOV-02: thresholds before results). Self-test on a fixture repo covers each rule both ways.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The page shows each of the 128 cases in 16 suites as it is run, in the standard's words (NOT RUN, RUNNING, PASS, FAIL,
BLOCKED, DEFERRED): a header with the approval line and a thin segmented count bar (never a percentage), G0 and the five
gates G1 to G5 plus the three named gates as cards whose state follows the standard's rule, one section per suite with an
expandable row per case (setup, steps, accept, required evidence, the run's evidence record when present), the profiles
(approved as proposed, P13 deferred, the P04 line read as a FAIL to work against), the fixtures, and the closing notes.
site/lib/acceptance-render.mjs is the one renderer: build.mjs imports it for the build-time page and prints the same functions
into the page's inline script, which polls /api/acceptance (site/api/acceptance.mjs: the registry from git.igneum.network
master, cached 60 s, ok:false with status 200 on failure) and re-renders in place when a case state or source_sha256 moves.
Hooks: the Learn panel, the nav check, the sitemap, capture.sh, the og card row, a lead link on /scorecard, the facts rows 1
to 7 name the case that will prove each. The never-served check strips the plan's own marked never-served list. Node tests
(known-failed first) run in the gate; the registry and the standard text land with the page.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
tools/ci/test-map.json gains bench:pc1-packs (GPU-02, GPU-03, GPU-05, POW-08 on PC 1's 5090), bench:pc1-amd (GPU-01, GPU-05 on the RX 7600), bench:fleet-pods (GPU-01, GPU-03, POW-08 on the rented cards), census:class-v6 (POW-02), POW-07 under suite:pow (the FP32 branch unreachable on master) and UX-08's published-tuning half; GPU-04 and GPU-07 read NOT RUN with the Devnet 3 off order as the reason; the harness map page is regenerated. tools/ci/p01-vectors.py is P01 part A as the hash lane shaped it: the real worker driven with pool.rs's job lines at an all-pass target, every found hash diffed against the CPU reference list, the evidence JSON with the counts, the first ten disagreements, the pack and program ids, the device line and the manifest sha; exit 1 on any disagreement or unanswered nonce; self-tested with a fake worker (clean PASS, one wrong hash FAIL naming the nonce, one unanswered nonce FAIL naming it).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
tools/ci/test-map.json maps every automated case of the Test and Acceptance Standard's registry to the cell that runs it (the seven crate suites of the release matrix, the pre-push gate, the freeze check, the fast-time harness, the finality simulator, the P01 vectors and parser-malformed harnesses as they land), each cell with its command, box class and fixtures (F0 onward), each case with what the cell proves and what remains; 31 of 109 automated cases map tonight, 78 read NOT RUN with the reason. tools/ci/test-map-doc.mjs writes docs/plans/igneum-2.0-test-harness-map.md from the JSON (--check in the gate refuses a stale page). tools/ci/test-record.mjs --check refuses an unmapped automated case without a reason or an unknown id; --record <batch> writes run_status, run_id, evidence_path, updated and the evidence record (cell, manifest sha, coverage) to the mapped cases only, leaves every accept text byte-identical (the self-test diffs them), gives an unmapped automated case NOT RUN with its reason and a manual case nothing. Rule: a mapped cell's green writes RUNNING; PASS only when coverage is full and the evidence file exists; never PASS by inference.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The markdown loop in site/build.mjs takes paths under docs/ (build/build.md, build/grants.md, build/compatibility.md, site/audit-2.0.md); /audit joins the Learn panel (both lists), the nav-check groups, the sitemap, the capture routes and the og cards.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Documents-only replay of a229b3095 (25098c1a276d80987262eda59a7f1beef8cd6ba4) for the box mirror master
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Documents-only replay of 982302d0e (25098c1a276d80987262eda59a7f1beef8cd6ba4) for the box mirror master
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Documents-only replay of 3b0ac575d (25098c1a276d80987262eda59a7f1beef8cd6ba4) for the box mirror master; left on the branch: igneum-pow/src/main.rs tools/attack/f8-uniform/src/main.rs
tools/ci/rule26-no-revert.sh: for every path under site/ or docs/ that master changed since the merge base and the branch also touched, every non-blank line master added must be present in the branch's copy (a merge of master carries them; a replace from an older copy loses them); a path the branch deleted counts as every line lost; a landing whose commit messages name the path lifts the refusal for it. merge-to-master.sh runs it after rule 24, before the merge loop, and refuses with the paths and the fix named. Self-test on a fixture repo: a replace and a deletion are refused and named; a branch that merged master, one on a disjoint path, and one that names the path as intentional pass.
Class (main through the coordinator, 8 October 2026, 17:5x UK): the og lane's a68a36c0 and the release-manifest ffd6751e put the reference-apps lane's receipt.html and then all of site/lc back to older copies on master, restored by its own merges.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
tools/ci/rule24-crate-gate.sh maps every .rs, Cargo.toml, Cargo.lock, build.rs or .cargo/config in the diff to its crate (the nearest [package] Cargo.toml; the workspace root when none nearer; the core pair igneum-pow and app/igneum-app for a root config; a vendor crate named and left to its lane) and runs cargo check then the crate suite on the box at gate priority; docs/ and site/ alone (docs-only-check.sh) run nothing; any other diff takes the full gate alone. merge-to-master.sh runs it against the merge base before its merge loop; the hook runs it on a push of master or release-* against the remote tip. Self-test with a fixture repo and a recording runner: the crate map for each file class, documents-only runs nothing, check then test per crate, a red suite fails the gate.
Class (main through the coordinator, 8 October 2026, 17:2x UK): master's igneum-pow stopped compiling at 17:07 under landings that never built it.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>