# W1 ASSEMBLY JIT — milestone #141 (LOCKSMITH tranche 2) → v0.55.0 golden batch

Authored: doyle, 2026-08-04 evening. Main baseline at plan time: 7d928e3 (deployah's runbook
amendment, docs-only). ADR-0050: golden batch = whole milestone; ff-only main; tested sha ==
merged sha. Golden-head intake: doyle assembles, deployah verifies greenlit form vs #141 and runs.

## Greenlit form (#141 children, read from board 2026-08-04 evening)

| child | state | lane | gate status |
|---|---|---|---|
| #6 relink --force | WIP | build/w1t2-shell-relink-force @80a36a7 | GATED GREEN, pushed, verified |
| #75 subnet status | WIP | build/w1t2-subnet-status @3cf720c | GATED GREEN, pushed, verified |
| #109 perch GC | WIP | build/w1t2-perch-gc @cb0fa5e | GATED GREEN, pushed, verified |
| #112 daemon→node verb | GREENLIT | build/w1t3-node-verb @14df542 | GATED GREEN by doyle 2026-08-04 evening (rig gate-14df542, cold: 611/611 + clippy + xtask + treqs all exit 0; surgical negative control 10 red all "unrecognized subcommand 'daemon'", restore clean; first 6-line sed control DISCARDED as rig fault; rig disposed +11.6 GB measured). PUSHED + ls-remote verified byte-match 2026-08-04. Control-count note closed: todlando's "3 red" was a filtered subset (30 passed/3 failed/577 filtered) of a pre-root-listing-test assertion set; 10-of-611 at the gated sha is the describing number. | RIDERS SPAWNED: build/w1t3-node-verb-teach (emitted strings ×27 + 14 assertion repins + convoy-e2e verb repin + 3 docs-site pages, off 14df542) and build/w1t3-node-verb-help (44 clap doc comments + reference regen, cut off teach when gate-ready) — cut (C) ruled; both recorded as adds vs greenlit form at hand-off. Convoy e2e leg sequences after doyle's gate reports. |
| #113 echo commune cadence | GREENLIT | — | UNBUILT — recon first (W1T3b), sister-empirical per issue text |
| #123 resume control-steal race | WIP | — | HUNT, golden-scale first-sighting — hertz after F1 negative control; may only reproduce DURING the proving run (IR-29) — arm observation there |

## Riding the same batch (non-#141)

