diff --git a/docs/superpowers/specs/2026-05-12-data-quality-audit-design.md b/docs/superpowers/specs/2026-05-12-data-quality-audit-design.md index 78be3ea..68fea48 100644 --- a/docs/superpowers/specs/2026-05-12-data-quality-audit-design.md +++ b/docs/superpowers/specs/2026-05-12-data-quality-audit-design.md @@ -26,7 +26,7 @@ design) e copertura ETH già implicita in `market_snapshots`. per colonna numerica, parità ETH/BTC. - `option_chain_snapshots`: snapshot mancanti, distribuzione quote per snap, bid/ask sanity, IV null rate, book depth. -- CLI subcommand `cerbero-bite audit`, output stdout + opzionale `--json`. +- CLI subcommand `cerbero-bite audit data`, output stdout + opzionale `--json`. **Out of scope:** - `dvol_history`, `decisions`, `positions`, `instructions`, @@ -42,7 +42,7 @@ src/cerbero_bite/analysis/ __init__.py data_audit.py # logica pura, no I/O lato MCP -src/cerbero_bite/cli.py # nuovo subcommand `audit` +src/cerbero_bite/cli.py # nuovo subcommand `audit data` tests/unit/ test_data_audit.py # DB temporaneo + seed deterministico @@ -104,16 +104,22 @@ non condividono parametri operativi. ## CLI ``` -cerbero-bite audit [--since DAYS] [--json] [--asset ETH|BTC] +cerbero-bite audit data [--db PATH] [--since DAYS] [--json] [--asset ETH|BTC] ``` +> **Deviazione dal design originale**: il group `audit` era già usato per +> `audit verify` (hash chain dell'audit log). Il data-quality audit è +> stato inserito come sibling `audit data` per evitare collisione di +> namespace, anziché come comando top-level `cerbero-bite audit`. + +- `--db PATH` (default `data/state.sqlite`): path al DB SQLite. - `--since DAYS` (default `7`): finestra di analisi, retro dal `now()` corrente. - `--json` (default off): stampa solo dump JSON serializzabile, niente tabelle umane. - `--asset` (default `tutti`): filtra ad un singolo asset. Exit code: - `0`: audit completato (a prescindere dai problemi trovati). -- `2`: errori di connessione/DB (separare da problemi nei dati). +- `2`: errori di connessione/DB (DB inesistente, schema mancante). Niente exit code per "found issues": l'audit è informativo, decide l'umano. Far diventare l'audit un gate CI è out of scope.