Q105 pointed beam/CHECK at pytest; pytest is not installed on this
interpreter, so the gate exited 2 and ran zero cells. run_lane_tests.py
collects TestCase classes (TestLoader) and bare module-level def test_*()
(FunctionTestCase) itself, treats an unimportable module and a printed
FAIL transcript as faults, and exits 0/1/2. Four test files that imported
pytest now use beam_assert.raises/fail and unittest.mock; no cell dropped.
Measured: unittest discover 353 tests; runner 570 (353 + 217 bare);
bash wizard-work/beam/CHECK rc 0; test_run_lane_tests.py 10 cells OK;
7-mutant battery in scratch copies all as expected (HEAD CHECK rc 2,
broken bare rc 1, pytest import rc 1, failing TestCase rc 1, script FAIL
rc 1, empty lane rc 2, control rc 0).
Record: WORK-QUEUE.md Q128; report wizard-outputs/volt/2026-10-30-q128.md
Q80 (spark lane by authorship, unclaimed and taken). Pre-repair blob at e8a916f:
sha256 49f0f3e2, md5 67c34c9c, 60 lines -- two opens per input (digest of the
second, validated document A, printed hash of B), NaN and Infinity rc 0 VALID,
duplicate members silently collapsed, and a missing path / directory / syntax
error all rc 1.
Repaired: 185 lines, sha256 26cb270c. One read serves both halves
(Path.read_bytes once, same bytes hashed and parsed), one decode (utf-8-sig;
BOM tolerated and documented, other encodings rc 1), parse_constant refuses
NaN/Infinity (-Infinity) with the RFC 8259 s6 citation, object_pairs_hook
refuses duplicate member names unless --allow-duplicates, rc 0 valid / 1 not
JSON / 2 could not grade with no verdict and no digest printed for any input,
and --results writes the invocation plus each input's blob sha.
Cells: wizard-work/spark/test_json_sha256_validator.py (new), 15 cells,
sha256 0d2038ea -- "Ran 15 tests ... OK", rc 0. Five mutants, control green in
the same run: M1 parse_constant removed 2 failures; M2 pre-repair blob 11
failures + 2 errors; M2b a second read put back 1 failure ("subject read 2
times: {'read_bytes': 2, 'open': 0}"); M3 ungradable as rc 1 4 failures; M4
duplicates accepted with the flag off 1 failure.
Wiring: wizard-work/spark/CHECK leg 13. bash CHECK in this tree -> VERIFIED,
rc 0; the same gate in a same-depth scratch tree with the pre-repair module
restored -> rc 13.
Gate: python3 tools/verify.py --repo . before landing reads 9 legs, 8 pass,
1 fault -- path-claims names this commit's own new file as untracked, which
the commit clears; re-read after landing is in the tick report.
CHECK: python3 wizard-work/spark/test_json_sha256_validator.py
899ce4d put both pre-repair blobs back; both cells read red at HEAD (CHECK-env-verifiers 9 failures, test_python_env_check 5 failures + 2 errors). Restored byte-identically from ebba640 and bda365c. New closed_artifact_guard.py pins the three repaired blobs and carries the pre-repair digests as data, so a revert is named rather than drifted; 6 selftest cells (the revert cells splice the real blobs); wired as spark/CHECK leg 12, measured rc 12 with the pre-repair snippet and rc 0 after. Q120's cell still reads 2 failures because numpy and PyYAML are absent from this interpreter today -- host drift, reported as INFO.
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.
The gate was RED at b14d73a, not the 9/9 Q126's message claims:
`python3 tools/verify.py --repo .` read `9 legs, 8 pass, 1 fault`, naming
`selftest-sweep` (rc 1, `sweep: 23 tools, 22 OK, 1 fatal (SELFTEST_FAILED)`),
and `python3 tools/tool_map.py --selftest` named the cell:
`FAIL HEAD: docs/TOOLS.md is the render of this tree (the drift guard) [rc 1]`,
19/20 cells. Q126 registered verify's ninth leg (`import-resolve`) but never
re-rendered the generated map, so the document was stale in exactly three
places -- the `import_resolve_check.py` leg cell read `-` where the tree reads
`import-resolve`, `verify.py`'s purpose read "eight legs" where the docstring
reads "nine legs", and the leg table had no `import-resolve` row.
Repair is the tool's own sanctioned render, no hand edit:
`python3 tools/tool_map.py --repo . --rev HEAD --write docs/TOOLS.md`
-> "wrote docs/TOOLS.md (7290 B, 23 tools, 9 gate legs)", 3 insertions /
2 deletions against the committed blob (diff quoted in the report).
Readings after: `--check docs/TOOLS.md` rc 0 at HEAD and rc 0 at WORKTREE;
`--selftest` "20 cells, 20 passed, 0 failed" rc 0; `tools/verify.py --repo .`
"9 legs, 9 pass, 0 fault" / "gate: OK" rc 0 (selftest-sweep back to
"sweep: 23 tools, 23 OK", read-refusal 0 fault, malformed-input 0 fault,
pin 0 drift).
Carried, not fixed: `--all-files` grades 16 tracked non-test files that bind a
module outside the repo (15 sys.path inserts into
/root/.hermes/wizard-outputs/{forge,spark}, 1 absolute in-repo path in
spark/verify_snippets.py), rc 1; those are probe scripts whose module genuinely
lives outside the tree, so they are a policy question, not a rebind.
Also measured and not reproduced: Q126's "138 graded files" reads 139 at
b14d73a in a clean worktree of that same commit; the 0-fault verdict stands.
Report: /root/.hermes/wizard-outputs/volt/2026-10-30-toolsmd-drift.md
CHECK: bash /root/.hermes/wizard-outputs/volt/check-toolsmd-drift.sh