diff --git a/WORK-QUEUE.md b/WORK-QUEUE.md
index c24c120..799c7c6 100644
--- a/WORK-QUEUE.md
+++ b/WORK-QUEUE.md
@@ -9161,7 +9161,7 @@ apart from the adoption sequence, which is Alexander's.**
---
-**G12 \u2014 the deployed page's pin pill: the half of the cell no gate read (Helm lane; Run 33,
+**G12 — the deployed page's pin pill: the half of the cell no gate read (Helm lane; Run 33,
2026-10-15, Merlin).** Deliverable `recoveries/helm-deployed-pill-guard.md` (**11,418 B /
sha256 `b7137bc469ee9cd8d07f85822cdd24bdbab44edbf496a2c85a32b73ff6d88d82`**, this host, at the
write). Scratch tree `/root/crucible/q62/`; nothing deployed, no `cp` into `/root/.helm/bin/`,
@@ -9171,42 +9171,42 @@ write). Scratch tree `/root/crucible/q62/`; nothing deployed, no `cp` into `/roo
`/var/www/alexander-whitestone/helm/index.html` is **9,865 B / sha256
`427b7b54c69b18d270288910fc810732463129f48ec4bdd7dbc75cdb22997ce4` / mtime_ns
`1791709034017837233`** and carries `held copy match
- (pinned vs live)` with `as of ` **\u00d70** and `not re-checked since` **\u00d70**. G10 reads
+ (pinned vs live)` with `as of ` **×0** and `not re-checked since` **×0**. G10 reads
that file and checks the **qualifier**; G11 conditions the **pill** but only on scratch
renders under `/root/crucible/q59/`. `grep -n 'held copy'` over the shipped gate
- `125754b270bf\u2026` (161,122 B / 3,053 L / 135 registrations) returns exactly three hits
+ `125754b270bf…` (161,122 B / 3,053 L / 135 registrations) returns exactly three hits
(`:2841` G10's negative literal, `:2882` a comment, `:2893` G11's constant) and **none is
read off the deployed path**. The pill half of the cell G11 exists to forbid was unguarded
on the one artifact the public reads.
- **First predicate falsified by measurement before it shipped.** The obvious form
(`("held copy" not in text) or ("as of " in text)`) is **redundant**: G12-fail implies
`"as of "` absent, and G10-fail is `"not re-checked since" absent OR "as of " absent`, so
- every body it refused G10 already refused. The hypothetical distinguishing cell \u2014 the
+ every body it refused G10 already refused. The hypothetical distinguishing cell — the
real stale render with its amber pill swapped for unqualified green, 11,806 B /
- `3f48643d\u2026` \u2014 carries both of G10's strings and passed **both** predicates.
+ `3f48643d…` — carries both of G10's strings and passed **both** predicates.
A green "match" beside a five-day-old disclaimer walked through both gates. Logged, not
hidden; nothing shipped in that form.
- **The distinguishing cell is a real artifact, not a string I built.**
`/root/crucible/q59/helm-render-plain.py` is **byte-identical to production's renderer**
(both 21,766 B / sha256
`5c67473d89283c3d4434928dc96d45ff48a41d8f443ecc3c98e9236be8b597f9`), and rendering it at
- `--as-of 2026-10-14T16:00:00.000Z` emits 11,806 B / `3f48643d8e7bac77\u2026` \u2014 the same
+ `--as-of 2026-10-14T16:00:00.000Z` emits 11,806 B / `3f48643d8e7bac77…` — the same
digest the substitution produced. The body that passes G10 and fails G12 is one
**production would deploy**.
- **Corrected predicate:** an unqualified green pin pill must never appear beside a staleness
- disclaimer. The two gates are **complements, not duplicates** \u2014 G10 owns the **missing
+ disclaimer. The two gates are **complements, not duplicates** — G10 owns the **missing
clock** (today's page: G10 red, G12 correctly green); G12 owns the **incoherent pair**
(green pill *and* a disclaimer: G10 green, G12 red). The mechanism is structural: the pill
reads the **frozen** `manifest_match` field (`helm-render.py:323`, `:326`) while the
- qualifier is computed at render time (`:343`\u2013`:346`).
-- **The gate, built from `125754b270bf\u2026` at a single asserted anchor.** Shipped
+ qualifier is computed at render time (`:343`–`:346`).
+- **The gate, built from `125754b270bf…` at a single asserted anchor.** Shipped
`helm-selftest-q62.py` **171,979 B / 3,256 L / 138 registrations** (135 + 3) / sha256
`4b18329c7437bec4c5c05be86ddd8376a7396eda9c97739410b1ab5952e4d270`; twin
- `0fc58aabfb8d9345\u2026`, differing on **exactly one asserted line** (3073, `_g12_deployed`
- repointed at the production renderer's own stale output, 11,806 B / `3f48643d\u2026`).
+ `0fc58aabfb8d9345…`, differing on **exactly one asserted line** (3073, `_g12_deployed`
+ repointed at the production renderer's own stale output, 11,806 B / `3f48643d…`).
Three checks: the deployed artifact, the discriminator on real production output, read-only.
- **The run, prediction stated before it and met exactly.** `HELM_COLLECTOR=/root/crucible/q48/helm-collect.py`
- throughout (`out/R33-GATE.json`, 6,453 B / `1a1744774ce3652f\u2026`, `generated_at
+ throughout (`out/R33-GATE.json`, 6,453 B / `1a1744774ce3652f…`, `generated_at
2026-10-15T01:20:11+00:00`): **shipped rc 1, `187 passed, 1 failed`** (sole failure G10's
deployed-page row), twice, 16,212 B stdout each; **twin rc 1, `186 passed, 2 failed`**,
16,583 B, adding G12 row 1. `live_moved: {}` and `sandboxes_after: []` on all three legs.
@@ -9218,23 +9218,23 @@ write). Scratch tree `/root/crucible/q62/`; nothing deployed, no `cp` into `/roo
`mkdtemp` suffixes the gate prints were invisible to it and it reported `residual 2` with no
characterisation. The two lines were printed (`tmp1prcmj7c`/`tmph8sr6_e0`,
`q31-g8-deploy-ltgw0sri`/`q31-g8-deploy-_j2jdsam`), the pattern corrected, the run re-run.
- No G12 row or verdict depended on it \u2014 the G12 rows were byte-identical under either
+ No G12 row or verdict depended on it — the G12 rows were byte-identical under either
pattern.
- **Live state delta 0** (bytes + sha256 + mtime_ns) across every leg: page 9,865 B /
- `427b7b54c69b18d2\u2026`; snapshot 14,039 B / `aa842b0fd88037f8\u2026`; held pin 120 B /
- `5b6d70716153c3f4\u2026`. Deployed `/root/.helm/bin/` untouched (five digests re-read, plus
+ `427b7b54c69b18d2…`; snapshot 14,039 B / `aa842b0fd88037f8…`; held pin 120 B /
+ `5b6d70716153c3f4…`. Deployed `/root/.helm/bin/` untouched (five digests re-read, plus
the `__pycache__/` an adoption must not copy in); `grep -c HELM_COLLECTOR` = **0**, so Q40
- stands and none of Q31\u2013Q62 is in production. Sandboxes 0. Repo `main` at
- `07fdaf9c8cbaff8c\u2026`, worktree clean, remote identical; 102 merlin-authored commits
+ stands and none of Q31–Q62 is in production. Sandboxes 0. Repo `main` at
+ `07fdaf9c8cbaff8c…`, worktree clean, remote identical; 102 merlin-authored commits
before this push. Disk 41 G avail of 154 (74 %).
-- **Limits:** the gate detects and cannot repair \u2014 the remedy is **re-render and deploy**,
- an operator's call under \u00a74; the predicate is about the *pair*, not about whether the
+- **Limits:** the gate detects and cannot repair — the remedy is **re-render and deploy**,
+ an operator's call under §4; the predicate is about the *pair*, not about whether the
pin actually matches (that is the collector's frozen `manifest_match`, by design); no
fuzzer, the enumerated render set only; no X page fetched this run. **Testimony only: none**
- \u2014 every figure came from a command in this run.
-- **Standing and unchanged:** the \u00a74 adoption `cp`, now collector `4e45021d80395d3f\u2026`
- + gate **`4b18329c7437bec4\u2026`** (this run's, superseding `125754b270bf\u2026`), the stale
- `manifest_match` pin, the G10 re-render, Q13, Q9, Q19. **No item closed, none opened** \u2014
+ — every figure came from a command in this run.
+- **Standing and unchanged:** the §4 adoption `cp`, now collector `4e45021d80395d3f…`
+ + gate **`4b18329c7437bec4…`** (this run's, superseding `125754b270bf…`), the stale
+ `manifest_match` pin, the G10 re-render, Q13, Q9, Q19. **No item closed, none opened** —
the Helm executable set was empty at the start of the run by both this lane's and the pipe's
measurement, so the unit taken was the one defect the lane had measured and labelled but
never fixed.
diff --git a/checkins/2026-10-15-merlin.md b/checkins/2026-10-15-merlin.md
index 356fdad..b207081 100644
--- a/checkins/2026-10-15-merlin.md
+++ b/checkins/2026-10-15-merlin.md
@@ -1,4 +1,4 @@
-# Check-in \u2014 Merlin, 2026-10-15
+# Check-in — Merlin, 2026-10-15
**Screen.** Repo `troupe-standup`, branch `main`. Read the work queue
(`WORK-QUEUE.md`, 1,136,299 B / sha256
@@ -8,38 +8,38 @@ unclaimed item I can finish. Measured rather than assumed: the queue's own hygie
Mercury's), and `scan_status.py` over the whole file returns **9 `**Status:` lines matching an
open/unclaimed form, of which every one is stale except Q9** (blocked on the audio handover,
per its own record). The Helm lane's executable set is empty by both this lane's and the
-pipe's measurement, and everything else standing is human-gated: the \u00a74 adoption `cp`, the
+pipe's measurement, and everything else standing is human-gated: the §4 adoption `cp`, the
stale `manifest_match` pin, Q13, Q9, Q19. **So the queue offered no finishable item and I
continued my lane**, taking the one defect the Helm lane had measured and labelled but never
fixed. Clock read 2026-10-15T01:09:35Z before the work began.
-**Did. G12 \u2014 the deployed page's pin pill, the half of the cell no gate read.**
+**Did. G12 — the deployed page's pin pill, the half of the cell no gate read.**
Deliverable `recoveries/helm-deployed-pill-guard.md` (**11,418 B / sha256
`b7137bc469ee9cd8d07f85822cdd24bdbab44edbf496a2c85a32b73ff6d88d82`**). Scratch
`/root/crucible/q62/`. New gate `helm-selftest-q62.py` **171,979 B / 3,256 lines / 138
registrations / sha256 `4b18329c7437bec4c5c05be86ddd8376a7396eda9c97739410b1ab5952e4d270`**,
-built from the shipped gate `125754b270bf\u2026` at a single asserted anchor; twin
-`0fc58aabfb8d9345\u2026` differing on exactly one asserted line.
+built from the shipped gate `125754b270bf…` at a single asserted anchor; twin
+`0fc58aabfb8d9345…` differing on exactly one asserted line.
- **The finding.** `grep -n 'held copy'` over the shipped gate returns three hits and **none
is read off the deployed path**, so G11's pill rule was guarded on scratch renders only. The
- page the public reads carries the unqualified green pill with `as of ` \u00d70 and
- `not re-checked since` \u00d70.
+ page the public reads carries the unqualified green pill with `as of ` ×0 and
+ `not re-checked since` ×0.
- **My first predicate was falsified by measurement before it shipped** and is logged in the
- record's \u00a72: the obvious rule is **redundant** with G10 (G12-fail implies G10-fail), and
+ record's §2: the obvious rule is **redundant** with G10 (G12-fail implies G10-fail), and
the hypothetical distinguishing cell passed **both**. Redundancy in a gate is theatre, so it
was not shipped in that form.
- **The corrected rule is a complement, not a duplicate.** G10 owns the **missing clock**
- (today's page: G10 red, G12 correctly green); G12 owns the **incoherent pair** \u2014 green
+ (today's page: G10 red, G12 correctly green); G12 owns the **incoherent pair** — green
pill *and* a staleness disclaimer, which G10 passes because both of its strings are present.
The mechanism is structural: the pill reads the **frozen** `manifest_match` field
(`helm-render.py:323`, `:326`) while the qualifier is computed at render time
- (`:343`\u2013`:346`).
+ (`:343`–`:346`).
- **The discriminator runs on an artifact production would deploy.**
`/root/crucible/q59/helm-render-plain.py` is **byte-identical to production's renderer**
- (21,766 B / `5c67473d89283c3d\u2026`), and at `--as-of 2026-10-14T16:00:00.000Z` it emits
- 11,806 B / `3f48643d8e7bac77\u2026` carrying the green pill, `as of ` \u00d71 and
- `not re-checked since` \u00d71 \u2014 G10 passes it, G12 refuses it.
+ (21,766 B / `5c67473d89283c3d…`), and at `--as-of 2026-10-14T16:00:00.000Z` it emits
+ 11,806 B / `3f48643d8e7bac77…` carrying the green pill, `as of ` ×1 and
+ `not re-checked since` ×1 — G10 passes it, G12 refuses it.
- **Prediction stated before the run and met exactly:** shipped rc 1 / `187 passed, 1 failed`
(sole failure G10's row), twice at 16,212 B each; twin rc 1 / `186 passed, 2 failed` at
16,583 B, adding G12 row 1. `live_moved: {}`, `sandboxes_after: []` on all three legs.
@@ -47,32 +47,32 @@ built from the shipped gate `125754b270bf\u2026` at a single asserted anchor; tw
sandbox normalisation, residual **0**, normalised sha256
`7a080e1616fb20e3e9685d67cb121b9a8af35614a7edba7b649aeca62e2612d0`.
- **Live state delta 0** on bytes + sha256 + mtime_ns across every leg: page 9,865 B /
- `427b7b54c69b18d2\u2026`; snapshot 14,039 B / `aa842b0fd88037f8\u2026`; held pin 120 B /
- `5b6d70716153c3f4\u2026`. Deployed `/root/.helm/bin/` untouched (five digests re-read plus
+ `427b7b54c69b18d2…`; snapshot 14,039 B / `aa842b0fd88037f8…`; held pin 120 B /
+ `5b6d70716153c3f4…`. Deployed `/root/.helm/bin/` untouched (five digests re-read plus
the `__pycache__/`), `grep -c HELM_COLLECTOR` = **0** so Q40 stands. Sandboxes 0. Disk 41 G
avail of 154.
- **A defect of mine, logged first:** the runner's stdout normaliser matched
`(helm-legs-|/tmp/tmp)` but this host's TMPDIR is
`/root/.hermes/profiles/merlin/cache/scratch`, so it reported `residual 2` with no
characterisation. The two lines were printed, the pattern corrected, the run re-run, and
- \u00a76's figures are the corrected ones. No G12 row or verdict depended on it.
+ §6's figures are the corrected ones. No G12 row or verdict depended on it.
- **Nothing deployed, no another-party file edited, no secret printed.** No item closed, none
- opened \u2014 the Helm executable set was empty at the start of the run.
+ opened — the Helm executable set was empty at the start of the run.
**Blocked.** Nothing, on my side. Standing and still human-gated, unchanged and not
-re-argued: the \u00a74 adoption `cp` (now collector `4e45021d80395d3f\u2026` + gate
-**`4b18329c7437bec4\u2026`**, this run's, superseding `125754b270bf\u2026`), the stale
+re-argued: the §4 adoption `cp` (now collector `4e45021d80395d3f…` + gate
+**`4b18329c7437bec4…`**, this run's, superseding `125754b270bf…`), the stale
`manifest_match` pin, the G10 re-render, Q13's publication call, Q9's checksum handover, Q19's
onboarding.
**Next.** The gate is written and green on today's page; the remaining Helm step is the
adoption `cp` plus the re-render and deploy that G10, G11 and G12 all measure as outstanding
-\u2014 one sequence, an operator's call under \u00a74, and not mine to execute. With that done
+— one sequence, an operator's call under §4, and not mine to execute. With that done
the Helm lane's executable set returns to empty and its next unit is again a decision rather
than a task.
-**Ask.** Alexander: the adoption sequence is now four files \u2014 renderer `306d4bee\u2026`,
-collector `4e45021d80395d3f\u2026`, gate `4b18329c7437bec4\u2026`, then re-collect, re-render
+**Ask.** Alexander: the adoption sequence is now four files — renderer `306d4bee…`,
+collector `4e45021d80395d3f…`, gate `4b18329c7437bec4…`, then re-collect, re-render
and deploy. Adopting the renderer alone would leave G10's and G12's rows red, so the order
matters and it is stated in the record. Nothing else is asked of the pipe; Timmy's reply 58
carried no ask and discharged reply 57's two corrections, which this run did not disturb.
@@ -87,7 +87,7 @@ no credential) by `python3 /root/crucible/q62/readback_r33.py`, exit 0,
`VERDICT: ALL READBACKS IDENTICAL`, artifact `out/R33-READBACK.json` (2,652 B /
sha256 `2e04f96b7900b8748d9831952eade8a5ca77eb93d2073add4de241e8a9149d3a`,
host-local, E13's rule), read at **2026-10-15T01:23:51+00:00** at revision
-**`63158803e824b025ae874cd28d477a687986f093`** \u2014 all four rows **HTTP 200** and
+**`63158803e824b025ae874cd28d477a687986f093`** — all four rows **HTTP 200** and
byte-identical on three sides (served = disk = `git cat-file -p 63158803:`):
| file | HTTP / bytes | sha256 (served = disk = git) |
@@ -95,17 +95,17 @@ byte-identical on three sides (served = disk = `git cat-file -p 63158803:`
| `recoveries/helm-deployed-pill-guard.md` | 200 / 11,418 | `b7137bc469ee9cd8d07f85822cdd24bdbab44edbf496a2c85a32b73ff6d88d82` |
| `checkins/2026-10-15-merlin.md` | 200 / 5,749 | `078912920033a1ee1657d601eaa03d77dbc5e146917cedc763e79f6a6cb2c8d3` |
| `WORK-QUEUE.md` | 200 / 1,142,615 | `571133bddda96bc4b92d0999a683fb48bfefddd1022189a4d54221ae9930f79b` |
-| `replies/2026-10-15-to-timmy-58.md` | 200 / 11,217 | `cca7de7baa70d65b\u2026` (full digest in the artifact) |
+| `replies/2026-10-15-to-timmy-58.md` | 200 / 11,217 | `cca7de7baa70d65b…` (full digest in the artifact) |
The check-in's own row is this file **at `63158803`, the revision before this
-append** \u2014 a file cannot cite its own post-append digest, so the row is dated
+append** — a file cannot cite its own post-append digest, so the row is dated
rather than chased. All four files are newline-terminated (`trailing_newline:
true` on every row, asserted by the script).
**The landing deltas, measured from git rather than from the append scripts.**
`git diff --numstat 07fdaf9c 63158803` = **80/0 on the queue, 78/0 on this file,
199/0 on the record, 95/0 on the reply = 452 insertions, 0 deletions**
-(`--shortstat` \u2192 `4 files changed, 452 insertions(+)`). **Append-only is asserted, not
+(`--shortstat` → `4 files changed, 452 insertions(+)`). **Append-only is asserted, not
claimed:** the commit script refuses if any row reports a deletion, so no
committed line moved and no line-number citation in the archive shifts. The
queue's 80 lines are the G12 block appended after the Run 32 block; this file's
@@ -114,22 +114,22 @@ queue's 80 lines are the G12 block appended after the Run 32 block; this file's
**Provenance, asserted not assumed:** author and committer both
`Merlin ` (`git -c`), so the monitor sees it as
counterparty content per Q36's v1.3 rule; `git log --author=merlin --oneline |
-wc -l` = **103** after the commit (102 before the push \u2014 the Run 24/25 lesson: a
+wc -l` = **103** after the commit (102 before the push — the Run 24/25 lesson: a
commit with no `-c` override is authored by the clone's identity and the count
-silently misses the run). `git ls-remote origin main` = `63158803\u2026`, so served
+silently misses the run). `git ls-remote origin main` = `63158803…`, so served
= remote = disk.
**Live state at the readback, delta 0 across the whole run** (bytes + sha256 +
mtime_ns, re-measured by `measure_final.py` at 01:20:25Z and unchanged since):
-page **9,865 B / `427b7b54c69b18d2\u2026`**; snapshot **14,039 B /
-`aa842b0fd88037f8\u2026`**; held pin **120 B / `5b6d70716153c3f4\u2026`**. Deployed
+page **9,865 B / `427b7b54c69b18d2…`**; snapshot **14,039 B /
+`aa842b0fd88037f8…`**; held pin **120 B / `5b6d70716153c3f4…`**. Deployed
`/root/.helm/bin/` untouched and `grep -c HELM_COLLECTOR
-/root/.helm/bin/helm-selftest.py` = **0** \u2014 Q40 stands, so nothing of Q31\u2013Q62 is in
+/root/.helm/bin/helm-selftest.py` = **0** — Q40 stands, so nothing of Q31–Q62 is in
production. Sandboxes 0/0/0. Worktree clean. Disk 41 G avail of 154 (74 % used).
**Nothing was deployed, published, rebuilt or re-run beyond the gate's own three
legs and their measurements; `decisions/` and `inbox/` untouched; no
-another-party file edited; no secret printed** \u2014 the long strings are gate report
+another-party file edited; no secret printed** — the long strings are gate report
lines, file paths and sha256 digests.
-\u2014 Merlin (Run 33, landing)
+— Merlin (Run 33, landing)