Two facts in one instrument commit, stated rather than implied: 1. cycle 6 was never committed. `q65_rc_probe.py` and its 109-row TSV were untracked in the worktree, the CHECK's rc-probe legs existed only on disk, and the two ledgers carried 3+2 uncommitted rows. Measured before landing, not trusted: `q65_rc_probe.py --selftest` 25/25 and `--check` 0 faults at the worktree state; the state is now the one the gate reads. 2. cycle 7 is the file that reopened the census. forge's6e8f577adds `wizard-work/forge/verify_probe_forge_refactor.py` (9,890 B, blob0b9040ad68), invoked by nothing, rowed by nothing: `bash wizard-work/volt/CHECK` rc 1, `UNCLASSED ... 1 unclassed of 110`, and `q63_verify_scan.py` `NEW_UNWIRED 1` -- both legs, two classes, one file. Graded by execution through the runner (PASS rc 0, 0.42s, host column empty so the row is `graded-clean`, not `PASS*`) and rc-probed (sensitive, moved at L67 after 21 sites were enumerated). Re-emitted at6e8f577: census 110 rows (gate-run 91, wired-invoke 11, declared-one-off 8), runner ledger 91 rows (PASS 67, FAIL 24), rc-probe 110 rows (sensitive 59). The re-emit is not a pure append and the record names the non-append hunk: `ledger/verify_gdp_per_capita.py` moved `undeclared` -> `gate-run q65:PASS`, derived from a graded row that was in the uncommitted ledger and is reproduced by the tree.
60 lines
3.4 KiB
Bash
60 lines
3.4 KiB
Bash
#!/bin/bash
|
|
# CHECK — volt lane: the Q65 verifier-coverage gate. Fast: no verifier runs.
|
|
#
|
|
# What this grades: the LEDGER against the tree at HEAD. Every committed
|
|
# wizard-work/**/verify_*.py must be named by the census
|
|
# (q63_unwired_baseline.tsv) or by the runner ledger (q65_runner_baseline.tsv),
|
|
# every ledger row must be bound to the blob it graded, and every ledger row's
|
|
# verdict must agree with the rc beside it. Re-executing the verifiers is
|
|
# `q65_runner.py --emit` (minutes, 79 population files of 93 committed
|
|
# verifiers) and is not this.
|
|
#
|
|
# Since cycle 5 it also grades the one thing an rc cannot say: a row is only a
|
|
# grade if the file has a failure path at all. `q65_no_verdict.py --check` reads
|
|
# each committed verifier's AST and faults on a file with no raise/assert/
|
|
# non-zero exit that the ledger (q65_no_verdict.tsv) does not name. 15 of the 106
|
|
# have none -- all spark, recorded as findings, not repaired here; 14 of the
|
|
# runner ledger's 64 PASS rows are rows on such a file and cannot fail.
|
|
#
|
|
# Since cycle 6 it grades that same claim dynamically, and about a process that
|
|
# actually ran. `q65_rc_probe.py --emit` inverts each verifier's own comparisons
|
|
# one at a time in a detached worktree and asks whether the exit code moves;
|
|
# `--check` is the fast half run here: every row in q65_rc_probe.tsv must still
|
|
# match the blob at HEAD (STALE) and must not contradict its own class. A file
|
|
# cannot be given a row it did not earn, and a file that changed after its row
|
|
# was written cannot keep it.
|
|
#
|
|
# `inert` is the one class whose negative is unbounded by construction, so the
|
|
# sweep tries EVERY comparison site before writing it; a file stopped by
|
|
# `--exhaustive-cap` is `inert-partial`, and --check faults on either word used
|
|
# outside its coverage. This is cycle 6's own correction: a 3-of-11 sample wrote
|
|
# `inert` on forge/verify_chunker_refactor.py, whose rc moves at 3 of its 11
|
|
# sites (L123, L139, L142) that the sample did not pick.
|
|
#
|
|
# The root is resolved from $0, not written down. A gate that `cd`s to an
|
|
# absolute host path grades THAT tree from whatever checkout invokes it: at
|
|
# `66e5be1`, a clone with one verifier deleted printed `0 unclassed of 88` and
|
|
# CHECK PASS (measured 2026-10-24, reply 93 defect 1). `git -C <this dir>`
|
|
# fails outside a repo, which is rc 2 — the gate could not grade, and that is
|
|
# not a pass.
|
|
#
|
|
# rc 0 the ledger is complete, content-bound and self-consistent
|
|
# rc 1 a fault it graded: an unclassed verifier, a missing row, a bad pairing,
|
|
# a row whose blob no longer matches the tree
|
|
# rc 2 it could not grade at all (no ledger, unreadable tree, no git root)
|
|
set -u
|
|
ROOT="$(git -C "$(dirname "$0")" rev-parse --show-toplevel 2>/dev/null)" || exit 2
|
|
[ -n "$ROOT" ] || exit 2
|
|
cd "$ROOT" || exit 2
|
|
|
|
python3 wizard-work/volt/q65_runner.py --selftest || exit 1
|
|
python3 wizard-work/volt/q65_runner.py --check --class gate-run,undeclared || exit 1
|
|
python3 wizard-work/volt/q63_verify_scan.py --repo . >/dev/null || exit 1
|
|
python3 wizard-work/volt/q65_no_verdict.py --selftest >/dev/null || exit 1
|
|
python3 wizard-work/volt/q65_no_verdict.py --repo . --check >/dev/null || exit 1
|
|
python3 wizard-work/volt/q65_rc_probe.py --selftest >/dev/null || exit 1
|
|
python3 wizard-work/volt/q65_rc_probe.py --repo . --check >/dev/null || exit 1
|
|
|
|
echo "CHECK PASS: census covers every committed verifier; runner ledger grades clean; no unrowed printer; rc-sensitivity ledger content-bound."
|
|
exit 0
|