# JIT — #241 emission single-write ASSEMBLY (doyle, authored 2026-08-29 pre-clear)

Goal: compose the parked emission lane onto current main, gate the ASSEMBLED head, land,
then hand the SEMAPHORE golden head to deployah per the golden-head-intake runbook
(docs/golden-head-intake, PR #135 rules — greenlit-form check, dropped-request
relocation, never-executed-cells list).

## State (measured at authoring)

- main = origin/main = `57a0d27c` (#229, W4). All SEMAPHORE members landed except #241:
  #235/#237/#238/#239/#229 ACCEPTANCE. Milestone #242 GREENLIT.
- Emission lane PARKED at `d0fdd58d` (feat/emit-single-write, pushed; verified on origin
  this morning). BUILT + all waves gated PASS pre-park. Its base includes
  feat/autostart-emit-carrier @0ebe0fbd (hertz's, pushed) — 3+3 commits not in main.
- ⚠ `.worktrees/emit-single-write/target` was REAPED today (disk event #2) — assembly
  REBUILDS from cold or claims a warm pool sequentially. Warm gate rig
  `.worktrees/gate-w1-786d2381` at 57a0d27c, pool label gate-w4-229 — RECLAIM per lane.
- Grill row: assembly-only work remains — compose off current main with the
  pick-fidelity audit (`xtask pick-audit`, IR-57, FIRST REAL USE where the chain is
  pick-shaped; blob-parity leg where merged), never-executed-cells list in the hand-off
  (the converted emitters' e2e paths ran in lane batteries; the assembled composition is
  first-run at golden depth).

## Steps

1. Fresh assembly worktree under `.worktrees/` off 57a0d27c; claim a pool
   (`asm-241` label) from inside it.
2. Compose d0fdd58d's chain onto 57a0d27c (merge or pick — decide by chain shape; if
   pick-shaped, run `xtask pick-audit` and file its first-use reading; if merged,
   blob-parity per rebase-fidelity limits: byte-identity only if main misses the files,
   else strip index/@@).
3. CLIPPY THE HEAD before anything (textual merge hides semantic composition breaks —
   the #182 v2 E0425 class). Fix shape if red: minimal declared stage-only commit in the
   landed idiom.
4. Gate battery on the assembled head, BOTH arms (drivers: rig `w4_gate_win.sh` pattern —
   leg-0 reap-by-path, env-scrubbed, per-leg exit files; kitsubito `~/gate-242-w1`,
   templates in scratchpad). Emission-specific legs: the converted emitters' suites +
   whatever `git diff` names. Random-victim family is LIVE on both boxes (daemon leaks,
   hertz queue) — moving-set reds vary before classifying, 4/4-alone precedent today.
5. Land ff-only (tested sha == merged sha), #241 → ACCEPTANCE via alchemy (`state '#241'`
   — ref form `#N`).
6. Golden head to deployah: assemble = merge chain check + compile-gate + treqs BEFORE
   hand-off; verify milestone rides in GREENLIT FORM (every drop/add comment-recorded on
   #242 BEFORE golden runs); include never-executed-cells list. Red goldens hand back to
   me RCA-first.
7. Milestone close: sweep docs/INFRA-REGISTER.md (ripe entries → riders); IR-57
   entry-figure correction (310/308→302/300) rides the next register batch; hertz fixup
   lane (clock-proxy wait + daemon leaks + tmp-homes) tracks separately.

## Cautions carried

- Pool claims from the lane's own worktree; `pool-claim` is last-writer-wins, enforcement
  speaks at the BUILD (IR-42/ir56).
- Disk: three floor events today. Before any build, read free space; trim own
  debug\incremental first (regenerable). Two live pools = ceiling.
- Exit FILES only, never wrapper status or completion notifications; read raws on any
  non-zero.
- Board ops through alchemy only. Gate records: append to a W-style verdict file +
  SEMAPHORE-242-GRILL.md dated sections (pattern of W2/W3/W4 files at repo root).
