Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add playbattlegrid/battlegrid-mcp --skill battlegrid-market-analysisgit clone --depth 1 https://github.com/playbattlegrid/battlegrid-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/playbattlegrid/battlegrid-mcp/battlegrid-market-analysis)<a href="https://agentmods.dev/skills/playbattlegrid/battlegrid-mcp/battlegrid-market-analysis"><img src="https://agentmods.dev/badge/skills/playbattlegrid/battlegrid-mcp/battlegrid-market-analysis/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/playbattlegrid/battlegrid-mcp/battlegrid-market-analysis"><img src="https://agentmods.dev/badge/skills/playbattlegrid/battlegrid-mcp/battlegrid-market-analysis.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00078 | $0.02181 |
| Opus 5.5 | $0.00031 | $0.00872 |
| Sonnet 5.5 | $0.00016 | $0.00436 |
| Haiku 4.5 | $0.00008 | $0.00218 |
Grade A, and why
battlegrid-market-analysis scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 115 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Market Analysis
You are answering "what is the market doing, and what should I watch?" with measurements, not opinions.
The one rule: measure before you opine
Do not form a view and then fetch data that agrees with it. Fetch first, state what the numbers say, and let the view follow. Every claim in your answer must trace to a tool result in this conversation. If you did not measure it, you do not assert it.
Sequence
Run these in order. Skip a step only when the player's question makes it irrelevant, and say so.
- Regime.
get_regime_snapshotfor the current read.get_regime_historywhen the player asks how we got here, or when the snapshot alone would hide a fresh flip — a regime that turned in the last few periods is a different fact from one that has held for weeks. Read the snapshot's evidence before its label: a label the hysteresis buffer is holding is the previous bar's, not this bar's, and conviction names which rule matched, not how comfortably — the margins to each gate say how close the read is to turning. - Market context.
get_market_context— this carries the funding and open-interest picture. Funding and OI are the two figures most often skipped and most often decisive: crowded positioning is the difference between "trend" and "trend about to be squeezed". Report both. How much of the field is moving is step 4b's read. - Leaders and laggards. One ranked
preview_strategy_reportper end, each returning the coins with their rows, so no per-coin follow-up is needed:coinSelection: { mode: "ranked", limit: 10, category: "ALL", rankBy: { metric: "ROC12", ordering: "hi" } }for the leaders andordering: "lo"for the laggards, withdetail: "concise"andsource: { kind: "FIELDS", timeframe, sections: [{ kind: "platform", sectionKey: "includeRelativeStrength" }] }.CLOSE_CHANGEunder"far"names the biggest movers in either direction. Omitcategoryand the cohort is crypto only. Name the actual coins at both ends, not just "strength in majors". A laggard list is as informative as a leader list and is usually omitted. 3b. Many coins on the same indicators — one call, not one per coin. When the answer needs the indicator modules ACROSS a set of coins (comparing RSI, funding or volatility over the leaders, over a category, over the session pool), usepreview_strategy_report: one section JSON per module with coins as rows, each column described once instead of per coin, and the exact size of the response it served (budgetUsage.resultChars). The defaultdetail: "concise"is the read;"detailed"adds only the authoring contract a strategy builder needs. Asklist_strategy_categoriesfor the section catalogue and pass the sections you want, each as{ "kind": "platform", "sectionKey": "includeRsi" }, insidesource: { "kind": "FIELDS", "timeframe": …, "sections": [ … ] }— no authoring vocabulary is needed. Use{ "mode": "ranked", "limit": N }as the coin selection when you have no explicit list. Looping a per-coin tool over N coins costs several times this and returns the same values. A refused preview names its recovery innextAct. - Coin deep-dive, when the player named a coin or when one dominates the read: the SAME
preview_strategy_reportcall as step 3, with{ "mode": "explicit", "tickers": ["SOL"] }as the coin selection and the funding / open-interest / positioning sections chosen — one coin is a one-row report, not a different tool. Thenget_coin_candlesfor the price action. For momentum across timeframes, add the Relative Strength section — it carries the PPO trajectory and its zero-crossing — or authorPPO_HISTcolumns at the intervals you want pinned; that is the same read at the precision the catalog declares, in the call you are already making. Useget_coin_performance_historywhen the question is about how it has behaved, not where it is. Coin symbols are case-insensitive and exchange symbols are accepted (btc,kPEPE,xyz:BRENTOIL); a symbol that names no tracked coin is rejected with an error naming the field, never answered as an empty read — say the coin is not tracked rather than retrying it. 4b. How much of the FIELD is moving, not just this coin. Add a custom section bound to the market at one breadth scope to the samepreview_strategy_reportcall —{ "kind": "custom", "title": "Crypto breadth", "benchmarkTicker": null, "marketScope": "crypto", "notes": null, "columns": [ … ] }— with the market columns the question needs:MKT_NET(mktBreadth, the up share less the down share) andMKT_PPO_NET(mktPpoNet, the same over positive versus negative momentum) for the two-axis read, andMKT_ABOVE_EMAunderclassifyZone(mktAboveEma_zone:risk-offwhen 20% or less of the scope closes above its own EMA(50),risk-onat 80% or more,neutralbetween) for the persistent state. Each column is{ "metric": "MKT_NET", "transformId": "value", "timeframe": { "rel": "anchor" } }in shape. The section renders ONE row for the whole field, named by its scope, never a per-coin download; the scopes areall,crypto,l1,memes,defi,tradfi,stocks,indicesandcommodities, so a crypto call is not swayed by an equities selloff — two scopes are two sections. A market reading is a series from the moment it was first recorded: a trajectory or a regime-timeframe column ("timeframe": { "rel": "regime" }→mktBreadth_htf) works as on any coin column, and a window reaching back before the series began reads absent — say so rather than reading it as a flat market. 4c. Stablecoin stress. When the question is whether the dollar legs are holding, bind a section to a declared pair —"benchmarkTicker": "USDT_USD"(USDT against USD on Coinbase) or"USDC_USDT"(USDC against USDT on Binance), spelled exactly so — withPAR_DEVcolumns:parDevis the close's signed % from its par of 1, andparDev_zonereadsat parinside ±0.20%,driftingfrom there to under ±1.00% anddepeggedat ±1.00% or beyond. On theUSDT_USDsection,{ "metric": "PAR_DEV", "transformId": "relativeTo", "timeframe": { "rel": "anchor" }, "instrument": "USDC_USDT" }(parDev_USDC_USDT_rel) is USDT's deviation less USDC/USDT's, in points — money rotating between the two. A cross-venue price premium embeds this peg, so read it beside any premium you report. - Close with what to watch. Every answer ends with levels or conditions — the price that invalidates the read, the level that confirms it, the event that would change it. An analysis with no "what to watch" close is unfinished.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago Changed · +22 lines 889ba8a80558
- 10d ago Changed · +6 lines e50a63492c63
- 22d ago Changed fcbe98e30e1e
- 24d ago Changed · +1 lines b647dbe9db4e
- 1mo ago Changed · +5 lines 875bda71dd76
- 1mo ago Changed · +4 lines 3a9943de9f48
- 2mo ago First seen · 77 lines · 78 tokens per session scan A 22fde9c4eac0
battlegrid-market-analysis is a skill published in the GitHub repository playbattlegrid/battlegrid-mcp (0 stars, last pushed today), licensed MIT. It adds 78 tokens to every session and 2,181 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-05.
battlegrid-market-analysis compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| battlegrid-market-analysisplaybattlegrid/battlegrid-mcp | Skill | 0 | today | MIT | A | 78 | Claude Code, Codex |
| sector-rotationHKUDS/Vibe-Trading | Skill | 38k | yesterday | MIT | A | 39 | Claude Code, Codex |
| twitter-readerhimself65/finance-skills | Skill | 3.5k | 2d ago | MIT | A | 110 | Claude Code |
| strategy-pivot-designertradermonty/claude-trading-skills | Skill | 3.7k | 2d ago | MIT | A | 28 | Claude Code, Codex |
| energy-procurementhashgraph-online/awesome-codex-plugins | Skill | 1.5k | yesterday | Apache-2.0 | A | 93 | Claude Code, Codex |
| airdrop-hunting-guidenirholas/three.ws | Skill | 269 | yesterday | Apache-2.0 | A | 54 | Claude Code, Codex |
| multi-expert-analyzerdigoal/blog | Skill | 8.6k | 2d ago | GPL-2.0 | A | 292 | Codex |