volt: re-pin verify.py 51 -> 55 cells (sweep leg read PIN_DRIFT rc 1 since c3d7056)

This commit is contained in:
volt committed 2026-10-22 22:28:58 +00:00
1 parent b2d4d9880d
commit 63dd2a8baf
3 files changed
+26 -12

No files matched your search

+14
View File
@@ -10628,3 +10628,17 @@ Verification, read at `6cd2114` (the revision this record was written against; a
Artifact `/root/.hermes/wizard-outputs/volt/2026-10-22-count-pin/` — `REPORT.md`, `check.sh`, six transcripts, and a `files.sha256` over its own eight files (`sh check.sh` → `CHECK: PASS`, rc 0; `sh check.sh --full` adds the slow gate leg). Artifact `/root/.hermes/wizard-outputs/volt/2026-10-22-count-pin/` — `REPORT.md`, `check.sh`, six transcripts, and a `files.sha256` over its own eight files (`sh check.sh` → `CHECK: PASS`, rc 0; `sh check.sh --full` adds the slow gate leg).
— Volt — Volt
**Pin repair 2026-10-22 (volt, Workhorse) — the seventh leg moved `verify.py`'s printed selftest count 51 → 55 and left its ledger row at 51, so `selftest_sweep.py` read `PIN_DRIFT` and the gate's sweep leg was the one red; the row is re-pinned, the sweep reads 0 drift, and the gate is re-read at the commit carrying this record.** No item opened or closed; the open set is unchanged (`Q37`'s pipe span, the career-lane `Q53` decision held for Alexander, `Q64`'s design question Alexander's). Appended at the foot; `docs/queue-index.md` re-rendered in the same commit.
1. **The red, measured before any edit.** `python3 tools/selftest_sweep.py --repo .` reads **rc 1** with the row `verify.py PIN_DRIFT pinned 51 cells printed 55 cells` and the summary `pin: 21 pinned, 20 agree, 1 drift (PIN_DRIFT)`; the other twenty rows read `PIN_OK`. The tool the drift names passes its own selftest at that same tree — `verify.py --selftest` → **55 cells, 55 passed, 0 failed**, rc 0 — so the stale cell is the ledger row, not a broken fixture. Transcript: `wizard-outputs/volt/2026-10-22-pin/transcript-before-sweep.txt`.
2. **The cause is one commit, and it is the commit that re-pinned a different row.** `c3d7056` (2026-10-22 22:05:55Z, this lane) rewrote `tools/verify.py`'s docstring line `` `--selftest` fixture corpus, 51 cells `` → `55 cells` and added cells `c28`/`c29` (+65 lines in that file); its `tools/selftest_baseline.tsv` diff is **one hunk, one row** — `doc_command_check.py 15 → 18` — and carries no `verify.py` row. That the pinned 51 was true before the commit and false after it is measured on the commit's parent, not inferred: `git show c3d7056^:tools/verify.py` run as a copied blob prints **51 cells, 51 passed** (rc 0, `transcript-oldblob.txt`).
3. **The repair is one cell.** `tools/selftest_baseline.tsv:31` `verify.py 51 cells` → `55 cells`; `git diff` on that file is **1 changed line, 0 insertions, 0 deletions**, and no other row moves.
4. **Measured after, same tree.** `selftest_sweep.py --repo .` → **rc 0**, `pin: 21 pinned, 21 agree, 0 drift`, `verify.py PIN_OK pinned 55 cells printed 55 cells`; `verify.py --selftest` **55/55 rc 0**; `verify.py --repo .` → **7 legs, 7 pass, 0 fault, 0 ungradable, 0 skipped**, rc 0; `queue_index.py --check docs/queue-index.md` rc 0 against the re-render in this commit. Artifact `wizard-outputs/volt/2026-10-22-pin/` — `REPORT.md`, `check.sh`, `files.sha256`, five transcripts (`sh check.sh` → `CHECK: PASS`, rc 0).
5. **What it does not claim.** The pin proves a count, not a corpus: the four cells `c3d7056` added are taken as the printed count says, and this repair does not audit them. The class stays open by construction — a printed count and its ledger row live in different files, so a commit can move one without the other and nothing goes red until the sweep is next run against that tree; the row was stale across four commits (`c3d7056`, `a5d2e73`, `311aae8`, `b2d4d98`) before this tick read it. Nothing here decides anything Alexander holds, and no tool's grading changed: the pinned number is the tool's own printed count.
— Volt
+11 -11
View File
@@ -56,7 +56,7 @@
| 46 | Q44 | 6162-6705 | 88496 | opening | The pin class: redirect every constant composed from the live data root, not only `SNAPSHOT_PATH` *(Helm lane; opened 2026-10-12 by the pipe, per Q43's own closing sentence — "extend the redirect … | DONE 2026-10-12 — `recoveries/helm-root-redirect.md` (Merlin, Helm lane); the closure block is at the foot | | 46 | Q44 | 6162-6705 | 88496 | opening | The pin class: redirect every constant composed from the live data root, not only `SNAPSHOT_PATH` *(Helm lane; opened 2026-10-12 by the pipe, per Q43's own closing sentence — "extend the redirect … | DONE 2026-10-12 — `recoveries/helm-root-redirect.md` (Merlin, Helm lane); the closure block is at the foot |
| 47 | Q48 | 6706-6825 | 15123 | opening | The runtime-resolution redirect: close the class Q45's literals cannot see | DONE 2026-10-13 — `recoveries/helm-runtime-redirect.md` (Merlin, Helm lane), scratch tree | | 47 | Q48 | 6706-6825 | 15123 | opening | The runtime-resolution redirect: close the class Q45's literals cannot see | DONE 2026-10-13 — `recoveries/helm-runtime-redirect.md` (Merlin, Helm lane), scratch tree |
| 48 | Q49 | 6826-7593 | 92050 | opening | The runtime-resolved root's live write path: name it, reproduce it, then close it | open and unclaimed. Opened by the pipe 2026-10-13 | | 48 | Q49 | 6826-7593 | 92050 | opening | The runtime-resolved root's live write path: name it, reproduce it, then close it | open and unclaimed. Opened by the pipe 2026-10-13 |
| 49 | Q45 | 7594-10630 | 551944 | opening | §9 follow-on — the home-directory channel *(Helm lane; Merlin)* | OPEN — awaiting Alexander's zoom/whole-shop answer; build is the pipe's. | | 49 | Q45 | 7594-10644 | 555094 | opening | §9 follow-on — the home-directory channel *(Helm lane; Merlin)* | OPEN — awaiting Alexander's zoom/whole-shop answer; build is the pipe's. |
## Ids with no `## ` heading ## Ids with no `## ` heading
@@ -71,9 +71,9 @@ Opened as records inside another section. `line` is the record's own opening lin
| Q50 | 6990 | 6990 | 46 | Q49 | BULLET+BOLD | BOLD-LEAD | | Q50 | 6990 | 6990 | 46 | Q49 | BULLET+BOLD | BOLD-LEAD |
| Q51 | 7106 | 7106 | 37 | Q49 | BULLET+BOLD | BOLD-LEAD | | Q51 | 7106 | 7106 | 37 | Q49 | BULLET+BOLD | BOLD-LEAD |
| Q52 | 7167 | 7167 | 90 | Q49 | BULLET+BOLD | BOLD-LEAD | | Q52 | 7167 | 7167 | 90 | Q49 | BULLET+BOLD | BOLD-LEAD |
| Q53 | 7292 | 7246 | 155 | Q49 | BULLET+BOLD | BOLD-LEAD | | Q53 | 7292 | 7246 | 156 | Q49 | BULLET+BOLD | BOLD-LEAD |
| Q63 | 9918 | 9909 | 17 | Q45 | BULLET+BOLD | BOLD-LEAD | | Q63 | 9918 | 9909 | 17 | Q45 | BULLET+BOLD | BOLD-LEAD |
| Q64 | 10308 | 10308 | 18 | Q45 | BULLET+BOLD | BOLD-LEAD | | Q64 | 10308 | 10308 | 19 | Q45 | 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`. **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`.
@@ -218,7 +218,7 @@ The block below is the parse this document renders, byte for byte. `--check` com
"form": "BOLD-LEAD", "form": "BOLD-LEAD",
"id": "Q53", "id": "Q53",
"line": 7292, "line": 7292,
"refs": 155, "refs": 156,
"section": "Q49", "section": "Q49",
"shape": "BULLET+BOLD" "shape": "BULLET+BOLD"
}, },
@@ -236,7 +236,7 @@ The block below is the parse this document renders, byte for byte. `--check` com
"form": "BOLD-LEAD", "form": "BOLD-LEAD",
"id": "Q64", "id": "Q64",
"line": 10308, "line": 10308,
"refs": 18, "refs": 19,
"section": "Q45", "section": "Q45",
"shape": "BULLET+BOLD" "shape": "BULLET+BOLD"
} }
@@ -246,9 +246,9 @@ The block below is the parse this document renders, byte for byte. `--check` com
"end_line": 8, "end_line": 8,
"line": 1 "line": 1
}, },
"queue_bytes": 1444205, "queue_bytes": 1447355,
"queue_lines": 10630, "queue_lines": 10644,
"queue_sha256": "89c34d1666c6adc397c6c6d72e89663e94ecb21bd803cd93607063fb12acccc9", "queue_sha256": "c0d70545436dab4070cecd1016044c1be8ba625740ad62c7155bd4b12c1bf6e2",
"sections": [ "sections": [
{ {
"bytes": 3139, "bytes": 3139,
@@ -827,11 +827,11 @@ The block below is the parse this document renders, byte for byte. `--check` com
"title": "The runtime-resolved root's live write path: name it, reproduce it, then close it" "title": "The runtime-resolved root's live write path: name it, reproduce it, then close it"
}, },
{ {
"bytes": 551944, "bytes": 555094,
"end_line": 10630, "end_line": 10644,
"id": "Q45", "id": "Q45",
"line": 7594, "line": 7594,
"lines": 3037, "lines": 3051,
"role": "opening", "role": "opening",
"role_detail": "", "role_detail": "",
"status": "OPEN \u2014 awaiting Alexander's zoom/whole-shop answer; build is the pipe's.", "status": "OPEN \u2014 awaiting Alexander's zoom/whole-shop answer; build is the pipe's.",
+1 -1
View File
@@ -28,5 +28,5 @@ reply_check.py 49 cells
selftest_sweep.py 39 cells selftest_sweep.py 39 cells
served_drift_check.py 25 cells served_drift_check.py 25 cells
tool_map.py 20 cells tool_map.py 20 cells
verify.py 51 cells verify.py 55 cells
write_probe.py 15 cells write_probe.py 15 cells
1 # selftest_baseline.tsv -- the cell count each tool's selftest prints, pinned.
28 selftest_sweep.py
29 served_drift_check.py
30 tool_map.py
31 verify.py
32 write_probe.py