- pyproject.toml with uv, deps for runtime + gui + backtest + dev - ruff/mypy strict config, pre-commit hooks for ruff/mypy/pytest - src/cerbero_bite/ layout with empty modules ready for Phase 1+ - structlog JSONL logger with daily rotation - click CLI with placeholder subcommands (status, start, kill-switch, gui, replay, config hash, audit verify) - 6 smoke tests passing, mypy --strict clean, ruff clean Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
8.3 KiB
09 — Development Roadmap
Sviluppo per fasi, ognuna con obiettivo chiaro, criteri di completamento e dipendenze. La sequenza è stretta: ogni fase aggiunge valore e si costruisce sulla precedente.
Fase 0 — Setup (3-5 giorni)
Obiettivo: scheletro di progetto eseguibile, niente logica di business.
Tasks:
git init+ branchmain+.gitignore(escludedata/,.lockfile,*.local.yaml).pyproject.tomlconuv, deps base: pydantic, sqlalchemy, apscheduler, mcp, rich (CLI), pytest, mypy, ruff.- Layout cartelle come da
02-architecture.md. - Logger strutturato con
structlog, output JSONL su file. __main__.pycon CLI Click: comandistart,stop,status,dry-run,kill-switch,replay.- Pre-commit hooks installati.
tests/conftest.pycon fixtures di base.- Hello-world test che valida l'avvio dell'engine senza nessun tool MCP reale (tutti fake).
Definition of Done:
uv run cerbero-bite statusstampa "engine idle, kill_switch=0"uv run pytestpassa con almeno 5 test trivialimypy --strict src/passa- Repository committato
Fase 1 — Core algorithms (7-10 giorni)
Obiettivo: i 7 algoritmi puri implementati, con test al 100%.
Tasks (ordine TDD):
entry_validator.validate_entry+compute_biasliquidity_gate.checksizing_engine.compute_contractscombo_builder.select_strikes+buildgreeks_aggregator.aggregateexit_decision.evaluate(questo è il più complesso, due giornate dedicate)kelly_recalibration.recalibrate
Per ogni modulo:
- scrivere test che falliscono
- implementare la versione minima che li passa
- aggiungere property test con hypothesis
- code review (skill
superpowers:requesting-code-review)
Definition of Done:
- 100% statement+branch coverage su
core/ - Property test per ogni invariante documentata
- 0 errori
mypy --strict - Tutti i test obbligatori in
08-testing-validation.mdpresenti
Fase 2 — Persistenza e safety (5-7 giorni)
Obiettivo: state machine + risk control implementati.
Tasks:
- Schema SQLite + migration 0001
state/repository.pycon CRUD typed- Audit log con hash chain
safety/kill_switch.pycon tutti i trigger automaticisafety/dead_man.shscript shell separato- Backup utility + retention policy
- CLI
audit verify,kill-switch arm/disarm,state inspect
Definition of Done:
- Coverage
state/≥ 90%,safety/100% - Test di corruzione SQLite e hash chain passano
- Recovery test: kill engine mid-write, restart, stato consistente
Fase 3 — MCP clients (4-6 giorni)
Obiettivo: wrapper tipizzati per tutti i server MCP usati.
Tasks (parallelizzabili tra collaboratori se ci fossero):
clients/_base.py: McpClient abstract + retry/timeoutclients/deribit.pycon tutti i metodi documentaticlients/hyperliquid.pyclients/macro.pyclients/sentiment.pyclients/portfolio.pyclients/memory.pyclients/telegram.py(anche listener webhook per conferme)clients/brain_bridge.py
Per ogni client: fake corrispondente in tests/fixtures/fakes/.
Definition of Done:
- Coverage
clients/≥ 80% - Fake test scenari happy/timeout/anomaly per ognuno
cerbero-bite pinglista lo stato di ogni MCP
Fase 4 — Orchestrator e flussi (5-7 giorni)
Obiettivo: i flussi di 06-operational-flow.md cablati.
Tasks:
runtime/orchestrator.py— composizione core + clients + stateruntime/scheduler.py— APScheduler con i cron documentatiruntime/monitoring.py— loop ogni 12hruntime/alert_manager.py— escalation policy
Test integration su scenari completi (vedi 08-testing-validation.md):
- weekly open happy path
- monitor profit take
- monitor vol stop
- recovery dopo crash
- kill switch blocca entry
Definition of Done:
- Tutti gli integration test passano
- Engine può girare in
--dry-runper 24h senza errori - I log sono leggibili e completi
Fase 4.5 — GUI Streamlit (4 giorni)
Obiettivo: dashboard locale per osservazione e azioni manuali. Spec
dettagliata in 11-gui-streamlit.md.
Tasks:
- Setup
gui/main.py+ sidebar nav + auto-refresh - Pagina Status (engine, capitale, MCP health, kill switch panel)
- Pagina Equity (curve, drawdown, monthly stats)
- Pagina Position (legs, payoff plotly, decision history, force-close)
- Pagina History (filtri, KPI, export CSV)
- Pagina Audit (log live, verify chain, search)
- Tabella
manual_actions+ consumer job APScheduler nell'engine - Test integration con
streamlit.testing.v1.AppTest
Definition of Done:
cerbero-bite guilancia la dashboard su127.0.0.1:8765- Tutte le 5 pagine raggiungibili e popolate
- Disarm da GUI loggato in audit chain ed effettivo entro 30 sec
- Force-close da GUI consumato dall'engine entro 30 sec
- Test integration su ogni pagina passing
Fase 5 — Reporting e UX (3-5 giorni)
Obiettivo: report Telegram puliti, daily digest, replay command.
Tasks:
reporting/pre_trade.py— testo Markdown con sezionireporting/exit_proposal.pyreporting/daily_digest.pyreporting/monthly_report.py- CLI
cerbero-bite replayper backtest - CLI
cerbero-bite recalibrate-kelly --dry-run
Definition of Done:
- Tre messaggi Telegram esempio committati come fixtures
- Replay command funziona su 30 giorni di dati storici simulati
Fase 6 — Golden tests e backtest (3-4 giorni)
Obiettivo: suite di scenari golden + replay storico.
Tasks:
- Almeno 10 scenari golden coprenti tutti i path principali
- Storia ETH spot + DVOL caricata da CSV in
tests/data/historical/ - Confronto P&L replay vs simulazione Monte Carlo del documento
Definition of Done:
- Replay 2024-01 → 2026-04 senza errori
- Equity curve riprodotta con stesso seed numerico
- Differenza con MC entro intervalli attesi
Fase 7 — Paper trading (90 giorni)
Obiettivo: validazione su segnali reali ma niente capitale.
Setup:
- Engine live in
--dry-run - Telegram alert reali
- Adriano replica trade su testnet Deribit o paper book per misurare slippage reale
Metriche da raccogliere:
- Numero proposte settimanali emesse
- Quante passano i filtri
- Win rate, avg P&L paper
- Discrepanze tra mid stimato e fill reale (slippage)
- Errori di sistema, kill switch armati
Definition of Done:
- ≥ 30 trade paper concluso
- 0 errori critici
- Win rate ≥ 70% (paper ETH credit spread baseline atteso)
- Sign-off Adriano via audit chain
Fase 8 — Soft launch (30 giorni live, cap dimezzato)
Obiettivo: primi trade reali con capitale ridotto.
Setup:
- Cap 100 EUR per trade, 500 EUR engagement totale
- Solo Bull Put Spread (no IC) per ridurre superficie di rischio
- Daily digest manuale ogni mattina con Adriano
Metriche di passaggio a full:
- ≥ 10 trade reali conclusi
- P&L coerente con Monte Carlo (entro 1 sigma)
- 0 incidenti operativi
- Spread fill mediano ≤ 5% slippage rispetto al mid stimato
Fase 9 — Full launch
Obiettivo: operatività regime.
- Cap pieno: 200 EUR per trade, 1.000 EUR engagement
- Iron Condor abilitato (regime laterale)
- Mensile review Kelly + report Brain-Bridge
- Ogni 6 mesi review completa con Milito
Roadmap futura (post-launch, idee)
- Sottostante BTC: stessa strategia, parametri ricalibrati. Richiede fase di paper-trading dedicata.
- Multi-exchange execution: alternativa a Deribit (Bybit options, Binance options) per ridurre counterparty risk.
- Dashboard locale: pagina HTML statica generata dai log per visualizzare equity curve e trade list senza tool esterni.
- Auto Kelly update: dopo 100 trade reali, valutare l'auto-update con sand-box di review Milito.
- Promozione MCP options-engine: estrarre
core/come server MCP dedicato, riusabile da Cerbero core stesso e da Milito.
Stima cumulativa
| Fase | Giorni di lavoro | Calendar (con review) |
|---|---|---|
| 0 — Setup | 3-5 | 1 settimana |
| 1 — Core | 7-10 | 2 settimane |
| 2 — State & Safety | 5-7 | 1.5 settimane |
| 3 — Clients | 4-6 | 1 settimana |
| 4 — Orchestrator | 5-7 | 1.5 settimane |
| 4.5 — GUI Streamlit | 4 | 1 settimana |
| 5 — Reporting | 3-5 | 1 settimana |
| 6 — Golden + Backtest | 3-4 | 1 settimana |
| Totale fino a paper-ready | 34-48 | ~10 settimane |
| 7 — Paper trading | — | 12-13 settimane |
| 8 — Soft launch | — | 4-5 settimane |
| 9 — Full launch | — | ongoing |
Tempo a regime: ~6 mesi dal kickoff.