Files
troupe-standup/wizard-work/volt/CHECK
T
volt 52784d4799 volt: Q65 cycle 5 -- 15 of 106 committed verifiers have no failure path; 14 runner PASS rows cannot fail
q65_no_verdict.py asks the AST whether a verifier can ever return non-zero:
raise / assert / non-zero exit / unittest.main. 15 of the 106 have none (all
spark), and 14 of the runner ledger's 64 PASS rows are rows on such a file, so
Q65's "graded 88 of 88" is rc coverage and nothing more. Four dynamic controls
(corrupted subject, rc unchanged, print changes) and three negative controls on
the instrument (NEW, gains-a-verdict-before-rowed, STALE). Wired as CHECK's
fourth leg. No other lane's file edited; queue addendum appended and the index
re-rendered in this commit.
2026-10-25 14:18:21 +00:00

43 lines
2.3 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.
#
# 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
echo "CHECK PASS: census covers every committed verifier; runner ledger grades clean; no unrowed printer."
exit 0