---
name: a-test-can-be-green-on-a-side-effect-of-the-defect-you-are-removing
description: "a passing assertion can be resting on a leftover of the very defect a lane deletes — fixing the defect reds the test, and the red is the fix working"
metadata: 
  node_type: memory
  type: feedback
  originSessionId: 880d1285-2246-4429-9b5e-eb4331af141f
  modified: 2026-08-29T18:33:30.566Z
---

Measured 2026-08-29 (W4 / releases#229, todlando; ruled by doyle). The lane made an undeclared
`[session.psyche_resume]` role SKIP instead of striking per fire. `wake_resume_bind_e2e` then
redded on its re-host assertion, which reads the nested `{id}-psyche` perch as proof the daemon
re-hosted the endpoint.

**The chain, measured rather than guessed:** that perch is minted INSIDE
`run_psyche_event_turn` and BEFORE the role spawn (`write_psyche_context_file`, then the custody
mint). The fixture deliberately declared `psyche_init` and no `psyche_resume`. So pre-fix: the
turn ran → minted the perch → reached `run_bounded_stdin` → `UnknownRole` → FAILED turn → a
strike. **The assertion was passing on a side effect of the defect the lane removes.** Skip the
doomed turn and nothing mints the perch.

**Why it matters:** the red looks exactly like a regression, and the cheap reading ("my change
broke a passing test") points at reverting the fix. The gater refused the arm that would keep
the leftover alive — core must not provision a psyche for an endpoint that can never run one —
and refused weakening the assertion, since the re-host promise is REAL for every endpoint that
declares the role.

**How to apply:** when a lane reds a test it did not touch, trace WHAT PRODUCED the asserted
artifact before classifying. If the producer is the code path you just deleted, the old green
was a side-effect green and the fixture is what moves — a real adapter declares the role, so
declaring it in the fixture tests the promise directly instead of through a doomed turn's
leftovers. **And pin the negative polarity in the same change** (gate rider): role-absent ⇒ NO
nested perch, paired with role-declared ⇒ perch IS minted, or the negative assert passes
vacuously against a build that never mints one. Kin:
[[measure-first-tests-the-design-premise-not-the-ticket]],
[[declining-a-credit-specifies-the-requirement]].
