t2-sentiment-agent

A Market Sentiment Agent for Bitget AI Base Camp S2, Track 2. Qwen decides; a risk kernel that can only reduce gates every order; Bitget's Agent Hub places paper orders on UTA Demo.

PAPER

Overview

The paper book's numbers, computed from the hourly marks and closed trades in the ledger, beside what a book with no edge produced on the same venue.

Return
-0.020%
no-edge median -3.5 bps
Max drawdown
-0.369%
no-edge median -0.45%
Sharpe (annualised)
-0.30 ±7.6
151 hourly returns; descriptive
Win rate
28.6%
7 closed trade(s)
Decisions
50
17 act, 10 hold, 17 flat with reasons, 6 outage(s)
Orders
95 sent
95 planned, 22 fill(s)
Kernel
20 cut
decisions it reduced; 72 protective ruling(s)
Fees paid
9.22 USDT
turnover 0.307x

Return, drawdown, Sharpe, win rate and fees are scored over the pre-registered window 2026-09-28 00:00 to 2026-10-07 00:00 UTC (in the hashed policy). Decisions, orders and the equity and trade files cover the whole record.

90% block-bootstrap intervals (descriptive, not inferential)

metricinterval
Max drawdown-0.793% to -0.234%
Sharpe (annualised)-15.06 to 8.26
Sortino (annualised)-18.03 to 17.43
Total return-0.611% to +0.656%

Three days of hourly marks cannot separate skill from luck: pure noise gives an annualised Sharpe standard error of about 11. The envelope is the pre-registered result of a no-edge book on the same venue (validation/demo_venue/envelope_clean.json, hashed into the genesis).

Ledger
5202 events, mode paper
Head hash
bd1a96e547218323c0e67380ba77b0e4d9f7c22861d9d57a3e11a816d16c803b
Exported
2026-10-08 01:03 UTC
Policy
policy-v2

Event → decision → execution

Every decision, abstention, model outage and protective ruling, in order. Each card shows what woke the agent, what it saw, what Qwen decided and why, what every guard ruled, the dry-run payload, the clientOid, the venue orderId, the fills, and the ledger rows that prove each line.

  1. 2026-09-28 01:24 UTC
    Event
    funding zscore CRCLUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDT
    Decision
    flat with reasons Flat. Three names show funding z-scores beyond the extreme reference (CRCLUSDT, SNDKUSDT, METAUSDT), suggesting crowded shorts, but none has a second independent positioning measure to confirm. Coord…
    Kernel → execution
    nothing to rule on
    no order
  2. 2026-09-28 01:30 UTC
    Event
    funding zscore SNDKUSDT
    Decision
    flat with reasons Flat. The trigger fired on SNDKUSDT's funding z of -5.70, and METAUSDT and CRCLUSDT also show extreme negative funding z-scores suggesting crowded shorts, but no independent positioning measure confi…
    Kernel → execution
    nothing to rule on
    no order
  3. 2026-09-28 02:03 UTC
    Event
    funding zscore MSTRUSDTcoordinated cluster BTCUSDTcoordinated cluster GOOGLUSDT
    Decision
    flat with reasons Flat. Four names show funding z-scores beyond the extreme (MSTRUSDT, CRCLUSDT, SNDKUSDT, METAUSDT) but the derivatives sentiment sources that would provide independent confirmation all failed, leavin…
    Kernel → execution
    nothing to rule on
    no order
  4. 2026-09-28 02:57 UTC
    Event
    funding zscore METAUSDT
    Decision
    outage: transport error No valid decision; no deterministic rule trades in its place.
    Kernel → execution
    no ruling
    no order
  5. 2026-09-28 05:26 UTC
    Event
    funding zscore CRCLUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDT
    Decision
    flat with reasons Flat. Six US equity perpetuals show funding z-scores beyond the extreme, signaling crowded shorts, but no second independent positioning measure confirms any of them; one measure alone does not clear…
    Kernel → execution
    nothing to rule on
    no order
  6. 2026-09-28 06:08 UTC
    Event
    funding zscore MSTRUSDTcoordinated cluster GOOGLUSDT
    Decision
    act Fading crowded shorts in MSTRUSDT (funding z -4.7978) and METAUSDT (funding z -11.4933) at half size each. Both show funding far beyond the extreme reference with price stretched below their means, c…
    Kernel → execution
    approved as asked
    BUY 1.70 METAUSDT filled · 1488348258885812225
    BUY 7.92 MSTRUSDT filled · 1488348265357623297
    Open the card · realised net -1.50 USDT
  7. 2026-09-28 08:01 UTC
    Event
    heartbeat funding BTCUSDT
    Decision
    act Keep the small MSTRUSDT and METAUSDT longs unchanged as fades of negative funding and uncrowded pullbacks, while refusing new exposure because BTC long skew is only moderate and coordinated equity st…
    Kernel → execution
    METAUSDT +2.50% → +2.49% G6_turnover MSTRUSDT +2.46% → +2.45% G6_turnover
    fired: G6_turnover, G8_taker_only
    no order
  8. 2026-09-28 09:16 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.47% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  9. 2026-09-28 09:17 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.47% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  10. 2026-09-28 09:19 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.47% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  11. 2026-09-28 09:20 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.47% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  12. 2026-09-28 09:25 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.47% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  13. 2026-09-28 10:53 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.48% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  14. 2026-09-28 10:55 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.48% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  15. 2026-09-28 11:34 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.48% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  16. 2026-09-28 11:39 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  17. 2026-09-28 11:40 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  18. 2026-09-28 11:42 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  19. 2026-09-28 11:43 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  20. 2026-09-28 11:45 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  21. 2026-09-28 11:46 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  22. 2026-09-28 11:48 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  23. 2026-09-28 11:49 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  24. 2026-09-28 11:51 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.48% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  25. 2026-09-28 11:53 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.48% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  26. 2026-09-28 11:55 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.48% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  27. 2026-09-28 11:56 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.48% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  28. 2026-09-28 11:58 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.48% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  29. 2026-09-28 11:59 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.48% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  30. 2026-09-28 12:00 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.48% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  31. 2026-09-28 12:02 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.48% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  32. 2026-09-28 12:04 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.48% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  33. 2026-09-28 12:05 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  34. 2026-09-28 12:06 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  35. 2026-09-28 12:08 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  36. 2026-09-28 12:09 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  37. 2026-09-28 12:10 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  38. 2026-09-28 12:11 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  39. 2026-09-28 12:13 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  40. 2026-09-28 12:15 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  41. 2026-09-28 12:16 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  42. 2026-09-28 12:17 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  43. 2026-09-28 12:18 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  44. 2026-09-28 12:20 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  45. 2026-09-28 12:21 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  46. 2026-09-28 12:22 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  47. 2026-09-28 12:23 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  48. 2026-09-28 12:25 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  49. 2026-09-28 12:27 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  50. 2026-09-28 12:28 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  51. 2026-09-28 12:29 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.49% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  52. 2026-09-28 12:31 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.50% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  53. 2026-09-28 12:32 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.50% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  54. 2026-09-28 12:33 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.50% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  55. 2026-09-28 12:34 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.51% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  56. 2026-09-28 12:36 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.52% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  57. 2026-09-28 12:38 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.53% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  58. 2026-09-28 12:39 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.54% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  59. 2026-09-28 12:40 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.53% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  60. 2026-09-28 12:42 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.55% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  61. 2026-09-28 12:43 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.55% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  62. 2026-09-28 12:44 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.54% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  63. 2026-09-28 12:59 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.52% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  64. 2026-09-28 13:25 UTC
    Event
    funding zscore MSTRUSDT
    Decision
    act Closing MSTRUSDT long as funding z of 2.73404 beyond the extreme with declining price signals crowded longs vulnerable to unwind. Holding METAUSDT long at current size despite elevated funding z of 4…
    Kernel → execution
    METAUSDT +2.54% → +2.53% G6_turnover
    fired: G6_turnover, G8_taker_only, G9_grounding
    SELL 7.92 MSTRUSDT rejected
  65. 2026-09-28 13:29 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.55% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  66. 2026-09-28 13:31 UTC
    Event
    heartbeat us open SP500USDT,NDX100USDT,MSTRUSDT,HOODUSDT,CRCLUSDT,SNDKUSDT,COINUSDT,TSLAUSDT,GOOGLUSDT,METAUSDT,NVDAUSDT,AMZNUSDT,AAPLUSDT
    Decision
    act Close MSTRUSDT because its crowded-long funding signal is not confirmed by price or a second positioning measure. Keep METAUSDT at its existing half target: funding is crowded but price is not stretc…
    Kernel → execution
    METAUSDT +2.53% → +2.46% G6_turnover
    fired: G6_turnover, G8_taker_only
    SELL 7.92 MSTRUSDT rejected
  67. 2026-09-28 13:40 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.46% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  68. 2026-09-28 14:01 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.47% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  69. 2026-09-28 14:02 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.47% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  70. 2026-09-28 14:04 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.47% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  71. 2026-09-28 14:17 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.46% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  72. 2026-09-28 14:18 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.46% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  73. 2026-09-28 14:19 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.46% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  74. 2026-09-28 14:20 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.46% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  75. 2026-09-28 14:22 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.46% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  76. 2026-09-28 14:23 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.46% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  77. 2026-09-28 14:24 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.46% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  78. 2026-09-28 14:25 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.46% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  79. 2026-09-28 14:29 UTC
    Event
    funding zscore TSLAUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster MSTRUSDT
    Decision
    hold Holding MSTRUSDT and METAUSDT longs at current half-size. Both show elevated funding z-scores (3.08 and 7.57 respectively) supporting a fade thesis, but lack a second independent positioning measure…
    Kernel → execution
    METAUSDT +2.46% → 0 (flat) G1_venue_integrity MSTRUSDT +2.49% → +2.48% G6_turnover
    fired: G1_venue_integrity, G6_turnover, G8_taker_only
    SELL 1.7 METAUSDT rejected
  80. 2026-09-28 14:31 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.46% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  81. 2026-09-28 15:11 UTC
    Event
    protective venue integrity
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    METAUSDT +2.45% → 0 (flat) G1_venue_integrity
    fired: G1_venue_integrity
    SELL 1.7 METAUSDT rejected
  82. 2026-09-28 16:01 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDT
    Decision
    act Close both open longs because each is a crowded-long fade with funding z above reference.funding_z_extreme while price is falling, and stay flat because the coordinated equity cluster and single-meas…
    Kernel → execution
    approved as asked
    SELL 1.7 METAUSDT filled · 1488498478504366080
    SELL 7.92 MSTRUSDT filled · 1488498485320110080
    Open the card · realised net -33.26 USDT
  83. 2026-09-29 00:01 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster HOODUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDT
    Decision
    flat with reasons Stay flat: elevated funding z in TSLAUSDT, GOOGLUSDT, AMZNUSDT and MSTRUSDT is not confirmed by a second independent positioning measure, and coordinated social clusters are promotional noise rather…
    Kernel → execution
    nothing to rule on
    no order
  84. 2026-09-29 00:09 UTC
    Event
    funding zscore MSTRUSDT
    Decision
    flat with reasons Triggered on MSTRUSDT funding z beyond the extreme, but no second independent positioning measure confirms crowded longs on any name. All crowd stories are promotional spam. Flat with written reasons…
    Kernel → execution
    nothing to rule on
    no order
  85. 2026-09-29 07:03 UTC
    Event
    funding zscore MSTRUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster TSLAUSDT
    Decision
    flat with reasons Flat. MSTRUSDT funding z of 2.5149 is beyond the extreme reference but lacks a second independent positioning measure to confirm; coordinated promotion stories across multiple names carry no position…
    Kernel → execution
    nothing to rule on
    no order
  86. 2026-09-29 08:01 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster SNDKUSDT
    Decision
    flat with reasons Stay flat: SNDKUSDT and MSTRUSDT show funding z above the extreme reference alongside coordinated promotional stories, but no second independent positioning measure confirms the crowd stretch. With t…
    Kernel → execution
    nothing to rule on
    no order
  87. 2026-09-29 10:16 UTC
    Event
    funding zscore CRCLUSDT
    Decision
    flat with reasons Trigger fired on CRCLUSDT funding z 2.34 beyond the extreme reference, and several other names show similarly elevated funding z. However, no name has a second independent positioning measure to conf…
    Kernel → execution
    nothing to rule on
    no order
  88. 2026-09-29 11:09 UTC
    Event
    funding zscore MSTRUSDT
    Decision
    act Fading crowded longs in MSTRUSDT (funding z 3.40 beyond extreme) and HOODUSDT (funding z 2.84 beyond extreme, price stretched 3.0 ATR above mean, coordinated promotion detected) at half targets each,…
    Kernel → execution
    approved as asked
    SELL 10.55 HOODUSDT filled · 1488786475778949122
    SELL 7.81 MSTRUSDT filled · 1488786575821488128
    Open the card · realised net -1.50 USDT
  89. 2026-09-29 13:32 UTC
    Event
    heartbeat us open SP500USDT,NDX100USDT,MSTRUSDT,HOODUSDT,CRCLUSDT,SNDKUSDT,COINUSDT,TSLAUSDT,GOOGLUSDT,METAUSDT,NVDAUSDT,AMZNUSDT,AAPLUSDTcoordinated cluster COINUSDT
    Decision
    act Keep the two existing short fades of crowded MSTR and HOOD long funding unchanged and open a half short of COIN after its funding z crossed the extreme reference with a coordinated three-source promo…
    Kernel → execution
    HOODUSDT -2.49% → -2.48% G6_turnover MSTRUSDT -2.51% → -2.47% G6_turnover
    fired: G6_turnover
    SELL 6.46 COINUSDT filled · 1488823284848246785
    Open the card · realised net -0.75 USDT
  90. 2026-09-29 16:01 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDT
    Decision
    act Keep three working shorts in MSTRUSDT, HOODUSDT and COINUSDT and add two half-size shorts in TSLAUSDT and METAUSDT where funding z is above reference.funding_z_extreme = 2 amid coordinated promotion.…
    Kernel → execution
    COINUSDT -2.46% → -2.45% G3_size METAUSDT -2.50% → -1.36% G3_size MSTRUSDT -2.39% → -2.39% G3_size TSLAUSDT -2.50% → -1.36% G3_size
    fired: G3_size, G6_turnover
    SELL 0.95 METAUSDT filled · 1488861195119476736
    SELL 1.92 TSLAUSDT filled · 1488861202228822017
    Open the card · realised net -0.82 USDT
  91. 2026-09-29 21:03 UTC
    Event
    funding zscore TSLAUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTcoordinated cluster MSTRUSDTcoordinated cluster SNDKUSDT
    Decision
    act Holding four shorts that fade crowded long positioning (TSLA funding z 3.63, HOOD funding z 2.16) and coordinated promotion clusters. Closing METAUSDT short whose thesis is invalidated by negative fu…
    Kernel → execution
    COINUSDT -2.45% → -2.45% G6_turnover HOODUSDT -2.45% → -2.45% G6_turnover TSLAUSDT -1.36% → -1.36% G6_turnover
    fired: G6_turnover
    BUY 0.95 METAUSDT filled · 1488936080822915072
    Open the card · realised net -19.60 USDT
  92. 2026-09-30 00:01 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster NVDAUSDTcoordinated cluster TSLAUSDT
    Decision
    act Keep MSTRUSDT, HOODUSDT, COINUSDT and TSLAUSDT shorts unchanged, with TSLAUSDT supported by funding z above reference.funding_z_extreme. Leave all new candidates flat because coordinated stories and…
    Kernel → execution
    MSTRUSDT -2.43% → -2.43% G6_turnover
    fired: G6_turnover
    no order
  93. 2026-09-30 03:26 UTC
    Event
    funding zscore HOODUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTcoordinated cluster SNDKUSDT
    Decision
    hold Holding four short positions. HOODUSDT is the core conviction trade: funding z of 4.30 far beyond the extreme reference of 2, price stretched 1.83 ATR above mean, coordinated promotion confirming one…
    Kernel → execution
    COINUSDT -2.45% → -2.45% G6_turnover
    fired: G6_turnover
    no order
  94. 2026-09-30 08:01 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDT
    Decision
    act Keep the four existing US-equity shorts unchanged and open nothing new. Coordinated crowd stories are promotional, funding is not at extremes, and the hold window blocks increases, so the book stays…
    Kernel → execution
    COINUSDT -2.46% → -2.45% G6_turnover HOODUSDT -2.53% → -2.51% G6_turnover MSTRUSDT -2.42% → -2.41% G6_turnover TSLAUSDT -1.36% → -1.36% G6_turnover
    fired: G6_turnover
    no order
  95. 2026-09-30 11:43 UTC
    Event
    funding zscore TSLAUSDT
    Decision
    act Holding four shorts and increasing TSLAUSDT from -0.27 to -0.5 target. TSLAUSDT funding z 3.31768 is well beyond the extreme reference of 2, confirming crowded longs paying 0.000758 per interval whil…
    Kernel → execution
    HOODUSDT -2.52% → -2.52% G9_grounding MSTRUSDT -2.46% → -2.46% G11_eligibility TSLAUSDT -2.50% → -1.35% G6_turnover
    fired: G11_eligibility, G6_turnover, G9_grounding
    no order
  96. 2026-09-30 13:33 UTC
    Event
    heartbeat us open SP500USDT,NDX100USDT,MSTRUSDT,HOODUSDT,CRCLUSDT,SNDKUSDT,COINUSDT,TSLAUSDT,GOOGLUSDT,METAUSDT,NVDAUSDT,AMZNUSDT,AAPLUSDT
    Decision
    act Maintain four small shorts in MSTR, HOOD, COIN and TSLA where funding is positive or crowded and prices are stretched, but do not add because evidence is at most half-target. Stay flat in BTC, AAPL a…
    Kernel → execution
    COINUSDT -2.54% → -2.49% G3_size HOODUSDT -2.59% → -2.53% G3_size MSTRUSDT -2.52% → -2.48% G3_size TSLAUSDT -1.35% → -1.33% G6_turnover
    fired: G3_size, G6_turnover
    SELL 0.20 COINUSDT filled · 1489186636590108677
    SELL 0.42 HOODUSDT filled · 1489186644563480576
    SELL 0.18 MSTRUSDT filled · 1489186651152732160
    Open the card · realised net -0.07 USDT
  97. 2026-09-30 16:01 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster METAUSDTcoordinated cluster SNDKUSDT
    Decision
    act Hold the four working shorts (MSTRUSDT, HOODUSDT, COINUSDT, TSLAUSDT) at current sizes and open nothing new. The coordinated cluster is promotion, not information, and no unheld instrument shows a tw…
    Kernel → execution
    approved as asked
    BUY 0.04 COINUSDT filled · 1489224087824126031
    BUY 0.04 MSTRUSDT filled · 1489224094614704129
    Open the card · realised net +0.41 USDT
  98. 2026-10-01 00:01 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDT
    Decision
    act Hold the working MSTRUSDT, HOODUSDT and COINUSDT shorts and close the small, non-working TSLAUSDT short. Coordinated crowd stories are treated as promotion, not information, and no new name has enoug…
    Kernel → execution
    HOODUSDT -2.48% → -2.48% G6_turnover
    fired: G6_turnover
    BUY 1.92 TSLAUSDT filled · 1489344435982848000
    Open the card · realised net -2.98 USDT
  99. 2026-10-01 04:10 UTC
    Event
    funding zscore SNDKUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDT
    Decision
    hold Circuit breaker active (4 consecutive losses, drawdown beyond 2.5%): book is reduce-only. All three shorts (MSTRUSDT, HOODUSDT, COINUSDT) are profitable with intact theses; we hold. SNDKUSDT funding…
    Kernel → execution
    approved as asked
    fired: G10_breaker
    no order
  100. 2026-10-01 05:40 UTC
    Event
    funding zscore MSTRUSDTcoordinated cluster BTCUSDTcoordinated cluster HOODUSDTcoordinated cluster TSLAUSDT
    Decision
    hold Holding three shorts (MSTRUSDT, HOODUSDT, COINUSDT) under reduce-only circuit breaker. All positions are profitable with funding-based theses still intact for MSTR and COIN; HOOD's funding signal has…
    Kernel → execution
    HOODUSDT -2.49% → -2.49% G6_turnover MSTRUSDT -2.46% → -2.46% G6_turnover
    fired: G10_breaker, G6_turnover
    no order
  101. 2026-10-01 08:03 UTC
    Event
    heartbeat funding BTCUSDT
    Decision
    hold The book is reduce-only, so we hold the three profitable US-equity shorts unchanged. Crowd text is mostly coordinated promotion, and no funding or positioning fact shows an overheated long crowd forc…
    Kernel → execution
    COINUSDT -2.47% → -2.47% G6_turnover HOODUSDT -2.48% → -2.47% G6_turnover MSTRUSDT -2.44% → -2.43% G6_turnover
    fired: G10_breaker, G6_turnover
    no order
  102. 2026-10-01 13:39 UTC
    Event
    heartbeat us open SP500USDT,NDX100USDT,MSTRUSDT,HOODUSDT,CRCLUSDT,SNDKUSDT,COINUSDT,TSLAUSDT,GOOGLUSDT,METAUSDT,NVDAUSDT,AMZNUSDT,AAPLUSDTcoordinated cluster AAPLUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster METAUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDT
    Decision
    hold Reduce-only after four consecutive losses: hold the existing MSTRUSDT, HOODUSDT and COINUSDT shorts unchanged. HOODUSDT funding z above the extreme reference is the strongest support; coordinated sto…
    Kernel → execution
    approved as asked
    fired: G10_breaker
    BUY 0.17 COINUSDT filled · 1489550415073005568
    BUY 0.14 HOODUSDT filled · 1489550540361060352
    BUY 0.29 MSTRUSDT filled · 1489550659269578752
    Open the card · realised net +1.10 USDT
  103. 2026-10-01 16:05 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster BTCUSDTcoordinated cluster HOODUSDT
    Decision
    hold Hold three shorts: MSTRUSDT, HOODUSDT and COINUSDT. HOODUSDT funding above reference.funding_z_extreme supports the short; MSTRUSDT and COINUSDT funding is positive but not extreme, so keep existing…
    Kernel → execution
    COINUSDT -2.42% → -2.41% G10_breaker HOODUSDT -2.42% → -2.42% G10_breaker MSTRUSDT -2.40% → -2.39% G10_breaker
    fired: G10_breaker
    no order
  104. 2026-10-02 00:08 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDT
    Decision
    hold Hold the three existing shorts. HOODUSDT short is supported by funding z above the extreme while price is falling; MSTRUSDT and COINUSDT shorts are kept but not increased because their positioning ev…
    Kernel → execution
    COINUSDT -2.45% → -2.45% G11_eligibility
    fired: G11_eligibility
    no order
  105. 2026-10-02 04:30 UTC
    Event
    funding zscore MSTRUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster BTCUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDT
    Decision
    hold Holding three shorts (MSTRUSDT, HOODUSDT, COINUSDT) with the circuit breaker active at 4 consecutive losses. MSTRUSDT and COINUSDT funding z-scores remain above the extreme threshold, supporting the…
    Kernel → execution
    approved as asked
    no order
  106. 2026-10-02 04:34 UTC
    Event
    funding zscore COINUSDT
    Decision
    act Holding three shorts (MSTRUSDT, HOODUSDT, COINUSDT) fading crowded-long positioning. MSTRUSDT and COINUSDT both show funding z beyond reference.funding_z_extreme (4.08 and 4.17 respectively), confirm…
    Kernel → execution
    COINUSDT -2.48% → -2.48% G11_eligibility HOODUSDT -2.44% → -2.44% G11_eligibility MSTRUSDT -2.51% → -2.50% G11_eligibility
    fired: G11_eligibility
    no order
  107. 2026-10-02 04:46 UTC
    Event
    funding zscore CRCLUSDT
    Decision
    hold Holding three shorts (MSTRUSDT, HOODUSDT, COINUSDT) that fade crowded long positioning confirmed by funding z-scores far beyond the extreme reference. Circuit breaker is active so no new exposure is…
    Kernel → execution
    COINUSDT -2.48% → -2.48% G11_eligibility HOODUSDT -2.44% → -2.44% G11_eligibility MSTRUSDT -2.51% → -2.50% G11_eligibility
    fired: G11_eligibility
    no order
  108. 2026-10-02 08:11 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster NDX100USDT
    Decision
    outage: timeout No valid decision; no deterministic rule trades in its place.
    Kernel → execution
    no ruling
    no order
  109. 2026-10-02 13:39 UTC
    Event
    heartbeat us open SP500USDT,NDX100USDT,MSTRUSDT,HOODUSDT,CRCLUSDT,SNDKUSDT,COINUSDT,TSLAUSDT,GOOGLUSDT,METAUSDT,NVDAUSDT,AMZNUSDT,AAPLUSDTcoordinated cluster TSLAUSDT
    Decision
    outage: timeout No valid decision; no deterministic rule trades in its place.
    Kernel → execution
    no ruling
    no order
  110. 2026-10-02 16:09 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster SNDKUSDT
    Decision
    act Keep the two profitable shorts unchanged and open nothing new. Coordinated crowd stories are promotional, while the reduce-only book and lack of confirmed crowded positioning block additions or new f…
    Kernel → execution
    COINUSDT -2.35% → -2.35% G10_breaker HOODUSDT -2.45% → -2.44% G10_breaker
    fired: G10_breaker
    no order
  111. 2026-10-02 19:47 UTC
    Event
    protective weekend freeze
    Decision
    No model decision: the kernel acted on its own clock.
    Kernel → execution
    COINUSDT -2.36% → 0 (flat) G2_weekend_freeze HOODUSDT -2.44% → 0 (flat) G2_weekend_freeze
    fired: G10_breaker, G2_weekend_freeze
    BUY 6.45 COINUSDT filled · 1490003701307691008
    BUY 10.83 HOODUSDT filled · 1490003852822728704
    Open the card · realised net +124.70 USDT
  112. 2026-10-03 00:01 UTC
    Event
    heartbeat funding BTCUSDT
    Decision
    flat with reasons Flat at the BTC funding settlement: funding is positive but below the extreme reference, positioning measures conflict, and the book is reduce-only with all US instruments frozen for the weekend. No…
    Kernel → execution
    nothing to rule on
    no order
  113. 2026-10-03 08:01 UTC
    Event
    heartbeat funding BTCUSDT
    Decision
    flat with reasons Flat through the BTC funding settlement: funding z 0.14264 and mild retail long skew show no overstretched crowd, while taker sell ratio 0.7826 and falling open interest deny confirmation. US names r…
    Kernel → execution
    nothing to rule on
    no order
  114. 2026-10-03 16:16 UTC
    Event
    heartbeat funding BTCUSDT
    Decision
    flat with reasons Stay flat over the weekend: US-session names are frozen, and BTCUSDT funding, open interest and account skew are only mildly long without a second confirming extreme. No position clears the fee hurdl…
    Kernel → execution
    nothing to rule on
    no order
  115. 2026-10-04 00:08 UTC
    Event
    heartbeat funding BTCUSDT
    Decision
    flat with reasons Flat. BTCUSDT woke us for a funding settlement but funding z is 0.0194581, far from the 2 extreme reference, retail skew is mild and taker flow is seller-heavy, while all US-session names remain week…
    Kernel → execution
    nothing to rule on
    no order
  116. 2026-10-04 08:09 UTC
    Event
    heartbeat funding BTCUSDT
    Decision
    flat with reasons Flat: US-session names are frozen until 2026-10-05T00:00:00Z, and BTCUSDT's funding, long-short and taker facts show only mild, unconfirmed long skew rather than a crowded trade worth paying taker fe…
    Kernel → execution
    nothing to rule on
    fired: G10_breaker
    no order
  117. 2026-10-04 16:01 UTC
    Event
    heartbeat funding BTCUSDT
    Decision
    flat with reasons Flat through the weekend freeze: BTCUSDT funding is crowded short while account ratios are long-skewed, and no US-session instrument can be opened until session.hours_to_us_reopen = 7.97075.
    Kernel → execution
    approved as asked
    no order
  118. 2026-10-05 00:08 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster BTCUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDT
    Decision
    outage: timeout No valid decision; no deterministic rule trades in its place.
    Kernel → execution
    no ruling
    no order
  119. 2026-10-05 08:11 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDT
    Decision
    flat with reasons Stay flat: the wake-up clusters are coordinated promotion, not confirmed positioning, and no name shows two independent positioning measures beyond references. Venue gaps, especially METAUSDT.demo_li…
    Kernel → execution
    nothing to rule on
    no order
  120. 2026-10-06 14:58 UTC
    Event
    heartbeat us open SP500USDT,NDX100USDT,MSTRUSDT,HOODUSDT,CRCLUSDT,SNDKUSDT,COINUSDT,TSLAUSDT,GOOGLUSDT,METAUSDT,NVDAUSDT,AMZNUSDT,AAPLUSDTheartbeat us open SP500USDT,NDX100USDT,MSTRUSDT,HOODUSDT,CRCLUSDT,SNDKUSDT,COINUSDT,TSLAUSDT,GOOGLUSDT,METAUSDT,NVDAUSDT,AMZNUSDT,AAPLUSDTheartbeat funding BTCUSDTheartbeat funding BTCUSDTheartbeat funding BTCUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster HOODUSDTcoordinated cluster MSTRUSDT
    Decision
    flat with reasons Stay flat: coordinated social clusters are promotional, and the only extreme funding fact, AAPLUSDT.funding_z_live = 2.00272, lacks a second independent positioning confirmation. No thesis clears fee…
    Kernel → execution
    nothing to rule on
    no order
  121. 2026-10-06 16:12 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster METAUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDT
    Decision
    outage: timeout No valid decision; no deterministic rule trades in its place.
    Kernel → execution
    no ruling
    no order
  122. 2026-10-07 00:18 UTC
    Event
    heartbeat funding BTCUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster SNDKUSDT
    Decision
    outage: timeout No valid decision; no deterministic rule trades in its place.
    Kernel → execution
    no ruling
    no order

