Skip to content

Vesper Review — fix/drift-c-anchor-idle-suppression


Verdict: ACCEPTED ✅

Scope is exactly as tasked. Fix is surgical and does not touch anything outside the condition C / ANCHOR_IDLE gate. Apply instructions are correct per standing rules (defensive branch delete, no glob, no pre-created branch).


Spec Compliance

Item Requirement Result
Condition C suppressed while ANCHOR_IDLE Yes ✅ Confirmed — mode queried at top of C block, gate is is_anchor_idle bool
Conditions A and B untouched Yes ✅ A and B paths structurally unchanged, confirmed by T3 and T4
Gate is stateless (reopens on idle exit) Yes ✅ Confirmed — T2 exercises the flip from idle → ok, C fires on second call
Gate is narrow (ANCHOR_IDLE only, not DEGRADED or HALT) Yes ✅ T6 verifies gate does not suppress in MODE_DEGRADED or MODE_HALT
Fill-history reset semantics unchanged Out of scope ✅ Counters still increment during idle — carry-forward preserved for Atlas ruling
No pre-created branch Required ✅ Branch created at apply time only
PowerShell-safe apply (no glob) Required Get-ChildItem ... ForEach-Object form
Defensive git branch -D Required ✅ Present

Test Coverage Assessment

6 tests, all green. Adjacent regression 79/79.

T1 (suppression) and T2 (resumption) are the primary correctness tests. T3 and T4 confirm A/B still escalate from idle — important regression protection. T5 is a regression guard that the exact S51 scenario still fires when the engine is active. T6 prevents silent scope creep — other non-idle states cannot benefit from the gate without a deliberate code change.

Coverage is sufficient for this fix scope.


Key Findings from Orion's Engineering Questions

Three findings from Orion's Q1–Q4 answers are material to the Atlas architectural review. Adding these to the audit package now.

Q1 — Root cause confirmed: Pre-fix, _evaluate_directional_drift_guard did NOT consult engine state at any point. The C branch fired on counter values alone. This is the exact structural cause of S51. The fix adds the first and only _current_truth_mode() call in that function.

Q2 — Fill history carries pre-idle state: _drift_ticks_since_opposing_fill and _drift_fills_seen_this_session are NOT reset on ANCHOR_IDLE entry or exit. This explains why S51 fired at tick 26, not the theoretical tick ~65+ — the counter had already accumulated ticks from before ANCHOR_IDLE entry. The full countdown was partially consumed during active quoting. This means: even with this fix, when the engine exits ANCHOR_IDLE, condition C may fire quickly if the counter is elevated. The audit package should flag this for Atlas.

Q4 — Critical production finding: In the entire 52-session log record, all 6 drift-guard DEGRADED escalations are condition C. Zero A, zero B. This means A and B have never fired in production. This is highly relevant to the Atlas architectural review — the drift guard as a whole has been condition-C-only in practice, which strengthens the case that C's semantics need architectural clarification.


Scope Boundary Confirmed

Not touched (correctly deferred to Atlas ruling): - Fill-history reset on ANCHOR_IDLE entry/exit - Whether idle-era episodes count toward the FLAG-044 limit - Whether episodes from ANCHOR_IDLE escalation and ACTIVE escalation should have separate budgets - Conditions A and B - Cooldown model, episode limit values


Standing Rules Compliance (Orion Apply Instruction Rules)

  • ✅ No branch pre-creation
  • ✅ PowerShell-safe (Get-ChildItem ... ForEach-Object, not glob)
  • ✅ Defensive git branch -D before git checkout -b
  • ✅ Patches sorted by Sort-Object Name

— Vesper
2026-04-22