{
  "exported_at": "2026-08-28T05:56:24.631916+00:00",
  "tables": {
    "dashboard_notes": [
      {
        "id": 1,
        "page": "v5",
        "category": "engine",
        "title": "ENGINE V5 — STANDARD",
        "content": "Mean-reversion, RSI<35, hard-stop -9%. FERMATO.",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 2,
        "page": "v5",
        "category": "engine",
        "title": "ENGINE V5 — MOMENTUM",
        "content": "Breakout, trailing 3%/2%, hard-stop -7%. Equity flat 4 giorni. FERMATO.",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 3,
        "page": "v5",
        "category": "engine",
        "title": "ENGINE V5 — ORACLE",
        "content": "Claude AI dynamic. FERMATO per costi API (lezione -> AGENT AI v6 rule-based).",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 4,
        "page": "v5",
        "category": "engine",
        "title": "ENGINE V5 — HUNTER",
        "content": "DEX, liquidita'>15K. FERMATO dopo 80 EUR di loss in 2 giorni.",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 5,
        "page": "v5",
        "category": "file",
        "title": "File V5",
        "content": "/home/hydra/hydra_v5/ (1.6 GB con backup). v5.db 1.4 GB (trades, positions, fingerprint). universe.yaml (212 token), universe_test.yaml (425 token).",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 6,
        "page": "v5",
        "category": "v4",
        "title": "DB V4 attivi",
        "content": "/home/hydra/hydra_v4/data/market_data.db (8.5 GB, scritto attivamente). Servizi: hydra-ws-collector, hydra-candle-aggregator, hydra-fingerprint. Da fermare quando DATA SOURCE v6 sara' pronto.",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 7,
        "page": "v5",
        "category": "research",
        "title": "Research apr-giu 2026",
        "content": "23 strategie tecniche: tutte fallite walk-forward. 4 driver candidati: 3 falliti, solo Funding Q90 sopravvissuto (Finding #11).",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 8,
        "page": "v5",
        "category": "migration",
        "title": "Migrato in v6",
        "content": "candles_1m 44.3M, candles_15m 6.5M, candles_1h 1.6M, candles_4h 568K, candles_1d 94K, token_metadata 420; driver_per_asset 21K, driver_global 1074. Storico: 10 major ~197gg, restanti 429 asset ~78gg.",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 9,
        "page": "v5",
        "category": "status",
        "title": "V5 fermato",
        "content": "V5 fermato il 14/06/2026.",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      }
    ],
    "dashboard_decisions": [
      {
        "id": 1,
        "service": "data_source",
        "decision_title": "Sorgenti esterne, nessuna persistenza propria",
        "decision_text": "Binance WS+REST, FRED, DefiLlama, Alternative.me, Coingecko. Il servizio normalizza e inoltra; la persistenza e' delegata a SERVER LOG (PostgreSQL).",
        "rationale": "Separazione netta ingest/storage; evita duplicazione dati.",
        "status": "active",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 2,
        "service": "server_log",
        "decision_title": "PostgreSQL append-only, retention 180gg",
        "decision_text": "DB hydra_v6 append-only come audit trail. 17 tabelle gia' create. Retention 180gg a regime.",
        "rationale": "Tracciabilita' completa e riproducibilita' delle decisioni.",
        "status": "active",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 3,
        "service": "live_scanner",
        "decision_title": "5 detector @1min su 200+ asset",
        "decision_text": "Detector: pump, dump, volume_spike, funding_extreme, liquidity_drop. Frequenza 1 minuto su tutti i 200+ asset. Output in live_events.",
        "rationale": "Copertura ampia e reattiva su eventi di mercato.",
        "status": "active",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 4,
        "service": "server_stat",
        "decision_title": "30 indicatori Tier 1+2+3",
        "decision_text": "RSI, EMA 9/21/50/200, Returns, ATR, Vol, Volume, Momentum, Bollinger, VWAP, Beta, Funding+z21, Funding slope, OI. Timeframes 1h/4h/1d. Skip MACD/Stochastic/Ichimoku/Fibonacci.",
        "rationale": "Indicatori con edge potenziale; esclusi quelli ridondanti/ritardati.",
        "status": "active",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 5,
        "service": "server_analyz",
        "decision_title": "15 moduli, score 0-1, auto-validazione pesi mensile",
        "decision_text": "Cat A Edge (peso 3.0): Funding Q90 Defensive. Cat B Candidati (1.0): Funding x Regime, DXY in Bear, Volatility filtering. Cat C Classici (0.3): Momentum 30d, Mean reversion RSI, Trend EMA. Cat D Contesto: Regime detector, Vol regime, Drawdown. Cat E ML (0.5-1.5): TimesFM, Chronos, HMM, Hurst, LSTM. Freq 1h.",
        "rationale": "Pesi proporzionali alla forza dell'edge; auto-validazione mensile.",
        "status": "active",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 6,
        "service": "server_analyz",
        "decision_title": "Edge validato — Finding #11 (Funding Rate z21 >= Q90)",
        "decision_text": "Funding Rate z21 >= Q90 -> return medio -4.59% a 7 giorni. Walk-forward 10/10 asset robusti. Unico driver sopravvissuto su 4 candidati.",
        "rationale": "Edge statisticamente robusto, base della Cat A peso 3.0.",
        "status": "active",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 7,
        "service": "agent_ai",
        "decision_title": "Pure Rule-Based (no Claude API)",
        "decision_text": "Decisore deterministico rule-based. Execution interno separato. Universe 200+ token v5. Filtri: vol_24h>1M, eta'>30gg, storia>60gg, spread<0.5%, blacklist RNDR/FET.",
        "rationale": "Determinismo e zero costi API ricorrenti (lezione ORACLE v5).",
        "status": "active",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 8,
        "service": "server_quality",
        "decision_title": "Auditor investigativo, nessuna notifica",
        "decision_text": "Health check 5min. Analisi perdite per-trade. Opportunita' giornaliera. Feedback solo via report, NESSUNA notifica push.",
        "rationale": "Strumento di analisi, non di alerting; evita rumore operativo.",
        "status": "active",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 9,
        "service": "emergency",
        "decision_title": "Container Docker isolato, 8 trigger, market sell",
        "decision_text": "Container Docker isolato. 8 trigger: heartbeat 5min, drawdown 20%, daily loss 7%, position max 10%, orders/min, flash crash BTC -5%/10min, exchange error, QUALITY critical. Azione: market sell. Restart manuale.",
        "rationale": "Isolamento per resilienza; kill-switch indipendente dal core.",
        "status": "active",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 10,
        "service": "agent_ai",
        "decision_title": "Regole entry/exit, holding period, position sizing",
        "decision_text": "Da definire: condizioni precise di entry/exit, holding period massimo, logica di position sizing.",
        "rationale": null,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 11,
        "service": "server_quality",
        "decision_title": "Benchmark di confronto",
        "decision_text": "Da definire il benchmark contro cui valutare le performance.",
        "rationale": null,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 12,
        "service": "emergency",
        "decision_title": "Affinamento soglie esatte",
        "decision_text": "Le 8 soglie trigger vanno affinate con dati reali.",
        "rationale": null,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 13,
        "service": "live_scanner",
        "decision_title": "Asset universe filtrato",
        "decision_text": "Definire il sottoinsieme di asset su cui far girare i detector.",
        "rationale": null,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 14,
        "service": "real_money",
        "decision_title": "Real money: capitale Step 1, futures/spot, tax reporting",
        "decision_text": "Da decidere: capitale dello Step 1, se operare futures o spot, gestione tax reporting.",
        "rationale": null,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      }
    ],
    "dashboard_ideas": [
      {
        "id": 1,
        "title": "Collector v6 + dismissione servizi v4",
        "description": "Implementare il collector v6 e poi fermare i servizi v4 (hydra-ws-collector, hydra-candle-aggregator, hydra-fingerprint).",
        "category": "data_source",
        "priority": 2,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 2,
        "title": "Job retention 180gg",
        "description": "Definire e schedulare il job di retention append-only a 180 giorni.",
        "category": "server_log",
        "priority": 3,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 3,
        "title": "Definire asset universe detector",
        "description": "Filtrare lo universe di asset su cui far girare i 5 detector del LIVE SCANNER.",
        "category": "live_scanner",
        "priority": 2,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 4,
        "title": "Implementare i 30 indicatori (Fase 2)",
        "description": "Implementare SERVER STAT: 30 indicatori Tier 1+2+3 su 1h/4h/1d.",
        "category": "server_stat",
        "priority": 1,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 5,
        "title": "Modulo 1 Funding Q90 (Fase 3)",
        "description": "Implementare il primo modulo analyzer (edge Cat A), poi i moduli 2-15 (Fase 4).",
        "category": "server_analyz",
        "priority": 1,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 6,
        "title": "Regole AGENT AI + paper mode (Fase 6)",
        "description": "Definire entry/exit, holding period, position sizing; portare in paper mode.",
        "category": "agent_ai",
        "priority": 2,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 7,
        "title": "Definire benchmark QUALITY",
        "description": "Scegliere il benchmark di confronto per valutare le performance.",
        "category": "server_quality",
        "priority": 3,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 8,
        "title": "Containerizzare EMERGENCY (Fase 7)",
        "description": "Docker isolato + affinamento delle 8 soglie trigger.",
        "category": "emergency",
        "priority": 2,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 9,
        "title": "Tax reporting real money",
        "description": "Predisporre il tax reporting per la fase real money.",
        "category": "backlog",
        "priority": 4,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 10,
        "title": "Decisione futures vs spot",
        "description": "Decidere se lo Step 1 real money opera futures o spot.",
        "category": "backlog",
        "priority": 3,
        "status": "pending",
        "created_at": "2026-06-28T18:10:51.552788+00:00",
        "updated_at": "2026-06-28T18:10:51.552788+00:00"
      },
      {
        "id": 15,
        "title": "auto analisi ",
        "description": "Vorrei creare un sistema faccia automaticamente analisi di mercato, provi arogoritmi predittivi, formule economica, indicatori di mercato, le integri con le news e che proponga dei canditati con queste analisi",
        "category": "backlog",
        "priority": 3,
        "status": "pending",
        "created_at": "2026-06-28T19:33:37.900765+00:00",
        "updated_at": "2026-06-29T21:09:52.120171+00:00"
      }
    ],
    "dashboard_roadmap": [
      {
        "phase_num": 0.0,
        "phase_name": "Pulizia ambiente + PostgreSQL",
        "status": "completed",
        "estimated_days": "1g",
        "started_at": "2026-06-25T00:00:00+00:00",
        "completed_at": "2026-06-25T00:00:00+00:00",
        "git_tag": null,
        "description": "Setup ambiente v6 e installazione PostgreSQL."
      },
      {
        "phase_num": 1.0,
        "phase_name": "Schema + migrazione 52.6M righe",
        "status": "completed",
        "estimated_days": "1g",
        "started_at": "2026-06-25T00:00:00+00:00",
        "completed_at": "2026-06-25T00:00:00+00:00",
        "git_tag": "fase-1-migration-v2",
        "description": "Schema completo (17 tabelle) e migrazione dati da SQLite (52.6M righe candele + driver)."
      },
      {
        "phase_num": 1.5,
        "phase_name": "Dashboard documentazione",
        "status": "completed",
        "estimated_days": "1g",
        "started_at": "2026-06-28T00:00:00+00:00",
        "completed_at": "2026-06-29T20:46:45.164243+00:00",
        "git_tag": null,
        "description": "Dashboard web di documentazione completa su docu.spocci.ch (questa)."
      },
      {
        "phase_num": 2.0,
        "phase_name": "SERVER STAT",
        "status": "completed",
        "estimated_days": "3-4g",
        "started_at": "2026-06-29T20:46:29.003711+00:00",
        "completed_at": "2026-06-29T20:46:29.003711+00:00",
        "git_tag": "fase-2-stat",
        "description": "Implementazione dei 30 indicatori Tier 1+2+3."
      },
      {
        "phase_num": 3.0,
        "phase_name": "ANALYZ Modulo 1 Funding Q90",
        "status": "completed",
        "estimated_days": "2-3g",
        "started_at": null,
        "completed_at": "2026-06-30T21:33:52.333449+00:00",
        "git_tag": "fase-3-funding-q90",
        "description": "Primo modulo analyzer: edge Funding Q90 Defensive (Cat A). [BLOCCO 2026-06-30: funding non per-asset (serie globale duplicata su 10 major, anche in driver_per_asset). Edge per-asset Finding#11 NON validabile; modulo+validazione committati (8e9928b), edge globale -2.90%. Rivalidare dopo ingest funding reali per simbolo.] [RISOLTO 2026-06-30 Step B: ingest funding reale per-asset da Binance (354 asset, 1.49M righe, storia 2019-2026). Edge per-asset CONFERMATO: pooled -3.35%, 10/10 asset negativi, dentro banda Finding#11. commit ef7b285.] [RICERCA 2026-07: l'edge Funding Q90 LORDO e' stato REFUTATO net-of-baseline (Finding #11,#16): era artefatto del regime bear (net ~-0.5%, non significativo, segno positivo su 5 anni). Ingegneria completata, ma NON tradeable come edge direzionale standalone.]"
      },
      {
        "phase_num": 4.0,
        "phase_name": "ANALYZ moduli 2-15",
        "status": "blocked",
        "estimated_days": "5-7g",
        "started_at": null,
        "completed_at": null,
        "git_tag": null,
        "description": "Restanti 14 moduli analyzer (Cat B-E). [RICERCA 2026-07: BLOCCATA. 6 ricerche OOS-rigorose (Finding #13-18,#20) hanno REFUTATO ogni edge DIREZIONALE su major (single-indicator, combinazioni multi-indicatore, AI/ML): guadagni in-sample spettacolari che crollano out-of-sample (overfitting). Costruire altri moduli direzionali e' inutile. Unico edge REALE: funding harvesting MARKET-NEUTRAL (#19). Serve re-scope della fase.]"
      },
      {
        "phase_num": 5.0,
        "phase_name": "LIVE SCANNER",
        "status": "pending",
        "estimated_days": "2-3g",
        "started_at": null,
        "completed_at": null,
        "git_tag": null,
        "description": "5 detector @1min su 200+ asset. [RICERCA 2026-07: i detector direzionali non hanno edge OOS (vedi Fase 4). L'infrastruttura di scanning resta utile ma va ri-orientata a segnali market-neutral/funding, non a previsione di prezzo.]"
      },
      {
        "phase_num": 6.0,
        "phase_name": "AGENT AI paper mode",
        "status": "blocked",
        "estimated_days": "4-5g",
        "started_at": null,
        "completed_at": null,
        "git_tag": null,
        "description": "Decisore rule-based + execution in paper mode. [RICERCA 2026-07: BLOCCATA. Finding #20: un gradient boosting su TUTTE le feature (proxy equo dell'AI) non batte il caso OOS (R2 negativo, accuracy ~base-rate). Nessun decisore direzionale, umano o AI, ha edge su questi dati. Conferma il perche' ORACLE fu fermato in v5: assenza di segnale, non qualita' del modello.]"
      },
      {
        "phase_num": 7.0,
        "phase_name": "EMERGENCY Docker",
        "status": "pending",
        "estimated_days": "3-4g",
        "started_at": null,
        "completed_at": null,
        "git_tag": null,
        "description": "Kill-switch in container Docker isolato, 8 trigger."
      },
      {
        "phase_num": 8.0,
        "phase_name": "SERVER QUALITY",
        "status": "pending",
        "estimated_days": "3-4g",
        "started_at": null,
        "completed_at": null,
        "git_tag": null,
        "description": "Auditor investigativo, analisi perdite, report."
      },
      {
        "phase_num": 9.0,
        "phase_name": "Validazione paper end-to-end",
        "status": "blocked",
        "estimated_days": "30g",
        "started_at": null,
        "completed_at": null,
        "git_tag": null,
        "description": "1 mese di paper trading per validazione completa. [RICERCA 2026-07: BLOCCATA. Non c'e' un edge direzionale validato da paper-tradare. L'unico edge validato (#19, funding harvesting) e' market-neutral e va testato in quel contesto, non come strategia direzionale.]"
      },
      {
        "phase_num": 10.0,
        "phase_name": "Real money 300 EUR/mese",
        "status": "blocked",
        "estimated_days": "-",
        "started_at": null,
        "completed_at": null,
        "git_tag": null,
        "description": "Produzione: 300 EUR mensili reali, no leverage, no scaling aggressivo. [RICERCA 2026-07: BLOCCATA. L'unico edge validato (funding harvesting #19) rende ~5%/anno forward netto: su 300 EUR = ~1 EUR/mese, insufficiente e non giustifica il rischio operativo. Sensato solo da ~5.000-13.000 EUR. Il target \"300 EUR/mese di profitto\" NON e' raggiungibile con gli edge scoperti.]"
      }
    ],
    "dashboard_backups_log": [
      {
        "id": 1,
        "backup_file": "dashboard_backup_20260628_185542.sql",
        "backup_type": "auto",
        "size_bytes": 20136,
        "created_at": "2026-06-28T18:55:42.383464+00:00"
      },
      {
        "id": 2,
        "backup_file": "dashboard_backup_20260628_185610.sql",
        "backup_type": "manual",
        "size_bytes": 20215,
        "created_at": "2026-06-28T18:56:10.548708+00:00"
      },
      {
        "id": 3,
        "backup_file": "dashboard_backup_20260629_030002.sql",
        "backup_type": "auto",
        "size_bytes": 54762,
        "created_at": "2026-06-29T03:00:02.208859+00:00"
      },
      {
        "id": 4,
        "backup_file": "dashboard_backup_20260630_030001.sql",
        "backup_type": "auto",
        "size_bytes": 90158,
        "created_at": "2026-06-30T03:00:01.612768+00:00"
      },
      {
        "id": 5,
        "backup_file": "dashboard_backup_20260701_030001.sql",
        "backup_type": "auto",
        "size_bytes": 97288,
        "created_at": "2026-07-01T03:00:02.205689+00:00"
      },
      {
        "id": 6,
        "backup_file": "dashboard_backup_20260702_030001.sql",
        "backup_type": "auto",
        "size_bytes": 129517,
        "created_at": "2026-07-02T03:00:01.766615+00:00"
      },
      {
        "id": 7,
        "backup_file": "dashboard_backup_20260703_030001.sql",
        "backup_type": "auto",
        "size_bytes": 134750,
        "created_at": "2026-07-03T03:00:01.711453+00:00"
      },
      {
        "id": 8,
        "backup_file": "dashboard_backup_20260704_030001.sql",
        "backup_type": "auto",
        "size_bytes": 134831,
        "created_at": "2026-07-04T03:00:01.644836+00:00"
      },
      {
        "id": 9,
        "backup_file": "dashboard_backup_20260705_030001.sql",
        "backup_type": "auto",
        "size_bytes": 134912,
        "created_at": "2026-07-05T03:00:02.089070+00:00"
      },
      {
        "id": 10,
        "backup_file": "dashboard_backup_20260706_030001.sql",
        "backup_type": "auto",
        "size_bytes": 134992,
        "created_at": "2026-07-06T03:00:02.168235+00:00"
      },
      {
        "id": 11,
        "backup_file": "dashboard_backup_20260707_030001.sql",
        "backup_type": "auto",
        "size_bytes": 135075,
        "created_at": "2026-07-07T03:00:02.225765+00:00"
      },
      {
        "id": 12,
        "backup_file": "dashboard_backup_20260708_030001.sql",
        "backup_type": "auto",
        "size_bytes": 135157,
        "created_at": "2026-07-08T03:00:01.678033+00:00"
      },
      {
        "id": 13,
        "backup_file": "dashboard_backup_20260709_030001.sql",
        "backup_type": "auto",
        "size_bytes": 135239,
        "created_at": "2026-07-09T03:00:01.656358+00:00"
      },
      {
        "id": 14,
        "backup_file": "dashboard_backup_20260710_030001.sql",
        "backup_type": "auto",
        "size_bytes": 135321,
        "created_at": "2026-07-10T03:00:01.902904+00:00"
      },
      {
        "id": 15,
        "backup_file": "dashboard_backup_20260711_030001.sql",
        "backup_type": "auto",
        "size_bytes": 135403,
        "created_at": "2026-07-11T03:00:01.892929+00:00"
      },
      {
        "id": 16,
        "backup_file": "dashboard_backup_20260712_030001.sql",
        "backup_type": "auto",
        "size_bytes": 135485,
        "created_at": "2026-07-12T03:00:01.685394+00:00"
      },
      {
        "id": 17,
        "backup_file": "dashboard_backup_20260713_030001.sql",
        "backup_type": "auto",
        "size_bytes": 135567,
        "created_at": "2026-07-13T03:00:02.070187+00:00"
      },
      {
        "id": 18,
        "backup_file": "dashboard_backup_20260714_030001.sql",
        "backup_type": "auto",
        "size_bytes": 135649,
        "created_at": "2026-07-14T03:00:01.486144+00:00"
      },
      {
        "id": 19,
        "backup_file": "dashboard_backup_20260715_030001.sql",
        "backup_type": "auto",
        "size_bytes": 135731,
        "created_at": "2026-07-15T03:00:02.173948+00:00"
      },
      {
        "id": 20,
        "backup_file": "dashboard_backup_20260716_030001.sql",
        "backup_type": "auto",
        "size_bytes": 135813,
        "created_at": "2026-07-16T03:00:02.199529+00:00"
      },
      {
        "id": 21,
        "backup_file": "dashboard_backup_20260717_030001.sql",
        "backup_type": "auto",
        "size_bytes": 135895,
        "created_at": "2026-07-17T03:00:01.626606+00:00"
      },
      {
        "id": 22,
        "backup_file": "dashboard_backup_20260718_030001.sql",
        "backup_type": "auto",
        "size_bytes": 135977,
        "created_at": "2026-07-18T03:00:01.972677+00:00"
      },
      {
        "id": 23,
        "backup_file": "dashboard_backup_20260719_030001.sql",
        "backup_type": "auto",
        "size_bytes": 136059,
        "created_at": "2026-07-19T03:00:01.632976+00:00"
      },
      {
        "id": 24,
        "backup_file": "dashboard_backup_20260720_030001.sql",
        "backup_type": "auto",
        "size_bytes": 136141,
        "created_at": "2026-07-20T03:00:01.815156+00:00"
      },
      {
        "id": 25,
        "backup_file": "dashboard_backup_20260721_030001.sql",
        "backup_type": "auto",
        "size_bytes": 136223,
        "created_at": "2026-07-21T03:00:01.615595+00:00"
      },
      {
        "id": 26,
        "backup_file": "dashboard_backup_20260722_030001.sql",
        "backup_type": "auto",
        "size_bytes": 136305,
        "created_at": "2026-07-22T03:00:02.280706+00:00"
      },
      {
        "id": 27,
        "backup_file": "dashboard_backup_20260723_030001.sql",
        "backup_type": "auto",
        "size_bytes": 136387,
        "created_at": "2026-07-23T03:00:01.778909+00:00"
      },
      {
        "id": 28,
        "backup_file": "dashboard_backup_20260724_030001.sql",
        "backup_type": "auto",
        "size_bytes": 136469,
        "created_at": "2026-07-24T03:00:02.238044+00:00"
      },
      {
        "id": 29,
        "backup_file": "dashboard_backup_20260725_030001.sql",
        "backup_type": "auto",
        "size_bytes": 136551,
        "created_at": "2026-07-25T03:00:01.660873+00:00"
      },
      {
        "id": 30,
        "backup_file": "dashboard_backup_20260726_030001.sql",
        "backup_type": "auto",
        "size_bytes": 136633,
        "created_at": "2026-07-26T03:00:01.591186+00:00"
      },
      {
        "id": 31,
        "backup_file": "dashboard_backup_20260727_030001.sql",
        "backup_type": "auto",
        "size_bytes": 136715,
        "created_at": "2026-07-27T03:00:01.903028+00:00"
      },
      {
        "id": 32,
        "backup_file": "dashboard_backup_20260728_030001.sql",
        "backup_type": "auto",
        "size_bytes": 136797,
        "created_at": "2026-07-28T03:00:02.271921+00:00"
      },
      {
        "id": 33,
        "backup_file": "dashboard_backup_20260729_030001.sql",
        "backup_type": "auto",
        "size_bytes": 136879,
        "created_at": "2026-07-29T03:00:02.132686+00:00"
      },
      {
        "id": 34,
        "backup_file": "dashboard_backup_20260730_030001.sql",
        "backup_type": "auto",
        "size_bytes": 136961,
        "created_at": "2026-07-30T03:00:01.800253+00:00"
      },
      {
        "id": 35,
        "backup_file": "dashboard_backup_20260731_030001.sql",
        "backup_type": "auto",
        "size_bytes": 137043,
        "created_at": "2026-07-31T03:00:02.234801+00:00"
      },
      {
        "id": 36,
        "backup_file": "dashboard_backup_20260801_030001.sql",
        "backup_type": "auto",
        "size_bytes": 137125,
        "created_at": "2026-08-01T03:00:02.183242+00:00"
      },
      {
        "id": 37,
        "backup_file": "dashboard_backup_20260802_030001.sql",
        "backup_type": "auto",
        "size_bytes": 137207,
        "created_at": "2026-08-02T03:00:01.836553+00:00"
      },
      {
        "id": 38,
        "backup_file": "dashboard_backup_20260803_030001.sql",
        "backup_type": "auto",
        "size_bytes": 137289,
        "created_at": "2026-08-03T03:00:01.931284+00:00"
      },
      {
        "id": 39,
        "backup_file": "dashboard_backup_20260804_030001.sql",
        "backup_type": "auto",
        "size_bytes": 137371,
        "created_at": "2026-08-04T03:00:01.684379+00:00"
      },
      {
        "id": 40,
        "backup_file": "dashboard_backup_20260805_030001.sql",
        "backup_type": "auto",
        "size_bytes": 137453,
        "created_at": "2026-08-05T03:00:01.615466+00:00"
      },
      {
        "id": 41,
        "backup_file": "dashboard_backup_20260806_030001.sql",
        "backup_type": "auto",
        "size_bytes": 137535,
        "created_at": "2026-08-06T03:00:01.457768+00:00"
      },
      {
        "id": 42,
        "backup_file": "dashboard_backup_20260807_030002.sql",
        "backup_type": "auto",
        "size_bytes": 137617,
        "created_at": "2026-08-07T03:00:02.321096+00:00"
      },
      {
        "id": 43,
        "backup_file": "dashboard_backup_20260808_030001.sql",
        "backup_type": "auto",
        "size_bytes": 137699,
        "created_at": "2026-08-08T03:00:02.116914+00:00"
      },
      {
        "id": 44,
        "backup_file": "dashboard_backup_20260809_030001.sql",
        "backup_type": "auto",
        "size_bytes": 137781,
        "created_at": "2026-08-09T03:00:01.957417+00:00"
      },
      {
        "id": 45,
        "backup_file": "dashboard_backup_20260810_030001.sql",
        "backup_type": "auto",
        "size_bytes": 137863,
        "created_at": "2026-08-10T03:00:02.136285+00:00"
      },
      {
        "id": 46,
        "backup_file": "dashboard_backup_20260811_030001.sql",
        "backup_type": "auto",
        "size_bytes": 137945,
        "created_at": "2026-08-11T03:00:01.611298+00:00"
      },
      {
        "id": 47,
        "backup_file": "dashboard_backup_20260812_030001.sql",
        "backup_type": "auto",
        "size_bytes": 138027,
        "created_at": "2026-08-12T03:00:01.523929+00:00"
      },
      {
        "id": 48,
        "backup_file": "dashboard_backup_20260813_030001.sql",
        "backup_type": "auto",
        "size_bytes": 138109,
        "created_at": "2026-08-13T03:00:01.470082+00:00"
      },
      {
        "id": 49,
        "backup_file": "dashboard_backup_20260814_030001.sql",
        "backup_type": "auto",
        "size_bytes": 138191,
        "created_at": "2026-08-14T03:00:01.916708+00:00"
      },
      {
        "id": 50,
        "backup_file": "dashboard_backup_20260815_030001.sql",
        "backup_type": "auto",
        "size_bytes": 138273,
        "created_at": "2026-08-15T03:00:01.617450+00:00"
      },
      {
        "id": 51,
        "backup_file": "dashboard_backup_20260816_030001.sql",
        "backup_type": "auto",
        "size_bytes": 138354,
        "created_at": "2026-08-16T03:00:01.811739+00:00"
      },
      {
        "id": 52,
        "backup_file": "dashboard_backup_20260817_030001.sql",
        "backup_type": "auto",
        "size_bytes": 138436,
        "created_at": "2026-08-17T03:00:02.165106+00:00"
      },
      {
        "id": 53,
        "backup_file": "dashboard_backup_20260818_030001.sql",
        "backup_type": "auto",
        "size_bytes": 138518,
        "created_at": "2026-08-18T03:00:02.314501+00:00"
      },
      {
        "id": 54,
        "backup_file": "dashboard_backup_20260819_030001.sql",
        "backup_type": "auto",
        "size_bytes": 138600,
        "created_at": "2026-08-19T03:00:01.655637+00:00"
      },
      {
        "id": 55,
        "backup_file": "dashboard_backup_20260820_030001.sql",
        "backup_type": "auto",
        "size_bytes": 138682,
        "created_at": "2026-08-20T03:00:01.440207+00:00"
      },
      {
        "id": 56,
        "backup_file": "dashboard_backup_20260821_030001.sql",
        "backup_type": "auto",
        "size_bytes": 138764,
        "created_at": "2026-08-21T03:00:01.350393+00:00"
      },
      {
        "id": 57,
        "backup_file": "dashboard_backup_20260822_030001.sql",
        "backup_type": "auto",
        "size_bytes": 138846,
        "created_at": "2026-08-22T03:00:01.722855+00:00"
      },
      {
        "id": 58,
        "backup_file": "dashboard_backup_20260823_030001.sql",
        "backup_type": "auto",
        "size_bytes": 138928,
        "created_at": "2026-08-23T03:00:01.751133+00:00"
      },
      {
        "id": 59,
        "backup_file": "dashboard_backup_20260824_030001.sql",
        "backup_type": "auto",
        "size_bytes": 139010,
        "created_at": "2026-08-24T03:00:01.590264+00:00"
      },
      {
        "id": 60,
        "backup_file": "dashboard_backup_20260825_030001.sql",
        "backup_type": "auto",
        "size_bytes": 139092,
        "created_at": "2026-08-25T03:00:02.269470+00:00"
      },
      {
        "id": 61,
        "backup_file": "dashboard_backup_20260826_030001.sql",
        "backup_type": "auto",
        "size_bytes": 139173,
        "created_at": "2026-08-26T03:00:01.497549+00:00"
      },
      {
        "id": 62,
        "backup_file": "dashboard_backup_20260827_030001.sql",
        "backup_type": "auto",
        "size_bytes": 139255,
        "created_at": "2026-08-27T03:00:01.788748+00:00"
      },
      {
        "id": 63,
        "backup_file": "dashboard_backup_20260828_030001.sql",
        "backup_type": "auto",
        "size_bytes": 139337,
        "created_at": "2026-08-28T03:00:01.963861+00:00"
      }
    ],
    "dashboard_service_logic": [
      {
        "id": 1,
        "service": "data_source",
        "section": "INPUT",
        "content": "Binance WebSocket (kline/trade streams) + REST (klines, funding rate, open interest, long/short ratio). FRED (DXY, tassi). DefiLlama (stablecoin supply, TVL). Alternative.me (Fear & Greed). Coingecko (market cap, metadata token).",
        "ordering": 1,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 2,
        "service": "data_source",
        "section": "LOGIC",
        "content": "WebSocket persistente per i prezzi real-time; poller REST schedulati per i driver. Normalizza payload eterogenei in un formato canonico (symbol, timestamp_ms, value). Nessuna persistenza propria: inoltra i batch a SERVER LOG. Backfill storico via REST quando mancano candele.",
        "ordering": 2,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 3,
        "service": "data_source",
        "section": "OUTPUT",
        "content": "Via SERVER LOG -> candles_1m/15m/1h/4h/1d, driver_per_asset (funding/OI/long_short), driver_global (fear_greed/btc_dominance/stablecoin/macro), token_metadata.",
        "ordering": 3,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 4,
        "service": "data_source",
        "section": "PSEUDOCODE",
        "content": "async for msg in binance_ws.stream(klines_universe):     # real-time\n    queue.put(normalize_kline(msg))\n\nevery 60s:                                               # REST pollers\n    for src in [funding, open_interest, long_short]:\n        for r in fetch(src): queue.put(normalize(r))\nevery 300s:\n    for src in [fear_greed, dxy, stablecoin_supply]:\n        for r in fetch(src): queue.put(normalize(r))\n\nwhile batch := queue.drain(max=500):\n    server_log.upsert(batch)        # delega la persistenza",
        "ordering": 4,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 5,
        "service": "data_source",
        "section": "KEY PARAMETERS",
        "content": "ws_streams: kline_1m sull'universe (~200 simboli). rest_poll: 60s (funding/OI/LS), 300s (macro/F&G). batch_size: 500. universe: 200+ token (universe_test.yaml).",
        "ordering": 5,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 6,
        "service": "data_source",
        "section": "DEPENDENCIES",
        "content": "Nessuna a monte (e' la sorgente). Scrive esclusivamente tramite SERVER LOG.",
        "ordering": 6,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 7,
        "service": "data_source",
        "section": "RESOURCES",
        "content": "CPU bassa (~1 core). RAM ~300-500MB (buffer WS). Storage 0 (delegato a SERVER LOG). Banda di rete continua per gli stream WS.",
        "ordering": 7,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 8,
        "service": "server_log",
        "section": "INPUT",
        "content": "Stream normalizzati da DATA SOURCE (candele, driver, metadata). Heartbeat ed eventi operativi da tutti i servizi v6.",
        "ordering": 1,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 9,
        "service": "server_log",
        "section": "LOGIC",
        "content": "PostgreSQL append-only come audit trail. UPSERT idempotente sulle PK (es. candele su (symbol, open_time)). Batch insert con execute_values/COPY per throughput. Job di retention a 180 giorni.",
        "ordering": 2,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 10,
        "service": "server_log",
        "section": "OUTPUT",
        "content": "Le 17 tabelle hydra_v6 (9 dati: candles_*, driver_*, token_*; + operative: live_events, analyz_signals, decisions, paper_positions, heartbeats, quality_reports, emergency_actions).",
        "ordering": 3,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 11,
        "service": "server_log",
        "section": "PSEUDOCODE",
        "content": "def upsert(batch):\n    for table, rows in partition_by_table(batch).items():\n        execute_values(\n            f\"INSERT INTO {table} (...) VALUES %s \"\n            \"ON CONFLICT (pk) DO UPDATE SET ...\", rows, page_size=1000)\n\ndaily 04:00:                              # retention 180gg\n    for t in candle_tables:\n        DELETE FROM t WHERE open_time < now_ms() - days(180)",
        "ordering": 4,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 12,
        "service": "server_log",
        "section": "KEY PARAMETERS",
        "content": "retention_days: 180. batch page_size: 1000. conflict policy: DO UPDATE (idempotente). append-only (no UPDATE distruttivi sui dati storici).",
        "ordering": 5,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 13,
        "service": "server_log",
        "section": "DEPENDENCIES",
        "content": "DATA SOURCE (produttore principale). Riceve scritture da tutti gli altri servizi (eventi/heartbeat).",
        "ordering": 6,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 14,
        "service": "server_log",
        "section": "RESOURCES",
        "content": "CPU media in burst di insert. RAM ~0.5-1GB (shared_buffers PostgreSQL). Storage grande: ~7GB la sola candles_1m, in crescita, con cap a 180gg.",
        "ordering": 7,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 15,
        "service": "live_scanner",
        "section": "INPUT",
        "content": "candles_1m e candles_15m (da hydra_v6), driver_per_asset (funding, OI).",
        "ordering": 1,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 16,
        "service": "live_scanner",
        "section": "LOGIC",
        "content": "5 detector eseguiti ogni minuto su tutti i 200+ asset: pump (ritorno% breve oltre soglia), dump (ritorno negativo), volume_spike (z-score volume), funding_extreme (funding z21 oltre quantile), liquidity_drop (caduta quote_volume/liquidita').",
        "ordering": 2,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 17,
        "service": "live_scanner",
        "section": "OUTPUT",
        "content": "live_events (event_type, symbol, severity, payload, timestamp_ms).",
        "ordering": 3,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 18,
        "service": "live_scanner",
        "section": "PSEUDOCODE",
        "content": "every 60s:\n    for sym in universe:                       # 200+ asset\n        c = candles_1m.last_n(sym, 60)\n        if ret(c, 5m) >  PUMP_PCT:     emit(\"pump\", sym, sev=\"warning\")\n        if ret(c, 5m) < -DUMP_PCT:     emit(\"dump\", sym, sev=\"warning\")\n        if zscore(c.volume, 60) > VOL_Z: emit(\"volume_spike\", sym)\n        if funding_z21(sym) >= FUND_Q:   emit(\"funding_extreme\", sym)\n        if liquidity_drop(sym) > LIQ_PCT: emit(\"liquidity_drop\", sym)",
        "ordering": 4,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 19,
        "service": "live_scanner",
        "section": "KEY PARAMETERS",
        "content": "freq: 60s. pump/dump: +/- soglia% su 5m (da affinare). volume z-score: ~3.0. funding quantile: Q90. liquidity_drop: % su finestra. universe: 200+ (da filtrare).",
        "ordering": 5,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 20,
        "service": "live_scanner",
        "section": "DEPENDENCIES",
        "content": "DATA SOURCE / SERVER LOG (candele e driver).",
        "ordering": 6,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 21,
        "service": "live_scanner",
        "section": "RESOURCES",
        "content": "CPU media (200 asset x 5 detector al minuto). RAM ~200MB. Storage modesto (solo eventi).",
        "ordering": 7,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 22,
        "service": "server_stat",
        "section": "INPUT",
        "content": "candles_1h, candles_4h, candles_1d. driver_per_asset (funding, OI) per gli indicatori Tier 3.",
        "ordering": 1,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 23,
        "service": "server_stat",
        "section": "LOGIC",
        "content": "Calcola 30 indicatori per asset e timeframe. Tier1: RSI, EMA 9/21/50/200, Returns, ATR. Tier2: Vol, Volume, Momentum, Bollinger, VWAP. Tier3: Beta, Funding+z21, Funding slope, OI. Esclude MACD/Stochastic/Ichimoku/Fibonacci (ridondanti o ritardati).",
        "ordering": 2,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 24,
        "service": "server_stat",
        "section": "OUTPUT",
        "content": "Feature store di indicatori per (symbol, timeframe), consumato da SERVER ANALYZ (payload JSONB).",
        "ordering": 3,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 25,
        "service": "server_stat",
        "section": "PSEUDOCODE",
        "content": "every 1h:\n    for sym in universe:\n        for tf in [1h, 4h, 1d]:\n            c = candles[tf].last_n(sym, 250)\n            feats = {\n              \"rsi14\": rsi(c,14), \"ema\": ema(c,[9,21,50,200]),\n              \"atr14\": atr(c,14), \"ret\": returns(c),\n              \"boll\": bollinger(c,20,2), \"vwap\": vwap(c),\n              \"beta\": beta(c, btc), \"funding_z21\": z(funding(sym),21),\n              \"funding_slope\": slope(funding(sym)), \"oi\": oi(sym),\n            }\n            feature_store.put(sym, tf, feats)",
        "ordering": 4,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 26,
        "service": "server_stat",
        "section": "KEY PARAMETERS",
        "content": "freq: 1h. timeframes: 1h/4h/1d. EMA: 9/21/50/200. RSI: 14. ATR: 14. Bollinger: 20/2. z-window: 21. lookback: 250 candele.",
        "ordering": 5,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 27,
        "service": "server_stat",
        "section": "DEPENDENCIES",
        "content": "SERVER LOG (candele), DATA SOURCE (funding/OI).",
        "ordering": 6,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 28,
        "service": "server_stat",
        "section": "RESOURCES",
        "content": "CPU media-alta ogni ora (200 asset x 3 tf x 30 indicatori). RAM ~500MB (numpy/pandas). Storage feature store modesto.",
        "ordering": 7,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 29,
        "service": "server_analyz",
        "section": "INPUT",
        "content": "Feature store di SERVER STAT, candele, driver_per_asset/global, output dei modelli ML (Cat E).",
        "ordering": 1,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 30,
        "service": "server_analyz",
        "section": "LOGIC",
        "content": "15 moduli (Cat A-E) producono ciascuno uno score 0-1; combinati in uno score aggregato pesato per categoria. Frequenza 1h. Auto-validazione mensile dei pesi via walk-forward.",
        "ordering": 2,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 31,
        "service": "server_analyz",
        "section": "MODULES",
        "content": "| Cat | Modulo | Peso | Logica | Finding |\n| A | Funding Q90 Defensive | 3.0 | Funding z21 >= Q90 -> posizione defensive/short ~7gg | #11: ret medio -4.59% a 7gg, walk-forward 10/10 |\n| B | Funding x Regime | 1.0 | Funding condizionato al regime di mercato | candidato (da validare) |\n| B | DXY in Bear | 1.0 | Forza del DXY come filtro nei regimi bear | candidato (da validare) |\n| B | Volatility filtering | 1.0 | Filtra/scala i segnali per regime di volatilita' | candidato (da validare) |\n| C | Momentum 30d | 0.3 | Momentum classico a 30 giorni | classico, edge debole |\n| C | Mean reversion RSI | 0.3 | RSI < 35 -> reversione attesa | classico, edge debole |\n| C | Trend EMA | 0.3 | Cross / pendenza delle EMA | classico, edge debole |\n| D | Regime detector | contesto | Classifica bull / bear / range | feature di contesto |\n| D | Volatility regime | contesto | Classifica volatilita' alta / bassa | feature di contesto |\n| D | Drawdown current | contesto | Drawdown corrente dell'asset | feature di contesto |\n| E | TimesFM | 0.5-1.5 | Foundation model di forecasting time-series | ML |\n| E | Chronos | 0.5-1.5 | Foundation model di forecasting time-series | ML |\n| E | HMM | 0.5-1.5 | Hidden Markov Model per regime | ML |\n| E | Hurst | 0.5-1.5 | Esponente di Hurst (persistenza/mean-reversion) | ML |\n| E | LSTM | 0.5-1.5 | Rete ricorrente per forecasting | ML |",
        "ordering": 3,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 32,
        "service": "server_analyz",
        "section": "OUTPUT",
        "content": "analyz_signals (symbol, signal_type, direction long/short, score 0-1, payload con i sotto-score).",
        "ordering": 4,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 33,
        "service": "server_analyz",
        "section": "PSEUDOCODE",
        "content": "every 1h:\n    for sym in universe:\n        scores = {m.name: m.evaluate(sym, features[sym]) for m in MODULES}  # 15 moduli\n        agg = sum(scores[m.name]*WEIGHT[m.cat] for m in MODULES) / sum_weights\n        direction = \"short\" if defensive_edge(sym) else \"long\"   # edge Funding Q90\n        analyz_signals.insert(sym, signal_type=top(scores),\n                              direction=direction, score=agg, payload=scores)\n\nmonthly:\n    WEIGHT = walk_forward_revalidate(history)   # auto-validazione pesi",
        "ordering": 5,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 34,
        "service": "server_analyz",
        "section": "KEY PARAMETERS",
        "content": "freq: 1h. pesi: A=3.0, B=1.0, C=0.3, D=contesto, E=0.5-1.5. score: 0-1 continuo. revalidation: mensile (walk-forward).",
        "ordering": 6,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 35,
        "service": "server_analyz",
        "section": "DEPENDENCIES",
        "content": "SERVER STAT (feature), SERVER LOG (candele/driver), modelli ML per la Cat E.",
        "ordering": 7,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 36,
        "service": "server_analyz",
        "section": "RESOURCES",
        "content": "CPU alta (ML: TimesFM/Chronos/LSTM). RAM 2-4GB (modelli in memoria). Storage modelli ~1GB.",
        "ordering": 8,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 37,
        "service": "agent_ai",
        "section": "INPUT",
        "content": "analyz_signals (segnali), paper_positions (stato posizioni), token_metadata (filtri), prezzi correnti.",
        "ordering": 1,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 38,
        "service": "agent_ai",
        "section": "LOGIC",
        "content": "Decisore Pure Rule-Based deterministico (NO Claude API). Filtra l'universe; applica regole di entry/exit sugli score di ANALYZ (da definire); execution interno separato. Genera decisioni e gestisce le posizioni paper.",
        "ordering": 2,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 39,
        "service": "agent_ai",
        "section": "OUTPUT",
        "content": "decisions (action buy/sell/hold/close, confidence, reason, signal_id) e paper_positions (open/close, exit_reason esplicito).",
        "ordering": 3,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 40,
        "service": "agent_ai",
        "section": "PSEUDOCODE",
        "content": "on new analyz_signals:\n    for sig in analyz_signals.fresh():\n        if not passes_filters(sig.symbol): continue   # universe filter\n        if sig.score >= ENTRY_TH and not open(sig.symbol):\n            size = position_size(equity, RISK_PCT)\n            decisions.insert(\"buy\", sig); paper_open(sig.symbol, size)\n\n    for pos in paper_positions.open():\n        if exit_rule(pos):              # TP / SL / holding max / decay score\n            decisions.insert(\"close\", pos, reason=exit_reason(pos))\n            paper_close(pos)",
        "ordering": 4,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 41,
        "service": "agent_ai",
        "section": "KEY PARAMETERS",
        "content": "entry_threshold: DA DEFINIRE. holding_period_max: DA DEFINIRE. position_sizing: DA DEFINIRE (risk per trade). filtri: vol_24h>1M, eta'>30gg, storia>60gg, spread<0.5%. blacklist: RNDR, FET.",
        "ordering": 5,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 42,
        "service": "agent_ai",
        "section": "DEPENDENCIES",
        "content": "SERVER ANALYZ (segnali), SERVER LOG (stato), DATA SOURCE (prezzi).",
        "ordering": 6,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 43,
        "service": "agent_ai",
        "section": "RESOURCES",
        "content": "CPU bassa. RAM ~200MB. Storage modesto (decisioni e posizioni).",
        "ordering": 7,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 44,
        "service": "server_quality",
        "section": "INPUT",
        "content": "paper_positions, decisions, analyz_signals, heartbeats, candele (per benchmark).",
        "ordering": 1,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 45,
        "service": "server_quality",
        "section": "LOGIC",
        "content": "Auditor investigativo. Health check ogni 5 minuti. Analisi perdite per-trade (attribuzione: timing di entry, exit_reason, slippage). Scansione opportunita' giornaliera (cosa si e' perso). Nessuna notifica: solo report.",
        "ordering": 2,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 46,
        "service": "server_quality",
        "section": "OUTPUT",
        "content": "quality_reports (report_type: health/loss_analysis/opportunity, scope, status, details JSONB).",
        "ordering": 3,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 47,
        "service": "server_quality",
        "section": "PSEUDOCODE",
        "content": "every 5min:                              # health\n    h = collect_heartbeats()\n    if stale(h): quality_reports.insert(\"health\", status=\"critical\", details=h)\n\ndaily:\n    for trade in closed_trades(yesterday):\n        attr = attribute_pnl(trade)          # perche' ha perso/guadagnato\n        quality_reports.insert(\"loss_analysis\", scope=trade.id, details=attr)\n    missed = scan_missed_opportunities()\n    quality_reports.insert(\"opportunity\", details=missed)",
        "ordering": 4,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 48,
        "service": "server_quality",
        "section": "KEY PARAMETERS",
        "content": "health_interval: 5min. loss analysis: per-trade giornaliera. benchmark: DA DEFINIRE. notifiche: NESSUNA (solo report).",
        "ordering": 5,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 49,
        "service": "server_quality",
        "section": "DEPENDENCIES",
        "content": "AGENT AI (trade/decisioni), SERVER LOG, SERVER ANALYZ.",
        "ordering": 6,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 50,
        "service": "server_quality",
        "section": "RESOURCES",
        "content": "CPU bassa. RAM ~200MB. Storage report modesto.",
        "ordering": 7,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 51,
        "service": "emergency",
        "section": "INPUT",
        "content": "heartbeats, paper_positions (equity/drawdown), prezzo BTC, stato exchange, quality_reports (critical).",
        "ordering": 1,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 52,
        "service": "emergency",
        "section": "LOGIC",
        "content": "Container Docker isolato, indipendente dal core. Monitora 8 trigger; al primo che scatta esegue market sell di tutte le posizioni. NON si riavvia da solo: restart manuale.",
        "ordering": 2,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 53,
        "service": "emergency",
        "section": "OUTPUT",
        "content": "emergency_actions (action_type, reason, triggered_by, details JSONB).",
        "ordering": 3,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 54,
        "service": "emergency",
        "section": "PSEUDOCODE",
        "content": "loop:                                  # container isolato\n    if now - last_heartbeat > 5min:    trip(\"heartbeat\")\n    if drawdown()       >= 0.20:       trip(\"drawdown_20\")\n    if daily_loss()     >= 0.07:       trip(\"daily_loss_7\")\n    if max_position_pct() >= 0.10:     trip(\"position_10\")\n    if orders_per_min() >  LIMIT:      trip(\"order_rate\")\n    if btc_move_10min() <= -0.05:      trip(\"flash_crash_btc\")\n    if exchange_error():               trip(\"exchange_error\")\n    if quality_critical():             trip(\"quality_critical\")\n\ndef trip(reason):\n    market_sell_all(); emergency_actions.insert(reason); halt()  # restart MANUALE",
        "ordering": 4,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 55,
        "service": "emergency",
        "section": "KEY PARAMETERS",
        "content": "heartbeat_timeout: 5min. drawdown_max: 20%. daily_loss_max: 7%. position_max: 10%. flash_crash_btc: -5% in 10min. order rate limit. restart: MANUALE.",
        "ordering": 5,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 56,
        "service": "emergency",
        "section": "DEPENDENCIES",
        "content": "SERVER LOG (stato), SERVER QUALITY (segnale critical), AGENT AI (posizioni da liquidare).",
        "ordering": 6,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      },
      {
        "id": 57,
        "service": "emergency",
        "section": "RESOURCES",
        "content": "CPU minima. RAM ~128MB (container isolato). Storage minimo.",
        "ordering": 7,
        "created_at": "2026-06-28T19:16:12.692604+00:00",
        "updated_at": "2026-06-28T19:16:12.692604+00:00"
      }
    ],
    "dashboard_table_metadata": [
      {
        "table_name": "analyz_signals",
        "written_by": "SERVER ANALYZ",
        "read_by": "AGENT AI, SERVER QUALITY",
        "data_flow_in": "15 moduli (Cat A-E) su feature SERVER STAT",
        "data_flow_out": "Decisioni di trading (AGENT AI)",
        "notes": "Score 0-1 continuo per simbolo.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "candles_15m",
        "written_by": "DATA SOURCE / aggregazione (via SERVER LOG)",
        "read_by": "LIVE SCANNER, SERVER STAT",
        "data_flow_in": "Aggregazione da candles_1m",
        "data_flow_out": "Detector LIVE SCANNER, feature SERVER STAT",
        "notes": "Timeframe derivato.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "candles_1d",
        "written_by": "DATA SOURCE / aggregazione (via SERVER LOG)",
        "read_by": "SERVER STAT, SERVER ANALYZ",
        "data_flow_in": "Aggregazione da candles_1m + backfill storico Binance spot klines (major, 2021+)",
        "data_flow_out": "Indicatori daily, beta, regime",
        "notes": "Timeframe daily. Backfill storico lungo da Binance spot (2021-oggi) per 20 major (Passo1 ricerca, scripts/14): 2008 candele/asset. Copre bull+bear per ricerca edge.",
        "updated_at": "2026-07-01T20:20:55.576541+00:00"
      },
      {
        "table_name": "candles_1h",
        "written_by": "DATA SOURCE / aggregazione (via SERVER LOG)",
        "read_by": "SERVER STAT, SERVER ANALYZ",
        "data_flow_in": "Aggregazione da candles_1m + backfill storico Binance spot klines (major, 2021+)",
        "data_flow_out": "Indicatori Tier 1-3 (SERVER STAT)",
        "notes": "Timeframe principale indicatori. Backfill storico lungo da Binance spot (2021-oggi) per 20 major (Passo1 ricerca, scripts/14): ~48k candele/asset.",
        "updated_at": "2026-07-01T20:20:55.574791+00:00"
      },
      {
        "table_name": "candles_1m",
        "written_by": "DATA SOURCE (via SERVER LOG)",
        "read_by": "LIVE SCANNER, SERVER STAT, SERVER ANALYZ, SERVER QUALITY",
        "data_flow_in": "Binance WS (kline_1m) -> normalizzazione -> SERVER LOG",
        "data_flow_out": "Aggregata in 15m/1h/4h/1d; alimenta detector e indicatori",
        "notes": "OHLCV base 1 minuto, append-only.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "candles_4h",
        "written_by": "DATA SOURCE / aggregazione (via SERVER LOG)",
        "read_by": "SERVER STAT, SERVER ANALYZ",
        "data_flow_in": "Aggregazione da candles_1m",
        "data_flow_out": "Indicatori multi-timeframe",
        "notes": "Timeframe derivato.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "dashboard_backups_log",
        "written_by": "Backup (auto/manuale)",
        "read_by": "Dashboard (/backup)",
        "data_flow_in": "dashboard_backup.sh / API backup",
        "data_flow_out": "Elenco backup disponibili",
        "notes": "Registro dei backup.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "dashboard_decisions",
        "written_by": "Dashboard web (utente)",
        "read_by": "Dashboard (/servizi, /roadmap)",
        "data_flow_in": "Form web",
        "data_flow_out": "Pagine servizi e decisioni pendenti",
        "notes": "Decisioni di design, backuppate.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "dashboard_ideas",
        "written_by": "Dashboard web (utente)",
        "read_by": "Dashboard (/servizi, /roadmap)",
        "data_flow_in": "Form web",
        "data_flow_out": "Backlog e task per servizio",
        "notes": "Idee/task, backuppate.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "dashboard_notes",
        "written_by": "Dashboard web (utente)",
        "read_by": "Dashboard (/v5 e altre pagine)",
        "data_flow_in": "Form web",
        "data_flow_out": "Rendering note",
        "notes": "Contenuto editoriale, backuppato.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "dashboard_roadmap",
        "written_by": "Dashboard web (utente)",
        "read_by": "Dashboard (/home, /roadmap)",
        "data_flow_in": "Form web + seed iniziale",
        "data_flow_out": "Timeline fasi, % completamento",
        "notes": "Stato fasi 0-10, backuppato.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "dashboard_service_logic",
        "written_by": "Seed (Task 1)",
        "read_by": "Dashboard (/servizi)",
        "data_flow_in": "scripts/05_service_logic_seed.py",
        "data_flow_out": "Sezione LOGICA per servizio",
        "notes": "Doc tecnica per servizio.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "dashboard_table_metadata",
        "written_by": "Seed (Task 2)",
        "read_by": "Dashboard (/sistema)",
        "data_flow_in": "scripts/06_table_metadata_seed.py",
        "data_flow_out": "Data flow per tabella su /sistema",
        "notes": "Questa tabella.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "decisions",
        "written_by": "AGENT AI",
        "read_by": "SERVER QUALITY, EMERGENCY",
        "data_flow_in": "Regole su analyz_signals + filtri",
        "data_flow_out": "Esecuzione paper, audit qualita'",
        "notes": "Output del decisore rule-based.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "driver_global",
        "written_by": "DATA SOURCE (via SERVER LOG)",
        "read_by": "SERVER ANALYZ",
        "data_flow_in": "Alternative.me (F&G), FRED (DXY/macro), DefiLlama (stablecoin)",
        "data_flow_out": "Moduli di contesto/regime (Cat D)",
        "notes": "Driver di mercato globali.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "driver_per_asset",
        "written_by": "DATA SOURCE (via SERVER LOG)",
        "read_by": "LIVE SCANNER, SERVER STAT, SERVER ANALYZ",
        "data_flow_in": "Binance REST (funding, OI, long/short)",
        "data_flow_out": "Edge Funding Q90, detector funding_extreme",
        "notes": "Driver per simbolo (10 major piu' densi).",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "emergency_actions",
        "written_by": "EMERGENCY",
        "read_by": "SERVER QUALITY, operatore",
        "data_flow_in": "Scatto di uno degli 8 trigger",
        "data_flow_out": "Market sell + halt; audit post-mortem",
        "notes": "Kill-switch, restart manuale.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "heartbeats",
        "written_by": "TUTTI i servizi v6",
        "read_by": "SERVER QUALITY, EMERGENCY",
        "data_flow_in": "Ping periodico di ogni componente",
        "data_flow_out": "Health check 5min, trigger heartbeat EMERGENCY",
        "notes": "Liveness dei componenti.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "live_events",
        "written_by": "LIVE SCANNER",
        "read_by": "SERVER ANALYZ, SERVER QUALITY, AGENT AI",
        "data_flow_in": "5 detector @1min su candele/driver",
        "data_flow_out": "Contesto per ANALYZ, audit eventi",
        "notes": "Eventi grezzi del mercato.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "paper_positions",
        "written_by": "AGENT AI",
        "read_by": "SERVER QUALITY, EMERGENCY",
        "data_flow_in": "Apertura/chiusura da decisions",
        "data_flow_out": "Analisi perdite (QUALITY), liquidazione (EMERGENCY)",
        "notes": "exit_reason esplicito (no mislabel manual_sell).",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "quality_reports",
        "written_by": "SERVER QUALITY",
        "read_by": "EMERGENCY (critical), operatore",
        "data_flow_in": "Audit su trade/decisioni/heartbeat",
        "data_flow_out": "Trigger quality_critical di EMERGENCY",
        "notes": "Report investigativi, nessuna notifica.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "schema_info",
        "written_by": "Migrazioni / DDL",
        "read_by": "Operatore / dashboard",
        "data_flow_in": "Script di migrazione (scripts/)",
        "data_flow_out": "Versioning schema",
        "notes": "Tracking versioni schema.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "token_fingerprint_history",
        "written_by": "DATA SOURCE / fingerprint (legacy v4/v5)",
        "read_by": "SERVER QUALITY, AGENT AI",
        "data_flow_in": "Snapshot periodici volume/mcap/liquidita'",
        "data_flow_out": "Filtri liquidita' e analisi qualita'",
        "notes": "Storico fingerprint per simbolo.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      },
      {
        "table_name": "token_metadata",
        "written_by": "DATA SOURCE",
        "read_by": "AGENT AI (filtri universe), LIVE SCANNER",
        "data_flow_in": "Coingecko / listing Binance",
        "data_flow_out": "Filtri AGENT AI (vol/eta'/spread/blacklist)",
        "notes": "Un record per simbolo.",
        "updated_at": "2026-06-28T19:18:41.125950+00:00"
      }
    ],
    "dashboard_events": [
      {
        "id": 1,
        "event_date": "2026-06-25",
        "event_type": "fase",
        "title": "Fase 0 completata — Pulizia ambiente + PostgreSQL",
        "description": "Setup ambiente v6 e installazione PostgreSQL.",
        "related_service": null,
        "related_phase": "0",
        "metadata": null,
        "created_at": "2026-06-28T19:21:34.249287+00:00"
      },
      {
        "id": 2,
        "event_date": "2026-06-25",
        "event_type": "fase",
        "title": "Fase 1 — Schema completo DB (16+ tabelle + indici)",
        "description": "Creazione schema hydra_v6 (commit cb7c4b0, tag fase-1-schema).",
        "related_service": "server_log",
        "related_phase": "1",
        "metadata": null,
        "created_at": "2026-06-28T19:21:34.249287+00:00"
      },
      {
        "id": 3,
        "event_date": "2026-06-25",
        "event_type": "fase",
        "title": "Fase 1 — Migrazione dati completata",
        "description": "Migrazione 52.6M righe da SQLite a PostgreSQL (commit c0164fd, tag fase-1-migration).",
        "related_service": "server_log",
        "related_phase": "1",
        "metadata": null,
        "created_at": "2026-06-28T19:21:34.249287+00:00"
      },
      {
        "id": 4,
        "event_date": "2026-06-25",
        "event_type": "fase",
        "title": "Fase 1 — Aggiunta candles_4h",
        "description": "Tabella candles_4h aggiunta in fase-1-migration-v2 (commit fd00c90).",
        "related_service": "server_log",
        "related_phase": "1",
        "metadata": null,
        "created_at": "2026-06-28T19:21:34.249287+00:00"
      },
      {
        "id": 5,
        "event_date": "2026-06-28",
        "event_type": "fase",
        "title": "Fase 1.5 — Dashboard documentazione live",
        "description": "Dashboard FastAPI su https://docu.spocci.ch (tag fase-1.5-dashboard-complete).",
        "related_service": null,
        "related_phase": "1.5",
        "metadata": null,
        "created_at": "2026-06-28T19:21:34.249287+00:00"
      },
      {
        "id": 6,
        "event_date": "2026-06-28",
        "event_type": "fase",
        "title": "Fix timeout pagina /sistema",
        "description": "Stime reltuples, timeout 2s per query, asyncio.gather, cache 5min (tag fase-1.5-dashboard-fix1).",
        "related_service": null,
        "related_phase": "1.5",
        "metadata": null,
        "created_at": "2026-06-28T19:21:34.249287+00:00"
      },
      {
        "id": 7,
        "event_date": "2026-06-28",
        "event_type": "decisione",
        "title": "Reverse proxy: nginx + certbot (non Caddy)",
        "description": "Caddy in stato failed (nginx occupa 80/443). Scelto nginx+certbot per docu.spocci.ch.",
        "related_service": null,
        "related_phase": "1.5",
        "metadata": null,
        "created_at": "2026-06-28T19:21:34.249287+00:00"
      },
      {
        "id": 8,
        "event_date": "2026-06-28",
        "event_type": "fase",
        "title": "Fase 1.5 — Arricchimento dashboard (LOGICA, data flow, cronologia/audit)",
        "description": "Task 1 logica servizi, Task 2 sample row + data flow, Task 3 cronologia + audit.",
        "related_service": null,
        "related_phase": "1.5",
        "metadata": null,
        "created_at": "2026-06-28T19:21:34.249287+00:00"
      }
    ],
    "dashboard_audit_log": [
      {
        "id": 1,
        "table_name": "dashboard_ideas",
        "action": "INSERT",
        "record_id": "15",
        "old_data": null,
        "new_data": {
          "id": 15,
          "title": "auto analisi ",
          "status": "pending",
          "category": "backlog",
          "priority": 3,
          "created_at": "2026-06-28T19:33:37.900765+00:00",
          "updated_at": "2026-06-28T19:33:37.900765+00:00",
          "description": "Vorrei creare un sistema faccia automaticamente analisi di mercato, provi arogoritmi predittivi, formule economica, indicatori di mercato, le integri con le news e che proponga dei canditati con queste analisi"
        },
        "changed_at": "2026-06-28T19:33:37.900765+00:00"
      },
      {
        "id": 2,
        "table_name": "dashboard_ideas",
        "action": "UPDATE",
        "record_id": "15",
        "old_data": {
          "id": 15,
          "title": "auto analisi ",
          "status": "pending",
          "category": "backlog",
          "priority": 3,
          "created_at": "2026-06-28T19:33:37.900765+00:00",
          "updated_at": "2026-06-28T19:33:37.900765+00:00",
          "description": "Vorrei creare un sistema faccia automaticamente analisi di mercato, provi arogoritmi predittivi, formule economica, indicatori di mercato, le integri con le news e che proponga dei canditati con queste analisi"
        },
        "new_data": {
          "id": 15,
          "title": "auto analisi ",
          "status": "in_progress",
          "category": "backlog",
          "priority": 3,
          "created_at": "2026-06-28T19:33:37.900765+00:00",
          "updated_at": "2026-06-28T19:33:55.57107+00:00",
          "description": "Vorrei creare un sistema faccia automaticamente analisi di mercato, provi arogoritmi predittivi, formule economica, indicatori di mercato, le integri con le news e che proponga dei canditati con queste analisi"
        },
        "changed_at": "2026-06-28T19:33:55.571070+00:00"
      },
      {
        "id": 3,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "1",
        "old_data": null,
        "new_data": {
          "id": 1,
          "title": "Walk-forward #1 — RSI mean reversion (soglie 30/70, 25/75, 20/80)",
          "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
          "status": "refuted",
          "metadata": {
            "strategie": [
              "RSI mean reversion (soglie 30/70, 25/75, 20/80)",
              "MACD crossover (12-26-9)",
              "EMA crossover (9/21, 21/50, 50/200)",
              "Triple EMA cross",
              "Bollinger Bands squeeze",
              "Keltner channels",
              "Volume breakout",
              "Money Flow Index",
              "Chaikin oscillator",
              "Momentum 7d/14d/30d",
              "Rate of Change",
              "Awesome Oscillator",
              "ATR breakout",
              "Donchian channels",
              "Stochastic oscillator",
              "Williams %R",
              "CCI extremes",
              "Heikin Ashi trend",
              "Parabolic SAR",
              "Williams Alligator",
              "Ichimoku cloud",
              "VWAP reversion",
              "ADX trend strength"
            ],
            "strategie_walk_forward_totali": 23
          },
          "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-05-15",
          "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 1
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 4,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "2",
        "old_data": null,
        "new_data": {
          "id": 2,
          "title": "Walk-forward #2 — MACD crossover (12-26-9)",
          "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-05-15",
          "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 2
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 5,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "3",
        "old_data": null,
        "new_data": {
          "id": 3,
          "title": "Walk-forward #3 — EMA crossover (9/21, 21/50, 50/200) + Triple EMA cross",
          "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-05-15",
          "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 3
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 6,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "4",
        "old_data": null,
        "new_data": {
          "id": 4,
          "title": "Walk-forward #4 — Bollinger Bands squeeze + Keltner channels",
          "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-05-15",
          "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 4
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 7,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "5",
        "old_data": null,
        "new_data": {
          "id": 5,
          "title": "Walk-forward #5 — Volume breakout + Money Flow Index + Chaikin oscillator",
          "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-05-15",
          "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 5
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 8,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "6",
        "old_data": null,
        "new_data": {
          "id": 6,
          "title": "Walk-forward #6 — Momentum 7d/14d/30d + Rate of Change + Awesome Oscillator",
          "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-05-15",
          "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 6
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 9,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "7",
        "old_data": null,
        "new_data": {
          "id": 7,
          "title": "Walk-forward #7 — ATR breakout + Donchian channels",
          "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-05-15",
          "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 7
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 10,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "8",
        "old_data": null,
        "new_data": {
          "id": 8,
          "title": "Walk-forward #8 — Stochastic oscillator + Williams %R + CCI extremes",
          "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-05-15",
          "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 8
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 11,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "9",
        "old_data": null,
        "new_data": {
          "id": 9,
          "title": "Walk-forward #9 — Heikin Ashi trend + Parabolic SAR + Williams Alligator",
          "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-05-15",
          "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 9
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 12,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "10",
        "old_data": null,
        "new_data": {
          "id": 10,
          "title": "Walk-forward #10 — Ichimoku cloud + VWAP reversion + ADX trend strength",
          "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-05-15",
          "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 10
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 13,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "11",
        "old_data": null,
        "new_data": {
          "id": 11,
          "title": "Funding Rate Q90 — l'unico driver validato",
          "result": "Media OOS -4.59% (range -3.22% / -6.21%), 10/10 asset robusti, consistency 75-83%.",
          "status": "validated",
          "metadata": null,
          "conclusion": "Edge primario v6. Peso 3.0 nello scoring ANALYZ.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-06-10",
          "methodology": "Walk-forward 12-fold su 10 asset top-cap, 180gg. Trigger funding_rate_z21 >= Q90 locale (rolling 21gg). Return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 11
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 14,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "12",
        "old_data": null,
        "new_data": {
          "id": 12,
          "title": "Funding Rate",
          "result": "Media OOS -4.59%, 10/10 robusti, consistency 75-83%.",
          "status": "validated",
          "metadata": null,
          "conclusion": "VALIDATED — adottato come edge primario (vedi Finding #11).",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-06-10",
          "methodology": "Walk-forward 12-fold, 10 asset, 180gg.",
          "finding_type": "driver_test",
          "related_phase": "research-2026",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 15,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "13",
        "old_data": null,
        "new_data": {
          "id": 13,
          "title": "Fear & Greed Index",
          "result": "Nessun signal predittivo OOS.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "REFUTED — scartato.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-05-28",
          "methodology": "Test predittivita' OOS del sentiment index.",
          "finding_type": "driver_test",
          "related_phase": "research-2026",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 16,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "14",
        "old_data": null,
        "new_data": {
          "id": 14,
          "title": "Stablecoin Supply",
          "result": "Correlazione lineare 0.12; walk-forward 0/10.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "REFUTED — nessuna forward predictivity.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-05-30",
          "methodology": "Correlazione + walk-forward su supply stablecoin.",
          "finding_type": "driver_test",
          "related_phase": "research-2026",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 17,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "15",
        "old_data": null,
        "new_data": {
          "id": 15,
          "title": "BTC Dominance",
          "result": "Signal solo retrospettivo, nessuna forward predictivity.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "REFUTED — scartato.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-06-02",
          "methodology": "Test predittivita' forward della dominance BTC.",
          "finding_type": "driver_test",
          "related_phase": "research-2026",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 18,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "16",
        "old_data": null,
        "new_data": {
          "id": 16,
          "title": "Phantom PnL bug (prezzi wrong-token)",
          "result": "Prezzi recuperati su token sbagliato -> PnL calcolato male.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Fetch prezzo per contract address, non per symbol.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-01-01",
          "methodology": "Analisi PnL anomalo su BURN/BSC, BASED/MOON/CHAD.",
          "finding_type": "lesson_v2",
          "related_phase": "v2",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 19,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "17",
        "old_data": null,
        "new_data": {
          "id": 17,
          "title": "69 lessons da 6-month Binance backtest",
          "result": "69 lezioni operative estratte.",
          "status": "partial",
          "metadata": null,
          "conclusion": "Caricate nella memoria Claude come knowledge base.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-01-01",
          "methodology": "Backtest 6 mesi su Binance.",
          "finding_type": "lesson_v2",
          "related_phase": "v2",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 20,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "18",
        "old_data": null,
        "new_data": {
          "id": 18,
          "title": "ThreadPoolExecutor deadlock nel brain loop",
          "result": "Deadlock su ThreadPoolExecutor.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Rivista concorrenza del loop decisionale.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-02-01",
          "methodology": "Diagnosi blocchi del brain loop v3.",
          "finding_type": "lesson_v3",
          "related_phase": "v3",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 21,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "19",
        "old_data": null,
        "new_data": {
          "id": 19,
          "title": "DEX rug pulls — hard stop fallito",
          "result": "Hard stop falliva: price fetch by symbol invece di contract address.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Price fetch per contract address; min liquidity DEX $50K.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-02-15",
          "methodology": "Post-mortem rug pull su posizioni DEX.",
          "finding_type": "lesson_v3",
          "related_phase": "v3",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 22,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "20",
        "old_data": null,
        "new_data": {
          "id": 20,
          "title": "Emergency check saltava posizioni DEX",
          "result": "Le posizioni DEX venivano ignorate dal check di emergenza.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Coprire anche le posizioni DEX nei controlli di emergenza.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-02-20",
          "methodology": "Audit del modulo emergency v3.",
          "finding_type": "lesson_v3",
          "related_phase": "v3",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 23,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "21",
        "old_data": null,
        "new_data": {
          "id": 21,
          "title": "Soluzioni adottate (WAL, price impact, min liquidity)",
          "result": "WAL mode SQLite; price impact filter (position/liquidity > 1%); min DEX liquidity $50K.",
          "status": "validated",
          "metadata": null,
          "conclusion": "Stack di mitigazioni standard per il DEX trading.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-03-01",
          "methodology": "Hardening dopo i bug DEX/PnL.",
          "finding_type": "lesson_v3",
          "related_phase": "v3",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 24,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "22",
        "old_data": null,
        "new_data": {
          "id": 22,
          "title": "HUNTER engine fermato",
          "result": "EUR 80 di perdita in 2 giorni.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Fermato.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-04-05",
          "methodology": "Test live engine HUNTER.",
          "finding_type": "lesson_v4",
          "related_phase": "v4",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 25,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "23",
        "old_data": null,
        "new_data": {
          "id": 23,
          "title": "ORACLE engine fermato (costi API)",
          "result": "Costi API Claude ~EUR 15/mese.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Fermato per insostenibilita' costi.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-04-10",
          "methodology": "Test live engine ORACLE.",
          "finding_type": "lesson_v4",
          "related_phase": "v4",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 26,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "24",
        "old_data": null,
        "new_data": {
          "id": 24,
          "title": "Auto-modify code di Claude FREE AI accantonato",
          "result": "Troppo rischio operativo.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Accantonato.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-04-15",
          "methodology": "Esperimento di auto-modifica del codice via Claude.",
          "finding_type": "lesson_v4",
          "related_phase": "v4",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 27,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "25",
        "old_data": null,
        "new_data": {
          "id": 25,
          "title": "Mega backtest 2000 LHS samples",
          "result": "2000 sample LHS valutati.",
          "status": "validated",
          "metadata": null,
          "conclusion": "Metodo adottato per la calibrazione parametri.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-04-20",
          "methodology": "Ottimizzazione parametri con Latin Hypercube Sampling.",
          "finding_type": "lesson_v4",
          "related_phase": "v4",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 28,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "26",
        "old_data": null,
        "new_data": {
          "id": 26,
          "title": "4 engine simultanee: troppa complessita'",
          "result": "Complessita' ingestibile.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Ridurre il numero di engine.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-05-01",
          "methodology": "Operativita' con STANDARD/MOMENTUM/ORACLE/HUNTER in parallelo.",
          "finding_type": "lesson_v5",
          "related_phase": "v5",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 29,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "27",
        "old_data": null,
        "new_data": {
          "id": 27,
          "title": "MOMENTUM fermato (equity flat)",
          "result": "Equity flat per 4 giorni.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Fermato il 14/06/2026.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-06-14",
          "methodology": "Ultimo engine attivo, monitoraggio equity.",
          "finding_type": "lesson_v5",
          "related_phase": "v5",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 30,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "28",
        "old_data": null,
        "new_data": {
          "id": 28,
          "title": "TEST PAPER vs PROD — outlier sensitivity",
          "result": "2 trade (AIUSDT, RADUSDT) distorcevano l'analisi.",
          "status": "partial",
          "metadata": null,
          "conclusion": "Gestire l'outlier sensitivity nelle metriche.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-06-05",
          "methodology": "Confronto paper vs prod.",
          "finding_type": "lesson_v5",
          "related_phase": "v5",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 31,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "29",
        "old_data": null,
        "new_data": {
          "id": 29,
          "title": "ORACLE blacklist + dynamic routing",
          "result": "13 symbols hardcoded in blacklist + routing dinamico Haiku/Sonnet (92% cost saving).",
          "status": "validated",
          "metadata": null,
          "conclusion": "Pattern di cost control adottato.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-06-08",
          "methodology": "Ottimizzazione costi ORACLE.",
          "finding_type": "lesson_v5",
          "related_phase": "v5",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 32,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "30",
        "old_data": null,
        "new_data": {
          "id": 30,
          "title": "HUNTER ottimizzazione parametri",
          "result": "liq>$15K, age 10-90min, chg>8%, SL -8%.",
          "status": "partial",
          "metadata": null,
          "conclusion": "Parametri ottimizzati per lo screening.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-06-09",
          "methodology": "Tuning dei filtri HUNTER.",
          "finding_type": "lesson_v5",
          "related_phase": "v5",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 33,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "31",
        "old_data": null,
        "new_data": {
          "id": 31,
          "title": "Cross-engine exposure check necessario",
          "result": "Rischio di sovraesposizione tra engine.",
          "status": "partial",
          "metadata": null,
          "conclusion": "Serve un controllo di esposizione cross-engine.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-06-10",
          "methodology": "Analisi esposizione complessiva multi-engine.",
          "finding_type": "lesson_v5",
          "related_phase": "v5",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 34,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "32",
        "old_data": null,
        "new_data": {
          "id": 32,
          "title": "Lezione meta: validare prima di mettere capitale",
          "result": "Ogni feature/engine non validata ha bruciato capitale.",
          "status": "validated",
          "metadata": null,
          "conclusion": "Ogni nuova feature/engine va validata prima di allocare capitale.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-06-15",
          "methodology": "Sintesi delle perdite v4/v5.",
          "finding_type": "lesson_v5",
          "related_phase": "v5",
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 35,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "33",
        "old_data": null,
        "new_data": {
          "id": 33,
          "title": "TEST temp finding",
          "result": null,
          "status": "pending",
          "metadata": null,
          "conclusion": null,
          "created_at": "2026-06-29T20:22:51.784708+00:00",
          "date_found": null,
          "methodology": null,
          "finding_type": "lesson_v5",
          "related_phase": null,
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:22:51.784708+00:00"
      },
      {
        "id": 36,
        "table_name": "dashboard_findings",
        "action": "UPDATE",
        "record_id": "33",
        "old_data": {
          "id": 33,
          "title": "TEST temp finding",
          "result": null,
          "status": "pending",
          "metadata": null,
          "conclusion": null,
          "created_at": "2026-06-29T20:22:51.784708+00:00",
          "date_found": null,
          "methodology": null,
          "finding_type": "lesson_v5",
          "related_phase": null,
          "finding_number": null
        },
        "new_data": {
          "id": 33,
          "title": "TEST temp finding EDITED",
          "result": null,
          "status": "validated",
          "metadata": null,
          "conclusion": null,
          "created_at": "2026-06-29T20:22:51.784708+00:00",
          "date_found": null,
          "methodology": null,
          "finding_type": "lesson_v5",
          "related_phase": null,
          "finding_number": null
        },
        "changed_at": "2026-06-29T20:22:51.817895+00:00"
      },
      {
        "id": 37,
        "table_name": "dashboard_findings",
        "action": "DELETE",
        "record_id": "33",
        "old_data": {
          "id": 33,
          "title": "TEST temp finding EDITED",
          "result": null,
          "status": "validated",
          "metadata": null,
          "conclusion": null,
          "created_at": "2026-06-29T20:22:51.784708+00:00",
          "date_found": null,
          "methodology": null,
          "finding_type": "lesson_v5",
          "related_phase": null,
          "finding_number": null
        },
        "new_data": null,
        "changed_at": "2026-06-29T20:22:51.838623+00:00"
      },
      {
        "id": 38,
        "table_name": "dashboard_roadmap",
        "action": "UPDATE",
        "record_id": "2.0",
        "old_data": {
          "status": "pending",
          "git_tag": null,
          "phase_num": 2.0,
          "phase_name": "SERVER STAT",
          "started_at": null,
          "description": "Implementazione dei 30 indicatori Tier 1+2+3.",
          "completed_at": null,
          "estimated_days": "3-4g"
        },
        "new_data": {
          "status": "completed",
          "git_tag": null,
          "phase_num": 2.0,
          "phase_name": "SERVER STAT",
          "started_at": "2026-06-29T20:46:29.003711+00:00",
          "description": "Implementazione dei 30 indicatori Tier 1+2+3.",
          "completed_at": "2026-06-29T20:46:29.003711+00:00",
          "estimated_days": "3-4g"
        },
        "changed_at": "2026-06-29T20:46:29.003711+00:00"
      },
      {
        "id": 39,
        "table_name": "dashboard_roadmap",
        "action": "UPDATE",
        "record_id": "2.0",
        "old_data": {
          "status": "completed",
          "git_tag": null,
          "phase_num": 2.0,
          "phase_name": "SERVER STAT",
          "started_at": "2026-06-29T20:46:29.003711+00:00",
          "description": "Implementazione dei 30 indicatori Tier 1+2+3.",
          "completed_at": "2026-06-29T20:46:29.003711+00:00",
          "estimated_days": "3-4g"
        },
        "new_data": {
          "status": "in_progress",
          "git_tag": null,
          "phase_num": 2.0,
          "phase_name": "SERVER STAT",
          "started_at": "2026-06-29T20:46:29.003711+00:00",
          "description": "Implementazione dei 30 indicatori Tier 1+2+3.",
          "completed_at": "2026-06-29T20:46:29.003711+00:00",
          "estimated_days": "3-4g"
        },
        "changed_at": "2026-06-29T20:46:38.645622+00:00"
      },
      {
        "id": 40,
        "table_name": "dashboard_roadmap",
        "action": "UPDATE",
        "record_id": "1.5",
        "old_data": {
          "status": "in_progress",
          "git_tag": null,
          "phase_num": 1.5,
          "phase_name": "Dashboard documentazione",
          "started_at": "2026-06-28T00:00:00+00:00",
          "description": "Dashboard web di documentazione completa su docu.spocci.ch (questa).",
          "completed_at": null,
          "estimated_days": "1g"
        },
        "new_data": {
          "status": "completed",
          "git_tag": null,
          "phase_num": 1.5,
          "phase_name": "Dashboard documentazione",
          "started_at": "2026-06-28T00:00:00+00:00",
          "description": "Dashboard web di documentazione completa su docu.spocci.ch (questa).",
          "completed_at": "2026-06-29T20:46:45.164243+00:00",
          "estimated_days": "1g"
        },
        "changed_at": "2026-06-29T20:46:45.164243+00:00"
      },
      {
        "id": 41,
        "table_name": "dashboard_roadmap",
        "action": "UPDATE",
        "record_id": "2.0",
        "old_data": {
          "status": "in_progress",
          "git_tag": null,
          "phase_num": 2.0,
          "phase_name": "SERVER STAT",
          "started_at": "2026-06-29T20:46:29.003711+00:00",
          "description": "Implementazione dei 30 indicatori Tier 1+2+3.",
          "completed_at": "2026-06-29T20:46:29.003711+00:00",
          "estimated_days": "3-4g"
        },
        "new_data": {
          "status": "completed",
          "git_tag": "fase-2-stat",
          "phase_num": 2.0,
          "phase_name": "SERVER STAT",
          "started_at": "2026-06-29T20:46:29.003711+00:00",
          "description": "Implementazione dei 30 indicatori Tier 1+2+3.",
          "completed_at": "2026-06-29T20:46:29.003711+00:00",
          "estimated_days": "3-4g"
        },
        "changed_at": "2026-06-29T21:00:43.528912+00:00"
      },
      {
        "id": 42,
        "table_name": "dashboard_ideas",
        "action": "UPDATE",
        "record_id": "15",
        "old_data": {
          "id": 15,
          "title": "auto analisi ",
          "status": "in_progress",
          "category": "backlog",
          "priority": 3,
          "created_at": "2026-06-28T19:33:37.900765+00:00",
          "updated_at": "2026-06-28T19:33:55.57107+00:00",
          "description": "Vorrei creare un sistema faccia automaticamente analisi di mercato, provi arogoritmi predittivi, formule economica, indicatori di mercato, le integri con le news e che proponga dei canditati con queste analisi"
        },
        "new_data": {
          "id": 15,
          "title": "auto analisi ",
          "status": "pending",
          "category": "backlog",
          "priority": 3,
          "created_at": "2026-06-28T19:33:37.900765+00:00",
          "updated_at": "2026-06-29T21:09:52.120171+00:00",
          "description": "Vorrei creare un sistema faccia automaticamente analisi di mercato, provi arogoritmi predittivi, formule economica, indicatori di mercato, le integri con le news e che proponga dei canditati con queste analisi"
        },
        "changed_at": "2026-06-29T21:09:52.120171+00:00"
      },
      {
        "id": 43,
        "table_name": "dashboard_roadmap",
        "action": "UPDATE",
        "record_id": "3.0",
        "old_data": {
          "status": "pending",
          "git_tag": null,
          "phase_num": 3.0,
          "phase_name": "ANALYZ Modulo 1 Funding Q90",
          "started_at": null,
          "description": "Primo modulo analyzer: edge Funding Q90 Defensive (Cat A).",
          "completed_at": null,
          "estimated_days": "2-3g"
        },
        "new_data": {
          "status": "blocked",
          "git_tag": null,
          "phase_num": 3.0,
          "phase_name": "ANALYZ Modulo 1 Funding Q90",
          "started_at": null,
          "description": "Primo modulo analyzer: edge Funding Q90 Defensive (Cat A). [BLOCCO 2026-06-30: funding non per-asset (serie globale duplicata su 10 major, anche in driver_per_asset). Edge per-asset Finding#11 NON validabile; modulo+validazione committati (8e9928b), edge globale -2.90%. Rivalidare dopo ingest funding reali per simbolo.]",
          "completed_at": null,
          "estimated_days": "2-3g"
        },
        "changed_at": "2026-06-30T21:03:49.398650+00:00"
      },
      {
        "id": 44,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "34",
        "old_data": null,
        "new_data": {
          "id": 34,
          "title": "Funding non per-asset: serie globale duplicata sui 10 major",
          "result": "funding_rate e funding_z21 IDENTICI su tutti i 10 major (208 date comuni). Tutti e 4 i driver per-asset (funding_rate, open_interest, long_short_global, long_short_ratio) duplicati. Origine: legacy drivers.db via scripts/02_migrate.py. Replica Q90: pooled -2.90%, 10/10 medie negative ma stessi 21 trigger su 10 path prezzo (robustezza non indipendente).",
          "status": "open",
          "metadata": null,
          "conclusion": "Edge funding PER-ASSET (Finding#11) NON validabile su questi dati. Resta solo edge funding GLOBALE. Fase 3 bloccata: serve ingest di funding reali per simbolo prima della rivalidazione.",
          "created_at": "2026-06-30T21:03:49.485393+00:00",
          "date_found": "2026-06-30",
          "methodology": "Replica Finding#11 in Fase 3. Confronto funding_z21/funding_rate tra major su open_time comune, in features_1d e nella sorgente driver_per_asset.",
          "finding_type": "data_quality",
          "related_phase": "fase-3",
          "finding_number": 12
        },
        "changed_at": "2026-06-30T21:03:49.485393+00:00"
      },
      {
        "id": 45,
        "table_name": "dashboard_roadmap",
        "action": "UPDATE",
        "record_id": "3.0",
        "old_data": {
          "status": "blocked",
          "git_tag": null,
          "phase_num": 3.0,
          "phase_name": "ANALYZ Modulo 1 Funding Q90",
          "started_at": null,
          "description": "Primo modulo analyzer: edge Funding Q90 Defensive (Cat A). [BLOCCO 2026-06-30: funding non per-asset (serie globale duplicata su 10 major, anche in driver_per_asset). Edge per-asset Finding#11 NON validabile; modulo+validazione committati (8e9928b), edge globale -2.90%. Rivalidare dopo ingest funding reali per simbolo.]",
          "completed_at": null,
          "estimated_days": "2-3g"
        },
        "new_data": {
          "status": "completed",
          "git_tag": "fase-3-funding-q90",
          "phase_num": 3.0,
          "phase_name": "ANALYZ Modulo 1 Funding Q90",
          "started_at": null,
          "description": "Primo modulo analyzer: edge Funding Q90 Defensive (Cat A). [BLOCCO 2026-06-30: funding non per-asset (serie globale duplicata su 10 major, anche in driver_per_asset). Edge per-asset Finding#11 NON validabile; modulo+validazione committati (8e9928b), edge globale -2.90%. Rivalidare dopo ingest funding reali per simbolo.] [RISOLTO 2026-06-30 Step B: ingest funding reale per-asset da Binance (354 asset, 1.49M righe, storia 2019-2026). Edge per-asset CONFERMATO: pooled -3.35%, 10/10 asset negativi, dentro banda Finding#11. commit ef7b285.]",
          "completed_at": "2026-06-30T21:33:52.333449+00:00",
          "estimated_days": "2-3g"
        },
        "changed_at": "2026-06-30T21:33:52.333449+00:00"
      },
      {
        "id": 46,
        "table_name": "dashboard_findings",
        "action": "UPDATE",
        "record_id": "34",
        "old_data": {
          "id": 34,
          "title": "Funding non per-asset: serie globale duplicata sui 10 major",
          "result": "funding_rate e funding_z21 IDENTICI su tutti i 10 major (208 date comuni). Tutti e 4 i driver per-asset (funding_rate, open_interest, long_short_global, long_short_ratio) duplicati. Origine: legacy drivers.db via scripts/02_migrate.py. Replica Q90: pooled -2.90%, 10/10 medie negative ma stessi 21 trigger su 10 path prezzo (robustezza non indipendente).",
          "status": "open",
          "metadata": null,
          "conclusion": "Edge funding PER-ASSET (Finding#11) NON validabile su questi dati. Resta solo edge funding GLOBALE. Fase 3 bloccata: serve ingest di funding reali per simbolo prima della rivalidazione.",
          "created_at": "2026-06-30T21:03:49.485393+00:00",
          "date_found": "2026-06-30",
          "methodology": "Replica Finding#11 in Fase 3. Confronto funding_z21/funding_rate tra major su open_time comune, in features_1d e nella sorgente driver_per_asset.",
          "finding_type": "data_quality",
          "related_phase": "fase-3",
          "finding_number": 12
        },
        "new_data": {
          "id": 34,
          "title": "Funding non per-asset: serie globale duplicata sui 10 major",
          "result": "funding_rate e funding_z21 IDENTICI su tutti i 10 major (208 date comuni). Tutti e 4 i driver per-asset (funding_rate, open_interest, long_short_global, long_short_ratio) duplicati. Origine: legacy drivers.db via scripts/02_migrate.py. Replica Q90: pooled -2.90%, 10/10 medie negative ma stessi 21 trigger su 10 path prezzo (robustezza non indipendente).",
          "status": "resolved",
          "metadata": null,
          "conclusion": "Edge funding PER-ASSET (Finding#11) NON validabile su questi dati. Resta solo edge funding GLOBALE. Fase 3 bloccata: serve ingest di funding reali per simbolo prima della rivalidazione. [RISOLTO 2026-06-30: funding reale per-asset ingerito da Binance (12_funding_ingest.py). Ora funding diverso per asset. Edge per-asset CONFERMATO: pooled -3.35%, 10/10 negativi.]",
          "created_at": "2026-06-30T21:03:49.485393+00:00",
          "date_found": "2026-06-30",
          "methodology": "Replica Finding#11 in Fase 3. Confronto funding_z21/funding_rate tra major su open_time comune, in features_1d e nella sorgente driver_per_asset.",
          "finding_type": "data_quality",
          "related_phase": "fase-3",
          "finding_number": 12
        },
        "changed_at": "2026-06-30T21:33:52.399333+00:00"
      },
      {
        "id": 47,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "35",
        "old_data": null,
        "new_data": {
          "id": 35,
          "title": "Candidato B1: Funding × Regime — edge regime-agnostico",
          "result": "Trigger bear -2.73% (n=116, eccesso -1.11%), bull -3.54% (n=95, eccesso -1.38%). L'eccesso NON e' piu' negativo in bear.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "IPOTESI REFUTATA: l'edge funding non si rafforza in bear. Sub-finding utile: l'edge e' regime-agnostico (robusto sia bull sia bear), conferma la solidita' del modulo Funding Q90 (Fase 3). Nessun modulo regime-conditioning.",
          "created_at": "2026-07-01T19:39:31.254022+00:00",
          "date_found": "2026-07-01",
          "methodology": "Trigger funding_z21>=Q90 per-asset, return +7gg su 10 major, split per regime di mercato (BTC momentum_30d<0=bear). Confronto ECCESSO sopra baseline di regime. Baseline: all -2.43%, bear -1.62%, bull -2.16%.",
          "finding_type": "candidate_test",
          "related_phase": "fase-4",
          "finding_number": 13
        },
        "changed_at": "2026-07-01T19:39:31.254022+00:00"
      },
      {
        "id": 48,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "36",
        "old_data": null,
        "new_data": {
          "id": 36,
          "title": "Candidato B2: DXY in bear — nessun valore aggiunto",
          "result": "Trigger -3.37% (n=560) batte la baseline solo di -0.94%; bear-only nella stessa finestra -1.64%. Segno controintuitivo (dxy giu' = di norma risk-on). Dati dxy ~134 punti fino a 2026-06-05.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "REFUTATO: dxy-in-calo non aggiunge valore oltre il regime bear; finestra breve e confusa dal bear di mercato. Dati insufficienti per un edge affidabile.",
          "created_at": "2026-07-01T19:39:31.254022+00:00",
          "date_found": "2026-07-01",
          "methodology": "Trigger = macro_dxy in calo (slope 5gg<0) AND regime bear; return +7gg su major. Confronto vs baseline incondizionata (-2.43%) e vs bear-only nella copertura dxy.",
          "finding_type": "candidate_test",
          "related_phase": "fase-4",
          "finding_number": 14
        },
        "changed_at": "2026-07-01T19:39:31.254022+00:00"
      },
      {
        "id": 49,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "37",
        "old_data": null,
        "new_data": {
          "id": 37,
          "title": "Candidato B3: Volatility filtering — nessun edge direzionale",
          "result": "LOW -1.88% / MED -2.21% / HIGH -1.43%, spread 0.78%; nessun bucket devia dalla baseline di >1.5%. Magnitudo simile (5.3-6.2%), HIGH non piu' ampia.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "REFUTATO: realized_vol_24 non predice ne' direzione ne' magnitudo del return +7gg. Nessun bucket con edge sfruttabile.",
          "created_at": "2026-07-01T19:39:31.254022+00:00",
          "date_found": "2026-07-01",
          "methodology": "Terzili per-asset di realized_vol_24 (LOW/MED/HIGH), return +7gg su major, confronto vs baseline -2.43%; anche magnitudo |return| per bucket.",
          "finding_type": "candidate_test",
          "related_phase": "fase-4",
          "finding_number": 15
        },
        "changed_at": "2026-07-01T19:39:31.254022+00:00"
      },
      {
        "id": 50,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "38",
        "old_data": null,
        "new_data": {
          "id": 38,
          "title": "Funding Q90 — MARGINE NETTO su baseline (verifica critica)",
          "result": "Netto pooled -0.47% (7449 eventi), bootstrap CI95 [-2.58%,+1.45%], P(>=0)=0.33 -> NON significativo. Solo major: -0.89%, CI95 [-3.54%,+1.53%] -> NON significativo. Edge presente in solo 54% asset (major 70%, non-major 53%). Temporale: -0.41%/-1.84%/+1.44% -> reverse nel periodo recente.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "EDGE NON DIMOSTRATO. Il grezzo -3.35%% e' ~85%% deriva di mercato bear; il netto (~-0.5%% all / -0.9%% major) non e' statisticamente significativo ne' robusto nel tempo. NON giustifica capitale reale ora. Rivalutare con finestra dati piu' lunga (incl. fase bull). Vedi Finding #11.",
          "created_at": "2026-07-01T20:00:52.151005+00:00",
          "date_found": "2026-07-01",
          "methodology": "Margine netto = return(funding_z21>=Q90) - baseline incondizionata +7gg per-asset, su 322/354 asset eleggibili (>=90gg). Significativita' via block bootstrap sulle date di trigger (correlazione cross-asset + overlap +7gg) e episodi indipendenti; robustezza su 3 sotto-periodi.",
          "finding_type": "candidate_test",
          "related_phase": "fase-4",
          "finding_number": 16
        },
        "changed_at": "2026-07-01T20:00:52.151005+00:00"
      },
      {
        "id": 51,
        "table_name": "dashboard_findings",
        "action": "UPDATE",
        "record_id": "11",
        "old_data": {
          "id": 11,
          "title": "Funding Rate Q90 — l'unico driver validato",
          "result": "Media OOS -4.59% (range -3.22% / -6.21%), 10/10 asset robusti, consistency 75-83%.",
          "status": "validated",
          "metadata": null,
          "conclusion": "Edge primario v6. Peso 3.0 nello scoring ANALYZ.",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-06-10",
          "methodology": "Walk-forward 12-fold su 10 asset top-cap, 180gg. Trigger funding_rate_z21 >= Q90 locale (rolling 21gg). Return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 11
        },
        "new_data": {
          "id": 11,
          "title": "Funding Rate Q90 — l'unico driver validato",
          "result": "Media OOS -4.59% (range -3.22% / -6.21%), 10/10 asset robusti, consistency 75-83%.",
          "status": "validated",
          "metadata": null,
          "conclusion": "Edge primario v6. Peso 3.0 nello scoring ANALYZ. [CAVEAT 2026-07-01: la replica su dati locali da margine NETTO sopra baseline solo ~-0.5%/-0.9%, NON significativo (bootstrap CI include 0) e non robusto nel tempo. Il grezzo -3.35% era in gran parte deriva bear. Non tradeable come standalone su questi dati — vedi finding margine netto.]",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-06-10",
          "methodology": "Walk-forward 12-fold su 10 asset top-cap, 180gg. Trigger funding_rate_z21 >= Q90 locale (rolling 21gg). Return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 11
        },
        "changed_at": "2026-07-01T20:00:52.155072+00:00"
      },
      {
        "id": 52,
        "table_name": "dashboard_findings",
        "action": "UPDATE",
        "record_id": "38",
        "old_data": {
          "id": 38,
          "title": "Funding Q90 — MARGINE NETTO su baseline (verifica critica)",
          "result": "Netto pooled -0.47% (7449 eventi), bootstrap CI95 [-2.58%,+1.45%], P(>=0)=0.33 -> NON significativo. Solo major: -0.89%, CI95 [-3.54%,+1.53%] -> NON significativo. Edge presente in solo 54% asset (major 70%, non-major 53%). Temporale: -0.41%/-1.84%/+1.44% -> reverse nel periodo recente.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "EDGE NON DIMOSTRATO. Il grezzo -3.35%% e' ~85%% deriva di mercato bear; il netto (~-0.5%% all / -0.9%% major) non e' statisticamente significativo ne' robusto nel tempo. NON giustifica capitale reale ora. Rivalutare con finestra dati piu' lunga (incl. fase bull). Vedi Finding #11.",
          "created_at": "2026-07-01T20:00:52.151005+00:00",
          "date_found": "2026-07-01",
          "methodology": "Margine netto = return(funding_z21>=Q90) - baseline incondizionata +7gg per-asset, su 322/354 asset eleggibili (>=90gg). Significativita' via block bootstrap sulle date di trigger (correlazione cross-asset + overlap +7gg) e episodi indipendenti; robustezza su 3 sotto-periodi.",
          "finding_type": "candidate_test",
          "related_phase": "fase-4",
          "finding_number": 16
        },
        "new_data": {
          "id": 38,
          "title": "Funding Q90 — MARGINE NETTO su baseline (verifica critica)",
          "result": "Netto pooled -0.47% (7449 eventi), bootstrap CI95 [-2.58%,+1.45%], P(>=0)=0.33 -> NON significativo. Solo major: -0.89%, CI95 [-3.54%,+1.53%] -> NON significativo. Edge presente in solo 54% asset (major 70%, non-major 53%). Temporale: -0.41%/-1.84%/+1.44% -> reverse nel periodo recente. [DEFINITIVO 2026-07-01, storia 2021-2026, 19 major, 3443 eventi, 36 episodi indip.]: margine netto POOLED +1.23% (baseline globale) / +1.68% (baseline per-regime), bootstrap CI include 0 -> non significativo, SEGNO POSITIVO (opposto alla tesi short). Per anno: 2021 +7.6%, 2022 -1.87%, 2023 +1.8%, 2024 -0.2%, 2025 -0.48%, 2026 -3.7%. Solo 21% asset con net negativo.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "EDGE NON DIMOSTRATO. Il grezzo -3.35%% e' ~85%% deriva di mercato bear; il netto (~-0.5%% all / -0.9%% major) non e' statisticamente significativo ne' robusto nel tempo. NON giustifica capitale reale ora. Rivalutare con finestra dati piu' lunga (incl. fase bull). Vedi Finding #11. [DEFINITIVO: con 5 anni bull+bear l'edge net e' positivo e non significativo. Funding Q90 NON regge come edge short standalone; il -3.35%/-4.59% era artefatto del regime bear. Cambiare strada.]",
          "created_at": "2026-07-01T20:00:52.151005+00:00",
          "date_found": "2026-07-01",
          "methodology": "Margine netto = return(funding_z21>=Q90) - baseline incondizionata +7gg per-asset, su 322/354 asset eleggibili (>=90gg). Significativita' via block bootstrap sulle date di trigger (correlazione cross-asset + overlap +7gg) e episodi indipendenti; robustezza su 3 sotto-periodi.",
          "finding_type": "candidate_test",
          "related_phase": "fase-4",
          "finding_number": 16
        },
        "changed_at": "2026-07-01T21:18:39.487151+00:00"
      },
      {
        "id": 53,
        "table_name": "dashboard_findings",
        "action": "UPDATE",
        "record_id": "11",
        "old_data": {
          "id": 11,
          "title": "Funding Rate Q90 — l'unico driver validato",
          "result": "Media OOS -4.59% (range -3.22% / -6.21%), 10/10 asset robusti, consistency 75-83%.",
          "status": "validated",
          "metadata": null,
          "conclusion": "Edge primario v6. Peso 3.0 nello scoring ANALYZ. [CAVEAT 2026-07-01: la replica su dati locali da margine NETTO sopra baseline solo ~-0.5%/-0.9%, NON significativo (bootstrap CI include 0) e non robusto nel tempo. Il grezzo -3.35% era in gran parte deriva bear. Non tradeable come standalone su questi dati — vedi finding margine netto.]",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-06-10",
          "methodology": "Walk-forward 12-fold su 10 asset top-cap, 180gg. Trigger funding_rate_z21 >= Q90 locale (rolling 21gg). Return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 11
        },
        "new_data": {
          "id": 11,
          "title": "Funding Rate Q90 — l'unico driver validato",
          "result": "Media OOS -4.59% (range -3.22% / -6.21%), 10/10 asset robusti, consistency 75-83%.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Edge primario v6. Peso 3.0 nello scoring ANALYZ. [CAVEAT 2026-07-01: la replica su dati locali da margine NETTO sopra baseline solo ~-0.5%/-0.9%, NON significativo (bootstrap CI include 0) e non robusto nel tempo. Il grezzo -3.35% era in gran parte deriva bear. Non tradeable come standalone su questi dati — vedi finding margine netto.] [REFUTATO DEFINITIVAMENTE 2026-07-01: la verifica net-of-baseline su 5 anni (2021-2026, feature ricalcolate su storia lunga) da margine netto +1.2% con segno POSITIVO e non significativo. L'edge short apparente era interamente artefatto del mercato bear 2022/2026. Non e' l'\"unico driver validato\": e' refutato. Vedi finding #16.]",
          "created_at": "2026-06-29T20:21:56.578872+00:00",
          "date_found": "2026-06-10",
          "methodology": "Walk-forward 12-fold su 10 asset top-cap, 180gg. Trigger funding_rate_z21 >= Q90 locale (rolling 21gg). Return +7d misurato OOS.",
          "finding_type": "finding",
          "related_phase": "research-2026",
          "finding_number": 11
        },
        "changed_at": "2026-07-01T21:18:39.505947+00:00"
      },
      {
        "id": 54,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "39",
        "old_data": null,
        "new_data": {
          "id": 39,
          "title": "Screening predittivo indicatori 24h/72h — nessun edge single-indicator OOS",
          "result": "Primario: 2 hit nominali@95% (atr_pct 24h +1.17%, rel_strength_btc 72h +1.28%) MA falsi positivi attesi 2.4; 0 sopravvivono a Bonferroni (p_min 0.011 vs 0.001) e BH-FDR10%. Breadth: 0 hit (p_min 0.062). 40/48 test instabili (IS non regge OOS).",
          "status": "refuted",
          "metadata": null,
          "conclusion": "NESSUN indicatore singolo predice buy/sell a 24h/72h out-of-sample in modo robusto. I pochi hit sono nel range dei falsi positivi attesi. Niente moduli direzionali single-indicator; eventuali edge vanno cercati in combinazioni/condizioni piu' complesse, sempre con OOS + multiple-testing.",
          "created_at": "2026-07-01T21:33:01.85477+00:00",
          "date_found": "2026-07-01",
          "methodology": "25 indicatori (RSI, EMA-ratios, returns, ATR%, realized_vol, volume, momentum, bollinger, beta/corr/rel_str BTC, funding_z21/slope, oi_change) bucketizzati in decili per-asset. IS 2021-2024 / OOS 2025-2026 su 20 major. Baseline per-(asset,split), block bootstrap sulle date, correzione multiple-testing Bonferroni+BH su 48 test. Pass breadth su 283 asset storia corta (60/40).",
          "finding_type": "candidate_test",
          "related_phase": "ricerca",
          "finding_number": 17
        },
        "changed_at": "2026-07-01T21:33:01.854770+00:00"
      },
      {
        "id": 55,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "40",
        "old_data": null,
        "new_data": {
          "id": 40,
          "title": "Combinazione buy/sell multi-indicatore — overfitting, non regge OOS",
          "result": "Max-guadagno: BUY se realized_vol_24>=q70. IS +897% -> OOS -20.4% (Sharpe 1.33->-0.09), CI bootstrap include 0. Combo 4-cond (vol alto+beta_btc basso+funding_slope alto+atr alto): IS +51.6% Sharpe 1.14 -> OOS -6.9% Sharpe -0.84, CI include 0. Entrambe battono B&H OOS solo restando in cash (TIM 0.6-16%) nel bear.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "OVERFITTING confermato: nessuna combinazione buy/sell multi-indicatore genera edge reale out-of-sample. Guadagni IS spettacolari che crollano OOS. Il \"battere buy&hold\" e' solo minor esposizione nel crash, non alpha. Coerente con le refutazioni precedenti (#16,#17).",
          "created_at": "2026-07-01T22:01:51.441632+00:00",
          "date_found": "2026-07-01",
          "methodology": "Backtest long/flat 20 major (equal-weight, costi 0.15%/lato, max hold 7gg), greedy forward selection su IS 2021-01..2024-06, verifica OOS 2024-07..2026-07. Obiettivi: max total return e max rend/barra. Soglie q30/q70 per-asset da IS. Block bootstrap sui rendimenti giornalieri OOS.",
          "finding_type": "candidate_test",
          "related_phase": "ricerca",
          "finding_number": 18
        },
        "changed_at": "2026-07-01T22:01:51.441632+00:00"
      },
      {
        "id": 56,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "41",
        "old_data": null,
        "new_data": {
          "id": 41,
          "title": "Funding harvesting market-neutral — edge reale ma troppo piccolo su 300 EUR",
          "result": "Funding grezzo ann.: 94 asset >5%, 34 >10%, top 14-17% (ZEN,VET,LTC,XRP,ETH). Net dopo costi full-history top-10 ~11.5%; FORWARD (recente) ~5% (funding dimezzato post-mania 2020-21). Su 300 EUR: ~14 EUR/anno = ~1.2 EUR/mese. Mediana asset 1.2% net, 29% net<=0. Funding negativo 23% del tempo.",
          "status": "validated",
          "metadata": null,
          "conclusion": "Primo edge REALE del progetto (non direzionale, non overfit): market-neutral, incassa un pagamento strutturale. MA net forward ~5%/anno; su 300 EUR sono ~1 EUR/mese, troppo piccolo per giustificare rischio operativo (liquidazione short, basis, exchange). Sensato da ~5-13k EUR. Asset migliori: ZEN,XRP,LTC,ETH,LINK.",
          "created_at": "2026-07-01T22:58:12.393054+00:00",
          "date_found": "2026-07-01",
          "methodology": "Simulazione delta-neutral (long spot+short perp) che incassa funding positivo, isteresi con smoothing 3gg per evitare churn, costi realistici 0.60% round-trip (2 gambe x fee 0.1%+slip 0.05%). Funding reale 354 asset 8h 2019-2026. Confronto full-history vs finestra recente 2023-07+.",
          "finding_type": "candidate_test",
          "related_phase": "ricerca",
          "finding_number": 19
        },
        "changed_at": "2026-07-01T22:58:12.393054+00:00"
      },
      {
        "id": 57,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "42",
        "old_data": null,
        "new_data": {
          "id": 42,
          "title": "Test AI/ML decision-making — non batte il caso OOS, ORACLE giustamente fermato",
          "result": "24h: R2 IS +0.094 -> OOS -0.003; rank-IC +0.006; dir.acc 50.3% (base 51.7%); clf 62.8%->51.8%. 7g: R2 IS +0.424 -> OOS -0.135; rank-IC +0.060; dir.acc 52.1% (base 54.1%); clf 76%->54.9%. Strategie OOS non significative (bootstrap CI include 0); il \"batte B&H\" e' solo minor esposizione nel bear. Feature usate: rsi_14, px_vwap/ema, momentum.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "NON predittivo OOS. L'informazione direzionale non e' nei dati, indipendentemente dallo strumento: un GBM potente overfitta l'IS (R2 fino a 0.42) e crolla OOS (R2 negativo) come le regole manuali. Conferma perche' ORACLE (Claude) fu fermato in v5: non qualita' del modello, ma assenza di segnale -> costi API non ripagabili. Domanda \"e se usiamo l'AI?\" chiusa: no.",
          "created_at": "2026-07-01T23:11:25.183324+00:00",
          "date_found": "2026-07-01",
          "methodology": "HistGradientBoosting (regressore+classificatore) su 25 feature, il test equo della massima capacita' predittiva. Train IS 2021-2024, test OOS 2024-07..2026-07, 20 major, features_1d, target return +1g/+7g. Block bootstrap sui rendimenti giornalieri, baseline/base-rate, feature importance permutazionale.",
          "finding_type": "candidate_test",
          "related_phase": "ricerca",
          "finding_number": 20
        },
        "changed_at": "2026-07-01T23:11:25.183324+00:00"
      },
      {
        "id": 58,
        "table_name": "dashboard_roadmap",
        "action": "UPDATE",
        "record_id": "3.0",
        "old_data": {
          "status": "completed",
          "git_tag": "fase-3-funding-q90",
          "phase_num": 3.0,
          "phase_name": "ANALYZ Modulo 1 Funding Q90",
          "started_at": null,
          "description": "Primo modulo analyzer: edge Funding Q90 Defensive (Cat A). [BLOCCO 2026-06-30: funding non per-asset (serie globale duplicata su 10 major, anche in driver_per_asset). Edge per-asset Finding#11 NON validabile; modulo+validazione committati (8e9928b), edge globale -2.90%. Rivalidare dopo ingest funding reali per simbolo.] [RISOLTO 2026-06-30 Step B: ingest funding reale per-asset da Binance (354 asset, 1.49M righe, storia 2019-2026). Edge per-asset CONFERMATO: pooled -3.35%, 10/10 asset negativi, dentro banda Finding#11. commit ef7b285.]",
          "completed_at": "2026-06-30T21:33:52.333449+00:00",
          "estimated_days": "2-3g"
        },
        "new_data": {
          "status": "completed",
          "git_tag": "fase-3-funding-q90",
          "phase_num": 3.0,
          "phase_name": "ANALYZ Modulo 1 Funding Q90",
          "started_at": null,
          "description": "Primo modulo analyzer: edge Funding Q90 Defensive (Cat A). [BLOCCO 2026-06-30: funding non per-asset (serie globale duplicata su 10 major, anche in driver_per_asset). Edge per-asset Finding#11 NON validabile; modulo+validazione committati (8e9928b), edge globale -2.90%. Rivalidare dopo ingest funding reali per simbolo.] [RISOLTO 2026-06-30 Step B: ingest funding reale per-asset da Binance (354 asset, 1.49M righe, storia 2019-2026). Edge per-asset CONFERMATO: pooled -3.35%, 10/10 asset negativi, dentro banda Finding#11. commit ef7b285.] [RICERCA 2026-07: l'edge Funding Q90 LORDO e' stato REFUTATO net-of-baseline (Finding #11,#16): era artefatto del regime bear (net ~-0.5%, non significativo, segno positivo su 5 anni). Ingegneria completata, ma NON tradeable come edge direzionale standalone.]",
          "completed_at": "2026-06-30T21:33:52.333449+00:00",
          "estimated_days": "2-3g"
        },
        "changed_at": "2026-07-01T23:21:18.596239+00:00"
      },
      {
        "id": 59,
        "table_name": "dashboard_roadmap",
        "action": "UPDATE",
        "record_id": "4.0",
        "old_data": {
          "status": "pending",
          "git_tag": null,
          "phase_num": 4.0,
          "phase_name": "ANALYZ moduli 2-15",
          "started_at": null,
          "description": "Restanti 14 moduli analyzer (Cat B-E).",
          "completed_at": null,
          "estimated_days": "5-7g"
        },
        "new_data": {
          "status": "blocked",
          "git_tag": null,
          "phase_num": 4.0,
          "phase_name": "ANALYZ moduli 2-15",
          "started_at": null,
          "description": "Restanti 14 moduli analyzer (Cat B-E). [RICERCA 2026-07: BLOCCATA. 6 ricerche OOS-rigorose (Finding #13-18,#20) hanno REFUTATO ogni edge DIREZIONALE su major (single-indicator, combinazioni multi-indicatore, AI/ML): guadagni in-sample spettacolari che crollano out-of-sample (overfitting). Costruire altri moduli direzionali e' inutile. Unico edge REALE: funding harvesting MARKET-NEUTRAL (#19). Serve re-scope della fase.]",
          "completed_at": null,
          "estimated_days": "5-7g"
        },
        "changed_at": "2026-07-01T23:21:18.596239+00:00"
      },
      {
        "id": 60,
        "table_name": "dashboard_roadmap",
        "action": "UPDATE",
        "record_id": "5.0",
        "old_data": {
          "status": "pending",
          "git_tag": null,
          "phase_num": 5.0,
          "phase_name": "LIVE SCANNER",
          "started_at": null,
          "description": "5 detector @1min su 200+ asset.",
          "completed_at": null,
          "estimated_days": "2-3g"
        },
        "new_data": {
          "status": "pending",
          "git_tag": null,
          "phase_num": 5.0,
          "phase_name": "LIVE SCANNER",
          "started_at": null,
          "description": "5 detector @1min su 200+ asset. [RICERCA 2026-07: i detector direzionali non hanno edge OOS (vedi Fase 4). L'infrastruttura di scanning resta utile ma va ri-orientata a segnali market-neutral/funding, non a previsione di prezzo.]",
          "completed_at": null,
          "estimated_days": "2-3g"
        },
        "changed_at": "2026-07-01T23:21:18.596239+00:00"
      },
      {
        "id": 61,
        "table_name": "dashboard_roadmap",
        "action": "UPDATE",
        "record_id": "6.0",
        "old_data": {
          "status": "pending",
          "git_tag": null,
          "phase_num": 6.0,
          "phase_name": "AGENT AI paper mode",
          "started_at": null,
          "description": "Decisore rule-based + execution in paper mode.",
          "completed_at": null,
          "estimated_days": "4-5g"
        },
        "new_data": {
          "status": "blocked",
          "git_tag": null,
          "phase_num": 6.0,
          "phase_name": "AGENT AI paper mode",
          "started_at": null,
          "description": "Decisore rule-based + execution in paper mode. [RICERCA 2026-07: BLOCCATA. Finding #20: un gradient boosting su TUTTE le feature (proxy equo dell'AI) non batte il caso OOS (R2 negativo, accuracy ~base-rate). Nessun decisore direzionale, umano o AI, ha edge su questi dati. Conferma il perche' ORACLE fu fermato in v5: assenza di segnale, non qualita' del modello.]",
          "completed_at": null,
          "estimated_days": "4-5g"
        },
        "changed_at": "2026-07-01T23:21:18.596239+00:00"
      },
      {
        "id": 62,
        "table_name": "dashboard_roadmap",
        "action": "UPDATE",
        "record_id": "9.0",
        "old_data": {
          "status": "pending",
          "git_tag": null,
          "phase_num": 9.0,
          "phase_name": "Validazione paper end-to-end",
          "started_at": null,
          "description": "1 mese di paper trading per validazione completa.",
          "completed_at": null,
          "estimated_days": "30g"
        },
        "new_data": {
          "status": "blocked",
          "git_tag": null,
          "phase_num": 9.0,
          "phase_name": "Validazione paper end-to-end",
          "started_at": null,
          "description": "1 mese di paper trading per validazione completa. [RICERCA 2026-07: BLOCCATA. Non c'e' un edge direzionale validato da paper-tradare. L'unico edge validato (#19, funding harvesting) e' market-neutral e va testato in quel contesto, non come strategia direzionale.]",
          "completed_at": null,
          "estimated_days": "30g"
        },
        "changed_at": "2026-07-01T23:21:18.596239+00:00"
      },
      {
        "id": 63,
        "table_name": "dashboard_roadmap",
        "action": "UPDATE",
        "record_id": "10.0",
        "old_data": {
          "status": "pending",
          "git_tag": null,
          "phase_num": 10.0,
          "phase_name": "Real money 300 EUR/mese",
          "started_at": null,
          "description": "Produzione: 300 EUR mensili reali, no leverage, no scaling aggressivo.",
          "completed_at": null,
          "estimated_days": "-"
        },
        "new_data": {
          "status": "blocked",
          "git_tag": null,
          "phase_num": 10.0,
          "phase_name": "Real money 300 EUR/mese",
          "started_at": null,
          "description": "Produzione: 300 EUR mensili reali, no leverage, no scaling aggressivo. [RICERCA 2026-07: BLOCCATA. L'unico edge validato (funding harvesting #19) rende ~5%/anno forward netto: su 300 EUR = ~1 EUR/mese, insufficiente e non giustifica il rischio operativo. Sensato solo da ~5.000-13.000 EUR. Il target \"300 EUR/mese di profitto\" NON e' raggiungibile con gli edge scoperti.]",
          "completed_at": null,
          "estimated_days": "-"
        },
        "changed_at": "2026-07-01T23:21:18.596239+00:00"
      },
      {
        "id": 64,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "43",
        "old_data": null,
        "new_data": {
          "id": 43,
          "title": "Bot \"2000 migliori occasioni\" su tutti i token — non replica OOS",
          "result": "Occasioni: opp_ret>=47% (mediana 70%, max 638%), 213 asset, 4% storia corta, 13% bassa liquidita. Regole (momentum/volatilita: px_ema, dist_ema200, atr, realized_vol, beta) per catturare le occasioni scattano sul 17% delle barre. In-sample: recall 51%, PRECISIONE 4.6% (95% falsi positivi), return/trade -0.32% netto. OOS: recall 66->23%, return/trade -0.73->-1.60%, falsi positivi ~96%.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "Identificare i pump PASSATI non consente di catturarli in FUTURO. Le regole scattano ovunque (95% falsi positivi) e il return realistico (exit fisso, netto costi) e NEGATIVO gia in-sample e peggiora OOS. Gap incolmabile tra occasione con exit ottimale (hindsight) e trade reale. Coerente con le refutazioni #17,#18,#20.",
          "created_at": "2026-07-02T20:25:39.385533+00:00",
          "date_found": "2026-07-02",
          "methodology": "Identificate le 2000 migliori occasioni storiche (max return 1-7gg) su 440 token (features_1d). Regole BUY via albero decisionale (depth 4) sulle feature all entry. Backtest storico + reality-check OOS (split per-token 65/35, exit realistico +3gg no-hindsight, costi round-trip 0.30%).",
          "finding_type": "candidate_test",
          "related_phase": "ricerca",
          "finding_number": 21
        },
        "changed_at": "2026-07-02T20:25:39.385533+00:00"
      },
      {
        "id": 65,
        "table_name": "dashboard_findings",
        "action": "INSERT",
        "record_id": "44",
        "old_data": null,
        "new_data": {
          "id": 44,
          "title": "Simulazione grande OOS 2 anni, 300 EUR: il bot perde il 77%",
          "result": "300 EUR -> 69 EUR = -76.9% in 2 anni. Win rate 38%, Sharpe -0.72, max drawdown -92%. Equity sale a 442 EUR (nov-2024) poi cala costante. Semestri 2/5 positivi (2024-H2 +105, poi 2025-H2 -215, 2026-H1 -113). Perdita SISTEMATICA non da concentrazione: 175/283 trade persi, 48/66 token negativi, togliere il migliore peggiora. Banca +15 EUR, buy&hold BTC -14 EUR: il bot fa peggio di entrambi.",
          "status": "refuted",
          "metadata": null,
          "conclusion": "CONFERMA DEFINITIVA: su 2 anni mai visti il bot direzionale perde il 77% del capitale, peggio di banca e buy&hold. Il +20% della simulazione mensile era illusione in-sample (Finding #21 gia mostrava OOS negativo). Nessun edge direzionale esiste. Coerente con #16-21. Chiude ogni ipotesi di trading direzionale su capitale reale.",
          "created_at": "2026-07-02T20:49:36.366645+00:00",
          "date_found": "2026-07-02",
          "methodology": "Bot best-opportunities (albero Finding #21) addestrato SOLO su in-sample 2021-2024 (20 major), simulato SOLO su out-of-sample 2024-07..2026-07 (440 token, storia post-training). Separazione train/test rigorosa. 300 EUR, max 5x60, exit +3gg, liquidita >1M, costi 0.15%/lato. 283 trade su 2 anni. CSV trade + equity.",
          "finding_type": "candidate_test",
          "related_phase": "ricerca",
          "finding_number": 22
        },
        "changed_at": "2026-07-02T20:49:36.366645+00:00"
      }
    ],
    "dashboard_findings": [
      {
        "id": 1,
        "finding_number": 1,
        "finding_type": "finding",
        "title": "Walk-forward #1 — RSI mean reversion (soglie 30/70, 25/75, 20/80)",
        "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
        "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
        "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
        "status": "refuted",
        "date_found": "2026-05-15",
        "related_phase": "research-2026",
        "metadata": {
          "strategie": [
            "RSI mean reversion (soglie 30/70, 25/75, 20/80)",
            "MACD crossover (12-26-9)",
            "EMA crossover (9/21, 21/50, 50/200)",
            "Triple EMA cross",
            "Bollinger Bands squeeze",
            "Keltner channels",
            "Volume breakout",
            "Money Flow Index",
            "Chaikin oscillator",
            "Momentum 7d/14d/30d",
            "Rate of Change",
            "Awesome Oscillator",
            "ATR breakout",
            "Donchian channels",
            "Stochastic oscillator",
            "Williams %R",
            "CCI extremes",
            "Heikin Ashi trend",
            "Parabolic SAR",
            "Williams Alligator",
            "Ichimoku cloud",
            "VWAP reversion",
            "ADX trend strength"
          ],
          "strategie_walk_forward_totali": 23
        },
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 2,
        "finding_number": 2,
        "finding_type": "finding",
        "title": "Walk-forward #2 — MACD crossover (12-26-9)",
        "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
        "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
        "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
        "status": "refuted",
        "date_found": "2026-05-15",
        "related_phase": "research-2026",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 3,
        "finding_number": 3,
        "finding_type": "finding",
        "title": "Walk-forward #3 — EMA crossover (9/21, 21/50, 50/200) + Triple EMA cross",
        "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
        "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
        "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
        "status": "refuted",
        "date_found": "2026-05-15",
        "related_phase": "research-2026",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 4,
        "finding_number": 4,
        "finding_type": "finding",
        "title": "Walk-forward #4 — Bollinger Bands squeeze + Keltner channels",
        "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
        "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
        "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
        "status": "refuted",
        "date_found": "2026-05-15",
        "related_phase": "research-2026",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 5,
        "finding_number": 5,
        "finding_type": "finding",
        "title": "Walk-forward #5 — Volume breakout + Money Flow Index + Chaikin oscillator",
        "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
        "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
        "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
        "status": "refuted",
        "date_found": "2026-05-15",
        "related_phase": "research-2026",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 6,
        "finding_number": 6,
        "finding_type": "finding",
        "title": "Walk-forward #6 — Momentum 7d/14d/30d + Rate of Change + Awesome Oscillator",
        "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
        "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
        "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
        "status": "refuted",
        "date_found": "2026-05-15",
        "related_phase": "research-2026",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 7,
        "finding_number": 7,
        "finding_type": "finding",
        "title": "Walk-forward #7 — ATR breakout + Donchian channels",
        "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
        "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
        "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
        "status": "refuted",
        "date_found": "2026-05-15",
        "related_phase": "research-2026",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 8,
        "finding_number": 8,
        "finding_type": "finding",
        "title": "Walk-forward #8 — Stochastic oscillator + Williams %R + CCI extremes",
        "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
        "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
        "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
        "status": "refuted",
        "date_found": "2026-05-15",
        "related_phase": "research-2026",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 9,
        "finding_number": 9,
        "finding_type": "finding",
        "title": "Walk-forward #9 — Heikin Ashi trend + Parabolic SAR + Williams Alligator",
        "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
        "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
        "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
        "status": "refuted",
        "date_found": "2026-05-15",
        "related_phase": "research-2026",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 10,
        "finding_number": 10,
        "finding_type": "finding",
        "title": "Walk-forward #10 — Ichimoku cloud + VWAP reversion + ADX trend strength",
        "methodology": "Walk-forward 12-fold su 180gg, 10 asset top-cap. Trigger tecnico puro, return +7d misurato OOS.",
        "result": "Nessun edge OOS robusto: performance crolla fuori dal training window.",
        "conclusion": "Nessun edge tecnico puro sopravvive walk-forward 12-fold su 180gg.",
        "status": "refuted",
        "date_found": "2026-05-15",
        "related_phase": "research-2026",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 11,
        "finding_number": 11,
        "finding_type": "finding",
        "title": "Funding Rate Q90 — l'unico driver validato",
        "methodology": "Walk-forward 12-fold su 10 asset top-cap, 180gg. Trigger funding_rate_z21 >= Q90 locale (rolling 21gg). Return +7d misurato OOS.",
        "result": "Media OOS -4.59% (range -3.22% / -6.21%), 10/10 asset robusti, consistency 75-83%.",
        "conclusion": "Edge primario v6. Peso 3.0 nello scoring ANALYZ. [CAVEAT 2026-07-01: la replica su dati locali da margine NETTO sopra baseline solo ~-0.5%/-0.9%, NON significativo (bootstrap CI include 0) e non robusto nel tempo. Il grezzo -3.35% era in gran parte deriva bear. Non tradeable come standalone su questi dati — vedi finding margine netto.] [REFUTATO DEFINITIVAMENTE 2026-07-01: la verifica net-of-baseline su 5 anni (2021-2026, feature ricalcolate su storia lunga) da margine netto +1.2% con segno POSITIVO e non significativo. L'edge short apparente era interamente artefatto del mercato bear 2022/2026. Non e' l'\"unico driver validato\": e' refutato. Vedi finding #16.]",
        "status": "refuted",
        "date_found": "2026-06-10",
        "related_phase": "research-2026",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 12,
        "finding_number": null,
        "finding_type": "driver_test",
        "title": "Funding Rate",
        "methodology": "Walk-forward 12-fold, 10 asset, 180gg.",
        "result": "Media OOS -4.59%, 10/10 robusti, consistency 75-83%.",
        "conclusion": "VALIDATED — adottato come edge primario (vedi Finding #11).",
        "status": "validated",
        "date_found": "2026-06-10",
        "related_phase": "research-2026",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 13,
        "finding_number": null,
        "finding_type": "driver_test",
        "title": "Fear & Greed Index",
        "methodology": "Test predittivita' OOS del sentiment index.",
        "result": "Nessun signal predittivo OOS.",
        "conclusion": "REFUTED — scartato.",
        "status": "refuted",
        "date_found": "2026-05-28",
        "related_phase": "research-2026",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 14,
        "finding_number": null,
        "finding_type": "driver_test",
        "title": "Stablecoin Supply",
        "methodology": "Correlazione + walk-forward su supply stablecoin.",
        "result": "Correlazione lineare 0.12; walk-forward 0/10.",
        "conclusion": "REFUTED — nessuna forward predictivity.",
        "status": "refuted",
        "date_found": "2026-05-30",
        "related_phase": "research-2026",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 15,
        "finding_number": null,
        "finding_type": "driver_test",
        "title": "BTC Dominance",
        "methodology": "Test predittivita' forward della dominance BTC.",
        "result": "Signal solo retrospettivo, nessuna forward predictivity.",
        "conclusion": "REFUTED — scartato.",
        "status": "refuted",
        "date_found": "2026-06-02",
        "related_phase": "research-2026",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 16,
        "finding_number": null,
        "finding_type": "lesson_v2",
        "title": "Phantom PnL bug (prezzi wrong-token)",
        "methodology": "Analisi PnL anomalo su BURN/BSC, BASED/MOON/CHAD.",
        "result": "Prezzi recuperati su token sbagliato -> PnL calcolato male.",
        "conclusion": "Fetch prezzo per contract address, non per symbol.",
        "status": "refuted",
        "date_found": "2026-01-01",
        "related_phase": "v2",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 17,
        "finding_number": null,
        "finding_type": "lesson_v2",
        "title": "69 lessons da 6-month Binance backtest",
        "methodology": "Backtest 6 mesi su Binance.",
        "result": "69 lezioni operative estratte.",
        "conclusion": "Caricate nella memoria Claude come knowledge base.",
        "status": "partial",
        "date_found": "2026-01-01",
        "related_phase": "v2",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 18,
        "finding_number": null,
        "finding_type": "lesson_v3",
        "title": "ThreadPoolExecutor deadlock nel brain loop",
        "methodology": "Diagnosi blocchi del brain loop v3.",
        "result": "Deadlock su ThreadPoolExecutor.",
        "conclusion": "Rivista concorrenza del loop decisionale.",
        "status": "refuted",
        "date_found": "2026-02-01",
        "related_phase": "v3",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 19,
        "finding_number": null,
        "finding_type": "lesson_v3",
        "title": "DEX rug pulls — hard stop fallito",
        "methodology": "Post-mortem rug pull su posizioni DEX.",
        "result": "Hard stop falliva: price fetch by symbol invece di contract address.",
        "conclusion": "Price fetch per contract address; min liquidity DEX $50K.",
        "status": "refuted",
        "date_found": "2026-02-15",
        "related_phase": "v3",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 20,
        "finding_number": null,
        "finding_type": "lesson_v3",
        "title": "Emergency check saltava posizioni DEX",
        "methodology": "Audit del modulo emergency v3.",
        "result": "Le posizioni DEX venivano ignorate dal check di emergenza.",
        "conclusion": "Coprire anche le posizioni DEX nei controlli di emergenza.",
        "status": "refuted",
        "date_found": "2026-02-20",
        "related_phase": "v3",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 21,
        "finding_number": null,
        "finding_type": "lesson_v3",
        "title": "Soluzioni adottate (WAL, price impact, min liquidity)",
        "methodology": "Hardening dopo i bug DEX/PnL.",
        "result": "WAL mode SQLite; price impact filter (position/liquidity > 1%); min DEX liquidity $50K.",
        "conclusion": "Stack di mitigazioni standard per il DEX trading.",
        "status": "validated",
        "date_found": "2026-03-01",
        "related_phase": "v3",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 22,
        "finding_number": null,
        "finding_type": "lesson_v4",
        "title": "HUNTER engine fermato",
        "methodology": "Test live engine HUNTER.",
        "result": "EUR 80 di perdita in 2 giorni.",
        "conclusion": "Fermato.",
        "status": "refuted",
        "date_found": "2026-04-05",
        "related_phase": "v4",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 23,
        "finding_number": null,
        "finding_type": "lesson_v4",
        "title": "ORACLE engine fermato (costi API)",
        "methodology": "Test live engine ORACLE.",
        "result": "Costi API Claude ~EUR 15/mese.",
        "conclusion": "Fermato per insostenibilita' costi.",
        "status": "refuted",
        "date_found": "2026-04-10",
        "related_phase": "v4",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 24,
        "finding_number": null,
        "finding_type": "lesson_v4",
        "title": "Auto-modify code di Claude FREE AI accantonato",
        "methodology": "Esperimento di auto-modifica del codice via Claude.",
        "result": "Troppo rischio operativo.",
        "conclusion": "Accantonato.",
        "status": "refuted",
        "date_found": "2026-04-15",
        "related_phase": "v4",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 25,
        "finding_number": null,
        "finding_type": "lesson_v4",
        "title": "Mega backtest 2000 LHS samples",
        "methodology": "Ottimizzazione parametri con Latin Hypercube Sampling.",
        "result": "2000 sample LHS valutati.",
        "conclusion": "Metodo adottato per la calibrazione parametri.",
        "status": "validated",
        "date_found": "2026-04-20",
        "related_phase": "v4",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 26,
        "finding_number": null,
        "finding_type": "lesson_v5",
        "title": "4 engine simultanee: troppa complessita'",
        "methodology": "Operativita' con STANDARD/MOMENTUM/ORACLE/HUNTER in parallelo.",
        "result": "Complessita' ingestibile.",
        "conclusion": "Ridurre il numero di engine.",
        "status": "refuted",
        "date_found": "2026-05-01",
        "related_phase": "v5",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 27,
        "finding_number": null,
        "finding_type": "lesson_v5",
        "title": "MOMENTUM fermato (equity flat)",
        "methodology": "Ultimo engine attivo, monitoraggio equity.",
        "result": "Equity flat per 4 giorni.",
        "conclusion": "Fermato il 14/06/2026.",
        "status": "refuted",
        "date_found": "2026-06-14",
        "related_phase": "v5",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 28,
        "finding_number": null,
        "finding_type": "lesson_v5",
        "title": "TEST PAPER vs PROD — outlier sensitivity",
        "methodology": "Confronto paper vs prod.",
        "result": "2 trade (AIUSDT, RADUSDT) distorcevano l'analisi.",
        "conclusion": "Gestire l'outlier sensitivity nelle metriche.",
        "status": "partial",
        "date_found": "2026-06-05",
        "related_phase": "v5",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 29,
        "finding_number": null,
        "finding_type": "lesson_v5",
        "title": "ORACLE blacklist + dynamic routing",
        "methodology": "Ottimizzazione costi ORACLE.",
        "result": "13 symbols hardcoded in blacklist + routing dinamico Haiku/Sonnet (92% cost saving).",
        "conclusion": "Pattern di cost control adottato.",
        "status": "validated",
        "date_found": "2026-06-08",
        "related_phase": "v5",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 30,
        "finding_number": null,
        "finding_type": "lesson_v5",
        "title": "HUNTER ottimizzazione parametri",
        "methodology": "Tuning dei filtri HUNTER.",
        "result": "liq>$15K, age 10-90min, chg>8%, SL -8%.",
        "conclusion": "Parametri ottimizzati per lo screening.",
        "status": "partial",
        "date_found": "2026-06-09",
        "related_phase": "v5",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 31,
        "finding_number": null,
        "finding_type": "lesson_v5",
        "title": "Cross-engine exposure check necessario",
        "methodology": "Analisi esposizione complessiva multi-engine.",
        "result": "Rischio di sovraesposizione tra engine.",
        "conclusion": "Serve un controllo di esposizione cross-engine.",
        "status": "partial",
        "date_found": "2026-06-10",
        "related_phase": "v5",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 32,
        "finding_number": null,
        "finding_type": "lesson_v5",
        "title": "Lezione meta: validare prima di mettere capitale",
        "methodology": "Sintesi delle perdite v4/v5.",
        "result": "Ogni feature/engine non validata ha bruciato capitale.",
        "conclusion": "Ogni nuova feature/engine va validata prima di allocare capitale.",
        "status": "validated",
        "date_found": "2026-06-15",
        "related_phase": "v5",
        "metadata": null,
        "created_at": "2026-06-29T20:21:56.578872+00:00"
      },
      {
        "id": 34,
        "finding_number": 12,
        "finding_type": "data_quality",
        "title": "Funding non per-asset: serie globale duplicata sui 10 major",
        "methodology": "Replica Finding#11 in Fase 3. Confronto funding_z21/funding_rate tra major su open_time comune, in features_1d e nella sorgente driver_per_asset.",
        "result": "funding_rate e funding_z21 IDENTICI su tutti i 10 major (208 date comuni). Tutti e 4 i driver per-asset (funding_rate, open_interest, long_short_global, long_short_ratio) duplicati. Origine: legacy drivers.db via scripts/02_migrate.py. Replica Q90: pooled -2.90%, 10/10 medie negative ma stessi 21 trigger su 10 path prezzo (robustezza non indipendente).",
        "conclusion": "Edge funding PER-ASSET (Finding#11) NON validabile su questi dati. Resta solo edge funding GLOBALE. Fase 3 bloccata: serve ingest di funding reali per simbolo prima della rivalidazione. [RISOLTO 2026-06-30: funding reale per-asset ingerito da Binance (12_funding_ingest.py). Ora funding diverso per asset. Edge per-asset CONFERMATO: pooled -3.35%, 10/10 negativi.]",
        "status": "resolved",
        "date_found": "2026-06-30",
        "related_phase": "fase-3",
        "metadata": null,
        "created_at": "2026-06-30T21:03:49.485393+00:00"
      },
      {
        "id": 35,
        "finding_number": 13,
        "finding_type": "candidate_test",
        "title": "Candidato B1: Funding × Regime — edge regime-agnostico",
        "methodology": "Trigger funding_z21>=Q90 per-asset, return +7gg su 10 major, split per regime di mercato (BTC momentum_30d<0=bear). Confronto ECCESSO sopra baseline di regime. Baseline: all -2.43%, bear -1.62%, bull -2.16%.",
        "result": "Trigger bear -2.73% (n=116, eccesso -1.11%), bull -3.54% (n=95, eccesso -1.38%). L'eccesso NON e' piu' negativo in bear.",
        "conclusion": "IPOTESI REFUTATA: l'edge funding non si rafforza in bear. Sub-finding utile: l'edge e' regime-agnostico (robusto sia bull sia bear), conferma la solidita' del modulo Funding Q90 (Fase 3). Nessun modulo regime-conditioning.",
        "status": "refuted",
        "date_found": "2026-07-01",
        "related_phase": "fase-4",
        "metadata": null,
        "created_at": "2026-07-01T19:39:31.254022+00:00"
      },
      {
        "id": 36,
        "finding_number": 14,
        "finding_type": "candidate_test",
        "title": "Candidato B2: DXY in bear — nessun valore aggiunto",
        "methodology": "Trigger = macro_dxy in calo (slope 5gg<0) AND regime bear; return +7gg su major. Confronto vs baseline incondizionata (-2.43%) e vs bear-only nella copertura dxy.",
        "result": "Trigger -3.37% (n=560) batte la baseline solo di -0.94%; bear-only nella stessa finestra -1.64%. Segno controintuitivo (dxy giu' = di norma risk-on). Dati dxy ~134 punti fino a 2026-06-05.",
        "conclusion": "REFUTATO: dxy-in-calo non aggiunge valore oltre il regime bear; finestra breve e confusa dal bear di mercato. Dati insufficienti per un edge affidabile.",
        "status": "refuted",
        "date_found": "2026-07-01",
        "related_phase": "fase-4",
        "metadata": null,
        "created_at": "2026-07-01T19:39:31.254022+00:00"
      },
      {
        "id": 37,
        "finding_number": 15,
        "finding_type": "candidate_test",
        "title": "Candidato B3: Volatility filtering — nessun edge direzionale",
        "methodology": "Terzili per-asset di realized_vol_24 (LOW/MED/HIGH), return +7gg su major, confronto vs baseline -2.43%; anche magnitudo |return| per bucket.",
        "result": "LOW -1.88% / MED -2.21% / HIGH -1.43%, spread 0.78%; nessun bucket devia dalla baseline di >1.5%. Magnitudo simile (5.3-6.2%), HIGH non piu' ampia.",
        "conclusion": "REFUTATO: realized_vol_24 non predice ne' direzione ne' magnitudo del return +7gg. Nessun bucket con edge sfruttabile.",
        "status": "refuted",
        "date_found": "2026-07-01",
        "related_phase": "fase-4",
        "metadata": null,
        "created_at": "2026-07-01T19:39:31.254022+00:00"
      },
      {
        "id": 38,
        "finding_number": 16,
        "finding_type": "candidate_test",
        "title": "Funding Q90 — MARGINE NETTO su baseline (verifica critica)",
        "methodology": "Margine netto = return(funding_z21>=Q90) - baseline incondizionata +7gg per-asset, su 322/354 asset eleggibili (>=90gg). Significativita' via block bootstrap sulle date di trigger (correlazione cross-asset + overlap +7gg) e episodi indipendenti; robustezza su 3 sotto-periodi.",
        "result": "Netto pooled -0.47% (7449 eventi), bootstrap CI95 [-2.58%,+1.45%], P(>=0)=0.33 -> NON significativo. Solo major: -0.89%, CI95 [-3.54%,+1.53%] -> NON significativo. Edge presente in solo 54% asset (major 70%, non-major 53%). Temporale: -0.41%/-1.84%/+1.44% -> reverse nel periodo recente. [DEFINITIVO 2026-07-01, storia 2021-2026, 19 major, 3443 eventi, 36 episodi indip.]: margine netto POOLED +1.23% (baseline globale) / +1.68% (baseline per-regime), bootstrap CI include 0 -> non significativo, SEGNO POSITIVO (opposto alla tesi short). Per anno: 2021 +7.6%, 2022 -1.87%, 2023 +1.8%, 2024 -0.2%, 2025 -0.48%, 2026 -3.7%. Solo 21% asset con net negativo.",
        "conclusion": "EDGE NON DIMOSTRATO. Il grezzo -3.35%% e' ~85%% deriva di mercato bear; il netto (~-0.5%% all / -0.9%% major) non e' statisticamente significativo ne' robusto nel tempo. NON giustifica capitale reale ora. Rivalutare con finestra dati piu' lunga (incl. fase bull). Vedi Finding #11. [DEFINITIVO: con 5 anni bull+bear l'edge net e' positivo e non significativo. Funding Q90 NON regge come edge short standalone; il -3.35%/-4.59% era artefatto del regime bear. Cambiare strada.]",
        "status": "refuted",
        "date_found": "2026-07-01",
        "related_phase": "fase-4",
        "metadata": null,
        "created_at": "2026-07-01T20:00:52.151005+00:00"
      },
      {
        "id": 39,
        "finding_number": 17,
        "finding_type": "candidate_test",
        "title": "Screening predittivo indicatori 24h/72h — nessun edge single-indicator OOS",
        "methodology": "25 indicatori (RSI, EMA-ratios, returns, ATR%, realized_vol, volume, momentum, bollinger, beta/corr/rel_str BTC, funding_z21/slope, oi_change) bucketizzati in decili per-asset. IS 2021-2024 / OOS 2025-2026 su 20 major. Baseline per-(asset,split), block bootstrap sulle date, correzione multiple-testing Bonferroni+BH su 48 test. Pass breadth su 283 asset storia corta (60/40).",
        "result": "Primario: 2 hit nominali@95% (atr_pct 24h +1.17%, rel_strength_btc 72h +1.28%) MA falsi positivi attesi 2.4; 0 sopravvivono a Bonferroni (p_min 0.011 vs 0.001) e BH-FDR10%. Breadth: 0 hit (p_min 0.062). 40/48 test instabili (IS non regge OOS).",
        "conclusion": "NESSUN indicatore singolo predice buy/sell a 24h/72h out-of-sample in modo robusto. I pochi hit sono nel range dei falsi positivi attesi. Niente moduli direzionali single-indicator; eventuali edge vanno cercati in combinazioni/condizioni piu' complesse, sempre con OOS + multiple-testing.",
        "status": "refuted",
        "date_found": "2026-07-01",
        "related_phase": "ricerca",
        "metadata": null,
        "created_at": "2026-07-01T21:33:01.854770+00:00"
      },
      {
        "id": 40,
        "finding_number": 18,
        "finding_type": "candidate_test",
        "title": "Combinazione buy/sell multi-indicatore — overfitting, non regge OOS",
        "methodology": "Backtest long/flat 20 major (equal-weight, costi 0.15%/lato, max hold 7gg), greedy forward selection su IS 2021-01..2024-06, verifica OOS 2024-07..2026-07. Obiettivi: max total return e max rend/barra. Soglie q30/q70 per-asset da IS. Block bootstrap sui rendimenti giornalieri OOS.",
        "result": "Max-guadagno: BUY se realized_vol_24>=q70. IS +897% -> OOS -20.4% (Sharpe 1.33->-0.09), CI bootstrap include 0. Combo 4-cond (vol alto+beta_btc basso+funding_slope alto+atr alto): IS +51.6% Sharpe 1.14 -> OOS -6.9% Sharpe -0.84, CI include 0. Entrambe battono B&H OOS solo restando in cash (TIM 0.6-16%) nel bear.",
        "conclusion": "OVERFITTING confermato: nessuna combinazione buy/sell multi-indicatore genera edge reale out-of-sample. Guadagni IS spettacolari che crollano OOS. Il \"battere buy&hold\" e' solo minor esposizione nel crash, non alpha. Coerente con le refutazioni precedenti (#16,#17).",
        "status": "refuted",
        "date_found": "2026-07-01",
        "related_phase": "ricerca",
        "metadata": null,
        "created_at": "2026-07-01T22:01:51.441632+00:00"
      },
      {
        "id": 41,
        "finding_number": 19,
        "finding_type": "candidate_test",
        "title": "Funding harvesting market-neutral — edge reale ma troppo piccolo su 300 EUR",
        "methodology": "Simulazione delta-neutral (long spot+short perp) che incassa funding positivo, isteresi con smoothing 3gg per evitare churn, costi realistici 0.60% round-trip (2 gambe x fee 0.1%+slip 0.05%). Funding reale 354 asset 8h 2019-2026. Confronto full-history vs finestra recente 2023-07+.",
        "result": "Funding grezzo ann.: 94 asset >5%, 34 >10%, top 14-17% (ZEN,VET,LTC,XRP,ETH). Net dopo costi full-history top-10 ~11.5%; FORWARD (recente) ~5% (funding dimezzato post-mania 2020-21). Su 300 EUR: ~14 EUR/anno = ~1.2 EUR/mese. Mediana asset 1.2% net, 29% net<=0. Funding negativo 23% del tempo.",
        "conclusion": "Primo edge REALE del progetto (non direzionale, non overfit): market-neutral, incassa un pagamento strutturale. MA net forward ~5%/anno; su 300 EUR sono ~1 EUR/mese, troppo piccolo per giustificare rischio operativo (liquidazione short, basis, exchange). Sensato da ~5-13k EUR. Asset migliori: ZEN,XRP,LTC,ETH,LINK.",
        "status": "validated",
        "date_found": "2026-07-01",
        "related_phase": "ricerca",
        "metadata": null,
        "created_at": "2026-07-01T22:58:12.393054+00:00"
      },
      {
        "id": 42,
        "finding_number": 20,
        "finding_type": "candidate_test",
        "title": "Test AI/ML decision-making — non batte il caso OOS, ORACLE giustamente fermato",
        "methodology": "HistGradientBoosting (regressore+classificatore) su 25 feature, il test equo della massima capacita' predittiva. Train IS 2021-2024, test OOS 2024-07..2026-07, 20 major, features_1d, target return +1g/+7g. Block bootstrap sui rendimenti giornalieri, baseline/base-rate, feature importance permutazionale.",
        "result": "24h: R2 IS +0.094 -> OOS -0.003; rank-IC +0.006; dir.acc 50.3% (base 51.7%); clf 62.8%->51.8%. 7g: R2 IS +0.424 -> OOS -0.135; rank-IC +0.060; dir.acc 52.1% (base 54.1%); clf 76%->54.9%. Strategie OOS non significative (bootstrap CI include 0); il \"batte B&H\" e' solo minor esposizione nel bear. Feature usate: rsi_14, px_vwap/ema, momentum.",
        "conclusion": "NON predittivo OOS. L'informazione direzionale non e' nei dati, indipendentemente dallo strumento: un GBM potente overfitta l'IS (R2 fino a 0.42) e crolla OOS (R2 negativo) come le regole manuali. Conferma perche' ORACLE (Claude) fu fermato in v5: non qualita' del modello, ma assenza di segnale -> costi API non ripagabili. Domanda \"e se usiamo l'AI?\" chiusa: no.",
        "status": "refuted",
        "date_found": "2026-07-01",
        "related_phase": "ricerca",
        "metadata": null,
        "created_at": "2026-07-01T23:11:25.183324+00:00"
      },
      {
        "id": 43,
        "finding_number": 21,
        "finding_type": "candidate_test",
        "title": "Bot \"2000 migliori occasioni\" su tutti i token — non replica OOS",
        "methodology": "Identificate le 2000 migliori occasioni storiche (max return 1-7gg) su 440 token (features_1d). Regole BUY via albero decisionale (depth 4) sulle feature all entry. Backtest storico + reality-check OOS (split per-token 65/35, exit realistico +3gg no-hindsight, costi round-trip 0.30%).",
        "result": "Occasioni: opp_ret>=47% (mediana 70%, max 638%), 213 asset, 4% storia corta, 13% bassa liquidita. Regole (momentum/volatilita: px_ema, dist_ema200, atr, realized_vol, beta) per catturare le occasioni scattano sul 17% delle barre. In-sample: recall 51%, PRECISIONE 4.6% (95% falsi positivi), return/trade -0.32% netto. OOS: recall 66->23%, return/trade -0.73->-1.60%, falsi positivi ~96%.",
        "conclusion": "Identificare i pump PASSATI non consente di catturarli in FUTURO. Le regole scattano ovunque (95% falsi positivi) e il return realistico (exit fisso, netto costi) e NEGATIVO gia in-sample e peggiora OOS. Gap incolmabile tra occasione con exit ottimale (hindsight) e trade reale. Coerente con le refutazioni #17,#18,#20.",
        "status": "refuted",
        "date_found": "2026-07-02",
        "related_phase": "ricerca",
        "metadata": null,
        "created_at": "2026-07-02T20:25:39.385533+00:00"
      },
      {
        "id": 44,
        "finding_number": 22,
        "finding_type": "candidate_test",
        "title": "Simulazione grande OOS 2 anni, 300 EUR: il bot perde il 77%",
        "methodology": "Bot best-opportunities (albero Finding #21) addestrato SOLO su in-sample 2021-2024 (20 major), simulato SOLO su out-of-sample 2024-07..2026-07 (440 token, storia post-training). Separazione train/test rigorosa. 300 EUR, max 5x60, exit +3gg, liquidita >1M, costi 0.15%/lato. 283 trade su 2 anni. CSV trade + equity.",
        "result": "300 EUR -> 69 EUR = -76.9% in 2 anni. Win rate 38%, Sharpe -0.72, max drawdown -92%. Equity sale a 442 EUR (nov-2024) poi cala costante. Semestri 2/5 positivi (2024-H2 +105, poi 2025-H2 -215, 2026-H1 -113). Perdita SISTEMATICA non da concentrazione: 175/283 trade persi, 48/66 token negativi, togliere il migliore peggiora. Banca +15 EUR, buy&hold BTC -14 EUR: il bot fa peggio di entrambi.",
        "conclusion": "CONFERMA DEFINITIVA: su 2 anni mai visti il bot direzionale perde il 77% del capitale, peggio di banca e buy&hold. Il +20% della simulazione mensile era illusione in-sample (Finding #21 gia mostrava OOS negativo). Nessun edge direzionale esiste. Coerente con #16-21. Chiude ogni ipotesi di trading direzionale su capitale reale.",
        "status": "refuted",
        "date_found": "2026-07-02",
        "related_phase": "ricerca",
        "metadata": null,
        "created_at": "2026-07-02T20:49:36.366645+00:00"
      }
    ]
  }
}