Equity vs every arm

The governed book (bold) against flat, BTC held at our gross, a fixed-rule crowd fade with no language model, rival sentiment agents, the ungoverned twin, the live mirror, and the coin-flip null as a band.

-0.50%+0.00%09-28 00:0009-30 05:4510-02 11:3010-04 17:1510-06 23:00The agent, ungovernedThe agent, governed (replica)FlatBTC at our grossCrowd fade, fixed rulebaseline_coin_flip: median of 1000 seedsThe same fills on live pricesLexicon sentiment trader (with the crowd)Lexicon sentiment trader (against the crowd)Season-2 entry A: Fear & Greed with long/short confluenceSeason-2 entry B: sentiment and news signal fusionThe agent, governed
  • The agent, governed
  • The agent, ungoverned
  • The agent, governed (replica)
  • Flat
  • BTC at our gross
  • Crowd fade, fixed rule
  • baseline_coin_flip: median of 1000 seeds
  • The same fills on live prices
  • The legs the weekend freeze took away, on live
  • Lexicon sentiment trader (with the crowd)
  • Lexicon sentiment trader (against the crowd)
  • Season-2 entry A: Fear & Greed with long/short confluence
  • Season-2 entry B: sentiment and news signal fusion
  • baseline: baseline_coin_flip, 1000 seeds, 5-95%
armkindreturnSharpemax DDwin ratetrades
The agent, governed LLMours governed-0.020%-0.30-0.369%28.6%7
The agent, ungoverned LLMtwin ungoverned+0.047%0.56-0.406%33.3%6
The agent, governed (replica) LLMours governed-0.001%0.00-0.383%28.6%7
Flatbaseline+0.000%—0.000%—0
BTC at our grossbaseline+0.037%1.57-0.091%—0
Crowd fade, fixed rulebaseline-0.674%-14.54-0.674%15.3%72
baseline coin flip: median of 1000 seedsbaseline-0.254%-4.05-0.528%43.5%20.0
The same fills on live prices LLMmirror live+0.131%1.60-0.379%42.9%7
The legs the weekend freeze took away, on live LLMweekend counterfactual+0.000%—0.000%—0
Lexicon sentiment trader (with the crowd)rival-0.213%-3.01-0.324%33.3%63
Lexicon sentiment trader (against the crowd)rival-0.117%-1.65-0.461%40.0%65
Season-2 entry A: Fear & Greed with long/short confluencerival+0.000%—0.000%—0
Season-2 entry B: sentiment and news signal fusionrival-0.030%-6.49-0.039%40.0%10

