Output din live loop (auto-capture pe schimbare de culoare) pentru
sesiunea de azi. Filename = culoare detectată de FSM (poate fi greșită).
Următorul pas manual: review și label-uire în calibration_labels.json
pentru atm validate-calibration.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
calibration_labels.json: 16 → 24 entry-uri. Toate cele 8 frame-uri dumpate
automat de live loop azi (gray×5, dark_green×1, yellow×1, dark_red×1) trec
prin validate-calibration cu detector-ul curent (24/24 PASS).
scenarios.json: 8 → 11 scenarii:
1. buy_catchup_opposite_rearm_to_sell — REGRESSION pentru bug-ul de azi.
Trace real din log: 17:00 catchup dark_green → PRIMED_BUY (synth arm+prime),
apoi 17:45 yellow → ARMED_SELL via opposite_rearm. Verifică că dispatch-ul
nou emite kind=opposite_rearm și că scheduler-ul se oprește.
2. buy_armed_gray_persist — gray între arm și prime ține ARMED_BUY
(reason=persist). Acoperă o ramură FSM neacoperită.
3. buy_primed_gray_cooldown — gray după prime ucide ciclul (reason=cooled,
IDLE, scheduler stop). Confirmă semantica M2D că chart-ul tăcut post-prime
înseamnă setup expirat.
Total: 11/11 scenarii PASS, 238/238 teste (235 + 3 noi scenarii regresie).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Live loop-ul dumpa frame-uri pe schimbare de culoare în samples/, iar userul
copia manual cele utile în calibration/frames/ pentru labelling și regresie.
Pas inutil — acum scrie direct în corpus.
- samples_dir → calibration/frames/ (mkdir parents=True)
- stub capture (ATM_STUB_CAPTURE pentru smoke test Linux) citește din aceeași locație
- 8 PNG-uri orfane din samples/ (20260421_*) mutate în corpus
- CLAUDE.md clarifică: filename = culoarea detectată (poate fi greșită);
calibration_labels.json rămâne singurul ground truth (manual)
Impact zero pe validate-calibration (iterează peste labels.json, ignoră fișiere
extra) și test_scenarios_regression.py (referă doar frame-uri curate din
scenarios.json).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>