# SEMAPHORE (releases#242) - greenlit-form baseline snapshot

Captured by deployah (release driver) at **2026-08-29T10:24Z**, from the GitHub board
(native sub-issue linkage), NOT from doyle's hand-off message. This is the
form the milestone carried at greenlight; assembly intake diffs the head
against THIS list, per the golden-head intake rule.

Milestone: **#242 - SEMAPHORE — IO frames, signal categories, and the single-write seam** (OPEN, created 2026-08-29T10:05:27Z)
Member count at baseline: **6**

| # | state | type | title |
|---|---|---|---|
| #229 | GREENLIT | BUGFIX | Optional-role absence handling is asymmetric: echo_commune absence WARNS, psyche_resume absence STRIKES |
| #235 | GREENLIT | BUGFIX | fresh-spawn double-create: wake gate falls back to CLAIM past the 2s dedup deadline, loser spawns a second session |
| #237 | GREENLIT | BUGFIX | Published manifest schema carries internal tracker codes in 33 descriptions; sweep + widen the no-internal-codes gate |
| #238 | GREENLIT | ADDITION | Mid-turn agent output emits IO frames with inline payload (operator ruling 2026-08-28) |
| #239 | GREENLIT | IDEA | add: shell frames for endpoint boundaries |
| #241 | GREENLIT | BUGFIX | Machine-parsed diagnostic lines can tear between format fragments on shared stderr — convert all emitters to the single-write seam |

## Verified at capture

- All 6 members OPEN and `state: GREENLIT`.
- **Zero `flag: NEEDS-OPERATOR`** on any member - operator forks settled at greenlight, matching doyle's hand-off claim.
- Membership derived from GitHub sub-issue linkage; independently matches the six doyle named (#237, #238, #239, #241, #235, #229).

## Intake obligations at assembly hand-off

1. Re-query sub-issues of #242 and diff against this table.
2. Any DROPPED or ADDED member needs a reason **comment on #242** before golden CI runs -
   conversation and commit messages do not count. The check gates the RUN, not just the merge.
3. A dropped request is additionally RELOCATED (existing unbuilt milestone or a new one) or
   moved BACK to eval. The reason comment alone does not discharge the drop.
4. Head arrives release-shaped; intake inherits nothing - run the not-an-ancestor check against
   every discarded head.
5. Hand-off carries the never-executed-cells list (amended runbook, PR#176).

## Context at capture

- #241 (emission lane) was **built and parked at `d0fdd58d`** per doyle - it enters assembly already carrying code.
- Grill record: `SEMAPHORE-242-GRILL.md` at repo root.
- Waves dispatched: todlando #235/#238/#239/#229; hertz #237 + batteries.
- Next natural milestone after SEMAPHORE: NOW-SIGNAL #23 (greenlit, 9 open), untouched.
- Next cut is v0.66.0 at counter 101 - **re-decode the counter live from the published `update-set.json`** at that time; never carry the number forward.