Coin-flip null (1000 seeds on the same timestamps): total return 5th percentile -0.817%, median -0.254%, 95th +0.300%. The governed replica (costed exactly as the seeds are) beat 76.9% of seeds on return. Descriptive, not inferential.

Simulator check: the live Demo book returned -0.020% against the replica's -0.001%; over 21 of our fills the venue filled a median -0.27 bps worse than the cost model assumed (95th percentile 7.27 bps; positive is worse). Baselines are ranked against the replica, never the live book.

Baseline and rival arms run on the same decision timestamps and the same recorded snapshots, marked on the same Demo prices with the same costs, under the venue guards only, so the comparison isolates who decided. Full series and every arm's provenance: arms.json, arms_summary.json.

Guard funnel

What the risk kernel did to what Qwen asked for, guard by guard, and what reached Bitget.

What the model asked for

legs the model proposed
135
... asking to add exposure
50
approved in full
5
cut by the kernel
45
refused by the kernel
0

Exposure asked +19.31%, approved +15.46% (sum of absolute weight increases).

What reached the venue from model decisions

orders planned
22
previewed (dry run)
22
sent
22
acknowledged
19
filled
19
rejected / denied / unknown
3

Every guard, every ruling

guardbindingfirednot evaluatedpassedn/a
G1 venue integrity1101340
G2 weekend freeze0001278
G3 size7901980
G4 stop0005085
G5 daily kill0001790
G6 turnover242601090
G7 fee budget0001790
G8 taker only0501300
G9 grounding1204885
G10 breaker51701620
G11 eligibility8801270

"Binding" counts the legs whose final weight that guard set. Every guard is evaluated on every ruling (none short-circuits); a missing input fails closed for any increase. The kernel can only shrink, refuse or close.

Protective rulings (72)

reasonrulings
venue integrity71
weekend freeze1

Governed vs ungoverned

The model's draft before the kernel, simulated on the same Demo marks and costs: what the kernel's interventions prevented and what they cost.

Intervention rate
45.5%
46 of 44 decisions
Prevented loss
+0.039%
equity fraction
Forgone gain
+0.026%
equity fraction
Ungoverned violation rate
34.1%
drafts that broke a guard
Max DD governed
-0.383%
ungoverned -0.406%
Human takeovers
0
owner triggers and amendments
decisionsymbolguardaskedapprovedP&L ungovernedP&L governed
dec-26bbeab899464826ae579f0ea91b6deeMETAUSDTG6_turnover+2.50%+2.49%-0.046%-0.046%
dec-26bbeab899464826ae579f0ea91b6deeMSTRUSDTG6_turnover+2.46%+2.45%+0.069%+0.069%
dec-eedb8e485e70841596db3e102471e08dMETAUSDTG6_turnover+2.54%+2.53%-0.000%+0.000%
dec-fee0c1a8b7b33425f7b5b3c9d7aabafcMETAUSDTG6_turnover+2.53%+2.46%-0.006%-0.006%
dec-250d69c67b6b0297120f7425926faeabMETAUSDTG1_venue_integrity+2.46%0 (flat)+0.012%-0.002%
dec-250d69c67b6b0297120f7425926faeabMSTRUSDTG6_turnover+2.49%+2.48%+0.050%+0.050%
dec-06484b7708ac3f24df2bbaf08b9c8f57HOODUSDTG6_turnover-2.49%-2.48%+0.029%+0.029%
dec-06484b7708ac3f24df2bbaf08b9c8f57MSTRUSDTG6_turnover-2.51%-2.47%+0.058%+0.058%
dec-e69542572a444cb30a4bd5ae3768e2b9COINUSDTG3_size-2.46%-2.45%+0.011%+0.011%
dec-e69542572a444cb30a4bd5ae3768e2b9METAUSDTG3_size-2.50%-1.36%-0.066%-0.036%
dec-e69542572a444cb30a4bd5ae3768e2b9MSTRUSDTG3_size-2.39%-2.39%-0.027%-0.027%
dec-e69542572a444cb30a4bd5ae3768e2b9TSLAUSDTG3_size-2.50%-1.36%-0.015%-0.008%
dec-97a8396f25be66348854855a26d540c5COINUSDTG6_turnover-2.45%-2.45%-0.003%-0.003%
dec-97a8396f25be66348854855a26d540c5HOODUSDTG6_turnover-2.45%-2.45%-0.022%-0.022%
dec-97a8396f25be66348854855a26d540c5TSLAUSDTG6_turnover-1.36%-1.36%-0.001%-0.001%
dec-b5f886c228317fe25bc64f720396d3ecMSTRUSDTG6_turnover-2.43%-2.43%-0.002%-0.002%
dec-313e6226c97986d8b0c432eb0bd3eba6COINUSDTG6_turnover-2.45%-2.45%+0.007%+0.007%
dec-353e35c89f8ca4125ebd5a63a6f48b67COINUSDTG6_turnover-2.46%-2.45%-0.040%-0.040%
dec-353e35c89f8ca4125ebd5a63a6f48b67HOODUSDTG6_turnover-2.53%-2.51%-0.021%-0.021%
dec-353e35c89f8ca4125ebd5a63a6f48b67MSTRUSDTG6_turnover-2.42%-2.41%-0.045%-0.044%
dec-353e35c89f8ca4125ebd5a63a6f48b67TSLAUSDTG6_turnover-1.36%-1.36%+0.017%+0.017%
dec-ad09214a9a86fb2df867396faed9742eHOODUSDTG9_grounding-2.52%-2.52%+0.077%+0.077%
dec-ad09214a9a86fb2df867396faed9742eMSTRUSDTG11_eligibility-2.46%-2.46%+0.011%+0.011%
dec-ad09214a9a86fb2df867396faed9742eTSLAUSDTG6_turnover-2.50%-1.35%+0.022%+0.012%
dec-0ee8fbd2b875f72b2a2dac8059d834e5COINUSDTG3_size-2.54%-2.49%+0.011%+0.010%
dec-0ee8fbd2b875f72b2a2dac8059d834e5HOODUSDTG3_size-2.59%-2.53%+0.055%+0.054%
dec-0ee8fbd2b875f72b2a2dac8059d834e5MSTRUSDTG3_size-2.52%-2.48%+0.029%+0.029%
dec-0ee8fbd2b875f72b2a2dac8059d834e5TSLAUSDTG6_turnover-1.35%-1.33%-0.018%-0.018%
dec-41b11d58489ade0685da58d1ac2c64bfHOODUSDTG6_turnover-2.48%-2.48%-0.008%-0.008%
dec-029d899af4799a52f4778cd7955de4f1HOODUSDTG6_turnover-2.49%-2.49%+0.023%+0.023%
dec-029d899af4799a52f4778cd7955de4f1MSTRUSDTG6_turnover-2.46%-2.46%+0.022%+0.022%
dec-7590cf802197ab4a695bafef528093e3COINUSDTG6_turnover-2.47%-2.47%-0.039%-0.039%
dec-7590cf802197ab4a695bafef528093e3HOODUSDTG6_turnover-2.48%-2.47%-0.007%-0.007%
dec-7590cf802197ab4a695bafef528093e3MSTRUSDTG6_turnover-2.44%-2.43%-0.070%-0.070%
dec-850ce791482e4fa58e249caf8b6dc0adCOINUSDTG10_breaker-2.42%-2.41%-0.040%-0.040%
dec-850ce791482e4fa58e249caf8b6dc0adHOODUSDTG10_breaker-2.42%-2.42%-0.018%-0.018%
dec-850ce791482e4fa58e249caf8b6dc0adMSTRUSDTG10_breaker-2.40%-2.39%-0.059%-0.059%
dec-ccb38174c7aa21ae84fd043484feec13COINUSDTG11_eligibility-2.45%-2.45%-0.033%-0.033%
dec-0fb687dafac56b9dfc14711079debe24COINUSDTG11_eligibility-2.48%-2.48%-0.000%-0.000%
dec-0fb687dafac56b9dfc14711079debe24HOODUSDTG11_eligibility-2.44%-2.44%-0.000%-0.000%
dec-0fb687dafac56b9dfc14711079debe24MSTRUSDTG11_eligibility-2.51%-2.50%-0.000%-0.000%
dec-a331ff608fb5a742c28cdaadefb16b28COINUSDTG11_eligibility-2.48%-2.48%+0.117%+0.117%
dec-a331ff608fb5a742c28cdaadefb16b28HOODUSDTG11_eligibility-2.44%-2.44%-0.038%-0.038%
dec-a331ff608fb5a742c28cdaadefb16b28MSTRUSDTG11_eligibility-2.51%-2.50%+0.066%+0.066%
dec-394d09c7bb3ef7851994c7b1314f31bfCOINUSDTG10_breaker-2.35%-2.35%-0.000%-0.000%
dec-394d09c7bb3ef7851994c7b1314f31bfHOODUSDTG10_breaker-2.45%-2.44%+0.030%+0.030%

Live mirror

The same book marked at Bitget's live prices beside the Demo marks, so a reader can see the Demo result is not a sandbox artefact.

-0.20%+0.00%+0.20%09-28 00:0009-30 12:1510-03 00:3010-05 12:4510-08 01:00book at the Demo marksame positions at live prices
  • book at the Demo mark
  • same positions at live prices

Largest hourly gap between the two: -8.5 bps. equity_live_mirror re-marks the open positions at live prices every hour and keeps the realised Demo P&L (book/marks.py); the mirror_live arm replays every fill on live prices (analysis/mirror.py)

armreturnmax DDhours
The same fills on live prices+0.131%-0.379%215
The legs the weekend freeze took away, on live+0.000%0.000%0

The weekend counterfactual holds, at live prices, exactly the equity legs the weekend-freeze guard took away while UTA Demo stops pricing them (Friday 20:00 to Monday 00:00 UTC): where S2's 7×24 theme shows up honestly on this venue.

Red team of the sentiment input

A sentiment agent reads text that attackers write. Published whatever the grade.

The red team has not been run for this export. It injects the HeyArka and AgentDojo attack strings and a coordinated pump into recorded snapshots and grades every arm against its clean decision (redteam/).

Bitget toolkit coverage

Every Bitget surface the agent touches: what it is used for, which judged line it serves, its last health (from the live probe or the ledger), and where it shows. Surfaces that were measured and are not used are listed with the reason.

surfaceusedused and OK nownot used, with reason
Agent Hub (bgc, pinned CLI)141314
Bitget public v3 market API752
bitget-signal (MCP)7018
bitget-mcp-server11157
GetAgent Playbook001
X (not Bitget)100
Reddit (not Bitget)100
upstream_direct110
Agent Hub (bgc, pinned CLI): 14 used, 14 not used
entryused for / judged linehealthvisible atnotes
order --action place --dry-run --paper-trading
the dry-run preview of every order: Agent Hub builds the exact request (wouldSend) with no network call, the preview is logged, and the order is sent only if it matches the approved intent
Agent architecture quality / the Track 2 execution layer the handbook names: Agent Hub with --paper-trading produces the paper-trading log (handbook:422, :444)
ok
2026-10-02 19:48 UTC
decision card: orders (dry-run payload, clientOid, venue orderId, fills)in the log: 95 dry-run preview(s) logged
order --action place --paper-trading
every order: market (taker) only, with a preset stop on every exposure-adding leg, reduce-only on every reducing leg, clientOid derived from the approved intent
Agent architecture quality / the Track 2 execution layer the handbook names: Agent Hub with --paper-trading produces the paper-trading log (handbook:422, :444)
ok
2026-10-02 19:48 UTC
decision card: orders (dry-run payload, clientOid, venue orderId, fills)in the log: 21 acknowledged, 74 rejected, 0 unknown
order --action detail --paper-trading
the order read back by clientOid (or orderId) until it is terminal; resolves an UNKNOWN send without ever resending it
Agent architecture quality / the Track 2 execution layer the handbook names: Agent Hub with --paper-trading produces the paper-trading log (handbook:422, :444)
ok
2026-10-02 19:48 UTC
decision card: orders (dry-run payload, clientOid, venue orderId, fills)in the log: 21 order state(s) read back from the venue
order --action fills --paper-trading
fills: execution price, quantity, fee and realised P&L as the venue reports them; the book is built from these alone
paper trading Sharpe, max drawdown, win rate: the hourly equity marks
ok
2026-10-02 19:48 UTC
decision card: orders (dry-run payload, clientOid, venue orderId, fills)in the log: 22 fill(s) read
order --action history --paper-trading
the daily full order history, so an order the agent did not see acknowledged is still found and reconciled
Agent architecture quality / the Track 2 execution layer the handbook names: Agent Hub with --paper-trading produces the paper-trading log (handbook:422, :444)
ok
2026-10-08 00:54 UTC
decision card: orders (dry-run payload, clientOid, venue orderId, fills)in the log: 784 reconciliation(s); latest found 0 discrepancy(ies)
position --action info --paper-trading
the venue's own positions, compared with the book built from fills; every difference is a logged discrepancy
risk control layer effectiveness: an input the kernel rules on
ok
2026-10-08 00:54 UTC
decision card: orders (dry-run payload, clientOid, venue orderId, fills)in the log: 784 reconciliation(s); latest found 0 discrepancy(ies)
strategy_order --action open --paper-trading
the venue's open stop orders (type tpsl), so every position has exactly one stop (G4)
risk control layer effectiveness: an input the kernel rules on
ok
2026-10-08 00:54 UTC
decision card: kernel ruling, per guardin the log: 784 reconciliation(s); latest found 0 discrepancy(ies)
strategy_order --action place --paper-trading
a full-position stop, triggered on the Demo mark, placed or replaced after a fill changes a position (G4: a stop on the venue survives a crashed agent)
risk control layer effectiveness: an input the kernel rules on
ok
2026-09-30 13:56 UTC
decision card: kernel ruling, per guardin the log: 8 stop(s) placed or replaced
strategy_order --action cancel --paper-trading
cancels an orphaned or superseded stop, only after its replacement is in place
risk control layer effectiveness: an input the kernel rules on
ok
2026-09-30 13:41 UTC
decision card: kernel ruling, per guardin the log: 9 stop(s) cancelled
account_overview --paper-trading
the Demo account in one read: the environment proof's Demo-positive check, the hold mode, the starting equity and the venue equity published beside the book's
hard safety rule: orders only ever reach Bitget's Demo environment (DESIGN.md §2, §11.2)
ok
2026-10-06 14:56 UTC
demo page: environment proofin the log: environment proof: Demo read ok=True (code 00000)
funds_records --action financial --paper-trading
funding payments the venue booked on the account, read every sweep and written as funding events, so the book's equity and each trade's net P&L carry them (run2-d6); whether Demo books funding at all is shown by whether any appear
paper trading Sharpe, max drawdown, win rate: the hourly equity marks
not measureddemo page: equity against every arm
raw --operationId getAccountAssets --paper-trading
the same account read as one operation, so a refusal keeps its error code: a 40099 here means the key is not a Demo key, and the agent exits
hard safety rule: orders only ever reach Bitget's Demo environment (DESIGN.md §2, §11.2)
ok
2026-10-06 14:56 UTC
demo page: environment proofin the log: environment proof: Demo read ok=True (code 00000)
raw --operationId getAccountAssets --read-only
the environment proof's live-negative read: the Demo key must be refused by the live environment. The only argv without --paper-trading, and --read-only makes bgc refuse any write before the network (agent-sdk safety.ts:90-95)
hard safety rule: orders only ever reach Bitget's Demo environment (DESIGN.md §2, §11.2)
ok
2026-10-06 14:56 UTC
demo page: environment proofin the log: environment proof: the live environment refused the Demo key=True (code 40099) (a refusal is the expected answer)
flag --paper-trading
routes every call to Bitget's Demo environment (sends paptrading: 1 on private calls, agent-sdk rest-client.ts:274-280); the argv builder appends it as a constant and the environment proof re-reads the installed SDK source to confirm it
hard safety rule: orders only ever reach Bitget's Demo environment (DESIGN.md §2, §11.2)
ok
2026-10-06 14:56 UTC
demo page: environment proofin the log: installed SDK sends paptrading: 1 = True

