Atlas Ruling — ANCHOR_IDLE State (FLAG-044 Refinement)¶
Received: 2026-04-21
Trigger: S47 degraded_episode_limit_halt at 33 ticks — Katja's post-session question on why the engine halted instead of idling
Core Ruling¶
Option B is correct. ANCHOR_IDLE approved as a distinct state.
Raising the episode cap (Option A) is a temporary patch. The root flaw is structural: both regime-based pauses and safety-based pauses are currently routed through DEGRADED. That is wrong.
Architectural Correction¶
Two categories must be formally separated:
1. Regime-based pauses → market is not favorable (wait it out)
2. Safety-based pauses → system risk or integrity concern (protect + recover)
Anchor saturation is a market condition, not a failure condition. It should not consume failure budget (episodes).
Approved State Model¶
ACTIVE
├── anchor hostile → ANCHOR_IDLE (regime pause — no episode count)
├── drift/corridor/truth → DEGRADED (safety pause — episode counted)
└── duration elapsed → HALT
ANCHOR_IDLE
├── anchor normalizes → ACTIVE
└── drift/corridor/truth fires → DEGRADED (episode counted)
DEGRADED
├── recovery ok → ACTIVE
└── episode limit hit → HALT
Each state has a clean, non-overlapping responsibility: - ACTIVE — trade - ANCHOR_IDLE — wait for market - DEGRADED — protect system - HALT — stop session
ANCHOR_IDLE Specification¶
Entry: anchor saturation condition met → ACTIVE → ANCHOR_IDLE
- cancel all open orders
- stop quoting
- log: ANCHOR_IDLE_ENTER
- NO episode increment
- NO cooldown logic
- NO recovery machinery
While idle: - continue full observation (anchor signal, drift, truth, corridor) - no quoting - no episode increments - if drift/corridor/truth fires → escalate to DEGRADED (episode counted from there)
Exit: anchor returns to acceptable range with hysteresis + stability window
- anchor_mean < exit_threshold AND stability window satisfied (N consecutive ticks)
- log: ANCHOR_IDLE_EXIT
- transition: ANCHOR_IDLE → ACTIVE
ANCHOR_IDLE does NOT lead directly to HALT. Only DEGRADED can escalate to HALT.
Q2 — Should drift also use ANCHOR_IDLE?¶
No. Drift stays in DEGRADED.
- Anchor = environment (external market structure)
- Drift = consequence (what the system is experiencing — flow imbalance, adverse selection risk)
Drift is a safety signal, not just a regime signal. Correct separation: Anchor → ANCHOR_IDLE, Drift → DEGRADED.
Q3/Q4 — Cap adjustments or hybrid?¶
Not needed. Do not raise the global cap. Do not add anchor-specific cap hacks. Those compensate for a modeling error that is now being fixed cleanly.
Required Tests (Orion)¶
- Anchor saturation fires → enters ANCHOR_IDLE (no episode increment)
- Persistent anchor hostile → stays idle indefinitely (no halt)
- Anchor normalizes → exits ANCHOR_IDLE, resumes quoting
- Drift fires during ANCHOR_IDLE → transitions to DEGRADED (episode counted)
- No path from ANCHOR_IDLE → HALT without passing through DEGRADED
Session-Level Impact¶
This change enables the engine to: - Survive a 2-hour hostile anchor regime without halting - Be present when the regime improves (S47 showed CLOB-AMM dropping to 1-3 bps — the engine missed that window by halting early)
Locked Principle (Atlas, 2026-04-21)¶
"The engine should not consume failure budget for conditions that are expected to persist. Anchor saturation tells the system to pause — not to panic."
— Atlas, Chief Strategy Officer, BlueFly AI Enterprises