Files
troupe-standup/recoveries/queue-hygiene-census.md
T
timmy a28d9df8c9 queue: Run 37 (Merlin) -- the claim check re-generated on a corrected instrument: 15 opening records, 12 closed, 3 genuinely open, and the executable-unclaimed set this lane can take measured EMPTY. The queue's own hygiene convention (:8020, 2026-10-13T23:18Z) requires a claim check to read the ledger before taking any item whose opening line reads open or unclaimed; that ledger predates Runs 22-36 and the queue grew ~936,379 -> 1,170,483 B since, so the check was re-generated rather than inherited. Deliverable recoveries/queue-hygiene-census.md (10,123 B / sha256 eb0e1b4f5fa8733fb12eba758d9543a60eb85b8f12f5f7fc79b9908300d2405d); instrument /root/crucible/q66/q66_census6.py (4,388 B / sha256 e340b105dd96955f43a27e285a03f8ae, host-local scratch, six generations 21,845 B, every defect logged not deleted). Result: 15 opening records, 80 closure lines indexed, 12 closed / 3 open; validated against eleven answers read by hand from the queue before the run (Q21 Q24 Q25 Q45 Q46 Q47 Q49 Q50 Q51 Q52 closed, Q53 open) -> 11/11 VALIDATION PASS. Method is the finding: opening records are keyed on their SHAPE, which is what catches Q50/Q51/Q52/Q53 -- their opening records are bullet lines nested inside other sections, not ## headers, so a header walk cannot do this job; closures are item-anchored and searched whole-file because this queue is append-only and a closure lands at the tail. Six generations of instrument defect logged first, four erring in the dangerous direction: v1 walked only ## headers and matched the word open (missed Q50-Q53, false-flagged Q5/Q7/Q14); v2 caught Q7 continuation notes as openings; v3 cut its region at a --- rule (false OPEN for Q25 closed :2985 and Q49 closed :6952) and counted "**Done means:**" as a closure word (false CLOSED for Q53); v4 did not anchor closures to the item (Q53 closed off an unrelated G11 block at :8839); v5 scoped the closure search to the region before the next opening record so Q52 read OPEN though "**Q52 -- DONE at 4010b96" sits at :8517. Every defect was the instrument's, not the queue's. The three genuinely open and why none is this lane's: Q53 :8530 Mercury's (R5-a/R5-b in replies/2026-10-14-to-mercury-05.md, the pipe's own tick at :8939 states it open); Q37 :5278 the pipe's tooling ("Q37 stays open there", the residual a per-tick discipline plus a push identity it names an access decision, not a script); the career-lane apply queue :7303 Alexander's ("seven decisions and one rate figure are Alexander's"). Beside those the standing human-gated set: the section 4 adoption cp, the manifest_match pin stale since 2026-10-08, Q13, Q9, Q19, Q42. Q7 measured: no item opened -- an item invented to fill an empty set would be invented work, and the Helm lane's next unit remains the cp, a decision not a task. Two citation defects found in the queue's own record: (a) :7323 reads "**Q51 -- DONE at e4967da9...**" which parses as a commit SHA, but git cat-file -t e4967da9 -> "Not a valid object name" and sha256sum /root/crucible/q51/helm-selftest-q51.py -> e4967da9bdc45378... -- it is the GATE FILE's digest, and the closure commit is 57d8e6b (2026-10-13T13:40:02Z Merlin) which :7384 already carries correctly; (b) grep -c 'Status: open and unclaimed' -> 3 at :2264 :2684 :6847, all closed, reproducing the pipe's own correction at :8018-:8020. Closure revisions verified against git not prose: a9f23a6 de74527 0e65dfb 4c6cd50 57d8e6b 4010b96 eec3ff3, seven of seven resolve. Live state delta 0 (clock 2026-10-15T10:57:48Z): snapshot 14,039 B / aa842b0fd88037f83115b4a5... / mtime_ns 1791479579475780303; held pin 120 B / 5b6d70716153c3f4bd82045d... / mtime_ns 1791478687099553071; deployed /root/.helm/bin/ five digests unmoved (ee0b36a82f23fcf3 5c67473d89283c3d 7ed1bca8f9da624f 12570786ba703787 7386999867789694), grep -c HELM_COLLECTOR = 0 so Q40 stands; /tmp/q31-g8-deploy-* 475 dirs, newest cfkvskma mtime 2026-10-15 08:53:29.994355542Z = Run 36's last gate run, so no new directory since -- a delta-0 reading on the leak corroborating the candidate gate's Edit B; disk 41 G free of 154 G. One correction to my own records logged: the "sandboxes 0" line is off by one -- ls -d /root/crucible/*/sandbox* -> 2, of which q65/sandbox_probe.py is a script and q43z/sandbox-mine is a Run-13 leftover (32 K, data/snapshot.json, mtime 2026-10-12 18:39); harmless, in scratch, and it makes 0 wrong so it is recorded not restated. Append-only asserted structurally on both files: queue 1,170,483 -> 1,175,960 B (+5,477, 9,533 -> 9,602 lines) and check-in 43,489 -> 50,177 B (+6,688, 693 -> 781 lines), each child blob beginning with the parent's exact bytes, so no line citation shifts. Nothing deployed, no cp into /root/.helm/bin/, decisions/ and inbox/ untouched, no another-party file edited, no secret printed. Merlin <merlin@agents.invalid>, author=merlin.
2026-10-15 11:04:31 +00:00

9.9 KiB
Raw Blame History

Queue hygiene census — the claim check, generated and validated

(Merlin, Helm lane / control plane, 2026-10-15 11:0xZ. Run 37. Nothing deployed, no cp into /root/.helm/bin/, decisions/ and inbox/ untouched, no another-party file edited, no secret printed.)

1. Why this unit, and what it is not

The queue's own convention, set 2026-10-13T23:18Z (control plane, WORK-QUEUE.md:8020): "every new opening record carries a forward pointer to its closure line or revision, and a claim check reads this ledger before taking any item whose opening line reads open or unclaimed." The ledger that rule names was generated at that clock, before Runs 22–36; the queue has grown from ~936,379 B to 1,170,483 B since. The stale line it exists to catch is still there: Q49's :6847 still reads Status: open and unclaimed though the item CLOSED at :6952 on 2026-10-13 — and the ledger's own "Why it earns a ledger" paragraph records that this line "nearly cost Run 21 a duplicate run."

So the unit is the claim check itself, re-generated on a corrected instrument. It is not a new queue item and it opens none.

2. The instrument

/root/crucible/q66/q66_census6.py — 4,388 B / sha256 e340b105dd96955f… (host-local scratch; six generations, q66_census.py … q66_census6.py, 21,845 B total, every defect below logged rather than deleted).

  • Opening records are keyed on their shape, not on the word "open": a line that begins, after optional - and bold markers, with Status: open|OPEN or Q<digits> followed by an item separator. That excludes body prose ("197 open issues", Q7's "Q7, measured: … is open" continuation notes) and catches the nine shapes actually present, including Q50/Q51/Q52/Q53, whose opening records are bullet lines nested inside other sections rather than ## headers — the reason a header walk cannot do this job.
  • Closures are item-anchored: a **-header line anywhere in the file that names the item id and carries CLOSED/DONE/COMPLETE/VERIFIED, with "Done means", "stays open", "nothing is done" excluded. The search is whole-file, because this queue is append-only and a closure lands at the tail.
  • Validation set — eleven answers read by hand from the queue before the run: Q21 :2264 CLOSED, Q24 :2684 CLOSED, Q25 :2898 CLOSED, Q45 :6348 CLOSED, Q46 :6419 CLOSED, Q47 :6542 CLOSED, Q49 :6847 CLOSED, Q50 :6990 CLOSED, Q51 :7106 CLOSED, Q52 :7167 CLOSED, Q53 :8530 OPEN. Result: 11 / 11 correct. VALIDATION PASS.

3. Instrument defects, logged first — v1 through v5

gen defect measured consequence
v1 walked only ^## Q headers; matched any line containing "open" missed Q50/Q51/Q52/Q53 entirely; false-flagged Q5/Q7/Q14 on prose
v2 loosened the item key caught - **Q7, measured:** … is open continuation notes as opening records
v3 cut the region at the first column-0 --- false OPEN for Q25 (closed :2985) and Q49 (closed :6952)
v3 counted "Done means:" as a closure word false CLOSED for Q53, which is open
v4 closure not anchored to the item id Q53 read CLOSED off an unrelated block (:8839, "G11 (Run 29) is DONE"); Q25 off Mercury's check-in at :2918
v5 closure search scoped to the region before the next opening record Q52 read OPEN though **Q52 — DONE at 4010b96 sits at :8517, because the next opening record (:7303) cut the region at 136 lines

v6 is what passed. The class is worth naming: every defect was the instrument's, not the queue's, and four of the six produced a wrong answer in the dangerous direction (a closed item reading claimable) — the exact failure the convention exists to prevent.

4. The census — 15 opening records, generated

# item opening record closure line (whole-file, item-anchored) state
1 Q21 :2264 :2272 **Status: DONE — recoveries/excerpt-binding-audit.md CLOSED
2 Q24 :2684 :2688 **Status: DONE — docs/q13-fix-pack.md CLOSED
3 Q25 :2898 :2985 **Q25 verification tick … Q25 DONE at a9f23a6 CLOSED
4 Q32 :4384 :4387 **Status: DONE 2026-10-11 (Merlin, Run 8) — helm-g8-scrub.md CLOSED
5 Q33 :4454 :4505 **Status: VERIFIED … 8bb88da CLOSED
6 Q37 :5278 none OPEN — the pipe's, see §5
7 Q45 :6348 :6358 **Q45 (Helm lane) — CLOSED 2026-10-12 by Merlin CLOSED
8 Q46 :6419 :6436 **Q46 (Helm lane) — CLOSED 2026-10-13 by Merlin CLOSED
9 Q47 :6542 :6638 **Q47 (Helm lane) — CLOSED 2026-10-13 by Merlin CLOSED
10 Q49 :6847 :6952 **Q49 CLOSED 2026-10-13 (Merlin, Helm lane) CLOSED — the stale line
11 Q50 :6990 :7089 **Q50 (Helm lane) — VERIFIED … Closure 4c6cd50 CLOSED
12 Q51 :7106 :7323 **Q51 — DONE at e4967da9… / :7384 … landing SHA … 57d8e6b CLOSED
13 Q52 :7167 :8517 **Q52 — DONE at 4010b96 (Mercury, 2026-10-14) CLOSED
14 Q53 :8530 none OPEN — Mercury's, R5-a/R5-b
15 (unnumbered) career-lane apply queue :7303 none OPEN — Alexander's, see §5

80 closure lines indexed; 12 of 15 records carry a closure. 3 are genuinely open.

5. The genuinely-open set, and why none of it is mine

Measured, not asserted:

  1. Q53 :8530 — Mercury's lane. Its binding asks are R5-a/R5-b, carried in replies/2026-10-14-to-mercury-05.md; the pipe's own tick at :8939 states "the Mercury Q53 is OPEN as of this tick." Not this lane's.
  2. Q37 :5278 — the pipe's tooling. Its own boundary line, in the same block: "Q37 stays open there" — the residual is a per-tick census discipline plus a push identity, and the block names the latter "an access decision, not a script."
  3. The career-lane apply queue :7303 — Alexander's. Its Status line says it outright: "seven decisions and one rate figure are Alexander's."
  4. Beside those, the standing human-gated set the lane has carried for days: the §4 adoption cp (collector 4e45021d… + the current gate), the manifest_match pin stale since 2026-10-08, Q13, Q9, Q19, Q42.

The executable-unclaimed set available to this lane is EMPTY. That is the same conclusion Runs 21, 25, 29 and 36 reached, and this run measures it rather than inheriting it.

6. Two citation defects found in the queue's own record

(a) Q51's DONE line names a gate digest where a revision belongs. :7323 reads **Q51 — DONE at \e4967da9…`**, which parses as a commit SHA. Measured: git cat-file -t e4967da9→ *"Not a valid object name"*, andsha256sum /root/crucible/q51/helm-selftest-q51.py → **e4967da9bdc45378…** — it is the **gate file's digest**, not a revision. The closure commit is **57d8e6b** (2026-10-13T13:40:02Z, Merlin), which :7384already carries correctly in the same item: *"the landing SHA the DONE block above should carry is57d8e6b`."* No count or verdict moves; the defect is a citation that reads as one kind of handle and is another — the same class as Run 19's 63-character digest erratum.

(b) The Status: open and unclaimed literal count, reproduced at HEAD. grep -c 'Status: open and unclaimed' → 3, at :2264, :2684, :6847 — all three closed. This reproduces the pipe's own correction at :8018–:8020 (the committed Run-21 text said four; its fourth, :7106, is an opening record, not a Status line).

Closure revisions verified against git, not taken from prose: a9f23a6 2026-10-10T22:17:19Z Merlin · de74527 2026-10-13T09:06:35Z Merlin · 0e65dfb 2026-10-13T09:23:04Z Timmy · 4c6cd50 2026-10-13T11:26:36Z Merlin · 57d8e6b 2026-10-13T13:40:02Z Merlin · 4010b96 2026-10-14T12:03:20Z Mercury · eec3ff3 2026-10-14T03:38:35Z Merlin. Seven of seven resolve; the eighth handle in the census (e4967da9…) is not a revision and is defect (a).

7. Q7, measured

No item opened. The unclaimed executable set is empty by measurement (§5), so an item invented to fill a number would be invented work. The queue is not thin in the sense that matters — three open items exist and all three belong to another lane or to Alexander — and the Helm lane's next unit remains the §4 cp, a decision, not a task.

8. Live state, measured this run (delta 0)

Clock read immediately before the measurements, 2026-10-15T10:57:48Z.

  • snapshot /root/.helm/data/snapshot.json 14,039 B / aa842b0fd88037f83115b4a5… / mtime_ns 1791479579475780303 — unchanged.
  • held pin /root/.helm/data/held/stackchain-home.html.sha256 120 B / 5b6d70716153c3f4bd82045d… / mtime_ns 1791478687099553071 — unchanged.
  • deployed /root/.helm/bin/ five digests unmoved: ee0b36a82f23fcf3… / 5c67473d89283c3d… / 7ed1bca8f9da624f… / 12570786ba703787… / 7386999867789694…; grep -c HELM_COLLECTOR = 0, so Q40 stands and nothing of Q31–G14 is in production.
  • The /tmp/q31-g8-deploy-* litter: 475 directories, newest /tmp/q31-g8-deploy-cfkvskma mtime 2026-10-15 08:53:29.994355542Z — that is Run 36's last gate run, so no new directory has appeared since, which is a delta-0 reading on the leak itself and corroborates that the candidate gate's Edit B holds. Not cleaned: those trees are not this lane's.
  • Disk 41 G free of 154 G (74 % used).
  • One correction to this lane's own records, logged: the "sandboxes 0" line carried in recent blocks is off by one against ls -d /root/crucible/*/sandbox* → 2, of which one is q65/sandbox_probe.py (a script, not a sandbox) and one is /root/crucible/q43z/sandbox-mine, a leftover from Run 13 (mtime 2026-10-12 18:39, 32 K, holding data/snapshot.json). A litter defect of this lane's own, in scratch, harmless — and it makes "0" wrong, so it is recorded rather than restated.