Not used (14), each with its reason

entryreasonmeasured
marketnot used: the same public v3 endpoints are read directly over HTTPS, keyless, with every raw response stored as a blob; a child process per read would add nothing the log needsnot measured
account_confignot used: the agent reads the hold mode (account_overview) and never changes account settings; sizing is by notional against equity, not by leveragenot measured
transfer_fundsnot used: a paper book moves no fundsnot measured
depositnot used: a paper book moves no fundsnot measured
withdrawnot used: a paper book moves no funds, and the Demo key is created without the Withdraw permission (DESIGN.md §21)not measured
repaymentnot used: no margin loan is takennot measured
subaccountnot used: one Demo account, no sub-accountsnot measured
brokernot used: not a broker integrationnot measured
loannot used: no loan is takennot measured
inst_loannot used: no loan is takennot measured
taxnot used: outside the trading loopnot measured
discovernot used: every argv is fixed in execution/bgc.py and checked against recorded dry-run output of the pinned 3.0.0 CLI; nothing is discovered at run timenot measured
bitget-agent-mcp (the same SDK over MCP)not used: the CLI's argv is logged verbatim beside each order and pinned by the lockfile; the MCP server drives the same SDK operations with nothing to add for an unattended loopnot measured
Agentic account (OAuth, bitget-agent-mcp)not used: Track 2 runs on a Demo API key; the Agentic account trades live funds (win plan §3.6, the owner's decision alone)not measured
Bitget public v3 market API: 7 used, 2 not used
entryused for / judged linehealthvisible atnotes
GET /api/v3/market/tickers (Demo, header paptrading: 1)
Demo last, mark, index, bid and ask: the venue the orders go to. Marks the book every hour, fills the simulated venue, and feeds the venue-integrity (G1), spread (G8) and staleness (G10) checks
risk control layer effectiveness: an input the kernel rules on
ok
2026-10-08 01:00 UTC
decision card: kernel ruling, per guardin the log: newest snapshot, 15 call(s): ok 15
GET /api/v3/market/tickers (live)
Live last, mark, funding and open interest: the real crowd's positioning (DESIGN.md §6.1), the Demo-live gap G1 checks, and the live price of every open position in the hourly mirror
decision explainability: shown to the model and on the decision card
ok
2026-10-08 01:00 UTC
decision card: positioning tablein the log: newest snapshot, 15 call(s): ok 15
GET /api/v3/market/instruments (Demo, header paptrading: 1)
Demo order limits and fees (minOrderQty, quantityMultiplier, priceMultiplier, minOrderAmount, maxMarketOrderQty, takerFeeRate): eligibility (G11), rounding, splits and the expected fee of every order
risk control layer effectiveness: an input the kernel rules on
not measureddecision card: orders (dry-run payload, clientOid, venue orderId, fills)
GET /api/v3/market/history-candles type=market interval=1H (live)
Live hourly closes: the overheating feature (distance from the 20-bar mean in ATR units) and the prices the live mirror and the weekend counterfactual are marked at
decision explainability: shown to the model and on the decision card
ok
2026-10-08 01:00 UTC
demo page: live-marked mirrorin the log: newest snapshot, 28 call(s): ok 28
GET /api/v3/market/history-candles type=index interval=1H (Demo, header paptrading: 1)
Demo index closes: the stale-index detector that refuses new exposure when the Demo index stops moving while its session should be open (G1)
risk control layer effectiveness: an input the kernel rules on
ok
2026-10-08 01:00 UTC
decision card: kernel ruling, per guardin the log: newest snapshot, 28 call(s): ok 28
GET /api/v3/market/history-candles type=mark interval=1H (Demo, header paptrading: 1)
Demo hourly marks: the prices the twin, the fixed-rule baselines and the rival arms are simulated and marked at, so every arm is read on the book's own venue
paper trading Sharpe, max drawdown, win rate: the hourly equity marks
not measureddemo page: equity against every arm
GET /api/v3/market/history-fund-rate (live)
Live funding history: the funding z-score over the last 90 settlements, shown to the model and the funding event trigger
decision explainability: shown to the model and on the decision card
ok
2026-10-08 01:00 UTC
decision card: positioning tablein the log: newest snapshot, 28 call(s): ok 28

Not used (2), each with its reason

entryreasonmeasured
GET /api/v3/market/instruments (live)not used: orders go to Demo, so Demo's limits and fees are the ones that bind; the live limits were measured once for the design (validation/demo_venue/universe_probe.json)not measured
GET /api/v3/market/history-fund-rate (Demo, header paptrading: 1)not used: Demo funding is a sandbox setting, not a crowd: SBTCSPERP fixed at -0.10% on 270 of 270 settlements and BTCPERP at the +30 bps cap (DESIGN.md §6.1)not measured
bitget-signal (MCP): 7 used, 18 not used
entryused for / judged linehealthvisible atnotes
sentiment_index.current
crypto Fear & Greed from the second service: agreement check, stand-in for the primary
decision explainability: the value is shown to the model and on the decision card
hollow
2026-10-08 01:00 UTC
decision card: mood and source agreementSkill: sentiment-analyst; 1 call(s): hollow 1; not ok: -=hollow; e.g. upstream error envelope {"alt_me_error": ""}; in the log: newest snapshot, 1 call(s): hollow 1; not ok: -=hollow; e.g. upstream error envelope {"alt_me_error": ""}
derivatives_sentiment.long_short
retail long/short when bitget-mcp-server has none
Agent architecture quality: the Track 2 perception layer the handbook names (bitget-signal + bitget-mcp-server)
hollow
2026-10-08 01:00 UTC
toolkit coverage matrixSkill: sentiment-analyst (also market-intel, news-briefing); 14 call(s): hollow 14; not ok: BTCUSDT=hollow, SP500USDT=hollow, NDX100USDT=hollow, MSTRUSDT=hollow, HOODUSDT=hollow, CRCLUSDT=hollow, SNDKUSDT=hollow, COINUSDT=hollow, TSLAUSDT=hollow, GOOGLUSDT=ho…
derivatives_sentiment.top_ls
top-trader long/short when bitget-mcp-server has none
Agent architecture quality: the Track 2 perception layer the handbook names (bitget-signal + bitget-mcp-server)
hollow
2026-10-08 01:00 UTC
toolkit coverage matrixSkill: sentiment-analyst (also market-intel, news-briefing); 14 call(s): hollow 14; not ok: BTCUSDT=hollow, SP500USDT=hollow, NDX100USDT=hollow, MSTRUSDT=hollow, HOODUSDT=hollow, CRCLUSDT=hollow, SNDKUSDT=hollow, COINUSDT=hollow, TSLAUSDT=hollow, GOOGLUSDT=ho…
derivatives_sentiment.taker_ratio
taker ratio when bitget-mcp-server has none
Agent architecture quality: the Track 2 perception layer the handbook names (bitget-signal + bitget-mcp-server)
hollow
2026-10-08 01:00 UTC
toolkit coverage matrixSkill: sentiment-analyst (also market-intel, news-briefing); 14 call(s): hollow 14; not ok: BTCUSDT=hollow, SP500USDT=hollow, NDX100USDT=hollow, MSTRUSDT=hollow, HOODUSDT=hollow, CRCLUSDT=hollow, SNDKUSDT=hollow, COINUSDT=hollow, TSLAUSDT=hollow, GOOGLUSDT=ho…
derivatives_sentiment.open_interest
open-interest series when bitget-mcp-server has none (taken whole, never spliced)
Agent architecture quality: the Track 2 perception layer the handbook names (bitget-signal + bitget-mcp-server)
hollow
2026-10-08 01:00 UTC
toolkit coverage matrixSkill: sentiment-analyst (also market-intel, news-briefing); 14 call(s): hollow 14; not ok: BTCUSDT=hollow, SP500USDT=hollow, NDX100USDT=hollow, MSTRUSDT=hollow, HOODUSDT=hollow, CRCLUSDT=hollow, SNDKUSDT=hollow, COINUSDT=hollow, TSLAUSDT=hollow, GOOGLUSDT=ho…
derivatives_sentiment.reddit_trending
Reddit attention ranking (crypto and stocks), screened as crowd text
decision explainability: the value is shown to the model and on the decision card
hollow
2026-10-07 15:03 UTC
decision card: text shown to the modelSkill: sentiment-analyst (also market-intel, news-briefing); 2 call(s): hollow 2; not ok: all-crypto=hollow, all-stocks=hollow; e.g. upstream error envelope {"error": ""}
news_feed.latest
news headlines, screened as crowd text
decision explainability: the value is shown to the model and on the decision card
hollow
2026-10-07 15:03 UTC
decision card: text shown to the modelSkill: news-briefing (also market-intel); 1 call(s): hollow 1; not ok: -=hollow; e.g. answered with a hollow payload (every value empty, zero or an error)

Not used (18), each with its reason

entryreasonmeasured
technical_analysis.rsinot used: indicators are computed from Bitget's own candles (ARGUS measured this tool's MACD signal and histogram fields swapped); Skill: technical-analysis; not used: indicators are computed from Bitget's own candles (ARGUS measured this tool's MACD signal and histogram fields swapped); measured ok (1 rows)ok
crypto_market.globalnot used: prices come from Bitget's own public v3 API, the venue orders go to; Skill: market-intel; not used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: tool reported an error: Error executing tool crypto_market: ConnectTimeout('')error
crypto_price.pricenot used: prices come from Bitget's own public v3 API, the venue orders go to; Skill: none of the five names this tool; not used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: tool reported an error: Error executing tool crypto_price: ConnectTimeout('')error
crypto_derivatives.ticker_24hnot used: prices come from Bitget's own public v3 API, the venue orders go to; Skill: none of the five names this tool; not used: prices come from Bitget's own public v3 API, the venue orders go to; measured ok (1 rows)ok
global_assets.pricenot used: prices come from Bitget's own public v3 API, the venue orders go to; Skill: macro-analyst; not used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: tool reported an error: Error executing tool global_assets:error
macro_indicators.latest_releasenot used: not a pre-registered input of policy v1; Skill: macro-analyst; not used: not a pre-registered input of policy v1; measured hollow: upstream error envelope {"error": ""}hollow
rates_yields.yield_curvenot used: not a pre-registered input of policy v1; Skill: macro-analyst; not used: not a pre-registered input of policy v1; measured hollow: answered with a hollow payload (every value empty, zero or an error)hollow
cross_asset.correlationnot used: not a pre-registered input of policy v1; Skill: macro-analyst; not used: not a pre-registered input of policy v1; measured error: tool reported an error: Error executing tool cross_asset:error
tradfi_news.earningsnot used: its description says it needs a Finnhub key; earnings come from bitget-mcp-server; Skill: news-briefing, macro-analyst; not used: its description says it needs a Finnhub key; earnings come from bitget-mcp-server; measured hollow: upstream error envelope {"error": ""}hollow
social_trending.trendingnot used: Chinese hot lists name no universe instrument reliably; Skill: news-briefing; not used: Chinese hot lists name no universe instrument reliably; measured hollow: answered with a hollow payload (every value empty, zero or an error)hollow
defi_analytics.tvl_ranknot used: no DeFi instrument traded; Skill: market-intel; not used: no DeFi instrument traded; measured hollow: answered with a hollow payload (every value empty, zero or an error)hollow
dex_market.trendingnot used: no DEX instrument traded; Skill: market-intel; not used: no DEX instrument traded; measured hollow: answered with a hollow payload (every value empty, zero or an error)hollow
network_status.btc_feesnot used: not a pre-registered input of policy v1; Skill: market-intel; not used: not a pre-registered input of policy v1; measured hollow: answered with a hollow payload (every value empty, zero or an error)hollow
global_data.forexnot used: not a pre-registered input of policy v1; Skill: macro-analyst; not used: not a pre-registered input of policy v1; measured hollow: answered with a hollow payload (every value empty, zero or an error)hollow
cn_market.indexnot used: no China-listed instrument; Skill: macro-analyst; not used: no China-listed instrument; measured timeout: bitget-signal: reply from https://datahub.noxiaohao.com/mcp did not finish within 45stimeout
backtest.chartnot used: a live paper run does not backtest; Skill: technical-analysis; not used: a live paper run does not backtest; measured error: the server refused the call: {"error": "metrics_json is required for chart action"}error
sentiment_index.historynot used: the current value is read each snapshot and logged, which is its history; Skill: sentiment-analyst; not used: the current value is read each snapshot and logged, which is its history; measured hollow: upstream error envelope {"error": ""}hollow
derivatives_sentiment.top_positionnot used: bitget-mcp-server's top-position entry is read instead; Skill: sentiment-analyst (also market-intel, news-briefing); not used: bitget-mcp-server's top-position entry is read instead; measured hollow: upstream error envelope {"error": ""}hollow
bitget-mcp-server: 11 used, 57 not used
entryused for / judged linehealthvisible atnotes
do_query:crypto_sentiment_crypto_fear_greed
crypto Fear & Greed (primary)
decision explainability: an event trigger fires on it and says why
error
2026-10-08 01:00 UTC
decision card: mood and source agreement1 call(s): error 1; not ok: -=error; e.g. service reported failure (status 503): the upstream answered with an HTML error page; in the log: newest snapshot, 1 call(s): error 1; not ok: -=error; e.g. service reported failure (status 503): the upstream answered…
do_query:sentiment_market_fear_greed
equity-market Fear & Greed
decision explainability: an event trigger fires on it and says why
error
2026-10-08 01:00 UTC
decision card: mood and source agreement1 call(s): error 1; not ok: -=error; e.g. service reported failure (status 503): the upstream answered with an HTML error page; in the log: newest snapshot, 1 call(s): error 1; not ok: -=error; e.g. service reported failure (status 503): the upstream answered…
do_query:crypto_futures_long_short_ratio
retail long/short account ratio (Binance futures crowd)
decision explainability: the value is shown to the model and on the decision card
error
2026-10-08 01:00 UTC
decision card: positioning table14 call(s): error 14; not ok: BTCUSDT=error, SP500USDT=error, NDX100USDT=error, MSTRUSDT=error, HOODUSDT=error, CRCLUSDT=error, SNDKUSDT=error, COINUSDT=error, TSLAUSDT=error, GOOGLUSDT=error, METAUSDT=error, NVDAUSDT=error, AMZNUSDT=error, AAPLUSDT=error; e.…
do_query:crypto_futures_long_short_top_account_ratio
top-trader long/short account ratio
decision explainability: the value is shown to the model and on the decision card
error
2026-10-08 01:00 UTC
decision card: positioning table14 call(s): error 14; not ok: BTCUSDT=error, SP500USDT=error, NDX100USDT=error, MSTRUSDT=error, HOODUSDT=error, CRCLUSDT=error, SNDKUSDT=error, COINUSDT=error, TSLAUSDT=error, GOOGLUSDT=error, METAUSDT=error, NVDAUSDT=error, AMZNUSDT=error, AAPLUSDT=error; e.…
do_query:crypto_futures_long_short_top_position_ratio
top-trader long/short position ratio
decision explainability: the value is shown to the model and on the decision card
error
2026-10-08 01:00 UTC
decision card: positioning table14 call(s): error 14; not ok: BTCUSDT=error, SP500USDT=error, NDX100USDT=error, MSTRUSDT=error, HOODUSDT=error, CRCLUSDT=error, SNDKUSDT=error, COINUSDT=error, TSLAUSDT=error, GOOGLUSDT=error, METAUSDT=error, NVDAUSDT=error, AMZNUSDT=error, AAPLUSDT=error; e.…
do_query:crypto_futures_taker_volume
taker buy/sell volume ratio
decision explainability: the value is shown to the model and on the decision card
error
2026-10-08 01:00 UTC
decision card: positioning table14 call(s): error 14; not ok: BTCUSDT=error, SP500USDT=error, NDX100USDT=error, MSTRUSDT=error, HOODUSDT=error, CRCLUSDT=error, SNDKUSDT=error, COINUSDT=error, TSLAUSDT=error, GOOGLUSDT=error, METAUSDT=error, NVDAUSDT=error, AMZNUSDT=error, AAPLUSDT=error; e.…
do_query:crypto_futures_open_interest_history
hourly open-interest history: 1h and 24h change, the jump trigger
decision explainability: an event trigger fires on it and says why
error
2026-10-08 01:00 UTC
decision card: positioning table14 call(s): error 14; not ok: BTCUSDT=error, SP500USDT=error, NDX100USDT=error, MSTRUSDT=error, HOODUSDT=error, CRCLUSDT=error, SNDKUSDT=error, COINUSDT=error, TSLAUSDT=error, GOOGLUSDT=error, METAUSDT=error, NVDAUSDT=error, AMZNUSDT=error, AAPLUSDT=error; e.…
do_query:crypto_futures_funding_rate
Binance funding rate (reported in percent, converted to a fraction)
decision explainability: the value is shown to the model and on the decision card
error
2026-10-08 01:00 UTC
decision card: positioning table14 call(s): error 14; not ok: BTCUSDT=error, SP500USDT=error, NDX100USDT=error, MSTRUSDT=error, HOODUSDT=error, CRCLUSDT=error, SNDKUSDT=error, COINUSDT=error, TSLAUSDT=error, GOOGLUSDT=error, METAUSDT=error, NVDAUSDT=error, AMZNUSDT=error, AAPLUSDT=error; e.…
do_query:equity_calendar
earnings dates of the eleven underlying stocks (vendor date offset corrected)
decision explainability: an event trigger fires on it and says why
error
2026-10-07 15:03 UTC
decision card: calendar11 call(s): error 11; not ok: MSTR=error, HOOD=error, CRCL=error, SNDK=error, COIN=error, TSLA=error, GOOGL=error, META=error, NVDA=error, AMZN=error, AAPL=error; e.g. service reported failure (status 503): the upstream answered with an HTML error page
do_query:equity_ownership_insider_trading
insider (Form 4) filings of the eleven underlying stocks
decision explainability: an event trigger fires on it and says why
error
2026-10-07 15:03 UTC
decision card: calendar11 call(s): error 11; not ok: MSTR=error, HOOD=error, CRCL=error, SNDK=error, COIN=error, TSLA=error, GOOGL=error, META=error, NVDA=error, AMZN=error, AAPL=error; e.g. service reported failure (status 503): the upstream answered with an HTML error page
guide
the catalog of every bitget-mcp-server entry, read by the toolkit probe so every entry the agent does not read is measured and listed with its reason
Agent architecture quality: the Track 2 perception layer the handbook names (bitget-signal + bitget-mcp-server, handbook:396)
ok
2026-10-07 15:03 UTC
demo page: toolkit coverage matrix67 entries: crypto 39, equity 22, etf 3, news 1, sentiment 2

