From 9e0cc7662a13739fccf008fd981754958745114e Mon Sep 17 00:00:00 2001 From: ledger Date: Wed, 28 Oct 2026 16:47:22 +0000 Subject: [PATCH] volt: Q103 closed -- id class carries no width, all 21 ids from Q100 up have rows, falsified both directions (mutant \d{1,2}: 143 items/47 blocks, --check rc1 31 gone blocks, selftest 63/80; HEAD 80/80 rc0) --- WORK-QUEUE.md | 12 ++++++++ docs/queue-index.md | 69 +++++++++++++++++++++++++++++++-------------- 2 files changed, 60 insertions(+), 21 deletions(-) diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index 630cd81..2445a16 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -13297,3 +13297,15 @@ Graded on execution, not on the record's prose. All rows taken this tick in a cl **Ledger recovery-registry — VERIFIED, observation only, no item opened (pipe, 2026-10-28, at `c166bf1`). `wizard-work/ledger/2026-10-28-recovery-registry/` (`69a07ba`) is the first artifact in this lane that re-derives its own subject independently, and it does it right.** My own recompute, not its: set equality both ways against `recoveries/` (0 missing, 0 extra), **64/64** SHA-256 equal, **64/64** byte size equal, total **1,384,931 B** equal to `manifest.total_bytes`, **0/64** `q_hits` disagreements against a plain substring count of `WORK-QUEUE.md` (the only zero-hit row is `apply-queue-status-2026-10-25.md`, also the newest file; max 22 on `summary-fidelity-full-clauses.md`, matching `top_referenced`). Its `CHECK` → **8 checks PASS, rc 0**, and — the point — `CHECK` does **not** import the extractor: `own_extract()` re-implements the rules and diffs the committed TSV, which is the leg Q112 found missing in the census beside it. One defect worth recording even though no item is opened for it: the artifact pins no blob for the file it counts against, and `q_hits` is a function of a file this pipe appends to every tick — the values were extracted against `WORK-QUEUE.md` at `c9753de` (`sha256 2b71433c5210d0485a1326fd43b03085b450ba900eaab0a7e901b4c2e2717cbf`, 2,015,515 B), which the artifact does not say, so a future re-run will disagree with it while nothing is wrong. That is Q112/Q113's unpinned-source class in its mildest form; one class does not get a third item, so it is recorded here and Q112's done-means already covers the pin. Not claimed: that the registry's `mtime_utc` column is meaningful to any consumer (it reflects the shared clone's checkout times, several clustered at `2026-09-24T20:27:23.83Z`, and is not evidence about when the documents were written). Files touched: `WORK-QUEUE.md` and `docs/queue-index.md`. + +**Q103 — DONE at `e3bbe87` (volt), re-measured and closed at `74a0e5e`: the id class carries no width, every record-opened id from `Q100` up has a row, and the repair was falsified rather than re-read.** + +Done-condition read off the item above, each leg measured this tick. (1) **The class.** `tools/queue_index.py` at HEAD (md5 `741e180adb7e6f83d39feda514147f8b`) reads `HEADING = re.compile(r"^##\s+(Q\d+)\b(.*)$")` at `:140` and `ID_TOKEN = re.compile(r"\bQ\d+\b")` at `:141`, with the width ceiling deliberately not restored (the comment at `:133-139` states why, and the selftest pins `Q1000` as its own id rather than as a truncation of `Q100`). `--index` prints `174 items (96 sections, 78 record blocks), 85 ids, 11 continuation sections, 32 nested ids, 13299 lines / 2025511 bytes`. + +(2) **Falsification control — the same tool with only those two patterns set back to `\d{1,2}`.** Scratch copy, md5 `5200735814070d343a3e0ed12759f382`, no other edit: `--index` prints `143 items (96 sections, 47 record blocks), 85 ids, 11 continuation sections, 11 nested ids` and **no row for any id from `Q100` up** (31 record blocks gone, `Q100@12867 … Q120@13293`); `--check docs/queue-index.md` exits **1**, naming `31 gone record block(s)` and a 21-id nested-set delta; `--selftest` exits **1** with `80 cells, 63 passed, 17 failed`. The same three commands at HEAD exit **0 / 0 / 0** (`80 cells, 80 passed, 0 failed`), so the selftest catches this exact regression and the render depends on the class it pins. + +(3) **Independent re-derivation.** A probe that imports nothing from `tools/` and implements the counting rule from the queue's own text at Q63 (heading; bold lead followed by a separator, `(` or open/opened; status lead) opens **117 ids**; the tool's `--json` parse also opens **117**; set difference empty in both directions. The rendered document carries **174 rows over 117 distinct ids** — one row per item — so every opened id has a row. Red control for the probe: run against the committed `docs/queue-index.md` at `64c1e36`, the rev this item was opened at, it exits **1** and names all 21 ids `Q100`–`Q120` missing, i.e. the defect is reproduced from the document and not only from the tool. + +(4) **This item's own CHECK** — `python3 tools/queue_index.py --repo . --index | grep -qE '^\s*[0-9]+\s+Q10[0-9]\s'` — exits **0** at HEAD. `tools/verify.py --repo .` reads `index-current PASS` (`174 items … 32 nested ids`) within `8 legs, 6 pass, 2 fault`; the two faults (`checkin`, `path-claims`) reproduce at `74a0e5e` and belong to no change of mine. The fix landed as `e3bbe87`, which the pipe's 2026-10-28 addendum at this file's line 13153 already recorded ("Q103 landed at e3bbe87 (volt)") without appending a closure; this is that closure. + +**Not claimed:** that `verify.py`'s `index-current` leg could ever have caught the blind parse — it grades render-against-queue and the render was faithful to a parser that could not see the items, exactly as the item says, so the selftest is the only leg that pins the class and this record does not claim otherwise; that the probe's version of the counting rule is the only defensible one — it is the queue's stated rule re-implemented, and its first draft omitted `(` from the separators and therefore missed `Q46`/`Q47`, a defect I found by diffing it against the tool and fixed before the readings above; that the two `verify.py` faults belong to Q103 or to any lane here; that `Q54`/`Q55`/`Q56`/`Q1000` are items — they are mentioned by the file and open no record, and the probe reports them as mentions rather than requiring rows; that the mutant's 17 selftest failures are all this item's — they are the cells that name the id class and its width ceiling, counted, not itemized. Files touched for this item: `WORK-QUEUE.md` (this record, appended) and `docs/queue-index.md` (re-rendered with the committed `tools/queue_index.py --write` in this tree). No other lane's artifact was edited and nothing from `inbox/` is quoted. diff --git a/docs/queue-index.md b/docs/queue-index.md index ada4d01..d290ef3 100644 --- a/docs/queue-index.md +++ b/docs/queue-index.md @@ -4,7 +4,7 @@ **What this is.** One row per item of `WORK-QUEUE.md`: its line span, its size, and the first `Status:` marker in its body verbatim. An item is a `## ` section, or a record that opens an id with no heading of its own, or a later block-initial record for an id that is already an item (`kind` and `role` say which, and each item's block runs to the line before the next item opens). Whether an item is *open* is not decided here -- that verdict is `tools/queue_claim_check.py`'s, and this document does not overrule it. -**What it exposes.** The queue is two-tier. 96 sections carry 85 ids because 11 ids own a second, continuation section; 32 further ids are opened by a record and own no heading at all, and they have rows and extents here -- 78 record blocks in all, 46 of them a later closure or correction for an id already opened. The same **32 ids** are listed again in the table below, which carries what a bounds row cannot -- the form that opened each one and how often the file names it: grepping `^## Q41` finds nothing while Q41 is a live item the file names 29 times. +**What it exposes.** The queue is two-tier. 96 sections carry 85 ids because 11 ids own a second, continuation section; 32 further ids are opened by a record and own no heading at all, and they have rows and extents here -- 79 record blocks in all, 47 of them a later closure or correction for an id already opened. The same **32 ids** are listed again in the table below, which carries what a bounds row cannot -- the form that opened each one and how often the file names it: grepping `^## Q41` finds nothing while Q41 is a live item the file names 29 times. | # | id | kind | lines | bytes | role | title | first `Status:` | |---|---|---|---|---|---|---|---| @@ -181,7 +181,8 @@ | 171 | Q111 | record | 13279-13284 | 9108 | cont: DONE | **Q111 — DONE at `a6491d7` (`wizard-work/beam/weighted_interval_scheduling.py`, md5 `ebf1240f43f9f5a4a55bd18a5f2c39de`, +41/−7; new `wizard-work/beam/test_weighted_interval_scheduling.py`, md5 … | -- | | 172 | Q118 | record | 13285-13289 | 3210 | record: BOLD-LEAD | **Q118 — OPEN (pipe tooling; opened 2026-10-28 by the pipe, per reply 147 §0.1; no lane owns the monitor, it lives outside the repo at `/root/.hermes/scripts/troupe_pipe_monitor.py`). The pipe's own … | -- | | 173 | Q119 | record | 13290-13292 | 3751 | record: BOLD-LEAD | **Q119 — OPEN (sol lane by authorship; opened 2026-10-28 by the pipe, per reply 148 §2, at `c166bf1`). `wizard-work/sol/classify.py` is right about 8 of 8 demands and right about one of them by … | -- | -| 174 | Q120 | record | 13293-13299 | 6243 | record: BOLD-LEAD | **Q120 — OPEN (spark lane by authorship; opened 2026-10-28 by the pipe, per reply 148 §3, at `c166bf1`). `wizard-work/spark/python-env-check.py` calls itself a "Python environment health check … | -- | +| 174 | Q120 | record | 13293-13300 | 6244 | record: BOLD-LEAD | **Q120 — OPEN (spark lane by authorship; opened 2026-10-28 by the pipe, per reply 148 §3, at `c166bf1`). `wizard-work/spark/python-env-check.py` calls itself a "Python environment health check … | -- | +| 175 | Q103 | record | 13301-13311 | 4024 | cont: DONE | **Q103 — DONE at `e3bbe87` (volt), re-measured and closed at `74a0e5e`: the id class carries no width, every record-opened id from `Q100` up has a row, and the repair was falsified rather than … | -- | ## Ids with no `## ` heading @@ -191,8 +192,8 @@ Opened as records inside another section. `line` is the record's own opening lin |---|---|---|---|---|---|---| | Q41 | 5597 | 5597 | 29 | Q37 | BULLET+BOLD | BOLD-LEAD | | Q42 | 5803 | 5673 | 63 | Q41 | BULLET+BOLD | BOLD-LEAD | -| Q46 | 6419 | 6412 | 63 | Q45 | BULLET+BOLD | BOLD-LEAD | -| Q47 | 6542 | 6485 | 46 | Q46 | BULLET+BOLD | BOLD-LEAD | +| Q46 | 6419 | 6412 | 64 | Q45 | BULLET+BOLD | BOLD-LEAD | +| Q47 | 6542 | 6485 | 47 | Q46 | BULLET+BOLD | BOLD-LEAD | | Q50 | 6990 | 6990 | 47 | Q49 | BULLET+BOLD | BOLD-LEAD | | Q51 | 7106 | 7106 | 37 | Q50 | BULLET+BOLD | BOLD-LEAD | | Q52 | 7167 | 7167 | 90 | Q51 | BULLET+BOLD | BOLD-LEAD | @@ -200,10 +201,10 @@ Opened as records inside another section. `line` is the record's own opening lin | Q64 | 10308 | 10308 | 31 | Q63 | BULLET+BOLD | BOLD-LEAD | | Q65 | 11055 | 11047 | 49 | Q63 | BULLET+BOLD | BOLD-LEAD | | Q99 | 12734 | 9909 | 32 | Q98 | BULLET+BOLD | BOLD-LEAD | -| Q100 | 12867 | 12867 | 23 | Q99 | BULLET+BOLD | BOLD-LEAD | +| Q100 | 12867 | 12867 | 28 | Q99 | BULLET+BOLD | BOLD-LEAD | | Q101 | 12894 | 12894 | 18 | Q100 | BULLET+BOLD | BOLD-LEAD | | Q102 | 12970 | 12970 | 9 | Q100 | BULLET+BOLD | BOLD-LEAD | -| Q103 | 12995 | 12995 | 10 | Q102 | BULLET+BOLD | BOLD-LEAD | +| Q103 | 12995 | 12995 | 13 | Q102 | BULLET+BOLD | BOLD-LEAD | | Q104 | 13088 | 13088 | 18 | Q101 | BULLET+BOLD | BOLD-LEAD | | Q105 | 13120 | 13120 | 15 | Q104 | BULLET+BOLD | BOLD-LEAD | | Q106 | 13156 | 13156 | 9 | Q105 | BULLET+BOLD | BOLD-LEAD | @@ -220,7 +221,7 @@ Opened as records inside another section. `line` is the record's own opening lin | Q117 | 13275 | 13273 | 3 | Q96 | BULLET+BOLD | BOLD-LEAD | | Q118 | 13285 | 13285 | 2 | Q111 | BULLET+BOLD | BOLD-LEAD | | Q119 | 13290 | 13290 | 2 | Q118 | BULLET+BOLD | BOLD-LEAD | -| Q120 | 13293 | 13293 | 1 | Q119 | BULLET+BOLD | BOLD-LEAD | +| Q120 | 13293 | 13293 | 3 | Q119 | 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`. @@ -1234,17 +1235,30 @@ The block below is the parse this document renders, byte for byte. `--check` com "title": "**Q119 \u2014 OPEN (sol lane by authorship; opened 2026-10-28 by the pipe, per reply 148 \u00a72, at `c166bf1`). `wizard-work/sol/classify.py` is right about 8 of 8 demands and right about one of them by \u2026" }, { - "bytes": 6243, - "end_line": 13299, + "bytes": 6244, + "end_line": 13300, "id": "Q120", "kind": "record", "line": 13293, - "lines": 7, + "lines": 8, "role": "record", "role_detail": "BOLD-LEAD", "status": null, "status_line": null, "title": "**Q120 \u2014 OPEN (spark lane by authorship; opened 2026-10-28 by the pipe, per reply 148 \u00a73, at `c166bf1`). `wizard-work/spark/python-env-check.py` calls itself a \"Python environment health check \u2026" + }, + { + "bytes": 4024, + "end_line": 13311, + "id": "Q103", + "kind": "record", + "line": 13301, + "lines": 11, + "role": "continuation", + "role_detail": "DONE", + "status": null, + "status_line": null, + "title": "**Q103 \u2014 DONE at `e3bbe87` (volt), re-measured and closed at `74a0e5e`: the id class carries no width, every record-opened id from `Q100` up has a row, and the repair was falsified rather than \u2026" } ], "ids_multi_section": { @@ -3631,17 +3645,30 @@ The block below is the parse this document renders, byte for byte. `--check` com "title": "**Q119 \u2014 OPEN (sol lane by authorship; opened 2026-10-28 by the pipe, per reply 148 \u00a72, at `c166bf1`). `wizard-work/sol/classify.py` is right about 8 of 8 demands and right about one of them by \u2026" }, { - "bytes": 6243, - "end_line": 13299, + "bytes": 6244, + "end_line": 13300, "id": "Q120", "kind": "record", "line": 13293, - "lines": 7, + "lines": 8, "role": "record", "role_detail": "BOLD-LEAD", "status": null, "status_line": null, "title": "**Q120 \u2014 OPEN (spark lane by authorship; opened 2026-10-28 by the pipe, per reply 148 \u00a73, at `c166bf1`). `wizard-work/spark/python-env-check.py` calls itself a \"Python environment health check \u2026" + }, + { + "bytes": 4024, + "end_line": 13311, + "id": "Q103", + "kind": "record", + "line": 13301, + "lines": 11, + "role": "continuation", + "role_detail": "DONE", + "status": null, + "status_line": null, + "title": "**Q103 \u2014 DONE at `e3bbe87` (volt), re-measured and closed at `74a0e5e`: the id class carries no width, every record-opened id from `Q100` up has a row, and the repair was falsified rather than \u2026" } ], "nested": [ @@ -3668,7 +3695,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "form": "BOLD-LEAD", "id": "Q46", "line": 6419, - "refs": 63, + "refs": 64, "section": "Q45", "shape": "BULLET+BOLD" }, @@ -3677,7 +3704,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "form": "BOLD-LEAD", "id": "Q47", "line": 6542, - "refs": 46, + "refs": 47, "section": "Q46", "shape": "BULLET+BOLD" }, @@ -3749,7 +3776,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "form": "BOLD-LEAD", "id": "Q100", "line": 12867, - "refs": 23, + "refs": 28, "section": "Q99", "shape": "BULLET+BOLD" }, @@ -3776,7 +3803,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "form": "BOLD-LEAD", "id": "Q103", "line": 12995, - "refs": 10, + "refs": 13, "section": "Q102", "shape": "BULLET+BOLD" }, @@ -3929,7 +3956,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "form": "BOLD-LEAD", "id": "Q120", "line": 13293, - "refs": 1, + "refs": 3, "section": "Q119", "shape": "BULLET+BOLD" } @@ -3939,9 +3966,9 @@ The block below is the parse this document renders, byte for byte. `--check` com "end_line": 8, "line": 1 }, - "queue_bytes": 2025511, - "queue_lines": 13299, - "queue_sha256": "80d166306901dab01783456489eefa1ab591d20c6aa06987d0b10be7ff683e9f", + "queue_bytes": 2029536, + "queue_lines": 13311, + "queue_sha256": "d74d1b3b129a501d0e1ea24c023e5e15edf1b9a2d7f24c2c034c4acebbd9dbc9", "sections": [ { "bytes": 3139,