At30653c6the 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.
8.2 KiB
Q65 residual — the pathspec that filed a false fault, and the verifier whose premise expired before anything ran it
Lane: volt (the Workhorse). Item: WORK-QUEUE.md Q65, closed at 8ec7725
and re-measured here. Read at: 30653c6 (the tree every figure below was
measured at, unless it names another).
Q65 closed with census 93 of 93 and q63: 0 fault(s). Sixty-eight minutes later
the same tool printed 93 of 99, because six verifiers had landed since and no
tools/verify.py leg runs the census — Q65's own recorded hole (:11094), which
stays the operator's call. This tick does not re-argue that. It does the work the
reopened class asked for, and it found two defects of its own on the way.
1. Where the item stood at 30653c6
committed verify_*.py : 99 (spark 36 forge 28 ledger 15 sphinx 12 sol 5 null 2 beam 1)
wired by name (invoke) : 7 of 99
census coverage : 93 of 99 <-- 6 UNCLASSED
unwired, NEW (fault) : 5
q63: 5 fault(s)
and bash wizard-work/volt/CHECK was rc 1 on q65: 6 fault(s) — six
committed verifiers named by neither ledger. Not one of them was broken. All six
were unread: nothing in the archive had ever run them, so each one's verdict was
whatever its author last saw by hand. That is Q65's thesis, one day old.
2. The pathspec filed a false fault against a lane that had wired its file
The five NEW_UNWIRED rows were not five facts. One of them was the instrument
lying: wizard-work/sphinx/archive-agentic-memory-5paper-dossier-2026-10-25/CHECK.txt
is a single line —
python3 "$(dirname "$0")/verify_claims.py"
— that is, sphinx's committed gate invokes verify_claims.py by name, from the
verifier's own directory, and the scan reported the verifier as invoked by
nothing. The wiring grep's pathspec list carried :(glob)**/CHECK and stopped
there; a gate named CHECK.txt was not a place the scanner looked for a runner.
The same class had already been recorded once, one file extension narrower:
CODE_PATHSPECS used the bare literal CHECK until 2026-10-24, which matches only
./CHECK, so four nested wizard-work/*/CHECK files were invisible too.
Measured red/green, one argument changed. The patched scanner was run from a
scratch copy with every other argument held fixed, against the same ledger and the
same HEAD:
| before | after :(glob)**/CHECK.txt |
|
|---|---|---|
wired by name (invoke) |
7 of 99 | 8 of 99 |
unwired (code-grep) |
13 of 99 | 12 of 99 |
unwired, NEW (fault) |
5 | 4 |
and the one file that moves between the two NEW_UNWIRED lists is exactly
wizard-work/sphinx/archive-agentic-memory-5paper-dossier-2026-10-25/verify_claims.py.
Verbatim readings: q65-2026-10-25-residual-red.txt, q65-2026-10-25-residual-green.txt.
The scanner's own selftest is 10 of 10 after the change, including the cell that
grades "a token from the referrer's own path does not wire a file" — the rule this
change must not weaken.
Why it is a fix and not a tolerance row. The alternative was a row in
tools/path_claim_baseline.tsv-style fashion accepting a wrong citation; here the
alternative would have been a row in the census calling a wired verifier
undeclared, which records a defect that does not exist 99 times over. The
pathspec is a claim about where a runner may live. Leaving a gate's filename out of
it manufactures a fault in the lane that wrote the gate.
3. The census re-emitted: 99 of 99, and no row is a guess
census written: q63_unwired_baseline.tsv (99 rows: gate-run 83, wired-invoke 8, declared-one-off 8)
83 + 8 + 8 = 99 is the check, against 99 committed verifiers at the same rev.
The four files that were undeclared after the pathspec fix were then run —
that is what converts an unread claim into a graded row:
FAIL 0.39s wizard-work/forge/verify_check_lint_classes_dry.py
PASS 0.35s wizard-work/forge/verify_repro_bounds_refactor.py
PASS 0.58s wizard-work/forge/verify_smell_check_monotonic_refactor.py
PASS 0.06s wizard-work/spark/verify_env.py
q65_runner: 83 row(s) in 2.2s
PASS 58, FAIL 25
The ledger went 79 rows (PASS 55, FAIL 24) to 83 (PASS 58, FAIL 25). After the
census was re-emitted with those graded rows, q63_verify_scan.py --repo . reads:
census coverage : 99 of 99 committed verifier(s) carry a ledger row
unwired, ledger-tolerated : 8 (q63_unwired_baseline.tsv: 8 declared-one-off)
unwired, NEW (fault) : 0
q63: 0 fault(s)
and bash wizard-work/volt/CHECK is rc 0, tree audit : 0 unclassed of 99.
4. The one that failed is the argument for the whole item
wizard-work/forge/verify_check_lint_classes_dry.py returned rc 1 on its first
recorded execution:
[FAIL] [4a] code-level: original HAS tally line
[FAIL] [4d] code-level: original HAS NO Counter import
verify: 11 checks, 9 passed, 2 failed
VERDICT: MISMATCH -- behavior NOT preserved
It is not a flake and it is not drift. The verifier reads its "original" as:
def orig_text():
"""Committed pre-refactor source = HEAD (the refactor is a working-tree change)."""
p = subprocess.run(["git", "-C", REPO, "show", "HEAD:" + TOOL], ...)
That premise was true for exactly as long as the refactor was an uncommitted
working-tree change. It was committed in the same commit that added the verifier —
4f76eaa, tools/check_lint.py | 9 +-, wizard-work/forge/verify_check_lint_classes_dry.py | 252 +
— so from its first commit HEAD:tools/check_lint.py is the refactored file, and
"original" and "refactored" are the same bytes. The consequence is worse than a
failed check:
[4a]and[4d]are the only checks that can distinguish the two versions, and they fail because there is no second version to compare.[3]and[5], which printBYTE-IDENTICAL, pass vacuously — a file compared with itself is byte-identical. The verifier's loudest evidence is the evidence it cannot have.
Nothing noticed for a day because nothing ran it. This is the case Q65 opened on,
found in the population Q65 built to find it. The fix belongs to forge (pin the
pre-refactor blob by sha instead of reading HEAD); the row is recorded here as a
finding held open, which is what the ledger's FAIL class means.
5. What this does and does not close
- Closes: the six
UNCLASSEDverifiers. Every committed verifier at30653c6now carries a census row, four of them by execution, one by its own gate's invocation line, and the census arithmetic is stated rather than implied. - Not closeable from this lane: the 25
FAILrows are per-lane findings; the 51PASS*rows still read an absolute/root/...root and are excluded fromgraded-clean(7 of 83) — Q62's class, one per owning lane. (48 of those rows predate this tick; three of the four newly graded ones —verify_env.py,verify_repro_bounds_refactor.py,verify_smell_check_monotonic_refactor.py— carry a host root as well, so the count moves 48 → 51 for the honest reason.)tools/verify.pyat this tree is 8 legs, 7 pass, 1 fault, the fault beingpath-claimson forge's two-character citation (wizard-work/forge/smell_check_monotonic.py/smell_check_monotonic_refactored.py, cited atwizard-work/forge/SMELL_CHECK_MONOTONIC_REFACTOR_VERIFICATION.md:95-96), which is forge's file and not repaired here. - Not taken: promoting
wizard-work/volt/CHECKto atools/verify.pyleg is shared-property surgery and remains the operator's call (reply 93 §4). The census would have stayed current today if it had been one.
6. Evidence
- Change:
wizard-work/volt/q63_verify_scan.py—CODE_PATHSPECSgains:(glob)**/CHECK.txt, with the measurement recorded beside it. - Readings:
q65-2026-10-25-residual-red.txt(before),-green.txt(pathspec only, all else held),-final.txt(after the census and the runner). - Ledgers:
wizard-work/volt/q63_unwired_baseline.tsv(99 rows, rev30653c6),wizard-work/volt/q65_runner_baseline.tsv(83 rows, PASS 58 / FAIL 25). - Selftests:
q63_verify_scan.py --selftest10/10;q65_runner.py --selftest22/22. - Gate:
bash wizard-work/volt/CHECKrc 0;python3 tools/verify.py --repo .8 legs, 7 pass, 1 fault (path-claims, forge's, unchanged from0868c6b).