{
  "blockers": [
    "current_intent",
    "risk_limits",
    "data_quality"
  ],
  "current_intent": null,
  "execution_allowed": false,
  "gates": [
    {
      "key": "dashboard_readonly",
      "label": "Dashboard read-only",
      "reason": "FinanceManager/JARVIS zeigt nur Status; keine Orders.",
      "severity": "success",
      "status": "pass"
    },
    {
      "key": "live_env_disabled",
      "label": "Live env disabled",
      "reason": "CTB_LIVE_TRADING_ALLOWED ist nicht true.",
      "severity": "success",
      "status": "pass"
    },
    {
      "key": "loss_gates_configured",
      "label": "Loss gates configured",
      "reason": "Tiny-live v1 Limits: max daily loss 2 USDC, weekly 5 USDC, loss-streak 2; Runner muss diese erneut erzwingen.",
      "severity": "success",
      "status": "pass"
    },
    {
      "key": "legacy_live_paths_blocked",
      "label": "Legacy live paths blocked",
      "reason": "Legacy/AutoTrader live paths bleiben blockiert.",
      "severity": "success",
      "status": "pass"
    },
    {
      "key": "alert_delivery",
      "label": "Critical alert delivery",
      "reason": "alerts_proven=True, checked=1, blockers=[]",
      "severity": "success",
      "status": "pass"
    },
    {
      "key": "current_intent",
      "label": "Current tiny-live intent",
      "reason": "Kein Tiny-Live-Kandidat im Trader-Desk-Snapshot.",
      "severity": "critical",
      "status": "fail"
    },
    {
      "key": "risk_limits",
      "label": "Tiny-live risk limits",
      "reason": "Kein Intent vorhanden, deshalb kein Notional-/Side-Check m\u00f6glich.",
      "severity": "critical",
      "status": "fail"
    },
    {
      "key": "data_quality",
      "label": "Intent data quality",
      "reason": "Kein Intent vorhanden, deshalb keine Datenqualit\u00e4ts-Evidenz.",
      "severity": "critical",
      "status": "fail"
    },
    {
      "key": "shadow_sample",
      "label": "Shadow sample",
      "reason": "111/30 geschlossene Shadow-Outcomes.",
      "severity": "success",
      "status": "pass"
    },
    {
      "key": "shadow_winrate",
      "label": "Shadow winrate",
      "reason": "Winrate 56.76% / Mindestwert 45%.",
      "severity": "success",
      "status": "pass"
    },
    {
      "key": "shadow_realized_r",
      "label": "Shadow realized R",
      "reason": "Realized R 34.0744 / muss positiv sein.",
      "severity": "success",
      "status": "pass"
    },
    {
      "key": "shadow_open_exposure",
      "label": "Shadow open exposure",
      "reason": "0 offene Shadow-Positionen; Info-Gate, keine echte Exposure.",
      "severity": "success",
      "status": "pass"
    },
    {
      "key": "read_only_reconcile",
      "label": "Mainnet read-only reconcile",
      "reason": "status=ok, positions=0, open_orders=0, block_new_entries=False, stops_missing=0, alerts=0, exposure_mismatch=0, private_key_used=False",
      "severity": "success",
      "status": "pass"
    },
    {
      "key": "signed_credentials",
      "label": "Mainnet signer consistency",
      "reason": "masked credential model ok",
      "severity": "success",
      "status": "pass"
    },
    {
      "key": "testnet_execution_proof",
      "label": "Testnet entry/stop/cleanup proof",
      "reason": "status=ok, entry=True, stop=True, cleanup=True",
      "severity": "success",
      "status": "pass"
    }
  ],
  "generated_at": "2026-07-15T12:02:51.400153+00:00",
  "live_order_allowed": false,
  "mainnet_signed_action": false,
  "preflight_status": "fail",
  "readiness_label": "Nicht tiny-live-ready",
  "reason": "Hard gates rot: current_intent, risk_limits, data_quality",
  "safety_boundary": {
    "approval_is_audit_only": true,
    "dashboard_executes_orders": false,
    "execution_allowed": false,
    "live_order_allowed": false,
    "mainnet_signed_action": false,
    "paper_only_until_explicit_launch": true,
    "trader_must_recheck_gates": true
  },
  "schema_version": "trader_desk_tiny_live_preflight.v1",
  "status": "ok"
}