# W4 / #229 gate — VERDICT: PASS at `57a0d27c` (doyle, 2026-08-29)

Lane: `feat/w4-229-role-absence`, base 9ec181e9. Straight-to-build per the grill ruling
(skip-with-loud-status), with todlando's premise measurement first — premise HELD (chain
turn.rs:130 → UnknownRole → pulse_tick → note_outcome traced at source; grill's
lifecycle.rs cite drift 488-496 → 491-500 corrected by replacement in the grill).

## Rulings made during the lane

1. **Status field shape:** a NEW additive member of the psyche field family
   (`psyche_role_absent {role, since}`), never `psyche_host_error` — the only existing
   member is an ERROR latch and absence is not a failure (stamping one + bumping attempts
   on a structural condition is the #136-adjacent churn the grill ruling avoids).
   Ratified todlando's read; "a surfaced state field" meant status semantics.
2. **wake_resume_bind_e2e contract question:** option (A) — fixture declares
   psyche_resume. The old green was a SIDE-EFFECT green: the nested psyche perch was
   minted inside run_psyche_event_turn BEFORE the role spawn, by a turn that then failed
   UnknownRole and struck — the assertion passed on a leftover of the exact defect this
   lane removes. (C) refused by the ruling's own logic (core must not provision a psyche
   for an endpoint that can never run one); (B) refused (weakens a true promise).
   BINDING RIDER delivered: negative polarity of the rehost promise pinned — role-absent
   endpoint mints NO nested perch (lifecycle.rs ~3711-3729, with provenance comment and
   the error-latch-never-stamped assert). First fixture attempt hit the manifest
   validator's named refusal ({psyche_dir} retired for psyche_resume) — caught in 0.045s
   with a self-explaining message; the surface working as designed.

## Battery record

**My rig (env-scrubbed, leg-0 reap-by-path adopted into the driver), exit files read:**
claim/fixtures/treqs/clippy/units (2115/2115 workspace --lib --no-fail-fast)/spt-store/
spt-live/wake_resume_bind_e2e (1/1, 28.5s)/xtask check — ALL 0.
**Builder, Windows full workspace at 57a0d27c:** 3374/3376; the two reds are a MOVING SET
(previous run failed a different pair at the same lane; all four pass alone post-reap
4/4) with three distinct mechanisms none reachable from the delta — the banked
RANDOM-VICTIM family (one env cause: daemon leaks + parallel load, filed with hertz
today, green-runs-leak-too measurement attached). Baseline-under-load run declined: a
baseline green is uninformative under a coin-flip environment (asymmetric instrument).
**Builder, Linux full workspace:** 3335/3336; the one red is activity_link_push_e2e at
30.077s — the SAME clock-shaped bringup bound co-signed PRE-EXISTING TEST-RIG DEFECT
this morning, reproducing under parallel load exactly as that classification predicts.
**Lane evidence:** three role-absence units (both polarities + self-clear), nested-perch
negative polarity, repinned fixture, clippy/treqs/xtask 0 on both arms.

**Land: ff-only to main, tested sha == merged sha.**
