tools/ci/int-suite.mjs writes the INT suite from docs/plans/igneum-2.0-master/traceability.json's integration_gates (the requirement verbatim as title and accept, source R1, NOT RUN, the owner per the coordinator's crosswalk) and regenerates at the merge like REV; the master's counting note is a registry-level note ("128 original test cases, 18 additional integration gates, 44 updated-stack closure requirements. These sets overlap and are not 190 independent tests."); REC-01's closure evidence (rule v4 on 12424341's line, mode recovery by the founder's ruling, both real-node lines PASS, FIN-02 PASS at 4089e3d31) is a dated note on FIN and on INT for INT-05 and INT-06, RUNNING until the beyond-window healing case runs natively. INT-17 in test-record.mjs: a batch cell that declares prereqs with any oracle, pinned keys or real-proof fixture missing is written BLOCKED with the missing ones named, never PASS; self-tested both ways.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
tools/ci/review-suite.mjs writes the REV suite from docs/analysis/review-2026-10-08-b/findings.json and dispatch.md: one case per required regression (REV-F01-1 onward), the regression line verbatim as title and accept, status NOT RUN, the owner lane from the dispatch table, the finding id and priority carried as fields; every unmapped case gets a NOT RUN reason in tools/ci/test-map.json naming its owner lane; the gate's check refuses a registry whose REV suite drifts from the findings. The founder's 19:57 rulings on F04 (the recovery lock kept, always labelled recovery) and F14 (the public miner from 2.0.2 without remote jobs; the lab build for our fleet) are dated notes on the FIN, UX and OPS suites through test-record.mjs --note, and resolved fields in F0. The harness page is regenerated.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The map gains harness:reference-apps-compat (EVM-02 to EVM-06, partial coverage named per case), harness:reference-apps-ver
(VER-03 to VER-06 and VER-08) and harness:reference-apps-ver-trust-anchor (VER-01 and VER-02, FAIL by design and disclosed).
Batches ra-20261008T1744-evm (22 of 22 rows on the 2.0 devnet, node 4cdcc488) and ra-20261008T1746-ver (evidence per case
under tools/reference-apps/ver/evidence) are recorded with node tools/ci/test-record.mjs --record; the harness map page is
regenerated; the registry rows move with their evidence (site/lc/verify-receipt.js rebuilt in this landing).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Run 201-ef0f2ed8-2826f37e: node ef0f2ed8 (291ee6ae plus the 2.0.1 version bump) on the key-succession pairing, kaspad check and the five node-side suites green on build-4; the miner cut tip 2826f37e (app crate identical to 2ea7b43f), pow and app green on build-2; evidence at build-1:/srv/artefacts/tas/201-ef0f2ed8-2826f37e/. GOV-01's row takes F0 (docs/plans/igneum-2.0-f0-manifest.md) as its evidence through the batch f0-manifest-20261008-b (the earlier f0 batch landed before the replay existed and never recorded). The map splits the finality cells at the finality lane's ask: harness:finality-sim keeps FIN-08 (the model side), harness:finality-sim-fin02 carries FIN-02's simulator half, node:finality-realnode carries the node lane's real-node lines for FIN-02 and FIN-07.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The acceptance registry is a hot file: three landings in a row lost rule 26's race to another lane's rows during their own seven-minute gate. Now a registry landing carries its run batches as tools/ci/batches/<run id>.json (the files test-record.mjs --record took); merge-to-master.sh, for a branch that added batch files, lets rule 26 pass the registry path (the branch's copy is never what lands), and in the merge worktree takes master's copy of the registry, replays every added batch through the recorder (idempotent), commits the merge and runs the evidence rules on the merged result before the push. Self-test: a fixture where master gained a row after the branch point and the branch carries a batch; the merge lands with both rows. The batches: 200-417c4a57-b2 (the 2.0.1 gate, 30 cases RUNNING), review-harness-20261008T180034Z (POW-01's cross-check, all four anchor groups agree), p01-partb-20261008-01 (POW-06, three parsers, zero panics); the map gains crosscheck:review-harness and part B's command and coverage.
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>