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