From e3bbe875a55aa893f57ed5b6af963d80855a96de Mon Sep 17 00:00:00 2001 From: volt Date: Wed, 28 Oct 2026 00:36:16 +0000 Subject: [PATCH] volt: fix Q103 -- the queue index reads ids at any width and gives every record-opened id its own row (was: Q100+ invisible, Q98 carrying 63,254 bytes of six later items) tools/queue_index.py, one defect in two places. HEADING was ^##\s+(Q\d{1,2})\b and ID_TOKEN was \bQ\d{1,2}\b, so from Q100 up an id was neither a section nor a token: `## Q100 -- ...` parsed as body text of the section before it. Both are now `Q\d+` with the trailing \b kept. No width ceiling is restored: `\d{1,3}` reproduces this exact defect one digit later, which is the shape of the bug. Second half, same item: an id opened by a `**Qnn -- ...**` record inside somebody else's section now has an extent, from its record line to the line before the next item opens. Before this, that record's bytes accrued to the heading section around it. Measured at c703338 (the commit this lands on) against the fixed tool: --index at c703338 96 sections, 85 ids, 11 nested ids; Q98 = 12616-13117, 63,254 B (Q99-Q104 inside it); no row for any id >= Q100 --index, fixed 112 items (96 sections, 16 record blocks), 85 ids, 16 nested ids; Q98 = 12616-12733, 11,601 B; Q99 12,385, Q100 4,375, Q101 8,386, Q102 4,216, Q103 16,301, Q104 5,990 -- items tile end+1 == next line, byte sum equals queue_bytes exactly --check at c703338 rc 1 (the Q104 append in c703338 was never rendered) --check, this tree rc 0, "index current: 112 items (96 sections, 16 record blocks), 85 ids, 11 continuation sections, 16 nested ids" --selftest 58 cells -> 73 cells, 73 passed, 0 failed, rc 0 (tools/selftest_baseline.tsv follows: queue_index.py 58 -> 73) The 15 new cells are falsified, not asserted: the same selftest run with the two patterns mutated back to `\d{1,2}` in memory reads 62 passed, 11 failed, rc 1 -- three-digit heading is a section / is an id, three-digit bounds do not overlap, a three-digit bold record stays a nested id with its form, four-digit heading is its own id, a longer id is one token not a prefix match, and the four block-bound cells (their fixture opens Q102 on purpose). Positive controls in the same run: `Q1000x` and `FAQ100` still parse as no id, so the `\b` was not traded for reach. Two documentation defects fixed in the same file, both measured, neither cosmetic-only: 1. build_doc's "What it exposes" paragraph said "%d further ids are opened by a record and own no heading at all, and they have rows and extents here", and then nested_prose opened "A further **N ids** have no heading at all" about the SAME N. With blocks now items, blocks' ids and nested's ids are set-equal (16 and 16 here, symmetric difference empty), so the paragraph read as 32. It now says "The same **16 ids** are listed again in the table below", which is what the table is. 2. One selftest cell was named "the previous id class could not see Q100 (RED, measured here)" while asserting both halves -- old pattern finds nothing AND the current HEADING matches. Renamed to say both. Not touched: the dated 2026-10-17 measurement in the module docstring (49 sections / 45 ids / 9 record-opened ids) stays as history, not as a current claim; and Q99's record block, which the same rule now bounds, is counted as an item because it is one. docs/queue-index.md is re-rendered by the tool, not hand-edited: the `kind` column is new for every row, which is most of the diff. verify.py's index-current leg reads it. Q103's own queue record is appended in the commit after this one, and names this commit's sha. --- docs/queue-index.md | 2096 ++++++++++++++++++++++++++++++++--- tools/queue_index.py | 344 ++++-- tools/selftest_baseline.tsv | 2 +- 3 files changed, 2205 insertions(+), 237 deletions(-) diff --git a/docs/queue-index.md b/docs/queue-index.md index 8aa5ce2..64d3a73 100644 --- a/docs/queue-index.md +++ b/docs/queue-index.md @@ -2,108 +2,124 @@ *Generated by `tools/queue_index.py --write`; do not hand-edit. `python3 tools/queue_index.py --check docs/queue-index.md` re-derives the parse and goes RED when this document and `WORK-QUEUE.md` disagree, which is what an append to the queue produces. Regenerate, commit, move on.* -**What this is.** One row per `## ` section of `WORK-QUEUE.md`: its line span, its size, and the first `Status:` marker in its body verbatim. 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 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 (`kind` says which, and such an id'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. A further **11 ids have no heading at all** and are opened as records nested inside another item's section -- so grepping `^## Q41` finds nothing while Q41 is a live item the file names 28 times. Those are listed in their own table below. +**What it exposes.** The queue is two-tier. 96 sections carry 85 ids because 11 ids own a second, continuation section; 16 further ids are opened by a record and own no heading at all, and they have rows and extents here. The same **16 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 28 times. -| # | id | lines | bytes | role | title | first `Status:` | -|---|---|---|---|---|---|---| -| 1 | Q1 | 9-54 | 3139 | opening | Recover the fifteen silent rooms *(highest value; no dependencies)* | CLOSED — 0/15 recovered, and every public avenue is now exhausted with receipts. | -| 2 | Q2 | 55-72 | 1085 | opening | Chase the one dead link | DONE — recovered. | -| 3 | Q3 | 73-105 | 2333 | opening | Independent audit of the published ledger | DONE — both passes complete (`2ebcbe7` pass 1, `6f31cde` pass 2, zephyrus-sparkborn; material `2118b3e`). | -| 4 | Q4 | 106-132 | 2006 | opening | Falsification pass | DONE — `recoveries/falsification-pass.md` (`f50f052`, zephyrus-sparkborn), all three verdicts re-verified | -| 5 | Q8 | 133-453 | 40998 | opening | Summary fidelity: does each entry's machine-written summary overstate its article? | pilot CLOSED at `dcf91a1` (zephyrus-sparkborn), corrected at `9cc6879`; the full sweep is CLOSED at `f1fe38d` (2026-10-06) — 91/91, 1,101 rows, verified independently from the published file. The one … | -| 6 | Q5 | 454-488 | 2764 | opening | Issue triage in the organisation's public repos | re-scoped 2026-09-26 (reply 08 §5) after a census, because as written it invites busywork. | -| 7 | Q6 | 489-581 | 8337 | opening | A public guide to checking this archive | DONE at `8bd0b09` (Merlin, 2026-10-08T17:28:47Z) — verified from this host figure by figure; | -| 8 | Q7 | 582-655 | 6898 | opening | Propose the next items | satisfied for the 2026-09-25 cycle. | -| 9 | Q9 | 656-692 | 3028 | opening | Independent QC of the sovereign music candidates *(second opinion, no listening required)* | unclaimed. Pre-verified by Timmy against the delivered files — record `recoveries/music-master-verification.md` | -| 10 | Q10 | 693-948 | 24339 | opening | Summary fidelity for the non-magazine entries | COMPLETE 2026-10-10 (verified from raw sources; closure record below). Originally claimed by zephyrus-sparkborn at `3c9ad5b` (2026-10-07, `checkins/2026-10-07-zephyrus.md` §3). | -| 11 | Q11 | 949-984 | 2699 | opening | Close the eight pass-2 date mismatches | DONE — `recoveries/ledger-date-closure.md`, Merlin, 2026-10-09. 8 / 8 resolved, all | -| 12 | Q12 | 985-1110 | 12049 | opening | Are the evidence tiers earned? | DONE — `recoveries/evidence-tier-audit.md`, Merlin, 2026-10-10. 18/18 `justified`, 0 `too | -| 13 | Q13 | 1111-1145 | 2788 | opening | Publish the archive-side wording fixes, one at a time | 1 of 8 has a decision and staged correction (`magazine-091`; reply 09 §3), but its decided note carries | -| 14 | Q14 | 1146-1264 | 11043 | opening | Put the Inbox on `alexanderwhitestone.com` behind a gate | DONE — finished by `616794c` (2026-09-26), then re-measured by a later run the same day instead of being | -| 15 | Q15 | 1265-1395 | 14450 | opening | Stop the monitor from waking on the pipe's own writes *(pipe; no dependencies)* | DONE — 2026-09-26 ≈19:05 UTC. | -| 16 | Q16 | 1396-1552 | 14833 | opening | Per-platform ATS gate census *(career lane; opened 2026-10-01 by reply 21 §3, drafted by zephyrus)* | draft v0.1 landed `f29425a` (`career-lane/ats-gate-census-draft.md`, 2026-10-01; check-in `2f83e08`); | -| 17 | Q17 | 1553-1590 | 8975 | opening | Employer-side AI-authorship refusal gates *(career lane; opened 2026-10-03 by reply 26, per Q7)* | -- | -| 18 | Q18 | 1591-1767 | 50438 | opening | Employer-side lead intake must be deduped against the prepared index *(career lane; opened 2026-10-04 by reply 28, per the G2i miss)* | -- | -| 19 | Q19 | 1768-2111 | 80477 | opening | Three proposed members (local Mac wizard, Grok, Mistral) *(wizard onboarding; opened 2026-10-06 by zephyrus-sparkborn, `checkins/2026-10-06-zephyrus-wizards*.md` + `JOIN-THE-TROUPE.md`)* | RESOLVED — provisional (2026-10-06). | -| 20 | Q20 | 2112-2232 | 10988 | opening | Excerpt fidelity and placement for the 91 magazine entries *(archive verification; opened 2026-10-08 by the pipe, per Q7's never-dry obligation)* | DONE — `recoveries/excerpt-placement-audit.md` (12,914 B) and `recoveries/excerpt-placement-rows.md` | -| 21 | Q21 | 2233-2366 | 12569 | opening | Does every quoted excerpt resolve at the URL it is printed against? | open and unclaimed. Opened by the pipe 2026-10-10 | -| 22 | Q22 | 2367-2476 | 9703 | opening | Do the named-but-unlinked sources resolve? *(proposed 2026-10-10 by Merlin, per Q7; not yet opened)* | DONE — `recoveries/named-source-liveness.md`, Merlin, 2026-10-10. 28 fetches → 27 distinct | -| 23 | Q23 | 2477-2620 | 14827 | opening | The prose-named sources the `@` token rule cannot see *(archive verification; opened 2026-10-10 by the pipe, per Q7's never-dry obligation)* | DONE 2026-10-10 — `recoveries/named-source-liveness-unlinked.md` (Merlin), verified from the published file this tick (control plane). | -| 24 | Q24 | 2621-2765 | 12679 | opening | The Q13 fix pack: stage every verified live-page fix as one reviewable approval *(archive-side; opened 2026-10-10 by the pipe, per Q7's never-dry obligation)* | open and unclaimed. Opened by the pipe 2026-10-10 | -| 25 | Q25 | 2766-3057 | 26281 | opening | A prose-anchor convention for the ledger build *(archive-side; proposed 2026-10-10 by Merlin, per Q7's never-dry obligation — Q24 closed and the unclaimed executable set fell to zero)* | DONE — `recoveries/prose-anchor-convention.md`, Merlin, 2026-10-10. Designed, prototyped and | -| 26 | Q26 | 3058-3254 | 17936 | opening | Make the silent token classes loud, and measure the fifth slot *(archive-side; opened 2026-10-10 by the pipe, per Q7's never-dry obligation — Q25 closed at `a9f23a6` and the unclaimed executable set … | DONE — `recoveries/prose-anchor-hardening.md`, Merlin, 2026-10-10→11 (~00:20–00:24 UTC). | -| 27 | Q27 | 3255-3387 | 14425 | opening | A fixture at every render site: make the token sentinel's coverage total *(archive-side; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q26 closed at `f05179e`)* | DONE 2026-10-11 — `recoveries/render-site-coverage.md` (Merlin). 32 sites: 28 covered by fixture, 4 structural exclusions; 35 fixtures, every negative writes 0 files; the scope clause closed with … | -| 28 | Q28 | 3388-3572 | 15313 | opening | The channels the entry walk cannot see: state the guarantee, then cover what it cannot reach | DONE 2026-10-11 — `recoveries/render-site-channels.md` (Merlin), scratch tree | -| 29 | Q29 | 3573-3746 | 19748 | opening | The guards that are not the walk: what protects a page when the value is not a token | DONE 2026-10-11 — `recoveries/render-site-guards.md` (Merlin), scratch tree `/root/crucible/q29/`. 22 fixtures plus the control, every negative or escape claim measured against the emitted byte; the … | -| 30 | Q30 | 3747-3961 | 17595 | opening | The renderer's entry point: the one path no gate executes | DONE 2026-10-11 — `recoveries/helm-cli-entry-point.md` (Merlin), all four steps of the | -| 31 | Q31 | 3962-4367 | 37235 | opening | The collector's entry point: the sibling path no gate has executed either | DONE at Merlin's Run 6 (2026-10-11 ≈13:19–13:35Z) — deliverable `recoveries/helm-collector-run.md`; the collector's entry point is executed, its destination is gated, and G8 asserts it. | -| 32 | Q32 | 4368-4437 | 7043 | opening | The G8 two-run agreement check is nondeterministic: `age_seconds` is not scrubbed *(Helm lane; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q31's adoption is blocked behind it)* | OPEN — named to the Helm lane | -| 33 | Q33 | 4438-4551 | 11472 | opening | Split the newest-file pointer out of `evidence.source_path` *(collector-side; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q32 closed at `7e12c82`)* | OPEN — named to the Helm lane. | -| 34 | Q34 | 4552-4727 | 18123 | opening | Gate the pointer's null case *(collector-side gate; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q33 closed at `8bb88da`)* | DONE 2026-10-12 — `recoveries/helm-null-gate.md` (Merlin), scratch tree `/root/crucible/q34/`. | -| 35 | Q35 | 4728-4895 | 16334 | opening | The gate must refuse a subject collector that carries no destination rule *(Helm lane; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q34 verified and closed at `ac98bfb`)* | DONE — `recoveries/helm-precondition-gate.md` (8,261 B / sha256 | -| 36 | Q36 | 4896-4984 | 7447 | opening | The monitor cannot see a counterparty write that carries this pipe's identity *(pipe tooling; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q20 verified and closed at `9a1de9a` and … | DONE — the rule holds, and the predicted transition arrived exactly as stated. | -| 37 | Q37 | 4985-5017 | 2795 | opening | The identity rule closes one class, not the class *(pipe tooling; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q36 closed at `9584984` and the unclaimed executable set fell to … | -- | -| 38 | Q38 | 5018-5134 | 11073 | opening | The behavioural destination guard *(Helm lane; opened 2026-10-12 by Merlin — Q36's candidate 2, on Alexander's direction to continue the Helm lane)* | DONE — `recoveries/helm-behavioural-guard.md` (10,232 B), Merlin, 2026-10-12T06:5x–07:1xZ, this host. | -| 39 | Q38 | 5135-5150 | 6035 | cont: The | The behavioural destination guard *(Helm lane; opened 2026-10-12 by Merlin — Q36's candidate 2, on Alexander's direction to continue the Helm lane; **direction unrecorded in this repo — Testimony … | the deliverable is verified and the item is DONE, and its protective claim is FALSIFIED. It is not adoptable as it stands. | -| 40 | Q39 | 5151-5203 | 8753 | opening | The Q38 guard's admission admits a writer, and its legs run the unrewritten subject *(Helm lane; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q38 is closed and verified and its … | DONE — `recoveries/helm-destination-guard-fix.md` (12,253 B), Merlin, 2026-10-12, scratch tree `/root/crucible/q39/`. Fixed gate `9b09f328…` (1,412 lines / 77,704 B, +309/−38 against Q38's … | -| 41 | Q39 | 5204-5216 | 4002 | cont: closure | closure — verified from this host by the pipe (2026-10-12, reply 22) | DONE. Finished by `fad802c` (record + queue block + Run 5 check-in) and `4e87c8f` (landing evidence); verified by `replies/2026-10-12-to-merlin-22.md` with my own harness `/root/troupe-verify/q39/inde … | -| 42 | Q40 | 5217-5275 | 4156 | opening | the deployed gate admits all five negatives, and has no admission path at all *(Helm lane; opened 2026-10-12 by Merlin, discharging the Q39 closure's C26)* | DONE — `recoveries/helm-deployed-gate-admission.md` (5,633 B / sha256 | -| 43 | Q37 | 5276-6102 | 84293 | cont: claimed | claimed by this pipe; first increment landed (the v1.3 census) | OPEN and claimed by the pipe (Merlin's §Next 2 read it correctly; it is this lane's tooling). Landed this tick: | -| 44 | Q43 | 6103-6140 | 7242 | opening | The legs run the rewritten subject: prevention, not detect-and-restore *(Helm lane; opened 2026-10-12 by Merlin, per the Q39 closure's own recommendation — "open the stronger form (the legs against a … | DONE — `recoveries/helm-leg-sandbox.md` (13,561 B), Merlin, 2026-10-12. Scratch tree `/root/crucible/q43/`; nothing deployed, no `cp` into `/root/.helm/bin/`, `decisions/` and `inbox/` untouched. | -| 45 | Q43 | 6141-6161 | 5562 | cont: closure | closure — verified from this host by the pipe (2026-10-12, reply 27) | VERIFIED AND CLOSED from the pipe, 2026-10-12 18:5x–19:1xZ. | -| 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 | -| 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-10699 | 572535 | opening | §9 follow-on — the home-directory channel *(Helm lane; Merlin)* | OPEN — awaiting Alexander's zoom/whole-shop answer; build is the pipe's. | -| 50 | Q57 | 10700-10732 | 8732 | opening | Bind a standup entry to the bytes it grades *(Codeforge lane; opened 2026-10-24 by the pipe, per reply 05's corrections 1 and 2)* | open and unclaimed. Opened by the pipe 2026-10-24; null's lane. | -| 51 | Q58 | 10733-10778 | 5303 | opening | The lane-activity instrument reads a surface that was retired on 2026-10-16 *(Sol lane; opened 2026-10-24 by the pipe, per reply 12 to sol)* | closed at `809466f` (2026-10-26, spark in sol's lane); the closure record sits at the foot of this file. | -| 52 | Q59 | 10779-10829 | 7869 | opening | beam's jump hash matches the C reference, and not one test would notice if it stopped *(beam lane; opened 2026-10-24 by the pipe, per reply 84 to zephyrus)* | open and unclaimed. Beam's lane. | -| 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-11284 | 99944 | 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. | -| 57 | Q66 | 11285-11318 | 5953 | opening | beam's `search_count` advertises overlapping occurrences and no test would notice if it stopped *(beam lane; opened 2026-10-25 by the pipe, per reply 27 to beam)* | closed at `2d6cf69` (2026-10-26, beam); the closure record sits at the foot of this file. | -| 58 | Q67 | 11319-11381 | 5028 | opening | forge's probe-refactor verifier certifies a refactor that restores the defect it removes *(forge lane; opened 2026-10-25 by the pipe, per reply 20 to forge)* | open and unclaimed. | -| 59 | Q68 | 11382-11456 | 12087 | opening | beam's `topo_levels` drops a one-shot `edges` iterable, silently, and its new suite both certifies a host copy and takes the lane's gate down *(beam lane; opened 2026-10-25 by the pipe, per reply 28 … | closed at `5a43291` (volt, 2026-10-25); the closure record sits at the foot of this file. | -| 60 | Q69 | 11457-11489 | 9967 | opening | 116 committed files under `wizard-work/` name the absolute path `/root/troupe-standup`, so 64 gates grade the author's working tree instead of the checkout they were asked about *(no lane owns it … | open and unclaimed. | -| 61 | Q70 | 11490-11503 | 3341 | opening | beam's `test_trie.py` is invisible to the lane gate (73 new lines, 0 cells collected), and `count_prefix` is a lifetime insert counter that survives `delete` *(beam lane; opened 2026-10-25 by the … | closed at `12f956a` (volt, 2026-10-26) — closure record at the foot of this file. | -| 62 | Q71 | 11504-11525 | 8942 | opening | ledger's `commits-table.md` has no verifier, and row 4 writes `kernel_git` where the source URL has `kernel/git` *(ledger lane; opened 2026-10-25 by the pipe, per reply 102 to zephyrus)* | closed at `b9e3780` and the closure commit (volt, 2026-10-25); the closure record sits at the foot of this file. | -| 63 | Q72 | 11526-11566 | 19068 | opening | sphinx's lcmm ledger gates its quotations but not its population or its interpretations: two mutations of mine pass the verifier at 169/169 and 139/139 *(sphinx lane; opened 2026-10-26 by the pipe … | open and unclaimed. | -| 64 | Q72 | 11567-11576 | 1433 | cont: verified | verified from this host by the pipe (2026-10-26, reply 105) | -- | -| 65 | Q73 | 11577-11626 | 15286 | opening | sphinx's longctx archive gates its numbers and its claim-scoped quotations, but not its prose numbers, its claim sentences, its README, or the quotations that carry no claim id *(sphinx lane; opened … | open and unclaimed. | -| 66 | Q74 | 11627-11652 | 8882 | opening | sol's triage CHECK certifies the host `_triage` copy and asserts today's freshness, so it cannot gate the committed artifact *(sol lane; opened 2026-10-26 by the pipe, per the Q58 closure record … | open and unclaimed. | -| 67 | Q75 | 11653-11666 | 3867 | opening | ledger's two census TSVs carry seven lines that are not rows and one path no file on disk has, and no gate in the lane can see either *(ledger lane; opened 2026-10-26 by the pipe, at `b82b023`)* | open and unclaimed. | -| 68 | Q76 | 11667-11707 | 14780 | opening | beam's new median tests reach no gate, and the lane gate that would run them is red for a host path older than the commit *(beam lane; opened 2026-10-26 by the pipe, at `c3ce8dd`)* | open and unclaimed. | -| 69 | Q77 | 11708-11789 | 20226 | opening | beam's segment tree lands 100 lines and the lane's count does not move, its failure path reports as an import `SystemExit` rather than a cell, and out-of-range indices are silently clamped *(beam … | open and unclaimed. | -| 70 | Q78 | 11790-11839 | 4649 | opening | spark's `3d72f9d` deletes the Q63 `_check()` failure path from four verifiers and drifts five ledger rows, and the new email-validator suite imports a host path *(spark lane; opened 2026-10-26 by the … | -- | -| 71 | Q79 | 11840-11899 | 5309 | opening | beam's `manifest.py` lands 107 lines with no cell in any gate, cannot see a directory symlink, reads its own output as a tamper, and prints a green empty manifest for a root that does not exist … | open and unclaimed. | -| 72 | Q79 | 11900-11915 | 4890 | cont: closure | closure — manifest.py carries the lane's 0/1/2 contract, three blind spots are closed, and 17 cells now sit in the gate *(volt, 2026-10-26; beam's lane by authorship, taken by the Workhorse as the … | DONE at `f719428` (manifest.py), `25e88f8` (canonical naming), `36ce415` (test_manifest.py); this record and `docs/queue-index.md` land in the commit above it. | -| 73 | Q80 | 11916-11968 | 4579 | opening | spark's `json_sha256_validator.py` prints a hash of bytes it never validated, admits `NaN`/`Infinity` as valid, and reports an unreadable input in the same code as a bad document *(spark lane; opened … | open and unclaimed. | -| 74 | Q81 | 11969-12011 | 3534 | opening | spark's `hermes_profile_health.py` grades a profile by the existence of names, hardcodes the one host path it can check, and carries a branch that cannot fire *(spark lane; opened 2026-10-26 by the … | open and unclaimed. | -| 75 | Q82 | 12012-12050 | 3258 | opening | beam's `test_json_canonical.py` prints `ALL PASS` without running a single assertion, and the lane's count does not move at the head that lands it *(beam lane; opened 2026-10-26 by the pipe, at … | open and unclaimed. | -| 76 | Q82 | 12051-12079 | 5314 | cont: closure | closure — `test_json_canonical.py` is seven discoverable cells (lane gate 191 → 198), every cell is killed by a named mutant, and `json_canonical.py` says what it is not *(volt, 2026-10-26; beam's … | DONE at `0735102` (suite), `6c097bf` (float surface); this record and `docs/queue-index.md` land in the commit above it. | -| 77 | Q81 | 12080-12122 | 9984 | cont: closure | closure — `hermes_profile_health.py` grades a profile you name, parses the config it grades, and the lane gate collects nine cells *(volt, 2026-10-26; spark's lane by authorship, taken as the opening … | DONE at `3f424c0` (tool), `329af8b` (suite + gate leg); this record and `docs/queue-index.md` land in the commit above them. | -| 78 | Q83 | 12123-12142 | 3177 | opening | five branches `hermes_profile_health.py` names are pinned by no cell, and one of them is the branch that produces the sweep's only red *(spark lane; opened 2026-10-26 by the pipe, at `829268f`)* | open and unclaimed. | -| 79 | Q84 | 12143-12195 | 6932 | opening | `interval_overlap.py` lands 87 lines with no cell, and the lane gate reads `Ran 202` before and after *(beam lane; opened 2026-10-26 by the pipe, at `517362f`)* | open and unclaimed. | -| 80 | Q83 | 12196-12223 | 4823 | cont: closure | closure — the five unpinned `hermes_profile_health.py` branches are five cells (spark gate 9 → 14), and the item's own first row is corrected *(volt, 2026-10-27; spark's lane by authorship, taken as … | DONE at `fe09917`; this record and `docs/queue-index.md` land in the commit above it. | -| 81 | Q85 | 12224-12243 | 4602 | opening | `beam/CHECK` collects only `test_*.py`, so a module no cell imports lands invisible: four are in that state today, and the newest added 38 lines with the gate reading `Ran 214` before and after … | open and unclaimed. | -| 82 | Q86 | 12244-12266 | 9567 | opening | the refactor-lane harness proves silence, not absence of I/O, and its seed path is host-absolute, so a second checkout cannot re-verify the refactor *(forge lane; opened 2026-10-27 by the pipe, at … | DONE at `802a1ae`; this line and the two items appended at the end of this file (Q89, Q90) land in the commits above it. | -| 83 | Q87 | 12267-12282 | 2819 | opening | the forge lane holds 34 `verify_*.py` and no `CHECK`; `tools/verify.py`'s eight legs reach none of them *(forge lane; opened 2026-10-27 by the pipe, at `431bca1`)* | open and unclaimed. | -| 84 | Q88 | 12283-12299 | 2761 | opening | the census `CHECK` verifies the live `checkins/` directory and the TSV only, so a dated artifact goes red on the next check-in and stays green under a hand-edited per-wizard table *(ledger lane … | open and unclaimed. | -| 85 | Q89 | 12300-12322 | 3136 | opening | the import-time-I/O detector in the three forge harnesses is a name list, so a `pathlib` read at module scope passes every check green *(forge lane; opened 2026-10-27 by the pipe, at `6e9aeee`)* | open and unclaimed. | -| 86 | Q90 | 12323-12341 | 4913 | opening | beam's `find_tree_root` accepts any ancestor marker as the repo root, `portable_seed` never checks the seed exists, and the six cells that would notice reach no gate *(beam lane; opened 2026-10-27 by … | open and unclaimed. | -| 87 | Q91 | 12342-12355 | 3016 | opening | forge's r41 pixel-diff verifier prints PASS when neither card writes anything, and it writes the delivery artifact *(forge lane; opened 2026-10-27 by the pipe, at `d56105a`)* | -- | -| 88 | Q92 | 12356-12373 | 2908 | opening | spark's two new scripts grade the caller's working directory, and one carries dead code after `sys.exit` *(spark lane; opened 2026-10-27 by the pipe, at `d56105a`)* | -- | -| 89 | Q93 | 12374-12392 | 3793 | opening | the sweep's malformed-input probe grades a phrase, so two correctly-refusing tools keep it red, and the leg's summary line says "0 fatal" while returning 1 *(no lane owns it; opened 2026-10-27 by the … | -- | -| 90 | Q94 | 12393-12523 | 18995 | opening | `dsu_rollback.py`'s headline mechanism is graded by no cell, its compression cell does not grade compression, and `find`/`union` accept negative indices silently *(beam lane; opened 2026-10-27 by the … | -- | -| 91 | Q60 | 12524-12531 | 2599 | cont: closure | closure — the check half runs at a named head, the self-quote collapse and the placeholder refusal are measured, and the two instrument holes it leaves are named instead of smoothed *(opened by the … | DONE at `33f8f0f` (`wizard-work/zeph/q60_enforce.py`, blob `4b3926332b5aab4a83f599815fd677bc230e17ad`); this record lands in the commit above it. | -| 92 | Q95 | 12532-12543 | 2197 | opening | beam's `find_duplicate` no-duplicate guard cannot fire, and the file has no cell in any gate *(beam lane; opened 2026-10-27 by the pipe, at `f400640`)* | open and unclaimed. | -| 93 | Q96 | 12544-12572 | 8752 | opening | `q60_enforce.py`'s self-scan cannot see a fixture literal in its own source, and an exhausted stem can never flip to recovered *(zeph lane; opened 2026-10-27 by the pipe, at `33f8f0f`)* | open and unclaimed. | -| 94 | Q93 | 12573-12592 | 5641 | cont: closure | closure — the malformed axis grades a contract now, the two false reds are gone, and the replacement contract has a hole the prose pin did not *(opened by the pipe 2026-10-27 at `d56105a`; landed by … | DONE at `9878f12` (`tools/selftest_sweep.py`, blob `c710643cbf888140d0bf834e89aecaaa607117cc`, 68,216 B); this record lands after it. | -| 95 | Q97 | 12593-12615 | 3907 | opening | a contract-graded refusal accepts an argparse usage error, so a renamed flag turns the whole malformed axis green *(no lane owns it; opened 2026-10-27 by the pipe, at `9878f12`)* | open and unclaimed. | -| 96 | Q98 | 12616-13084 | 57258 | opening | seven committed test files resolve their module from a path outside the repo, and the class guard Q61 promised was never written *(no lane owns it; opened 2026-10-27 by the pipe, at `5886bdd`)* | open and unclaimed. | +| # | id | kind | lines | bytes | role | title | first `Status:` | +|---|---|---|---|---|---|---|---| +| 1 | Q1 | heading | 9-54 | 3139 | opening | Recover the fifteen silent rooms *(highest value; no dependencies)* | CLOSED — 0/15 recovered, and every public avenue is now exhausted with receipts. | +| 2 | Q2 | heading | 55-72 | 1085 | opening | Chase the one dead link | DONE — recovered. | +| 3 | Q3 | heading | 73-105 | 2333 | opening | Independent audit of the published ledger | DONE — both passes complete (`2ebcbe7` pass 1, `6f31cde` pass 2, zephyrus-sparkborn; material `2118b3e`). | +| 4 | Q4 | heading | 106-132 | 2006 | opening | Falsification pass | DONE — `recoveries/falsification-pass.md` (`f50f052`, zephyrus-sparkborn), all three verdicts re-verified | +| 5 | Q8 | heading | 133-453 | 40998 | opening | Summary fidelity: does each entry's machine-written summary overstate its article? | pilot CLOSED at `dcf91a1` (zephyrus-sparkborn), corrected at `9cc6879`; the full sweep is CLOSED at `f1fe38d` (2026-10-06) — 91/91, 1,101 rows, verified independently from the published file. The one … | +| 6 | Q5 | heading | 454-488 | 2764 | opening | Issue triage in the organisation's public repos | re-scoped 2026-09-26 (reply 08 §5) after a census, because as written it invites busywork. | +| 7 | Q6 | heading | 489-581 | 8337 | opening | A public guide to checking this archive | DONE at `8bd0b09` (Merlin, 2026-10-08T17:28:47Z) — verified from this host figure by figure; | +| 8 | Q7 | heading | 582-655 | 6898 | opening | Propose the next items | satisfied for the 2026-09-25 cycle. | +| 9 | Q9 | heading | 656-692 | 3028 | opening | Independent QC of the sovereign music candidates *(second opinion, no listening required)* | unclaimed. Pre-verified by Timmy against the delivered files — record `recoveries/music-master-verification.md` | +| 10 | Q10 | heading | 693-948 | 24339 | opening | Summary fidelity for the non-magazine entries | COMPLETE 2026-10-10 (verified from raw sources; closure record below). Originally claimed by zephyrus-sparkborn at `3c9ad5b` (2026-10-07, `checkins/2026-10-07-zephyrus.md` §3). | +| 11 | Q11 | heading | 949-984 | 2699 | opening | Close the eight pass-2 date mismatches | DONE — `recoveries/ledger-date-closure.md`, Merlin, 2026-10-09. 8 / 8 resolved, all | +| 12 | Q12 | heading | 985-1110 | 12049 | opening | Are the evidence tiers earned? | DONE — `recoveries/evidence-tier-audit.md`, Merlin, 2026-10-10. 18/18 `justified`, 0 `too | +| 13 | Q13 | heading | 1111-1145 | 2788 | opening | Publish the archive-side wording fixes, one at a time | 1 of 8 has a decision and staged correction (`magazine-091`; reply 09 §3), but its decided note carries | +| 14 | Q14 | heading | 1146-1264 | 11043 | opening | Put the Inbox on `alexanderwhitestone.com` behind a gate | DONE — finished by `616794c` (2026-09-26), then re-measured by a later run the same day instead of being | +| 15 | Q15 | heading | 1265-1395 | 14450 | opening | Stop the monitor from waking on the pipe's own writes *(pipe; no dependencies)* | DONE — 2026-09-26 ≈19:05 UTC. | +| 16 | Q16 | heading | 1396-1552 | 14833 | opening | Per-platform ATS gate census *(career lane; opened 2026-10-01 by reply 21 §3, drafted by zephyrus)* | draft v0.1 landed `f29425a` (`career-lane/ats-gate-census-draft.md`, 2026-10-01; check-in `2f83e08`); | +| 17 | Q17 | heading | 1553-1590 | 8975 | opening | Employer-side AI-authorship refusal gates *(career lane; opened 2026-10-03 by reply 26, per Q7)* | -- | +| 18 | Q18 | heading | 1591-1767 | 50438 | opening | Employer-side lead intake must be deduped against the prepared index *(career lane; opened 2026-10-04 by reply 28, per the G2i miss)* | -- | +| 19 | Q19 | heading | 1768-2111 | 80477 | opening | Three proposed members (local Mac wizard, Grok, Mistral) *(wizard onboarding; opened 2026-10-06 by zephyrus-sparkborn, `checkins/2026-10-06-zephyrus-wizards*.md` + `JOIN-THE-TROUPE.md`)* | RESOLVED — provisional (2026-10-06). | +| 20 | Q20 | heading | 2112-2232 | 10988 | opening | Excerpt fidelity and placement for the 91 magazine entries *(archive verification; opened 2026-10-08 by the pipe, per Q7's never-dry obligation)* | DONE — `recoveries/excerpt-placement-audit.md` (12,914 B) and `recoveries/excerpt-placement-rows.md` | +| 21 | Q21 | heading | 2233-2366 | 12569 | opening | Does every quoted excerpt resolve at the URL it is printed against? | open and unclaimed. Opened by the pipe 2026-10-10 | +| 22 | Q22 | heading | 2367-2476 | 9703 | opening | Do the named-but-unlinked sources resolve? *(proposed 2026-10-10 by Merlin, per Q7; not yet opened)* | DONE — `recoveries/named-source-liveness.md`, Merlin, 2026-10-10. 28 fetches → 27 distinct | +| 23 | Q23 | heading | 2477-2620 | 14827 | opening | The prose-named sources the `@` token rule cannot see *(archive verification; opened 2026-10-10 by the pipe, per Q7's never-dry obligation)* | DONE 2026-10-10 — `recoveries/named-source-liveness-unlinked.md` (Merlin), verified from the published file this tick (control plane). | +| 24 | Q24 | heading | 2621-2765 | 12679 | opening | The Q13 fix pack: stage every verified live-page fix as one reviewable approval *(archive-side; opened 2026-10-10 by the pipe, per Q7's never-dry obligation)* | open and unclaimed. Opened by the pipe 2026-10-10 | +| 25 | Q25 | heading | 2766-3057 | 26281 | opening | A prose-anchor convention for the ledger build *(archive-side; proposed 2026-10-10 by Merlin, per Q7's never-dry obligation — Q24 closed and the unclaimed executable set fell to zero)* | DONE — `recoveries/prose-anchor-convention.md`, Merlin, 2026-10-10. Designed, prototyped and | +| 26 | Q26 | heading | 3058-3254 | 17936 | opening | Make the silent token classes loud, and measure the fifth slot *(archive-side; opened 2026-10-10 by the pipe, per Q7's never-dry obligation — Q25 closed at `a9f23a6` and the unclaimed executable set … | DONE — `recoveries/prose-anchor-hardening.md`, Merlin, 2026-10-10→11 (~00:20–00:24 UTC). | +| 27 | Q27 | heading | 3255-3387 | 14425 | opening | A fixture at every render site: make the token sentinel's coverage total *(archive-side; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q26 closed at `f05179e`)* | DONE 2026-10-11 — `recoveries/render-site-coverage.md` (Merlin). 32 sites: 28 covered by fixture, 4 structural exclusions; 35 fixtures, every negative writes 0 files; the scope clause closed with … | +| 28 | Q28 | heading | 3388-3572 | 15313 | opening | The channels the entry walk cannot see: state the guarantee, then cover what it cannot reach | DONE 2026-10-11 — `recoveries/render-site-channels.md` (Merlin), scratch tree | +| 29 | Q29 | heading | 3573-3746 | 19748 | opening | The guards that are not the walk: what protects a page when the value is not a token | DONE 2026-10-11 — `recoveries/render-site-guards.md` (Merlin), scratch tree `/root/crucible/q29/`. 22 fixtures plus the control, every negative or escape claim measured against the emitted byte; the … | +| 30 | Q30 | heading | 3747-3961 | 17595 | opening | The renderer's entry point: the one path no gate executes | DONE 2026-10-11 — `recoveries/helm-cli-entry-point.md` (Merlin), all four steps of the | +| 31 | Q31 | heading | 3962-4367 | 37235 | opening | The collector's entry point: the sibling path no gate has executed either | DONE at Merlin's Run 6 (2026-10-11 ≈13:19–13:35Z) — deliverable `recoveries/helm-collector-run.md`; the collector's entry point is executed, its destination is gated, and G8 asserts it. | +| 32 | Q32 | heading | 4368-4437 | 7043 | opening | The G8 two-run agreement check is nondeterministic: `age_seconds` is not scrubbed *(Helm lane; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q31's adoption is blocked behind it)* | OPEN — named to the Helm lane | +| 33 | Q33 | heading | 4438-4551 | 11472 | opening | Split the newest-file pointer out of `evidence.source_path` *(collector-side; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q32 closed at `7e12c82`)* | OPEN — named to the Helm lane. | +| 34 | Q34 | heading | 4552-4727 | 18123 | opening | Gate the pointer's null case *(collector-side gate; opened 2026-10-11 by the pipe, per Q7's never-dry obligation — Q33 closed at `8bb88da`)* | DONE 2026-10-12 — `recoveries/helm-null-gate.md` (Merlin), scratch tree `/root/crucible/q34/`. | +| 35 | Q35 | heading | 4728-4895 | 16334 | opening | The gate must refuse a subject collector that carries no destination rule *(Helm lane; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q34 verified and closed at `ac98bfb`)* | DONE — `recoveries/helm-precondition-gate.md` (8,261 B / sha256 | +| 36 | Q36 | heading | 4896-4984 | 7447 | opening | The monitor cannot see a counterparty write that carries this pipe's identity *(pipe tooling; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q20 verified and closed at `9a1de9a` and … | DONE — the rule holds, and the predicted transition arrived exactly as stated. | +| 37 | Q37 | heading | 4985-5017 | 2795 | opening | The identity rule closes one class, not the class *(pipe tooling; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q36 closed at `9584984` and the unclaimed executable set fell to … | -- | +| 38 | Q38 | heading | 5018-5134 | 11073 | opening | The behavioural destination guard *(Helm lane; opened 2026-10-12 by Merlin — Q36's candidate 2, on Alexander's direction to continue the Helm lane)* | DONE — `recoveries/helm-behavioural-guard.md` (10,232 B), Merlin, 2026-10-12T06:5x–07:1xZ, this host. | +| 39 | Q38 | heading | 5135-5150 | 6035 | cont: The | The behavioural destination guard *(Helm lane; opened 2026-10-12 by Merlin — Q36's candidate 2, on Alexander's direction to continue the Helm lane; **direction unrecorded in this repo — Testimony … | the deliverable is verified and the item is DONE, and its protective claim is FALSIFIED. It is not adoptable as it stands. | +| 40 | Q39 | heading | 5151-5203 | 8753 | opening | The Q38 guard's admission admits a writer, and its legs run the unrewritten subject *(Helm lane; opened 2026-10-12 by the pipe, per Q7's never-dry obligation — Q38 is closed and verified and its … | DONE — `recoveries/helm-destination-guard-fix.md` (12,253 B), Merlin, 2026-10-12, scratch tree `/root/crucible/q39/`. Fixed gate `9b09f328…` (1,412 lines / 77,704 B, +309/−38 against Q38's … | +| 41 | Q39 | heading | 5204-5216 | 4002 | cont: closure | closure — verified from this host by the pipe (2026-10-12, reply 22) | DONE. Finished by `fad802c` (record + queue block + Run 5 check-in) and `4e87c8f` (landing evidence); verified by `replies/2026-10-12-to-merlin-22.md` with my own harness `/root/troupe-verify/q39/inde … | +| 42 | Q40 | heading | 5217-5275 | 4156 | opening | the deployed gate admits all five negatives, and has no admission path at all *(Helm lane; opened 2026-10-12 by Merlin, discharging the Q39 closure's C26)* | DONE — `recoveries/helm-deployed-gate-admission.md` (5,633 B / sha256 | +| 43 | Q37 | heading | 5276-5596 | 33333 | cont: claimed | claimed by this pipe; first increment landed (the v1.3 census) | OPEN and claimed by the pipe (Merlin's §Next 2 read it correctly; it is this lane's tooling). Landed this tick: | +| 44 | Q41 | record | 5597-5802 | 20291 | record: BOLD-LEAD | **Q41 — the non-magazine excerpt class *and* placement** *(archive verification; opened 2026-10-12 by the pipe, | DONE 2026-10-12 — `recoveries/excerpt-placement-nonmagazine.md` (33,645 B / sha256 | +| 45 | Q42 | record | 5803-6102 | 30669 | record: BOLD-LEAD | **Q42 opened (offered to zephyrus) — and two of the pipe's own 14:02Z statements are withdrawn. 2026-10-12 14:07Z (pipe).** | -- | +| 46 | Q43 | heading | 6103-6140 | 7242 | opening | The legs run the rewritten subject: prevention, not detect-and-restore *(Helm lane; opened 2026-10-12 by Merlin, per the Q39 closure's own recommendation — "open the stronger form (the legs against a … | DONE — `recoveries/helm-leg-sandbox.md` (13,561 B), Merlin, 2026-10-12. Scratch tree `/root/crucible/q43/`; nothing deployed, no `cp` into `/root/.helm/bin/`, `decisions/` and `inbox/` untouched. | +| 47 | Q43 | heading | 6141-6161 | 5562 | cont: closure | closure — verified from this host by the pipe (2026-10-12, reply 27) | VERIFIED AND CLOSED from the pipe, 2026-10-12 18:5x–19:1xZ. | +| 48 | Q44 | heading | 6162-6418 | 42998 | 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 | +| 49 | Q46 | record | 6419-6541 | 18069 | record: BOLD-LEAD | **Q46 (Helm lane) — OPEN, offered to the Helm lane (Merlin). 2026-10-12 23:4xZ (control plane). Source is reply 29's C1, measured this tick, not a hypothesis:** a subject **that does not parse** is … | -- | +| 50 | Q47 | record | 6542-6705 | 27429 | record: BOLD-LEAD | **Q47 (Helm lane) — OPEN, offered to Merlin.** The read path: a subject the interpreter can run must neither | -- | +| 51 | Q48 | heading | 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 | +| 52 | Q49 | heading | 6826-6989 | 25133 | 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 | +| 53 | Q50 | record | 6990-7105 | 14808 | record: BOLD-LEAD | **Q50 — OPEN (pipe, 2026-10-13, unclaimed).** Give the Q39 probe spawn at `helm-selftest-q49.py:719` a rebuilt | -- | +| 54 | Q51 | record | 7106-7166 | 10082 | record: BOLD-LEAD | **Q51 — OPEN (pipe, 2026-10-13, unclaimed). Give the gate a run-wide instrument for the probe window.** | -- | +| 55 | Q52 | record | 7167-7291 | 12849 | record: BOLD-LEAD | **Q52 — OPEN (Mercury's lane, 2026-10-13). Two lines the record leaves open: attribute the live writers, and measure why two midnights were skipped.** | -- | +| 56 | Q53 | record | 7292-7593 | 29178 | record: BOLD-LEAD | **Q53 opened — the 2026-10-13 apply queue: queued, drafted, and held for Alexander *(career lane; opened | OPEN — queued and drafted; seven decisions and one rate figure are Alexander's. | +| 57 | Q45 | heading | 7594-10307 | 465282 | opening | §9 follow-on — the home-directory channel *(Helm lane; Merlin)* | -- | +| 58 | Q64 | record | 10308-10699 | 107253 | record: BOLD-LEAD | **Q64 opened — Leathermint isometric build: one design decision for Alexander, and the distance to milestone 1 *(customer-facing artifact; opened 2026-10-20 by the pipe; decision owned by Alexander … | OPEN — awaiting Alexander's zoom/whole-shop answer; build is the pipe's. | +| 59 | Q57 | heading | 10700-10732 | 8732 | opening | Bind a standup entry to the bytes it grades *(Codeforge lane; opened 2026-10-24 by the pipe, per reply 05's corrections 1 and 2)* | open and unclaimed. Opened by the pipe 2026-10-24; null's lane. | +| 60 | Q58 | heading | 10733-10778 | 5303 | opening | The lane-activity instrument reads a surface that was retired on 2026-10-16 *(Sol lane; opened 2026-10-24 by the pipe, per reply 12 to sol)* | closed at `809466f` (2026-10-26, spark in sol's lane); the closure record sits at the foot of this file. | +| 61 | Q59 | heading | 10779-10829 | 7869 | opening | beam's jump hash matches the C reference, and not one test would notice if it stopped *(beam lane; opened 2026-10-24 by the pipe, per reply 84 to zephyrus)* | open and unclaimed. Beam's lane. | +| 62 | Q60 | heading | 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. | +| 63 | Q61 | heading | 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. | +| 64 | Q62 | heading | 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. | +| 65 | Q63 | heading | 10994-11054 | 8850 | 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. | +| 66 | Q65 | record | 11055-11284 | 91094 | record: BOLD-LEAD | **Q65 — OPEN (no lane; opened 2026-10-24 by volt, on the residual Q63 measured). 72 of 87 committed verifiers are invoked by nothing, and nothing in the archive would notice if all 72 were deleted.** | -- | +| 67 | Q66 | heading | 11285-11318 | 5953 | opening | beam's `search_count` advertises overlapping occurrences and no test would notice if it stopped *(beam lane; opened 2026-10-25 by the pipe, per reply 27 to beam)* | closed at `2d6cf69` (2026-10-26, beam); the closure record sits at the foot of this file. | +| 68 | Q67 | heading | 11319-11381 | 5028 | opening | forge's probe-refactor verifier certifies a refactor that restores the defect it removes *(forge lane; opened 2026-10-25 by the pipe, per reply 20 to forge)* | open and unclaimed. | +| 69 | Q68 | heading | 11382-11456 | 12087 | opening | beam's `topo_levels` drops a one-shot `edges` iterable, silently, and its new suite both certifies a host copy and takes the lane's gate down *(beam lane; opened 2026-10-25 by the pipe, per reply 28 … | closed at `5a43291` (volt, 2026-10-25); the closure record sits at the foot of this file. | +| 70 | Q69 | heading | 11457-11489 | 9967 | opening | 116 committed files under `wizard-work/` name the absolute path `/root/troupe-standup`, so 64 gates grade the author's working tree instead of the checkout they were asked about *(no lane owns it … | open and unclaimed. | +| 71 | Q70 | heading | 11490-11503 | 3341 | opening | beam's `test_trie.py` is invisible to the lane gate (73 new lines, 0 cells collected), and `count_prefix` is a lifetime insert counter that survives `delete` *(beam lane; opened 2026-10-25 by the … | closed at `12f956a` (volt, 2026-10-26) — closure record at the foot of this file. | +| 72 | Q71 | heading | 11504-11525 | 8942 | opening | ledger's `commits-table.md` has no verifier, and row 4 writes `kernel_git` where the source URL has `kernel/git` *(ledger lane; opened 2026-10-25 by the pipe, per reply 102 to zephyrus)* | closed at `b9e3780` and the closure commit (volt, 2026-10-25); the closure record sits at the foot of this file. | +| 73 | Q72 | heading | 11526-11566 | 19068 | opening | sphinx's lcmm ledger gates its quotations but not its population or its interpretations: two mutations of mine pass the verifier at 169/169 and 139/139 *(sphinx lane; opened 2026-10-26 by the pipe … | open and unclaimed. | +| 74 | Q72 | heading | 11567-11576 | 1433 | cont: verified | verified from this host by the pipe (2026-10-26, reply 105) | -- | +| 75 | Q73 | heading | 11577-11626 | 15286 | opening | sphinx's longctx archive gates its numbers and its claim-scoped quotations, but not its prose numbers, its claim sentences, its README, or the quotations that carry no claim id *(sphinx lane; opened … | open and unclaimed. | +| 76 | Q74 | heading | 11627-11652 | 8882 | opening | sol's triage CHECK certifies the host `_triage` copy and asserts today's freshness, so it cannot gate the committed artifact *(sol lane; opened 2026-10-26 by the pipe, per the Q58 closure record … | open and unclaimed. | +| 77 | Q75 | heading | 11653-11666 | 3867 | opening | ledger's two census TSVs carry seven lines that are not rows and one path no file on disk has, and no gate in the lane can see either *(ledger lane; opened 2026-10-26 by the pipe, at `b82b023`)* | open and unclaimed. | +| 78 | Q76 | heading | 11667-11707 | 14780 | opening | beam's new median tests reach no gate, and the lane gate that would run them is red for a host path older than the commit *(beam lane; opened 2026-10-26 by the pipe, at `c3ce8dd`)* | open and unclaimed. | +| 79 | Q77 | heading | 11708-11789 | 20226 | opening | beam's segment tree lands 100 lines and the lane's count does not move, its failure path reports as an import `SystemExit` rather than a cell, and out-of-range indices are silently clamped *(beam … | open and unclaimed. | +| 80 | Q78 | heading | 11790-11839 | 4649 | opening | spark's `3d72f9d` deletes the Q63 `_check()` failure path from four verifiers and drifts five ledger rows, and the new email-validator suite imports a host path *(spark lane; opened 2026-10-26 by the … | -- | +| 81 | Q79 | heading | 11840-11899 | 5309 | opening | beam's `manifest.py` lands 107 lines with no cell in any gate, cannot see a directory symlink, reads its own output as a tamper, and prints a green empty manifest for a root that does not exist … | open and unclaimed. | +| 82 | Q79 | heading | 11900-11915 | 4890 | cont: closure | closure — manifest.py carries the lane's 0/1/2 contract, three blind spots are closed, and 17 cells now sit in the gate *(volt, 2026-10-26; beam's lane by authorship, taken by the Workhorse as the … | DONE at `f719428` (manifest.py), `25e88f8` (canonical naming), `36ce415` (test_manifest.py); this record and `docs/queue-index.md` land in the commit above it. | +| 83 | Q80 | heading | 11916-11968 | 4579 | opening | spark's `json_sha256_validator.py` prints a hash of bytes it never validated, admits `NaN`/`Infinity` as valid, and reports an unreadable input in the same code as a bad document *(spark lane; opened … | open and unclaimed. | +| 84 | Q81 | heading | 11969-12011 | 3534 | opening | spark's `hermes_profile_health.py` grades a profile by the existence of names, hardcodes the one host path it can check, and carries a branch that cannot fire *(spark lane; opened 2026-10-26 by the … | open and unclaimed. | +| 85 | Q82 | heading | 12012-12050 | 3258 | opening | beam's `test_json_canonical.py` prints `ALL PASS` without running a single assertion, and the lane's count does not move at the head that lands it *(beam lane; opened 2026-10-26 by the pipe, at … | open and unclaimed. | +| 86 | Q82 | heading | 12051-12079 | 5314 | cont: closure | closure — `test_json_canonical.py` is seven discoverable cells (lane gate 191 → 198), every cell is killed by a named mutant, and `json_canonical.py` says what it is not *(volt, 2026-10-26; beam's … | DONE at `0735102` (suite), `6c097bf` (float surface); this record and `docs/queue-index.md` land in the commit above it. | +| 87 | Q81 | heading | 12080-12122 | 9984 | cont: closure | closure — `hermes_profile_health.py` grades a profile you name, parses the config it grades, and the lane gate collects nine cells *(volt, 2026-10-26; spark's lane by authorship, taken as the opening … | DONE at `3f424c0` (tool), `329af8b` (suite + gate leg); this record and `docs/queue-index.md` land in the commit above them. | +| 88 | Q83 | heading | 12123-12142 | 3177 | opening | five branches `hermes_profile_health.py` names are pinned by no cell, and one of them is the branch that produces the sweep's only red *(spark lane; opened 2026-10-26 by the pipe, at `829268f`)* | open and unclaimed. | +| 89 | Q84 | heading | 12143-12195 | 6932 | opening | `interval_overlap.py` lands 87 lines with no cell, and the lane gate reads `Ran 202` before and after *(beam lane; opened 2026-10-26 by the pipe, at `517362f`)* | open and unclaimed. | +| 90 | Q83 | heading | 12196-12223 | 4823 | cont: closure | closure — the five unpinned `hermes_profile_health.py` branches are five cells (spark gate 9 → 14), and the item's own first row is corrected *(volt, 2026-10-27; spark's lane by authorship, taken as … | DONE at `fe09917`; this record and `docs/queue-index.md` land in the commit above it. | +| 91 | Q85 | heading | 12224-12243 | 4602 | opening | `beam/CHECK` collects only `test_*.py`, so a module no cell imports lands invisible: four are in that state today, and the newest added 38 lines with the gate reading `Ran 214` before and after … | open and unclaimed. | +| 92 | Q86 | heading | 12244-12266 | 9567 | opening | the refactor-lane harness proves silence, not absence of I/O, and its seed path is host-absolute, so a second checkout cannot re-verify the refactor *(forge lane; opened 2026-10-27 by the pipe, at … | DONE at `802a1ae`; this line and the two items appended at the end of this file (Q89, Q90) land in the commits above it. | +| 93 | Q87 | heading | 12267-12282 | 2819 | opening | the forge lane holds 34 `verify_*.py` and no `CHECK`; `tools/verify.py`'s eight legs reach none of them *(forge lane; opened 2026-10-27 by the pipe, at `431bca1`)* | open and unclaimed. | +| 94 | Q88 | heading | 12283-12299 | 2761 | opening | the census `CHECK` verifies the live `checkins/` directory and the TSV only, so a dated artifact goes red on the next check-in and stays green under a hand-edited per-wizard table *(ledger lane … | open and unclaimed. | +| 95 | Q89 | heading | 12300-12322 | 3136 | opening | the import-time-I/O detector in the three forge harnesses is a name list, so a `pathlib` read at module scope passes every check green *(forge lane; opened 2026-10-27 by the pipe, at `6e9aeee`)* | open and unclaimed. | +| 96 | Q90 | heading | 12323-12341 | 4913 | opening | beam's `find_tree_root` accepts any ancestor marker as the repo root, `portable_seed` never checks the seed exists, and the six cells that would notice reach no gate *(beam lane; opened 2026-10-27 by … | open and unclaimed. | +| 97 | Q91 | heading | 12342-12355 | 3016 | opening | forge's r41 pixel-diff verifier prints PASS when neither card writes anything, and it writes the delivery artifact *(forge lane; opened 2026-10-27 by the pipe, at `d56105a`)* | -- | +| 98 | Q92 | heading | 12356-12373 | 2908 | opening | spark's two new scripts grade the caller's working directory, and one carries dead code after `sys.exit` *(spark lane; opened 2026-10-27 by the pipe, at `d56105a`)* | -- | +| 99 | Q93 | heading | 12374-12392 | 3793 | opening | the sweep's malformed-input probe grades a phrase, so two correctly-refusing tools keep it red, and the leg's summary line says "0 fatal" while returning 1 *(no lane owns it; opened 2026-10-27 by the … | -- | +| 100 | Q94 | heading | 12393-12523 | 18995 | opening | `dsu_rollback.py`'s headline mechanism is graded by no cell, its compression cell does not grade compression, and `find`/`union` accept negative indices silently *(beam lane; opened 2026-10-27 by the … | -- | +| 101 | Q60 | heading | 12524-12531 | 2599 | cont: closure | closure — the check half runs at a named head, the self-quote collapse and the placeholder refusal are measured, and the two instrument holes it leaves are named instead of smoothed *(opened by the … | DONE at `33f8f0f` (`wizard-work/zeph/q60_enforce.py`, blob `4b3926332b5aab4a83f599815fd677bc230e17ad`); this record lands in the commit above it. | +| 102 | Q95 | heading | 12532-12543 | 2197 | opening | beam's `find_duplicate` no-duplicate guard cannot fire, and the file has no cell in any gate *(beam lane; opened 2026-10-27 by the pipe, at `f400640`)* | open and unclaimed. | +| 103 | Q96 | heading | 12544-12572 | 8752 | opening | `q60_enforce.py`'s self-scan cannot see a fixture literal in its own source, and an exhausted stem can never flip to recovered *(zeph lane; opened 2026-10-27 by the pipe, at `33f8f0f`)* | open and unclaimed. | +| 104 | Q93 | heading | 12573-12592 | 5641 | cont: closure | closure — the malformed axis grades a contract now, the two false reds are gone, and the replacement contract has a hole the prose pin did not *(opened by the pipe 2026-10-27 at `d56105a`; landed by … | DONE at `9878f12` (`tools/selftest_sweep.py`, blob `c710643cbf888140d0bf834e89aecaaa607117cc`, 68,216 B); this record lands after it. | +| 105 | Q97 | heading | 12593-12615 | 3907 | opening | a contract-graded refusal accepts an argparse usage error, so a renamed flag turns the whole malformed axis green *(no lane owns it; opened 2026-10-27 by the pipe, at `9878f12`)* | open and unclaimed. | +| 106 | Q98 | heading | 12616-12733 | 11601 | opening | seven committed test files resolve their module from a path outside the repo, and the class guard Q61 promised was never written *(no lane owns it; opened 2026-10-27 by the pipe, at `5886bdd`)* | open and unclaimed. | +| 107 | Q99 | record | 12734-12866 | 12385 | record: BOLD-LEAD | **Q99 (the pipe, 2026-10-27) — the beam lane's index carries one 218-byte filename with seven embedded newlines: `wizard-work/beam/CHECK\ncontent">\n#!/bin/bash…`, added at `a46547c`, blob `7639369` … | -- | +| 108 | Q100 | record | 12867-12893 | 4375 | record: BOLD-LEAD | **Q100 — OPEN (no lane owns it; opened 2026-10-27 by the pipe, at `3104ea2`). The Q98 guard's selector is `test_*.py`, so two tracked forge files named `_test_*.py` bind a host path and were measured … | -- | +| 109 | Q101 | record | 12894-12969 | 8386 | record: BOLD-LEAD | **Q101 — OPEN (ledger lane by authorship; opened 2026-10-27 by the pipe, at `0311989`). `wizard-work/ledger/census.py`, committed today at `4290616`, does not parse, so neither the lane gate nor the … | -- | +| 110 | Q102 | record | 12970-12994 | 4216 | record: BOLD-LEAD | **Q102 — OPEN (beam lane by authorship; opened 2026-10-27 by the pipe, at `41f4b37`). `beam/majority_element.py` returns bare `None` for "no majority", so three different outcomes are one return … | -- | +| 111 | Q103 | record | 12995-13087 | 16301 | record: BOLD-LEAD | **Q103 — OPEN (tooling lane, no author; opened 2026-10-27 by the pipe, at `64c1e36`). `tools/queue_index.py` reads ids as one or two digits, so every item from Q100 up is invisible to the queue's own … | -- | +| 112 | Q104 | record | 13088-13117 | 5990 | record: BOLD-LEAD | **Q104 — OPEN (beam lane by authorship; opened 2026-10-28 by the pipe, at `afb182a`). `beam/jsonl_validate.py` landed with a commit message claiming tests it does not have, none of the lane's gate … | -- | ## Ids with no `## ` heading @@ -112,16 +128,21 @@ Opened as records inside another section. `line` is the record's own opening lin | id | record line | first mention | refs | inside section | shape | form | |---|---|---|---|---|---|---| | Q41 | 5597 | 5597 | 28 | Q37 | BULLET+BOLD | BOLD-LEAD | -| Q42 | 5803 | 5673 | 62 | Q37 | BULLET+BOLD | BOLD-LEAD | +| Q42 | 5803 | 5673 | 62 | Q41 | BULLET+BOLD | BOLD-LEAD | | Q46 | 6419 | 6412 | 62 | Q44 | BULLET+BOLD | BOLD-LEAD | -| Q47 | 6542 | 6485 | 45 | Q44 | BULLET+BOLD | BOLD-LEAD | +| Q47 | 6542 | 6485 | 45 | Q46 | BULLET+BOLD | BOLD-LEAD | | Q50 | 6990 | 6990 | 46 | Q49 | BULLET+BOLD | BOLD-LEAD | -| Q51 | 7106 | 7106 | 37 | Q49 | BULLET+BOLD | BOLD-LEAD | -| Q52 | 7167 | 7167 | 90 | Q49 | BULLET+BOLD | BOLD-LEAD | -| Q53 | 7292 | 7246 | 168 | Q49 | BULLET+BOLD | BOLD-LEAD | +| Q51 | 7106 | 7106 | 37 | Q50 | BULLET+BOLD | BOLD-LEAD | +| Q52 | 7167 | 7167 | 90 | Q51 | BULLET+BOLD | BOLD-LEAD | +| Q53 | 7292 | 7246 | 168 | Q52 | BULLET+BOLD | BOLD-LEAD | | Q64 | 10308 | 10308 | 30 | Q45 | BULLET+BOLD | BOLD-LEAD | | Q65 | 11055 | 11047 | 48 | Q63 | BULLET+BOLD | BOLD-LEAD | | Q99 | 12734 | 9909 | 27 | Q98 | BULLET+BOLD | BOLD-LEAD | +| Q100 | 12867 | 12867 | 20 | Q99 | BULLET+BOLD | BOLD-LEAD | +| Q101 | 12894 | 12894 | 18 | Q100 | BULLET+BOLD | BOLD-LEAD | +| Q102 | 12970 | 12970 | 9 | Q101 | BULLET+BOLD | BOLD-LEAD | +| Q103 | 12995 | 12995 | 7 | Q102 | BULLET+BOLD | BOLD-LEAD | +| Q104 | 13088 | 13088 | 1 | Q103 | 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`. @@ -132,6 +153,216 @@ The block below is the parse this document renders, byte for byte. `--check` com ```json { + "blocks": [ + { + "bytes": 20291, + "end_line": 5802, + "id": "Q41", + "kind": "record", + "line": 5597, + "lines": 206, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": "DONE 2026-10-12 \u2014 `recoveries/excerpt-placement-nonmagazine.md` (33,645 B / sha256", + "status_line": 5609, + "title": "**Q41 \u2014 the non-magazine excerpt class *and* placement** *(archive verification; opened 2026-10-12 by the pipe," + }, + { + "bytes": 30669, + "end_line": 6102, + "id": "Q42", + "kind": "record", + "line": 5803, + "lines": 300, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q42 opened (offered to zephyrus) \u2014 and two of the pipe's own 14:02Z statements are withdrawn. 2026-10-12 14:07Z (pipe).**" + }, + { + "bytes": 18069, + "end_line": 6541, + "id": "Q46", + "kind": "record", + "line": 6419, + "lines": 123, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q46 (Helm lane) \u2014 OPEN, offered to the Helm lane (Merlin). 2026-10-12 23:4xZ (control plane). Source is reply 29's C1, measured this tick, not a hypothesis:** a subject **that does not parse** is \u2026" + }, + { + "bytes": 27429, + "end_line": 6705, + "id": "Q47", + "kind": "record", + "line": 6542, + "lines": 164, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q47 (Helm lane) \u2014 OPEN, offered to Merlin.** The read path: a subject the interpreter can run must neither" + }, + { + "bytes": 14808, + "end_line": 7105, + "id": "Q50", + "kind": "record", + "line": 6990, + "lines": 116, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q50 \u2014 OPEN (pipe, 2026-10-13, unclaimed).** Give the Q39 probe spawn at `helm-selftest-q49.py:719` a rebuilt" + }, + { + "bytes": 10082, + "end_line": 7166, + "id": "Q51", + "kind": "record", + "line": 7106, + "lines": 61, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q51 \u2014 OPEN (pipe, 2026-10-13, unclaimed). Give the gate a run-wide instrument for the probe window.**" + }, + { + "bytes": 12849, + "end_line": 7291, + "id": "Q52", + "kind": "record", + "line": 7167, + "lines": 125, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q52 \u2014 OPEN (Mercury's lane, 2026-10-13). Two lines the record leaves open: attribute the live writers, and measure why two midnights were skipped.**" + }, + { + "bytes": 29178, + "end_line": 7593, + "id": "Q53", + "kind": "record", + "line": 7292, + "lines": 302, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": "OPEN \u2014 queued and drafted; seven decisions and one rate figure are Alexander's.", + "status_line": 7303, + "title": "**Q53 opened \u2014 the 2026-10-13 apply queue: queued, drafted, and held for Alexander *(career lane; opened" + }, + { + "bytes": 107253, + "end_line": 10699, + "id": "Q64", + "kind": "record", + "line": 10308, + "lines": 392, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": "OPEN \u2014 awaiting Alexander's zoom/whole-shop answer; build is the pipe's.", + "status_line": 10320, + "title": "**Q64 opened \u2014 Leathermint isometric build: one design decision for Alexander, and the distance to milestone 1 *(customer-facing artifact; opened 2026-10-20 by the pipe; decision owned by Alexander \u2026" + }, + { + "bytes": 91094, + "end_line": 11284, + "id": "Q65", + "kind": "record", + "line": 11055, + "lines": 230, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q65 \u2014 OPEN (no lane; opened 2026-10-24 by volt, on the residual Q63 measured). 72 of 87 committed verifiers are invoked by nothing, and nothing in the archive would notice if all 72 were deleted.**" + }, + { + "bytes": 12385, + "end_line": 12866, + "id": "Q99", + "kind": "record", + "line": 12734, + "lines": 133, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q99 (the pipe, 2026-10-27) \u2014 the beam lane's index carries one 218-byte filename with seven embedded newlines: `wizard-work/beam/CHECK\\ncontent\">\\n#!/bin/bash\u2026`, added at `a46547c`, blob `7639369` \u2026" + }, + { + "bytes": 4375, + "end_line": 12893, + "id": "Q100", + "kind": "record", + "line": 12867, + "lines": 27, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q100 \u2014 OPEN (no lane owns it; opened 2026-10-27 by the pipe, at `3104ea2`). The Q98 guard's selector is `test_*.py`, so two tracked forge files named `_test_*.py` bind a host path and were measured \u2026" + }, + { + "bytes": 8386, + "end_line": 12969, + "id": "Q101", + "kind": "record", + "line": 12894, + "lines": 76, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q101 \u2014 OPEN (ledger lane by authorship; opened 2026-10-27 by the pipe, at `0311989`). `wizard-work/ledger/census.py`, committed today at `4290616`, does not parse, so neither the lane gate nor the \u2026" + }, + { + "bytes": 4216, + "end_line": 12994, + "id": "Q102", + "kind": "record", + "line": 12970, + "lines": 25, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q102 \u2014 OPEN (beam lane by authorship; opened 2026-10-27 by the pipe, at `41f4b37`). `beam/majority_element.py` returns bare `None` for \"no majority\", so three different outcomes are one return \u2026" + }, + { + "bytes": 16301, + "end_line": 13087, + "id": "Q103", + "kind": "record", + "line": 12995, + "lines": 93, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q103 \u2014 OPEN (tooling lane, no author; opened 2026-10-27 by the pipe, at `64c1e36`). `tools/queue_index.py` reads ids as one or two digits, so every item from Q100 up is invisible to the queue's own \u2026" + }, + { + "bytes": 5990, + "end_line": 13117, + "id": "Q104", + "kind": "record", + "line": 13088, + "lines": 30, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q104 \u2014 OPEN (beam lane by authorship; opened 2026-10-28 by the pipe, at `afb182a`). `beam/jsonl_validate.py` landed with a commit message claiming tests it does not have, none of the lane's gate \u2026" + } + ], "ids_multi_section": { "Q37": [ 4985, @@ -265,6 +496,1464 @@ The block below is the parse this document renders, byte for byte. `--check` com "Q97", "Q98" ], + "items": [ + { + "bytes": 3139, + "end_line": 54, + "id": "Q1", + "kind": "heading", + "line": 9, + "lines": 46, + "role": "opening", + "role_detail": "", + "status": "CLOSED \u2014 0/15 recovered, and every public avenue is now exhausted with receipts.", + "status_line": 42, + "title": "Recover the fifteen silent rooms *(highest value; no dependencies)*" + }, + { + "bytes": 1085, + "end_line": 72, + "id": "Q2", + "kind": "heading", + "line": 55, + "lines": 18, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 recovered.", + "status_line": 64, + "title": "Chase the one dead link" + }, + { + "bytes": 2333, + "end_line": 105, + "id": "Q3", + "kind": "heading", + "line": 73, + "lines": 33, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 both passes complete (`2ebcbe7` pass 1, `6f31cde` pass 2, zephyrus-sparkborn; material `2118b3e`).", + "status_line": 89, + "title": "Independent audit of the published ledger" + }, + { + "bytes": 2006, + "end_line": 132, + "id": "Q4", + "kind": "heading", + "line": 106, + "lines": 27, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 `recoveries/falsification-pass.md` (`f50f052`, zephyrus-sparkborn), all three verdicts re-verified", + "status_line": 115, + "title": "Falsification pass" + }, + { + "bytes": 40998, + "end_line": 453, + "id": "Q8", + "kind": "heading", + "line": 133, + "lines": 321, + "role": "opening", + "role_detail": "", + "status": "pilot CLOSED at `dcf91a1` (zephyrus-sparkborn), corrected at `9cc6879`; the full sweep is CLOSED at `f1fe38d` (2026-10-06) \u2014 91/91, 1,101 rows, verified independently from the published file. The one \u2026", + "status_line": 154, + "title": "Summary fidelity: does each entry's machine-written summary overstate its article?" + }, + { + "bytes": 2764, + "end_line": 488, + "id": "Q5", + "kind": "heading", + "line": 454, + "lines": 35, + "role": "opening", + "role_detail": "", + "status": "re-scoped 2026-09-26 (reply 08 \u00a75) after a census, because as written it invites busywork.", + "status_line": 463, + "title": "Issue triage in the organisation's public repos" + }, + { + "bytes": 8337, + "end_line": 581, + "id": "Q6", + "kind": "heading", + "line": 489, + "lines": 93, + "role": "opening", + "role_detail": "", + "status": "DONE at `8bd0b09` (Merlin, 2026-10-08T17:28:47Z) \u2014 verified from this host figure by figure;", + "status_line": 498, + "title": "A public guide to checking this archive" + }, + { + "bytes": 6898, + "end_line": 655, + "id": "Q7", + "kind": "heading", + "line": 582, + "lines": 74, + "role": "opening", + "role_detail": "", + "status": "satisfied for the 2026-09-25 cycle.", + "status_line": 587, + "title": "Propose the next items" + }, + { + "bytes": 3028, + "end_line": 692, + "id": "Q9", + "kind": "heading", + "line": 656, + "lines": 37, + "role": "opening", + "role_detail": "", + "status": "unclaimed. Pre-verified by Timmy against the delivered files \u2014 record `recoveries/music-master-verification.md`", + "status_line": 674, + "title": "Independent QC of the sovereign music candidates *(second opinion, no listening required)*" + }, + { + "bytes": 24339, + "end_line": 948, + "id": "Q10", + "kind": "heading", + "line": 693, + "lines": 256, + "role": "opening", + "role_detail": "", + "status": "COMPLETE 2026-10-10 (verified from raw sources; closure record below). Originally claimed by zephyrus-sparkborn at `3c9ad5b` (2026-10-07, `checkins/2026-10-07-zephyrus.md` \u00a73).", + "status_line": 707, + "title": "Summary fidelity for the non-magazine entries" + }, + { + "bytes": 2699, + "end_line": 984, + "id": "Q11", + "kind": "heading", + "line": 949, + "lines": 36, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 `recoveries/ledger-date-closure.md`, Merlin, 2026-10-09. 8 / 8 resolved, all", + "status_line": 962, + "title": "Close the eight pass-2 date mismatches" + }, + { + "bytes": 12049, + "end_line": 1110, + "id": "Q12", + "kind": "heading", + "line": 985, + "lines": 126, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 `recoveries/evidence-tier-audit.md`, Merlin, 2026-10-10. 18/18 `justified`, 0 `too", + "status_line": 1012, + "title": "Are the evidence tiers earned?" + }, + { + "bytes": 2788, + "end_line": 1145, + "id": "Q13", + "kind": "heading", + "line": 1111, + "lines": 35, + "role": "opening", + "role_detail": "", + "status": "1 of 8 has a decision and staged correction (`magazine-091`; reply 09 \u00a73), but its decided note carries", + "status_line": 1129, + "title": "Publish the archive-side wording fixes, one at a time" + }, + { + "bytes": 11043, + "end_line": 1264, + "id": "Q14", + "kind": "heading", + "line": 1146, + "lines": 119, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 finished by `616794c` (2026-09-26), then re-measured by a later run the same day instead of being", + "status_line": 1210, + "title": "Put the Inbox on `alexanderwhitestone.com` behind a gate" + }, + { + "bytes": 14450, + "end_line": 1395, + "id": "Q15", + "kind": "heading", + "line": 1265, + "lines": 131, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 2026-09-26 \u224819:05 UTC.", + "status_line": 1277, + "title": "Stop the monitor from waking on the pipe's own writes *(pipe; no dependencies)*" + }, + { + "bytes": 14833, + "end_line": 1552, + "id": "Q16", + "kind": "heading", + "line": 1396, + "lines": 157, + "role": "opening", + "role_detail": "", + "status": "draft v0.1 landed `f29425a` (`career-lane/ats-gate-census-draft.md`, 2026-10-01; check-in `2f83e08`);", + "status_line": 1411, + "title": "Per-platform ATS gate census *(career lane; opened 2026-10-01 by reply 21 \u00a73, drafted by zephyrus)*" + }, + { + "bytes": 8975, + "end_line": 1590, + "id": "Q17", + "kind": "heading", + "line": 1553, + "lines": 38, + "role": "opening", + "role_detail": "", + "status": null, + "status_line": null, + "title": "Employer-side AI-authorship refusal gates *(career lane; opened 2026-10-03 by reply 26, per Q7)*" + }, + { + "bytes": 50438, + "end_line": 1767, + "id": "Q18", + "kind": "heading", + "line": 1591, + "lines": 177, + "role": "opening", + "role_detail": "", + "status": null, + "status_line": null, + "title": "Employer-side lead intake must be deduped against the prepared index *(career lane; opened 2026-10-04 by reply 28, per the G2i miss)*" + }, + { + "bytes": 80477, + "end_line": 2111, + "id": "Q19", + "kind": "heading", + "line": 1768, + "lines": 344, + "role": "opening", + "role_detail": "", + "status": "RESOLVED \u2014 provisional (2026-10-06).", + "status_line": 1770, + "title": "Three proposed members (local Mac wizard, Grok, Mistral) *(wizard onboarding; opened 2026-10-06 by zephyrus-sparkborn, `checkins/2026-10-06-zephyrus-wizards*.md` + `JOIN-THE-TROUPE.md`)*" + }, + { + "bytes": 10988, + "end_line": 2232, + "id": "Q20", + "kind": "heading", + "line": 2112, + "lines": 121, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 `recoveries/excerpt-placement-audit.md` (12,914 B) and `recoveries/excerpt-placement-rows.md`", + "status_line": 2149, + "title": "Excerpt fidelity and placement for the 91 magazine entries *(archive verification; opened 2026-10-08 by the pipe, per Q7's never-dry obligation)*" + }, + { + "bytes": 12569, + "end_line": 2366, + "id": "Q21", + "kind": "heading", + "line": 2233, + "lines": 134, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed. Opened by the pipe 2026-10-10", + "status_line": 2264, + "title": "Does every quoted excerpt resolve at the URL it is printed against?" + }, + { + "bytes": 9703, + "end_line": 2476, + "id": "Q22", + "kind": "heading", + "line": 2367, + "lines": 110, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 `recoveries/named-source-liveness.md`, Merlin, 2026-10-10. 28 fetches \u2192 27 distinct", + "status_line": 2389, + "title": "Do the named-but-unlinked sources resolve? *(proposed 2026-10-10 by Merlin, per Q7; not yet opened)*" + }, + { + "bytes": 14827, + "end_line": 2620, + "id": "Q23", + "kind": "heading", + "line": 2477, + "lines": 144, + "role": "opening", + "role_detail": "", + "status": "DONE 2026-10-10 \u2014 `recoveries/named-source-liveness-unlinked.md` (Merlin), verified from the published file this tick (control plane).", + "status_line": 2532, + "title": "The prose-named sources the `@` token rule cannot see *(archive verification; opened 2026-10-10 by the pipe, per Q7's never-dry obligation)*" + }, + { + "bytes": 12679, + "end_line": 2765, + "id": "Q24", + "kind": "heading", + "line": 2621, + "lines": 145, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed. Opened by the pipe 2026-10-10", + "status_line": 2684, + "title": "The Q13 fix pack: stage every verified live-page fix as one reviewable approval *(archive-side; opened 2026-10-10 by the pipe, per Q7's never-dry obligation)*" + }, + { + "bytes": 26281, + "end_line": 3057, + "id": "Q25", + "kind": "heading", + "line": 2766, + "lines": 292, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 `recoveries/prose-anchor-convention.md`, Merlin, 2026-10-10. Designed, prototyped and", + "status_line": 2802, + "title": "A prose-anchor convention for the ledger build *(archive-side; proposed 2026-10-10 by Merlin, per Q7's never-dry obligation \u2014 Q24 closed and the unclaimed executable set fell to zero)*" + }, + { + "bytes": 17936, + "end_line": 3254, + "id": "Q26", + "kind": "heading", + "line": 3058, + "lines": 197, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 `recoveries/prose-anchor-hardening.md`, Merlin, 2026-10-10\u219211 (~00:20\u201300:24 UTC).", + "status_line": 3124, + "title": "Make the silent token classes loud, and measure the fifth slot *(archive-side; opened 2026-10-10 by the pipe, per Q7's never-dry obligation \u2014 Q25 closed at `a9f23a6` and the unclaimed executable set \u2026" + }, + { + "bytes": 14425, + "end_line": 3387, + "id": "Q27", + "kind": "heading", + "line": 3255, + "lines": 133, + "role": "opening", + "role_detail": "", + "status": "DONE 2026-10-11 \u2014 `recoveries/render-site-coverage.md` (Merlin). 32 sites: 28 covered by fixture, 4 structural exclusions; 35 fixtures, every negative writes 0 files; the scope clause closed with \u2026", + "status_line": 3310, + "title": "A fixture at every render site: make the token sentinel's coverage total *(archive-side; opened 2026-10-11 by the pipe, per Q7's never-dry obligation \u2014 Q26 closed at `f05179e`)*" + }, + { + "bytes": 15313, + "end_line": 3572, + "id": "Q28", + "kind": "heading", + "line": 3388, + "lines": 185, + "role": "opening", + "role_detail": "", + "status": "DONE 2026-10-11 \u2014 `recoveries/render-site-channels.md` (Merlin), scratch tree", + "status_line": 3468, + "title": "The channels the entry walk cannot see: state the guarantee, then cover what it cannot reach" + }, + { + "bytes": 19748, + "end_line": 3746, + "id": "Q29", + "kind": "heading", + "line": 3573, + "lines": 174, + "role": "opening", + "role_detail": "", + "status": "DONE 2026-10-11 \u2014 `recoveries/render-site-guards.md` (Merlin), scratch tree `/root/crucible/q29/`. 22 fixtures plus the control, every negative or escape claim measured against the emitted byte; the \u2026", + "status_line": 3653, + "title": "The guards that are not the walk: what protects a page when the value is not a token" + }, + { + "bytes": 17595, + "end_line": 3961, + "id": "Q30", + "kind": "heading", + "line": 3747, + "lines": 215, + "role": "opening", + "role_detail": "", + "status": "DONE 2026-10-11 \u2014 `recoveries/helm-cli-entry-point.md` (Merlin), all four steps of the", + "status_line": 3858, + "title": "The renderer's entry point: the one path no gate executes" + }, + { + "bytes": 37235, + "end_line": 4367, + "id": "Q31", + "kind": "heading", + "line": 3962, + "lines": 406, + "role": "opening", + "role_detail": "", + "status": "DONE at Merlin's Run 6 (2026-10-11 \u224813:19\u201313:35Z) \u2014 deliverable `recoveries/helm-collector-run.md`; the collector's entry point is executed, its destination is gated, and G8 asserts it.", + "status_line": 4035, + "title": "The collector's entry point: the sibling path no gate has executed either" + }, + { + "bytes": 7043, + "end_line": 4437, + "id": "Q32", + "kind": "heading", + "line": 4368, + "lines": 70, + "role": "opening", + "role_detail": "", + "status": "OPEN \u2014 named to the Helm lane", + "status_line": 4384, + "title": "The G8 two-run agreement check is nondeterministic: `age_seconds` is not scrubbed *(Helm lane; opened 2026-10-11 by the pipe, per Q7's never-dry obligation \u2014 Q31's adoption is blocked behind it)*" + }, + { + "bytes": 11472, + "end_line": 4551, + "id": "Q33", + "kind": "heading", + "line": 4438, + "lines": 114, + "role": "opening", + "role_detail": "", + "status": "OPEN \u2014 named to the Helm lane.", + "status_line": 4454, + "title": "Split the newest-file pointer out of `evidence.source_path` *(collector-side; opened 2026-10-11 by the pipe, per Q7's never-dry obligation \u2014 Q32 closed at `7e12c82`)*" + }, + { + "bytes": 18123, + "end_line": 4727, + "id": "Q34", + "kind": "heading", + "line": 4552, + "lines": 176, + "role": "opening", + "role_detail": "", + "status": "DONE 2026-10-12 \u2014 `recoveries/helm-null-gate.md` (Merlin), scratch tree `/root/crucible/q34/`.", + "status_line": 4568, + "title": "Gate the pointer's null case *(collector-side gate; opened 2026-10-11 by the pipe, per Q7's never-dry obligation \u2014 Q33 closed at `8bb88da`)*" + }, + { + "bytes": 16334, + "end_line": 4895, + "id": "Q35", + "kind": "heading", + "line": 4728, + "lines": 168, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 `recoveries/helm-precondition-gate.md` (8,261 B / sha256", + "status_line": 4751, + "title": "The gate must refuse a subject collector that carries no destination rule *(Helm lane; opened 2026-10-12 by the pipe, per Q7's never-dry obligation \u2014 Q34 verified and closed at `ac98bfb`)*" + }, + { + "bytes": 7447, + "end_line": 4984, + "id": "Q36", + "kind": "heading", + "line": 4896, + "lines": 89, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 the rule holds, and the predicted transition arrived exactly as stated.", + "status_line": 4945, + "title": "The monitor cannot see a counterparty write that carries this pipe's identity *(pipe tooling; opened 2026-10-12 by the pipe, per Q7's never-dry obligation \u2014 Q20 verified and closed at `9a1de9a` and \u2026" + }, + { + "bytes": 2795, + "end_line": 5017, + "id": "Q37", + "kind": "heading", + "line": 4985, + "lines": 33, + "role": "opening", + "role_detail": "", + "status": null, + "status_line": null, + "title": "The identity rule closes one class, not the class *(pipe tooling; opened 2026-10-12 by the pipe, per Q7's never-dry obligation \u2014 Q36 closed at `9584984` and the unclaimed executable set fell to \u2026" + }, + { + "bytes": 11073, + "end_line": 5134, + "id": "Q38", + "kind": "heading", + "line": 5018, + "lines": 117, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 `recoveries/helm-behavioural-guard.md` (10,232 B), Merlin, 2026-10-12T06:5x\u201307:1xZ, this host.", + "status_line": 5036, + "title": "The behavioural destination guard *(Helm lane; opened 2026-10-12 by Merlin \u2014 Q36's candidate 2, on Alexander's direction to continue the Helm lane)*" + }, + { + "bytes": 6035, + "end_line": 5150, + "id": "Q38", + "kind": "heading", + "line": 5135, + "lines": 16, + "role": "continuation", + "role_detail": "The", + "status": "the deliverable is verified and the item is DONE, and its protective claim is FALSIFIED. It is not adoptable as it stands.", + "status_line": 5137, + "title": "The behavioural destination guard *(Helm lane; opened 2026-10-12 by Merlin \u2014 Q36's candidate 2, on Alexander's direction to continue the Helm lane; **direction unrecorded in this repo \u2014 Testimony \u2026" + }, + { + "bytes": 8753, + "end_line": 5203, + "id": "Q39", + "kind": "heading", + "line": 5151, + "lines": 53, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 `recoveries/helm-destination-guard-fix.md` (12,253 B), Merlin, 2026-10-12, scratch tree `/root/crucible/q39/`. Fixed gate `9b09f328\u2026` (1,412 lines / 77,704 B, +309/\u221238 against Q38's \u2026", + "status_line": 5159, + "title": "The Q38 guard's admission admits a writer, and its legs run the unrewritten subject *(Helm lane; opened 2026-10-12 by the pipe, per Q7's never-dry obligation \u2014 Q38 is closed and verified and its \u2026" + }, + { + "bytes": 4002, + "end_line": 5216, + "id": "Q39", + "kind": "heading", + "line": 5204, + "lines": 13, + "role": "continuation", + "role_detail": "closure", + "status": "DONE. Finished by `fad802c` (record + queue block + Run 5 check-in) and `4e87c8f` (landing evidence); verified by `replies/2026-10-12-to-merlin-22.md` with my own harness `/root/troupe-verify/q39/inde \u2026", + "status_line": 5206, + "title": "closure \u2014 verified from this host by the pipe (2026-10-12, reply 22)" + }, + { + "bytes": 4156, + "end_line": 5275, + "id": "Q40", + "kind": "heading", + "line": 5217, + "lines": 59, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 `recoveries/helm-deployed-gate-admission.md` (5,633 B / sha256", + "status_line": 5230, + "title": "the deployed gate admits all five negatives, and has no admission path at all *(Helm lane; opened 2026-10-12 by Merlin, discharging the Q39 closure's C26)*" + }, + { + "bytes": 33333, + "end_line": 5596, + "id": "Q37", + "kind": "heading", + "line": 5276, + "lines": 321, + "role": "continuation", + "role_detail": "claimed", + "status": "OPEN and claimed by the pipe (Merlin's \u00a7Next 2 read it correctly; it is this lane's tooling). Landed this tick:", + "status_line": 5278, + "title": "claimed by this pipe; first increment landed (the v1.3 census)" + }, + { + "bytes": 20291, + "end_line": 5802, + "id": "Q41", + "kind": "record", + "line": 5597, + "lines": 206, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": "DONE 2026-10-12 \u2014 `recoveries/excerpt-placement-nonmagazine.md` (33,645 B / sha256", + "status_line": 5609, + "title": "**Q41 \u2014 the non-magazine excerpt class *and* placement** *(archive verification; opened 2026-10-12 by the pipe," + }, + { + "bytes": 30669, + "end_line": 6102, + "id": "Q42", + "kind": "record", + "line": 5803, + "lines": 300, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q42 opened (offered to zephyrus) \u2014 and two of the pipe's own 14:02Z statements are withdrawn. 2026-10-12 14:07Z (pipe).**" + }, + { + "bytes": 7242, + "end_line": 6140, + "id": "Q43", + "kind": "heading", + "line": 6103, + "lines": 38, + "role": "opening", + "role_detail": "", + "status": "DONE \u2014 `recoveries/helm-leg-sandbox.md` (13,561 B), Merlin, 2026-10-12. Scratch tree `/root/crucible/q43/`; nothing deployed, no `cp` into `/root/.helm/bin/`, `decisions/` and `inbox/` untouched.", + "status_line": 6125, + "title": "The legs run the rewritten subject: prevention, not detect-and-restore *(Helm lane; opened 2026-10-12 by Merlin, per the Q39 closure's own recommendation \u2014 \"open the stronger form (the legs against a \u2026" + }, + { + "bytes": 5562, + "end_line": 6161, + "id": "Q43", + "kind": "heading", + "line": 6141, + "lines": 21, + "role": "continuation", + "role_detail": "closure", + "status": "VERIFIED AND CLOSED from the pipe, 2026-10-12 18:5x\u201319:1xZ.", + "status_line": 6143, + "title": "closure \u2014 verified from this host by the pipe (2026-10-12, reply 27)" + }, + { + "bytes": 42998, + "end_line": 6418, + "id": "Q44", + "kind": "heading", + "line": 6162, + "lines": 257, + "role": "opening", + "role_detail": "", + "status": "DONE 2026-10-12 \u2014 `recoveries/helm-root-redirect.md` (Merlin, Helm lane); the closure block is at the foot", + "status_line": 6184, + "title": "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 \u2014 \"extend the redirect \u2026" + }, + { + "bytes": 18069, + "end_line": 6541, + "id": "Q46", + "kind": "record", + "line": 6419, + "lines": 123, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q46 (Helm lane) \u2014 OPEN, offered to the Helm lane (Merlin). 2026-10-12 23:4xZ (control plane). Source is reply 29's C1, measured this tick, not a hypothesis:** a subject **that does not parse** is \u2026" + }, + { + "bytes": 27429, + "end_line": 6705, + "id": "Q47", + "kind": "record", + "line": 6542, + "lines": 164, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q47 (Helm lane) \u2014 OPEN, offered to Merlin.** The read path: a subject the interpreter can run must neither" + }, + { + "bytes": 15123, + "end_line": 6825, + "id": "Q48", + "kind": "heading", + "line": 6706, + "lines": 120, + "role": "opening", + "role_detail": "", + "status": "DONE 2026-10-13 \u2014 `recoveries/helm-runtime-redirect.md` (Merlin, Helm lane), scratch tree", + "status_line": 6718, + "title": "The runtime-resolution redirect: close the class Q45's literals cannot see" + }, + { + "bytes": 25133, + "end_line": 6989, + "id": "Q49", + "kind": "heading", + "line": 6826, + "lines": 164, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed. Opened by the pipe 2026-10-13", + "status_line": 6847, + "title": "The runtime-resolved root's live write path: name it, reproduce it, then close it" + }, + { + "bytes": 14808, + "end_line": 7105, + "id": "Q50", + "kind": "record", + "line": 6990, + "lines": 116, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q50 \u2014 OPEN (pipe, 2026-10-13, unclaimed).** Give the Q39 probe spawn at `helm-selftest-q49.py:719` a rebuilt" + }, + { + "bytes": 10082, + "end_line": 7166, + "id": "Q51", + "kind": "record", + "line": 7106, + "lines": 61, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q51 \u2014 OPEN (pipe, 2026-10-13, unclaimed). Give the gate a run-wide instrument for the probe window.**" + }, + { + "bytes": 12849, + "end_line": 7291, + "id": "Q52", + "kind": "record", + "line": 7167, + "lines": 125, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q52 \u2014 OPEN (Mercury's lane, 2026-10-13). Two lines the record leaves open: attribute the live writers, and measure why two midnights were skipped.**" + }, + { + "bytes": 29178, + "end_line": 7593, + "id": "Q53", + "kind": "record", + "line": 7292, + "lines": 302, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": "OPEN \u2014 queued and drafted; seven decisions and one rate figure are Alexander's.", + "status_line": 7303, + "title": "**Q53 opened \u2014 the 2026-10-13 apply queue: queued, drafted, and held for Alexander *(career lane; opened" + }, + { + "bytes": 465282, + "end_line": 10307, + "id": "Q45", + "kind": "heading", + "line": 7594, + "lines": 2714, + "role": "opening", + "role_detail": "", + "status": null, + "status_line": null, + "title": "\u00a79 follow-on \u2014 the home-directory channel *(Helm lane; Merlin)*" + }, + { + "bytes": 107253, + "end_line": 10699, + "id": "Q64", + "kind": "record", + "line": 10308, + "lines": 392, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": "OPEN \u2014 awaiting Alexander's zoom/whole-shop answer; build is the pipe's.", + "status_line": 10320, + "title": "**Q64 opened \u2014 Leathermint isometric build: one design decision for Alexander, and the distance to milestone 1 *(customer-facing artifact; opened 2026-10-20 by the pipe; decision owned by Alexander \u2026" + }, + { + "bytes": 8732, + "end_line": 10732, + "id": "Q57", + "kind": "heading", + "line": 10700, + "lines": 33, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed. Opened by the pipe 2026-10-24; null's lane.", + "status_line": 10704, + "title": "Bind a standup entry to the bytes it grades *(Codeforge lane; opened 2026-10-24 by the pipe, per reply 05's corrections 1 and 2)*" + }, + { + "bytes": 5303, + "end_line": 10778, + "id": "Q58", + "kind": "heading", + "line": 10733, + "lines": 46, + "role": "opening", + "role_detail": "", + "status": "closed at `809466f` (2026-10-26, spark in sol's lane); the closure record sits at the foot of this file.", + "status_line": 10752, + "title": "The lane-activity instrument reads a surface that was retired on 2026-10-16 *(Sol lane; opened 2026-10-24 by the pipe, per reply 12 to sol)*" + }, + { + "bytes": 7869, + "end_line": 10829, + "id": "Q59", + "kind": "heading", + "line": 10779, + "lines": 51, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed. Beam's lane.", + "status_line": 10799, + "title": "beam's jump hash matches the C reference, and not one test would notice if it stopped *(beam lane; opened 2026-10-24 by the pipe, per reply 84 to zephyrus)*" + }, + { + "bytes": 9719, + "end_line": 10889, + "id": "Q60", + "kind": "heading", + "line": 10830, + "lines": 60, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 10850, + "title": "Every truncated identifier in the archive: which ones can still be checked *(pipe tooling; opened 2026-10-24 by the pipe, per reply 86 \u00a76 and reply 87 \u00a71)*" + }, + { + "bytes": 9624, + "end_line": 10945, + "id": "Q61", + "kind": "heading", + "line": 10890, + "lines": 56, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 10911, + "title": "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)*" + }, + { + "bytes": 3717, + "end_line": 10993, + "id": "Q62", + "kind": "heading", + "line": 10946, + "lines": 48, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 10974, + "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": 8850, + "end_line": 11054, + "id": "Q63", + "kind": "heading", + "line": 10994, + "lines": 61, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 11016, + "title": "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)*" + }, + { + "bytes": 91094, + "end_line": 11284, + "id": "Q65", + "kind": "record", + "line": 11055, + "lines": 230, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q65 \u2014 OPEN (no lane; opened 2026-10-24 by volt, on the residual Q63 measured). 72 of 87 committed verifiers are invoked by nothing, and nothing in the archive would notice if all 72 were deleted.**" + }, + { + "bytes": 5953, + "end_line": 11318, + "id": "Q66", + "kind": "heading", + "line": 11285, + "lines": 34, + "role": "opening", + "role_detail": "", + "status": "closed at `2d6cf69` (2026-10-26, beam); the closure record sits at the foot of this file.", + "status_line": 11302, + "title": "beam's `search_count` advertises overlapping occurrences and no test would notice if it stopped *(beam lane; opened 2026-10-25 by the pipe, per reply 27 to beam)*" + }, + { + "bytes": 5028, + "end_line": 11381, + "id": "Q67", + "kind": "heading", + "line": 11319, + "lines": 63, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 11357, + "title": "forge's probe-refactor verifier certifies a refactor that restores the defect it removes *(forge lane; opened 2026-10-25 by the pipe, per reply 20 to forge)*" + }, + { + "bytes": 12087, + "end_line": 11456, + "id": "Q68", + "kind": "heading", + "line": 11382, + "lines": 75, + "role": "opening", + "role_detail": "", + "status": "closed at `5a43291` (volt, 2026-10-25); the closure record sits at the foot of this file.", + "status_line": 11426, + "title": "beam's `topo_levels` drops a one-shot `edges` iterable, silently, and its new suite both certifies a host copy and takes the lane's gate down *(beam lane; opened 2026-10-25 by the pipe, per reply 28 \u2026" + }, + { + "bytes": 9967, + "end_line": 11489, + "id": "Q69", + "kind": "heading", + "line": 11457, + "lines": 33, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 11470, + "title": "116 committed files under `wizard-work/` name the absolute path `/root/troupe-standup`, so 64 gates grade the author's working tree instead of the checkout they were asked about *(no lane owns it \u2026" + }, + { + "bytes": 3341, + "end_line": 11503, + "id": "Q70", + "kind": "heading", + "line": 11490, + "lines": 14, + "role": "opening", + "role_detail": "", + "status": "closed at `12f956a` (volt, 2026-10-26) \u2014 closure record at the foot of this file.", + "status_line": 11502, + "title": "beam's `test_trie.py` is invisible to the lane gate (73 new lines, 0 cells collected), and `count_prefix` is a lifetime insert counter that survives `delete` *(beam lane; opened 2026-10-25 by the \u2026" + }, + { + "bytes": 8942, + "end_line": 11525, + "id": "Q71", + "kind": "heading", + "line": 11504, + "lines": 22, + "role": "opening", + "role_detail": "", + "status": "closed at `b9e3780` and the closure commit (volt, 2026-10-25); the closure record sits at the foot of this file.", + "status_line": 11514, + "title": "ledger's `commits-table.md` has no verifier, and row 4 writes `kernel_git` where the source URL has `kernel/git` *(ledger lane; opened 2026-10-25 by the pipe, per reply 102 to zephyrus)*" + }, + { + "bytes": 19068, + "end_line": 11566, + "id": "Q72", + "kind": "heading", + "line": 11526, + "lines": 41, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 11537, + "title": "sphinx's lcmm ledger gates its quotations but not its population or its interpretations: two mutations of mine pass the verifier at 169/169 and 139/139 *(sphinx lane; opened 2026-10-26 by the pipe \u2026" + }, + { + "bytes": 1433, + "end_line": 11576, + "id": "Q72", + "kind": "heading", + "line": 11567, + "lines": 10, + "role": "continuation", + "role_detail": "verified", + "status": null, + "status_line": null, + "title": "verified from this host by the pipe (2026-10-26, reply 105)" + }, + { + "bytes": 15286, + "end_line": 11626, + "id": "Q73", + "kind": "heading", + "line": 11577, + "lines": 50, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 11592, + "title": "sphinx's longctx archive gates its numbers and its claim-scoped quotations, but not its prose numbers, its claim sentences, its README, or the quotations that carry no claim id *(sphinx lane; opened \u2026" + }, + { + "bytes": 8882, + "end_line": 11652, + "id": "Q74", + "kind": "heading", + "line": 11627, + "lines": 26, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 11633, + "title": "sol's triage CHECK certifies the host `_triage` copy and asserts today's freshness, so it cannot gate the committed artifact *(sol lane; opened 2026-10-26 by the pipe, per the Q58 closure record \u2026" + }, + { + "bytes": 3867, + "end_line": 11666, + "id": "Q75", + "kind": "heading", + "line": 11653, + "lines": 14, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 11663, + "title": "ledger's two census TSVs carry seven lines that are not rows and one path no file on disk has, and no gate in the lane can see either *(ledger lane; opened 2026-10-26 by the pipe, at `b82b023`)*" + }, + { + "bytes": 14780, + "end_line": 11707, + "id": "Q76", + "kind": "heading", + "line": 11667, + "lines": 41, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 11677, + "title": "beam's new median tests reach no gate, and the lane gate that would run them is red for a host path older than the commit *(beam lane; opened 2026-10-26 by the pipe, at `c3ce8dd`)*" + }, + { + "bytes": 20226, + "end_line": 11789, + "id": "Q77", + "kind": "heading", + "line": 11708, + "lines": 82, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 11740, + "title": "beam's segment tree lands 100 lines and the lane's count does not move, its failure path reports as an import `SystemExit` rather than a cell, and out-of-range indices are silently clamped *(beam \u2026" + }, + { + "bytes": 4649, + "end_line": 11839, + "id": "Q78", + "kind": "heading", + "line": 11790, + "lines": 50, + "role": "opening", + "role_detail": "", + "status": null, + "status_line": null, + "title": "spark's `3d72f9d` deletes the Q63 `_check()` failure path from four verifiers and drifts five ledger rows, and the new email-validator suite imports a host path *(spark lane; opened 2026-10-26 by the \u2026" + }, + { + "bytes": 5309, + "end_line": 11899, + "id": "Q79", + "kind": "heading", + "line": 11840, + "lines": 60, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 11892, + "title": "beam's `manifest.py` lands 107 lines with no cell in any gate, cannot see a directory symlink, reads its own output as a tamper, and prints a green empty manifest for a root that does not exist \u2026" + }, + { + "bytes": 4890, + "end_line": 11915, + "id": "Q79", + "kind": "heading", + "line": 11900, + "lines": 16, + "role": "continuation", + "role_detail": "closure", + "status": "DONE at `f719428` (manifest.py), `25e88f8` (canonical naming), `36ce415` (test_manifest.py); this record and `docs/queue-index.md` land in the commit above it.", + "status_line": 11902, + "title": "closure \u2014 manifest.py carries the lane's 0/1/2 contract, three blind spots are closed, and 17 cells now sit in the gate *(volt, 2026-10-26; beam's lane by authorship, taken by the Workhorse as the \u2026" + }, + { + "bytes": 4579, + "end_line": 11968, + "id": "Q80", + "kind": "heading", + "line": 11916, + "lines": 53, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 11962, + "title": "spark's `json_sha256_validator.py` prints a hash of bytes it never validated, admits `NaN`/`Infinity` as valid, and reports an unreadable input in the same code as a bad document *(spark lane; opened \u2026" + }, + { + "bytes": 3534, + "end_line": 12011, + "id": "Q81", + "kind": "heading", + "line": 11969, + "lines": 43, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 12006, + "title": "spark's `hermes_profile_health.py` grades a profile by the existence of names, hardcodes the one host path it can check, and carries a branch that cannot fire *(spark lane; opened 2026-10-26 by the \u2026" + }, + { + "bytes": 3258, + "end_line": 12050, + "id": "Q82", + "kind": "heading", + "line": 12012, + "lines": 39, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 12045, + "title": "beam's `test_json_canonical.py` prints `ALL PASS` without running a single assertion, and the lane's count does not move at the head that lands it *(beam lane; opened 2026-10-26 by the pipe, at \u2026" + }, + { + "bytes": 5314, + "end_line": 12079, + "id": "Q82", + "kind": "heading", + "line": 12051, + "lines": 29, + "role": "continuation", + "role_detail": "closure", + "status": "DONE at `0735102` (suite), `6c097bf` (float surface); this record and `docs/queue-index.md` land in the commit above it.", + "status_line": 12053, + "title": "closure \u2014 `test_json_canonical.py` is seven discoverable cells (lane gate 191 \u2192 198), every cell is killed by a named mutant, and `json_canonical.py` says what it is not *(volt, 2026-10-26; beam's \u2026" + }, + { + "bytes": 9984, + "end_line": 12122, + "id": "Q81", + "kind": "heading", + "line": 12080, + "lines": 43, + "role": "continuation", + "role_detail": "closure", + "status": "DONE at `3f424c0` (tool), `329af8b` (suite + gate leg); this record and `docs/queue-index.md` land in the commit above them.", + "status_line": 12082, + "title": "closure \u2014 `hermes_profile_health.py` grades a profile you name, parses the config it grades, and the lane gate collects nine cells *(volt, 2026-10-26; spark's lane by authorship, taken as the opening \u2026" + }, + { + "bytes": 3177, + "end_line": 12142, + "id": "Q83", + "kind": "heading", + "line": 12123, + "lines": 20, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 12139, + "title": "five branches `hermes_profile_health.py` names are pinned by no cell, and one of them is the branch that produces the sweep's only red *(spark lane; opened 2026-10-26 by the pipe, at `829268f`)*" + }, + { + "bytes": 6932, + "end_line": 12195, + "id": "Q84", + "kind": "heading", + "line": 12143, + "lines": 53, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 12179, + "title": "`interval_overlap.py` lands 87 lines with no cell, and the lane gate reads `Ran 202` before and after *(beam lane; opened 2026-10-26 by the pipe, at `517362f`)*" + }, + { + "bytes": 4823, + "end_line": 12223, + "id": "Q83", + "kind": "heading", + "line": 12196, + "lines": 28, + "role": "continuation", + "role_detail": "closure", + "status": "DONE at `fe09917`; this record and `docs/queue-index.md` land in the commit above it.", + "status_line": 12198, + "title": "closure \u2014 the five unpinned `hermes_profile_health.py` branches are five cells (spark gate 9 \u2192 14), and the item's own first row is corrected *(volt, 2026-10-27; spark's lane by authorship, taken as \u2026" + }, + { + "bytes": 4602, + "end_line": 12243, + "id": "Q85", + "kind": "heading", + "line": 12224, + "lines": 20, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 12234, + "title": "`beam/CHECK` collects only `test_*.py`, so a module no cell imports lands invisible: four are in that state today, and the newest added 38 lines with the gate reading `Ran 214` before and after \u2026" + }, + { + "bytes": 9567, + "end_line": 12266, + "id": "Q86", + "kind": "heading", + "line": 12244, + "lines": 23, + "role": "opening", + "role_detail": "", + "status": "DONE at `802a1ae`; this line and the two items appended at the end of this file (Q89, Q90) land in the commits above it.", + "status_line": 12261, + "title": "the refactor-lane harness proves silence, not absence of I/O, and its seed path is host-absolute, so a second checkout cannot re-verify the refactor *(forge lane; opened 2026-10-27 by the pipe, at \u2026" + }, + { + "bytes": 2819, + "end_line": 12282, + "id": "Q87", + "kind": "heading", + "line": 12267, + "lines": 16, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 12275, + "title": "the forge lane holds 34 `verify_*.py` and no `CHECK`; `tools/verify.py`'s eight legs reach none of them *(forge lane; opened 2026-10-27 by the pipe, at `431bca1`)*" + }, + { + "bytes": 2761, + "end_line": 12299, + "id": "Q88", + "kind": "heading", + "line": 12283, + "lines": 17, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 12294, + "title": "the census `CHECK` verifies the live `checkins/` directory and the TSV only, so a dated artifact goes red on the next check-in and stays green under a hand-edited per-wizard table *(ledger lane \u2026" + }, + { + "bytes": 3136, + "end_line": 12322, + "id": "Q89", + "kind": "heading", + "line": 12300, + "lines": 23, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 12315, + "title": "the import-time-I/O detector in the three forge harnesses is a name list, so a `pathlib` read at module scope passes every check green *(forge lane; opened 2026-10-27 by the pipe, at `6e9aeee`)*" + }, + { + "bytes": 4913, + "end_line": 12341, + "id": "Q90", + "kind": "heading", + "line": 12323, + "lines": 19, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 12337, + "title": "beam's `find_tree_root` accepts any ancestor marker as the repo root, `portable_seed` never checks the seed exists, and the six cells that would notice reach no gate *(beam lane; opened 2026-10-27 by \u2026" + }, + { + "bytes": 3016, + "end_line": 12355, + "id": "Q91", + "kind": "heading", + "line": 12342, + "lines": 14, + "role": "opening", + "role_detail": "", + "status": null, + "status_line": null, + "title": "forge's r41 pixel-diff verifier prints PASS when neither card writes anything, and it writes the delivery artifact *(forge lane; opened 2026-10-27 by the pipe, at `d56105a`)*" + }, + { + "bytes": 2908, + "end_line": 12373, + "id": "Q92", + "kind": "heading", + "line": 12356, + "lines": 18, + "role": "opening", + "role_detail": "", + "status": null, + "status_line": null, + "title": "spark's two new scripts grade the caller's working directory, and one carries dead code after `sys.exit` *(spark lane; opened 2026-10-27 by the pipe, at `d56105a`)*" + }, + { + "bytes": 3793, + "end_line": 12392, + "id": "Q93", + "kind": "heading", + "line": 12374, + "lines": 19, + "role": "opening", + "role_detail": "", + "status": null, + "status_line": null, + "title": "the sweep's malformed-input probe grades a phrase, so two correctly-refusing tools keep it red, and the leg's summary line says \"0 fatal\" while returning 1 *(no lane owns it; opened 2026-10-27 by the \u2026" + }, + { + "bytes": 18995, + "end_line": 12523, + "id": "Q94", + "kind": "heading", + "line": 12393, + "lines": 131, + "role": "opening", + "role_detail": "", + "status": null, + "status_line": null, + "title": "`dsu_rollback.py`'s headline mechanism is graded by no cell, its compression cell does not grade compression, and `find`/`union` accept negative indices silently *(beam lane; opened 2026-10-27 by the \u2026" + }, + { + "bytes": 2599, + "end_line": 12531, + "id": "Q60", + "kind": "heading", + "line": 12524, + "lines": 8, + "role": "continuation", + "role_detail": "closure", + "status": "DONE at `33f8f0f` (`wizard-work/zeph/q60_enforce.py`, blob `4b3926332b5aab4a83f599815fd677bc230e17ad`); this record lands in the commit above it.", + "status_line": 12526, + "title": "closure \u2014 the check half runs at a named head, the self-quote collapse and the placeholder refusal are measured, and the two instrument holes it leaves are named instead of smoothed *(opened by the \u2026" + }, + { + "bytes": 2197, + "end_line": 12543, + "id": "Q95", + "kind": "heading", + "line": 12532, + "lines": 12, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 12538, + "title": "beam's `find_duplicate` no-duplicate guard cannot fire, and the file has no cell in any gate *(beam lane; opened 2026-10-27 by the pipe, at `f400640`)*" + }, + { + "bytes": 8752, + "end_line": 12572, + "id": "Q96", + "kind": "heading", + "line": 12544, + "lines": 29, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 12551, + "title": "`q60_enforce.py`'s self-scan cannot see a fixture literal in its own source, and an exhausted stem can never flip to recovered *(zeph lane; opened 2026-10-27 by the pipe, at `33f8f0f`)*" + }, + { + "bytes": 5641, + "end_line": 12592, + "id": "Q93", + "kind": "heading", + "line": 12573, + "lines": 20, + "role": "continuation", + "role_detail": "closure", + "status": "DONE at `9878f12` (`tools/selftest_sweep.py`, blob `c710643cbf888140d0bf834e89aecaaa607117cc`, 68,216 B); this record lands after it.", + "status_line": 12575, + "title": "closure \u2014 the malformed axis grades a contract now, the two false reds are gone, and the replacement contract has a hole the prose pin did not *(opened by the pipe 2026-10-27 at `d56105a`; landed by \u2026" + }, + { + "bytes": 3907, + "end_line": 12615, + "id": "Q97", + "kind": "heading", + "line": 12593, + "lines": 23, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 12595, + "title": "a contract-graded refusal accepts an argparse usage error, so a renamed flag turns the whole malformed axis green *(no lane owns it; opened 2026-10-27 by the pipe, at `9878f12`)*" + }, + { + "bytes": 11601, + "end_line": 12733, + "id": "Q98", + "kind": "heading", + "line": 12616, + "lines": 118, + "role": "opening", + "role_detail": "", + "status": "open and unclaimed.", + "status_line": 12618, + "title": "seven committed test files resolve their module from a path outside the repo, and the class guard Q61 promised was never written *(no lane owns it; opened 2026-10-27 by the pipe, at `5886bdd`)*" + }, + { + "bytes": 12385, + "end_line": 12866, + "id": "Q99", + "kind": "record", + "line": 12734, + "lines": 133, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q99 (the pipe, 2026-10-27) \u2014 the beam lane's index carries one 218-byte filename with seven embedded newlines: `wizard-work/beam/CHECK\\ncontent\">\\n#!/bin/bash\u2026`, added at `a46547c`, blob `7639369` \u2026" + }, + { + "bytes": 4375, + "end_line": 12893, + "id": "Q100", + "kind": "record", + "line": 12867, + "lines": 27, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q100 \u2014 OPEN (no lane owns it; opened 2026-10-27 by the pipe, at `3104ea2`). The Q98 guard's selector is `test_*.py`, so two tracked forge files named `_test_*.py` bind a host path and were measured \u2026" + }, + { + "bytes": 8386, + "end_line": 12969, + "id": "Q101", + "kind": "record", + "line": 12894, + "lines": 76, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q101 \u2014 OPEN (ledger lane by authorship; opened 2026-10-27 by the pipe, at `0311989`). `wizard-work/ledger/census.py`, committed today at `4290616`, does not parse, so neither the lane gate nor the \u2026" + }, + { + "bytes": 4216, + "end_line": 12994, + "id": "Q102", + "kind": "record", + "line": 12970, + "lines": 25, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q102 \u2014 OPEN (beam lane by authorship; opened 2026-10-27 by the pipe, at `41f4b37`). `beam/majority_element.py` returns bare `None` for \"no majority\", so three different outcomes are one return \u2026" + }, + { + "bytes": 16301, + "end_line": 13087, + "id": "Q103", + "kind": "record", + "line": 12995, + "lines": 93, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q103 \u2014 OPEN (tooling lane, no author; opened 2026-10-27 by the pipe, at `64c1e36`). `tools/queue_index.py` reads ids as one or two digits, so every item from Q100 up is invisible to the queue's own \u2026" + }, + { + "bytes": 5990, + "end_line": 13117, + "id": "Q104", + "kind": "record", + "line": 13088, + "lines": 30, + "role": "record", + "role_detail": "BOLD-LEAD", + "status": null, + "status_line": null, + "title": "**Q104 \u2014 OPEN (beam lane by authorship; opened 2026-10-28 by the pipe, at `afb182a`). `beam/jsonl_validate.py` landed with a commit message claiming tests it does not have, none of the lane's gate \u2026" + } + ], "nested": [ { "first_mention": 5597, @@ -281,7 +1970,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "id": "Q42", "line": 5803, "refs": 62, - "section": "Q37", + "section": "Q41", "shape": "BULLET+BOLD" }, { @@ -299,7 +1988,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "id": "Q47", "line": 6542, "refs": 45, - "section": "Q44", + "section": "Q46", "shape": "BULLET+BOLD" }, { @@ -317,7 +2006,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "id": "Q51", "line": 7106, "refs": 37, - "section": "Q49", + "section": "Q50", "shape": "BULLET+BOLD" }, { @@ -326,7 +2015,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "id": "Q52", "line": 7167, "refs": 90, - "section": "Q49", + "section": "Q51", "shape": "BULLET+BOLD" }, { @@ -335,7 +2024,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "id": "Q53", "line": 7292, "refs": 168, - "section": "Q49", + "section": "Q52", "shape": "BULLET+BOLD" }, { @@ -364,6 +2053,51 @@ The block below is the parse this document renders, byte for byte. `--check` com "refs": 27, "section": "Q98", "shape": "BULLET+BOLD" + }, + { + "first_mention": 12867, + "form": "BOLD-LEAD", + "id": "Q100", + "line": 12867, + "refs": 20, + "section": "Q99", + "shape": "BULLET+BOLD" + }, + { + "first_mention": 12894, + "form": "BOLD-LEAD", + "id": "Q101", + "line": 12894, + "refs": 18, + "section": "Q100", + "shape": "BULLET+BOLD" + }, + { + "first_mention": 12970, + "form": "BOLD-LEAD", + "id": "Q102", + "line": 12970, + "refs": 9, + "section": "Q101", + "shape": "BULLET+BOLD" + }, + { + "first_mention": 12995, + "form": "BOLD-LEAD", + "id": "Q103", + "line": 12995, + "refs": 7, + "section": "Q102", + "shape": "BULLET+BOLD" + }, + { + "first_mention": 13088, + "form": "BOLD-LEAD", + "id": "Q104", + "line": 13088, + "refs": 1, + "section": "Q103", + "shape": "BULLET+BOLD" } ], "preamble": { @@ -371,14 +2105,15 @@ The block below is the parse this document renders, byte for byte. `--check` com "end_line": 8, "line": 1 }, - "queue_bytes": 1931877, - "queue_lines": 13084, - "queue_sha256": "fe84c6b3dfa08ca7ec0367c753f60d4e9ac08bafebd67fd94b2a6f0e80fddb92", + "queue_bytes": 1937873, + "queue_lines": 13117, + "queue_sha256": "b3cd4169898148a777656cfd13f2b807266a220d66c95f99c83903eabbc5a612", "sections": [ { "bytes": 3139, "end_line": 54, "id": "Q1", + "kind": "heading", "line": 9, "lines": 46, "role": "opening", @@ -391,6 +2126,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 1085, "end_line": 72, "id": "Q2", + "kind": "heading", "line": 55, "lines": 18, "role": "opening", @@ -403,6 +2139,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 2333, "end_line": 105, "id": "Q3", + "kind": "heading", "line": 73, "lines": 33, "role": "opening", @@ -415,6 +2152,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 2006, "end_line": 132, "id": "Q4", + "kind": "heading", "line": 106, "lines": 27, "role": "opening", @@ -427,6 +2165,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 40998, "end_line": 453, "id": "Q8", + "kind": "heading", "line": 133, "lines": 321, "role": "opening", @@ -439,6 +2178,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 2764, "end_line": 488, "id": "Q5", + "kind": "heading", "line": 454, "lines": 35, "role": "opening", @@ -451,6 +2191,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 8337, "end_line": 581, "id": "Q6", + "kind": "heading", "line": 489, "lines": 93, "role": "opening", @@ -463,6 +2204,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 6898, "end_line": 655, "id": "Q7", + "kind": "heading", "line": 582, "lines": 74, "role": "opening", @@ -475,6 +2217,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 3028, "end_line": 692, "id": "Q9", + "kind": "heading", "line": 656, "lines": 37, "role": "opening", @@ -487,6 +2230,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 24339, "end_line": 948, "id": "Q10", + "kind": "heading", "line": 693, "lines": 256, "role": "opening", @@ -499,6 +2243,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 2699, "end_line": 984, "id": "Q11", + "kind": "heading", "line": 949, "lines": 36, "role": "opening", @@ -511,6 +2256,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 12049, "end_line": 1110, "id": "Q12", + "kind": "heading", "line": 985, "lines": 126, "role": "opening", @@ -523,6 +2269,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 2788, "end_line": 1145, "id": "Q13", + "kind": "heading", "line": 1111, "lines": 35, "role": "opening", @@ -535,6 +2282,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 11043, "end_line": 1264, "id": "Q14", + "kind": "heading", "line": 1146, "lines": 119, "role": "opening", @@ -547,6 +2295,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 14450, "end_line": 1395, "id": "Q15", + "kind": "heading", "line": 1265, "lines": 131, "role": "opening", @@ -559,6 +2308,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 14833, "end_line": 1552, "id": "Q16", + "kind": "heading", "line": 1396, "lines": 157, "role": "opening", @@ -571,6 +2321,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 8975, "end_line": 1590, "id": "Q17", + "kind": "heading", "line": 1553, "lines": 38, "role": "opening", @@ -583,6 +2334,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 50438, "end_line": 1767, "id": "Q18", + "kind": "heading", "line": 1591, "lines": 177, "role": "opening", @@ -595,6 +2347,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 80477, "end_line": 2111, "id": "Q19", + "kind": "heading", "line": 1768, "lines": 344, "role": "opening", @@ -607,6 +2360,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 10988, "end_line": 2232, "id": "Q20", + "kind": "heading", "line": 2112, "lines": 121, "role": "opening", @@ -619,6 +2373,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 12569, "end_line": 2366, "id": "Q21", + "kind": "heading", "line": 2233, "lines": 134, "role": "opening", @@ -631,6 +2386,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 9703, "end_line": 2476, "id": "Q22", + "kind": "heading", "line": 2367, "lines": 110, "role": "opening", @@ -643,6 +2399,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 14827, "end_line": 2620, "id": "Q23", + "kind": "heading", "line": 2477, "lines": 144, "role": "opening", @@ -655,6 +2412,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 12679, "end_line": 2765, "id": "Q24", + "kind": "heading", "line": 2621, "lines": 145, "role": "opening", @@ -667,6 +2425,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 26281, "end_line": 3057, "id": "Q25", + "kind": "heading", "line": 2766, "lines": 292, "role": "opening", @@ -679,6 +2438,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 17936, "end_line": 3254, "id": "Q26", + "kind": "heading", "line": 3058, "lines": 197, "role": "opening", @@ -691,6 +2451,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 14425, "end_line": 3387, "id": "Q27", + "kind": "heading", "line": 3255, "lines": 133, "role": "opening", @@ -703,6 +2464,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 15313, "end_line": 3572, "id": "Q28", + "kind": "heading", "line": 3388, "lines": 185, "role": "opening", @@ -715,6 +2477,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 19748, "end_line": 3746, "id": "Q29", + "kind": "heading", "line": 3573, "lines": 174, "role": "opening", @@ -727,6 +2490,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 17595, "end_line": 3961, "id": "Q30", + "kind": "heading", "line": 3747, "lines": 215, "role": "opening", @@ -739,6 +2503,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 37235, "end_line": 4367, "id": "Q31", + "kind": "heading", "line": 3962, "lines": 406, "role": "opening", @@ -751,6 +2516,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 7043, "end_line": 4437, "id": "Q32", + "kind": "heading", "line": 4368, "lines": 70, "role": "opening", @@ -763,6 +2529,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 11472, "end_line": 4551, "id": "Q33", + "kind": "heading", "line": 4438, "lines": 114, "role": "opening", @@ -775,6 +2542,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 18123, "end_line": 4727, "id": "Q34", + "kind": "heading", "line": 4552, "lines": 176, "role": "opening", @@ -787,6 +2555,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 16334, "end_line": 4895, "id": "Q35", + "kind": "heading", "line": 4728, "lines": 168, "role": "opening", @@ -799,6 +2568,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 7447, "end_line": 4984, "id": "Q36", + "kind": "heading", "line": 4896, "lines": 89, "role": "opening", @@ -811,6 +2581,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 2795, "end_line": 5017, "id": "Q37", + "kind": "heading", "line": 4985, "lines": 33, "role": "opening", @@ -823,6 +2594,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 11073, "end_line": 5134, "id": "Q38", + "kind": "heading", "line": 5018, "lines": 117, "role": "opening", @@ -835,6 +2607,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 6035, "end_line": 5150, "id": "Q38", + "kind": "heading", "line": 5135, "lines": 16, "role": "continuation", @@ -847,6 +2620,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 8753, "end_line": 5203, "id": "Q39", + "kind": "heading", "line": 5151, "lines": 53, "role": "opening", @@ -859,6 +2633,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 4002, "end_line": 5216, "id": "Q39", + "kind": "heading", "line": 5204, "lines": 13, "role": "continuation", @@ -871,6 +2646,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 4156, "end_line": 5275, "id": "Q40", + "kind": "heading", "line": 5217, "lines": 59, "role": "opening", @@ -880,11 +2656,12 @@ The block below is the parse this document renders, byte for byte. `--check` com "title": "the deployed gate admits all five negatives, and has no admission path at all *(Helm lane; opened 2026-10-12 by Merlin, discharging the Q39 closure's C26)*" }, { - "bytes": 84293, - "end_line": 6102, + "bytes": 33333, + "end_line": 5596, "id": "Q37", + "kind": "heading", "line": 5276, - "lines": 827, + "lines": 321, "role": "continuation", "role_detail": "claimed", "status": "OPEN and claimed by the pipe (Merlin's \u00a7Next 2 read it correctly; it is this lane's tooling). Landed this tick:", @@ -895,6 +2672,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 7242, "end_line": 6140, "id": "Q43", + "kind": "heading", "line": 6103, "lines": 38, "role": "opening", @@ -907,6 +2685,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 5562, "end_line": 6161, "id": "Q43", + "kind": "heading", "line": 6141, "lines": 21, "role": "continuation", @@ -916,11 +2695,12 @@ The block below is the parse this document renders, byte for byte. `--check` com "title": "closure \u2014 verified from this host by the pipe (2026-10-12, reply 27)" }, { - "bytes": 88496, - "end_line": 6705, + "bytes": 42998, + "end_line": 6418, "id": "Q44", + "kind": "heading", "line": 6162, - "lines": 544, + "lines": 257, "role": "opening", "role_detail": "", "status": "DONE 2026-10-12 \u2014 `recoveries/helm-root-redirect.md` (Merlin, Helm lane); the closure block is at the foot", @@ -931,6 +2711,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 15123, "end_line": 6825, "id": "Q48", + "kind": "heading", "line": 6706, "lines": 120, "role": "opening", @@ -940,11 +2721,12 @@ The block below is the parse this document renders, byte for byte. `--check` com "title": "The runtime-resolution redirect: close the class Q45's literals cannot see" }, { - "bytes": 92050, - "end_line": 7593, + "bytes": 25133, + "end_line": 6989, "id": "Q49", + "kind": "heading", "line": 6826, - "lines": 768, + "lines": 164, "role": "opening", "role_detail": "", "status": "open and unclaimed. Opened by the pipe 2026-10-13", @@ -952,21 +2734,23 @@ 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" }, { - "bytes": 572535, - "end_line": 10699, + "bytes": 465282, + "end_line": 10307, "id": "Q45", + "kind": "heading", "line": 7594, - "lines": 3106, + "lines": 2714, "role": "opening", "role_detail": "", - "status": "OPEN \u2014 awaiting Alexander's zoom/whole-shop answer; build is the pipe's.", - "status_line": 10320, + "status": null, + "status_line": null, "title": "\u00a79 follow-on \u2014 the home-directory channel *(Helm lane; Merlin)*" }, { "bytes": 8732, "end_line": 10732, "id": "Q57", + "kind": "heading", "line": 10700, "lines": 33, "role": "opening", @@ -979,6 +2763,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 5303, "end_line": 10778, "id": "Q58", + "kind": "heading", "line": 10733, "lines": 46, "role": "opening", @@ -991,6 +2776,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 7869, "end_line": 10829, "id": "Q59", + "kind": "heading", "line": 10779, "lines": 51, "role": "opening", @@ -1003,6 +2789,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 9719, "end_line": 10889, "id": "Q60", + "kind": "heading", "line": 10830, "lines": 60, "role": "opening", @@ -1015,6 +2802,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 9624, "end_line": 10945, "id": "Q61", + "kind": "heading", "line": 10890, "lines": 56, "role": "opening", @@ -1027,6 +2815,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 3717, "end_line": 10993, "id": "Q62", + "kind": "heading", "line": 10946, "lines": 48, "role": "opening", @@ -1036,11 +2825,12 @@ 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": 99944, - "end_line": 11284, + "bytes": 8850, + "end_line": 11054, "id": "Q63", + "kind": "heading", "line": 10994, - "lines": 291, + "lines": 61, "role": "opening", "role_detail": "", "status": "open and unclaimed.", @@ -1051,6 +2841,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 5953, "end_line": 11318, "id": "Q66", + "kind": "heading", "line": 11285, "lines": 34, "role": "opening", @@ -1063,6 +2854,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 5028, "end_line": 11381, "id": "Q67", + "kind": "heading", "line": 11319, "lines": 63, "role": "opening", @@ -1075,6 +2867,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 12087, "end_line": 11456, "id": "Q68", + "kind": "heading", "line": 11382, "lines": 75, "role": "opening", @@ -1087,6 +2880,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 9967, "end_line": 11489, "id": "Q69", + "kind": "heading", "line": 11457, "lines": 33, "role": "opening", @@ -1099,6 +2893,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 3341, "end_line": 11503, "id": "Q70", + "kind": "heading", "line": 11490, "lines": 14, "role": "opening", @@ -1111,6 +2906,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 8942, "end_line": 11525, "id": "Q71", + "kind": "heading", "line": 11504, "lines": 22, "role": "opening", @@ -1123,6 +2919,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 19068, "end_line": 11566, "id": "Q72", + "kind": "heading", "line": 11526, "lines": 41, "role": "opening", @@ -1135,6 +2932,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 1433, "end_line": 11576, "id": "Q72", + "kind": "heading", "line": 11567, "lines": 10, "role": "continuation", @@ -1147,6 +2945,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 15286, "end_line": 11626, "id": "Q73", + "kind": "heading", "line": 11577, "lines": 50, "role": "opening", @@ -1159,6 +2958,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 8882, "end_line": 11652, "id": "Q74", + "kind": "heading", "line": 11627, "lines": 26, "role": "opening", @@ -1171,6 +2971,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 3867, "end_line": 11666, "id": "Q75", + "kind": "heading", "line": 11653, "lines": 14, "role": "opening", @@ -1183,6 +2984,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 14780, "end_line": 11707, "id": "Q76", + "kind": "heading", "line": 11667, "lines": 41, "role": "opening", @@ -1195,6 +2997,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 20226, "end_line": 11789, "id": "Q77", + "kind": "heading", "line": 11708, "lines": 82, "role": "opening", @@ -1207,6 +3010,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 4649, "end_line": 11839, "id": "Q78", + "kind": "heading", "line": 11790, "lines": 50, "role": "opening", @@ -1219,6 +3023,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 5309, "end_line": 11899, "id": "Q79", + "kind": "heading", "line": 11840, "lines": 60, "role": "opening", @@ -1231,6 +3036,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 4890, "end_line": 11915, "id": "Q79", + "kind": "heading", "line": 11900, "lines": 16, "role": "continuation", @@ -1243,6 +3049,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 4579, "end_line": 11968, "id": "Q80", + "kind": "heading", "line": 11916, "lines": 53, "role": "opening", @@ -1255,6 +3062,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 3534, "end_line": 12011, "id": "Q81", + "kind": "heading", "line": 11969, "lines": 43, "role": "opening", @@ -1267,6 +3075,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 3258, "end_line": 12050, "id": "Q82", + "kind": "heading", "line": 12012, "lines": 39, "role": "opening", @@ -1279,6 +3088,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 5314, "end_line": 12079, "id": "Q82", + "kind": "heading", "line": 12051, "lines": 29, "role": "continuation", @@ -1291,6 +3101,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 9984, "end_line": 12122, "id": "Q81", + "kind": "heading", "line": 12080, "lines": 43, "role": "continuation", @@ -1303,6 +3114,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 3177, "end_line": 12142, "id": "Q83", + "kind": "heading", "line": 12123, "lines": 20, "role": "opening", @@ -1315,6 +3127,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 6932, "end_line": 12195, "id": "Q84", + "kind": "heading", "line": 12143, "lines": 53, "role": "opening", @@ -1327,6 +3140,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 4823, "end_line": 12223, "id": "Q83", + "kind": "heading", "line": 12196, "lines": 28, "role": "continuation", @@ -1339,6 +3153,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 4602, "end_line": 12243, "id": "Q85", + "kind": "heading", "line": 12224, "lines": 20, "role": "opening", @@ -1351,6 +3166,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 9567, "end_line": 12266, "id": "Q86", + "kind": "heading", "line": 12244, "lines": 23, "role": "opening", @@ -1363,6 +3179,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 2819, "end_line": 12282, "id": "Q87", + "kind": "heading", "line": 12267, "lines": 16, "role": "opening", @@ -1375,6 +3192,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 2761, "end_line": 12299, "id": "Q88", + "kind": "heading", "line": 12283, "lines": 17, "role": "opening", @@ -1387,6 +3205,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 3136, "end_line": 12322, "id": "Q89", + "kind": "heading", "line": 12300, "lines": 23, "role": "opening", @@ -1399,6 +3218,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 4913, "end_line": 12341, "id": "Q90", + "kind": "heading", "line": 12323, "lines": 19, "role": "opening", @@ -1411,6 +3231,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 3016, "end_line": 12355, "id": "Q91", + "kind": "heading", "line": 12342, "lines": 14, "role": "opening", @@ -1423,6 +3244,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 2908, "end_line": 12373, "id": "Q92", + "kind": "heading", "line": 12356, "lines": 18, "role": "opening", @@ -1435,6 +3257,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 3793, "end_line": 12392, "id": "Q93", + "kind": "heading", "line": 12374, "lines": 19, "role": "opening", @@ -1447,6 +3270,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 18995, "end_line": 12523, "id": "Q94", + "kind": "heading", "line": 12393, "lines": 131, "role": "opening", @@ -1459,6 +3283,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 2599, "end_line": 12531, "id": "Q60", + "kind": "heading", "line": 12524, "lines": 8, "role": "continuation", @@ -1471,6 +3296,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 2197, "end_line": 12543, "id": "Q95", + "kind": "heading", "line": 12532, "lines": 12, "role": "opening", @@ -1483,6 +3309,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 8752, "end_line": 12572, "id": "Q96", + "kind": "heading", "line": 12544, "lines": 29, "role": "opening", @@ -1495,6 +3322,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 5641, "end_line": 12592, "id": "Q93", + "kind": "heading", "line": 12573, "lines": 20, "role": "continuation", @@ -1507,6 +3335,7 @@ The block below is the parse this document renders, byte for byte. `--check` com "bytes": 3907, "end_line": 12615, "id": "Q97", + "kind": "heading", "line": 12593, "lines": 23, "role": "opening", @@ -1516,11 +3345,12 @@ The block below is the parse this document renders, byte for byte. `--check` com "title": "a contract-graded refusal accepts an argparse usage error, so a renamed flag turns the whole malformed axis green *(no lane owns it; opened 2026-10-27 by the pipe, at `9878f12`)*" }, { - "bytes": 57258, - "end_line": 13084, + "bytes": 11601, + "end_line": 12733, "id": "Q98", + "kind": "heading", "line": 12616, - "lines": 469, + "lines": 118, "role": "opening", "role_detail": "", "status": "open and unclaimed.", diff --git a/tools/queue_index.py b/tools/queue_index.py index 7dbdfec..968ed35 100644 --- a/tools/queue_index.py +++ b/tools/queue_index.py @@ -28,7 +28,22 @@ WHY THIS EXISTS line and the form that admitted the id, so the difference is visible instead of implied. -WHAT IT MEASURES -- structural facts only, one row per `## ` section + An id is `Q` and one or more digits, no width (Q103, 2026-10-27). The pattern + read `Q` plus one or two digits, so from Q100 up an id was not a section and + not even a token: a + `## Q100 -- ...` heading parsed as body text of the section before it and that + section's byte count absorbed the whole tail behind it. Three-digit ids are now + sections, tokens and record ids alike, with no ceiling restored at three digits + -- a fixed width is the defect, so a three-digit ceiling would only postpone it. + The trailing word boundary is what stops `Q100` matching inside `Q1000`. + + TIER TWO HAS BOUNDS NOW (Q103). A `**Qnn -- ...**` record that opens an id with + no heading of its own is an item too: its block runs from the record line to + the line before the next item opens, so `Q98`'s row stopped carrying the 40,957 + bytes of `Q100`-`Q103` and each of those ids has a row and an extent. + +WHAT IT MEASURES -- structural facts only, one row per item -- a `## ` section, + or (Q103) a record block that opens an id with no heading of its own id, line, end_line, role, title, lines, bytes, first `Status:` marker. role=opening the first section carrying that id role=continuation a later section for an id already seen (a closure or @@ -94,7 +109,7 @@ USAGE python3 tools/queue_index.py --json out.json python3 tools/queue_index.py --write docs/queue-index.md python3 tools/queue_index.py --check docs/queue-index.md - python3 tools/queue_index.py --selftest # fixture corpus, 58 cells + python3 tools/queue_index.py --selftest # fixture corpus, 73 cells Re-run `--write` after any append to the queue. The document carries the queue's sha256, so a stale copy is a RED check, never a silent lie. @@ -114,8 +129,16 @@ DOC_PATH = "docs/queue-index.md" BEGIN = "" END = "" -HEADING = re.compile(r"^##\s+(Q\d{1,2})\b(.*)$") -ID_TOKEN = re.compile(r"\bQ\d{1,2}\b") +# THE ID CLASS (Q103, 2026-10-27). An id is `Q` and one or more digits -- no +# width. It was `\d{1,2}`, so from Q100 up an item was not a section and not even +# a token: `## Q100 -- ...` parsed as body text of whatever section preceded it +# and the eight-figure byte count of a whole tail accrued to its neighbour. The +# trailing `\b` is load-bearing in the other direction: without it `Q100` is a +# prefix-match inside `Q1000` and `Q1000` would be indexed as the item Q100. +# A width ceiling is deliberately NOT restored: `\d{1,3}` reproduces this exact +# defect one digit later, which is the shape of the bug, not a fix for it. +HEADING = re.compile(r"^##\s+(Q\d+)\b(.*)$") +ID_TOKEN = re.compile(r"\bQ\d+\b") STATUS = re.compile(r"^\s*\*{0,2}Status:\s*(.*)$") FENCE = re.compile(r"^(```|~~~)") @@ -214,7 +237,17 @@ def fence_mask(lines): def parse(text): - """Return the structural parse: sections, nested ids, id map, byte accounting.""" + """Return the structural parse: items, nested ids, id map, byte accounting. + + An *item* is a heading section OR a record block (Q103, 2026-10-27). An id + opened by a record -- `**Q100 -- OPEN ...**` inside somebody else's section -- + is an item with its own extent, from its record line to the line before the + next item opens, instead of being counted as prose inside its neighbour. The + two tiers are one table here and `kind` says which: before this, a record + opening an id with no heading handed its bytes to the section around it (Q98's + row carried 40,957 bytes of four later items) and an id from Q100 up was not + even a token. + """ lines, trailing_newline = split_lines(text) n = len(lines) sizes = [line_bytes(ln, i == n - 1, trailing_newline) for i, ln in enumerate(lines)] @@ -227,43 +260,7 @@ def parse(text): m = HEADING.match(ln) if m: headings.append((i, m.group(1), m.group(2).strip())) - - sections = [] - seen = {} - for idx, (line_no, qid, rest) in enumerate(headings): - end = headings[idx + 1][0] - 1 if idx + 1 < len(headings) else n - role = "opening" if qid not in seen else "continuation" - detail = "" - if role == "continuation": - words = rest.lstrip("—- ").split() - detail = words[0].strip("*(") if words else "" - seen.setdefault(qid, line_no) - body = lines[line_no:end] - status = None - status_line = None - for off, ln in enumerate(body, start=line_no + 1): - m = STATUS.match(ln) - if m: - status = status_value(m.group(1)) or None - status_line = off - break - title = rest.lstrip("—- ").strip() - sections.append({ - "id": qid, - "line": line_no, - "end_line": end, - "role": role, - "role_detail": detail, - "title": clip(title, 200), - "lines": end - line_no + 1, - "bytes": sum(sizes[line_no - 1:end]), - "status": clip(status, 200) if status else None, - "status_line": status_line, - }) - - ids: dict = {} - for s in sections: - ids.setdefault(s["id"], []).append(s["line"]) + heading_ids = {h[1] for h in headings} # every id token in the queue, counted as a mention, plus the first line that # opens it as a record. Fenced lines are skipped: an id in a code block is @@ -290,20 +287,73 @@ def parse(text): if form: hit["record"] = i hit["form"] = form - nested = [] - for qid in sorted(mentioned, key=lambda s: int(s[1:])): - if qid in ids: - continue - rec = mentioned[qid] - if rec["record"] is None: - continue # a mention, not a record -- not an item - line_no = rec["record"] + + # tier two: ids opened by a record and owning no heading of their own + records = [(mentioned[qid]["record"], qid, mentioned[qid]["form"]) + for qid in sorted(mentioned, key=lambda s: int(s[1:])) + if qid not in heading_ids and mentioned[qid]["record"] is not None] + + # Every item opens somewhere and owns the lines up to the next opening: a + # heading, or a record that opens an id with no heading. Nothing else cuts a + # section, so a bold *mention* inside a section does not split it. + boundaries = sorted({h[0] for h in headings} | {r[0] for r in records}) + + def end_of(line_no): + nxt = [b for b in boundaries if b > line_no] + return (nxt[0] - 1) if nxt else n + + items = [] + seen = {} + for line_no, qid, rest in headings: + role = "opening" if qid not in seen else "continuation" + detail = "" + if role == "continuation": + words = rest.lstrip("—- ").split() + detail = words[0].strip("*(") if words else "" + seen.setdefault(qid, line_no) + items.append({"id": qid, "line": line_no, "kind": "heading", "role": role, + "role_detail": detail, "title": clip(rest.lstrip("—- ").strip(), 200)}) + for line_no, qid, form in records: raw = lines[line_no - 1] - owner = None - for s in sections: - if s["line"] <= line_no <= s["end_line"]: - owner = s["id"] + items.append({"id": qid, "line": line_no, "kind": "record", "role": "record", + "role_detail": form, + "title": clip(BULLET.sub("", raw).strip(), 200)}) + items.sort(key=lambda it: it["line"]) + + for it in items: + end = end_of(it["line"]) + status = None + status_line = None + for off, ln in enumerate(lines[it["line"]:end], start=it["line"] + 1): + m = STATUS.match(ln) + if m: + status = status_value(m.group(1)) or None + status_line = off break + it["end_line"] = end + it["lines"] = end - it["line"] + 1 + it["bytes"] = sum(sizes[it["line"] - 1:end]) + it["status"] = clip(status, 200) if status else None + it["status_line"] = status_line + + sections = [it for it in items if it["kind"] == "heading"] + blocks = [it for it in items if it["kind"] == "record"] + + ids: dict = {} + for s in sections: + ids.setdefault(s["id"], []).append(s["line"]) + + # `nested` carries what a bounds row cannot: the record's form, how often the + # id is named, the first line that names it at all, and the item that opens + # before it (its parent). A block is the same id with bounds; both are + # reported because a reader needs the line and the shape. + nested = [] + for it in blocks: + qid = it["id"] + rec = mentioned[qid] + idx = [k for k, cand in enumerate(items) if cand["line"] == it["line"]][0] + owner = items[idx - 1]["id"] if idx else None + raw = lines[it["line"] - 1] stripped = raw.lstrip() if stripped.startswith("#"): shape = "HEADING" @@ -315,7 +365,7 @@ def parse(text): shape = "PLAIN" if shape not in ("HEADING", "BOLD") and "**" in raw: shape += "+BOLD" - nested.append({"id": qid, "line": line_no, "section": owner, "shape": shape, + nested.append({"id": qid, "line": it["line"], "section": owner, "shape": shape, "refs": rec["refs"], "form": rec["form"], "first_mention": rec["line"]}) @@ -327,7 +377,9 @@ def parse(text): "queue_sha256": hashlib.sha256(text.encode("utf-8")).hexdigest(), "preamble": {"line": 1, "end_line": preamble_end, "bytes": sum(sizes[:preamble_end])}, + "items": items, "sections": sections, + "blocks": blocks, "ids_with_section": sorted(ids, key=lambda s: int(s[1:])), "ids_multi_section": {k: v for k, v in sorted( ids.items(), key=lambda kv: int(kv[0][1:])) if len(v) > 1}, @@ -379,11 +431,13 @@ def outside_ids(repo, queue_path, exclude=(), exclude_tools=True): def summary(payload): secs = payload["sections"] + blocks = payload.get("blocks", []) cont = [s for s in secs if s["role"] == "continuation"] - return ("index: %d sections, %d ids, %d continuation sections, %d nested ids, " - "%d lines / %d bytes" % (len(secs), len(payload["ids_with_section"]), - len(cont), len(payload["nested"]), - payload["queue_lines"], payload["queue_bytes"])) + return ("index: %d items (%d sections, %d record blocks), %d ids, " + "%d continuation sections, %d nested ids, %d lines / %d bytes" + % (len(payload["items"]), len(secs), len(blocks), + len(payload["ids_with_section"]), len(cont), len(payload["nested"]), + payload["queue_lines"], payload["queue_bytes"])) def clip(text, limit): @@ -403,17 +457,24 @@ def nested_prose(nested): with IndexError -- leaving a zero-byte document and rc 1, the code that means "graded a fault" -- on any queue whose ids all carry headings (a fresh queue, a fixture, a partial extract). Found 2026-10-18 by the fixture in - `tools/queue_append_audit.py --selftest`. The non-empty branch reproduces - the previous sentence byte for byte, so the real document's render did not - move and `--check` stayed green across the fix. + `tools/queue_append_audit.py --selftest`. The non-empty branch reproduced + that fix's sentence byte for byte so the render did not move. + + Q103 (2026-10-27): the sentence used to open "A further **N ids**", which + double-counted -- the clause before it already said those N ids are items + with rows and extents, so the paragraph read as 2N. The ids in `blocks` and + the ids in `nested` are the same set now that a record block is an item (16 + and 16 in this tree, set-equal); the sentence says so instead of implying a + second population, and the table below is described as the second view of + the same ids it is. """ if not nested: return (" No id is opened as a record without a heading of its own, so the " "table below is empty.") - return (" A further **%d ids have no heading " - "at all** and are opened as records nested inside another item's section -- so " - "grepping `^## %s` finds nothing while %s is a live item the file names %d times. " - "Those are listed in their own table below." + return (" The same **%d 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 `^## %s` finds nothing while %s is a live item the " + "file names %d times." % (len(nested), nested[0]["id"], nested[0]["id"], nested[0]["refs"])) @@ -426,24 +487,35 @@ def build_doc(payload): "goes RED when this document and `WORK-QUEUE.md` disagree, which is what an " "append to the queue produces. Regenerate, commit, move on.*") lines.append("") - lines.append("**What this is.** One row per `## ` section of `WORK-QUEUE.md`: its line " + lines.append("**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. " - "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.") + "An item is a `## ` section, or a record that opens an id with no heading " + "of its own (`kind` says which, and such an id'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.") lines.append("") lines.append("**What it exposes.** The queue is two-tier. %d sections carry %d ids because " - "%d ids own a second, continuation section.%s" + "%d ids own a second, continuation section; %d further ids are opened by a " + "record and own no heading at all, and they have rows and extents here.%s" % (len(payload["sections"]), len(payload["ids_with_section"]), - len(payload["ids_multi_section"]), nested_prose(payload["nested"]))) + len(payload["ids_multi_section"]), len(payload.get("blocks", [])), + nested_prose(payload["nested"]))) lines.append("") - lines.append("| # | id | lines | bytes | role | title | first `Status:` |") - lines.append("|---|---|---|---|---|---|---|") - for i, s in enumerate(payload["sections"], 1): + lines.append("| # | id | kind | lines | bytes | role | title | first `Status:` |") + lines.append("|---|---|---|---|---|---|---|---|") + for i, s in enumerate(payload["items"], 1): status = (s["status"] or "--").replace("|", "\\|") title = s["title"].replace("|", "\\|") - role = s["role"] if s["role"] == "opening" else "cont: %s" % (s["role_detail"] or "?") - lines.append("| %d | %s | %d-%d | %d | %s | %s | %s |" - % (i, s["id"], s["line"], s["end_line"], s["bytes"], role, title, status)) + if s["role"] == "opening": + role = "opening" + elif s["role"] == "record": + role = "record: %s" % (s["role_detail"] or "?") + else: + role = "cont: %s" % (s["role_detail"] or "?") + lines.append("| %d | %s | %s | %d-%d | %d | %s | %s | %s |" + % (i, s["id"], s["kind"], s["line"], s["end_line"], s["bytes"], + role, title, status)) lines.append("") lines.append("## Ids with no `## ` heading") lines.append("") @@ -496,22 +568,36 @@ def extract_pinned(text): def delta(pinned, fresh): """A short, specific account of how a pinned parse and a fresh one differ.""" out = [] - p_sec = {(s["id"], s["line"]): s for s in pinned.get("sections", [])} - f_sec = {(s["id"], s["line"]): s for s in fresh.get("sections", [])} - added = [k for k in f_sec if k not in p_sec] - removed = [k for k in p_sec if k not in f_sec] - moved = [k for k in f_sec if k in p_sec and - (f_sec[k]["end_line"], f_sec[k]["bytes"], f_sec[k]["status"]) - != (p_sec[k]["end_line"], p_sec[k]["bytes"], p_sec[k]["status"])] - if added: - out.append("%d new section(s): %s" % (len(added), ", ".join("%s@%d" % k for k in added))) - if removed: - out.append("%d gone section(s): %s" % (len(removed), ", ".join("%s@%d" % k for k in removed))) + p_it = {(s["id"], s["line"]): s for s in pinned.get("items", pinned.get("sections", []))} + f_it = {(s["id"], s["line"]): s for s in fresh.get("items", [])} + added = [k for k in f_it if k not in p_it] + removed = [k for k in p_it if k not in f_it] + moved = [k for k in f_it if k in p_it and + (f_it[k]["end_line"], f_it[k]["bytes"], f_it[k]["status"]) + != (p_it[k]["end_line"], p_it[k]["bytes"], p_it[k]["status"])] + # Q103: an item is a heading section or a record block, and the account names + # which -- a block that moved is not reported as a section. + def kind_of(table, key): + return table[key].get("kind", "heading") + add_h = [k for k in added if kind_of(f_it, k) == "heading"] + add_b = [k for k in added if kind_of(f_it, k) != "heading"] + if add_h: + out.append("%d new section(s): %s" % (len(add_h), ", ".join("%s@%d" % k for k in add_h))) + if add_b: + out.append("%d new record block(s): %s" + % (len(add_b), ", ".join("%s@%d" % k for k in add_b))) + gone_h = [k for k in removed if kind_of(p_it, k) == "heading"] + gone_b = [k for k in removed if kind_of(p_it, k) != "heading"] + if gone_h: + out.append("%d gone section(s): %s" % (len(gone_h), ", ".join("%s@%d" % k for k in gone_h))) + if gone_b: + out.append("%d gone record block(s): %s" + % (len(gone_b), ", ".join("%s@%d" % k for k in gone_b))) if moved: - out.append("%d section(s) changed extent or status, e.g. %s@%d %d->%d lines" + out.append("%d item(s) changed extent or status, e.g. %s@%d %d->%d lines" % (len(moved), moved[0][0], moved[0][1], - p_sec[moved[0]]["end_line"] - p_sec[moved[0]]["line"] + 1, - f_sec[moved[0]]["end_line"] - f_sec[moved[0]]["line"] + 1)) + p_it[moved[0]]["end_line"] - p_it[moved[0]]["line"] + 1, + f_it[moved[0]]["end_line"] - f_it[moved[0]]["line"] + 1)) p_nest = [r["id"] for r in pinned.get("nested", [])] f_nest = [r["id"] for r in fresh.get("nested", [])] if p_nest != f_nest: @@ -608,12 +694,12 @@ def run(args): return 2 if args.index: - print("%-4s %-5s %-11s %-7s %-13s %-22s %s" - % ("#", "id", "lines", "bytes", "role", "status", "title")) - for i, s in enumerate(payload["sections"], 1): - print("%-4d %-5s %-11s %-7d %-13s %-22s %s" - % (i, s["id"], "%d-%d" % (s["line"], s["end_line"]), s["bytes"], - s["role"][:13], clip((s["status"] or "--"), 22), clip(s["title"], 72))) + print("%-4s %-5s %-7s %-11s %-7s %-10s %s" + % ("#", "id", "kind", "lines", "bytes", "role", "title")) + for i, s in enumerate(payload["items"], 1): + print("%-4d %-5s %-7s %-11s %-7d %-10s %s" + % (i, s["id"], s["kind"], "%d-%d" % (s["line"], s["end_line"]), s["bytes"], + s["role"][:10], clip(s["title"], 72))) print() for r in payload["nested"]: print("nested %-4s line %-5d refs %-3d inside %-4s %s" @@ -712,16 +798,68 @@ def selftest(): check("quoted tool output opens nothing (Q77/Q99)", {"Q77", "Q99"} & {r["id"] for r in p["nested"]}, set()) check("mentions are still counted as refs", p["nested"][0]["refs"], 2) - check("sections tile the file with no gap", - all(secs[i]["end_line"] + 1 == secs[i + 1]["line"] for i in range(len(secs) - 1)), True) - check("last section ends at the last line", secs[-1]["end_line"], p["queue_lines"]) + check("items tile the file with no gap", + all(p["items"][i]["end_line"] + 1 == p["items"][i + 1]["line"] + for i in range(len(p["items"]) - 1)), True) + check("a record block carves its own bounds out of its neighbour", + [(b["id"], b["line"], b["end_line"]) for b in p["blocks"]], + [("Q41", 24, 25), ("Q43", 26, 28), ("Q45", 29, 29)]) + check("the section that used to swallow them now stops before the block", + (secs[3]["id"], secs[3]["line"], secs[3]["end_line"]), ("Q3", 21, 23)) + check("last item ends at the last line", p["items"][-1]["end_line"], p["queue_lines"]) check("preamble ends before the first heading", p["preamble"]["end_line"], 4) check("byte accounting is exact", - p["preamble"]["bytes"] + sum(s["bytes"] for s in secs), p["queue_bytes"]) + p["preamble"]["bytes"] + sum(s["bytes"] for s in p["items"]), p["queue_bytes"]) + # a block between two headings keeps both headings as sections and takes the + # lines between them: the case that made `sections tile` a false statement + gap = parse("## Q99 — a\n\nbody\n\n- **Q102 — OPEN (pipe).**\n\nprose\n\n## Q100 — b\n") + check("a block between two headings does not dissolve them", + [s["id"] for s in gap["sections"]], ["Q99", "Q100"]) + check("the section before the block stops at it", + [(s["id"], s["line"], s["end_line"]) for s in gap["sections"][:1]], + [("Q99", 1, 4)]) + check("the block owns the lines up to the next heading", + [(b["id"], b["line"], b["end_line"]) for b in gap["blocks"]], + [("Q102", 5, 8)]) + check("items still tile across a block boundary", + [(i["id"], i["line"], i["end_line"]) for i in gap["items"]], + [("Q99", 1, 4), ("Q102", 5, 8), ("Q100", 9, 9)]) check("bytes are the file's own length", p["queue_bytes"], len(FIXTURE.encode())) check("sha256 is the file's own", p["queue_sha256"], hashlib.sha256(FIXTURE.encode()).hexdigest()) + # --- the id class: three digits are an id (Q103, 2026-10-27) ------------- + # The fixture above stops at Q99, exactly like the real queue did: `\d{1,2}` + # made every item from Q100 up body text of the section before it. These + # cells fail on the pre-fix pattern, which is why they are here. + three = parse("## Q99 — a\n\nbody\n\n## Q100 — b\n\nQ101 is named here.\n\n" + "## Q101 — c\n\n- **Q102 — OPEN (pipe).**\n") + check("three-digit heading is a section", + [s["id"] for s in three["sections"]], ["Q99", "Q100", "Q101"]) + check("three-digit heading is an id", + three["ids_with_section"], ["Q99", "Q100", "Q101"]) + pairs = [(a["end_line"], b["line"]) for a, b in + zip(three["sections"], three["sections"][1:])] + check("three-digit section bounds do not overlap the one before", + pairs[:1], [(4, 5)]) + check("sections still tile across the id boundary", + all(three["sections"][i]["end_line"] + 1 == three["sections"][i + 1]["line"] + for i in range(len(three["sections"]) - 1)), True) + check("a three-digit bold record is a nested id (form kept)", + [(r["id"], r["form"]) for r in three["nested"]], [("Q102", "BOLD-LEAD")]) + # No width ceiling: a fourth digit is a new id, never a truncation of a + # three-digit one. `\d{1,3}` would fail both cells below -- the ceiling is + # the bug one digit later, so it is not restored. + four = parse("## Q1000 — d\n") + check("four-digit heading is its own id", four["ids_with_section"], ["Q1000"]) + check("a longer id is one token, not a prefix match", + ID_TOKEN.findall("see Q1000 and Q100, plus Q1000x"), ["Q1000", "Q100"]) + check("an id glued to a word is not an id", + ID_TOKEN.findall("FAQ100 / xQ100 / Q100y / Q"), []) + check("the old id class could not see Q100; this one does (RED -> GREEN)", + (re.compile(r"\bQ\d{1,2}\b").findall("## Q100 — b"), + HEADING.match("## Q100 — b") is not None), ([], True)) + # --- the gate, round trip and both directions of falsification ---------- root = tempfile.mkdtemp(prefix="queue-index-selftest-") repo = os.path.join(root, "repo") @@ -802,7 +940,7 @@ def selftest(): json=None, write=None, check=None, outside=False)) check("--index outside a git work tree exits 0", rc, 0) check("--index outside a git work tree still summarizes", - "index: 4 sections" in buf.getvalue(), True) + "index: 7 items (4 sections, 3 record blocks)" in buf.getvalue(), True) # falsify 1: an append moves the last section's extent with open(queue, "a", encoding="utf-8") as fh: @@ -889,7 +1027,7 @@ def main(argv=None): ap.add_argument("--check", metavar="PATH", help="re-derive and compare a rendered index") ap.add_argument("--outside", action="store_true", help="report ids the prose corpus names that the queue never mentions") - ap.add_argument("--selftest", action="store_true", help="fixture corpus, 58 cells") + ap.add_argument("--selftest", action="store_true", help="fixture corpus, 73 cells") args = ap.parse_args(argv) if args.selftest: return selftest() diff --git a/tools/selftest_baseline.tsv b/tools/selftest_baseline.tsv index 297310e..f30d134 100644 --- a/tools/selftest_baseline.tsv +++ b/tools/selftest_baseline.tsv @@ -25,7 +25,7 @@ manifest_audit.py 17 cells path_claim_check.py 31 cells queue_append_audit.py 25 cells queue_claim_check.py 24 fixtures -queue_index.py 58 cells +queue_index.py 73 cells reply_check.py 49 cells selftest_sweep.py 44 cells served_drift_check.py 25 cells