{
 "card_id": "prot-80fb745e1d60c11978d450a5682c7bfd",
 "at": "2026-09-28T12:06:58.432000Z",
 "decision_id": null,
 "ruling_id": "80fb745e1d60c11978d450a5682c7bfdc659768643a428cbe7c7e7e9a4569a6b",
 "triggers": [],
 "coverage": {},
 "shown_text": [],
 "outcome": null,
 "decision": null,
 "grounding": {},
 "kernel": {
  "ruling_id": "80fb745e1d60c11978d450a5682c7bfdc659768643a428cbe7c7e7e9a4569a6b",
  "at": "2026-09-28T12:06:58.432000Z",
  "decision_id": null,
  "protective_reason": "venue_integrity",
  "activation_before": "active",
  "activation_after": "active",
  "book_rulings": [
   {
    "guard": "G5_daily_kill",
    "symbol": null,
    "status": "passed",
    "ceiling_abs_weight": null,
    "forces_exit": false,
    "reason": "day return within the -1.5% kill",
    "basis": "Envelope simulation uses a -1.5% daily kill (envelope_clean.py)",
    "inputs": {
     "day_open_equity": "49985.20616429",
     "day_return": -1.9788432936516424e-05,
     "equity": "49984.21703539",
     "kill_at": -0.015
    }
   },
   {
    "guard": "G10_breaker",
    "symbol": null,
    "status": "passed",
    "ceiling_abs_weight": null,
    "forces_exit": false,
    "reason": "breaker active; snapshot and quote fresh",
    "basis": "2.5% is past the worst no-edge 72h drawdown (-2.48%, envelope_clean.json); losing-streak and staleness rules ported from ARGUS risk/circuit.py (MIT); a model outage never leads to a deterministic trade (DESIGN.md §9.5); policy v2 (run2-a5): the losing-streak trip lapses, since a flat book in reduce-only could never close the winner that clears it; policy v2 (run2-a6): a flatten is itself a taker trade on every leg",
    "inputs": {
     "book_demands": "active",
     "book_trips": "",
     "breaker_state": "active",
     "breaker_trips": "",
     "consecutive_losses": 0.0,
     "drawdown": -1.9788432936516424e-05,
     "effective": "active",
     "llm_outage": false
    }
   }
  ],
  "instruments": [
   {
    "symbol": "METAUSDT",
    "current_weight": 0.024912863977009658,
    "proposed_weight": null,
    "approved_weight": 0.0,
    "binding_guard": "G1_venue_integrity",
    "rulings": [
     {
      "guard": "G1_venue_integrity",
      "symbol": "METAUSDT",
      "status": "fired",
      "ceiling_abs_weight": 0.0,
      "forces_exit": true,
      "reason": "exit: Demo last 726.41 is 104.2 bps from live 734.06, beyond the measured p99 of 67.2 bps",
      "basis": "Demo flash prints (BTCUSDT Demo mark 65.6% from its index, 2026-06-29 00:00 UTC); excursion counts and p99 gaps in demo_integrity.json and fade_demo.json; weekend Demo index moves 0.1-1.5 bps/h vs 18-66 bps/h on weekdays (weekend_vol.json)",
      "inputs": {
       "demo_index": "732.7367072168068944",
       "demo_index_move_bps_3h": 42.65144529002026,
       "demo_last": "726.41",
       "demo_live_gap_bps": 104.21491431218156,
       "demo_live_p99_bps": 67.2,
       "demo_mark": "732.5",
       "live_last": "734.06",
       "mark_index_gap": 0.00032304539198806093,
       "mark_index_limit": 0.03,
       "session_open": true,
       "stale_index_min_move_bps_3h": 2.0
      }
     },
     {
      "guard": "G2_weekend_freeze",
      "symbol": "METAUSDT",
      "status": "passed",
      "ceiling_abs_weight": null,
      "forces_exit": false,
      "reason": "outside the weekend freeze and its buffers",
      "basis": "UTA Demo does not track these perps on weekends. Mostly it freezes: weekend mean |1H move| of the Demo index 0.1-1.5 bps against 5.6-29.1 bps live (weekend_vol.json); MSTR +204 bps live vs +5 bps Demo from Saturday 00:00 to 12:00 UTC on 2026-09-19. Sometimes it jumps on its own: AAPL +80 bps Demo vs +17 bps live on 2026-09-12 (fade_demo2.txt); policy v2 (run2-a4): a trade still open when the record is scored has no result, so the window closes them all",
      "inputs": {
       "asset_class": "us_equity",
       "phase": "open"
      }
     },
     {
      "guard": "G5_daily_kill",
      "symbol": "METAUSDT",
      "status": "passed",
      "ceiling_abs_weight": null,
      "forces_exit": false,
      "reason": "day return within the -1.5% kill",
      "basis": "Envelope simulation uses a -1.5% daily kill (envelope_clean.py)",
      "inputs": {
       "day_open_equity": "49985.20616429",
       "day_return": -1.9788432936516424e-05,
       "equity": "49984.21703539",
       "kill_at": -0.015
      }
     },
     {
      "guard": "G10_breaker",
      "symbol": "METAUSDT",
      "status": "passed",
      "ceiling_abs_weight": null,
      "forces_exit": false,
      "reason": "breaker active; snapshot and quote fresh",
      "basis": "2.5% is past the worst no-edge 72h drawdown (-2.48%, envelope_clean.json); losing-streak and staleness rules ported from ARGUS risk/circuit.py (MIT); a model outage never leads to a deterministic trade (DESIGN.md §9.5); policy v2 (run2-a5): the losing-streak trip lapses, since a flat book in reduce-only could never close the winner that clears it; policy v2 (run2-a6): a flatten is itself a taker trade on every leg",
      "inputs": {
       "book_demands": "active",
       "book_trips": "",
       "breaker_state": "active",
       "breaker_trips": "",
       "consecutive_losses": 0.0,
       "drawdown": -1.9788432936516424e-05,
       "effective": "active",
       "llm_outage": false,
       "quote_age_seconds": 2.027,
       "snapshot_age_seconds": 256.508167
      }
     }
    ]
   },
   {
    "symbol": "MSTRUSDT",
    "current_weight": 0.02498915205805132,
    "proposed_weight": null,
    "approved_weight": 0.02498915205805132,
    "binding_guard": null,
    "rulings": [
     {
      "guard": "G1_venue_integrity",
      "symbol": "MSTRUSDT",
      "status": "passed",
      "ceiling_abs_weight": null,
      "forces_exit": false,
      "reason": "Demo mark within the index limit, Demo-live gap within p99, Demo index moving",
      "basis": "Demo flash prints (BTCUSDT Demo mark 65.6% from its index, 2026-06-29 00:00 UTC); excursion counts and p99 gaps in demo_integrity.json and fade_demo.json; weekend Demo index moves 0.1-1.5 bps/h vs 18-66 bps/h on weekdays (weekend_vol.json)",
      "inputs": {
       "demo_index": "157.7945377852201743",
       "demo_index_move_bps_3h": 65.53892394562833,
       "demo_last": "157.35",
       "demo_live_gap_bps": 41.139240506329116,
       "demo_live_p99_bps": 316.2,
       "demo_mark": "157.71",
       "live_last": "158",
       "mark_index_gap": 0.0005357459542436236,
       "mark_index_limit": 0.03,
       "session_open": true,
       "stale_index_min_move_bps_3h": 2.0
      }
     },
     {
      "guard": "G2_weekend_freeze",
      "symbol": "MSTRUSDT",
      "status": "passed",
      "ceiling_abs_weight": null,
      "forces_exit": false,
      "reason": "outside the weekend freeze and its buffers",
      "basis": "UTA Demo does not track these perps on weekends. Mostly it freezes: weekend mean |1H move| of the Demo index 0.1-1.5 bps against 5.6-29.1 bps live (weekend_vol.json); MSTR +204 bps live vs +5 bps Demo from Saturday 00:00 to 12:00 UTC on 2026-09-19. Sometimes it jumps on its own: AAPL +80 bps Demo vs +17 bps live on 2026-09-12 (fade_demo2.txt); policy v2 (run2-a4): a trade still open when the record is scored has no result, so the window closes them all",
      "inputs": {
       "asset_class": "us_equity",
       "phase": "open"
      }
     },
     {
      "guard": "G5_daily_kill",
      "symbol": "MSTRUSDT",
      "status": "passed",
      "ceiling_abs_weight": null,
      "forces_exit": false,
      "reason": "day return within the -1.5% kill",
      "basis": "Envelope simulation uses a -1.5% daily kill (envelope_clean.py)",
      "inputs": {
       "day_open_equity": "49985.20616429",
       "day_return": -1.9788432936516424e-05,
       "equity": "49984.21703539",
       "kill_at": -0.015
      }
     },
     {
      "guard": "G10_breaker",
      "symbol": "MSTRUSDT",
      "status": "passed",
      "ceiling_abs_weight": null,
      "forces_exit": false,
      "reason": "breaker active; snapshot and quote fresh",
      "basis": "2.5% is past the worst no-edge 72h drawdown (-2.48%, envelope_clean.json); losing-streak and staleness rules ported from ARGUS risk/circuit.py (MIT); a model outage never leads to a deterministic trade (DESIGN.md §9.5); policy v2 (run2-a5): the losing-streak trip lapses, since a flat book in reduce-only could never close the winner that clears it; policy v2 (run2-a6): a flatten is itself a taker trade on every leg",
      "inputs": {
       "book_demands": "active",
       "book_trips": "",
       "breaker_state": "active",
       "breaker_trips": "",
       "consecutive_losses": 0.0,
       "drawdown": -1.9788432936516424e-05,
       "effective": "active",
       "llm_outage": false,
       "quote_age_seconds": 2.434,
       "snapshot_age_seconds": 256.508167
      }
     }
    ]
   }
  ],
  "guards_applied": [
   "G1_venue_integrity",
   "G2_weekend_freeze",
   "G5_daily_kill",
   "G10_breaker"
  ]
 },
 "previews": [
  {
   "client_oid": "saa0c5c7b6569c1f390325ad4f99c2eb",
   "operation_id": "placeOrder",
   "method": "POST",
   "path": "/api/v3/trade/place-order",
   "would_send": {
    "category": "USDT-FUTURES",
    "clientOid": "saa0c5c7b6569c1f390325ad4f99c2eb",
    "orderType": "market",
    "posSide": "long",
    "qty": "1.7",
    "side": "sell",
    "symbol": "METAUSDT"
   },
   "argv": [
    "order",
    "--action",
    "place",
    "--category",
    "USDT-FUTURES",
    "--symbol",
    "METAUSDT",
    "--side",
    "sell",
    "--orderType",
    "market",
    "--qty",
    "1.7",
    "--clientOid",
    "saa0c5c7b6569c1f390325ad4f99c2eb",
    "--posSide",
    "long",
    "--paper-trading",
    "--dry-run"
   ],
   "captured_at": "2026-09-28T12:06:58.608775Z",
   "blob": {
    "sha256": "c30e1750c139acb2b22c624dce806383f494f8675dabbc8650deb152e44efbf7",
    "media_type": "application/json",
    "size": 724
   }
  }
 ],
 "orders": [
  {
   "client_oid": "saa0c5c7b6569c1f390325ad4f99c2eb",
   "venue_order_id": null,
   "symbol": "METAUSDT",
   "side": "sell",
   "qty": "1.7",
   "purpose": "protective_exit",
   "state": "rejected",
   "fills": [],
   "net_pnl": null
  }
 ],
 "ledger_seqs": [
  630,
  631,
  632,
  633,
  634,
  635,
  636,
  637
 ],
 "blobs": [
  {
   "sha256": "5d86a1fbc3da8852bd4193e198b482f533ad46f465036ba0c96f06fe16412dd0",
   "media_type": "application/vnd.t2sa.ruling-context+json",
   "size": 17303
  },
  {
   "sha256": "c30e1750c139acb2b22c624dce806383f494f8675dabbc8650deb152e44efbf7",
   "media_type": "application/json",
   "size": 724
  },
  {
   "sha256": "f0d5d60e774601c530c6c9f33a61b525ec0d3b8911f7682fd0d870c1b98845ca",
   "media_type": "application/json",
   "size": 648
  }
 ],
 "feed_health": null,
 "decided_by": null
}