Not used (57), each with its reason

entryreasonmeasured
do_query:crypto_marketnot used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_coin_infonot used: reference data, not sentiment; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_spot_klinenot used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_spot_tickernot used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_spot_order_booknot used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_spot_tradesnot used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_spot_taker_volumenot used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_spot_big_tradesnot used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_futures_mark_pricenot used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_futures_klinenot used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_futures_tickernot used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_futures_order_booknot used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_futures_tradesnot used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_futures_open_interestnot used: the hourly history entry carries the same value; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_futures_liquidationsnot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_futures_big_tradesnot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_onchain_fund_flownot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_onchain_trading_signalnot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_onchain_exchange_flowsnot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_onchain_stablecoin_flownot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_onchain_token_unlock_eventnot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_institutional_company_flownot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_etf_flowsnot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_institutional_mining_company_flownot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_institutional_country_flownot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_indicators_technical_indicatorsnot used: not a pre-registered input of policy v1; measured error: service reported failure (status None): Missing required param: 'symbols'error
do_query:crypto_hyperliquid_position_distribution_by_balance_tagnot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_hyperliquid_position_distribution_by_pnl_tagnot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_hyperliquid_position_distribution_by_position_tagnot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_indicators_hyperliquid_whale_sentimentnot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_hyperliquid_whale_alertnot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_spot_big_trades_windownot used: prices come from Bitget's own public v3 API, the venue orders go to; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:crypto_futures_big_trades_windownot used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_price_quotenot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_price_historicalnot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_profilenot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_fundamental_managementnot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_fundamental_balancenot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_fundamental_incomenot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_fundamental_cashnot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_fundamental_metricsnot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_fundamental_ratiosnot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_fundamental_dividendsnot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_ownership_major_holdersnot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_ownership_form_13fnot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_ownership_inst_position_detailnot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_ownership_inst_position_summarynot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_estimates_price_targetnot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_estimates_forward_penot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_estimates_forward_epsnot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_estimates_forward_ebitdanot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_estimates_forward_salesnot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:equity_estimates_consensusnot used: fundamentals, estimates and holdings; the agent's horizon is hours; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:etf_infonot used: no ETF is traded; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:etf_holdingsnot used: no ETF is traded; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:etf_price_performancenot used: no ETF is traded; measured error: service reported failure (status 503): the upstream answered with an HTML error pageerror
do_query:news_label_searchnot used: needs an integer label the catalog does not define; measured error: service reported failure (status None): Missing required param: 'label'error
GetAgent Playbook: 0 used, 1 not used
entryused for / judged linehealthvisible atnotes
none

Not used (1), each with its reason

