# ATM — Automated Trading Monitor

Personal Faza-1 tool pentru strategia M2D. Python 3.11+.

> Acest repo folosește **DOX**: arborele de `AGENTS.md` de mai jos sunt contracte
> de lucru pentru subarborii lor. Înainte să editezi un path, coboară din rădăcină
> citind fiecare `AGENTS.md` întâlnit. După o schimbare semnificativă, fă un **DOX
> pass**: actualizează `AGENTS.md`-ul cel mai apropiat care „deține" zona + indexul
> părintelui, șterge ce devine învechit.

## Quick Reference

```bash
pip install -e ".[windows]"    # Windows: live capture
pip install -e ".[dev]"        # Linux/macOS: dev + tests (WSL: venv întâi)
cp .env.example .env           # secretele Discord/Telegram (vezi README §Secrets)
atm calibrate                  # Tk wizard
atm debug --delay 5            # one-shot capture + detect
atm validate-calibration calibration/calibration_labels.json   # color gate offline
atm run --start-at 16:30 --stop-at 23:00                        # live session
atm run --tz America/New_York --oh-start 09:30 --oh-stop 16:00  # NYSE window
pytest -q                      # 230+ teste
```

## DOX Protocol

- **Citire** — traversează root → path-ul țintă, citind fiecare `AGENTS.md`. Dacă
  un părinte indexează un copil al cărui scope conține path-ul, citește copilul și
  continuă de acolo.
- **Editare** — `AGENTS.md`-ul cel mai apropiat = contract local; părinții = reguli
  globale. Un copil nu poate slăbi o constrângere impusă de un părinte.
- **Update (closeout)** — re-verifică path-urile schimbate față de lanțul DOX;
  actualizează doc-urile care le dețin + indexurile afectate; șterge textul învechit;
  rulează verificarea relevantă.

## Durable Rules (repo-wide)

- **Pure-logic fără cv2/numpy** în `state_machine.py` și `config.py` (testele rulează
  headless). cv2/I/O greu mereu în `asyncio.to_thread`.
- **Secretele doar din env** (`.env`), niciodată în TOML sau cod.
- **Mereu** `atm validate-calibration` după recalibrare (palette gotcha — vezi
  `calibration/AGENTS.md`).
- Modul nou în `src/atm/` ⇒ `test_<modul>.py` corespondent.

> Skill routing (Claude Code) trăiește în [`CLAUDE.md`](CLAUDE.md) — sursa canonică.

## Child DOX Index

- **`src/atm/`** → `src/atm/AGENTS.md` — motorul: capture/detect/FSM/scheduler/
  vision/canary/config. (copil: `notifier/`)
- **`tests/`** → `tests/AGENTS.md` — suita de teste + regresie FSM.
- **`calibration/`** → `calibration/AGENTS.md` — corpus culori + scenarii + palette gotcha.
- **`configs/`** → `configs/AGENTS.md` — schema TOML (operating_hours, alerts, canary).
- **`scripts/`** → `scripts/AGENTS.md` — diagnostic + note sandbox Windows/venv.
