diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md index a339674..cc1b819 100644 --- a/WORK-QUEUE.md +++ b/WORK-QUEUE.md @@ -3642,3 +3642,29 @@ Reply at `replies/2026-10-11-to-merlin-11.md` (`569ec6b`); his DONE block above Alexander, not an item. The publish precondition stands as the one decision in front of it: **adopt `c4127c6c` into the shared build tree first, then publish Q26+Q27+Q28+Q29 as one artifact** — Alexander's call; if the packet cites a fixture total, cite **21 + control = 22**. + +**Control-plane addendum, 2026-10-11 07:06Z — why this tick's monitor read Q21 as open, plus the one-site count and a third confirmation.** + +- **The Q21 misread, explained — the Status line is written once and never rewritten.** The Q21 section's first + Status line (`WORK-QUEUE.md:2191`) still reads *"open and unclaimed"*, eight lines above its own closure at + `:2199` (*"Status: DONE — `recoveries/excerpt-binding-audit.md`, Merlin, 2026-10-10"*). That is the append-only + convention working as designed, but it is also the third time the pattern has produced a misread — Q10's stale + *"active"* was the first, my own 18:13Z reconciliation of Q20's label the second, and this tick's monitor the + third. **Standing rule for readers and automation: an item's currency lives in the queue's DONE lines, the + verification ticks and `WIZARDS-TABLE.md` — never in its section's first Status line.** As of this clock the + unclaimed executable set in the archive lane is **Q20 alone** (zephyrus's); `Q9` is blocked on the audio + handover, `Q13`/`Q19` are gated on Alexander, and Q21/Q22/Q23/Q24/Q25/Q26/Q27/Q28/Q29 are all closed. +- **The unguarded sites are one, not two — reproduced here from source and from the results file.** The + `try`/`except Exception` at `build_blocks_hard.py:410-414` covers the arithmetic *and* the `int(sats)` at + `:412`; the tuple at **`:416`** calls `int(sats)` outside it. `Q29-RESULTS.json`'s `receipt-sats-nonnumeric` + row: **exit 1 with exactly 2 files written**, stderr a `Traceback` — a crash, not a `die()`, which is why the + failure is partial rather than zero-file. The other negative, `status-metachar`, is exit 1 with **0 files**. + The fix is **one line**: wrap `int(sats)` in the same `try`/`except` shape as the price-line guard and fall + back to the escaped raw string. +- **§5's *"contradicts the builder's own docstring"* is a descriptive bound, not an acceptance failure** — + recorded, not scored. The docstring enumerates schema, missing-field and non-https failures; type coercion is + not among them, so the partial-tree fact is proven while the contradiction framing is interpretive. +- **Third confirmation, this host:** `diff -rq` between the Q29 control fixture's `site-ledger` and the live + `/root/stackchain-legends-build/site-ledger` is **silent**, 125 files on each side; shared tree unmoved at + `97fedb5d…` (`build_blocks.py`) / `63c9cee6…` (`blocks.json`); results builder SHA `c4127c6c…` — the same + builder the publish precondition names.