entryreasonmeasured
Playbook replica (runtime_profile llm_bounded, official_evidence_kind paper)not used: conditional (DESIGN.md M17): it needs llm_bounded enabled on the owner's GetAgent account and a Playbook key; until then no Playbook runs and none is claimednot measured
X (not Bitget): 1 used, 0 not used
entryused for / judged linehealthvisible atnotes
twitter-cli search <cashtag> --type Latest --exclude retweets
posts naming each universe instrument, screened by quarantine and clustered for coordination before the model sees them; an optional layer (positioning is the backbone, win plan §3.2)
decision explainability: shown to the model and on the decision card
not measureddecision card: text shown to the modelnot Bitget: listed because it feeds the same decision
Reddit (not Bitget): 1 used, 0 not used
entryused for / judged linehealthvisible atnotes
rdt-cli search <alias> --sort new --json
Reddit posts naming each universe instrument, screened and clustered like X; one account is one source however many subreddits it posts in
decision explainability: shown to the model and on the decision card
not measureddecision card: text shown to the modelnot Bitget: listed because it feeds the same decision
upstream_direct: 1 used, 0 not used
entryused for / judged linehealthvisible atnotes
Binance futures/data/* and fapi/v1/fundingRate; alternative.me fng; publishers' RSS
the sources bitget-mcp-server and bitget-signal wrap, read directly only for a reading both services left empty (run2-d3), so a Bitget outage does not blind the positioning and Fear & Greed triggers
Agent architecture quality: the Track 2 perception layer the handbook names (bitget-signal + bitget-mcp-server, handbook:396)
ok
2026-10-08 01:00 UTC
decision card: positioning tablenot Bitget: the upstream a Bitget service names, counted apart from it; in the log: newest snapshot, 7 call(s): ok 7

Feed health

Every source the agent reads that is failing now (an error, a timeout or a hollow answer), since when, and every trigger kind a snapshot could not evaluate, with the cause. A failing source degrades a snapshot and never stops the agent; here it is visible instead of silent.

As of
2026-10-08 00:03 UTC (light snapshot)
Failing now
17
Alarms raised / cleared
318 / 301
Reports logged
85

Failing sources

sourcehealthfailing sincesnapshotslast error
derivatives_sentiment.long_shorthollow2026-09-28 00:07 UTC873upstream error envelope {"error": ""}
derivatives_sentiment.open_interesthollow2026-09-28 00:07 UTC875upstream error envelope {"error": ""}
derivatives_sentiment.reddit_trendinghollow2026-09-28 01:22 UTC502 of 2 calls failed; first: upstream error envelope {"error": ""}
derivatives_sentiment.taker_ratiohollow2026-09-28 00:07 UTC875upstream error envelope {"error": ""}
derivatives_sentiment.top_lshollow2026-09-28 00:07 UTC873upstream error envelope {"error": ""}
do_query:crypto_futures_funding_rateerror2026-10-03 07:36 UTC806service reported failure (status 503): the upstream answered with an HTML error page
do_query:crypto_futures_long_short_ratioerror2026-10-03 07:36 UTC806service reported failure (status 503): the upstream answered with an HTML error page
do_query:crypto_futures_long_short_top_account_ratioerror2026-10-03 07:36 UTC806service reported failure (status 503): the upstream answered with an HTML error page
do_query:crypto_futures_long_short_top_position_ratioerror2026-10-03 07:36 UTC806service reported failure (status 503): the upstream answered with an HTML error page
do_query:crypto_futures_open_interest_historyerror2026-10-03 07:36 UTC806service reported failure (status 503): the upstream answered with an HTML error page
do_query:crypto_futures_taker_volumeerror2026-10-03 07:36 UTC806service reported failure (status 503): the upstream answered with an HTML error page
do_query:crypto_sentiment_crypto_fear_greederror2026-10-03 07:36 UTC806service reported failure (status 503): the upstream answered with an HTML error page
do_query:equity_calendarerror2026-10-03 08:00 UTC1011 of 11 calls failed; first: service reported failure (status 503): the upstream answered with an HTML error page
do_query:equity_ownership_insider_tradingerror2026-10-03 08:00 UTC1011 of 11 calls failed; first: service reported failure (status 503): the upstream answered with an HTML error page
do_query:sentiment_market_fear_greederror2026-10-03 07:36 UTC806service reported failure (status 503): the upstream answered with an HTML error page
news_feed.latesthollow2026-09-28 01:22 UTC50answered with a hollow payload (every value empty, zero or an error)
sentiment_index.currenthollow2026-09-28 00:07 UTC2244upstream error envelope {"alt_me_error": ""}

Trigger kinds that could not fire

trigger kindinstrumentscausewhy
fear greed extremeSP500USDT, NDX100USDT, MSTRUSDT, HOODUSDT, CRCLUSDT, SNDKUSDT, COINUSDT, TSLAUSDT, GOOGLUSDT, METAUSDT, NVDAUSDT, AMZNUSDT, AAPLUSDTa source failedequity-market F&G unread: failing source(s) do_query:sentiment_market_fear_greed
open interest jumpBTCUSDTno frozen thresholdno open-interest threshold was frozen at genesis for this instrument
coordinated clusterallnot read on light snapshotsnot read on a light snapshot: crowd text and the calendar are read on full snapshots, and this kind is evaluated on every full snapshot (DESIGN.md §7)
earnings eventallnot read on light snapshotsnot read on a light snapshot: crowd text and the calendar are read on full snapshots, and this kind is evaluated on every full snapshot (DESIGN.md §7)
filing eventallnot read on light snapshotsnot read on a light snapshot: crowd text and the calendar are read on full snapshots, and this kind is evaluated on every full snapshot (DESIGN.md §7)
Alarm history (58)
seqatraisedcleared
48052026-10-07 00:05 UTC—rdt-cli:search:HOODUSDT
47332026-10-06 19:26 UTC—history-fund-rate.live:METAUSDT, public_v3.history_fund_rate[live]:METAUSDT
47312026-10-06 19:21 UTChistory-fund-rate.live:METAUSDT, public_v3.history_fund_rate[live]:METAUSDT—
46702026-10-06 16:00 UTCrdt-cli:search:HOODUSDTupstream:alternative_me.fng
46682026-10-06 15:52 UTCupstream:alternative_me.fng—
45852026-10-05 08:02 UTC—rdt-cli:search:HOODUSDT, twitter-cli:search:COINUSDT, twitter-cli:search:TSLAUSDT
45642026-10-05 06:35 UTC—history-candles.demo:BTCUSDT:index:1H, history-candles.demo:MSTRUSDT:index:1H, history-candles.demo:NDX100USDT:index:1H, history-candles.demo:SP500USDT:index:1H, history-candles.live:BTCUSDT:market:1H, history-candles.live:MSTRUSDT:market:1H, history-candles.live:NDX100USDT:market:1H, history-candles.live:SP500USDT:market:1H, history-fund-rate.live:BTCUSDT, history-fund-rate.live:MSTRUSDT, history-fund-rate.live:NDX100USDT, history-fund-rate.live:SP500USDT, public_v3.history_candles[demo,index,1H]:BTCUSDT, public_v3.history_candles[demo,index,1H]:MSTRUSDT, public_v3.history_candles[demo,index,1H]:NDX100USDT, public_v3.history_candles[demo,index,1H]:SP500USDT, public_v3.history_candles[live,market,1H]:BTCUSDT, public_v3.history_candles[live,market,1H]:MSTRUSDT, public_v3.history_candles[live,market,1H]:NDX100USDT, public_v3.history_candles[live,market,1H]:SP500USDT, public_v3.history_fund_rate[live]:BTCUSDT, public_v3.history_fund_rate[live]:MSTRUSDT, public_v3.history_fund_rate[live]:NDX100USDT, public_v3.history_fund_rate[live]:SP500USDT, public_v3.tickers[demo], public_v3.tickers[live], tickers.demo:AAPLUSDT, tickers.demo:AMZNUSDT, tickers.demo:BTCUSDT, tickers.demo:COINUSDT, tickers.demo:CRCLUSDT, tickers.demo:GOOGLUSDT, tickers.demo:HOODUSDT, tickers.demo:METAUSDT, tickers.demo:MSTRUSDT, tickers.demo:NDX100USDT, tickers.demo:NVDAUSDT, tickers.demo:SNDKUSDT, tickers.demo:SP500USDT, tickers.demo:TSLAUSDT, tickers.live:AAPLUSDT, tickers.live:AMZNUSDT, tickers.live:BTCUSDT, tickers.live:COINUSDT, tickers.live:CRCLUSDT, tickers.live:GOOGLUSDT, tickers.live:HOODUSDT, tickers.live:METAUSDT, tickers.live:MSTRUSDT, tickers.live:NDX100USDT, tickers.live:NVDAUSDT, tickers.live:SNDKUSDT, tickers.live:SP500USDT, tickers.live:TSLAUSDT, upstream:binance.fundingRate, upstream:binance.globalLongShortAccountRatio, upstream:binance.openInterestHist, upstream:binance.takerlongshortRatio, upstream:binance.topLongShortAccountRatio, upstream:binance.topLongShortPositionRatio
45622026-10-05 06:29 UTChistory-candles.demo:BTCUSDT:index:1H, history-candles.demo:MSTRUSDT:index:1H, history-candles.demo:NDX100USDT:index:1H, history-candles.demo:SP500USDT:index:1H, history-candles.live:BTCUSDT:market:1H, history-candles.live:MSTRUSDT:market:1H, history-candles.live:NDX100USDT:market:1H, history-candles.live:SP500USDT:market:1H, history-fund-rate.live:BTCUSDT, history-fund-rate.live:MSTRUSDT, history-fund-rate.live:NDX100USDT, history-fund-rate.live:SP500USDT, public_v3.history_candles[demo,index,1H]:BTCUSDT, public_v3.history_candles[demo,index,1H]:MSTRUSDT, public_v3.history_candles[demo,index,1H]:NDX100USDT, public_v3.history_candles[demo,index,1H]:SP500USDT, public_v3.history_candles[live,market,1H]:BTCUSDT, public_v3.history_candles[live,market,1H]:MSTRUSDT, public_v3.history_candles[live,market,1H]:NDX100USDT, public_v3.history_candles[live,market,1H]:SP500USDT, public_v3.history_fund_rate[live]:BTCUSDT, public_v3.history_fund_rate[live]:MSTRUSDT, public_v3.history_fund_rate[live]:NDX100USDT, public_v3.history_fund_rate[live]:SP500USDT, public_v3.tickers[demo], public_v3.tickers[live], tickers.demo:AAPLUSDT, tickers.demo:AMZNUSDT, tickers.demo:BTCUSDT, tickers.demo:COINUSDT, tickers.demo:CRCLUSDT, tickers.demo:GOOGLUSDT, tickers.demo:HOODUSDT, tickers.demo:METAUSDT, tickers.demo:MSTRUSDT, tickers.demo:NDX100USDT, tickers.demo:NVDAUSDT, tickers.demo:SNDKUSDT, tickers.demo:SP500USDT, tickers.demo:TSLAUSDT, tickers.live:AAPLUSDT, tickers.live:AMZNUSDT, tickers.live:BTCUSDT, tickers.live:COINUSDT, tickers.live:CRCLUSDT, tickers.live:GOOGLUSDT, tickers.live:HOODUSDT, tickers.live:METAUSDT, tickers.live:MSTRUSDT, tickers.live:NDX100USDT, tickers.live:NVDAUSDT, tickers.live:SNDKUSDT, tickers.live:SP500USDT, tickers.live:TSLAUSDT, upstream:binance.fundingRate, upstream:binance.globalLongShortAccountRatio, upstream:binance.openInterestHist, upstream:binance.takerlongshortRatio, upstream:binance.topLongShortAccountRatio, upstream:binance.topLongShortPositionRatio—
45322026-10-05 04:41 UTC—upstream:alternative_me.fng, upstream:binance.fundingRate, upstream:binance.globalLongShortAccountRatio, upstream:binance.openInterestHist, upstream:binance.takerlongshortRatio, upstream:binance.topLongShortAccountRatio, upstream:binance.topLongShortPositionRatio
45282026-10-05 04:36 UTCupstream:alternative_me.fng, upstream:binance.fundingRate, upstream:binance.globalLongShortAccountRatio, upstream:binance.openInterestHist, upstream:binance.takerlongshortRatio, upstream:binance.topLongShortAccountRatio, upstream:binance.topLongShortPositionRatio—
44522026-10-05 00:02 UTCrdt-cli:search:HOODUSDT, twitter-cli:search:COINUSDT, twitter-cli:search:TSLAUSDT—
44332026-10-04 22:52 UTC—history-candles.live:BTCUSDT:market:1H, history-fund-rate.live:BTCUSDT, public_v3.history_candles[live,market,1H]:BTCUSDT, public_v3.history_fund_rate[live]:BTCUSDT, public_v3.tickers[demo], public_v3.tickers[live], tickers.demo:AAPLUSDT, tickers.demo:AMZNUSDT, tickers.demo:BTCUSDT, tickers.demo:COINUSDT, tickers.demo:CRCLUSDT, tickers.demo:GOOGLUSDT, tickers.demo:HOODUSDT, tickers.demo:METAUSDT, tickers.demo:MSTRUSDT, tickers.demo:NDX100USDT, tickers.demo:NVDAUSDT, tickers.demo:SNDKUSDT, tickers.demo:SP500USDT, tickers.demo:TSLAUSDT, tickers.live:AAPLUSDT, tickers.live:AMZNUSDT, tickers.live:BTCUSDT, tickers.live:COINUSDT, tickers.live:CRCLUSDT, tickers.live:GOOGLUSDT, tickers.live:HOODUSDT, tickers.live:METAUSDT, tickers.live:MSTRUSDT, tickers.live:NDX100USDT, tickers.live:NVDAUSDT, tickers.live:SNDKUSDT, tickers.live:SP500USDT, tickers.live:TSLAUSDT
44312026-10-04 22:44 UTChistory-candles.live:BTCUSDT:market:1H, history-fund-rate.live:BTCUSDT, public_v3.history_candles[live,market,1H]:BTCUSDT, public_v3.history_fund_rate[live]:BTCUSDT, public_v3.tickers[demo], public_v3.tickers[live], tickers.demo:AAPLUSDT, tickers.demo:AMZNUSDT, tickers.demo:BTCUSDT, tickers.demo:COINUSDT, tickers.demo:CRCLUSDT, tickers.demo:GOOGLUSDT, tickers.demo:HOODUSDT, tickers.demo:METAUSDT, tickers.demo:MSTRUSDT, tickers.demo:NDX100USDT, tickers.demo:NVDAUSDT, tickers.demo:SNDKUSDT, tickers.demo:SP500USDT, tickers.demo:TSLAUSDT, tickers.live:AAPLUSDT, tickers.live:AMZNUSDT, tickers.live:BTCUSDT, tickers.live:COINUSDT, tickers.live:CRCLUSDT, tickers.live:GOOGLUSDT, tickers.live:HOODUSDT, tickers.live:METAUSDT, tickers.live:MSTRUSDT, tickers.live:NDX100USDT, tickers.live:NVDAUSDT, tickers.live:SNDKUSDT, tickers.live:SP500USDT, tickers.live:TSLAUSDThistory-candles.demo:AAPLUSDT:index:1H, history-candles.live:AAPLUSDT:market:1H, history-fund-rate.live:AAPLUSDT, public_v3.history_candles[demo,index,1H]:AAPLUSDT, public_v3.history_candles[live,market,1H]:AAPLUSDT, public_v3.history_fund_rate[live]:AAPLUSDT, upstream:alternative_me.fng
44292026-10-04 22:37 UTChistory-candles.demo:AAPLUSDT:index:1H, history-candles.live:AAPLUSDT:market:1H, history-fund-rate.live:AAPLUSDT, public_v3.history_candles[demo,index,1H]:AAPLUSDT, public_v3.history_candles[live,market,1H]:AAPLUSDT, public_v3.history_fund_rate[live]:AAPLUSDT, upstream:alternative_me.fng—
43252026-10-04 16:00 UTC—rdt-cli:search:CRCLUSDT, rdt-cli:search:HOODUSDT, twitter-cli:search:BTCUSDT
41932026-10-04 08:01 UTCtwitter-cli:search:BTCUSDT—
40242026-10-03 21:44 UTC—history-candles.demo:BTCUSDT:index:1H, history-candles.demo:SP500USDT:index:1H, history-candles.live:BTCUSDT:market:1H, history-candles.live:SP500USDT:market:1H, history-fund-rate.live:BTCUSDT, history-fund-rate.live:NDX100USDT, history-fund-rate.live:SP500USDT, public_v3.history_candles[demo,index,1H]:BTCUSDT, public_v3.history_candles[demo,index,1H]:SP500USDT, public_v3.history_candles[live,market,1H]:BTCUSDT, public_v3.history_candles[live,market,1H]:SP500USDT, public_v3.history_fund_rate[live]:BTCUSDT, public_v3.history_fund_rate[live]:NDX100USDT, public_v3.history_fund_rate[live]:SP500USDT, public_v3.tickers[demo], public_v3.tickers[live], tickers.demo:AAPLUSDT, tickers.demo:AMZNUSDT, tickers.demo:BTCUSDT, tickers.demo:COINUSDT, tickers.demo:CRCLUSDT, tickers.demo:GOOGLUSDT, tickers.demo:HOODUSDT, tickers.demo:METAUSDT, tickers.demo:MSTRUSDT, tickers.demo:NDX100USDT, tickers.demo:NVDAUSDT, tickers.demo:SNDKUSDT, tickers.demo:SP500USDT, tickers.demo:TSLAUSDT, tickers.live:AAPLUSDT, tickers.live:AMZNUSDT, tickers.live:BTCUSDT, tickers.live:COINUSDT, tickers.live:CRCLUSDT, tickers.live:GOOGLUSDT, tickers.live:HOODUSDT, tickers.live:METAUSDT, tickers.live:MSTRUSDT, tickers.live:NDX100USDT, tickers.live:NVDAUSDT, tickers.live:SNDKUSDT, tickers.live:SP500USDT, tickers.live:TSLAUSDT, upstream:binance.fundingRate, upstream:binance.globalLongShortAccountRatio, upstream:binance.openInterestHist, upstream:binance.takerlongshortRatio, upstream:binance.topLongShortAccountRatio, upstream:binance.topLongShortPositionRatio
40222026-10-03 21:38 UTChistory-candles.demo:BTCUSDT:index:1H, history-candles.demo:SP500USDT:index:1H, history-candles.live:BTCUSDT:market:1H, history-candles.live:SP500USDT:market:1H, history-fund-rate.live:BTCUSDT, history-fund-rate.live:NDX100USDT, history-fund-rate.live:SP500USDT, public_v3.history_candles[demo,index,1H]:BTCUSDT, public_v3.history_candles[demo,index,1H]:SP500USDT, public_v3.history_candles[live,market,1H]:BTCUSDT, public_v3.history_candles[live,market,1H]:SP500USDT, public_v3.history_fund_rate[live]:BTCUSDT, public_v3.history_fund_rate[live]:NDX100USDT, public_v3.history_fund_rate[live]:SP500USDT, public_v3.tickers[demo], public_v3.tickers[live], tickers.demo:AAPLUSDT, tickers.demo:AMZNUSDT, tickers.demo:BTCUSDT, tickers.demo:COINUSDT, tickers.demo:CRCLUSDT, tickers.demo:GOOGLUSDT, tickers.demo:HOODUSDT, tickers.demo:METAUSDT, tickers.demo:MSTRUSDT, tickers.demo:NDX100USDT, tickers.demo:NVDAUSDT, tickers.demo:SNDKUSDT, tickers.demo:SP500USDT, tickers.demo:TSLAUSDT, tickers.live:AAPLUSDT, tickers.live:AMZNUSDT, tickers.live:BTCUSDT, tickers.live:COINUSDT, tickers.live:CRCLUSDT, tickers.live:GOOGLUSDT, tickers.live:HOODUSDT, tickers.live:METAUSDT, tickers.live:MSTRUSDT, tickers.live:NDX100USDT, tickers.live:NVDAUSDT, tickers.live:SNDKUSDT, tickers.live:SP500USDT, tickers.live:TSLAUSDT, upstream:binance.fundingRate, upstream:binance.globalLongShortAccountRatio, upstream:binance.openInterestHist, upstream:binance.takerlongshortRatio, upstream:binance.topLongShortAccountRatio, upstream:binance.topLongShortPositionRatio—
39272026-10-03 16:07 UTCrdt-cli:search:HOODUSDTtwitter-cli:search:BTCUSDT
38652026-10-03 12:05 UTC—tickers.demo:MSTRUSDT
38632026-10-03 11:58 UTCtickers.demo:MSTRUSDT—
37942026-10-03 08:00 UTCdo_query:equity_calendar, do_query:equity_ownership_insider_trading, rdt-cli:search:CRCLUSDT, twitter-cli:search:BTCUSDTrdt-cli:search:SP500USDT
37852026-10-03 07:36 UTCdo_query:crypto_futures_funding_rate, do_query:crypto_futures_long_short_ratio, do_query:crypto_futures_long_short_top_account_ratio, do_query:crypto_futures_long_short_top_position_ratio, do_query:crypto_futures_open_interest_history, do_query:crypto_futures_taker_volume, do_query:crypto_sentiment_crypto_fear_greed, do_query:sentiment_market_fear_greedupstream:binance.fundingRate, upstream:binance.globalLongShortAccountRatio, upstream:binance.openInterestHist, upstream:binance.takerlongshortRatio, upstream:binance.topLongShortAccountRatio, upstream:binance.topLongShortPositionRatio
36442026-10-03 00:00 UTCrdt-cli:search:SP500USDT—
32282026-10-02 04:44 UTC—twitter-cli:search:AAPLUSDT
32052026-10-02 04:33 UTCtwitter-cli:search:AAPLUSDT—
29272026-10-01 16:00 UTC—rdt-cli:search:HOODUSDT
28522026-10-01 13:31 UTCrdt-cli:search:HOODUSDT—
27302026-10-01 08:00 UTC—rdt-cli:search:HOODUSDT
26652026-10-01 05:32 UTC—rdt-cli:search:SP500USDT
26212026-10-01 04:09 UTCrdt-cli:search:SP500USDT—
25152026-10-01 00:00 UTCrdt-cli:search:HOODUSDT—
22682026-09-30 13:30 UTC—rdt-cli:search:MSTRUSDT
22222026-09-30 11:41 UTCrdt-cli:search:MSTRUSDT—
21262026-09-30 08:00 UTC—rdt-cli:search:HOODUSDT, twitter-cli:search:MSTRUSDT
20272026-09-30 03:21 UTCrdt-cli:search:HOODUSDT, twitter-cli:search:MSTRUSDT—
19052026-09-29 21:39 UTC—do_query:crypto_futures_funding_rate, do_query:crypto_futures_long_short_ratio, do_query:crypto_futures_long_short_top_account_ratio, do_query:crypto_futures_long_short_top_position_ratio, do_query:crypto_futures_open_interest_history, do_query:crypto_futures_taker_volume, do_query:sentiment_market_fear_greed, history-candles.demo:BTCUSDT:index:1H, history-candles.demo:COINUSDT:index:1H, history-candles.demo:CRCLUSDT:index:1H, history-candles.demo:HOODUSDT:index:1H, history-candles.demo:MSTRUSDT:index:1H, history-candles.demo:NDX100USDT:index:1H, history-candles.demo:SNDKUSDT:index:1H, history-candles.demo:SP500USDT:index:1H, history-candles.demo:TSLAUSDT:index:1H, history-candles.live:BTCUSDT:market:1H, history-candles.live:COINUSDT:market:1H, history-candles.live:CRCLUSDT:market:1H, history-candles.live:HOODUSDT:market:1H, history-candles.live:MSTRUSDT:market:1H, history-candles.live:NDX100USDT:market:1H, history-candles.live:SNDKUSDT:market:1H, history-candles.live:SP500USDT:market:1H, history-candles.live:TSLAUSDT:market:1H, history-fund-rate.live:BTCUSDT, history-fund-rate.live:COINUSDT, history-fund-rate.live:CRCLUSDT, history-fund-rate.live:GOOGLUSDT, history-fund-rate.live:HOODUSDT, history-fund-rate.live:MSTRUSDT, history-fund-rate.live:NDX100USDT, history-fund-rate.live:SNDKUSDT, history-fund-rate.live:SP500USDT, history-fund-rate.live:TSLAUSDT, public_v3.history_candles[demo,index,1H]:BTCUSDT, public_v3.history_candles[demo,index,1H]:COINUSDT, public_v3.history_candles[demo,index,1H]:CRCLUSDT, public_v3.history_candles[demo,index,1H]:HOODUSDT, public_v3.history_candles[demo,index,1H]:MSTRUSDT, public_v3.history_candles[demo,index,1H]:NDX100USDT, public_v3.history_candles[demo,index,1H]:SNDKUSDT, public_v3.history_candles[demo,index,1H]:SP500USDT, public_v3.history_candles[demo,index,1H]:TSLAUSDT, public_v3.history_candles[live,market,1H]:BTCUSDT, public_v3.history_candles[live,market,1H]:COINUSDT, public_v3.history_candles[live,market,1H]:CRCLUSDT, public_v3.history_candles[live,market,1H]:HOODUSDT, public_v3.history_candles[live,market,1H]:MSTRUSDT, public_v3.history_candles[live,market,1H]:NDX100USDT, public_v3.history_candles[live,market,1H]:SNDKUSDT, public_v3.history_candles[live,market,1H]:SP500USDT, public_v3.history_candles[live,market,1H]:TSLAUSDT, public_v3.history_fund_rate[live]:BTCUSDT, public_v3.history_fund_rate[live]:COINUSDT, public_v3.history_fund_rate[live]:CRCLUSDT, public_v3.history_fund_rate[live]:GOOGLUSDT, public_v3.history_fund_rate[live]:HOODUSDT, public_v3.history_fund_rate[live]:MSTRUSDT, public_v3.history_fund_rate[live]:NDX100USDT, public_v3.history_fund_rate[live]:SNDKUSDT, public_v3.history_fund_rate[live]:SP500USDT, public_v3.history_fund_rate[live]:TSLAUSDT, public_v3.tickers[demo], public_v3.tickers[live], tickers.demo:AAPLUSDT, tickers.demo:AMZNUSDT, tickers.demo:BTCUSDT, tickers.demo:COINUSDT, tickers.demo:CRCLUSDT, tickers.demo:GOOGLUSDT, tickers.demo:HOODUSDT, tickers.demo:METAUSDT, tickers.demo:MSTRUSDT, tickers.demo:NDX100USDT, tickers.demo:NVDAUSDT, tickers.demo:SNDKUSDT, tickers.demo:SP500USDT, tickers.demo:TSLAUSDT, tickers.live:AAPLUSDT, tickers.live:AMZNUSDT, tickers.live:BTCUSDT, tickers.live:COINUSDT, tickers.live:CRCLUSDT, tickers.live:GOOGLUSDT, tickers.live:HOODUSDT, tickers.live:METAUSDT, tickers.live:MSTRUSDT, tickers.live:NDX100USDT, tickers.live:NVDAUSDT, tickers.live:SNDKUSDT, tickers.live:SP500USDT, tickers.live:TSLAUSDT
19022026-09-29 21:33 UTCdo_query:crypto_futures_funding_rate, do_query:crypto_futures_long_short_ratio, do_query:crypto_futures_long_short_top_account_ratio, do_query:crypto_futures_long_short_top_position_ratio, do_query:crypto_futures_open_interest_history, do_query:crypto_futures_taker_volume, do_query:sentiment_market_fear_greed, history-candles.demo:BTCUSDT:index:1H, history-candles.demo:COINUSDT:index:1H, history-candles.demo:CRCLUSDT:index:1H, history-candles.demo:HOODUSDT:index:1H, history-candles.demo:MSTRUSDT:index:1H, history-candles.demo:NDX100USDT:index:1H, history-candles.demo:SNDKUSDT:index:1H, history-candles.demo:SP500USDT:index:1H, history-candles.demo:TSLAUSDT:index:1H, history-candles.live:BTCUSDT:market:1H, history-candles.live:COINUSDT:market:1H, history-candles.live:CRCLUSDT:market:1H, history-candles.live:HOODUSDT:market:1H, history-candles.live:MSTRUSDT:market:1H, history-candles.live:NDX100USDT:market:1H, history-candles.live:SNDKUSDT:market:1H, history-candles.live:SP500USDT:market:1H, history-candles.live:TSLAUSDT:market:1H, history-fund-rate.live:BTCUSDT, history-fund-rate.live:COINUSDT, history-fund-rate.live:CRCLUSDT, history-fund-rate.live:GOOGLUSDT, history-fund-rate.live:HOODUSDT, history-fund-rate.live:MSTRUSDT, history-fund-rate.live:NDX100USDT, history-fund-rate.live:SNDKUSDT, history-fund-rate.live:SP500USDT, history-fund-rate.live:TSLAUSDT, public_v3.history_candles[demo,index,1H]:BTCUSDT, public_v3.history_candles[demo,index,1H]:COINUSDT, public_v3.history_candles[demo,index,1H]:CRCLUSDT, public_v3.history_candles[demo,index,1H]:HOODUSDT, public_v3.history_candles[demo,index,1H]:MSTRUSDT, public_v3.history_candles[demo,index,1H]:NDX100USDT, public_v3.history_candles[demo,index,1H]:SNDKUSDT, public_v3.history_candles[demo,index,1H]:SP500USDT, public_v3.history_candles[demo,index,1H]:TSLAUSDT, public_v3.history_candles[live,market,1H]:BTCUSDT, public_v3.history_candles[live,market,1H]:COINUSDT, public_v3.history_candles[live,market,1H]:CRCLUSDT, public_v3.history_candles[live,market,1H]:HOODUSDT, public_v3.history_candles[live,market,1H]:MSTRUSDT, public_v3.history_candles[live,market,1H]:NDX100USDT, public_v3.history_candles[live,market,1H]:SNDKUSDT, public_v3.history_candles[live,market,1H]:SP500USDT, public_v3.history_candles[live,market,1H]:TSLAUSDT, public_v3.history_fund_rate[live]:BTCUSDT, public_v3.history_fund_rate[live]:COINUSDT, public_v3.history_fund_rate[live]:CRCLUSDT, public_v3.history_fund_rate[live]:GOOGLUSDT, public_v3.history_fund_rate[live]:HOODUSDT, public_v3.history_fund_rate[live]:MSTRUSDT, public_v3.history_fund_rate[live]:NDX100USDT, public_v3.history_fund_rate[live]:SNDKUSDT, public_v3.history_fund_rate[live]:SP500USDT, public_v3.history_fund_rate[live]:TSLAUSDT, public_v3.tickers[demo], public_v3.tickers[live], tickers.demo:AAPLUSDT, tickers.demo:AMZNUSDT, tickers.demo:BTCUSDT, tickers.demo:COINUSDT, tickers.demo:CRCLUSDT, tickers.demo:GOOGLUSDT, tickers.demo:HOODUSDT, tickers.demo:METAUSDT, tickers.demo:MSTRUSDT, tickers.demo:NDX100USDT, tickers.demo:NVDAUSDT, tickers.demo:SNDKUSDT, tickers.demo:SP500USDT, tickers.demo:TSLAUSDT, tickers.live:AAPLUSDT, tickers.live:AMZNUSDT, tickers.live:BTCUSDT, tickers.live:COINUSDT, tickers.live:CRCLUSDT, tickers.live:GOOGLUSDT, tickers.live:HOODUSDT, tickers.live:METAUSDT, tickers.live:MSTRUSDT, tickers.live:NDX100USDT, tickers.live:NVDAUSDT, tickers.live:SNDKUSDT, tickers.live:SP500USDT, tickers.live:TSLAUSDT, upstream:binance.fundingRate, upstream:binance.globalLongShortAccountRatio, upstream:binance.openInterestHist, upstream:binance.takerlongshortRatio, upstream:binance.topLongShortAccountRatio, upstream:binance.topLongShortPositionRatio—
16522026-09-29 11:39 UTC—do_query:crypto_futures_funding_rate, do_query:crypto_futures_long_short_top_position_ratio, do_query:crypto_futures_open_interest_history, do_query:crypto_futures_taker_volume
16502026-09-29 11:33 UTCdo_query:crypto_futures_funding_rate, do_query:crypto_futures_long_short_top_position_ratio, do_query:crypto_futures_open_interest_history, do_query:crypto_futures_taker_volume—
15792026-09-29 09:33 UTC—do_query:crypto_futures_funding_rate, do_query:crypto_futures_open_interest_history, do_query:crypto_futures_taker_volume
15762026-09-29 09:28 UTCdo_query:crypto_futures_funding_rate, do_query:crypto_futures_open_interest_history, do_query:crypto_futures_taker_volume—
13192026-09-29 00:00 UTC—rdt-cli:search:SP500USDT
11422026-09-28 16:00 UTCrdt-cli:search:SP500USDT—
11352026-09-28 15:42 UTC—tickers.demo:SNDKUSDT
10802026-09-28 14:27 UTC—rdt-cli:search:HOODUSDT, twitter-cli:search:AAPLUSDT
9682026-09-28 13:44 UTCtickers.demo:SNDKUSDT—
9452026-09-28 13:30 UTCtwitter-cli:search:AAPLUSDT—
9222026-09-28 13:23 UTCrdt-cli:search:HOODUSDT—
9022026-09-28 12:51 UTC—do_query:crypto_futures_funding_rate
9002026-09-28 12:46 UTCdo_query:crypto_futures_funding_rate—
2332026-09-28 06:07 UTC—do_query:equity_calendar, do_query:equity_ownership_insider_trading, rdt-cli:search:HOODUSDT
2222026-09-28 05:35 UTC—do_query:crypto_futures_funding_rate, do_query:crypto_futures_long_short_ratio, do_query:crypto_futures_long_short_top_account_ratio, do_query:crypto_futures_long_short_top_position_ratio, do_query:crypto_futures_open_interest_history, do_query:crypto_futures_taker_volume, do_query:crypto_sentiment_crypto_fear_greed, do_query:sentiment_market_fear_greed
1952026-09-28 05:25 UTCrdt-cli:search:HOODUSDT—
872026-09-28 02:01 UTC—twitter-cli:search:AAPLUSDT
582026-09-28 01:28 UTCtwitter-cli:search:AAPLUSDT—
322026-09-28 01:22 UTCderivatives_sentiment.reddit_trending, do_query:equity_calendar, do_query:equity_ownership_insider_trading, news_feed.latest—
72026-09-28 00:07 UTCderivatives_sentiment.long_short, derivatives_sentiment.open_interest, derivatives_sentiment.taker_ratio, derivatives_sentiment.top_ls, do_query:crypto_futures_funding_rate, do_query:crypto_futures_long_short_ratio, do_query:crypto_futures_long_short_top_account_ratio, do_query:crypto_futures_long_short_top_position_ratio, do_query:crypto_futures_open_interest_history, do_query:crypto_futures_taker_volume, do_query:crypto_sentiment_crypto_fear_greed, do_query:sentiment_market_fear_greed, sentiment_index.current—

Proof

The key is proven to be a Demo key before the first order; the policy, prompts and code are hashed into a genesis that is timestamped and posted before trading; every event is hash-chained.

Environment proof (Demo only)

Checked
2026-10-06 14:56 UTC
Key file declares Demo
yes .secrets/demo.env
Installed SDK sends paptrading: 1
yes @bitget-ai/bitget-agent-cli@3.0.0
Demo environment accepts the key
yes code 00000
Live environment refuses the key
yes code 40099
Demo account read
yes
Hold mode
hedge_mode
Verdict
PASSED

Pre-registration

Genesis hash
fb66b6bf40e9229407cdd62266cfe180994c38eb96f18d5c8bca983323ccd3c0
Created
2026-09-28 00:07 UTC
Mode
paper
Policy hash
eaee6d5a27f608db9923e870fdd23f786925b92a2e11d440c5c7b37aeb93689e
Code commit
5c838fdce0e4cde5d8f091174907a2d02ff92a67
Agent Hub CLI
@bitget-ai/bitget-agent-cli@3.0.0
Model
qwen3.8-max
OpenTimestamps
failed 2026-09-28 00:07 UTC no proof stored not anchored: ots stamp exited 1: if '/' in name or '\\' in name: | ^^^^^^^^^^^ | TypeError: argument of type 'NoneType' is not iterable

Declared changes against the run it follows

Follows
ebbf607a8fe199bccc0f612ededf2a6902e4884a38d21fbfea498dff7da453a5 (policy-v1, 2026-09-24T17:06Z to 2026-09-27T17:06Z (72 hours))
Its code commit
3059fcf473927093af35d9af4c999c6d135b331a
changekindwhat and whyevidence
run2-d1code fix
Crowd and calendar trigger kinds are evaluated on the full snapshot
Run 1 evaluated triggers only on light snapshots (every 5 minutes), which by design do not read crowd text or the calendar (DESIGN.md §7), and never on the full snapshot built for each decision, so coordinated_cluster, earnings_event and filing_event could not fire. Run 2 keeps the pre-registered cadences (crowd text and the calendar are read on full snapshots only) and evaluates those kinds on every full snapshot: when a candidate set will start a decision, the full snapshot is taken first and its crowd and calendar events are admitted in the same batch, under the same cooldowns and daily ca…
run1_full_snapshot_triggers_never_evaluated: 22 coordinated_cluster triggers on run 1's 2 decision snapshots (admitted riders under run 2's wiring; 1 more refused by cooldown); 0 extra decisions; source: validation/run2/run1_trigger_replay.json (policy_v1)
run2-d2observability
Feed-health alarms, and a named reason for every blind trigger kind
A source that errors, times out or answers hollow raises an alarm with the start of its streak; recovery clears it. Each change is a feed_health ledger event (and every decision snapshot's report is logged), carried on the decision card, shown on the public page and in the health file, and every trigger kind it leaves unable to fire is named per instrument with its cause (a failing feed, no usable data, the light-snapshot cadence, or no frozen threshold). Run 1 recorded these failures only inside snapshots: sentiment_index.current hollow in 226 of 226, bitget-mcp-server do_query answering 503…
calendar: equity_calendar answered; no upcoming report date for any equity; do_query: error (service reported 503) on every call from 2026-09-25T10:14:31Z; sentiment_index.current: hollow in 226 of 226 run-1 snapshots; source: run 1 public/ledger.jsonl through seq 363
run2-d3code fix
The upstreams Bitget's data services wrap, read directly when both fail
Crowd positioning (retail and top-trader long/short, taker buy/sell, open interest, funding) is read from bitget-mcp-server, then bitget-signal for a field it left empty; crypto Fear & Greed from both; news from bitget-signal. When both leave a reading empty, run 2 reads the source they themselves wrap: Binance USD-M futures (futures/data/*, fapi/v1/fundingRate; open interest in contracts, the unit bitget-mcp-server returns), alternative.me for Fear & Greed, and four publishers' RSS for news. Every such call is recorded on its own surface (upstream_direct) with the upstream named, after the B…
bitget_mcp_server: answered 144 of 1356 calls from its first failure (2026-09-25T08:33Z) to seq 546; bitget_signal: answered 0 of 939 calls over the whole run; readings_missing: crypto Fear & Greed and BTCUSDT long/short missing from 146 of 164 snapshots since that failure; source: validation/run2/run1_feed_outage.json, by python scripts/feed_outage.py <run 1 public/> --until-seq 546 --out validation/run2/run1_feed_outage.json
run2-d4prompt fix
The prompt names the market each crowd-positioning figure comes from
Run 1's fact legend told the model that top_trader_long_short_ratio was 'the same for Bitget's top traders', and described the retail long/short, taker and open-interest change figures as 'live' with no market named. All four are Binance USD-M futures figures: bitget-mcp-server and bitget-signal read them from Binance (sources/bitget_data.py EXCHANGE), and run 2's fallback reads the same endpoints (sources/upstream.py). The legend now names Binance USD-M for each; the funding rate and open interest level, read from Bitget's own live market, keep their Bitget label. Only decision/prompt.py cha…
decision/prompt.py: 15f825ced789b7fb9c809685fd67546b466de45c3b8cf9846695e839b8715e0d in run 1's genesis, 1ce5b81a4368a3ba0d56a0640b861831473ac20c8f5b980137f5a073e35e85fd after this change; source: sources/bitget_data.py derivatives(); sources/upstream.py module docstring
run2-d5code fix
A declared invalidation must name a fact the request showed
The model may declare that a held position's stated invalidation has fired, and that declaration is the only thing that lets G6 permit an increase or a flip inside the 24 hours after the last increase. Run 1's contract accepted any non-empty invalidation_evidence, so a sentence with no fact behind it lifted the hold. From run 2 the contract returns such an answer to the model unless its evidence names at least one key the request showed as `key = value` (for example NVDAUSDT.funding_z_live), which is what output_schema_v1.md already asks for. The policy, the prompt files and every guard limit…
rule_already_written: output_schema_v1.md: invalidation_triggered is true only with invalidation_evidence naming the fact that shows it; test: tests/decision/test_decision_contract.py::TestADeclaredInvalidationNamesAFact
run2-d7prompt fix
The system prompt sizes by the evidence and states each name's stop
Replayed on run 1's market, run 2's agent acted in 14 of 15 decisions and 30 of its 31 proposed weights were a full target (5% of equity), whatever the evidence behind them (validation/run2/act_rate.json), and after run2-a7 the prompt's flat 4% stop was no longer true of five names. System prompt v2 keeps v1 and adds: a target's size follows the evidence (one positioning measure past its reference, unconfirmed, is at most half a target; a full target needs two independent measures the same way; crowd text alone never sizes); confidence is the probability of being right at the horizon after fe…
act_rate: validation/run2/act_rate.json; decision/prompt.py: df7f36967adf2e26f454851a5d9e02bc26a0540e1e46cf7e0413cc475a74bd36 after run2-a7, 74c6f697c809c6c4a89e01f8cdcbdda1df4c7c76182f9b5838345dcc2ade6ca0 after this change; decision/prompts/system_v1.md: 67773d85dbebbd0e6b0db5dba48b558ac97e231aa1e37db39b23201da095007e in run 1's genesis; replaced by system_v2.md 3a96252827c4d2872703387dc625e1338817099cafaa6f96a7b6eac39658cf13; replayed_with_v2: validation/run2/act_rate_prompt_v2.json: acted in 10 of 15 decisions, all 25 proposed weights half a target, the largest net book 10% of equity
run2-d8code fix
New exposure needs a confidence above even odds
Replayed on run 1's market with system prompt v2 (run2-d7), the agent sized by the evidence but opened 14 of its 25 positions at a stated confidence of 0.38 to 0.48: trades it judged more likely wrong than right, which the fees then make a loss. The prompt's words did not hold that line, so from run 2 the contract returns to the model any target that opens, flips or enlarges a position at a confidence of 0.5 or below (decision/contract.py EVEN_ODDS); a cut or a close is accepted at any confidence. The policy, the prompt files and every guard limit are unchanged by this change.
replayed_with_v2: validation/run2/act_rate_prompt_v2.json; test: tests/decision/test_decision_contract.py::TestNewExposureNeedsBetterThanEvenOdds
run2-d9code fix
MCP sessions are ended when a command finishes
Neither MCP client ever ended a session: the live runner held one per server for its lifetime, and every one-shot command (probe-toolkit, verify, the preflight) left two open on Bitget's servers until they expired. bitget-mcp-server began refusing new sessions with 'Too many open sessions' on 2026-09-26 (ARGUS measured it, argus/data/skill_runs). From run 2 the client ends its session with the HTTP DELETE the streamable-HTTP transport specifies, and every command ends the sessions its default toolkit opened. The policy, the prompt files and every guard limit are unchanged by this change.
specification: MCP streamable HTTP, revision 2025-06-18: a client that no longer needs a session SHOULD send HTTP DELETE with its Mcp-Session-Id; test: tests/sources/test_mcp_http.py::test_close_ends_the_session_with_a_delete_once
run2-d6code fix
Funding the venue books is in the scored equity
The run is scored on the book's equity, and the book counted fills alone: starting equity plus realized minus fees plus unrealized. A funding-extreme strategy holds the side the funding pays or charges, so any funding Demo books would have been missing from the record. From run 2 each reconciliation reads the account's financial records (funds_records --action financial) over the last four days, writes every funding payment not yet in the ledger as a funding event, and the book adds it to equity and to the net P&L of the trade open on its symbol when it settled; trades.csv carries a funding c…
funding_types: CONTRACT_MAIN_SETTLE_FEE_USER_IN/OUT, MARGIN_SETTLE_FEE_USER_IN/OUT and the RWA user variants, from bitget.com/docs/uta/enum (type-financial-records), read 2026-09-27; run1_funding: run 1 held no position across a settlement, so its record cannot say whether Demo books funding
run2-a1policy amendment
funding_zscore covers every universe instrument
Policy v1 evaluated the live funding z-score trigger for BTCUSDT only. From run2-a1 it is evaluated for all 14 instruments with the same +-2 threshold, 90-settlement lookback, 240-minute cooldown per instrument, 8 event decisions per UTC day, and the same weekend refusal of events on US-session legs while G2 holds them flat.
funding_extremes: live funding z beyond +-2 in 436 equity/index instrument-snapshots of 226 (HOOD 88, NVDA 84, MSTR 58, GOOGL 49, AMZN 46, SNDK 44, TSLA 30, COIN 23, NDX100 14); BTCUSDT 0; replayed_event_decisions: 15 in 19.9 hours on run 1's 226 snapshots under this step alone (7 on 2026-09-24, 8 on 2026-09-25, the daily cap refusing 3 more); 15 also within the token budget at every decision's worst-case bound; run 1 itself: 0; source: validation/run2/run1_trigger_replay.json, by python scripts/replay_triggers.py <run 1 public/> --until-seq 363 --out validation/run2/run1_trigger_replay.json (policy_v1, run2_a1)
run2-a2policy amendment
funding_zscore also needs a funding level of 7.5 bp
The z-score alone fires on a series that sits at zero: an equity perp's live rate was exactly zero in half of run 1's instrument-snapshots, so a single tick off zero scored as an extreme and the trigger fired in 13.8% of them, where a +-2 bound on a normal series fires in 4.6%. From run2-a2 the live rate must also be at least 0.075% per settlement interval in absolute value. The threshold, lookback, cooldown and cap are unchanged.
agent_on_the_unfloored_triggers: run 2's agent acted in 14 of the 15 decisions run2-a1 alone would have woken, every one of them short; funding_extremes_with_level: 43 of the 436 (MSTR 29, SNDK 14); level_profile: 3,150 instrument-snapshots with a live z-score and rate: beyond +-2 in 13.8%; the absolute rate zero in 51.1%, median 0, 95th percentile 4.5 bp; beyond +-2 with a level of 5, 7.5 and 8 bp: 3.5%, 1.4%, 1.0%; replayed_event_decisions: 3 in 19.9 hours (2026-09-25 00:18 MSTR, 01:28 SNDK, 12:31 MSTR), against 15 under run2-a1 alone; source: validation/run2/run1_trigger_replay.json, by python scripts/replay_triggers.py <run 1 public/> --until-seq 363 --out validation/run2/run1_trigger_replay.json (funding_level, funding_extremes, policy_v2); validation/run2/act_rate.json
run2-a3policy amendment
G3 caps the book's net weight at 10% and the crypto-beta names at 7.5%
Policy v1 capped each name at 5% and the book at 25% gross, and nothing capped one direction or one exposure spread across names. From run2-a3 G3 also caps the net weight (long minus short) at 10% of equity and MSTR, COIN, HOOD and CRCL at 7.5% gross together. What is already held keeps its weight; new exposure is scaled pro rata into what the caps leave.
crypto_beta: COIN, HOOD and MSTR 5% short each at once (15%), 2026-09-25 00:13 UTC; MSTR moved 1.85x BTC over 30 days of hourly candles (correlation +0.83); one_sided_books: run 2's agent, replayed on run 1's market under run2-a1, acted in 14 of 15 decisions and every book it proposed was short; the largest was 20% net short (GOOGL, HOOD, MSTR, TSLA at 5% each, 2026-09-25 12:05 UTC); no guard of policy v1 changed any of them; ruled_by_policy_v2: the same 15 recorded answers, parsed again and ruled by policy v2's kernel with no model call: 7 of the 12 books ruled were cut, and the current contract sends 2 more back before any ruling (run2-d8, added after the answers were recorded); the largest net short from 20% to 10% and the crypto-beta names from 15% to 7.5%; source: validation/run2/act_rate.json, by python scripts/act_rate.py <run 1 public/> --until-seq 363 --policy run2-a1 --out validation/run2/act_rate.json; validation/run2/rerule_v2.json, by python scripts/rerule.py <run 1 public/> --until-seq 363
run2-a4policy amendment
A pre-registered scoring window, closed by G2 at its end
Run 2 is scored from 2026-09-28 00:00 UTC to 2026-10-07 00:00 UTC, and the window is in the hashed policy. At its end G2 closes every leg of every asset class and refuses new exposure, the loop stops deciding, and the published metrics count only marks, fills and trades inside it.
run1: no scored span in run 1's genesis; a trade still open at the end of a record has no result, so win rate and trade count depend on when the record is read
run2-a5policy amendment
The losing-streak trip lapses 24 hours after the last losing close
Under policy v1, four losing trades in a row put the book in reduce-only until a winning trade closed. Reduce-only refuses every exposure-adding order, so a book that was flat could never open, never close a winner, and never leave reduce-only: the trip was absorbing. From run2-a5 it lapses 24 hours after the last losing close. The drawdown trips, which clear on equity, are unchanged.
mechanism: kernel/breaker.py: consecutive_losses counts closed trades back from the last winner, and in reduce-only G10 refuses every opening, so on a flat book the count cannot fall
run2-a6policy amendment
A model outage flattens the book on the third failed decision in a row
Under policy v1 one failed decision (a timeout, a malformed answer, a refused call) flattened every open leg at market. From run2-a6 the first and second failed decisions in a row hold the book under the venue stops G4 placed with each leg and open nothing; the third flattens it as before. A decision that succeeds resets the count.
cost: a flatten is a taker trade on every open leg at 6 bp each (Demo takerFeeRate 0.0006, universe_probe.json), paid on a gateway timeout that says nothing about the thesis
run2-a7policy amendment
A name's stop clears its Demo-live drift, at the same loss per name
G4 places every stop on the Demo mark, and the Demo price of HOOD, SNDK, MSTR, CRCL and SP500 departs from live by 267 to 383 bps at the 99th percentile, so a 4% stop could be taken out by the venue's drift rather than by the market. From run2-a7 a name's stop is the wider of 4% and twice its measured p99 gap (HOOD 7.66%, SNDK 6.96%, MSTR 6.32%, CRCL 6.17%, SP500 5.33%; every other name keeps 4%), and G3 caps its weight at 5% x 4% / its stop, so any name loses at most 0.2% of equity at its stop. The prompt shows each such name's stop and cap as facts (decision/prompt.py); the system prompt an…
decision/prompt.py: 1ce5b81a4368a3ba0d56a0640b861831473ac20c8f5b980137f5a073e35e85fd after run2-d4, df7f36967adf2e26f454851a5d9e02bc26a0540e1e46cf7e0413cc475a74bd36 after this change; demo_live_gap_p99_bps: HOOD 383.0, SNDK 348.2, MSTR 316.2, CRCL 308.7, SP500 266.5 (policy.UNIVERSE, from validation/demo_venue)
run2-a8policy amendment
The expected numbers and the fee budget's basis, measured for nine days
Policy v1 pre-registered what a no-edge book scores over 72 hours, from a simulation outside the kernel. From run2-a8 the envelope is the nine-day coin-flip book ruled, sized and filled by the production kernel, planner and book over 51 rolling windows of Bitget history (median return -3.5 bp, median drawdown -0.45%, median win rate 0.45, median 23 closed trades). G7's 20 bp window budget is kept: the no-edge book paid a median 6.3 and a p95 of 8.2 bp in fees over nine days.
envelope: validation/run2/strategy_replay.json, by python scripts/strategy_replay.py --history <history.json> --marks <history_marks.json> --seeds 50; window: run 2 scores 216 hours (run2-a4), three times the 72 hours policy v1's envelope measured

Drafted for X, to be posted before the first order (not yet recorded as posted)

t2-sentiment-agent: a Market Sentiment Agent paper-trading on Bitget Demo. Qwen decides, a reduce-only risk kernel gates, Agent Hub executes. Genesis hash: fb66b6bf40e9229407cdd62266cfe180994c38eb96f18d5c8bca983323ccd3c0 #BitgetHackathon @Bitget_AI https://x.com/Bitget_AI/status/2100519318824055159
Pre-registered statement and expected envelope

Pre-registration of the t2-sentiment-agent paper run on Bitget UTA Demo, written before its first paper order. It fixes the policy (every guard, limit and threshold, each with its measured basis), the prompt files, the universe, the metric definitions, the expected no-edge envelope, the code commit, the dependency locks, the Agent Hub CLI package and the Qwen model. Any change after this event is a logged, owner-confirmed amendment in this ledger, and thresholds are not tuned inside the window. Results are reported against the envelope with n and a block-bootstrap interval, labelled descriptive, not inferential.

{
 "closed_trades": "median 23",
 "max_drawdown_pct": "median -0.45, p05 -0.95, worst -1.67",
 "return_on_equity_bps": "median -3.5, p05 -75.9, p95 +93.6",
 "sharpe_ann": "median -0.5, p05 -12.3, p95 +11.1",
 "source": "validation/run2/strategy_replay.json (no-edge coin-flip book: five names a day at half a target, 50 seeds on each of 51 rolling 216 h windows of Bitget history, 2026-07-30 to 2026-09-26, ruled, sized and filled by the production kernel, planner and book)",
 "win_rate": "median 0.45, p05 0.28, p95 0.62"
}

Amendments

No amendment: the pre-registered policy has not changed.

The ledger

Events
5202 (anchor 20, breaker_transition 19, budget_state 50, decision 50, environment_proof 3, feed_health 85, fill 22, funding 37, genesis 1, health 207, kernel_ruling 116, mark 174, note 126, order_ack 21, order_plan 116, order_preview 95, order_rejected 74, order_state 211, order_submitted 95, protective_action 72, reconciliation 784, snapshot 2254, stop_sync 31, toolkit_probe 10, trigger 529)
Head hash
bd1a96e547218323c0e67380ba77b0e4d9f7c22861d9d57a3e11a816d16c803b
First / last
2026-09-28 00:07 UTC / 2026-10-08 01:01 UTC
File
ledger.jsonl with its head anchor ledger.jsonl.head

Replay: a recorded venue-integrity refusal

The venue-integrity guard exists because UTA Demo prints flash marks. This is the guard run on one it printed.

Keyless public GETs of Bitget's v3 history-candles for BTCPERP (USDC-FUTURES), 1H, around the hour of the Demo mark excursion recorded in validation/demo_venue/demo_integrity.json (BTCPERP worst: '09-23 13', 5.4%). Demo series were sent with the paptrading: 1 header, the live series without it. No credential, no account endpoint, no order.

Instrument
BTCPERP (USDC-FUTURES)
Hour
2026-09-23 13:00 UTC
Demo mark (hourly extreme)
90402.6
Demo index (close)
85788.1313578519705648
Mark vs index
5.38% (limit 3%); 5.28% even against the index's own high
Demo last (range in the hour)
86592 (82009 to 93939)
Live last
85743.1

What G1 (venue integrity) rules on the recorded print

A proposal to open 5% long

guardstatusceilingreason
G1 venue integrityfiredexit
exit: Demo mark 90402.6 is 5.38% from its index 85788.1313578519705648, beyond the 3.00% limit
basis and inputs

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)

{
 "demo_index": "85788.1313578519705648",
 "demo_index_move_bps_3h": 19.759393729978182,
 "demo_mark": "90402.6",
 "mark_index_gap": 0.05378912641073256,
 "mark_index_limit": 0.03,
 "session_open": true,
 "stale_index_min_move_bps_3h": 2.0
}

A 5% long already held

guardstatusceilingreason
G1 venue integrityfiredexit
exit: Demo mark 90402.6 is 5.38% from its index 85788.1313578519705648, beyond the 3.00% limit
basis and inputs

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)

{
 "demo_index": "85788.1313578519705648",
 "demo_index_move_bps_3h": 19.759393729978182,
 "demo_mark": "90402.6",
 "mark_index_gap": 0.05378912641073256,
 "mark_index_limit": 0.03,
 "session_open": true,
 "stale_index_min_move_bps_3h": 2.0
}

BTCPERP is a USDC-margined perpetual outside the policy universe, so G11 would refuse it too and its Demo-live p99 is not measured (G1 notes it as missing). The replay runs G1 alone on the recorded print: the mark-index check fires on its own. Even against the index's own high for the hour the gap is beyond the 3% limit.

The recorded requests (src/sentiment_agent/site/templates/replay_g1_btcperp_20260923.json)
seriesrequestfetched
demo_markGET /api/v3/market/history-candles?category=USDC-FUTURES&endTime=1790179200000&interval=1H&limit=10&symbol=BTCPERP&type=mark [paptrading: 1]2026-09-24 11:59 UTC
demo_indexGET /api/v3/market/history-candles?category=USDC-FUTURES&endTime=1790179200000&interval=1H&limit=10&symbol=BTCPERP&type=index [paptrading: 1]2026-09-24 11:59 UTC
demo_marketGET /api/v3/market/history-candles?category=USDC-FUTURES&endTime=1790179200000&interval=1H&limit=10&symbol=BTCPERP&type=market [paptrading: 1]2026-09-24 11:59 UTC
live_marketGET /api/v3/market/history-candles?category=USDC-FUTURES&endTime=1790179200000&interval=1H&limit=10&symbol=BTCPERP&type=market2026-09-24 11:59 UTC

Verify

Nothing here needs to be taken on trust.

  1. Recompute every number with the standard library alone: python scripts/recompute.py public/. It re-walks the hash chain, re-hashes every blob, rebuilds every closed trade from the fills and recomputes every metric and interval.
  2. Check the orders exist on Bitget Demo (read-only): python scripts/verify_orders.py --public public/orders.json.
  3. Replay any decision without a key: t2sa replay --public public/ --decision <decision_id>.
  4. Every card lists the ledger rows and the blobs that prove it; sha256(blobs/<hash>) equals the file name.
filewhat it is
ledger.jsonlthe hash-chained ledger, byte for byte
verify.mdhow to check everything below
metrics.jsonthe book's metric set
equity_hourly.csvone row per hourly mark
trades.csvclosed trades, flat to flat
orders.jsonevery order: clientOid, venue orderId, fills
decisions.jsonevery decision and abstention
funnel.jsonthe guard funnel
arms.jsonevery arm's marks, trades and metrics
twin.jsonthe twin report
mirror.jsonthe live-marked mirror
redteam.jsonthe red-team report
toolkit.jsonthe coverage matrix
genesis.jsonthe pre-registration
environment.jsonthe environment proofs
replay.jsonthe venue-integrity replay
cards/index.jsonevery decision card