[ { "id": "buy_full_cycle", "description": "IDLE → ARMED_BUY → PRIMED_BUY → IDLE(fire). Turquoise arm, dark_green prime, light_green trigger.", "steps": [ { "frame": "calibration/frames/20260420_200002_turquoise.png", "expected_color": "turquoise", "expected_reason": "arm", "expected_state": "ARMED_BUY", "expected_trigger": null, "expected_new_alerts": ["arm"], "expected_scheduler_running": false }, { "frame": "calibration/frames/20260420_185102_dark_green.png", "expected_color": "dark_green", "expected_reason": "prime", "expected_state": "PRIMED_BUY", "expected_trigger": null, "expected_new_alerts": ["prime"], "expected_scheduler_running": true }, { "frame": "calibration/frames/20260420_163303_light_green.png", "expected_color": "light_green", "expected_reason": "fire", "expected_state": "IDLE", "expected_trigger": "BUY", "expected_new_alerts": [], "expected_scheduler_running": false } ] }, { "id": "sell_full_cycle", "description": "Mirror of buy_full_cycle: yellow arm, dark_red prime, light_red trigger.", "steps": [ { "frame": "calibration/frames/20260420_171501_yellow.png", "expected_color": "yellow", "expected_reason": "arm", "expected_state": "ARMED_SELL", "expected_trigger": null, "expected_new_alerts": ["arm"], "expected_scheduler_running": false }, { "frame": "calibration/frames/20260420_172104_dark_red.png", "expected_color": "dark_red", "expected_reason": "prime", "expected_state": "PRIMED_SELL", "expected_trigger": null, "expected_new_alerts": ["prime"], "expected_scheduler_running": true }, { "frame": "calibration/frames/20260420_173004_light_red.png", "expected_color": "light_red", "expected_reason": "fire", "expected_state": "IDLE", "expected_trigger": "SELL", "expected_new_alerts": [], "expected_scheduler_running": false } ] }, { "id": "buy_phase_skip", "description": "ARMED_BUY → light_green direct (dark_green missed). Backstop `fire_on_phase_skip` emits phase_skip_fire alert.", "steps": [ { "frame": "calibration/frames/20260421_072757_turquoise.png", "expected_color": "turquoise", "expected_reason": "arm", "expected_state": "ARMED_BUY", "expected_trigger": null, "expected_new_alerts": ["arm"], "expected_scheduler_running": false }, { "frame": "calibration/frames/20260420_214908_light_green.png", "expected_color": "light_green", "expected_reason": "phase_skip", "expected_state": "IDLE", "expected_trigger": null, "expected_new_alerts": ["phase_skip_fire"], "expected_scheduler_running": false } ] }, { "id": "sell_phase_skip", "description": "Mirror: ARMED_SELL → light_red direct (dark_red missed).", "steps": [ { "frame": "calibration/frames/20260420_194505_yellow.png", "expected_color": "yellow", "expected_reason": "arm", "expected_state": "ARMED_SELL", "expected_trigger": null, "expected_new_alerts": ["arm"], "expected_scheduler_running": false }, { "frame": "calibration/frames/20260420_173004_light_red.png", "expected_color": "light_red", "expected_reason": "phase_skip", "expected_state": "IDLE", "expected_trigger": null, "expected_new_alerts": ["phase_skip_fire"], "expected_scheduler_running": false } ] }, { "id": "buy_catchup", "description": "Start with dark_green in IDLE (no arm observed). Catchup synth-feeds turquoise → emits arm+prime alerts. FSM ends in PRIMED_BUY.", "steps": [ { "frame": "calibration/frames/20260418_124645_dark_green.png", "expected_color": "dark_green", "expected_reason": "prime", "expected_state": "PRIMED_BUY", "expected_trigger": null, "expected_new_alerts": ["arm", "prime"], "expected_scheduler_running": true } ] }, { "id": "sell_catchup", "description": "Mirror: start with dark_red in IDLE. Catchup synth-yellow → arm+prime alerts.", "steps": [ { "frame": "calibration/frames/20260420_195701_dark_red.png", "expected_color": "dark_red", "expected_reason": "prime", "expected_state": "PRIMED_SELL", "expected_trigger": null, "expected_new_alerts": ["arm", "prime"], "expected_scheduler_running": true } ] }, { "id": "buy_post_fire_suppression", "description": "After BUY fire, residual dark_green in IDLE must NOT re-prime. User rule: new arming (turquoise) required before priming alerts become valid again.", "steps": [ { "frame": "calibration/frames/20260420_200002_turquoise.png", "expected_color": "turquoise", "expected_reason": "arm", "expected_state": "ARMED_BUY", "expected_trigger": null, "expected_new_alerts": ["arm"], "expected_scheduler_running": false }, { "frame": "calibration/frames/20260420_185102_dark_green.png", "expected_color": "dark_green", "expected_reason": "prime", "expected_state": "PRIMED_BUY", "expected_trigger": null, "expected_new_alerts": ["prime"], "expected_scheduler_running": true }, { "frame": "calibration/frames/20260420_163303_light_green.png", "expected_color": "light_green", "expected_reason": "fire", "expected_state": "IDLE", "expected_trigger": "BUY", "expected_new_alerts": [], "expected_scheduler_running": false }, { "frame": "calibration/frames/20260420_213706_dark_green.png", "expected_color": "dark_green", "expected_reason": "noise", "expected_state": "IDLE", "expected_trigger": null, "expected_new_alerts": [], "expected_scheduler_running": false }, { "frame": "calibration/frames/20260418_124645_dark_green.png", "expected_color": "dark_green", "expected_reason": "noise", "expected_state": "IDLE", "expected_trigger": null, "expected_new_alerts": [], "expected_scheduler_running": false } ] }, { "id": "sell_post_fire_suppression", "description": "Mirror: after SELL fire, residual dark_red must NOT re-prime until new yellow arming.", "steps": [ { "frame": "calibration/frames/20260420_171501_yellow.png", "expected_color": "yellow", "expected_reason": "arm", "expected_state": "ARMED_SELL", "expected_trigger": null, "expected_new_alerts": ["arm"], "expected_scheduler_running": false }, { "frame": "calibration/frames/20260420_172104_dark_red.png", "expected_color": "dark_red", "expected_reason": "prime", "expected_state": "PRIMED_SELL", "expected_trigger": null, "expected_new_alerts": ["prime"], "expected_scheduler_running": true }, { "frame": "calibration/frames/20260420_173004_light_red.png", "expected_color": "light_red", "expected_reason": "fire", "expected_state": "IDLE", "expected_trigger": "SELL", "expected_new_alerts": [], "expected_scheduler_running": false }, { "frame": "calibration/frames/20260420_195701_dark_red.png", "expected_color": "dark_red", "expected_reason": "noise", "expected_state": "IDLE", "expected_trigger": null, "expected_new_alerts": [], "expected_scheduler_running": false }, { "frame": "calibration/frames/20260420_210905_dark_red.png", "expected_color": "dark_red", "expected_reason": "noise", "expected_state": "IDLE", "expected_trigger": null, "expected_new_alerts": [], "expected_scheduler_running": false } ] }, { "id": "buy_catchup_opposite_rearm_to_sell", "description": "REGRESSION 2026-04-21: real trace — catchup pe dark_green la 17:00 → PRIMED_BUY (synth arm+prime), apoi yellow la 17:45 → ARMED_SELL via opposite_rearm. Înainte de fix, bug-ul era dispatch-ul tăcut pentru opposite_rearm (zero alert). Acum trebuie să emită kind=opposite_rearm și să oprească scheduler-ul.", "steps": [ { "frame": "calibration/frames/20260421_170045_dark_green.png", "expected_color": "dark_green", "expected_reason": "prime", "expected_state": "PRIMED_BUY", "expected_trigger": null, "expected_new_alerts": ["arm", "prime"], "expected_scheduler_running": true }, { "frame": "calibration/frames/20260421_174502_yellow.png", "expected_color": "yellow", "expected_reason": "opposite_rearm", "expected_state": "ARMED_SELL", "expected_trigger": null, "expected_new_alerts": ["opposite_rearm"], "expected_scheduler_running": false } ] }, { "id": "buy_armed_gray_persist", "description": "Gray între arm și prime nu pierde ARMED_BUY (reason=persist, scheduler inactiv).", "steps": [ { "frame": "calibration/frames/20260420_200002_turquoise.png", "expected_color": "turquoise", "expected_reason": "arm", "expected_state": "ARMED_BUY", "expected_trigger": null, "expected_new_alerts": ["arm"], "expected_scheduler_running": false }, { "frame": "calibration/frames/20260421_164210_gray.png", "expected_color": "gray", "expected_reason": "persist", "expected_state": "ARMED_BUY", "expected_trigger": null, "expected_new_alerts": [], "expected_scheduler_running": false }, { "frame": "calibration/frames/20260420_185102_dark_green.png", "expected_color": "dark_green", "expected_reason": "prime", "expected_state": "PRIMED_BUY", "expected_trigger": null, "expected_new_alerts": ["prime"], "expected_scheduler_running": true } ] }, { "id": "buy_primed_gray_cooldown", "description": "Gray după prime ucide ciclul (reason=cooled, IDLE, scheduler oprit). Design M2D: setup expiră dacă chart-ul tace după priming.", "steps": [ { "frame": "calibration/frames/20260420_200002_turquoise.png", "expected_color": "turquoise", "expected_reason": "arm", "expected_state": "ARMED_BUY", "expected_trigger": null, "expected_new_alerts": ["arm"], "expected_scheduler_running": false }, { "frame": "calibration/frames/20260420_185102_dark_green.png", "expected_color": "dark_green", "expected_reason": "prime", "expected_state": "PRIMED_BUY", "expected_trigger": null, "expected_new_alerts": ["prime"], "expected_scheduler_running": true }, { "frame": "calibration/frames/20260421_174804_gray.png", "expected_color": "gray", "expected_reason": "cooled", "expected_state": "IDLE", "expected_trigger": null, "expected_new_alerts": [], "expected_scheduler_running": false } ] } ]