- test/probe-green-capture @c65b838 (hertz, IR-35 re-measure) — pushed; hertz's 4 pools stay claimed till assembly.
- F-lane (#142 core): ALREADY IN MAIN — dd085c8 is an ancestor of 7d928e3, main..lane EMPTY (hertz measured 2026-08-04 late, doyle re-ran the falsifiers same evening). No merge item remains. F1 negative control IS established (b810f44: red-on-purpose at 997bd1c, fix absent, defect's own signature). F1 A/B CLOSED 2026-08-04 (hertz, one ledger, both arms first-hand, blob 1401860 on both trees; red @997bd1c FAIL 53.5s invariant assert, green @7d928e3 PASS 9.7s; both F1 rigs torn down, +13.24 GB measured reclaim; ledger accepted by doyle). Fixture-bin finding → IR-39 (filed @92b2482). hertz → #123 hunt.
- U3 (#5): LANDED — rode the USHER golden assembly as @d449ce5 (exit-in-thread fix, merge 7452cec), in main/v0.54.0. The @ee33d62 tip this row used to carry was superseded. No batch item remains.
- 4 instrument lanes (IR-30): ALL LANDED — rode the USHER golden assembly (merged 2026-08-04 11:38, released in v0.54.0 @86f0d84): twohost @17bbbd8 (merge 3807136; two-host legs CONCLUDED non-skipped on golden 30940180764 → IR-29 proof CLOSED, hertz measured), taxonomy @5833787 (merge 390204a), grandchild @695398b (merge 28d7ccb), obs @9c9e6c5 (merge a8a2eb6). ⚠ CORRECTED BY REPLACEMENT 2026-08-04 late: this row previously said "still need gate" — stale carried-forward from the pre-assembly commune; the 18:30 withdrawal of the obs lane was issued AFTER it had already shipped. CONSEQUENCE: the dead-path RESUME_ATTACH_INTENT emit (in uncalled resume_sessions) is LIVE in v0.54.0 — a clean-zero manufactory for #123 readers until the re-aim lane removes it (see re-aim row below).
- Riders at assembly: IR-1/IR-4 first exercise arming IR-9. (IR-29 proving run: ALREADY DISCHARGED on the USHER golden — see instrument-lanes row.)
- Teach lane 1 build/w1t3-node-verb-teach @2b815d5: GATED GREEN by doyle 2026-08-04 late (cold rig gate-2b815d5: negative control red-on-purpose with the defect's own signature, 611/611 + 824-set + 448-set + clippy + xtask + treqs + convoy-e2e all 0; first spt-bins red = rig's IR-39 face, rerun green). PUSHED by todlando, ls-remote byte-match verified. Lane 2 build/w1t3-node-verb-help @e0b22e4: GATED GREEN by doyle same night on the advanced rig (all legs 0, drift clean, census: `spt daemon` renders EXACTLY ONCE = the deprecation note; probes stop/start exit 0, daemon restart exit 2, alias intact; first-run reds VOIDED — 0.44 GB disk event, re-run per IR-31 fourth addendum). PUSHED + ls-remote byte-match verified 2026-08-04 late (todlando report: all three w1t3 remotes byte-match local — 14df542, 2b815d5, e0b22e4; verdict-run provenance settled by SUMMARY-2 FREE-AT-START-KB 103930236 = post-reclaim, sub-1-GB run was the voided one). Lane 2 detail: commit 2fc30f9 = re-scoped lane as ruled (3 rendered bare-form sites; measured end state: `spt daemon` renders EXACTLY ONCE in the generated reference, the deprecation note, down from 4; ~40 internal rustdoc sites cut, reshape recorded in commit body); commit e0b22e4 = FIND-2 bugfix (brain.rs:591 remedy respelled stop-then-start; measured: node stop/start --help exit 0, daemon restart --help exit 2 — old copy was unusable; no-test-pins-that-string gap recorded, routed to hertz batch). FIND-2 = add vs greenlit form, comment-record on #141 at hand-off. Doyle rulings on record: no e2e leg (rig-less path, assumed-absence accepted), no mutation arm (direct artifact/exit-code measurement suffices). Doyle gates the STACK at e0b22e4 after lane 1 verdict (rig advances).
- releases#161 FILED 2026-08-04 (BACKLOG, bugfix, operator-flagged): knock new-code multi-subnet mint ratified-unbuilt-untracked (ADR-0054 amendment 3 deferred slice dangled; RCA in issue body). NOT in this batch — operator triages. Pending operator rulings from same RCA: deferred-slice mandate (AGENTS.md-level), ADR/CONTEXT.md deferred-marker class audit.
- hertz test/resume-window-opens-pre-resume @0d78993 (off 92b2482, pushed): rulings 3+4 built (pre-window bracket sample + steal-test respell + reader-exit-reason instrument). GATED GREEN by doyle 2026-08-04 late (rig gate-2b815d5 SUMMARY-4: ancestry + one-file-delta verified, prebuild + targeted steal-e2e + clippy + treqs all 0).
- RE-AIM RIDER build/reaim-attach-intent @37afa57 (todlando, ONE commit off 92b2482 — AMENDED fix sha, supersedes abf7049 which was never pushed): GATED GREEN by doyle 2026-08-05T02:37Z (rig gate-2b815d5 SUMMARY-5, 14 legs: suites+clippy+xtask+treqs 0; dead RESUME_ATTACH_INTENT src count 0; ATTACH_INTENT_CHOSEN emit sites exactly 3; site=serve_request 0, site=serve_dispatch present; prior abf7049 ALL-GREEN bounds the fix delta). Fix cycle closed: F2 const re-parent verified by hertz adjacency read at the sha; F1 CLOSED by doyle ruling — output marker owed only for WITHIN-SITE ambiguity (from_seq's site emits real floor OR hardcoded 0 ⇒ cold=true earned; shell_channel's gen constant 0 ⇒ site token IS the marker, cold=true not redundant); F3 + serve_dispatch rename clean (hertz). hertz merge-tree vs main 862db9a: NO CONFLICT (tree 9662842) — INFRA-REGISTER single-file worry measured away. Commit body stays un-amended (ruled: no mutation under/after gate; ruling lives here + gate record). PUSH instruction issued; todlando's TR=1 prose-tag finding + hertz's one-mechanism-two-faces generalisation ride doyle's next IR-37 register touch. Delivered all four scope items: dead RESUME_ATTACH_INTENT emit + epoch static removed from resume_sessions (fn + deadlock warning kept); ATTACH_INTENT_CHOSEN at site=gap_resume|serve_dispatch|shell_channel (serve_request renamed in the fix sha); subscribe() enumeration (attach() production-reached from shellchan only; handoff() test-only, no breadcrumb, recorded); no behavior change. Deviation ACCEPTED: Brain::SUBSCRIBE_INTENT pub(crate) const names subscribe()'s intent once, caller logs that binding (bind-once at the right seat). Register row for the dead token REPLACED in-lane per convention (rides a 92b2482-base lane; main moved to 862db9a with doyle's IR-31/IR-39 addenda in other sections of the same file — single-file resolution at assembly, doyle sequences). 607-vs-611 spt-bin delta = lane predates node-verb units, flagged and accepted. hertz blind consumer read DONE (3 findings, all landed in the fix sha) + targeted F1/F2 re-check DONE at 37afa57; his earlier voided six-red table was the 0.44 GB disk event (IR-31 fourth addendum), re-measured green.

## ASSEMBLED — golden head `e2a0d7b` on `golden/w1-locksmith-t2` (doyle, 2026-08-05T02:54Z)

Worktree `.worktrees/golden-w1`, base main @862db9a (`BASE-IS-862db9a` leg exit 0). Merge chain,
`--no-ff`, in this order — **zero conflicts at every link**, `traceable-reqs.toml` auto-merged at
each product link, `docs/INFRA-REGISTER.md` auto-merged at the re-aim link exactly as hertz's
`merge-tree --write-tree` measurement predicted (tree 9662842):

1. `build/w1t2-shell-relink-force` @80a36a7 (#6)
2. `build/w1t2-subnet-status` @3cf720c (#75)
3. `build/w1t2-perch-gc` @cb0fa5e (#109)
4. `build/w1t3-node-verb-help` @e0b22e4 (#112 + BOTH teach lanes — ancestry measured: e0b22e4 ⊃
   2b815d5 ⊃ 14df542, so one link carries the whole W1T3 stack)
5. `build/reaim-attach-intent` @37afa57 (re-aim rider; push byte-match confirmed independently by
   doyle ls-remote AND hertz, not relayed)
6. `test/resume-window-opens-pre-resume` @0d78993 (hertz)
7. `test/probe-green-capture` @c65b838 (hertz, IR-35 re-measure)

**PRE-HAND-OFF GATE PASSED** (`golden-head-gate.sh` → `gate-logs/GOLDEN-HEAD.txt`), 02:54:42Z →
03:01:11Z: `BASE-IS-862db9a` 0 · `cargo build --workspace` 0 · `cargo clippy --workspace
--all-targets -D warnings` 0 · `cargo run -p xtask -- check` 0 (no CLI-reference drift, and this
batch renames a primary verb across 44 clap surfaces — a real exercise, not a no-op) ·
`traceable-reqs check` 0. FREE-AT-START-KB 97190984 → FREE-AT-END-KB 86098356. Post-gate structure
verified: working tree clean (only untracked rig artifacts, never committed), 21 commits / 7 merge
commits off main, and all NINE lane tips ancestry-confirmed contained — 80a36a7, 3cf720c, cb0fa5e,
14df542, 2b815d5, e0b22e4, 37afa57, 0d78993, c65b838.

**NOT PUSHED, deliberately.** Pushing `golden/**` starts the full suite, and golden runs are
deployah's under the golden-head intake restructure — doyle assembles and hands off, never runs.
The head is handed as a local branch + sha.

### GOLDEN CANDIDATE = `0a25b77` (NOT the assembly head) — RE-GATED GREEN, CLEARED TO RUN

deployah authored the 0.55.0 bump onto the tested tree (bump-in-PR: a post-green bump would make
the tested sha and the shipped sha two different objects). Candidate `0a25b77` = `e2a0d7b` + that
one commit. **Re-gated 03:16:17Z → 03:19:23Z, 11 legs, ALL EXIT 0** — deliberately NOT a rerun of
the same four legs, because the bump's whole claim is that it touched nothing but release files, so
that claim was made falsifiable BEFORE spending compute on it:

- `head-is-0a25b77` 0 · `parent-is-e2a0d7b` 0 (sits on the gated assembly head) · `base-is-862db9a` 0
- `bump-touches-only-release-files` 0 (changed-set == exactly CHANGELOG.md + Cargo.toml + Cargo.lock)
- `no-code-in-bump` 0 (zero `crates/` paths moved — if this failed, the e2a0d7b greens stop carrying)
- `workspace-version-is-0.55.0` 0 · `changelog-has-0.55.0` 0 (no version floor before it ships)
- `rg-build` 0 · `rg-clippy -D warnings` 0 · `rg-xtask check` 0 · `rg-treqs` 0
- FREE-AT-START-KB 86101468 → FREE-AT-END-KB 79985492. Tree clean (only untracked rig scripts).

deployah's lock check EXCEEDED the spec I gave: he pulled the owning package name for each of the
14 changed Cargo.lock line pairs and compared that SET against `cargo metadata --no-deps` —
byte-identical, 14 first-party crates, zero third-party entries moved. A pure line count (what I
asked for) would have passed a dependency swapped in at equal arity; the name-set comparison would
not. Record posted as comment 5187112415 on #141 BEFORE any golden run; #113 relocated and verified
on BOTH sides (#141 sub_issues now 5, #23 returns 10 including #113, state still GREENLIT).

## Owlery-noun thin lane (RULED 2026-08-05, doyle; deployah swept, hertz builds NEXT batch)

Deployah's read-only sweep found the obvious brief is a TRAP, and that is the finding. The
population splits into two classes a naive grep MERGES, at roughly 90:2 against the one you want.

- **CLASS A — the lane. Copy defects in text a user reads. Exactly two source sites:**
  `crates/spt/src/cli.rs:572` (clap doc "Census the owlery…" — ONE edit, THREE renders: `endpoint gc
  --help`, `docs-site/src/cli/reference.md` L2310 + L2675; regen propagates) and
  `crates/spt-daemon/src/daemon.rs:176` (`PERCH_CENSUS_SKIPPED: owlery unreadable` eprintln —
  operator-facing, and invisible to a help-text-only framing). Verify on the RENDERED artifact.
- **CLASS B — EXPLICIT NON-GOAL, written INTO the brief:** `owlery` is a real on-disk directory
  (`perch.rs:66 owlery_dir() -> spt_home().join("owlery")`, REQ-HAZARD-SINGLE-PATH-SOURCE); ~85
  string literals + 107 files carrying the identifier. Renaming it is a STORAGE MIGRATION with a
  compatibility story for every installed perch tree. The boundary is BINDING because the grep
  returns both classes and the path hits dominate — a brief relying on the builder noticing the
  trap mid-lane has already failed.
- **SPLIT OUT, does NOT gate the lane:** `spt_home()` is `<home>/.spt-core` while the perch tree
  under it stays `owlery/`, so retiring the noun in copy leaves docs describing a directory by a
  name used nowhere else. Coherent (path names are not prose) but it must be a RULING with
  STORAGE.md's owner, never a side effect of a copy lane.
- **⚠ THE "EXACTLY TWO SITES" COUNT WAS WRONG — corrected by hertz at build time, doyle ruled (b)
  2026-08-05.** The lane is **THREE** class-A sites, not two. The missed one is
  `crates/spt/src/cli.rs:21997` — an `eprintln!` in the `endpoint gc` path, *"PERCH-GC: the owlery
  root could not be read … nothing was classified and nothing was removed"*. It is the direct
  SIBLING of the ruled `daemon.rs:176` (same failure, same surface — daemon face vs CLI face), in
  the SAME FILE and on the SAME subcommand as the ruled `cli.rs:572`. **Deciding argument, and it
  is a defect report against the brief rather than a scope request:** the lane as originally scoped
  makes `spt endpoint gc` DISAGREE WITH ITSELF — help renders "Census the perch tree…" while the
  same command still prints "the owlery root could not be read" on an unreadable root. A copy lane
  whose product is a fresh internal inconsistency on one command is worse than the defect it fixed,
  and it is falsifiable in one command. The site was always inside the brief's own inclusion
  criterion ("operator-facing, invisible to a help-text-only framing"), so including it APPLIES the
  boundary rather than widening it. Noun: **"perch tree"**, sourced from CONTEXT.md, not invented.
- **EXCLUDED from this lane, filed separately:** `crates/spt-daemon/src/drivehub.rs:593`
  (`LAUNCH_REFUSED_FOREIGN_HOME: this daemon serves owlery …`). hertz measured it is a `format!`
  inside an `Err(String)` but did NOT trace it to a render site, so "a user reads this" is REASONED,
  not measured — and an unmeasured site does not ride a lane whose whole discipline is measured
  user-facing text. Its own first task is the render trace, which decides it either way. hertz
  flagged the weakness in his own candidate; the ruling follows that, not around it.
- **WHY THE SWEEP UNDERCOUNTED, and the discriminator that fixes it (hertz):** the original probe
  (string literals + rendered reference) was sound but lost these, because **a literal containing
  `owlery` as PROSE is indistinguishable from one containing it as a PATH SEGMENT**, and the path
  segments dominate the population. Requiring **WHITESPACE ADJACENCY** (`"… owlery …"`) drops every
  `join("owlery")` and leaves prose — that is the discriminator the class-A/class-B split actually
  needed, and its absence is why a confident "exactly two" was published as binding. A count is only
  as good as its discriminator; the gater published deployah's count as a boundary without one.
  Correctly excluded by classification rather than by grep: `perchgc.rs:272/917`, `registry.rs:25`
  (code comments); `perchgc.rs:928`, `registry.rs:312`, `picker/data.rs:1337` (test assertions).
- **METHOD, recorded from deployah's own two corrected probes:** a count without its classification
  ("107 files") is noise; and `^\s*///.*owlery` could not express the hunt because `///` cannot
  distinguish a clap-attached doc comment from plain rustdoc — 20 confidently-irrelevant hits. The
  probe that worked (string literals + rendered reference) is the one that surfaced the
  `PERCH_CENSUS_SKIPPED` sibling. A filter that cannot express the hunt returns a confident wrong
  population, not an honest zero.

**HAND-OFF BLOCKER (live):** `alchemy-0` is OFFLINE (all three shells are — PACER-0, alchemy-0,
alchemy-1). Board writes go through alchemy-0 ONLY, and `shell cmd` merely SPOOLS to an offline
instance — a spooled-but-undrained command does NOT discharge the precondition, which requires the
record to EXIST on #141 before golden runs. alchemy-0 nests under deployah's perch, and deployah
needs it up for the greenlit-form check regardless, so the bring-up rides the hand-off.

**Adds/drops to comment-record on #141 before any golden run:**
- ADD teach lane 1 (`w1t3-node-verb-teach`, emitted-string + assertion repins + docs-site pages)
- ADD teach lane 2 (`w1t3-node-verb-help`, clap doc comments + reference regen) incl. FIND-2 bugfix
- ADD re-aim rider (`reaim-attach-intent`) — replaces the withdrawn obs lane. ⚠ CORRECTED BY
  REPLACEMENT (deployah measured the head, 2026-08-05): the breadcrumb was RENAMED, not just
  deleted, so BOTH tokens must be named in the record AND the release note. Old
  `RESUME_ATTACH_INTENT`: gone from code at e2a0d7b (sole hit = INFRA-REGISTER prose), was ×2 in
  brain.rs at v0.54.0, untrustworthy in any v0.54.0 log. New `ATTACH_INTENT_CHOSEN`: zero
  occurrences at v0.54.0, three live sites — attach.rs:295 `site=gap_resume`, attach.rs:387
  `site=serve_dispatch`, shellchan.rs:298 `site=shell_channel`. Naming only the old token would
  stand a SECOND clean-zero manufactory where the first was removed (reader greps the retired
  string post-batch, gets zero, reads "path went quiet" instead of "token moved") — a retraction
  sweeps the diagnostic STRING, not just the behavior.
- ADD hertz test lanes @0d78993 and @c65b838
- #113 echo commune cadence: RULED — RELOCATES to milestone **#23 NOW-SIGNAL**, state stays
  GREENLIT, recon lane is its first task. Ground: its load-bearing clause is the surfacing-boundary
  defect ("echo communes are NOT surfaced to the live agent's running context — spt-core currently
  does this"), and #23 already holds the what-reaches-a-running-context family (#16/#17/#18
  categories, #14/#133 hints injection, #44/#45 attachment alerts, #33 mind-tier). #22 IO-PARSER
  LOST and the reason is recorded: the more-done sentinel mints at each output/tool-call boundary,
  so IO-PARSER may be a PREREQUISITE, never the owner — check the overlap at #23's intake.
- #123 resume control-steal race: NOT a buildable drop — a hunt whose APPARATUS shipped. Stays
  open/WIP, carried forward.
- **Version: BUMP TO 0.55.0 RIDES THIS BATCH** (deployah authors before golden; head reads 0.54.0,
  CHANGELOG tops out at [0.54.0], no [Unreleased]). Bump-in-PR standard — a post-green bump would
  break the ADR-0050 tested-sha == shipped-sha invariant. Lock must verify version-only.
  ⚠ The bump commit means the head I gated is NOT the head deployah runs — I RE-RUN the four
  pre-hand-off legs on the bumped sha before it goes.

**Staged, NOT yet filed (deliberate):** the stale-resume-brief INFRA-REGISTER row. Filing it now
would put a commit on main that the golden head cannot fast-forward past (ADR-0050 tested-sha ==
merged-sha). It files on main immediately AFTER the batch lands. THREE sightings, same night, three
different agents — and the third is what decides the row's wording. hertz: two briefs, same node,
three independent monotonic orderings (routed_at_ms, spill filename, vector counter) ALL ranking
the staler-content brief as newer; four one-command falsifiers recover it (main sha, pool count,
lane tip, issue state). doyle: own resume carried main @92b2482 with teach lane 1 "mid-flight",
hours stale. todlando: a NEGATIVE sample — his later-routed brief WAS the fresher one, so ranking
by timestamp would have happened to pick right on his pair.

⇒ Scope settled by measurement already in hand (todlando asked whether the VECTOR ranks correctly
on hertz's pair; hertz's own artifact answers it — his staler-content brief carries vector
1242529/1242531 against the fresher one's 1241542/1241544, so the vector ranks WRONG too). The row
therefore names **no envelope-side ordering signal at all** — not routed_at_ms specifically.
Stamp, spill-filename epoch, and the monotone per-node vector sequence are all uncorrelated with
content recency. The vector is the most dangerous of the three: a stamp looks like a clock and
invites suspicion, a sequence number looks like an ordering and does not.

⇒ The row must say the ordering signal is **UNCORRELATED, not inverted**. "Prefer the newest
brief" is not a rule with an exception; it is a coin-flip that reads as reliable until the day it
re-opens a closed issue (hertz's visible failure mode was exactly that, plus under-counting the
pool row under a live gate). Two samples with opposite outcomes on the same mechanism is stronger
evidence than two agreeing ones, and neither agent could have known which pair he held without
checking content against measurement. Recovery is therefore never "pick a brief" — it is
re-deriving state from the box — never rank the briefs at all. Rule: a brief's RULINGS are durable,
its STATE is a hypothesis. Method that works, and why: hertz's four falsifiers (main sha, pool
count, lane tip, issue state) are each a content claim checkable in ONE command against a source
NEITHER brief controls.

⇒ PRE-REFUSED DISCRIMINATOR, recorded so it is not rediscovered as a finding: file SIZE ranks the
fresher brief correctly on BOTH pairs (hertz 16308 > 12649, todlando 14138 > 10418) — 2 of 2, the
only signal that survives both samples. **Do not use it.** Size measures RICHNESS, not recency;
the two correlated here only because todlando's thin brief happened to be a correction fragment,
and a stale FULL state dump is long (hertz's staler brief was 12649 bytes). Two full dumps hours
apart leave size flat or inverted. It is the exact shape this whole entry is about: a signal that
reads reliable until the pair where it re-opens a closed issue. Handed over pre-refused by its own
finder.

## Assembly mechanics (when all lanes gated)

1. Merge chain off current main, order: product lanes (#6, #75, #109, #112, #113, F, U3) then test/instrument lanes; traceable-reqs.toml merge order is doyle's to sequence — single-file conflicts resolved at each link, never batched.
2. Compile-gate + `traceable-reqs check` on the assembled head pre-hand-off.
3. Hand head to deployah. Every drop/add vs the greenlit form above comment-recorded on #141 BEFORE golden runs; a dropped request relocates or returns to eval, never dangles.
4. Red golden hands back to doyle, RCA-first.
5. **POST-LAND — CLOSED 2026-08-05.** Itemised, because two of the four did NOT resolve the way
   they were written:
   - **Pools — TWO released, not five, and the correction is hertz's.** I called "release all five"
     and that was MY ERROR: the five came from his pool-COUNT correction (how many he HOLDS), and I
     let it stand in for how many LANDED — the exact population substitution IR-40 is about, made
     in the same hour I filed it. Only `0d78993` + `c65b838` are ancestors of `0a25b77`; the other
     three (`579e0b3`, `6e878ec`, `6da6e7e`) are UNLANDED and KEEP their claims, because releasing
     a claim marks a lane finished and lets the next claimant loudly overwrite unlanded artifacts.
     hertz held the ambiguous half and asked instead of inferring from the round number.
   - **#158 re-homing line — RE-HOMED, its carrier never existed.** It was owed "in the #109 PR
     body", but under ADR-0050 this batch landed ff-only with NO per-lane PRs (verified: zero PRs
     for any `w1t2`/`w1t3`/`reaim` branch). The obligation was written when lanes were PR-shaped
     and outlived that shape. Filed instead as a comment on releases#109 (5187412269, verified
     landed independently of the spool receipt). ⚠ Also a near-miss worth keeping: `spt-bs-core`
     PR #109 is an UNRELATED merged digest-test PR — a shared number is not a shared object.
     **General rule: an artifact owed in a PR body needs an explicit new home when a batch lands
     without PRs, or it evaporates with the assumption that created it.**
   - **#156 audit dispatch — TRIGGER NOT MET, correctly nothing owed.** The question fires AT
     GREENLIGHT; #156 is still `state: BACKLOG` (operator triages). Recorded as unmet rather than
     forced — a trigger fired early is a worse artifact than one left waiting.
   - **Register row — FILED** @`327f1f8` (IR-40) and @`e8805f7` (arm-B mechanism + IR-29 closure).
6. Register sweep at next intake (standing mandate).

### GOLDEN FIRED — run 30971976024, candidate 0a25b77 (deployah, 2026-08-05T03:20:32Z)

Workflow `golden`, branch `golden/w1-locksmith-t2`. deployah confirmed the run's OWN headSha rather
than inferring the fire from a clean push exit, and pushed EXPLICITLY to `origin` — the worktree
carries two remotes (origin `BigscreenVR/spt-bs-core`, mirror `SaberMage/spt-core`) with no upstream
and no pushDefault set, so a bare push would have resolved by git's default rather than by intent,
and golden on the wrong repo has no cheap undo. Clean branch create, no force. Prefire free space
measured AT the fire: 76.28 GB, 44.28 GB above the 34 GB floor. Red comes to doyle RCA-first;
same-sha rerun decisions ride doyle's triage, never deployah's call. Nothing post-land starts until
doyle calls the ff.

### GATE RIG DISPOSED — 16.13 GB reclaimed (doyle, during the golden run)

Done in the dispatch window rather than after, per the pre-flight discipline. Classified BEFORE
touching anything: `Get-Item -Force` → real Directory, ReparsePoint **False**, no LinkType/Target,
19.05 GB on disk. INBOUND sweep across `.worktrees/`, the project target, and `~/Documents/projects`
found reparse points (oh-my-pi and rebno `node_modules`) but **NONE aimed at `gate-2b815d5`**;
`CARGO_TARGET_DIR` unset. Pool claim released first (`pool-release`, mine, lane_label
`gate-2b815d5`). Reaped the **target SUBTREE only** — worktree dir and `gate-logs/` both verified
INTACT afterwards, so SUMMARY-2..5 survive as evidence. FREE 126446575616 → 143763046400 bytes =
**16.13 GB**. Treat that as a FLOOR, not an exact figure: the golden run was building on the same
drive throughout, so the delta is contaminated in both directions by construction.

## W1T3a dispatch (#112, todlando) — ruling

`spt node` becomes the primary verb for the per-machine supervisor surface; `spt daemon` stays a
FULL alias (same parse tree, deprecation note in help, no removal this milestone). CLI surface
only — internal names (spt-daemon crate, CONTEXT.md model term) unchanged. CONTEXT.md gains a
disambiguation line: the retired `spt-node` separate-deliverable (process concept) is NOT this
verb. REQ mint rides the lane. Lane enumerates the full `spt daemon` subcommand surface first and
mirrors it; alias-equivalence asserted per subcommand, not just the root.

## W1T3b (#113) — recon before build

Issue text is operator-authored and mandates empirical surfacing from the sister
(`../claude_skill_owl/`): more-done sentinel semantics, 15-min echo window, echo NOT surfaced to
running context, boundary-edge delta commune. Recon lane surfaces the sister cadence as a written
contract proposal → doyle rules → build lane. Config-knob precedence chain (CONTEXT.md:172,
narrowed 2026-08-03) binds the knob shape: per-endpoint → node → adapter-default → core default.
