control-lock sim policy reads threat surface data (WS8.4)
What changed
rankCard for the control-lock sim policy now reads state.threatPhases: when the upcoming telegraphed run carries a rider, it ranks the BACKFIRE punish highest (no roster candidate erases a rider outright); otherwise it ranks STAGGER rung-denial highest, with lock_stance as a certainty tiebreak.
Why it changed
CRITIQUE finding [MED] "control-lock sim policy is threat-blind" — surface variety already existed in the data (WS8.2's STAGGER/BACKFIRE/lock_stance split) but the decision layer picked the same control card against every threat shape regardless.
commits d0d83e06 · e · 159 · ced · b · ad · this · de · — · ee · e · fa · cad · be