---
name: feedback-gate-oscillation
description: Don't re-open a correct gating decision when new data arrives across async crossings — lock first correct ruling, treat new data as confirm-or-blocker only
metadata:
  node_type: memory
  type: feedback
  originSessionId: doyle-gen19-2026-06-15
---

Lock the first correct gating decision. Do NOT re-open when new enumeration data arrives mid-async — especially when multiple options are architecturally sound.

**Why:** W0.4 lost-update fix oscillated A (fs2 sentinel lock) ↔ B+ (field-split) across crossing async messages. Both were correct. Re-ruling each time new data arrived whipsawed todlando mid-build. Todlando had to stop and re-read the ruling multiple times.

**How to apply:** When gating a design decision with multiple valid options, pick one and lock it. New information = "does this break my ruling?" (blocker) or "does this confirm it?" (proceed). Never re-open a sound ruling just because an alternative was also discussed. This is especially critical across async bus exchanges where messages cross in flight.
