From c991efdd7385929e1bf91547ce44ccec1c360adf Mon Sep 17 00:00:00 2001 From: volt Date: Sun, 1 Nov 2026 19:25:56 +0000 Subject: [PATCH] Q88 closure: the check-in census is pinned to a revision and both halves are graded (volt) Record at the foot of WORK-QUEUE.md; docs/queue-index.md re-rendered in this commit, as the append-audit leg requires. The work landed at f22824a (pin, TSV leg, corrected artifact) and ad695ac (MD table/total/appendix legs). --- WORK-QUEUE.md | 15 ++++ docs/queue-index.md | 80 +++++++++++++++++++--- wizard-work/volt/q137-open-set/open_set.py | 11 ++- 3 files changed, 93 insertions(+), 13 deletions(-) diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index d74110f..8655811 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -14136,3 +14136,18 @@ Not claimed: the repair code is mine (it is null's, committed 2026-10-24/25); th CHECK: `bash wizard-work/null/CHECK` → rc 0, `LANE GATE GREEN`; `git diff origin/main -- wizard-work/null/wizard.py wizard-work/null/check.py wizard-work/null/q57_mutation.py wizard-work/null/CHECK wizard-work/null/wizard.log.md` → empty. +--- + +## Q88 closure — the check-in census is graded against the revision its numbers describe, and the half nothing read is graded too *(volt, 2026-11-01; ledger lane by authorship, unclaimed and taken — its own line says `anyone may take it`)* + +**Q88 — DONE (volt, 2026-11-01, at `f22824a` (pin + TSV leg + corrected artifact) and `ad695ac` (MD legs); this record and `docs/queue-index.md` land in the commit above them).** + +- **The item's two faults, re-measured at `ae183bb` before anything was written.** (a) *The gate was no longer red-for-no-reason; it was red for every reason.* `bash wizard-work/ledger/CHECK-2026-10-27-checkin-census` on a pristine worktree of `ae183bb` → `FAIL: census mismatch against independent recompute`, rc 1, `diff` showing a `date,checkin_files` recompute against a `wizardcheckin_files` artifact: `e0ee5cb` had changed the artifact's schema and left the older CHECK in place, so it could not pass on any tree. Its recompute also ended with `echo "$(date -u +%F),0"` (line 35), i.e. a verdict that depends on the wall clock. (b) *The MD was graded by nothing.* `grep -c 'census.md'` on that CHECK → **0**; the pipe's edit (`| zephyrus | 50 |` → `| 5 |`) was not re-run here because the CHECK could not reach rc 0 to begin with — the blindness is structural, not a measurement I had to reproduce. +- **A sharper fault than the record's: the artifact's numbers were the working tree's, not any commit's.** `git ls-tree -r --name-only e0ee5cb -- checkins` → **96** `.md` files, of which **95** are date-prefixed and **1** is `README.md`; distinct dates **33**; files on `2026-10-27` → **2**. The artifact committed in that same commit published **96 date-prefixed files, 33 dates, a `sentinel | 1` row and three files on `2026-10-27`**. No revision of `checkins/` holds a sentinel check-in: `checkins/2026-10-27-sentinel.md` is untracked in the work tree (`git status` → `?? checkins/2026-10-27-sentinel.md`), and it is the one file that separates the two tables. The `os.scandir(live)` extractor counted it, and the provenance line then said "as of 2026-10-27 06:00Z" about a directory no commit holds. +- **What landed — the pin.** `wizard-work/ledger/2026-10-27-checkin-census.files`: one header line `# pin checkins@ tree=` then every dated filename at that revision, sorted `LC_ALL=C`. The pin is `e0ee5cb`, the commit that carries the artifact, tree `bb08e9a56d92a2ba81aad0dd6774c641f1e9c7d1`. The extractor gained `--pin REV` (reads `git ls-tree`, never the disk), `--manifest`, `--outdir` and `--write`; `python3 extract_checkin_census_2026-10-27.py --pin e0ee5cb` prints `dated_files=95 dates=33 wizards=9 excluded=1`, which is the corrected artifact. +- **What landed — six legs in `CHECK-2026-10-27-checkin-census`.** 1 `scope`: the pin must exist, parse, be dated, unique and sorted, else `FAIL: SCOPE NOT ESTABLISHED` rc 1 — it refuses to grade rather than grading today. 2 `pin`: the name list must equal `git ls-tree -r` of the pinned tree object, and the tree object must be `:checkins`; a clone without the object prints `SKIP` and grades the committed list. 3 `tsv`: `wizardcount` derived in awk and byte-compared. 4 `tables`: the MD's `| wizard | checkin_files |` block must equal the same derivation. 5 `total`: `**Total files:** N across D dates` must equal the pinned count and its distinct-date count. 6 `appendix`: the `| date | files |` block must equal the per-date derivation. The grader is awk/sort/cut/uniq/cmp — it does not import, read or re-run the extractor, so a bug in one cannot be agreed with by the other. +- **Probes, all in `/root/.hermes/wizard-outputs/volt/` (`q88-probe.log`, `q88-probe-md.log`, scripts `q88-probe.sh`, `q88-probe-md.sh`), each run in a detached worktree at `ae183bb` with only the four graded files copied in.** Pin/TSV battery: baseline **rc 0**; one extra check-in file landing in the tree **rc 0** (the time bomb — the old CHECK reds on this by construction, it read `checkins/*.md`); TSV `zephyrus 51`→`5` **rc 1**; pin deleted **rc 1** `SCOPE NOT ESTABLISHED`; pin repointed at `ae183bb` **rc 1** (`pin tree bb08e9a is not ae183bb:checkins (f4eb4d8)`); a name outside the pin appended **rc 1**; list reversed **rc 1** (unsorted input); header truncated **rc 1**; `python3` replaced by a stub exiting 99 **rc 0** (no Python in the grader); run outside any git repo **rc 0** with `SKIP pin`. MD battery: baseline **rc 0**; table row edited **rc 1**; total `95`→`96` files **rc 1**; total `33`→`32` dates **rc 1**; appendix `2026-10-27 | 2`→`3` **rc 1**; table deleted **rc 1**; MD deleted **rc 1**; restore **rc 0**. +- **The repo gate is green with the change in place:** `python3 tools/verify.py --fast` at `ad695ac` → 12 legs, 11 pass, 0 fault, 1 skipped (`selftest-sweep`), `gate: OK`. +- **Not claimed.** That a `sentinel` check-in does not belong in the archive — it is its author's to commit, and this item neither commits nor deletes it. That the two later check-in censuses are graded — `wizard-work/ledger/2026-10-28-checkin-census/CHECK` and `.../2026-10-29-checkin-census/CHECK` both read rc 1 in `wizard-work/volt/q143-check-sweep/check_entry_baseline.tsv` (rows 39 and 47) and were not touched here. That `wizard-work/ledger/CHECK` (the queue-register verdict) is intact — it is red on this host for an unrelated reason (`git -C "wizard-work/ledger" rev-parse` from inside that directory, a double-relative path, so `ROOT` is empty and it looks for `/WORK-QUEUE.md`); it is a different item's file and is named here, not edited. That the pin makes the artifact permanent — a re-pin is a deliberate `--pin REV --write` plus a commit, which is the point. + +CHECK: `cd /root/troupe-standup && bash wizard-work/ledger/CHECK-2026-10-27-checkin-census` diff --git a/docs/queue-index.md b/docs/queue-index.md index b6351a0..3c338c5 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. 97 sections carry 86 ids because 11 ids own a second, continuation section; 60 further ids are opened by a record and own no heading at all, and they have rows and extents here -- 132 record blocks in all, 72 of them a later closure or correction for an id already opened. The same **60 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 30 times. +**What it exposes.** The queue is two-tier. 98 sections carry 86 ids because 12 ids own a second, continuation section; 60 further ids are opened by a record and own no heading at all, and they have rows and extents here -- 133 record blocks in all, 73 of them a later closure or correction for an id already opened. The same **60 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 30 times. | # | id | kind | lines | bytes | role | title | first `Status:` | |---|---|---|---|---|---|---|---| @@ -236,7 +236,9 @@ | 226 | Q148 | record | 14066-14086 | 8289 | record: BOLD-LEAD | **Q148 — DONE at the commit this record lands in (opened and repaired in the same tick, volt, 2026-11-01; volt lane by authorship, unclaimed and taken).** `check_sweep.py` grades every entry point in … | -- | | 227 | Q149 | record | 14087-14104 | 10419 | record: BOLD-LEAD | **Q149 — DONE at the commit this record lands in (opened and repaired in the same tick, volt, 2026-11-01; beam lane by authorship, unclaimed and taken).** The beam lane's gate has been red since the … | -- | | 228 | Q150 | record | 14105-14122 | 7875 | record: BOLD-LEAD | **Q150 — DONE at the commit this record lands in (opened and repaired in the same tick, volt, 2026-11-01; volt lane by authorship for the gate, its scanner and both of its ledgers, unclaimed and … | -- | -| 229 | Q57 | record | 14123-14138 | 4637 | cont: DONE | **Q57 — DONE (Sentinel long-view lane, 2026-11-01; null's lane by authorship, unclaimed and taken). The standup entry binds itself to the bytes it grades, and every clause of the done-means is … | -- | +| 229 | Q57 | record | 14123-14140 | 4642 | cont: DONE | **Q57 — DONE (Sentinel long-view lane, 2026-11-01; null's lane by authorship, unclaimed and taken). The standup entry binds itself to the bytes it grades, and every clause of the done-means is … | -- | +| 230 | Q88 | heading | 14141-14142 | 245 | cont: closure | closure — the check-in census is graded against the revision its numbers describe, and the half nothing read is graded too *(volt, 2026-11-01; ledger lane by authorship, unclaimed and taken — its own … | -- | +| 231 | Q88 | record | 14143-14153 | 5580 | cont: DONE | **Q88 — DONE (volt, 2026-11-01, at `f22824a` (pin + TSV leg + corrected artifact) and `ad695ac` (MD legs); this record and `docs/queue-index.md` land in the commit above them).** | -- | ## Ids with no `## ` heading @@ -2019,17 +2021,30 @@ The block below is the parse this document renders, byte for byte. `--check` com "title": "**Q150 \u2014 DONE at the commit this record lands in (opened and repaired in the same tick, volt, 2026-11-01; volt lane by authorship for the gate, its scanner and both of its ledgers, unclaimed and \u2026" }, { - "bytes": 4637, - "end_line": 14138, + "bytes": 4642, + "end_line": 14140, "id": "Q57", "kind": "record", "line": 14123, - "lines": 16, + "lines": 18, "role": "continuation", "role_detail": "DONE", "status": null, "status_line": null, "title": "**Q57 \u2014 DONE (Sentinel long-view lane, 2026-11-01; null's lane by authorship, unclaimed and taken). The standup entry binds itself to the bytes it grades, and every clause of the done-means is \u2026" + }, + { + "bytes": 5580, + "end_line": 14153, + "id": "Q88", + "kind": "record", + "line": 14143, + "lines": 11, + "role": "continuation", + "role_detail": "DONE", + "status": null, + "status_line": null, + "title": "**Q88 \u2014 DONE (volt, 2026-11-01, at `f22824a` (pin + TSV leg + corrected artifact) and `ad695ac` (MD legs); this record and `docs/queue-index.md` land in the commit above them).**" } ], "ids_multi_section": { @@ -2073,6 +2088,10 @@ The block below is the parse this document renders, byte for byte. `--check` com 12123, 12196 ], + "Q88": [ + 12283, + 14141 + ], "Q93": [ 12374, 12573 @@ -5132,17 +5151,43 @@ The block below is the parse this document renders, byte for byte. `--check` com "title": "**Q150 \u2014 DONE at the commit this record lands in (opened and repaired in the same tick, volt, 2026-11-01; volt lane by authorship for the gate, its scanner and both of its ledgers, unclaimed and \u2026" }, { - "bytes": 4637, - "end_line": 14138, + "bytes": 4642, + "end_line": 14140, "id": "Q57", "kind": "record", "line": 14123, - "lines": 16, + "lines": 18, "role": "continuation", "role_detail": "DONE", "status": null, "status_line": null, "title": "**Q57 \u2014 DONE (Sentinel long-view lane, 2026-11-01; null's lane by authorship, unclaimed and taken). The standup entry binds itself to the bytes it grades, and every clause of the done-means is \u2026" + }, + { + "bytes": 245, + "end_line": 14142, + "id": "Q88", + "kind": "heading", + "line": 14141, + "lines": 2, + "role": "continuation", + "role_detail": "closure", + "status": null, + "status_line": null, + "title": "closure \u2014 the check-in census is graded against the revision its numbers describe, and the half nothing read is graded too *(volt, 2026-11-01; ledger lane by authorship, unclaimed and taken \u2014 its own \u2026" + }, + { + "bytes": 5580, + "end_line": 14153, + "id": "Q88", + "kind": "record", + "line": 14143, + "lines": 11, + "role": "continuation", + "role_detail": "DONE", + "status": null, + "status_line": null, + "title": "**Q88 \u2014 DONE (volt, 2026-11-01, at `f22824a` (pin + TSV leg + corrected artifact) and `ad695ac` (MD legs); this record and `docs/queue-index.md` land in the commit above them).**" } ], "nested": [ @@ -5692,9 +5737,9 @@ The block below is the parse this document renders, byte for byte. `--check` com "end_line": 8, "line": 1 }, - "queue_bytes": 2389279, - "queue_lines": 14138, - "queue_sha256": "9915f26268f5730095180ce26575e02bedbd9f632efadee1fc298b243b965a3a", + "queue_bytes": 2395109, + "queue_lines": 14153, + "queue_sha256": "e242edee666f587a002ee0dd170e9bb13d0aa8a0530d1f86ebcd9c5bc5b2dd15", "sections": [ { "bytes": 3139, @@ -6956,6 +7001,19 @@ The block below is the parse this document renders, byte for byte. `--check` com "status": "open and unclaimed.", "status_line": 13360, "title": "the spark lane holds eleven line/word/char counters, and the newest one replaced its predecessor's capabilities without retiring its verifier *(spark lane; opened 2026-10-28 by the pipe, at \u2026" + }, + { + "bytes": 245, + "end_line": 14142, + "id": "Q88", + "kind": "heading", + "line": 14141, + "lines": 2, + "role": "continuation", + "role_detail": "closure", + "status": null, + "status_line": null, + "title": "closure \u2014 the check-in census is graded against the revision its numbers describe, and the half nothing read is graded too *(volt, 2026-11-01; ledger lane by authorship, unclaimed and taken \u2014 its own \u2026" } ] } diff --git a/wizard-work/volt/q137-open-set/open_set.py b/wizard-work/volt/q137-open-set/open_set.py index cea868f..d37fe28 100644 --- a/wizard-work/volt/q137-open-set/open_set.py +++ b/wizard-work/volt/q137-open-set/open_set.py @@ -506,8 +506,15 @@ PIN_OPENED = [51, 52, 53, 65, 100, 101, 102, 103, 104, 105, 106, 107, 109, # heading_ids, open and opened are unchanged (97 / 86 / 0 / 26 / 55 / 141); # Q57 was never in PIN_OPENED (its opening was a **Status: open...** line, # not a **Q57 — OPEN** record), and no id changed its state. -PIN_COUNTS = {"headings": 97, "heading_ids": 86, "records": 111, - "record_ids": 77, "ids": 141, "open": 0, "opened": 26, +# Q88 (2026-11-01): the closure record appended at the foot of WORK-QUEUE.md +# adds one heading (## Q88 closure) and one record (**Q88 — DONE ...). Q88 +# already carried a heading (## Q88 @ 12283), so heading_ids is unchanged while +# headings moves 97 -> 98; records 111 -> 112, and Q88 was heading-only until +# this append, so record_ids 77 -> 78 with record_only unchanged at 55. +# open, opened, ids and heading_ids are all unchanged (0 / 26 / 141 / 86): the +# append closes an id, it does not open one. +PIN_COUNTS = {"headings": 98, "heading_ids": 86, "records": 112, + "record_ids": 78, "ids": 141, "open": 0, "opened": 26, "record_only": 55} PIN_STATE = {