diff --git a/CLAUDE.md b/CLAUDE.md index b3f4a2d..bd32ec3 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -372,9 +372,24 @@ d'ancora in modo diverso (nella differenza si cancella in parte, nel livello per −1,5% (indice 0,95) resta sotto soglia e nel P&L; una rottura piena (−31%) supera 2× un mercato "fermo" e diventerebbe un **«movimento» scorporato come prelievo**, nel giornale e nel report — l'invenzione silenziosa che P12 vieta. Il bound corretto somma `quota_usde × |Δ indice usde_usdc|`, - ma l'indice e' registrato **una volta al giorno** (`usde_watch`, 12:35Z): serve una serie oraria - (`balance_watch` la potrebbe portare) prima di chiuderlo. Intanto: chi legge un «movimento» - negativo senza bonifico in uscita **lo verifichi contro `usde_watch.jsonl`** prima di crederci. + ma l'indice era registrato **una volta al giorno** (`usde_watch`, 12:35Z). ◐ **Primo passo fatto + il 02/09:** `balance_watch` (orario, sola lettura) registra ora `usde_usdc` a ogni campione — + None con la ragione se l'indice non e' leggibile, mai 1,0. **Manca il cablaggio nel bound**, che + si fa quando la serie ha storia. Intanto: chi legge un «movimento» negativo senza bonifico in + uscita **lo verifichi contro `balance_watch.jsonl`** prima di crederci. + +16. ✅ **RIPARATO (2026-09-02).** Nessuno dei **18** script di `scripts/live/` usava argparse: un + flag sconosciuto non era un errore, era **il ramo `else`**. Costo misurato lo stesso giorno + durante una revisione: `trades_db.py --help` non stampava l'uso, cadeva in `sync()` e riscriveva + `meta.ultimo_sync`; sugli altri due sarebbe stato peggio — `journal.py --help` avrebbe scritto + pagina e riga di DB, `analista.py --help` avrebbe speso una chiamata al modello e mandato un + Telegram. Ora `src/live/cli.valida` e' la **prima istruzione** di ogni `__main__`: `--help` + stampa l'uso ed esce **0**, un flag ignoto esce **2** con l'elenco di quelli previsti (P4). + Niente argparse: cambierebbe messaggi, codici d'uscita e `--help` di script che il cron gia' + chiama — qui si lascia intatto cio' che gira. **`tests/test_cli_flag.py` (30)**: l'elenco degli + script si **deriva dalla cartella** (uno nuovo senza guardia fa fallire il test), verifica che + `valida` sia la prima istruzione, che l'uso documenti i flag accettati, e che **i flag che il + cron usa davvero restino accettati** (P15/P16). Diario `2026-09-02c-flag-e-pulizia.md`. --- @@ -589,10 +604,11 @@ uv run python scripts/analysis/certify_feed.py [--local] # certifica i f uv run python scripts/portfolio/run_portfolio.py # report del portafoglio (ricerca) uv run python scripts/live/paper_portfolio.py # avanza il paper (forward-only) uv run python scripts/live/trades_db.py --report # stato libro di bordo + P&L (TWR, non e1/e0) +uv run python scripts/live/