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, 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)
| metric | interval |
|---|---|
| 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.
- 2026-09-28 01:24 UTCEventfunding zscore CRCLUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-09-28 01:30 UTCEventfunding zscore SNDKUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-09-28 02:03 UTCEventfunding zscore MSTRUSDTcoordinated cluster BTCUSDTcoordinated cluster GOOGLUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-09-28 02:57 UTCEventfunding zscore METAUSDTDecisionoutage: transport error No valid decision; no deterministic rule trades in its place.Kernel → executionno rulingno order
- 2026-09-28 05:26 UTCEventfunding zscore CRCLUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-09-28 06:08 UTCEventfunding zscore MSTRUSDTcoordinated cluster GOOGLUSDTDecisionact 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 → executionapproved as askedBUY 1.70 METAUSDT filled · 1488348258885812225BUY 7.92 MSTRUSDT filled · 1488348265357623297Open the card · realised net -1.50 USDT
- 2026-09-28 08:01 UTCEventheartbeat funding BTCUSDTDecisionact 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 → executionMETAUSDT +2.50% → +2.49% G6_turnover MSTRUSDT +2.46% → +2.45% G6_turnoverfired: G6_turnover, G8_taker_onlyno order
- 2026-09-28 09:16 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.47% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 09:17 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.47% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 09:19 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.47% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 09:20 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.47% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 09:25 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.47% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 10:53 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.48% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 10:55 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.48% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:34 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.48% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:39 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:40 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:42 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:43 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:45 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:46 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:48 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:49 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:51 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.48% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:53 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.48% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:55 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.48% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:56 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.48% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:58 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.48% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 11:59 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.48% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:00 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.48% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:02 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.48% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:04 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.48% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:05 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:06 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:08 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:09 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:10 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:11 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:13 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:15 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:16 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:17 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:18 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:20 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:21 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:22 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:23 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:25 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:27 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:28 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:29 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.49% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:31 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.50% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:32 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.50% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:33 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.50% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:34 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.51% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:36 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.52% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:38 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.53% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:39 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.54% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:40 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.53% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:42 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.55% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:43 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.55% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:44 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.54% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 12:59 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.52% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 13:25 UTCEventfunding zscore MSTRUSDTDecisionact 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 → executionMETAUSDT +2.54% → +2.53% G6_turnoverfired: G6_turnover, G8_taker_only, G9_groundingSELL 7.92 MSTRUSDT rejected
- 2026-09-28 13:29 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.55% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 13:31 UTCEventheartbeat us open SP500USDT,NDX100USDT,MSTRUSDT,HOODUSDT,CRCLUSDT,SNDKUSDT,COINUSDT,TSLAUSDT,GOOGLUSDT,METAUSDT,NVDAUSDT,AMZNUSDT,AAPLUSDTDecisionact 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 → executionMETAUSDT +2.53% → +2.46% G6_turnoverfired: G6_turnover, G8_taker_onlySELL 7.92 MSTRUSDT rejected
- 2026-09-28 13:40 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.46% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 14:01 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.47% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 14:02 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.47% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 14:04 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.47% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 14:17 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.46% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 14:18 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.46% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 14:19 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.46% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 14:20 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.46% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 14:22 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.46% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 14:23 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.46% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 14:24 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.46% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 14:25 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.46% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 14:29 UTCEventfunding zscore TSLAUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster MSTRUSDTDecisionhold 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 → executionMETAUSDT +2.46% → 0 (flat) G1_venue_integrity MSTRUSDT +2.49% → +2.48% G6_turnoverfired: G1_venue_integrity, G6_turnover, G8_taker_onlySELL 1.7 METAUSDT rejected
- 2026-09-28 14:31 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.46% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 15:11 UTCEventprotective venue integrityDecisionNo model decision: the kernel acted on its own clock.Kernel → executionMETAUSDT +2.45% → 0 (flat) G1_venue_integrityfired: G1_venue_integritySELL 1.7 METAUSDT rejected
- 2026-09-28 16:01 UTCEventheartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDTDecisionact 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 → executionapproved as askedSELL 1.7 METAUSDT filled · 1488498478504366080SELL 7.92 MSTRUSDT filled · 1488498485320110080Open the card · realised net -33.26 USDT
- 2026-09-29 00:01 UTCEventheartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster HOODUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-09-29 00:09 UTCEventfunding zscore MSTRUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-09-29 07:03 UTCEventfunding zscore MSTRUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster TSLAUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-09-29 08:01 UTCEventheartbeat funding BTCUSDTcoordinated cluster SNDKUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-09-29 10:16 UTCEventfunding zscore CRCLUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-09-29 11:09 UTCEventfunding zscore MSTRUSDTDecisionact 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 → executionapproved as askedSELL 10.55 HOODUSDT filled · 1488786475778949122SELL 7.81 MSTRUSDT filled · 1488786575821488128Open the card · realised net -1.50 USDT
- 2026-09-29 13:32 UTCEventheartbeat us open SP500USDT,NDX100USDT,MSTRUSDT,HOODUSDT,CRCLUSDT,SNDKUSDT,COINUSDT,TSLAUSDT,GOOGLUSDT,METAUSDT,NVDAUSDT,AMZNUSDT,AAPLUSDTcoordinated cluster COINUSDTDecisionact 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 → executionHOODUSDT -2.49% → -2.48% G6_turnover MSTRUSDT -2.51% → -2.47% G6_turnoverfired: G6_turnoverSELL 6.46 COINUSDT filled · 1488823284848246785Open the card · realised net -0.75 USDT
- 2026-09-29 16:01 UTCEventheartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDTDecisionact 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 → executionCOINUSDT -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_sizefired: G3_size, G6_turnoverSELL 0.95 METAUSDT filled · 1488861195119476736SELL 1.92 TSLAUSDT filled · 1488861202228822017Open the card · realised net -0.82 USDT
- 2026-09-29 21:03 UTCEventfunding zscore TSLAUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTcoordinated cluster MSTRUSDTcoordinated cluster SNDKUSDTDecisionact 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 → executionCOINUSDT -2.45% → -2.45% G6_turnover HOODUSDT -2.45% → -2.45% G6_turnover TSLAUSDT -1.36% → -1.36% G6_turnoverfired: G6_turnoverBUY 0.95 METAUSDT filled · 1488936080822915072Open the card · realised net -19.60 USDT
- 2026-09-30 00:01 UTCEventheartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster NVDAUSDTcoordinated cluster TSLAUSDTDecisionact 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 → executionMSTRUSDT -2.43% → -2.43% G6_turnoverfired: G6_turnoverno order
- 2026-09-30 03:26 UTCEventfunding zscore HOODUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTcoordinated cluster SNDKUSDTDecisionhold 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 → executionCOINUSDT -2.45% → -2.45% G6_turnoverfired: G6_turnoverno order
- 2026-09-30 08:01 UTCEventheartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDTDecisionact 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 → executionCOINUSDT -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_turnoverfired: G6_turnoverno order
- 2026-09-30 11:43 UTCEventfunding zscore TSLAUSDTDecisionact 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 → executionHOODUSDT -2.52% → -2.52% G9_grounding MSTRUSDT -2.46% → -2.46% G11_eligibility TSLAUSDT -2.50% → -1.35% G6_turnoverfired: G11_eligibility, G6_turnover, G9_groundingno order
- 2026-09-30 13:33 UTCEventheartbeat us open SP500USDT,NDX100USDT,MSTRUSDT,HOODUSDT,CRCLUSDT,SNDKUSDT,COINUSDT,TSLAUSDT,GOOGLUSDT,METAUSDT,NVDAUSDT,AMZNUSDT,AAPLUSDTDecisionact 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 → executionCOINUSDT -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_turnoverfired: G3_size, G6_turnoverSELL 0.20 COINUSDT filled · 1489186636590108677SELL 0.42 HOODUSDT filled · 1489186644563480576SELL 0.18 MSTRUSDT filled · 1489186651152732160Open the card · realised net -0.07 USDT
- 2026-09-30 16:01 UTCEventheartbeat funding BTCUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster METAUSDTcoordinated cluster SNDKUSDTDecisionact 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 → executionapproved as askedBUY 0.04 COINUSDT filled · 1489224087824126031BUY 0.04 MSTRUSDT filled · 1489224094614704129Open the card · realised net +0.41 USDT
- 2026-10-01 00:01 UTCEventheartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDTDecisionact 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 → executionHOODUSDT -2.48% → -2.48% G6_turnoverfired: G6_turnoverBUY 1.92 TSLAUSDT filled · 1489344435982848000Open the card · realised net -2.98 USDT
- 2026-10-01 04:10 UTCEventfunding zscore SNDKUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTDecisionhold 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 → executionapproved as askedfired: G10_breakerno order
- 2026-10-01 05:40 UTCEventfunding zscore MSTRUSDTcoordinated cluster BTCUSDTcoordinated cluster HOODUSDTcoordinated cluster TSLAUSDTDecisionhold 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 → executionHOODUSDT -2.49% → -2.49% G6_turnover MSTRUSDT -2.46% → -2.46% G6_turnoverfired: G10_breaker, G6_turnoverno order
- 2026-10-01 08:03 UTCEventheartbeat funding BTCUSDTDecisionhold 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 → executionCOINUSDT -2.47% → -2.47% G6_turnover HOODUSDT -2.48% → -2.47% G6_turnover MSTRUSDT -2.44% → -2.43% G6_turnoverfired: G10_breaker, G6_turnoverno order
- 2026-10-01 13:39 UTCEventheartbeat 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 TSLAUSDTDecisionhold 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 → executionapproved as askedfired: G10_breakerBUY 0.17 COINUSDT filled · 1489550415073005568BUY 0.14 HOODUSDT filled · 1489550540361060352BUY 0.29 MSTRUSDT filled · 1489550659269578752Open the card · realised net +1.10 USDT
- 2026-10-01 16:05 UTCEventheartbeat funding BTCUSDTcoordinated cluster BTCUSDTcoordinated cluster HOODUSDTDecisionhold 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 → executionCOINUSDT -2.42% → -2.41% G10_breaker HOODUSDT -2.42% → -2.42% G10_breaker MSTRUSDT -2.40% → -2.39% G10_breakerfired: G10_breakerno order
- 2026-10-02 00:08 UTCEventheartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDTDecisionhold 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 → executionCOINUSDT -2.45% → -2.45% G11_eligibilityfired: G11_eligibilityno order
- 2026-10-02 04:30 UTCEventfunding 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 TSLAUSDTDecisionhold 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 → executionapproved as askedno order
- 2026-10-02 04:34 UTCEventfunding zscore COINUSDTDecisionact 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 → executionCOINUSDT -2.48% → -2.48% G11_eligibility HOODUSDT -2.44% → -2.44% G11_eligibility MSTRUSDT -2.51% → -2.50% G11_eligibilityfired: G11_eligibilityno order
- 2026-10-02 04:46 UTCEventfunding zscore CRCLUSDTDecisionhold 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 → executionCOINUSDT -2.48% → -2.48% G11_eligibility HOODUSDT -2.44% → -2.44% G11_eligibility MSTRUSDT -2.51% → -2.50% G11_eligibilityfired: G11_eligibilityno order
- 2026-10-02 08:11 UTCEventheartbeat funding BTCUSDTcoordinated cluster NDX100USDTDecisionoutage: timeout No valid decision; no deterministic rule trades in its place.Kernel → executionno rulingno order
- 2026-10-02 13:39 UTCEventheartbeat us open SP500USDT,NDX100USDT,MSTRUSDT,HOODUSDT,CRCLUSDT,SNDKUSDT,COINUSDT,TSLAUSDT,GOOGLUSDT,METAUSDT,NVDAUSDT,AMZNUSDT,AAPLUSDTcoordinated cluster TSLAUSDTDecisionoutage: timeout No valid decision; no deterministic rule trades in its place.Kernel → executionno rulingno order
- 2026-10-02 16:09 UTCEventheartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster MSTRUSDTcoordinated cluster SNDKUSDTDecisionact 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 → executionCOINUSDT -2.35% → -2.35% G10_breaker HOODUSDT -2.45% → -2.44% G10_breakerfired: G10_breakerno order
- 2026-10-02 19:47 UTCEventprotective weekend freezeDecisionNo model decision: the kernel acted on its own clock.Kernel → executionCOINUSDT -2.36% → 0 (flat) G2_weekend_freeze HOODUSDT -2.44% → 0 (flat) G2_weekend_freezefired: G10_breaker, G2_weekend_freezeBUY 6.45 COINUSDT filled · 1490003701307691008BUY 10.83 HOODUSDT filled · 1490003852822728704Open the card · realised net +124.70 USDT
- 2026-10-03 00:01 UTCEventheartbeat funding BTCUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-10-03 08:01 UTCEventheartbeat funding BTCUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-10-03 16:16 UTCEventheartbeat funding BTCUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-10-04 00:08 UTCEventheartbeat funding BTCUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-10-04 08:09 UTCEventheartbeat funding BTCUSDTDecisionflat 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 → executionnothing to rule onfired: G10_breakerno order
- 2026-10-04 16:01 UTCEventheartbeat funding BTCUSDTDecisionflat 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 → executionapproved as askedno order
- 2026-10-05 00:08 UTCEventheartbeat funding BTCUSDTcoordinated cluster BTCUSDTcoordinated cluster CRCLUSDTcoordinated cluster HOODUSDTDecisionoutage: timeout No valid decision; no deterministic rule trades in its place.Kernel → executionno rulingno order
- 2026-10-05 08:11 UTCEventheartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTcoordinated cluster TSLAUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-10-06 14:58 UTCEventheartbeat 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 MSTRUSDTDecisionflat 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 → executionnothing to rule onno order
- 2026-10-06 16:12 UTCEventheartbeat funding BTCUSDTcoordinated cluster AAPLUSDTcoordinated cluster METAUSDTcoordinated cluster NVDAUSDTcoordinated cluster SNDKUSDTDecisionoutage: timeout No valid decision; no deterministic rule trades in its place.Kernel → executionno rulingno order
- 2026-10-07 00:18 UTCEventheartbeat funding BTCUSDTcoordinated cluster AMZNUSDTcoordinated cluster COINUSDTcoordinated cluster CRCLUSDTcoordinated cluster GOOGLUSDTcoordinated cluster HOODUSDTcoordinated cluster METAUSDTcoordinated cluster SNDKUSDTDecisionoutage: timeout No valid decision; no deterministic rule trades in its place.Kernel → executionno rulingno 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.
- 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%
| arm | kind | return | Sharpe | max DD | win rate | trades |
|---|---|---|---|---|---|---|
| The agent, governed LLM | ours governed | -0.020% | -0.30 | -0.369% | 28.6% | 7 |
| The agent, ungoverned LLM | twin ungoverned | +0.047% | 0.56 | -0.406% | 33.3% | 6 |
| The agent, governed (replica) LLM | ours governed | -0.001% | 0.00 | -0.383% | 28.6% | 7 |
| Flat | baseline | +0.000% | — | 0.000% | — | 0 |
| BTC at our gross | baseline | +0.037% | 1.57 | -0.091% | — | 0 |
| Crowd fade, fixed rule | baseline | -0.674% | -14.54 | -0.674% | 15.3% | 72 |
| baseline coin flip: median of 1000 seeds | baseline | -0.254% | -4.05 | -0.528% | 43.5% | 20.0 |
| The same fills on live prices LLM | mirror live | +0.131% | 1.60 | -0.379% | 42.9% | 7 |
| The legs the weekend freeze took away, on live LLM | weekend 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 confluence | rival | +0.000% | — | 0.000% | — | 0 |
| Season-2 entry B: sentiment and news signal fusion | rival | -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
Exposure asked +19.31%, approved +15.46% (sum of absolute weight increases).
What reached the venue from model decisions
Every guard, every ruling
| guard | binding | fired | not evaluated | passed | n/a |
|---|---|---|---|---|---|
| G1 venue integrity | 1 | 1 | 0 | 134 | 0 |
| G2 weekend freeze | 0 | 0 | 0 | 127 | 8 |
| G3 size | 7 | 9 | 0 | 198 | 0 |
| G4 stop | 0 | 0 | 0 | 50 | 85 |
| G5 daily kill | 0 | 0 | 0 | 179 | 0 |
| G6 turnover | 24 | 26 | 0 | 109 | 0 |
| G7 fee budget | 0 | 0 | 0 | 179 | 0 |
| G8 taker only | 0 | 5 | 0 | 130 | 0 |
| G9 grounding | 1 | 2 | 0 | 48 | 85 |
| G10 breaker | 5 | 17 | 0 | 162 | 0 |
| G11 eligibility | 8 | 8 | 0 | 127 | 0 |
"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)
| reason | rulings |
|---|---|
| venue integrity | 71 |
| weekend freeze | 1 |
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.
| decision | symbol | guard | asked | approved | P&L ungoverned | P&L governed |
|---|---|---|---|---|---|---|
| dec-26bbeab899464826ae579f0ea91b6dee | METAUSDT | G6_turnover | +2.50% | +2.49% | -0.046% | -0.046% |
| dec-26bbeab899464826ae579f0ea91b6dee | MSTRUSDT | G6_turnover | +2.46% | +2.45% | +0.069% | +0.069% |
| dec-eedb8e485e70841596db3e102471e08d | METAUSDT | G6_turnover | +2.54% | +2.53% | -0.000% | +0.000% |
| dec-fee0c1a8b7b33425f7b5b3c9d7aabafc | METAUSDT | G6_turnover | +2.53% | +2.46% | -0.006% | -0.006% |
| dec-250d69c67b6b0297120f7425926faeab | METAUSDT | G1_venue_integrity | +2.46% | 0 (flat) | +0.012% | -0.002% |
| dec-250d69c67b6b0297120f7425926faeab | MSTRUSDT | G6_turnover | +2.49% | +2.48% | +0.050% | +0.050% |
| dec-06484b7708ac3f24df2bbaf08b9c8f57 | HOODUSDT | G6_turnover | -2.49% | -2.48% | +0.029% | +0.029% |
| dec-06484b7708ac3f24df2bbaf08b9c8f57 | MSTRUSDT | G6_turnover | -2.51% | -2.47% | +0.058% | +0.058% |
| dec-e69542572a444cb30a4bd5ae3768e2b9 | COINUSDT | G3_size | -2.46% | -2.45% | +0.011% | +0.011% |
| dec-e69542572a444cb30a4bd5ae3768e2b9 | METAUSDT | G3_size | -2.50% | -1.36% | -0.066% | -0.036% |
| dec-e69542572a444cb30a4bd5ae3768e2b9 | MSTRUSDT | G3_size | -2.39% | -2.39% | -0.027% | -0.027% |
| dec-e69542572a444cb30a4bd5ae3768e2b9 | TSLAUSDT | G3_size | -2.50% | -1.36% | -0.015% | -0.008% |
| dec-97a8396f25be66348854855a26d540c5 | COINUSDT | G6_turnover | -2.45% | -2.45% | -0.003% | -0.003% |
| dec-97a8396f25be66348854855a26d540c5 | HOODUSDT | G6_turnover | -2.45% | -2.45% | -0.022% | -0.022% |
| dec-97a8396f25be66348854855a26d540c5 | TSLAUSDT | G6_turnover | -1.36% | -1.36% | -0.001% | -0.001% |
| dec-b5f886c228317fe25bc64f720396d3ec | MSTRUSDT | G6_turnover | -2.43% | -2.43% | -0.002% | -0.002% |
| dec-313e6226c97986d8b0c432eb0bd3eba6 | COINUSDT | G6_turnover | -2.45% | -2.45% | +0.007% | +0.007% |
| dec-353e35c89f8ca4125ebd5a63a6f48b67 | COINUSDT | G6_turnover | -2.46% | -2.45% | -0.040% | -0.040% |
| dec-353e35c89f8ca4125ebd5a63a6f48b67 | HOODUSDT | G6_turnover | -2.53% | -2.51% | -0.021% | -0.021% |
| dec-353e35c89f8ca4125ebd5a63a6f48b67 | MSTRUSDT | G6_turnover | -2.42% | -2.41% | -0.045% | -0.044% |
| dec-353e35c89f8ca4125ebd5a63a6f48b67 | TSLAUSDT | G6_turnover | -1.36% | -1.36% | +0.017% | +0.017% |
| dec-ad09214a9a86fb2df867396faed9742e | HOODUSDT | G9_grounding | -2.52% | -2.52% | +0.077% | +0.077% |
| dec-ad09214a9a86fb2df867396faed9742e | MSTRUSDT | G11_eligibility | -2.46% | -2.46% | +0.011% | +0.011% |
| dec-ad09214a9a86fb2df867396faed9742e | TSLAUSDT | G6_turnover | -2.50% | -1.35% | +0.022% | +0.012% |
| dec-0ee8fbd2b875f72b2a2dac8059d834e5 | COINUSDT | G3_size | -2.54% | -2.49% | +0.011% | +0.010% |
| dec-0ee8fbd2b875f72b2a2dac8059d834e5 | HOODUSDT | G3_size | -2.59% | -2.53% | +0.055% | +0.054% |
| dec-0ee8fbd2b875f72b2a2dac8059d834e5 | MSTRUSDT | G3_size | -2.52% | -2.48% | +0.029% | +0.029% |
| dec-0ee8fbd2b875f72b2a2dac8059d834e5 | TSLAUSDT | G6_turnover | -1.35% | -1.33% | -0.018% | -0.018% |
| dec-41b11d58489ade0685da58d1ac2c64bf | HOODUSDT | G6_turnover | -2.48% | -2.48% | -0.008% | -0.008% |
| dec-029d899af4799a52f4778cd7955de4f1 | HOODUSDT | G6_turnover | -2.49% | -2.49% | +0.023% | +0.023% |
| dec-029d899af4799a52f4778cd7955de4f1 | MSTRUSDT | G6_turnover | -2.46% | -2.46% | +0.022% | +0.022% |
| dec-7590cf802197ab4a695bafef528093e3 | COINUSDT | G6_turnover | -2.47% | -2.47% | -0.039% | -0.039% |
| dec-7590cf802197ab4a695bafef528093e3 | HOODUSDT | G6_turnover | -2.48% | -2.47% | -0.007% | -0.007% |
| dec-7590cf802197ab4a695bafef528093e3 | MSTRUSDT | G6_turnover | -2.44% | -2.43% | -0.070% | -0.070% |
| dec-850ce791482e4fa58e249caf8b6dc0ad | COINUSDT | G10_breaker | -2.42% | -2.41% | -0.040% | -0.040% |
| dec-850ce791482e4fa58e249caf8b6dc0ad | HOODUSDT | G10_breaker | -2.42% | -2.42% | -0.018% | -0.018% |
| dec-850ce791482e4fa58e249caf8b6dc0ad | MSTRUSDT | G10_breaker | -2.40% | -2.39% | -0.059% | -0.059% |
| dec-ccb38174c7aa21ae84fd043484feec13 | COINUSDT | G11_eligibility | -2.45% | -2.45% | -0.033% | -0.033% |
| dec-0fb687dafac56b9dfc14711079debe24 | COINUSDT | G11_eligibility | -2.48% | -2.48% | -0.000% | -0.000% |
| dec-0fb687dafac56b9dfc14711079debe24 | HOODUSDT | G11_eligibility | -2.44% | -2.44% | -0.000% | -0.000% |
| dec-0fb687dafac56b9dfc14711079debe24 | MSTRUSDT | G11_eligibility | -2.51% | -2.50% | -0.000% | -0.000% |
| dec-a331ff608fb5a742c28cdaadefb16b28 | COINUSDT | G11_eligibility | -2.48% | -2.48% | +0.117% | +0.117% |
| dec-a331ff608fb5a742c28cdaadefb16b28 | HOODUSDT | G11_eligibility | -2.44% | -2.44% | -0.038% | -0.038% |
| dec-a331ff608fb5a742c28cdaadefb16b28 | MSTRUSDT | G11_eligibility | -2.51% | -2.50% | +0.066% | +0.066% |
| dec-394d09c7bb3ef7851994c7b1314f31bf | COINUSDT | G10_breaker | -2.35% | -2.35% | -0.000% | -0.000% |
| dec-394d09c7bb3ef7851994c7b1314f31bf | HOODUSDT | G10_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.
- 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)
| arm | return | max DD | hours |
|---|---|---|---|
| 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.
| surface | used | used and OK now | not used, with reason |
|---|---|---|---|
| Agent Hub (bgc, pinned CLI) | 14 | 13 | 14 |
| Bitget public v3 market API | 7 | 5 | 2 |
| bitget-signal (MCP) | 7 | 0 | 18 |
| bitget-mcp-server | 11 | 1 | 57 |
| GetAgent Playbook | 0 | 0 | 1 |
| X (not Bitget) | 1 | 0 | 0 |
| Reddit (not Bitget) | 1 | 0 | 0 |
| upstream_direct | 1 | 1 | 0 |
Agent Hub (bgc, pinned CLI): 14 used, 14 not used
| entry | used for / judged line | health | visible at | notes |
|---|---|---|---|---|
| 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 guard | in 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 guard | in 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 guard | in 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 proof | in 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 measured | demo 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 proof | in 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 proof | in 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 proof | in the log: installed SDK sends paptrading: 1 = True |
Not used (14), each with its reason
| entry | reason | measured |
|---|---|---|
| market | not 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 needs | not measured |
| account_config | not used: the agent reads the hold mode (account_overview) and never changes account settings; sizing is by notional against equity, not by leverage | not measured |
| transfer_funds | not used: a paper book moves no funds | not measured |
| deposit | not used: a paper book moves no funds | not measured |
| withdraw | not used: a paper book moves no funds, and the Demo key is created without the Withdraw permission (DESIGN.md §21) | not measured |
| repayment | not used: no margin loan is taken | not measured |
| subaccount | not used: one Demo account, no sub-accounts | not measured |
| broker | not used: not a broker integration | not measured |
| loan | not used: no loan is taken | not measured |
| inst_loan | not used: no loan is taken | not measured |
| tax | not used: outside the trading loop | not measured |
| discover | not 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 time | not 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 loop | not 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
| entry | used for / judged line | health | visible at | notes |
|---|---|---|---|---|
| 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 guard | in 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 table | in 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 measured | decision 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 mirror | in 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 guard | in 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 measured | demo 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 table | in the log: newest snapshot, 28 call(s): ok 28 |
Not used (2), each with its reason
| entry | reason | measured |
|---|---|---|
| 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
| entry | used for / judged line | health | visible at | notes |
|---|---|---|---|---|
| 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 agreement | Skill: 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 matrix | Skill: 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 matrix | Skill: 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 matrix | Skill: 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 matrix | Skill: 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 model | Skill: 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 model | Skill: 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
| entry | reason | measured |
|---|---|---|
| technical_analysis.rsi | not 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.global | not 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.price | not 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_24h | not 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.price | not 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_release | not 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_curve | not 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.correlation | not 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.earnings | not 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.trending | not 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_rank | not 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.trending | not 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_fees | not 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.forex | not 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.index | not 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 45s | timeout |
| backtest.chart | not 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.history | not 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_position | not 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
| entry | used for / judged line | health | visible at | notes |
|---|---|---|---|---|
| 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 agreement | 1 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 agreement | 1 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 table | 14 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 table | 14 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 table | 14 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 table | 14 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 table | 14 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 table | 14 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: calendar | 11 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: calendar | 11 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 matrix | 67 entries: crypto 39, equity 22, etf 3, news 1, sentiment 2 |
Not used (57), each with its reason
| entry | reason | measured |
|---|---|---|
| do_query:crypto_market | not 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 page | error |
| do_query:crypto_coin_info | not used: reference data, not sentiment; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_spot_kline | not 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 page | error |
| do_query:crypto_spot_ticker | not 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 page | error |
| do_query:crypto_spot_order_book | not 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 page | error |
| do_query:crypto_spot_trades | not 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 page | error |
| do_query:crypto_spot_taker_volume | not 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 page | error |
| do_query:crypto_spot_big_trades | not 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 page | error |
| do_query:crypto_futures_mark_price | not 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 page | error |
| do_query:crypto_futures_kline | not 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 page | error |
| do_query:crypto_futures_ticker | not 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 page | error |
| do_query:crypto_futures_order_book | not 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 page | error |
| do_query:crypto_futures_trades | not 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 page | error |
| do_query:crypto_futures_open_interest | not used: the hourly history entry carries the same value; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_futures_liquidations | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_futures_big_trades | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_onchain_fund_flow | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_onchain_trading_signal | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_onchain_exchange_flows | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_onchain_stablecoin_flow | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_onchain_token_unlock_event | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_institutional_company_flow | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_etf_flows | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_institutional_mining_company_flow | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_institutional_country_flow | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_indicators_technical_indicators | not 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_tag | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_hyperliquid_position_distribution_by_pnl_tag | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_hyperliquid_position_distribution_by_position_tag | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_indicators_hyperliquid_whale_sentiment | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_hyperliquid_whale_alert | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:crypto_spot_big_trades_window | not 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 page | error |
| do_query:crypto_futures_big_trades_window | not used: not a pre-registered input of policy v1; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:equity_price_quote | not 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 page | error |
| do_query:equity_price_historical | not 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 page | error |
| do_query:equity_profile | not 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 page | error |
| do_query:equity_fundamental_management | not 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 page | error |
| do_query:equity_fundamental_balance | not 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 page | error |
| do_query:equity_fundamental_income | not 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 page | error |
| do_query:equity_fundamental_cash | not 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 page | error |
| do_query:equity_fundamental_metrics | not 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 page | error |
| do_query:equity_fundamental_ratios | not 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 page | error |
| do_query:equity_fundamental_dividends | not 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 page | error |
| do_query:equity_ownership_major_holders | not 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 page | error |
| do_query:equity_ownership_form_13f | not 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 page | error |
| do_query:equity_ownership_inst_position_detail | not 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 page | error |
| do_query:equity_ownership_inst_position_summary | not 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 page | error |
| do_query:equity_estimates_price_target | not 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 page | error |
| do_query:equity_estimates_forward_pe | not 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 page | error |
| do_query:equity_estimates_forward_eps | not 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 page | error |
| do_query:equity_estimates_forward_ebitda | not 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 page | error |
| do_query:equity_estimates_forward_sales | not 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 page | error |
| do_query:equity_estimates_consensus | not 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 page | error |
| do_query:etf_info | not used: no ETF is traded; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:etf_holdings | not used: no ETF is traded; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:etf_price_performance | not used: no ETF is traded; measured error: service reported failure (status 503): the upstream answered with an HTML error page | error |
| do_query:news_label_search | not 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
| entry | used for / judged line | health | visible at | notes |
|---|---|---|---|---|
| none | ||||
Not used (1), each with its reason
| entry | reason | measured |
|---|---|---|
| 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 claimed | not measured |
X (not Bitget): 1 used, 0 not used
| entry | used for / judged line | health | visible at | notes |
|---|---|---|---|---|
| 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 measured | decision card: text shown to the model | not Bitget: listed because it feeds the same decision |
Reddit (not Bitget): 1 used, 0 not used
| entry | used for / judged line | health | visible at | notes |
|---|---|---|---|---|
| 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 measured | decision card: text shown to the model | not Bitget: listed because it feeds the same decision |
upstream_direct: 1 used, 0 not used
| entry | used for / judged line | health | visible at | notes |
|---|---|---|---|---|
| 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 table | not 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
| source | health | failing since | snapshots | last error |
|---|---|---|---|---|
| derivatives_sentiment.long_short | hollow | 2026-09-28 00:07 UTC | 873 | upstream error envelope {"error": ""} |
| derivatives_sentiment.open_interest | hollow | 2026-09-28 00:07 UTC | 875 | upstream error envelope {"error": ""} |
| derivatives_sentiment.reddit_trending | hollow | 2026-09-28 01:22 UTC | 50 | 2 of 2 calls failed; first: upstream error envelope {"error": ""} |
| derivatives_sentiment.taker_ratio | hollow | 2026-09-28 00:07 UTC | 875 | upstream error envelope {"error": ""} |
| derivatives_sentiment.top_ls | hollow | 2026-09-28 00:07 UTC | 873 | upstream error envelope {"error": ""} |
| do_query:crypto_futures_funding_rate | error | 2026-10-03 07:36 UTC | 806 | service reported failure (status 503): the upstream answered with an HTML error page |
| do_query:crypto_futures_long_short_ratio | error | 2026-10-03 07:36 UTC | 806 | service reported failure (status 503): the upstream answered with an HTML error page |
| do_query:crypto_futures_long_short_top_account_ratio | error | 2026-10-03 07:36 UTC | 806 | service reported failure (status 503): the upstream answered with an HTML error page |
| do_query:crypto_futures_long_short_top_position_ratio | error | 2026-10-03 07:36 UTC | 806 | service reported failure (status 503): the upstream answered with an HTML error page |
| do_query:crypto_futures_open_interest_history | error | 2026-10-03 07:36 UTC | 806 | service reported failure (status 503): the upstream answered with an HTML error page |
| do_query:crypto_futures_taker_volume | error | 2026-10-03 07:36 UTC | 806 | service reported failure (status 503): the upstream answered with an HTML error page |
| do_query:crypto_sentiment_crypto_fear_greed | error | 2026-10-03 07:36 UTC | 806 | service reported failure (status 503): the upstream answered with an HTML error page |
| do_query:equity_calendar | error | 2026-10-03 08:00 UTC | 10 | 11 of 11 calls failed; first: service reported failure (status 503): the upstream answered with an HTML error page |
| do_query:equity_ownership_insider_trading | error | 2026-10-03 08:00 UTC | 10 | 11 of 11 calls failed; first: service reported failure (status 503): the upstream answered with an HTML error page |
| do_query:sentiment_market_fear_greed | error | 2026-10-03 07:36 UTC | 806 | service reported failure (status 503): the upstream answered with an HTML error page |
| news_feed.latest | hollow | 2026-09-28 01:22 UTC | 50 | answered with a hollow payload (every value empty, zero or an error) |
| sentiment_index.current | hollow | 2026-09-28 00:07 UTC | 2244 | upstream error envelope {"alt_me_error": ""} |
Trigger kinds that could not fire
| trigger kind | instruments | cause | why |
|---|---|---|---|
| fear greed extreme | SP500USDT, NDX100USDT, MSTRUSDT, HOODUSDT, CRCLUSDT, SNDKUSDT, COINUSDT, TSLAUSDT, GOOGLUSDT, METAUSDT, NVDAUSDT, AMZNUSDT, AAPLUSDT | a source failed | equity-market F&G unread: failing source(s) do_query:sentiment_market_fear_greed |
| open interest jump | BTCUSDT | no frozen threshold | no open-interest threshold was frozen at genesis for this instrument |
| coordinated cluster | all | not read on light snapshots | not 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 event | all | not read on light snapshots | not 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 event | all | not read on light snapshots | not 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)
| seq | at | raised | cleared |
|---|---|---|---|
| 4805 | 2026-10-07 00:05 UTC | — | rdt-cli:search:HOODUSDT |
| 4733 | 2026-10-06 19:26 UTC | — | history-fund-rate.live:METAUSDT, public_v3.history_fund_rate[live]:METAUSDT |
| 4731 | 2026-10-06 19:21 UTC | history-fund-rate.live:METAUSDT, public_v3.history_fund_rate[live]:METAUSDT | — |
| 4670 | 2026-10-06 16:00 UTC | rdt-cli:search:HOODUSDT | upstream:alternative_me.fng |
| 4668 | 2026-10-06 15:52 UTC | upstream:alternative_me.fng | — |
| 4585 | 2026-10-05 08:02 UTC | — | rdt-cli:search:HOODUSDT, twitter-cli:search:COINUSDT, twitter-cli:search:TSLAUSDT |
| 4564 | 2026-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 |
| 4562 | 2026-10-05 06:29 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 | — |
| 4532 | 2026-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 |
| 4528 | 2026-10-05 04:36 UTC | upstream:alternative_me.fng, upstream:binance.fundingRate, upstream:binance.globalLongShortAccountRatio, upstream:binance.openInterestHist, upstream:binance.takerlongshortRatio, upstream:binance.topLongShortAccountRatio, upstream:binance.topLongShortPositionRatio | — |
| 4452 | 2026-10-05 00:02 UTC | rdt-cli:search:HOODUSDT, twitter-cli:search:COINUSDT, twitter-cli:search:TSLAUSDT | — |
| 4433 | 2026-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 |
| 4431 | 2026-10-04 22:44 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 | history-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 |
| 4429 | 2026-10-04 22:37 UTC | history-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 | — |
| 4325 | 2026-10-04 16:00 UTC | — | rdt-cli:search:CRCLUSDT, rdt-cli:search:HOODUSDT, twitter-cli:search:BTCUSDT |
| 4193 | 2026-10-04 08:01 UTC | twitter-cli:search:BTCUSDT | — |
| 4024 | 2026-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 |
| 4022 | 2026-10-03 21:38 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 | — |
| 3927 | 2026-10-03 16:07 UTC | rdt-cli:search:HOODUSDT | twitter-cli:search:BTCUSDT |
| 3865 | 2026-10-03 12:05 UTC | — | tickers.demo:MSTRUSDT |
| 3863 | 2026-10-03 11:58 UTC | tickers.demo:MSTRUSDT | — |
| 3794 | 2026-10-03 08:00 UTC | do_query:equity_calendar, do_query:equity_ownership_insider_trading, rdt-cli:search:CRCLUSDT, twitter-cli:search:BTCUSDT | rdt-cli:search:SP500USDT |
| 3785 | 2026-10-03 07:36 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 | upstream:binance.fundingRate, upstream:binance.globalLongShortAccountRatio, upstream:binance.openInterestHist, upstream:binance.takerlongshortRatio, upstream:binance.topLongShortAccountRatio, upstream:binance.topLongShortPositionRatio |
| 3644 | 2026-10-03 00:00 UTC | rdt-cli:search:SP500USDT | — |
| 3228 | 2026-10-02 04:44 UTC | — | twitter-cli:search:AAPLUSDT |
| 3205 | 2026-10-02 04:33 UTC | twitter-cli:search:AAPLUSDT | — |
| 2927 | 2026-10-01 16:00 UTC | — | rdt-cli:search:HOODUSDT |
| 2852 | 2026-10-01 13:31 UTC | rdt-cli:search:HOODUSDT | — |
| 2730 | 2026-10-01 08:00 UTC | — | rdt-cli:search:HOODUSDT |
| 2665 | 2026-10-01 05:32 UTC | — | rdt-cli:search:SP500USDT |
| 2621 | 2026-10-01 04:09 UTC | rdt-cli:search:SP500USDT | — |
| 2515 | 2026-10-01 00:00 UTC | rdt-cli:search:HOODUSDT | — |
| 2268 | 2026-09-30 13:30 UTC | — | rdt-cli:search:MSTRUSDT |
| 2222 | 2026-09-30 11:41 UTC | rdt-cli:search:MSTRUSDT | — |
| 2126 | 2026-09-30 08:00 UTC | — | rdt-cli:search:HOODUSDT, twitter-cli:search:MSTRUSDT |
| 2027 | 2026-09-30 03:21 UTC | rdt-cli:search:HOODUSDT, twitter-cli:search:MSTRUSDT | — |
| 1905 | 2026-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 |
| 1902 | 2026-09-29 21:33 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, upstream:binance.fundingRate, upstream:binance.globalLongShortAccountRatio, upstream:binance.openInterestHist, upstream:binance.takerlongshortRatio, upstream:binance.topLongShortAccountRatio, upstream:binance.topLongShortPositionRatio | — |
| 1652 | 2026-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 |
| 1650 | 2026-09-29 11:33 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 | — |
| 1579 | 2026-09-29 09:33 UTC | — | do_query:crypto_futures_funding_rate, do_query:crypto_futures_open_interest_history, do_query:crypto_futures_taker_volume |
| 1576 | 2026-09-29 09:28 UTC | do_query:crypto_futures_funding_rate, do_query:crypto_futures_open_interest_history, do_query:crypto_futures_taker_volume | — |
| 1319 | 2026-09-29 00:00 UTC | — | rdt-cli:search:SP500USDT |
| 1142 | 2026-09-28 16:00 UTC | rdt-cli:search:SP500USDT | — |
| 1135 | 2026-09-28 15:42 UTC | — | tickers.demo:SNDKUSDT |
| 1080 | 2026-09-28 14:27 UTC | — | rdt-cli:search:HOODUSDT, twitter-cli:search:AAPLUSDT |
| 968 | 2026-09-28 13:44 UTC | tickers.demo:SNDKUSDT | — |
| 945 | 2026-09-28 13:30 UTC | twitter-cli:search:AAPLUSDT | — |
| 922 | 2026-09-28 13:23 UTC | rdt-cli:search:HOODUSDT | — |
| 902 | 2026-09-28 12:51 UTC | — | do_query:crypto_futures_funding_rate |
| 900 | 2026-09-28 12:46 UTC | do_query:crypto_futures_funding_rate | — |
| 233 | 2026-09-28 06:07 UTC | — | do_query:equity_calendar, do_query:equity_ownership_insider_trading, rdt-cli:search:HOODUSDT |
| 222 | 2026-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 |
| 195 | 2026-09-28 05:25 UTC | rdt-cli:search:HOODUSDT | — |
| 87 | 2026-09-28 02:01 UTC | — | twitter-cli:search:AAPLUSDT |
| 58 | 2026-09-28 01:28 UTC | twitter-cli:search:AAPLUSDT | — |
| 32 | 2026-09-28 01:22 UTC | derivatives_sentiment.reddit_trending, do_query:equity_calendar, do_query:equity_ownership_insider_trading, news_feed.latest | — |
| 7 | 2026-09-28 00:07 UTC | derivatives_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
| change | kind | what and why | evidence |
|---|---|---|---|
| run2-d1 | code 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-d2 | observability | 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-d3 | code 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-d4 | prompt 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-d5 | code 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-d7 | prompt 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-d8 | code 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-d9 | code 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-d6 | code 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-a1 | policy 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-a2 | policy 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-a3 | policy 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-a4 | policy 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-a5 | policy 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-a6 | policy 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-a7 | policy 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-a8 | policy 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
| guard | status | ceiling | reason |
|---|---|---|---|
| G1 venue integrity | fired | exit | exit: Demo mark 90402.6 is 5.38% from its index 85788.1313578519705648, beyond the 3.00% limit basis and inputsDemo 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
| guard | status | ceiling | reason |
|---|---|---|---|
| G1 venue integrity | fired | exit | exit: Demo mark 90402.6 is 5.38% from its index 85788.1313578519705648, beyond the 3.00% limit basis and inputsDemo 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)
| series | request | fetched |
|---|---|---|
| demo_mark | GET /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_index | GET /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_market | GET /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_market | GET /api/v3/market/history-candles?category=USDC-FUTURES&endTime=1790179200000&interval=1H&limit=10&symbol=BTCPERP&type=market | 2026-09-24 11:59 UTC |
Verify
Nothing here needs to be taken on trust.
- 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. - Check the orders exist on Bitget Demo (read-only):
python scripts/verify_orders.py --public public/orders.json. - Replay any decision without a key:
t2sa replay --public public/ --decision <decision_id>. - Every card lists the ledger rows and the blobs that prove it;
sha256(blobs/<hash>)equals the file name.
| file | what it is |
|---|---|
| ledger.jsonl | the hash-chained ledger, byte for byte |
| verify.md | how to check everything below |
| metrics.json | the book's metric set |
| equity_hourly.csv | one row per hourly mark |
| trades.csv | closed trades, flat to flat |
| orders.json | every order: clientOid, venue orderId, fills |
| decisions.json | every decision and abstention |
| funnel.json | the guard funnel |
| arms.json | every arm's marks, trades and metrics |
| twin.json | the twin report |
| mirror.json | the live-marked mirror |
| redteam.json | the red-team report |
| toolkit.json | the coverage matrix |
| genesis.json | the pre-registration |
| environment.json | the environment proofs |
| replay.json | the venue-integrity replay |
| cards/index.json | every decision card |