Skip to content

Opponent-Model Level Floor Patience

TransitionShield keeps a monotone opponent-model level floor, but the raise gate should filter posterior noise rather than simply wait for wall-clock samples.

The runtime posterior iop.mix_alpha can be close to uniform early in a run. With a hard argmax, a tiny one-step preference for a higher level can happen long before the opponent model has meaningful evidence. If the shield has already accumulated enough elapsed samples, treating patience as "samples since the last raise" allows that one blip to raise the monotone floor permanently.

The patience gate therefore tracks a next-floor candidate:

  • if the mode's estimated floor is at or below the current floor, the candidate and candidate sample count reset
  • if the estimated floor is above the current floor, the candidate is current_floor + 1
  • only samples observed while that same candidate remains active count toward patience
  • a posterior jump from L0 to L2 still raises one level at a time: first L1 after one full candidate window, then L2 after another full candidate window

This preserves the conservative monotone floor while preventing delayed single-sample argmax noise from looking like a rapid L0 -> L2 curriculum.

The default monotone_floor estimate is argmax(mix_alpha). The optional credible_floor estimate is the largest suffix retaining the scheduled posterior mass. Both modes pass the resulting candidate through the same gate, and shield inspection receives the gated floor explicitly so it cannot bypass patience by recomputing from the posterior.