Q130's closed-artifacts leg added "path": os.path.join(...) to verify.py's
LEGS, so ast.literal_eval refused the whole table and every gate leg vanished
from docs/TOOLS.md while --check compared against a document rendered before
the field existed: the gate-leg column went blank, not red.
partial_literal() keeps every element/field that parses and names what it
cannot read (legs_note, probes_note) in the document instead of rendering an
empty column; _count_by_tool refuses a row whose name is not a string rather
than subscripting it into the dict. Selftest 20 -> 23 cells, pin moved with
it, docs/TOOLS.md re-rendered (23 tools, 10 gate legs).
marker + .git must sit in the same directory, the walk is bounded at 64
ancestors, and portable_seed raises instead of returning a path to nothing.
Cells 6 -> 14, lane gate 587 -> 595 tests, and wizard-work/volt/CHECK-q90
(7 legs) grades each done-mean with a mutant that must red it.
The three refactor harnesses (probe, dump, pending) each carried the same
_IO_CALLS name list plus a builtins.open spy. Measured at bb4a85e in a clean
clone: Path(__file__).read_text(), os.open(__file__, O_RDONLY), io.open(__file__)
and with Path(__file__).open() at module scope each left the probe harness at
14/14 rc 0 printing '0 module-scope io calls; 0 runtime open calls' (pending
13/13 rc 0; dump red at 13/14 on its dead-import check while its io line still
printed 0). The name-list walk resolves Path(p).read_text() to None because its
func is an Attribute over a Call, and the spy cannot see io.open/pathlib.
Now: wizard-work/forge/import_io_detector.py (one modelled set -- 13 dotted + 4
attribute spellings -- a module-scope AST walk that names the line, and a mutant
matrix) and wizard-work/forge/import_audit_probe.py (child interpreter importing
under CPython's open audit event, so a spelling nobody modelled is still seen).
The three harnesses dropped their local copy (+244/-327) and call the shared
module; check counts unchanged, OK line states the model instead of claiming
absence.
Evidence: 8 spawnings x both instruments killed in all three harnesses
(14/14, 14/14, 13/13 rc 0). Blinding the static walk leaves the audit hook reding
check 12 on a real open event of the seed; blinding the hook leaves the walk
reding on [(107, 'pathlib.read_text')]; blinding both leaves check 12 green and
check 13's battery reding the harness. _F = open / _F(DEFAULT_PATH) -- a spelling
no list names -- is caught by the hook alone.
Instrument wizard-work/volt/CHECK-q89: 24 legs, 30 s, '0 fault -- OK', check_lint
SOUND; it copies the lane + seed to a temp root so the graded tree is never
mutated. Fourth copy (verify_dump_seed_refactor.py) untouched at 16/16 and used
as an independent oracle: agrees 12/12. Q90's beam guard untouched.
verify.py --fast: 10 legs, 9 pass, 0 fault, 1 skipped, gate OK.
Q115: the monitor's failure branch printed 'folder unreadable: <folder>' and
skipped the folder, so every path in it left the listing and the next diff read
as deletions (417 on 2026-10-28, 413 before). Format v1.4 keeps a versioned
last-good listing per folder and carries it forward on failure, with a token of
its own: UNREADABLE <folder> attempts=.. last=.. carried=.. from=.., and
NO-BASELINE <folder> when there is nothing to carry.
Q131: the harness that certifies the monitor was 0/7 at HEAD (2m51s/run): it
parsed lines[0] as 'head' after v1.3 made it 'branch-head', and it stubbed get
but not get_folder, so it read the live forge for folder contents and wrote its
synthetic attributions into the deployed cache. It now stubs all three
boundaries, isolates both caches, and carries eight cells for the failure path.
15/15 cells pass; pre-repair module 10/15 with exactly the five failure cells
red; two mutants red the cells that own them.
The CHECK shipped with 6b7d750 ran the un-flagged repo gate: 107.93s wall,
82s of it the selftest-sweep leg. Inside the caller's harness it was killed
just after printing the section-4 header, so a green tree read as a failure.
Rebuilt as wizard-work/volt/CHECK-toolsmd-drift: per-leg timeout, the sweep
dropped from the budget (it is a wrapper over the cells graded directly here),
the leg tally asserted exactly, elapsed total printed. Non-vacuity measured by
three mutations on the real tree -- document drift (leg 1), uncommitted tool
drift (leg 2), index drift (leg 4) -- each rc 1, each restored clean.
(a) import-resolve: 9 OUTSIDE_REPO faults -> 0 over 138 graded files. The eight
lanes' test files now insert str(Path(__file__).resolve().parent) and resolve
their data paths from __file__; test_hermes.py is rewritten as the host probe it
always was (skills root from HERMES_SKILLS_DIR/HERMES_HOME/~/.hermes/skills, rc 0
found / 77 SKIP / 1 FAIL) instead of binding a module that does not exist.
Falsified: poisoning the repo copy reds the rebound test (rc 1) and leaves HEAD's
host-bound copy green (rc 0), both restored.
(b) path-claims: 225 new -> 0. All 225 came from sol's untracked-file census; each
was measured (0 add-commits on any ref, present on disk untracked, listed verbatim
in the census) and is a NOT_ADDED row under a batch note. One CLEARED row dropped
(spark/lwc_counter.py, resurrected at 3e667eb after Q125 retired it).
Carried in, not authored here: tools/verify.py's ninth leg and the two-line Q98
record (Sentinel's Q98 artifact), so HEAD agrees with Q98's own text.
verify --repo .: 9 legs, 9 pass, 0 fault -- gate OK. Report:
/root/.hermes/wizard-outputs/volt/2026-10-30-q126.md
The cycle-8 report and its queue addendum both said the census and ledger
headers name 40662f8. The committed files name 29bded2: an earlier emission
in the cycle wrote 40662f8, then the rows were re-emitted at the HEAD the
verify_csv fix became, and the sentence was never re-read against the files.
Corrected in the report (wizard-work/volt/q65-2026-10-27-c8.md section 5),
and the queue gets an appended correction rather than an edit -- the
paragraph it corrects is already committed.
Re-measured from the committed files at b8d1934, in a fresh clone:
grep -m1 '^# rev' wizard-work/volt/q63_unwired_baseline.tsv -> 29bded2
grep -m1 '^# rev' wizard-work/volt/q65_runner_baseline.tsv -> 29bded2 rows: 117
census classes 117 gate-run / 12 wired-invoke / 6 declared-one-off
ledger verdicts 89 PASS / 28 FAIL
bash wizard-work/volt/CHECK -> rc 0 in the worktree and rc 0 in the clone
Every other figure in the addendum reproduces. docs/queue-index.md re-rendered;
queue parse unmoved: 44 opening records, 26 closed, 18 open.
Repo-wide tools/verify.py at this head: 8 legs, 7 pass, 1 fault -- path-claims,
whose two NEW rows are inbox/dump_seed.py (cited at
wizard-work/forge/DUMP_SEED_REFACTOR_VERIFICATION.md:8) and inbox/seed-....json
(cited at replies/2026-10-27-to-zephyrus-126.md:155), neither introduced here.
The lane's own gate had gone red and the census had fallen nine verifiers
behind the tree. Measured at 40662f8 before anything was changed:
checked-out worktree -> bash wizard-work/volt/CHECK rc 1
leg2 q65_runner --check --class gate-run,undeclared 108 pop / 108 rows
(ledger rev 99eba1e), 11 faults = 9 UNCLASSED + 2 DRIFT
leg3 q63_verify_scan --repo . 135 committed, coverage 126 of 135,
9 NEW_UNWIRED, stripped-assert 1 of 135, q63: 10 fault(s)
legs 1,4-7 green (22/22, 13/13 + 0, 25/25 + 0) -- coverage and binding,
not an instrument
What this commit carries, all of it re-executed rather than rebound:
* census rows for the nine verifiers neither ledger named. Every one is
unwired under the scan's invoke rule and each reference was read: two
are "$ python3 ..." transcripts in forge/_*_CHECK_EVIDENCE.txt, one is
a docstring plus a VERIFIER_NAME string, one is dead code after sys.exit
in both branches of spark/simple_pwd_check.py:18, five are referenced
nowhere. Graded 8 PASS rc 0 + 1 FAIL rc 1 (spark/verify_hermes_setup.py
grades the caller's cwd -- Q92's item, recorded, not repaired).
* the two DRIFT rows re-executed at the blobs the tree now holds: both
PASS (0.40s / 0.37s). --rebind ran only after, for static columns;
rebinding first would carry an old rc onto new content.
* spark/verify_csv.py's exit-path fix landed separately as 29bded2, and
its row is re-emitted here so it binds the post-fix blob 0d6995471c.
After, measured: leg2 117 pop / 117 rows, PASS 89 / FAIL 28, graded 117,
graded-clean 15, host-pinned 74 PASS*, tree audit 0 unclassed, 0 faults;
leg3 135 rows (gate-run 117, wired-invoke 12, declared-one-off 6), coverage
135 of 135, NEW_UNWIRED 0, stripped-assert 0, 0 faults; CHECK rc 0.
Movement: 11 faults -> 0, coverage 126/135 -> 135/135, rows 108 -> 117,
stripped 1 -> 0.
Not claimed: gate-run means the runner graded it, not that a gate invokes
it -- the 117 files are still invoked by nothing but this runner, so the
wiring residual is unmoved; graded-clean is 15 of 117 and 74 PASS rows read
an absolute host root (Q62 class, recorded); FAIL went 27 -> 28 because one
cwd-dependent file was graded for the first time (Q92).
Queue: the Q65 addendum and one appended correction (the lead said "stays
open"; the record closes Q65 at 8ec7725) are at the foot of WORK-QUEUE.md,
and the open set is byte-identical before and after this append -- 44
opening records, 26 closed, 18 open, same 18 ids. docs/queue-index.md is
re-rendered in this commit. Ledger header names 40662f8, the HEAD the rows
were measured at (parent of 29bded2 and of this commit), stated not papered.
Report: wizard-work/volt/q65-2026-10-27-c8.md. Nothing from inbox/ is quoted.
The volt lane's Q65 gate had gone red on three of its four legs while other lanes
landed verifiers. Nothing was broken in the scanners; the ledgers were behind the
tree. Every bookkeeping number below is a tool's own output, re-measured here.
BEFORE (worktree at 083981e)
q63_verify_scan.py rc 1, 13 faults 9 NEW_UNWIRED + 4 STRIPPED_ASSERT,
census 115 of 126
q65_runner --check rc 1, 17 faults 7 DRIFT + 10 UNCLASSED
q65_rc_probe --check rc 1, 8 faults 8 STALE
q65_no_verdict rc 0, 0 faults
AFTER (this commit)
q63_verify_scan.py rc 0, 0 faults census 126 of 126 (gate-run 103,
wired-invoke 12, one-off 6, undeclared 5)
q65_runner --check rc 0, 0 faults 108 population / 108 rows, 0 unclassed
of 126; tree audit 0
q65_rc_probe --check rc 0, 0 faults 110 rows, every one bound to the blob
the tree holds
bash wizard-work/volt/CHECK rc 0 CHECK PASS
The census and runner rows are new rows for 15 verifiers that landed unrowed
(spark 6, sol 2, forge 2, ledger 2, null 1, quill 1, sphinx 1) plus re-runs of
the 7+4 rows whose files had changed under them. 93 -> 108 rows, and the diff
drops no path: all seven 'removed' lines are the same paths re-added.
One finding the bookkeeping surfaced, reported and not repaired: re-probing
spark/verify_hermes_cli.py moved the exit code at 0 of its 9 comparison sites
(9 tried, 9 valid, verdict inert) -- a PASS row on a file whose rc cannot move.
It is spark's file; Q65's done-means is coverage, not repair.
The 4 STRIPPED_ASSERT faults were a regression, not ledger drift -- see 99eba1e.
Gate re-run from a detached worktree at this commit, not from the worktree that
made it: see wizard-work/volt/... (worklog under /root/.hermes/wizard-outputs/volt/).
Closure record appended at the foot of WORK-QUEUE.md; docs/queue-index.md
re-rendered in this commit (11784 lines / 1737172 bytes).
The check itself landed at 13b77ba. This commit carries the record and the two
volt ledgers that had no row for the file it fixes:
q63_unwired_baseline.tsv gate-run wizard-work/sol/verify_daily_ledger_triage_check.py q65:PASS
q65_runner_baseline.tsv gate-run PASS rc 0 0.14 s 98d40061da0c... (empty host column)
The runner row was earned by execution (q65_runner.py --class gate-run --emit
--only verify_daily_ledger_triage_check --merge) and is bound to the blob at
13b77ba. bash wizard-work/volt/CHECK: rc 1, q65: 10 fault(s) at the parent ->
rc 1, q65: 9 fault(s) here; tree audit 8 -> 7 unclassed of 122. The nine left
are two forge DRIFT rows and seven UNCLASSED files in forge/null/sol/spark, each
named in the record and none of them rowed from here, because a row must be an
execution.
python3 tools/verify.py --repo .: 8 legs, 8 pass, 0 fault (path-claims 2009
distinct, 0 new; append-audit clean over the whole history).
The CHECK resolved its artifact from BASE = /root/.hermes/wizard-outputs (module
scope), so it graded the host copy. Measured at c74e8af from a git archive export
with no .git: a committed artifact doctored in four cells (forge -> STALE /
legacy-flat, phantom -> ACTIVE / subdir) still read rc 0, a faithful 30 h capture
read rc 0 for the same reason, and an empty SOL_BASE produced a FileNotFoundError
traceback rather than a verdict.
Resolution is now $SOL_TRIAGE_DIR, else $SOL_BASE/sol/_triage, else the directory
holding this file -- the tree it runs in. Freshness is recomputed per row from the
artifact's own generated_utc - latest_mtime_utc and must agree with the row's
age_hours (1 dp) and its status; the host clock is not read, and the live
re-enumeration of BASE/<lane> is deleted rather than left as an unreachable
branch. Exit codes: 0 clean, 1 graded fault, 2 could not grade.
Readings, each its own `git archive c74e8af` tree plus this file, no .git:
clean rc 0 (ACTIVE=7 WATCH=0 STALE=1); committed artifact doctored rc 1, four
named cells; faithful 30 h capture recording WATCH rc 0 (was rc 1 with three
cells); /root/.hermes masked to 0 entries rc 0; missing SOL_TRIAGE_DIR rc 2.
--selftest: 10 cells, 10 passed, 0 failed under python 3.14.7 and 3.12.3.
The lane file's own rc is 0 in-tree and from the export. Evidence:
wizard-work/volt/q74-2026-10-26.md
Q76 CLOSED at bfa5902 and this commit. The seven cells are TestCase methods
(lane count Ran 151 -> Ran 159), test_robin_hood_hash.py resolves its module
from its own directory, and `bash wizard-work/beam/CHECK` is rc 0 unmasked,
rc 0 with the host directory masked to an empty tmpfs, and rc 0 in a
`git archive bfa5902` export with no .git (Ran 159, OK, toposort ALL PASS
242 checks).
Carried cells: full lane copy with the old test file and a floored
even-median -> bash CHECK rc 0, Ran 151, OK (the fault, green on a wrong
module); same mutant with the fixed file -> rc 1, FAILED (failures=2),
naming test_even and test_random; 8 of 9 mutants killed, the ninth
(insert routing <= -> <) equivalent at 0 differences in 20,000 batch and
5,000 incremental cases; one cell deleted -> rc 1, AssertionError 7 != 8;
the census cell itself deleted -> rc 0, its own blind spot, recorded.
Two findings returned, not repaired: Q75's 7 non-row census lines are the
embedded newlines of ONE tracked path under wizard-work/beam added by
a46547c (three nested dirs and a 185 B test_toposort.py holding the CHECK
script's text), not an inserted block; and wizard-work/spark/CHECK opens
with five absolute host-path assertions, the Q69/Q74 class in a third lane.
Record: wizard-work/volt/q76-2026-10-26.md. Queue index re-rendered.
test_sliding_window_median.py: the seven cells were module-level functions
behind `if __name__ == "__main__"`, so `unittest discover` collected none of
them -- `python3 -m unittest test_sliding_window_median` printed `Ran 0
tests` (rc 5 on Python 3.14) and the lane gate stayed at `Ran 151` while a
module with a floored even-median passed it at rc 0. They are TestCase
methods now, with the same seven assertions, the module resolved from this
file's directory (Q61 rule), and one added cell, test_cell_census, which
pins the count at 8 so a deleted cell is a red gate.
test_robin_hood_hash.py: `sys.path.insert(0, "/root/.hermes/wizard-outputs
/beam")` -> `str(pathlib.Path(__file__).resolve().parent)`. That host insert
is what made CHECK rc 1 unmasked with `ImportError: 'test_safe_eval' module
incorrectly imported from /root/.hermes/wizard-outputs/beam`.
Measured at this commit: `bash wizard-work/beam/CHECK` rc 0, `Ran 159 tests`,
OK -- unmasked, with /root/.hermes/wizard-outputs masked to an empty tmpfs,
and in a copied lane with no .git. 151 + 8 = 159. Mutants: 8 of 9 killed
(M8 is an equivalent mutant, 0 differences in 20,000 batch and 5,000
incremental cases); with the old test file and a floored even-median the gate
is rc 0, Ran 151, OK. Record: wizard-work/volt/q76-2026-10-26.md.
Two faults, both re-measured in a foreign clone at dbc2c4f and at HEAD, neither
visible from the commit message:
1. test_trie.py had four module-level functions invoked only from __main__, so
`python3 -m unittest test_trie` printed "Ran 0 tests / NO TESTS RAN" while
`python3 test_trie.py` printed "ALL OK", and the lane gate never named trie:
grep -ci trie over its -v transcript = 0, and the gate's count was 136 at
dbc2c4f / 139 at HEAD -- unchanged by the file landing. The four cells are now
nine unittest.TestCase methods (12 cells) and `bash wizard-work/beam/CHECK`
runs 151 tests, rc 0, with 12 trie cells in the transcript.
2. count_prefix was incremented on insert and never decremented, so it
contradicted the module's own delete: ['cat','car','card','dog',''] then
delete('car') read 3 where words_with_prefix('ca') returns 2; ['a','ab','abc']
then delete('a') read 3 vs 2; insert+delete 'zzz' read 1 with len(t) 0;
insert('abc') twice read 2 with len(t) 1. It now counts DISTINCT words --
incremented only when the word was not already an end-of-word, decremented
along the path on a real delete -- so count_prefix(p) ==
len(words_with_prefix(p)) by construction and by test, not by recomputation.
The item allowed either reading; the docstring's own words and the existence
of an independent enumeration are why this one.
Cells and controls (scratch/q70/, harness q70_mutants.py): the shipped pre-fix
blob is rc 1 with 8 of 12 cells red; seven one-place mutants (duplicate insert
inflates, delete does not decrement, count_prefix +1, prune drops the is_end
guard, insert counts only the last node, delete never prunes, count_prefix
ignores the walk) are 7/7 rc 1; clean module rc 0. Gate also rc 0 from a foreign
cwd with a hostile PYTHONPATH, under python3 -O, and with /root/.hermes masked
by tmpfs (0 entries); rc 1 with the in-tree module deleted.
The module pin is measured, not decorative: with it removed, cells pointed at a
plausible foreign trie module grade GREEN (rc 0, Ran 11) -- and with it in place
the same environment raises ImportError naming both paths. My first cut compared
realpath on both sides and could not tell a symlinked module from its target;
abspath was measured into place and the residual (a symlink at the expected path)
is written down in the artifact rather than implied away.
Not claimed: the 1200-character recursion boundary in __len__, words_with_prefix
and delete is unchanged, verdict-identical to the pre-fix module; no timing.
Files: 2 changed (229 79), plus wizard-work/volt/q70-2026-10-26.md. No host
paths added (git grep -c -e /root/troupe-standup -e /root/.hermes = 0 on all
three). Nothing from inbox/ quoted. Beam's files edited under Q70's own "anyone
may take it".
CHECK rc 0 at this commit: `bash wizard-work/beam/CHECK` -> Ran 151 tests, OK.
Closure of Q71 (ledger's commits-table.md). b9e3780 landed the byte-exact row
and the verifier; this commit lands the record and two defects the first cut
produced, both measured:
1. The pin was not reproducible. The first committed body was the 21:53:09Z
fetch verbatim (33844 B, sha256 a7f55e4e). --record then produced a DIFFERENT
body for the SAME five commits (30412 B): same five SHAs, same key set per
record, equal compact size per record (5832/6347/5238/7024/5965), 0 records
differing, 437 newlines vs 0 -- whitespace only, from the request's Accept
header. The committed body is now the compact one (sha256 6694f5ac, response
date 2026-10-25T21:58:56Z) and BOTH --record and a plain curl with the gate's
headers reproduce it byte for byte. The Provenance line names the re-pinned
fetch, because that is the body committed.
2. --record wrote the body it graded from, i.e. the per_page=100 resolution
fetch: measured 597809 B / 100 records into a path the document's own
provenance line calls "5 records, per_page=5". Re-pinning with it would have
swapped a 5-record body for a 100-record one that still graded green. It now
fetches the cited URL exactly (a second request only on that path) and
validates it parses before writing.
Also logged: control cell 14 hard-coded the provenance stamp it mutates, so
after the re-pin the mutation became a no-op and the cell reported rc 0 where it
wanted rc 1 -- a control that silently stopped controlling. It now derives the
substitution from the document; the matrix is 23/23 again.
Measured at this tree:
- bash wizard-work/ledger/CHECK rc 0, 29 lines (23 PASS + 4 INFO + leg summary)
vs 1 line at 0a86c9c before the leg existed; rc 0 with /root/.hermes masked
(unshare -m + tmpfs, 0 entries).
- Clone of b9e3780 at /root/q71-clone-1792965576 with these files: CHECK rc 0;
row 4 corrupted back to kernel_git there -> rc 1, "[FAIL] SUBJECT row 4
differs from feed 44388c8f3e"; restored -> rc 0. The leg proves itself inside
CHECK, not only under its own harness.
- git archive export of b9e3780 (no .git): verifier rc 0 pinned and rc 0 live.
- 23/23 control cells (scratch/q71/controls.txt), including rc 1 on the shipped
pre-fix blob at 6d936be naming SUBJECT at character 68, and rc 2 for the five
could-not-grade inputs.
- python3 tools/verify.py --repo . -> 8 legs, 8 pass, 0 fault, 0 ungradable.
Queue: closure record appended at the foot (pure append, 11 lines, prefix
byte-identical), and item Q71's own status lead rewritten from "open and
unclaimed" to "closed at b9e3780 and the closure commit" -- the state marker, in
the shape 8b9492b used for Q68, so the index does not publish a closed item as
open. queue_claim_check: Q71 out of the open set; docs/queue-index.md
re-rendered in this commit.
Evidence: wizard-work/volt/q71-2026-10-25.md.
Q68 CLOSED at 5a43291: gate rc 0 / Ran 136 / ALL PASS (242 checks) from a clone of that commit, against rc 1 with zero cells and a skipped toposort leg at 5a43291^. 17 cells, six mutants graded (4 flipped from SURVIVED to KILLED, 1 already killed by the old suite -- the item's split does not reproduce, 1 proven equivalent over 3000 graphs and retired by deletion), 3000-graph fuzz 0/0/0/0, six control cells. My own first cut named the host path in a docstring while explaining it was unused; git grep counted it, so the sentence is rewritten here.
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's 6e8f577 adds
`wizard-work/forge/verify_probe_forge_refactor.py` (9,890 B, blob
0b9040ad68), 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 at 6e8f577: 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.
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.
At 30653c6 the scan read 99 committed verifiers, 7 wired, census coverage 93 of 99, 5 NEW_UNWIRED, q63 5 faults; volt CHECK rc 1 on 6 unclassed. After: wired 8, census 99 of 99, NEW_UNWIRED 0, q63 0 faults, volt CHECK rc 0 (tree audit 0 unclassed of 99). q65_runner ledger 79 rows (PASS 55/FAIL 24) -> 83 (58/25).
Pathspec defect, measured not assumed: sphinx's archive-agentic-memory-5paper-dossier-2026-10-25/CHECK.txt is one line invoking verify_claims.py from its own directory, and CODE_PATHSPECS carried :(glob)**/CHECK and not CHECK.txt -- so a lane with a committed gate was filed as unwired. Patched copy, every other argument held fixed: wired 7->8, code-grep 13->12, NEW_UNWIRED 5->4, and the only file moving between the two NEW lists is that verifier. Scanner selftest 10/10 after the change, c-cell on the referrer-path token included. Readings: q65-2026-10-25-residual-{red,green}.txt.
Census re-emitted: 99 rows = gate-run 83 + wired-invoke 8 + declared-one-off 8, arithmetic against 99 at the same rev. The four files left undeclared were executed: forge/verify_check_lint_classes_dry.py FAIL rc 1 0.39s; forge/verify_repro_bounds_refactor.py PASS 0.35s; forge/verify_smell_check_monotonic_refactor.py PASS 0.58s; spark/verify_env.py PASS 0.06s.
The FAIL is Q65's thesis, found by Q65's own runner and held open as a finding for forge: orig_text() reads git show HEAD:tools/check_lint.py as the 'original', and the refactor it verifies was committed in the same commit that added the verifier (4f76eaa), so original and refactored are the same bytes -- checks 4a/4d fail, and the two BYTE-IDENTICAL checks pass vacuously. Remedy (pin the pre-refactor blob by sha) is forge's; not edited here.
Still open and named: 25 FAIL rows are per-lane findings; 51 PASS* rows read an absolute host root (Q62's class, 48 before this tick); path-claims is forge's two-character citation at SMELL_CHECK_MONOTONIC_REFACTOR_VERIFICATION.md:95-96, so tools/verify.py is 8 legs / 7 pass / 1 fault both before and after; promoting volt CHECK to a tools/verify.py leg stays the operator's call. Index re-rendered in this commit.
Lane gate measured at 77d5eba: q65_gate.sh rc 0 in 11.05 s; 79 ledger rows (PASS 55 / FAIL 24 / TIMEOUT 0), 0 unclassed of 93 committed verifiers, census 93 of 93.
Third instrument defect, found this tick at the tool's documented default (--class undeclared): "rows at emit : 79 (PASS 1, FAIL 5)" -- a total over the ledger beside a tally over a 6-file population. tally()/fmt_counts() split them; c22 grades the arithmetic, RED on a scratch mutant (scope guard replaced by 'if False:') rc 1, GREEN here rc 0.
Record at wizard-work/volt/q65-2026-10-24.md, queue addendum appended, index re-rendered in the same commit (11096 lines, 52 ids unchanged -- nothing here opens a record).
The item narrows rather than closes: 88 committed verifiers = 71 graded by q65_runner + 4 invoked by a committed line + 8 declared one-off + 5 executed with no rc (TIMEOUT). The five are named, and a per-file window is what grades them.
The census had no rev, so its classes read as current forever -- the archive rule it exists to enforce. emit_baseline now writes the short sha into the header.
Re-emitted after the four graded rows landed: gate-run 71, wired-invoke 4, declared-one-off 8, undeclared 5 (88 rows, 88 committed verifiers at 2843d50). The 5 undeclared are the TIMEOUT rows: executed, no rc, so not graded and not tolerated as clean.
Four files the prose fix released from the wired class are graded by execution, not by reading: forge/verify_roundtrip_refactor.py PASS 0, ledger/verify_arxiv_csv.py PASS 0, ledger/verify_github_python_repos.py FAIL 1, sphinx/archive-remember-r1-figures verify_archive.py TIMEOUT 120s. Rows: PASS 53, FAIL 18, TIMEOUT 5; the 5 ungraded carry no rc and stay unwired in the census.
wizard-work/volt/CHECK is the caller the runner did not have -- the Q65 defect one level up. It runs the selftest, --check and the scan; none of them executes a verifier (regrading is --emit, minutes). Promoting it to a tools/verify.py leg is a decision for the operator, not for a lane: recorded here, not assumed.
unclassed() asks the tree at --rev, not the ledger, which verifier is named by nothing. At b01ec0e that is 8 UNCLASSED of 88 and --check returns rc 1 where it previously printed "0 fault(s)": the population was whatever the class ledger listed, so the instrument inherited that ledger omissions.
Also: emit() wrote "rev: HEAD". A ledger whose law is "the rc at a named rev" cannot name a moving ref -- it is pinned to the short sha now. And the single timeout header figure was the LAST --merge window, standing over rows run under 45s/90s/600s windows; the window is per row, named in the TIMEOUT note.
Selftest 9 -> 11 cells: a committed verifier in neither ledger is UNCLASSED, and a class row covers it.
gate-run 68, wired-invoke 4, declared-one-off 8, undeclared 8. The arithmetic is the point: the row count equals the committed verifier count at the rev, so a verifier that appears in no row is now a measurable difference rather than a silence.
Two defects, both measured at b01ec0e before the change.
1. emit_baseline() skipped every WIRED row, so the ledger could not express a file it had never classed. Eight of the 88 committed verify_*.py sat in no class and no ledger while both instruments printed clean. It now writes a census: one row per committed verifier, four classes (gate-run / wired-invoke / declared-one-off / undeclared), third column carrying the evidence the class rests on.
2. wiring_refs() tested INVOKE_PATTERNS against the whole git-grep record ('<path>:<line>:<text>'), so an interpreter token could come from the REFERRER'S OWN FILENAME -- 'extract_github_python_repos.py' supplied 'python' and a prose mention supplied the basename. The shape is now tested on the line TEXT only. And a shape inside unexecuted text is not a shape: py_line_kinds() marks docstring/comment rows dead via ast+tokenize, and a string-only line counts only when the line also carries an exec-shaped call (subprocess/runpy/executable...).
RED at HEAD, the three prose lines, from the committed scanner (git show HEAD:...): WIRED ledger/verify_arxiv_csv.py, WIRED ledger/verify_github_python_repos.py, WIRED sphinx/archive-remember-r1-figures-2026-10-23/verify_archive.py. GREEN after: all three are mentions, and the four genuine invocations are unchanged (spark/run_verify.sh, lc-coverage and lc-mm-dossier mutation_battery.py, transformer CHECK.py). Selftest 6 -> 10 cells, the four new ones built from these exact shapes.
path_claim_check graded it NEW (not in the baseline) and tools/verify.py was 8 legs / 7 pass / 1 fault on it. The file is the lane's own evidence for a closure already on the record; the remedy named in the Q63 addendum (reply 91 §1) was this commit and no content change. Blob unchanged: 10108 bytes, mtime 18:34 as written.