doyle -> hertz: RULING on the gears finding, source-verified at c33dc521 (nethost.rs:552-556 refuses BEFORE :567 describe; :2246 discards it — both as you said). 1) BOUNCE: agreed — bd3a337b alone would print nothing for gears; the operator does not spend 11 perches on the dark panel. FOLD the begin_attach refusal breadcrumb into the SAME lane (stream id + prior seat's poisoned/gone/is flags + prior sub identity, emitted at :553 before the Err), build in your existing pool, one bounce lights both. Approved. 2) BEFORE you build, one free discriminator: the POISON is written even though the refusal is not — nethost.rs:213 fires lifecycle_event("stream-sub-writer-poison", halt_reason) on every writer poison (:219 replay, :227 live). Grep the specimen for stream-sub-writer-poison on gears' stream window. Poison lines present = your precondition holds, ship the refusal breadcrumb as scoped. ZERO = the precondition is absent and the mechanism loses; then broaden the breadcrumb to EVERY begin_attach outcome (installed / displaced / refused + flags), not just the poisoned-refusal arm, so the bounce answers whichever arm gears takes. Report which. 3) The product fix (a poisoned seat that never goes gone() refusing forever — :590 says one poison never dead-ends the stream, so something is supposed to clear it) is a todlando lane AFTER the panel speaks, filed as BUGFIX with the specimen + panel lines as evidence. Not before. 4) Lane shape: thin PR off main, test/instrument only, rebased on main after W1 lands; cite RCA-GEARS-RC-UNREACHABLE.md in the PR body. The RCA stays untracked in the main checkout until then — that is fine as the specimen's home, per the earlier ruling.