{
 "rows": [
  {
   "surface": "agent_hub_bgc",
   "entry": "order --action place --dry-run --paper-trading",
   "purpose": "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",
   "judged_line": "Agent architecture quality / the Track 2 execution layer the handbook names: Agent Hub with --paper-trading produces the paper-trading log (handbook:422, :444)",
   "used_in": [
    "execution.executor.Executor",
    "execution.bgc.BgcTransport"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-02T19:48:30.728710Z",
   "visible_at": "decision card: orders (dry-run payload, clientOid, venue orderId, fills)",
   "notes": "in the log: 95 dry-run preview(s) logged"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "order --action place --paper-trading",
   "purpose": "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",
   "judged_line": "Agent architecture quality / the Track 2 execution layer the handbook names: Agent Hub with --paper-trading produces the paper-trading log (handbook:422, :444)",
   "used_in": [
    "execution.executor.Executor",
    "execution.bgc.BgcTransport"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-02T19:48:44.486084Z",
   "visible_at": "decision card: orders (dry-run payload, clientOid, venue orderId, fills)",
   "notes": "in the log: 21 acknowledged, 74 rejected, 0 unknown"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "order --action detail --paper-trading",
   "purpose": "the order read back by clientOid (or orderId) until it is terminal; resolves an UNKNOWN send without ever resending it",
   "judged_line": "Agent architecture quality / the Track 2 execution layer the handbook names: Agent Hub with --paper-trading produces the paper-trading log (handbook:422, :444)",
   "used_in": [
    "execution.executor.Executor",
    "execution.reconcile.Reconciler",
    "execution.bgc.BgcTransport"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-02T19:48:54.281870Z",
   "visible_at": "decision card: orders (dry-run payload, clientOid, venue orderId, fills)",
   "notes": "in the log: 21 order state(s) read back from the venue"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "order --action fills --paper-trading",
   "purpose": "fills: execution price, quantity, fee and realised P&L as the venue reports them; the book is built from these alone",
   "judged_line": "paper trading Sharpe, max drawdown, win rate: the hourly equity marks",
   "used_in": [
    "execution.executor.Executor",
    "execution.reconcile.Reconciler",
    "execution.bgc.BgcTransport"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-02T19:48:42.123000Z",
   "visible_at": "decision card: orders (dry-run payload, clientOid, venue orderId, fills)",
   "notes": "in the log: 22 fill(s) read"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "order --action history --paper-trading",
   "purpose": "the daily full order history, so an order the agent did not see acknowledged is still found and reconciled",
   "judged_line": "Agent architecture quality / the Track 2 execution layer the handbook names: Agent Hub with --paper-trading produces the paper-trading log (handbook:422, :444)",
   "used_in": [
    "execution.reconcile.Reconciler",
    "execution.bgc.BgcTransport"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-08T00:54:24.760048Z",
   "visible_at": "decision card: orders (dry-run payload, clientOid, venue orderId, fills)",
   "notes": "in the log: 784 reconciliation(s); latest found 0 discrepancy(ies)"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "position --action info --paper-trading",
   "purpose": "the venue's own positions, compared with the book built from fills; every difference is a logged discrepancy",
   "judged_line": "risk control layer effectiveness: an input the kernel rules on",
   "used_in": [
    "execution.reconcile.Reconciler",
    "execution.bgc.BgcTransport"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-08T00:54:24.760048Z",
   "visible_at": "decision card: orders (dry-run payload, clientOid, venue orderId, fills)",
   "notes": "in the log: 784 reconciliation(s); latest found 0 discrepancy(ies)"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "strategy_order --action open --paper-trading",
   "purpose": "the venue's open stop orders (type tpsl), so every position has exactly one stop (G4)",
   "judged_line": "risk control layer effectiveness: an input the kernel rules on",
   "used_in": [
    "execution.stops.StopManager",
    "execution.reconcile.Reconciler",
    "execution.bgc.BgcTransport"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-08T00:54:24.760048Z",
   "visible_at": "decision card: kernel ruling, per guard",
   "notes": "in the log: 784 reconciliation(s); latest found 0 discrepancy(ies)"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "strategy_order --action place --paper-trading",
   "purpose": "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)",
   "judged_line": "risk control layer effectiveness: an input the kernel rules on",
   "used_in": [
    "execution.stops.StopManager",
    "execution.bgc.BgcTransport"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-09-30T13:56:41.629733Z",
   "visible_at": "decision card: kernel ruling, per guard",
   "notes": "in the log: 8 stop(s) placed or replaced"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "strategy_order --action cancel --paper-trading",
   "purpose": "cancels an orphaned or superseded stop, only after its replacement is in place",
   "judged_line": "risk control layer effectiveness: an input the kernel rules on",
   "used_in": [
    "execution.stops.StopManager",
    "execution.bgc.BgcTransport"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-09-30T13:41:37.668535Z",
   "visible_at": "decision card: kernel ruling, per guard",
   "notes": "in the log: 9 stop(s) cancelled"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "account_overview --paper-trading",
   "purpose": "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",
   "judged_line": "hard safety rule: orders only ever reach Bitget's Demo environment (DESIGN.md §2, §11.2)",
   "used_in": [
    "execution.environment.prove_environment",
    "execution.reconcile.Reconciler"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-06T14:56:00.337609Z",
   "visible_at": "demo page: environment proof",
   "notes": "in the log: environment proof: Demo read ok=True (code 00000)"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "funds_records --action financial --paper-trading",
   "purpose": "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",
   "judged_line": "paper trading Sharpe, max drawdown, win rate: the hourly equity marks",
   "used_in": [
    "execution.reconcile.Reconciler",
    "execution.bgc.BgcTransport"
   ],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: equity against every arm",
   "notes": ""
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "raw --operationId getAccountAssets --paper-trading",
   "purpose": "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",
   "judged_line": "hard safety rule: orders only ever reach Bitget's Demo environment (DESIGN.md §2, §11.2)",
   "used_in": [
    "execution.environment.prove_environment"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-06T14:56:00.337609Z",
   "visible_at": "demo page: environment proof",
   "notes": "in the log: environment proof: Demo read ok=True (code 00000)"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "raw --operationId getAccountAssets --read-only",
   "purpose": "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)",
   "judged_line": "hard safety rule: orders only ever reach Bitget's Demo environment (DESIGN.md §2, §11.2)",
   "used_in": [
    "execution.environment.prove_environment"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-06T14:56:00.337609Z",
   "visible_at": "demo page: environment proof",
   "notes": "in the log: environment proof: the live environment refused the Demo key=True (code 40099) (a refusal is the expected answer)"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "flag --paper-trading",
   "purpose": "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",
   "judged_line": "hard safety rule: orders only ever reach Bitget's Demo environment (DESIGN.md §2, §11.2)",
   "used_in": [
    "execution.bgc",
    "execution.environment.confirm_paptrading_header"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-06T14:56:00.337609Z",
   "visible_at": "demo page: environment proof",
   "notes": "in the log: installed SDK sends paptrading: 1 = True"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "market",
   "purpose": "Bitget market data through the CLI",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "account_config",
   "purpose": "leverage, margin and hold-mode changes",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "not used: the agent reads the hold mode (account_overview) and never changes account settings; sizing is by notional against equity, not by leverage"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "transfer_funds",
   "purpose": "internal transfers",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "not used: a paper book moves no funds"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "deposit",
   "purpose": "deposit addresses and records",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "not used: a paper book moves no funds"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "withdraw",
   "purpose": "withdrawals",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "not used: a paper book moves no funds, and the Demo key is created without the Withdraw permission (DESIGN.md §21)"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "repayment",
   "purpose": "margin loan repayment",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "not used: no margin loan is taken"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "subaccount",
   "purpose": "sub-account management",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "not used: one Demo account, no sub-accounts"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "broker",
   "purpose": "broker operations",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "not used: not a broker integration"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "loan",
   "purpose": "crypto loans",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "not used: no loan is taken"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "inst_loan",
   "purpose": "institutional loans",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "not used: no loan is taken"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "tax",
   "purpose": "tax records",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "not used: outside the trading loop"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "discover",
   "purpose": "the CLI's live catalog of operations",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "bitget-agent-mcp (the same SDK over MCP)",
   "purpose": "Agent Hub as an MCP server",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "agent_hub_bgc",
   "entry": "Agentic account (OAuth, bitget-agent-mcp)",
   "purpose": "the live Agentic sub-account",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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)"
  },
  {
   "surface": "bitget_public_market_api",
   "entry": "GET /api/v3/market/tickers (Demo, header paptrading: 1)",
   "purpose": "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",
   "judged_line": "risk control layer effectiveness: an input the kernel rules on",
   "used_in": [
    "perception.snapshot",
    "book.marks.mark_point",
    "kernel.guards",
    "execution.simulated"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "decision card: kernel ruling, per guard",
   "notes": "in the log: newest snapshot, 15 call(s): ok 15"
  },
  {
   "surface": "bitget_public_market_api",
   "entry": "GET /api/v3/market/tickers (live)",
   "purpose": "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",
   "judged_line": "decision explainability: shown to the model and on the decision card",
   "used_in": [
    "perception.snapshot",
    "perception.features.build_features",
    "kernel.guards",
    "book.marks"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "decision card: positioning table",
   "notes": "in the log: newest snapshot, 15 call(s): ok 15"
  },
  {
   "surface": "bitget_public_market_api",
   "entry": "GET /api/v3/market/instruments (Demo, header paptrading: 1)",
   "purpose": "Demo order limits and fees (minOrderQty, quantityMultiplier, priceMultiplier, minOrderAmount, maxMarketOrderQty, takerFeeRate): eligibility (G11), rounding, splits and the expected fee of every order",
   "judged_line": "risk control layer effectiveness: an input the kernel rules on",
   "used_in": [
    "runtime.wiring",
    "kernel.guards",
    "kernel.planner"
   ],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "decision card: orders (dry-run payload, clientOid, venue orderId, fills)",
   "notes": ""
  },
  {
   "surface": "bitget_public_market_api",
   "entry": "GET /api/v3/market/history-candles type=market interval=1H (live)",
   "purpose": "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",
   "judged_line": "decision explainability: shown to the model and on the decision card",
   "used_in": [
    "perception.features.ma_distance_atr",
    "analysis.mirror"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "demo page: live-marked mirror",
   "notes": "in the log: newest snapshot, 28 call(s): ok 28"
  },
  {
   "surface": "bitget_public_market_api",
   "entry": "GET /api/v3/market/history-candles type=index interval=1H (Demo, header paptrading: 1)",
   "purpose": "Demo index closes: the stale-index detector that refuses new exposure when the Demo index stops moving while its session should be open (G1)",
   "judged_line": "risk control layer effectiveness: an input the kernel rules on",
   "used_in": [
    "perception.features.index_move_bps_3h",
    "kernel.guards"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "decision card: kernel ruling, per guard",
   "notes": "in the log: newest snapshot, 28 call(s): ok 28"
  },
  {
   "surface": "bitget_public_market_api",
   "entry": "GET /api/v3/market/history-candles type=mark interval=1H (Demo, header paptrading: 1)",
   "purpose": "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",
   "judged_line": "paper trading Sharpe, max drawdown, win rate: the hourly equity marks",
   "used_in": [
    "analysis.armsim"
   ],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: equity against every arm",
   "notes": ""
  },
  {
   "surface": "bitget_public_market_api",
   "entry": "GET /api/v3/market/history-fund-rate (live)",
   "purpose": "Live funding history: the funding z-score over the last 90 settlements, shown to the model and the funding event trigger",
   "judged_line": "decision explainability: shown to the model and on the decision card",
   "used_in": [
    "perception.features.funding_z",
    "events.triggers"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "decision card: positioning table",
   "notes": "in the log: newest snapshot, 28 call(s): ok 28"
  },
  {
   "surface": "bitget_public_market_api",
   "entry": "GET /api/v3/market/instruments (live)",
   "purpose": "live order limits",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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)"
  },
  {
   "surface": "bitget_public_market_api",
   "entry": "GET /api/v3/market/history-fund-rate (Demo, header paptrading: 1)",
   "purpose": "Demo funding history",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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)"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "sentiment_index.current",
   "purpose": "crypto Fear & Greed from the second service: agreement check, stand-in for the primary",
   "judged_line": "decision explainability: the value is shown to the model and on the decision card",
   "used_in": [
    "perception.features.mood_from"
   ],
   "last_health": "hollow",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "decision card: mood and source agreement",
   "notes": "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\": \"\"}"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "derivatives_sentiment.long_short",
   "purpose": "retail long/short when bitget-mcp-server has none",
   "judged_line": "Agent architecture quality: the Track 2 perception layer the handbook names (bitget-signal + bitget-mcp-server)",
   "used_in": [
    "sources.toolkit.ToolkitFacade.derivatives"
   ],
   "last_health": "hollow",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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=hollow, METAUSDT=hollow, NVDAUSDT=hollow, AMZNUSDT=hollow, AAPLUSDT=hollow; e.g. upstream error envelope {\"error\": \"\"}; in the log: newest snapshot, 1 call(s): hollow 1; not ok: BTCUSDT=hollow; e.g. upstream error envelope {\"error\": \"\"}"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "derivatives_sentiment.top_ls",
   "purpose": "top-trader long/short when bitget-mcp-server has none",
   "judged_line": "Agent architecture quality: the Track 2 perception layer the handbook names (bitget-signal + bitget-mcp-server)",
   "used_in": [
    "sources.toolkit.ToolkitFacade.derivatives"
   ],
   "last_health": "hollow",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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=hollow, METAUSDT=hollow, NVDAUSDT=hollow, AMZNUSDT=hollow, AAPLUSDT=hollow; e.g. upstream error envelope {\"error\": \"\"}; in the log: newest snapshot, 1 call(s): hollow 1; not ok: BTCUSDT=hollow; e.g. upstream error envelope {\"error\": \"\"}"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "derivatives_sentiment.taker_ratio",
   "purpose": "taker ratio when bitget-mcp-server has none",
   "judged_line": "Agent architecture quality: the Track 2 perception layer the handbook names (bitget-signal + bitget-mcp-server)",
   "used_in": [
    "sources.toolkit.ToolkitFacade.derivatives"
   ],
   "last_health": "hollow",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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=hollow, METAUSDT=hollow, NVDAUSDT=hollow, AMZNUSDT=hollow, AAPLUSDT=hollow; e.g. upstream error envelope {\"error\": \"\"}; in the log: newest snapshot, 1 call(s): hollow 1; not ok: BTCUSDT=hollow; e.g. upstream error envelope {\"error\": \"\"}"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "derivatives_sentiment.open_interest",
   "purpose": "open-interest series when bitget-mcp-server has none (taken whole, never spliced)",
   "judged_line": "Agent architecture quality: the Track 2 perception layer the handbook names (bitget-signal + bitget-mcp-server)",
   "used_in": [
    "sources.toolkit.ToolkitFacade.derivatives"
   ],
   "last_health": "hollow",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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=hollow, METAUSDT=hollow, NVDAUSDT=hollow, AMZNUSDT=hollow, AAPLUSDT=hollow; e.g. upstream error envelope {\"error\": \"\"}; in the log: newest snapshot, 1 call(s): hollow 1; not ok: BTCUSDT=hollow; e.g. upstream error envelope {\"error\": \"\"}"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "derivatives_sentiment.reddit_trending",
   "purpose": "Reddit attention ranking (crypto and stocks), screened as crowd text",
   "judged_line": "decision explainability: the value is shown to the model and on the decision card",
   "used_in": [
    "crowd.quarantine",
    "crowd.novelty",
    "perception.snapshot"
   ],
   "last_health": "hollow",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "decision card: text shown to the model",
   "notes": "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\": \"\"}"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "news_feed.latest",
   "purpose": "news headlines, screened as crowd text",
   "judged_line": "decision explainability: the value is shown to the model and on the decision card",
   "used_in": [
    "crowd.quarantine",
    "crowd.novelty",
    "perception.snapshot"
   ],
   "last_health": "hollow",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "decision card: text shown to the model",
   "notes": "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)"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "technical_analysis.rsi",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "ok",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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)"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "crypto_market.global",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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('')"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "crypto_price.price",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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('')"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "crypto_derivatives.ticker_24h",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "ok",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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)"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "global_assets.price",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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: "
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "macro_indicators.latest_release",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "hollow",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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\": \"\"}"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "rates_yields.yield_curve",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "hollow",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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)"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "cross_asset.correlation",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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: "
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "tradfi_news.earnings",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "hollow",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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\": \"\"}"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "social_trending.trending",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "hollow",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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)"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "defi_analytics.tvl_rank",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "hollow",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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)"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "dex_market.trending",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "hollow",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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)"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "network_status.btc_fees",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "hollow",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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)"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "global_data.forex",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "hollow",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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)"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "cn_market.index",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "timeout",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "backtest.chart",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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\"}"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "sentiment_index.history",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "hollow",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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\": \"\"}"
  },
  {
   "surface": "bitget_signal_mcp",
   "entry": "derivatives_sentiment.top_position",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "hollow",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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\": \"\"}"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_sentiment_crypto_fear_greed",
   "purpose": "crypto Fear & Greed (primary)",
   "judged_line": "decision explainability: an event trigger fires on it and says why",
   "used_in": [
    "perception.features.mood_from",
    "events.triggers"
   ],
   "last_health": "error",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "decision card: mood and source agreement",
   "notes": "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 with an HTML error page"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:sentiment_market_fear_greed",
   "purpose": "equity-market Fear & Greed",
   "judged_line": "decision explainability: an event trigger fires on it and says why",
   "used_in": [
    "perception.features.mood_from",
    "events.triggers"
   ],
   "last_health": "error",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "decision card: mood and source agreement",
   "notes": "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 with an HTML error page"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_long_short_ratio",
   "purpose": "retail long/short account ratio (Binance futures crowd)",
   "judged_line": "decision explainability: the value is shown to the model and on the decision card",
   "used_in": [
    "perception.features.build_features"
   ],
   "last_health": "error",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "decision card: positioning table",
   "notes": "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.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: BTCUSDT=error; e.g. service reported failure (status 503): the upstream answered with an HTML error page"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_long_short_top_account_ratio",
   "purpose": "top-trader long/short account ratio",
   "judged_line": "decision explainability: the value is shown to the model and on the decision card",
   "used_in": [
    "perception.features.build_features"
   ],
   "last_health": "error",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "decision card: positioning table",
   "notes": "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.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: BTCUSDT=error; e.g. service reported failure (status 503): the upstream answered with an HTML error page"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_long_short_top_position_ratio",
   "purpose": "top-trader long/short position ratio",
   "judged_line": "decision explainability: the value is shown to the model and on the decision card",
   "used_in": [
    "perception.features.build_features"
   ],
   "last_health": "error",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "decision card: positioning table",
   "notes": "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.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: BTCUSDT=error; e.g. service reported failure (status 503): the upstream answered with an HTML error page"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_taker_volume",
   "purpose": "taker buy/sell volume ratio",
   "judged_line": "decision explainability: the value is shown to the model and on the decision card",
   "used_in": [
    "perception.features.build_features"
   ],
   "last_health": "error",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "decision card: positioning table",
   "notes": "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.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: BTCUSDT=error; e.g. service reported failure (status 503): the upstream answered with an HTML error page"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_open_interest_history",
   "purpose": "hourly open-interest history: 1h and 24h change, the jump trigger",
   "judged_line": "decision explainability: an event trigger fires on it and says why",
   "used_in": [
    "perception.features.oi_change_pct",
    "events.triggers"
   ],
   "last_health": "error",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "decision card: positioning table",
   "notes": "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.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: BTCUSDT=error; e.g. service reported failure (status 503): the upstream answered with an HTML error page"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_funding_rate",
   "purpose": "Binance funding rate (reported in percent, converted to a fraction)",
   "judged_line": "decision explainability: the value is shown to the model and on the decision card",
   "used_in": [
    "perception.features.build_features"
   ],
   "last_health": "error",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "decision card: positioning table",
   "notes": "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.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: BTCUSDT=error; e.g. service reported failure (status 503): the upstream answered with an HTML error page"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_calendar",
   "purpose": "earnings dates of the eleven underlying stocks (vendor date offset corrected)",
   "judged_line": "decision explainability: an event trigger fires on it and says why",
   "used_in": [
    "perception.features.build_features",
    "events.triggers"
   ],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "decision card: calendar",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_ownership_insider_trading",
   "purpose": "insider (Form 4) filings of the eleven underlying stocks",
   "judged_line": "decision explainability: an event trigger fires on it and says why",
   "used_in": [
    "events.triggers"
   ],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "decision card: calendar",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "guide",
   "purpose": "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",
   "judged_line": "Agent architecture quality: the Track 2 perception layer the handbook names (bitget-signal + bitget-mcp-server, handbook:396)",
   "used_in": [
    "sources.toolkit.probe_all"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "67 entries: crypto 39, equity 22, etf 3, news 1, sentiment 2"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_market",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_coin_info",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "not used: reference data, not sentiment; measured error: service reported failure (status 503): the upstream answered with an HTML error page"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_spot_kline",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_spot_ticker",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_spot_order_book",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_spot_trades",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_spot_taker_volume",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_spot_big_trades",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_mark_price",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_kline",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_ticker",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_order_book",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_trades",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_open_interest",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_liquidations",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_big_trades",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_onchain_fund_flow",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_onchain_trading_signal",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_onchain_exchange_flows",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_onchain_stablecoin_flow",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_onchain_token_unlock_event",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_institutional_company_flow",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_etf_flows",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_institutional_mining_company_flow",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_institutional_country_flow",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_indicators_technical_indicators",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "not used: not a pre-registered input of policy v1; measured error: service reported failure (status None): Missing required param: 'symbols'"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_hyperliquid_position_distribution_by_balance_tag",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_hyperliquid_position_distribution_by_pnl_tag",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_hyperliquid_position_distribution_by_position_tag",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_indicators_hyperliquid_whale_sentiment",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_hyperliquid_whale_alert",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_spot_big_trades_window",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:crypto_futures_big_trades_window",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_price_quote",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_price_historical",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_profile",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_fundamental_management",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_fundamental_balance",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_fundamental_income",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_fundamental_cash",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_fundamental_metrics",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_fundamental_ratios",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_fundamental_dividends",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_ownership_major_holders",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_ownership_form_13f",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_ownership_inst_position_detail",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_ownership_inst_position_summary",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_estimates_price_target",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_estimates_forward_pe",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_estimates_forward_eps",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_estimates_forward_ebitda",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_estimates_forward_sales",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:equity_estimates_consensus",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:etf_info",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "not used: no ETF is traded; measured error: service reported failure (status 503): the upstream answered with an HTML error page"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:etf_holdings",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "not used: no ETF is traded; measured error: service reported failure (status 503): the upstream answered with an HTML error page"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:etf_price_performance",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "not used: no ETF is traded; measured error: service reported failure (status 503): the upstream answered with an HTML error page"
  },
  {
   "surface": "bitget_mcp_server",
   "entry": "do_query:news_label_search",
   "purpose": "measured, not used",
   "judged_line": "",
   "used_in": [],
   "last_health": "error",
   "last_checked_at": "2026-10-07T15:03:07.187930Z",
   "visible_at": "toolkit coverage matrix",
   "notes": "not used: needs an integer label the catalog does not define; measured error: service reported failure (status None): Missing required param: 'label'"
  },
  {
   "surface": "getagent_playbook",
   "entry": "Playbook replica (runtime_profile llm_bounded, official_evidence_kind paper)",
   "purpose": "the same policy run as a Bitget-hosted Playbook, whose Sharpe, drawdown and win rate Bitget computes itself (win plan Move 16)",
   "judged_line": "",
   "used_in": [],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "demo page: toolkit coverage matrix",
   "notes": "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"
  },
  {
   "surface": "crowd_x",
   "entry": "twitter-cli search <cashtag> --type Latest --exclude retweets",
   "purpose": "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)",
   "judged_line": "decision explainability: shown to the model and on the decision card",
   "used_in": [
    "crowd.adapters.XCollector",
    "crowd.quarantine",
    "crowd.novelty",
    "perception.snapshot"
   ],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "decision card: text shown to the model",
   "notes": "not Bitget: listed because it feeds the same decision"
  },
  {
   "surface": "crowd_reddit",
   "entry": "rdt-cli search <alias> --sort new --json",
   "purpose": "Reddit posts naming each universe instrument, screened and clustered like X; one account is one source however many subreddits it posts in",
   "judged_line": "decision explainability: shown to the model and on the decision card",
   "used_in": [
    "crowd.adapters.RedditCollector",
    "crowd.quarantine",
    "crowd.novelty",
    "perception.snapshot"
   ],
   "last_health": null,
   "last_checked_at": null,
   "visible_at": "decision card: text shown to the model",
   "notes": "not Bitget: listed because it feeds the same decision"
  },
  {
   "surface": "upstream_direct",
   "entry": "Binance futures/data/* and fapi/v1/fundingRate; alternative.me fng; publishers' RSS",
   "purpose": "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",
   "judged_line": "Agent architecture quality: the Track 2 perception layer the handbook names (bitget-signal + bitget-mcp-server, handbook:396)",
   "used_in": [
    "sources.upstream.UpstreamDirect",
    "sources.toolkit.ToolkitFacade",
    "perception.snapshot"
   ],
   "last_health": "ok",
   "last_checked_at": "2026-10-08T01:00:44.819790Z",
   "visible_at": "decision card: positioning table",
   "notes": "not Bitget: the upstream a Bitget service names, counted apart from it; in the log: newest snapshot, 7 call(s): ok 7"
  }
 ],
 "counts": {
  "agent_hub_bgc": {
   "used": 14,
   "not_used": 14,
   "used_ok": 13,
   "used_unmeasured": 1
  },
  "bitget_public_market_api": {
   "used": 7,
   "not_used": 2,
   "used_ok": 5,
   "used_unmeasured": 2
  },
  "bitget_signal_mcp": {
   "used": 7,
   "not_used": 18,
   "used_ok": 0,
   "used_unmeasured": 0
  },
  "bitget_mcp_server": {
   "used": 11,
   "not_used": 57,
   "used_ok": 1,
   "used_unmeasured": 0
  },
  "getagent_playbook": {
   "used": 0,
   "not_used": 1,
   "used_ok": 0,
   "used_unmeasured": 0
  },
  "crowd_x": {
   "used": 1,
   "not_used": 0,
   "used_ok": 0,
   "used_unmeasured": 1
  },
  "crowd_reddit": {
   "used": 1,
   "not_used": 0,
   "used_ok": 0,
   "used_unmeasured": 1
  },
  "upstream_direct": {
   "used": 1,
   "not_used": 0,
   "used_ok": 1,
   "used_unmeasured": 0
  }
 }
}
