diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index 478fde6..dd9e5e5 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -11199,3 +11199,14 @@ The class: an invocation-shaped reference to the file exists from nowhere in the - **Closed item: the `path-claims` fault opened at `0868c6b`.** Done means `python3 tools/verify.py --repo .` reports no `path-claims` fault and the census shows zero unaudited new paths. Both hold at `26a3ebe`: **8 legs, 8 pass, 0 fault, 0 ungradable, gate: OK**; `path_claim_check --rev WORKTREE`: **1798 distinct, 27 missing, 0 new**; selftest 31/31. Finished by `582a0ae` + `26a3ebe` (rows) on top of `e07ee97` (forge's fix). - **Opened item: Q65 census has two unrowed committed verifiers at `a14a132`, one of them unwired.** `bash wizard-work/volt/CHECK` → **rc 1**; `q63_verify_scan.py`: **103 committed verifiers, census coverage 101 of 103**, `unwired NEW 1` — `wizard-work/forge/verify_scan_dry_refactor.py` (`d7e6e8e`, 08:49:30; `git grep -l` finds no invocation anywhere but its own verification doc, so this is a fault, not a display gap); `q65_runner.py --check --class gate-run,undeclared`: 85 rows (PASS 61, FAIL 24), **tree audit 2 unclassed of 103**, `q65: 2 fault(s)` — the second is `wizard-work/sphinx/archive-lcmm-metadata-2026-10-25/verify_lcmm_dossier.py` (`0430d45`, 08:51:28; wired at `CHECK.sh:23`, unrowed). Done means census **103 of 103**, `q65: 0 fault(s)` and `volt/CHECK` rc 0 at a tree where both files carry a graded row; evidence is the two executions plus the re-emit diff (volt's `008bb24` shows the pure-append pattern to copy). Owner: the two lanes for their files, the ledger lane for the rows. The question of whether the census becomes a `tools/verify.py` leg stays where reply 93 §4 left it — the operator's call, not re-argued here. - **Evidence:** `checkins/2026-10-25-volt.md`; `wizard-work/volt/path-claims-2026-10-25-adjudication.md`; `wizard-work/volt/q65-2026-10-25-residual2.md`; `replies/2026-10-25-to-volt-53.md`; `git show --numstat 582a0ae 26a3ebe` (`2 0` each); the readings above, all re-run in a clean clone at `a14a132` and in this worktree after the rows. Nothing from `inbox/` is quoted. No other lane's file was edited; the changed files are `tools/path_claim_baseline.tsv`, `replies/2026-10-25-to-volt-53.md`, this entry and `docs/queue-index.md`. Appended at the foot. + +**Q65 residual cycle 3, 2026-10-25 (volt, at `8bb1aeb`) — both unrowed verifiers graded by execution, census 103 of 103, and the census file itself was carrying a `FAIL` class three commits after its bytes passed.** + +- **Red, reproduced not relayed.** Both committed ledgers were `git show`n to scratch, so neither tool read a worktree file: `q63_verify_scan.py --baseline --gate ` → **1 fault**, coverage **101 of 103**, `unwired NEW 1` (`wizard-work/forge/verify_scan_dry_refactor.py`), rc 1; `q65_runner.py --check --q63 --ledger ` → **2 faults**, `tree audit 2 unclassed of 103` (that file plus `wizard-work/sphinx/archive-lcmm-metadata-2026-10-25/verify_lcmm_dossier.py`), rc 1. Two different defects: the sphinx file was already wired at `CHECK.sh:23` and merely unrowed; the forge file was wired by nothing **and** unrowed. +- **Both graded by execution, through the runner, `--merge`, one run per file.** `verify_scan_dry_refactor.py` **PASS rc 0** 2.48 s blob `d3543efa421d` (`11/11 checks passed`, `OK: identical output (exit 0, 4811 bytes)`); `verify_lcmm_dossier.py` **PASS rc 0** 6.20 s blob `3c4b48a678a8`, `mode: LIVE checks run: 21 failures: 0`. Ledger 85 → **87 rows**, PASS 61 → **63**, FAIL 24 unchanged, `graded-clean` 8 → **9 of 87**. +- **The re-emit is not a pure append and the diff says so.** `q63_verify_scan.py --emit-baseline` → **103 rows: gate-run 87, wired-invoke 8, declared-one-off 8**, and 87 + 8 + 8 = 103 against 103 committed verifiers at that rev. Four hunks: the `# rev:` line, two added rows, and `gate-run wizard-work/forge/verify_check_lint_classes_dry.py` **`q65:FAIL` → `q65:PASS`** — derived from a runner row bound to blob `62082e082a`, which is `git rev-parse HEAD:`'s id for that path, with `git diff --stat a70197f..HEAD` on it empty. A `FAIL` class had outlived its bytes since `a70197f`; the row still reads `PASS*`, so `graded-clean` gained nothing through that hunk. +- **The forge `PASS` is a `PASS*`, measured rather than read off the probe.** Clone at `8bb1aeb` with **both** files that verifier grades appended `raise RuntimeError("sabotage")` (`wizard-work/forge/_scan_dry_refactored.py`, `tools/check_lint.py`): the clone's verifier returns **rc 0, `11/11 checks passed`**. `REPO_ROOT = "/root/troupe-standup"` at `:38`, one line, forge's; the row stays in the `PASS*` column until it resolves from `__file__`. Matched control on the sphinx row in the same clone: one character of one dossier title changed → **rc 1**, `mode: LIVE checks run: 21 failures: 6`, `VERDICT: dossier does NOT hold`. +- **The green is one an instrument can still refuse.** Forge row dropped from the census copy → coverage **102 of 103, 1 UNCLASSED**; dropped from **both** ledgers → `tree audit 1 unclassed of 103`, `q65: 1 fault(s)`, rc 1 naming the file. The same control shows `q63` alone still prints `0 fault(s)` at 102 of 103, because `UNCLASSED` is the runner's fault class and `NEW_UNWIRED` is the scan's — which is why `volt/CHECK` runs both. +- **Green, measured at `8bb1aeb`:** `q63_verify_scan.py --repo .` — 103 committed, wired 10, gate-run 85 (FAIL 24, PASS 61), code-grep unwired 8, tolerance 8 `declared-one-off`, coverage **103 of 103**, `NEW 0`, **0 fault(s)**, rc 0. `q65_runner.py --check --class gate-run,undeclared` — **87 rows (PASS 63, FAIL 24)**, `graded 87 of 87`, `graded-clean 9 of 87`, host-pinned 54, `tree audit 0 unclassed of 103`, **0 fault(s)**, rc 0. `bash wizard-work/volt/CHECK` **rc 0**, `CHECK PASS: census covers every committed verifier; runner ledger grades clean.` Selftests **22/22** and **10/10**. +- **Nothing closed early, and the remaining fault is named.** The forge file is still invoked by nothing — its census fault clears because it is *graded by execution*, Q65's own contract, not because a caller appeared (`git grep -F verify_scan_dry_refactor` still returns only its own prose doc). 54 `PASS*` rows remain Q62's class one per owning lane, 24 `FAIL` rows remain per-lane findings, and the census is still not a `tools/verify.py` leg — the operator's call at reply 93 §4, not re-argued here, and nothing in `tools/verify.py` noticed either reopening. +- **Evidence:** `wizard-work/volt/q65-2026-10-25-c3.md` (§1 red, §2 the two gradings, §3 the four-hunk diff, §4 the host pin both ways, §5 the omission controls, §6 green, §7 what stays open); `q65-2026-10-25-c3-red.txt`, `-c3-green.txt`, `-c3-controls.txt`, `-c3-reemit.diff`; `git diff --numstat` `4 2` and `3 1` on the two ledgers. No other lane's file edited. Appended at the foot; `docs/queue-index.md` re-rendered in this commit. diff --git a/checkins/2026-10-25-volt.md b/checkins/2026-10-25-volt.md index 3056adc..5434478 100644 --- a/checkins/2026-10-25-volt.md +++ b/checkins/2026-10-25-volt.md @@ -26,3 +26,19 @@ **Next:** re-run `q63_verify_scan.py --emit-baseline` when the next verifier lands — the class has now reopened three times on exactly that omission, and the census is still not a `tools/verify.py` leg. **Ask:** none. No item opened or closed; the open set is unchanged. Record: `wizard-work/volt/q65-2026-10-25-residual2.md`. + +## Later tick (09:3xZ) — Q65 census cycle 3 + +**Did:** +- Reproduced the red from the **committed** ledgers (both `git show`n to scratch, so neither tool read a worktree file): `q63_verify_scan.py` **1 fault**, coverage **101 of 103**, `NEW_UNWIRED` `wizard-work/forge/verify_scan_dry_refactor.py`; `q65_runner.py --check` **2 faults**, `tree audit 2 unclassed of 103`. Two distinct defects, not one: sphinx's `verify_lcmm_dossier.py` was already wired (`CHECK.sh:23`) and merely unrowed; forge's `verify_scan_dry_refactor.py` was wired by nothing **and** unrowed. +- Graded both by execution through the runner, `--merge`, one run each: forge **PASS rc 0** 2.48 s blob `d3543efa421d` (`11/11 checks passed`, output identical to the original, 4,811 bytes); sphinx **PASS rc 0** 6.20 s blob `3c4b48a678a8`, `mode: LIVE checks run: 21 failures: 0`. Ledger 85 → **87 rows**, PASS 61 → 63, FAIL 24 unchanged, `graded-clean` 8 → **9 of 87**. +- Re-emitted the census: **103 rows — gate-run 87, wired-invoke 8, declared-one-off 8**, 87+8+8 = 103 at that rev. The diff is **not** a pure append and the record says so: rev line, two added rows, and `verify_check_lint_classes_dry.py` **`FAIL` → `PASS`**, derived from a runner row bound to blob `62082e082a` = `git rev-parse HEAD:` on that path, with `git diff --stat a70197f..HEAD` empty — a stale `FAIL` class against bytes that have passed for several commits. It stays `PASS*`, so `graded-clean` gained nothing through that door. +- Measured the forge row's host pin instead of reading the static probe: clone at `8bb1aeb`, `_scan_dry_refactored.py` **and** `tools/check_lint.py` both appended `raise RuntimeError("sabotage")`, clone's verifier → **rc 0, 11/11**. `REPO_ROOT = "/root/troupe-standup"` (`:38`), one line, forge's. The matched control on the sphinx row in the same clone: one character of one dossier title changed → **rc 1**, 6 of 21 checks failed, `VERDICT: dossier does NOT hold`. +- Verified the green can go red: forge row dropped from the census copy → **102 of 103, 1 UNCLASSED**; dropped from **both** ledgers → `tree audit 1 unclassed of 103`, `q65: 1 fault(s)`, rc 1. That control also shows `q63` alone reads `0 fault(s)` at 102 of 103 — `UNCLASSED` is the runner's fault class, `NEW_UNWIRED` is the scan's, which is why `volt/CHECK` runs both. +- Green: `q63_verify_scan.py` coverage **103 of 103**, `NEW 0`, **0 fault(s)**, rc 0; `q65_runner.py --check` **87 rows (PASS 63, FAIL 24)**, `graded 87 of 87`, `graded-clean 9 of 87`, `tree audit 0 unclassed of 103`, **0 fault(s)**, rc 0; `bash wizard-work/volt/CHECK` **rc 0** `CHECK PASS`; selftests 22/22 and 10/10. + +**Blocked:** the forge file is still invoked by nothing. Its census fault clears because it is **graded by execution** — Q65's contract — not because a caller appeared; `git grep -F` still returns only its own prose doc. A real invocation is forge's edit to take, and the row is honest either way. + +**Next:** the class has reopened three times in two days on nothing worse than a verifier landing without a row. Wiring the census into `tools/verify.py` is the structural fix and remains the operator's call (reply 93 §4); nothing in `tools/verify.py` noticed either reopening. + +**Ask:** none. No item opened or closed; the open set is unchanged. Record: `wizard-work/volt/q65-2026-10-25-c3.md`. diff --git a/docs/queue-index.md b/docs/queue-index.md index 60e6163..c23858d 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-11201 | 67306 | 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-11212 | 71960 | 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 | 165 | Q49 | BULLET+BOLD | BOLD-LEAD | | Q64 | 10308 | 10308 | 28 | Q45 | BULLET+BOLD | BOLD-LEAD | -| Q65 | 11055 | 11047 | 25 | Q63 | BULLET+BOLD | BOLD-LEAD | +| Q65 | 11055 | 11047 | 27 | 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": 25, + "refs": 27, "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": 1576993, - "queue_lines": 11201, - "queue_sha256": "e49f1c5e8154fb83c9c3448ac10e7c60193aa4d2020ed803eec7f623bbff02c0", + "queue_bytes": 1581647, + "queue_lines": 11212, + "queue_sha256": "da672a09fa909fd7f06890c64bc86b170db85c8d5e0fc5dd17628039d8531fd0", "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": 67306, - "end_line": 11201, + "bytes": 71960, + "end_line": 11212, "id": "Q63", "line": 10994, - "lines": 208, + "lines": 219, "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 6a57ad2..fc7935e 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: d05d93c (the tree these classes were read at) +# rev: 8bb1aeb (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,7 +16,7 @@ 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_classes_dry.py q65:PASS 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 @@ -34,6 +34,7 @@ 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_scan_dry_refactor.py q65:PASS gate-run wizard-work/forge/verify_selftest_sweep_dry_refactor.py q65:FAIL 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 @@ -105,6 +106,7 @@ gate-run wizard-work/sphinx/archive-gutenberg/verify_archive.py q65:PASS 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-lcmm-metadata-2026-10-25/verify_lcmm_dossier.py q65:PASS 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 diff --git a/wizard-work/volt/q65-2026-10-25-c3-controls.txt b/wizard-work/volt/q65-2026-10-25-c3-controls.txt new file mode 100644 index 0000000..3cf7a72 --- /dev/null +++ b/wizard-work/volt/q65-2026-10-25-c3-controls.txt @@ -0,0 +1,25 @@ +# q65 census cycle 3 -- CONTROLS, 2026-10-25T09:36:03Z +# A. the census bites: one row dropped from each ledger, the file becomes UNCLASSED +$ q63_verify_scan.py --baseline + census coverage : 102 of 103 committed verifier(s) carry a ledger row <-- 1 UNCLASSED, invisible to both instruments +q63: 0 fault(s) + (q63 grades NEW_UNWIRED, not UNCLASSED: the coverage delta is the report, the runner is the gate) +$ q65_runner.py --check --q63 --ledger + tree audit : 1 unclassed of 103 committed verifier(s) <-- named by neither ledger + UNCLASSED wizard-work/forge/verify_scan_dry_refactor.py: committed verify_*.py at HEAD, in no class row in q63_minus_one.tsv and no ledger row +q65: 1 fault(s) + q65 rc=1 + +# B. the forge row is a PASS* -- measured, not read off the static probe +# clone of 8bb1aeb, both files it grades appended 'raise RuntimeError("sabotage")', run from the clone: +$ (in clone) python3 wizard-work/forge/verify_scan_dry_refactor.py +OK: original still exhibits the removed smells (refactor is non-vacuous) + +=== Verification: 11/11 checks passed === + clone rc=0 <- it graded /root/troupe-standup, not the clone: REPO_ROOT is the literal at :38 + +# C. the sphinx row is graded-clean and load-bearing, in the same clone +# one character of one dossier title changed, everything else held fixed: +mode: LIVE checks run: 21 failures: 6 +VERDICT: dossier does NOT hold + clone rc=1 (LIVE mode; 6 of 21 checks failed on one character) diff --git a/wizard-work/volt/q65-2026-10-25-c3-green.txt b/wizard-work/volt/q65-2026-10-25-c3-green.txt new file mode 100644 index 0000000..394a15b --- /dev/null +++ b/wizard-work/volt/q65-2026-10-25-c3-green.txt @@ -0,0 +1,61 @@ +# q65 census cycle 3 -- GREEN, capture of the worktree (the two ledgers rewritten, nothing else), 2026-10-25T09:35:37Z +# $ q63_verify_scan.py --repo . / $ q65_runner.py --check --class gate-run,undeclared + +q63_verify_scan -- rev HEAD + committed verify_*.py : 103 (spark 36 forge 29 ledger 16 sphinx 14 sol 5 null 2 beam 1) + stripped-assert : 0 of 103 (no _check/raise/non-zero exit; -O compiles `assert` away) + wired by name (invoke) : 10 of 103 + run by q65_runner : 85 (FAIL 24, PASS 61) + unwired (code-grep) : 8 of 103 (`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 : 103 of 103 committed verifier(s) carry a ledger row + unwired, NEW (fault) : 0 +q63: 0 fault(s) +q63 rc=0 + +q65_runner -- rev HEAD, 87 population file(s), 87 ledger row(s) [ledger rev 8bb1aeb] + rows at emit : 87 (PASS 63, FAIL 24) + graded (has rc): 87 of 87 + graded-clean : 9 of 87 (PASS on a host-independent verifier) + host-pinned : 54 PASS row(s) excluded as PASS* -- they read an absolute host root + tree audit : 0 unclassed of 103 committed verifier(s) +q65: 0 fault(s) +q65 rc=0 + +$ bash wizard-work/volt/CHECK +ok c1 PASS rc 0 is consistent +ok c2 PASS rc 1 is a fault +ok c3 TIMEOUT carrying an rc is a fault +ok c4 OTHER_RC rc 3 is consistent +ok c5 OTHER_RC rc 7 is consistent +ok c6 OTHER_RC rc 2 is a fault (that is REFUSED) +ok c7 ledger round-trips two rows +ok c8 a missing ledger is an error, not an empty pass +ok c9 an unknown verdict refuses the ledger +ok c10 a committed verifier in neither ledger is UNCLASSED +ok c11 a class row covers the same file +ok c12 a window row parses to (seconds, why) +ok c13 an unlisted path falls back to --timeout +ok c14 a malformed window row refuses instead of silently skipping +ok c15 a committed path has a blob id +ok c16 an absent path has no blob id +ok c17 the same path at a new commit is a different blob (DRIFT is detectable) +ok c18 a host root in a string VALUE is a host pin +ok c19 a host root in a docstring is prose, not a pin +ok c20 a PARSED PASS row on a host-independent verifier is graded clean +ok c21 a PARSED OTHER_RC row with rc 7 is consistent (not a fault) +ok c22 a class-narrowed tally sums to its own population, not the ledger +selftest: 22 cells, 22 passed, 0 failed +q65_runner -- rev HEAD, 87 population file(s), 87 ledger row(s) [ledger rev 8bb1aeb] + rows at emit : 87 (PASS 63, FAIL 24) + graded (has rc): 87 of 87 + graded-clean : 9 of 87 (PASS on a host-independent verifier) + host-pinned : 54 PASS row(s) excluded as PASS* -- they read an absolute host root + tree audit : 0 unclassed of 103 committed verifier(s) +q65: 0 fault(s) +CHECK PASS: census covers every committed verifier; runner ledger grades clean. +volt/CHECK rc=0 + +$ q65_runner.py --selftest ; q63_verify_scan.py --selftest +selftest: 22 cells, 22 passed, 0 failed +selftest: 10/10 diff --git a/wizard-work/volt/q65-2026-10-25-c3-red.txt b/wizard-work/volt/q65-2026-10-25-c3-red.txt new file mode 100644 index 0000000..5ca2cfe --- /dev/null +++ b/wizard-work/volt/q65-2026-10-25-c3-red.txt @@ -0,0 +1,29 @@ +# q65 census cycle 3 -- RED, reproduced from the committed ledgers at rev 8bb1aeb, captured 2026-10-25T09:35:24Z +# command: git show HEAD:wizard-work/volt/{q63_unwired_baseline,q65_runner_baseline}.tsv -> scratch, then --baseline/--q63/--ledger point at those two copies +# (no worktree file is read by either tool in these two runs) + +$ q63_verify_scan.py --repo . --baseline head_q63.tsv --gate head_gate.tsv +q63_verify_scan -- rev HEAD + committed verify_*.py : 103 (spark 36 forge 29 ledger 16 sphinx 14 sol 5 null 2 beam 1) + stripped-assert : 0 of 103 (no _check/raise/non-zero exit; -O compiles `assert` away) + wired by name (invoke) : 10 of 103 + run by q65_runner : 84 (FAIL 24, PASS 60) + unwired (code-grep) : 9 of 103 (`git grep -F -l HEAD -- *.py *.sh :(glob)**/CHECK :(glob)**/CHECK.txt *.yml *.yaml`) + unwired, ledger-tolerated : 8 (q63_unwired_baseline.tsv: 1 NEW-UNWIRED, 8 declared-one-off) + census coverage : 101 of 103 committed verifier(s) carry a ledger row <-- 2 UNCLASSED, invisible to both instruments + unwired, NEW (fault) : 1 + NEW_UNWIRED wizard-work/forge/verify_scan_dry_refactor.py +q63: 1 fault(s) +q63 rc=1 + +$ q65_runner.py --check --class gate-run,undeclared --q63 head_q63.tsv --ledger head_gate.tsv +q65_runner -- rev HEAD, 85 population file(s), 85 ledger row(s) [ledger rev d05d93c] + rows at emit : 85 (PASS 61, FAIL 24) + graded (has rc): 85 of 85 + graded-clean : 8 of 85 (PASS on a host-independent verifier) + host-pinned : 53 PASS row(s) excluded as PASS* -- they read an absolute host root + tree audit : 2 unclassed of 103 committed verifier(s) <-- named by neither ledger + UNCLASSED wizard-work/forge/verify_scan_dry_refactor.py: committed verify_*.py at HEAD, in no class row in head_q63.tsv and no ledger row + UNCLASSED wizard-work/sphinx/archive-lcmm-metadata-2026-10-25/verify_lcmm_dossier.py: committed verify_*.py at HEAD, in no class row in head_q63.tsv and no ledger row +q65: 2 fault(s) +q65 rc=1 diff --git a/wizard-work/volt/q65-2026-10-25-c3-reemit.diff b/wizard-work/volt/q65-2026-10-25-c3-reemit.diff new file mode 100644 index 0000000..c6e4f12 --- /dev/null +++ b/wizard-work/volt/q65-2026-10-25-c3-reemit.diff @@ -0,0 +1,15 @@ +# re-emit diff: committed q63_unwired_baseline.tsv at 8bb1aeb (blob 6a57ad293dfc) -> the re-emit in this tick +# $ q63_verify_scan.py --repo . --emit-baseline ; diff +3c3 +< # rev: d05d93c (the tree these classes were read at) +--- +> # rev: 8bb1aeb (the tree these classes were read at) +19c19 +< gate-run wizard-work/forge/verify_check_lint_classes_dry.py q65:FAIL +--- +> gate-run wizard-work/forge/verify_check_lint_classes_dry.py q65:PASS +36a37 +> gate-run wizard-work/forge/verify_scan_dry_refactor.py q65:PASS +107a109 +> gate-run wizard-work/sphinx/archive-lcmm-metadata-2026-10-25/verify_lcmm_dossier.py q65:PASS +# rows: 103 (was 101) diff --git a/wizard-work/volt/q65-2026-10-25-c3.md b/wizard-work/volt/q65-2026-10-25-c3.md new file mode 100644 index 0000000..e30fc31 --- /dev/null +++ b/wizard-work/volt/q65-2026-10-25-c3.md @@ -0,0 +1,146 @@ +# Q65 census cycle 3 — two unrowed verifiers graded by execution, census 103 of 103, and one stale `FAIL` class in the census file itself + +volt lane, 2026-10-25, driven at rev `8bb1aeb`. Every figure below is a reading from this tick; +the capture files named in §7 hold the verbatim output with the command that produced it. + +## §1 What was red, reproduced rather than quoted + +The queue entry timmy appended at `8bb1aeb` opened this item at `a14a132` with two unrowed +committed verifiers. I re-derived the state from the **committed** ledgers (both `git show`n to +scratch, so neither tool read a worktree file) — `q65-2026-10-25-c3-red.txt`: + +``` +$ q63_verify_scan.py --repo . --baseline head_q63.tsv --gate head_gate.tsv + committed verify_*.py : 103 (spark 36 forge 29 ledger 16 sphinx 14 sol 5 null 2 beam 1) + wired by name (invoke) : 10 of 103 + run by q65_runner : 84 (FAIL 24, PASS 60) + unwired (code-grep) : 9 of 103 + unwired, ledger-tolerated : 8 (1 NEW-UNWIRED, 8 declared-one-off) + census coverage : 101 of 103 committed verifier(s) carry a ledger row <-- 2 UNCLASSED + unwired, NEW (fault) : 1 + NEW_UNWIRED wizard-work/forge/verify_scan_dry_refactor.py +q63: 1 fault(s) q63 rc=1 + +$ q65_runner.py --check --class gate-run,undeclared --q63 head_q63.tsv --ledger head_gate.tsv + tree audit : 2 unclassed of 103 committed verifier(s) <-- named by neither ledger + UNCLASSED wizard-work/forge/verify_scan_dry_refactor.py + UNCLASSED wizard-work/sphinx/archive-lcmm-metadata-2026-10-25/verify_lcmm_dossier.py +q65: 2 fault(s) q65 rc=1 +``` + +Two different omissions in one count. The sphinx file was **already wired** (`CHECK.sh:23` +invokes it, so the scan counted it as `wired by name`) and had **no ledger row** — a bookkeeping +gap, not a wiring gap. The forge file was **wired by nothing** (`git grep -F` finds it only in +its own `SCAN_DRY_REFACTOR_VERIFICATION.md`, which is prose) *and* had no row: two faults on one +file. Neither was a false claim about the tree; both were a claim the record could not see. + +## §2 Both files were then executed, not classified by hand + +Graded through the runner (`--emit --merge --q63 `), so the +row carries the interpreter's rc, the wall time and the blob it graded: + +| path | verdict | rc | seconds | blob | host probe | +|---|---|---|---|---|---| +| `wizard-work/forge/verify_scan_dry_refactor.py` | PASS | 0 | 2.48 | `d3543efa421d` | `L38:/root/troupe-standup` | +| `wizard-work/sphinx/archive-lcmm-metadata-2026-10-25/verify_lcmm_dossier.py` | PASS | 0 | 6.20 | `3c4b48a678a8` | *(empty)* | + +By hand, the same two: forge `11/11 checks passed`, `OK: identical output (exit 0, 4811 bytes)`, +`OK: original still exhibits the removed smells (refactor is non-vacuous)`; sphinx `mode: LIVE +checks run: 21 failures: 0`, `VERDICT: dossier holds` — the live arXiv API was re-fetched at check +time, not compared against the archived copy. + +Ledger movement: 85 → **87 rows**, PASS 61 → **63**, FAIL 24 unchanged, `graded-clean` 8 → **9 of 87** +(the sphinx row is host-independent; the forge row is not — §4). + +## §3 The re-emit, and the one row it reclassified + +`q63_verify_scan.py --emit-baseline` → **103 rows: gate-run 87, wired-invoke 8, declared-one-off 8**, +and 87 + 8 + 8 = 103 against 103 committed verifiers at the same rev. The diff against the +committed file (`q65-2026-10-25-c3-reemit.diff`) is four hunks, and I am not going to call it a +pure append because one of them is a **reclassification**: + +``` +3c3 # rev: d05d93c -> # rev: 8bb1aeb +19c19 gate-run wizard-work/forge/verify_check_lint_classes_dry.py q65:FAIL -> q65:PASS +36a37 > gate-run wizard-work/forge/verify_scan_dry_refactor.py q65:PASS +107a109 > gate-run wizard-work/sphinx/archive-lcmm-metadata-2026-10-25/verify_lcmm_dossier.py q65:PASS +``` + +The `FAIL → PASS` is derived, and it is bound: the runner row reads `PASS rc 0 0.53 s` against +blob `62082e082a0472546b415219a9180836ac88908b`, `git rev-parse HEAD:wizard-work/forge/verify_check_lint_classes_dry.py` +returns that same id, and `git diff --stat a70197f..HEAD -- ` is **empty**. So the file +has graded PASS since `a70197f`, while the committed census at `d05d93c` still asserted `FAIL` +against the pre-fix blob `17a08fe2d2` (`4f76eaa:`). That is the same DRIFT class cycle 2 recorded +for the *runner* ledger — it lived in the *census* file too, and the re-emit is what closes it. +Nobody should read this hunk as a tolerance: the row still says `PASS*` (host-pinned, §4), so it +does not enter `graded-clean`. + +## §4 The `PASS` on the forge row is a PASS on this host, measured + +The static probe prints `L38:/root/troupe-standup`; the file is `REPO_ROOT = "/root/troupe-standup"`. +A static probe is not a demonstration, so I ran the demonstration (`-c3-controls.txt` §B): a clone at +`8bb1aeb` with **both** files that verifier grades appended `raise RuntimeError("sabotage")` — +`wizard-work/forge/_scan_dry_refactored.py` and `tools/check_lint.py` — and the clone's copy of the +verifier, run from the clone, returns **rc 0, `11/11 checks passed`**. It graded `/root/troupe-standup`. +Q62's class, one line, the forge lane's; the row is `PASS*` and belongs in that column until the root +resolves from `__file__`. + +The matched control on the sphinx row goes the other way, in the same clone: one character of one +paper title in `dossier.json` changed, everything else held fixed → **rc 1**, `mode: LIVE checks run: +21 failures: 6`, `VERDICT: dossier does NOT hold`. So `graded-clean 9 of 87` gained a row that is +clean because it reads its own tree, and the one that is not clean is named. + +## §5 The census still bites + +A green count is worth nothing unless the same instrument can go red on the same rev, so +(`-c3-controls.txt` §A): drop the forge row from the census copy → `census coverage 102 of 103 … +1 UNCLASSED`; drop it from **both** ledgers → `tree audit 1 unclassed of 103`, `q65: 1 fault(s)`, +**rc 1**, naming the file. The coverage arithmetic is not decorative. + +Note what the negative control also shows: `q63` alone still printed `q63: 0 fault(s)` at 102 of +103, because `UNCLASSED` is the *runner's* fault class and `q63`'s own fault is `NEW_UNWIRED`. Two +instruments, two fault classes, one of them the gate — which is exactly why `volt/CHECK` runs both. + +## §6 Green, measured + +`q65-2026-10-25-c3-green.txt`, captured 2026-10-25T09:36Z: + +``` +q63_verify_scan.py --repo . : 103 committed, wired 10, gate-run 85 (FAIL 24, PASS 61), + code-grep unwired 8, tolerance 8 declared-one-off, + coverage 103 of 103, NEW 0, q63: 0 fault(s), rc 0 +q65_runner.py --check : 87 rows (PASS 63, FAIL 24), graded 87 of 87, + graded-clean 9 of 87, host-pinned 54, tree audit 0 + unclassed of 103, q65: 0 fault(s), rc 0 +bash wizard-work/volt/CHECK : CHECK PASS, rc 0 +q65_runner.py --selftest : 22 cells, 22 passed +q63_verify_scan.py --selftest : 10/10 +``` + +## §7 What this did not do, and whose it is + +- **The forge file is still wired by nothing.** Its census fault clears because it is **graded by + execution** — Q65's own contract, "invoked-and-graded, retired, or declared one-off" — and not + because a committed line now invokes it. `git grep -F verify_scan_dry_refactor` still returns one + hit, in its own prose doc. If forge wants a real invocation, that edit is forge's; the row is + honest either way, and the diff of the code-grep count (9 → 8) attributes the movement to the + grade, not to a new caller. +- **54 `PASS*` rows remain** Q62's class, one per owning lane. This tick added one and measured its + remedy (`__file__`-relative `REPO_ROOT` at `:38`). +- **24 `FAIL` rows remain** per-lane findings held open in the ledger. Unchanged by this tick. +- **The census is still not a `tools/verify.py` leg.** The class has now reopened three times in two + days on nothing worse than a new file landing without a row. Reply 93 §4 left that promotion to the + operator; this tick does not re-argue it, and nothing in `tools/verify.py` noticed either reopening. +- No other lane's file was edited. The only changed files are the two instruments this lane owns + (`q63_unwired_baseline.tsv`, `q65_runner_baseline.tsv`), the four evidence files beside this one, + the checkin, the queue append and the re-rendered index. + +## §8 Evidence + +- `q65-2026-10-25-c3-red.txt` — red reproduced from the committed ledgers at `8bb1aeb`, rc 1 / 1. +- `q65-2026-10-25-c3-green.txt` — the four green readings above. +- `q65-2026-10-25-c3-controls.txt` — the census-omission fault, the host-pin sabotage, the + one-character title mutation. +- `q65-2026-10-25-c3-reemit.diff` — the four-hunk diff of the census re-emit, with row counts. +- `git diff --numstat`: `4 2 wizard-work/volt/q63_unwired_baseline.tsv`, + `3 1 wizard-work/volt/q65_runner_baseline.tsv`. diff --git a/wizard-work/volt/q65_runner_baseline.tsv b/wizard-work/volt/q65_runner_baseline.tsv index 42eddec..25c4582 100644 --- a/wizard-work/volt/q65_runner_baseline.tsv +++ b/wizard-work/volt/q65_runner_baseline.tsv @@ -17,7 +17,7 @@ # 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: d05d93c rows: 85 emitted: q65_runner.py +# rev: 8bb1aeb rows: 87 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 gate-run wizard-work/forge/verify_check_lint_classes_dry.py PASS 0 0.53 62082e082a0472546b415219a9180836ac88908b L44:/root/troupe-standup @@ -37,6 +37,7 @@ undeclared wizard-work/forge/verify_queue_append_audit_dry_refactor.py FAIL 1 16 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_scan_dry_refactor.py PASS 0 2.48 d3543efa421d6d55e4748c084072feae9b68aa6c L38:/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 @@ -97,6 +98,7 @@ undeclared wizard-work/spark/verify_tool.py PASS 0 0.44 fd90c7f545ad0b3cb8c75be undeclared wizard-work/spark/verify_wordcount.py PASS 0 0.16 c4b7e15b56d084809628019cf41ad13d8c12db08 L46:/root/.hermes undeclared wizard-work/sphinx/archive-gutenberg/verify_archive.py PASS 0 0.55 36c966d37f083d2590a7a13693f02651b484c401 undeclared wizard-work/sphinx/archive-index-2026-10-23/verify_index.py FAIL 1 191.62 9d4088a373a636ca3418d8af5828dff57066d9b0 L32:/root/.hermes +undeclared wizard-work/sphinx/archive-lcmm-metadata-2026-10-25/verify_lcmm_dossier.py PASS 0 6.20 3c4b48a678a8af208052623d1b3340b574731dd8 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