diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index 7927d62..1ebaedf 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -11136,3 +11136,14 @@ The class: an invocation-shaped reference to the file exists from nowhere in the - **Q65's closure is exact and already stale.** At its own tree `8ec7725` the census reads 93 verifiers, coverage 93 of 93, `q63: 0 fault(s)`, runner 79 rows (PASS 55 / FAIL 24 / TIMEOUT 0) — reproduced here in a detached worktree. At `07e23c5` the same tool reads 93 of 99. The item closed at 02:21Z and its class reopened at 03:11Z, because no `tools/verify.py` leg runs the census (Q65's own recorded hole, `:11094`); that hole is unchanged and remains the operator's call, not re-argued. - **Verified elsewhere this tick, not re-reported:** ledger's 20-commit table `CHECK` rc 0 at its pin `0392469`, byte-identical to a git re-derivation (snapshot one commit behind HEAD by construction); sphinx's dossier verifier rc 0 with my own negative controls — a value substitution in `DOSSIER.md` → rc 1 naming `R1`, one flipped byte in a corpus file → rc 1 naming that paper's sha256 pin — and its five corpus pins equal to my own `sha256sum` of the committed bytes; forge's `verify_smell_check_monotonic_refactor.py` 9/9 rc 0; `tools/check_lint.py --selftest` 37/37; `index-current` and `append-audit` PASS at both revs. - **No item opened or closed; the open set is unchanged** (`Q37`, `Q53` and `Q64` Alexander's, `Q57` null's, `Q58` sol's, `Q60`, `Q62`, `Q63`). No decision for Alexander: the citation is forge's to fix and the pathspec is volt's, neither is a design question. Nothing from `inbox/` is quoted here or in the delivery; visibility re-read `private: false` with the seed's blob unchanged (`c05e6a0666d8`), which is Alexander's standing KEEP PUBLIC ruling (`decisions/2026-10-06-human-gates.md`), so no visibility blocker is raised. Appended at the foot; `docs/queue-index.md` re-rendered in the same commit. + +--- + +**Q65 residual, 2026-10-25 (volt, at `30653c6`) — the census is 99 of 99 again; one of the six UNCLASSED was the instrument's own false fault, and the one never-graded verifier that failed had been unable to pass since the commit that added it.** + +- **Where it stood.** `q63_verify_scan.py --repo .` at `30653c6`: 99 committed verifiers, `wired by name (invoke) 7 of 99`, `census coverage 93 of 99`, `unwired, NEW (fault) 5`, `q63: 5 fault(s)`; `bash wizard-work/volt/CHECK` rc 1 on `q65: 6 fault(s)`. Q65 closed at `8ec7725` with 93 of 93, so the class reopened 68 minutes after the close because no `tools/verify.py` leg runs the census — that hole is unchanged and is still the operator's call (reply 93 §4), not re-argued here. +- **One of the five NEW_UNWIRED was a pathspec defect, not a fact.** `wizard-work/sphinx/archive-agentic-memory-5paper-dossier-2026-10-25/CHECK.txt` is one line, `python3 "$(dirname "$0")/verify_claims.py"` — a committed gate invoking its verifier — and the scan's wiring pathspecs carried `:(glob)**/CHECK` and not `CHECK.txt`. Measured from a scratch copy with every other argument held fixed: `wired by name (invoke)` 7 -> **8**, `unwired (code-grep)` 13 -> **12**, `unwired, NEW (fault)` 5 -> **4**, and the one file moving between the two NEW lists is exactly that verifier. Readings: `wizard-work/volt/q65-2026-10-25-residual-red.txt` and `-green.txt`; scanner selftest 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 census re-emitted and no row is a guess.** `99 rows: gate-run 83, wired-invoke 8, declared-one-off 8`, and 83 + 8 + 8 = 99 against 99 committed verifiers at the same rev. The four files left `undeclared` after the pathspec fix were then executed: `forge/verify_check_lint_classes_dry.py` FAIL rc 1 0.39 s, `forge/verify_repro_bounds_refactor.py` PASS 0.35 s, `forge/verify_smell_check_monotonic_refactor.py` PASS 0.58 s, `spark/verify_env.py` PASS 0.06 s. Ledger 79 rows (PASS 55 / FAIL 24) -> **83 (PASS 58 / FAIL 25)**; census reads `99 of 99 committed verifier(s) carry a ledger row`, `unwired, NEW (fault) 0`, `q63: 0 fault(s)`; `bash wizard-work/volt/CHECK` **rc 0**, `tree audit : 0 unclassed of 99`; `q65_runner.py --selftest` 22/22. +- **The FAIL is the item's own demonstration, and it is not drift.** `forge/verify_check_lint_classes_dry.py` reports `[4a] code-level: original HAS tally line` FAIL and `[4d] code-level: original HAS NO Counter import` FAIL, `11 checks, 9 passed, 2 failed`, `VERDICT: MISMATCH -- behavior NOT preserved`. Its `orig_text()` reads `git show HEAD:tools/check_lint.py` under the docstring "the refactor is a working-tree change"; the refactor was committed in the same commit that added the verifier (`4f76eaa`, `tools/check_lint.py | 9 +-`, `verify_check_lint_classes_dry.py | 252 +`), so from its first commit original and refactored are the same bytes: the two checks that could distinguish them fail, and the two that print `BYTE-IDENTICAL` pass **vacuously** — a file compared with itself. Nothing noticed for a day because nothing ran it. The remedy (pin the pre-refactor blob by sha rather than reading `HEAD`) is forge's to take; the row stands as a held-open finding, which is what the ledger's FAIL class means. +- **Not closed here, and named.** The 25 FAIL rows are per-lane findings; the 51 `PASS*` rows still read an absolute `/root/...` root and are excluded from `graded-clean` (7 of 83) — Q62's class, one per owning lane (48 predate this tick; three of the four newly graded rows carry a host root too, which is why 48 -> 51). `python3 tools/verify.py --repo .` at this tree is **8 legs, 7 pass, 1 fault, 0 ungradable**, the fault being `path-claims` on forge's two-character citation (`wizard-work/forge/smell_check_monotonic.py` and `smell_check_monotonic_refactored.py`, cited at `wizard-work/forge/SMELL_CHECK_MONOTONIC_REFACTOR_VERIFICATION.md:95-96`) — forge's file, unchanged from `0868c6b`, not repaired here. +- **Evidence:** commit carrying this append; `wizard-work/volt/q65-2026-10-25-residual.md` (§2 the pathspec red/green, §3 the census arithmetic, §4 the vacuous-equivalence finding, §5 what stays open); `q65-2026-10-25-residual-{red,green,final}.txt` (verbatim readings, provenance line in each, `-final` captured 04:32:02Z at `30653c6`); `wizard-work/volt/q63_unwired_baseline.tsv` (99 rows, rev `30653c6`) and `q65_runner_baseline.tsv` (83 rows, rev `30653c6`). No other lane's file was edited. Appended at the foot; `docs/queue-index.md` re-rendered in this commit. diff --git a/docs/queue-index.md b/docs/queue-index.md index c2fceff..28de8c8 100644 --- a/docs/queue-index.md +++ b/docs/queue-index.md @@ -63,7 +63,7 @@ | 53 | Q60 | 10830-10889 | 9719 | opening | Every truncated identifier in the archive: which ones can still be checked *(pipe tooling; opened 2026-10-24 by the pipe, per reply 86 §6 and reply 87 §1)* | open and unclaimed. | | 54 | Q61 | 10890-10945 | 9624 | opening | beam's `topo_sort` drops generator dependencies, and its gate imports a copy outside the repo *(beam lane; opened 2026-10-24 by the pipe, per reply 88 to zephyrus)* | open and unclaimed. | | 55 | Q62 | 10946-10993 | 3717 | opening | 147 committed gates read `/root/.hermes/wizard-outputs`; two of them cannot pass from a clone *(no lane owns it; opened 2026-10-24 by the pipe, per reply 89 to zephyrus)* | open and unclaimed. | -| 56 | Q63 | 10994-11138 | 42354 | opening | Six committed verifiers print PASS while asserting nothing, and eight are run by no gate *(no lane; opened 2026-10-24 by the pipe, per reply 90 to zephyrus)* | open and unclaimed. | +| 56 | Q63 | 10994-11149 | 46955 | opening | Six committed verifiers print PASS while asserting nothing, and eight are run by no gate *(no lane; opened 2026-10-24 by the pipe, per reply 90 to zephyrus)* | open and unclaimed. | ## Ids with no `## ` heading @@ -80,7 +80,7 @@ Opened as records inside another section. `line` is the record's own opening lin | Q52 | 7167 | 7167 | 90 | Q49 | BULLET+BOLD | BOLD-LEAD | | Q53 | 7292 | 7246 | 163 | Q49 | BULLET+BOLD | BOLD-LEAD | | Q64 | 10308 | 10308 | 26 | Q45 | BULLET+BOLD | BOLD-LEAD | -| Q65 | 11055 | 11047 | 15 | Q63 | BULLET+BOLD | BOLD-LEAD | +| Q65 | 11055 | 11047 | 17 | Q63 | BULLET+BOLD | BOLD-LEAD | **Not in this document.** Ids the prose corpus names that the queue has never mentioned (`checkins/`, `replies/`, `recoveries/`, `audits/`, `docs/`, the top-level documents; `tools/` excluded). That set moves with the prose, not with the queue, so embedding it here would make `--check` go RED for a reason that has nothing to do with the queue being current. It is reported on demand: `python3 tools/queue_index.py --outside`. @@ -250,7 +250,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "form": "BOLD-LEAD", "id": "Q65", "line": 11055, - "refs": 15, + "refs": 17, "section": "Q63", "shape": "BULLET+BOLD" } @@ -260,9 +260,9 @@ The block below is the parse this document renders, byte for byte. `--check` com "end_line": 8, "line": 1 }, - "queue_bytes": 1552041, - "queue_lines": 11138, - "queue_sha256": "23d4a1d03c74f23a96c07147970412b7c2c3394742ac34df943ebb34d21de0df", + "queue_bytes": 1556642, + "queue_lines": 11149, + "queue_sha256": "75ff88f178cd84095043b7ac7d012dec3c8de7c9a4056db4b32ddcac1878dc0e", "sections": [ { "bytes": 3139, @@ -925,11 +925,11 @@ The block below is the parse this document renders, byte for byte. `--check` com "title": "147 committed gates read `/root/.hermes/wizard-outputs`; two of them cannot pass from a clone *(no lane owns it; opened 2026-10-24 by the pipe, per reply 89 to zephyrus)*" }, { - "bytes": 42354, - "end_line": 11138, + "bytes": 46955, + "end_line": 11149, "id": "Q63", "line": 10994, - "lines": 145, + "lines": 156, "role": "opening", "role_detail": "", "status": "open and unclaimed.", diff --git a/wizard-work/volt/q63_unwired_baseline.tsv b/wizard-work/volt/q63_unwired_baseline.tsv index cf6d3e4..e8e6f0e 100644 --- a/wizard-work/volt/q63_unwired_baseline.tsv +++ b/wizard-work/volt/q63_unwired_baseline.tsv @@ -1,6 +1,6 @@ # Q63 verifier census -- one row per COMMITTED verify_*.py at the rev the # scan read, class plus the evidence the class rests on. -# rev: 0ba6be9 (the tree these classes were read at) +# rev: 30653c6 (the tree these classes were read at) # row: TAB TAB (three tab-separated columns) # class gate-run = q65_runner.py executed it and recorded an rc (Q65); # class wired-invoke = a committed line invokes it (the ref is the evidence); @@ -16,13 +16,14 @@ declared-one-off wizard-work/beam/verify_toposort_none.py in-file declaration declared-one-off wizard-work/forge/verify_append_only_audit_dry_refactor.py in-file declaration gate-run wizard-work/forge/verify_append_only_owners_dry_refactor.py q65:PASS gate-run wizard-work/forge/verify_census_row_delta_exit_contract.py q65:PASS +gate-run wizard-work/forge/verify_check_lint_classes_dry.py q65:FAIL gate-run wizard-work/forge/verify_check_lint_dry_refactor.py q65:FAIL gate-run wizard-work/forge/verify_checkin_check_dry_refactor.py q65:PASS gate-run wizard-work/forge/verify_chunker_refactor.py q65:PASS gate-run wizard-work/forge/verify_citation_hash_class_dry_refactor.py q65:FAIL -undeclared wizard-work/forge/verify_citation_hash_class_portable_default.py no invocation, no declaration, no graded run +gate-run wizard-work/forge/verify_citation_hash_class_portable_default.py q65:FAIL gate-run wizard-work/forge/verify_citation_resolve_check_dry_refactor.py q65:FAIL -undeclared wizard-work/forge/verify_doc_census_dry_refactor.py no invocation, no declaration, no graded run +gate-run wizard-work/forge/verify_doc_census_dry_refactor.py q65:FAIL gate-run wizard-work/forge/verify_doc_command_report_dry.py q65:FAIL gate-run wizard-work/forge/verify_gate_blame_dry_refactor.py q65:FAIL gate-run wizard-work/forge/verify_landing_check_refactor.py q65:PASS @@ -31,13 +32,16 @@ gate-run wizard-work/forge/verify_path_claim_dry_refactor.py q65:FAIL gate-run wizard-work/forge/verify_pdf_refactor.py q65:PASS gate-run wizard-work/forge/verify_queue_append_audit_dry_refactor.py q65:FAIL gate-run wizard-work/forge/verify_reply_check_dry_refactor.py q65:PASS +gate-run wizard-work/forge/verify_repro_bounds_refactor.py q65:PASS gate-run wizard-work/forge/verify_roundtrip_refactor.py q65:PASS gate-run wizard-work/forge/verify_selftest_sweep_dry_refactor.py q65:FAIL -undeclared wizard-work/forge/verify_selftest_sweep_refactor.py no invocation, no declaration, no graded run +gate-run wizard-work/forge/verify_selftest_sweep_refactor.py q65:FAIL gate-run wizard-work/forge/verify_served_drift_summarise_dry.py q65:PASS +gate-run wizard-work/forge/verify_smell_check_monotonic_refactor.py q65:PASS gate-run wizard-work/forge/verify_smell_scan_refactor.py q65:PASS gate-run wizard-work/forge/verify_tool_map_dry_refactor.py q65:PASS gate-run wizard-work/forge/verify_write_probe_dry_refactor.py q65:FAIL +wired-invoke wizard-work/ledger/2026-10-25-head-20-commits/verify_head_commits.py HEAD:wizard-work/ledger/2026-10-25-head-20-commits/CHECK:7:exec python3 verify_head_commits.p... gate-run wizard-work/ledger/verify_arxiv_csai.py q65:PASS gate-run wizard-work/ledger/verify_arxiv_csai_fresh.py q65:PASS gate-run wizard-work/ledger/verify_arxiv_csv.py q65:PASS @@ -67,11 +71,12 @@ gate-run wizard-work/spark/verify_demo.py q65:PASS gate-run wizard-work/spark/verify_dir.py q65:PASS gate-run wizard-work/spark/verify_dir_analyzer.py q65:PASS wired-invoke wizard-work/spark/verify_dirs.py HEAD:wizard-work/spark/run_verify.sh:2:python3 /root/.hermes/wizard-outputs/spark/verify_dirs.py +gate-run wizard-work/spark/verify_env.py q65:PASS gate-run wizard-work/spark/verify_environment.py q65:FAIL gate-run wizard-work/spark/verify_fib.py q65:PASS gate-run wizard-work/spark/verify_formatter.py q65:PASS gate-run wizard-work/spark/verify_hermes.py q65:FAIL -undeclared wizard-work/spark/verify_hermes_cli.py no invocation, no declaration, no graded run +gate-run wizard-work/spark/verify_hermes_cli.py q65:PASS gate-run wizard-work/spark/verify_hermes_path.py q65:PASS gate-run wizard-work/spark/verify_inventory.py q65:FAIL gate-run wizard-work/spark/verify_json.py q65:PASS @@ -94,14 +99,15 @@ gate-run wizard-work/spark/verify_status.py q65:PASS gate-run wizard-work/spark/verify_sum.py q65:PASS gate-run wizard-work/spark/verify_tool.py q65:PASS gate-run wizard-work/spark/verify_wordcount.py q65:PASS +wired-invoke wizard-work/sphinx/archive-agentic-memory-5paper-dossier-2026-10-25/verify_claims.py HEAD:wizard-work/sphinx/archive-agentic-memory-5paper-dossier-2026-10-25/CHECK.txt:1:python3 ... gate-run wizard-work/sphinx/archive-gutenberg/verify_archive.py q65:PASS -undeclared wizard-work/sphinx/archive-index-2026-10-23/verify_index.py no invocation, no declaration, no graded run +gate-run wizard-work/sphinx/archive-index-2026-10-23/verify_index.py q65:FAIL wired-invoke wizard-work/sphinx/archive-lc-coverage-crossindex-2026-10-23/verify_archive.py HEAD:wizard-work/sphinx/archive-lc-coverage-crossindex-2026-10-23/mutation_battery.py:85: rc ... wired-invoke wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/verify_dossier.py HEAD:wizard-work/sphinx/archive-lc-mm-dossier-2026-10-23/mutation_battery.py:31: p = subproce... gate-run wizard-work/sphinx/archive-memgallery-2026-10-21/verify_claims.py q65:FAIL gate-run wizard-work/sphinx/archive-memlens-2026-10-22/verify_memlens_archive.py q65:PASS gate-run wizard-work/sphinx/archive-mm-prm-2026-10-22/verify_mm_prm_archive.py q65:PASS -undeclared wizard-work/sphinx/archive-remember-r1-figures-2026-10-23/verify_archive.py no invocation, no declaration, no graded run +gate-run wizard-work/sphinx/archive-remember-r1-figures-2026-10-23/verify_archive.py q65:FAIL wired-invoke wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23/verify_archive.py HEAD:wizard-work/sphinx/archive-transformer-pdf-modality-2026-10-23/CHECK.py:173: p = subproc... wired-invoke wizard-work/sphinx/figure-locator-llama3-2026-10-24/verify_locators.py HEAD:wizard-work/sphinx/figure-locator-llama3-2026-10-24/run_checks.sh:13:python3 "$DIR/verif... gate-run wizard-work/sphinx/verify_mm_dossier.py q65:PASS diff --git a/wizard-work/volt/q63_verify_scan.py b/wizard-work/volt/q63_verify_scan.py index 30f8772..4e27026 100644 --- a/wizard-work/volt/q63_verify_scan.py +++ b/wizard-work/volt/q63_verify_scan.py @@ -91,7 +91,17 @@ EXIT_RE = re.compile(r"\b(?:sys\.)?exit\(\s*([^)]*?)\s*\)") # wired, because no nested CHECK invokes a verify_*.py (they run # `unittest discover -p 'test_*.py'`). The defect was latent, not academic: # a nested CHECK that ran a verifier would have been read as not running it. -CODE_PATHSPECS = ["*.py", "*.sh", ":(glob)**/CHECK", "*.yml", "*.yaml"] +CODE_PATHSPECS = ["*.py", "*.sh", ":(glob)**/CHECK", ":(glob)**/CHECK.txt", + "*.yml", "*.yaml"] +# `CHECK.txt` was the second half of the same defect, measured 2026-10-25 at +# `30653c6`: sphinx's `archive-agentic-memory-5paper-dossier-2026-10-25/CHECK.txt` +# is one line, `python3 "$(dirname "$0")/verify_claims.py"`, and the file sat in +# the NEW_UNWIRED fault list while its own committed gate invoked it. Adding +# `:(glob)**/CHECK.txt` and holding every other argument fixed moves +# `wired by name (invoke)` 7 -> 8 and `unwired, NEW (fault)` 5 -> 4, with the +# one file that moves being exactly that verifier. A pathspec is a claim about +# where a runner may live; leaving a gate filename out of it files a false +# fault against the lane that wrote the gate. DECLARED_RE = re.compile(r"Q63", re.I) DECLARED_PHRASE = "no committed gate invokes" # The measuring instruments name every file in the class; naming is not running. diff --git a/wizard-work/volt/q65-2026-10-25-residual-final.txt b/wizard-work/volt/q65-2026-10-25-residual-final.txt new file mode 100644 index 0000000..2a8fca8 --- /dev/null +++ b/wizard-work/volt/q65-2026-10-25-residual-final.txt @@ -0,0 +1,32 @@ +# provenance: FINAL -- after the pathspec fix, the census re-emit and the runner sweep +# captured: 2026-10-25T04:32:02Z at rev 30653c6 (worktree) +# commands: q63_verify_scan.py --repo . ; q65_runner.py --check --class gate-run,undeclared ; bash wizard-work/volt/CHECK + +== q63_verify_scan.py --repo . +q63_verify_scan -- rev HEAD + committed verify_*.py : 99 (spark 36 forge 28 ledger 15 sphinx 12 sol 5 null 2 beam 1) + stripped-assert : 0 of 99 (no _check/raise/non-zero exit; -O compiles `assert` away) + wired by name (invoke) : 8 of 99 + run by q65_runner : 83 (FAIL 25, PASS 58) + unwired (code-grep) : 8 of 99 (`git grep -F -l HEAD -- *.py *.sh :(glob)**/CHECK :(glob)**/CHECK.txt *.yml *.yaml`) + unwired, ledger-tolerated : 8 (q63_unwired_baseline.tsv: 8 declared-one-off) + census coverage : 99 of 99 committed verifier(s) carry a ledger row + unwired, NEW (fault) : 0 +q63: 0 fault(s) +rc=0 + +== q65_runner.py --check --class gate-run,undeclared (head) +q65_runner -- rev HEAD, 83 population file(s), 83 ledger row(s) [ledger rev 30653c6] + rows at emit : 83 (PASS 58, FAIL 25) + graded (has rc): 83 of 83 + graded-clean : 7 of 83 (PASS on a host-independent verifier) + host-pinned : 51 PASS row(s) excluded as PASS* -- they read an absolute host root + PASS* wizard-work/forge/verify_append_only_owners_dry_refactor.py L41:/root/troupe-standup + PASS* wizard-work/forge/verify_census_row_delta_exit_contract.py L31:/root/troupe-standup + PASS* wizard-work/forge/verify_checkin_check_dry_refactor.py L39:/root/troupe-standup + +== bash wizard-work/volt/CHECK (tail) + PASS* wizard-work/sphinx/verify_mm_dossier.py L28:/root/.hermes + tree audit : 0 unclassed of 99 committed verifier(s) +q65: 0 fault(s) +CHECK PASS: census covers every committed verifier; runner ledger grades clean. diff --git a/wizard-work/volt/q65-2026-10-25-residual-green.txt b/wizard-work/volt/q65-2026-10-25-residual-green.txt new file mode 100644 index 0000000..d17b34e --- /dev/null +++ b/wizard-work/volt/q65-2026-10-25-residual-green.txt @@ -0,0 +1,17 @@ +# provenance: GREEN -- the same scanner with only :(glob)**/CHECK.txt added, every other argument held fixed +# captured: 2026-10-25, rev 30653c6 (worktree; verifier blobs identical at HEAD) +# command: python3 --repo . --baseline wizard-work/volt/q63_unwired_baseline.tsv --gate wizard-work/volt/q65_runner_baseline.tsv +q63_verify_scan -- rev HEAD + committed verify_*.py : 99 (spark 36 forge 28 ledger 15 sphinx 12 sol 5 null 2 beam 1) + stripped-assert : 0 of 99 (no _check/raise/non-zero exit; -O compiles `assert` away) + wired by name (invoke) : 8 of 99 + run by q65_runner : 79 (FAIL 24, PASS 55) + unwired (code-grep) : 12 of 99 (`git grep -F -l HEAD -- *.py *.sh :(glob)**/CHECK :(glob)**/CHECK.txt *.yml *.yaml`) + unwired, ledger-tolerated : 8 (q63_unwired_baseline.tsv: 4 NEW-UNWIRED, 8 declared-one-off) + census coverage : 93 of 99 committed verifier(s) carry a ledger row <-- 6 UNCLASSED, invisible to both instruments + unwired, NEW (fault) : 4 + NEW_UNWIRED wizard-work/forge/verify_check_lint_classes_dry.py + NEW_UNWIRED wizard-work/forge/verify_repro_bounds_refactor.py + NEW_UNWIRED wizard-work/forge/verify_smell_check_monotonic_refactor.py + NEW_UNWIRED wizard-work/spark/verify_env.py +q63: 4 fault(s) diff --git a/wizard-work/volt/q65-2026-10-25-residual-red.txt b/wizard-work/volt/q65-2026-10-25-residual-red.txt new file mode 100644 index 0000000..f4e5c0c --- /dev/null +++ b/wizard-work/volt/q65-2026-10-25-residual-red.txt @@ -0,0 +1,18 @@ +# provenance: RED -- the committed scanner before the pathspec change +# captured: 2026-10-25, rev 30653c6 (worktree; verifier blobs identical at HEAD) +# command: python3 wizard-work/volt/q63_verify_scan.py --repo . +q63_verify_scan -- rev HEAD + committed verify_*.py : 99 (spark 36 forge 28 ledger 15 sphinx 12 sol 5 null 2 beam 1) + stripped-assert : 0 of 99 (no _check/raise/non-zero exit; -O compiles `assert` away) + wired by name (invoke) : 7 of 99 + run by q65_runner : 79 (FAIL 24, PASS 55) + unwired (code-grep) : 13 of 99 (`git grep -F -l HEAD -- *.py *.sh :(glob)**/CHECK *.yml *.yaml`) + unwired, ledger-tolerated : 8 (q63_unwired_baseline.tsv: 5 NEW-UNWIRED, 8 declared-one-off) + census coverage : 93 of 99 committed verifier(s) carry a ledger row <-- 6 UNCLASSED, invisible to both instruments + unwired, NEW (fault) : 5 + NEW_UNWIRED wizard-work/forge/verify_check_lint_classes_dry.py + NEW_UNWIRED wizard-work/forge/verify_repro_bounds_refactor.py + NEW_UNWIRED wizard-work/forge/verify_smell_check_monotonic_refactor.py + NEW_UNWIRED wizard-work/spark/verify_env.py + NEW_UNWIRED wizard-work/sphinx/archive-agentic-memory-5paper-dossier-2026-10-25/verify_claims.py +q63: 5 fault(s) diff --git a/wizard-work/volt/q65-2026-10-25-residual.md b/wizard-work/volt/q65-2026-10-25-residual.md new file mode 100644 index 0000000..8d9f308 --- /dev/null +++ b/wizard-work/volt/q65-2026-10-25-residual.md @@ -0,0 +1,157 @@ +# 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 print `BYTE-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 `UNCLASSED` verifiers. Every committed verifier at `30653c6` + now 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 `FAIL` rows are per-lane findings; the + 51 `PASS*` rows still read an absolute `/root/...` root and are excluded from + `graded-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.py` at + this tree is **8 legs, 7 pass, 1 fault**, the fault being `path-claims` on forge's + two-character citation (`wizard-work/forge/smell_check_monotonic.py` / + `smell_check_monotonic_refactored.py`, cited at + `wizard-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/CHECK` to a `tools/verify.py` leg 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_PATHSPECS` gains + `:(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, rev `30653c6`), + `wizard-work/volt/q65_runner_baseline.tsv` (83 rows, PASS 58 / FAIL 25). +* Selftests: `q63_verify_scan.py --selftest` 10/10; `q65_runner.py --selftest` 22/22. +* Gate: `bash wizard-work/volt/CHECK` rc 0; `python3 tools/verify.py --repo .` + 8 legs, 7 pass, 1 fault (`path-claims`, forge's, unchanged from `0868c6b`). diff --git a/wizard-work/volt/q65_runner_baseline.tsv b/wizard-work/volt/q65_runner_baseline.tsv index a9d2a6f..f9f9147 100644 --- a/wizard-work/volt/q65_runner_baseline.tsv +++ b/wizard-work/volt/q65_runner_baseline.tsv @@ -17,14 +17,15 @@ # non-docstring string constant naming an absolute host root. Such a row # is printed PASS* and excluded from the graded-clean figure. # Regenerate: q65_runner.py --emit -# rev: d45a5ed rows: 79 emitted: q65_runner.py +# rev: 30653c6 rows: 83 emitted: q65_runner.py undeclared wizard-work/forge/verify_append_only_owners_dry_refactor.py PASS 0 0.32 0f650718d98bf28f07be134d49803cc902bf96b7 L41:/root/troupe-standup undeclared wizard-work/forge/verify_census_row_delta_exit_contract.py PASS 0 1.23 6afe76a665fa32fbcb56cd0c40329b5fe32bfc98 L31:/root/troupe-standup +undeclared wizard-work/forge/verify_check_lint_classes_dry.py FAIL 1 0.39 17a08fe2d230a30614a7835186bd8e9bec4f8f76 L44:/root/troupe-standup undeclared wizard-work/forge/verify_check_lint_dry_refactor.py FAIL 1 1.34 06a5c66c3f319d2fa7b4d9e2f73a2eafa7a99cad L78:/root/troupe-standup undeclared wizard-work/forge/verify_checkin_check_dry_refactor.py PASS 0 0.43 d8ba2b221b80365165eb3cace77d1764651d4fba L39:/root/troupe-standup undeclared wizard-work/forge/verify_chunker_refactor.py PASS 0 0.11 c3c7b5631f4a572c7a630269c0b3ec06e32792fc undeclared wizard-work/forge/verify_citation_hash_class_dry_refactor.py FAIL 1 131.04 subprocess.TimeoutExpired: Command '['/root/.hermes/installs/76f6e7e5145b5f39/environments/c5b879e2036d4c909805dd1858587925/venv/bin/python3', '/root/.hermes/wi 93abbc78e7f061d3e22483d8db148d434fb9caef L16:/root/troupe-standup -undeclared wizard-work/forge/verify_citation_hash_class_portable_default.py FAIL 1 333.13 subprocess.TimeoutExpired: Command '['/root/.hermes/installs/76f6e7e5145b5f39/environments/c5b879e2036d4c909805dd1858587925/venv/bin/python3', '/root/.hermes/pr 81c481978bb3c8bdd51a0c3fdb038ce385bfc898 L57:/root/troupe-standup +undeclared wizard-work/forge/verify_citation_hash_class_portable_default.py FAIL 1 1247.13 81c481978bb3c8bdd51a0c3fdb038ce385bfc898 L57:/root/troupe-standup undeclared wizard-work/forge/verify_citation_resolve_check_dry_refactor.py FAIL 1 17.19 cd325ddd210d5fa235024780b1737f16bb15b352 L29:/root/troupe-standup undeclared wizard-work/forge/verify_doc_census_dry_refactor.py FAIL 1 25.97 52a9702aa0e015bfeba92fb7e6efba4caece56d8 L57:/root/troupe-standup undeclared wizard-work/forge/verify_doc_command_report_dry.py FAIL 1 35.77 7a2f42a5b95d35d7b16e50261a7dd72d39eccbce L44:/root/troupe-standup @@ -34,10 +35,12 @@ undeclared wizard-work/forge/verify_path_claim_dry_refactor.py FAIL 1 0.52 FileN undeclared wizard-work/forge/verify_pdf_refactor.py PASS 0 7.75 44ce76d39b69a7d6798af521f958370bf30ad2b1 L41:/root/.hermes undeclared wizard-work/forge/verify_queue_append_audit_dry_refactor.py FAIL 1 16.94 0d5e5ef90a0d0ba030b6909285db6ed3120a3895 L51:/root/troupe-standup undeclared wizard-work/forge/verify_reply_check_dry_refactor.py PASS 0 7.31 c94ebf0e965e99c7e67d1ef9df7e35cd184ccb53 L33:/root/troupe-standup +undeclared wizard-work/forge/verify_repro_bounds_refactor.py PASS 0 0.35 2394abeec25726726edd91696520d788d72a5d88 L33:/root/troupe-standup undeclared wizard-work/forge/verify_roundtrip_refactor.py PASS 0 0.78 0f1d7ea9d5e542c8cb70c8e3def85ba684641b2c L21:/root/troupe-standup undeclared wizard-work/forge/verify_selftest_sweep_dry_refactor.py FAIL 1 0.52 6f5e1621139c9ab98ec5b25ce03bda88a73cf9cf L63:/root/troupe-standup undeclared wizard-work/forge/verify_selftest_sweep_refactor.py FAIL 1 121.94 subprocess.TimeoutExpired: Command '['/root/.hermes/installs/76f6e7e5145b5f39/environments/c5b879e2036d4c909805dd1858587925/venv/bin/python3', 'tools/selftest_s cc8782b4edfcd08eb5ed69f06308c1185ffb41e8 L33:/root/troupe-standup undeclared wizard-work/forge/verify_served_drift_summarise_dry.py PASS 0 11.92 de5a49160b2c2a8f4759e0607a0f0c7b52b3bec1 L48:/root/troupe-standup +undeclared wizard-work/forge/verify_smell_check_monotonic_refactor.py PASS 0 0.58 8b8ccea5be0e938fb4bba67080cc65a97762f3f4 L32:/root/troupe-standup gate-run wizard-work/forge/verify_smell_scan_refactor.py PASS 0 0.51 499c8e000359e8ef3486a89031673059d471178c L26:/root/troupe-standup undeclared wizard-work/forge/verify_tool_map_dry_refactor.py PASS 0 54.48 de1d9b7a65cfaaacf029b048228806acbf2f817c L32:/root/troupe-standup undeclared wizard-work/forge/verify_write_probe_dry_refactor.py FAIL 1 27.08 ef4d8c00e4a84495e1612bec4734a366d4869b67 L53:/root/troupe-standup @@ -64,6 +67,7 @@ undeclared wizard-work/spark/verify_count.py PASS 0 0.12 640a65519f8116cc4ccc00 undeclared wizard-work/spark/verify_demo.py PASS 0 0.10 7e4325553fc86aa30419c00f99d5c226d28750b3 L20:/root/.hermes undeclared wizard-work/spark/verify_dir.py PASS 0 0.11 ec6280d194d416ebe8a8fbf681cd986fb41cad6d L23:/root/.hermes undeclared wizard-work/spark/verify_dir_analyzer.py PASS 0 0.66 89a49e7684d6f51ce6232bbab7bccf69ec6af401 L16:/root/troupe-standup +undeclared wizard-work/spark/verify_env.py PASS 0 0.06 d28af1c48c1c426a0a4e7fe1fb724637ba80920b L9:/root/.hermes undeclared wizard-work/spark/verify_environment.py FAIL 1 0.10 4f526b94ecdd6d9c084794eefd8b6291d3ab30c6 L22:/root/.hermes undeclared wizard-work/spark/verify_fib.py PASS 0 0.07 163468d71cd7fea6c9e064b85d89da7bb7807c5d L24:/root/.hermes undeclared wizard-work/spark/verify_formatter.py PASS 0 0.24 0d2ef3a544f5ddae821e6ffbb29dfcfe27560854 L9:/root/.hermes @@ -95,5 +99,5 @@ undeclared wizard-work/sphinx/archive-index-2026-10-23/verify_index.py FAIL 1 19 undeclared wizard-work/sphinx/archive-memgallery-2026-10-21/verify_claims.py FAIL 1 0.19 22ba0b4bbdca3180a136ef1e0fac538622e5db0d undeclared wizard-work/sphinx/archive-memlens-2026-10-22/verify_memlens_archive.py PASS 0 0.22 39a5552b850096a4baf26b6bf0bad28db2db1008 undeclared wizard-work/sphinx/archive-mm-prm-2026-10-22/verify_mm_prm_archive.py PASS 0 0.21 534af05a12fa9d3285384bae57bce527ed033425 -undeclared wizard-work/sphinx/archive-remember-r1-figures-2026-10-23/verify_archive.py FAIL 1 319.30 bed5df5c4a24c961a3c2bb564b299444a22d5189 +undeclared wizard-work/sphinx/archive-remember-r1-figures-2026-10-23/verify_archive.py FAIL 1 837.56 bed5df5c4a24c961a3c2bb564b299444a22d5189 undeclared wizard-work/sphinx/verify_mm_dossier.py PASS 0 4.30 4b015581816de5472d11577d661ce4e97f38773a L28:/root/.hermes