SportteryAPI: Skill for Claude Code

.claude/skills/sporttery-odds/SKILL.md

sporttery-odds is a skill for Claude Code from Johnserf-Seed/SportteryAPI. It costs 102 tokens per session (1,029 once invoked), scanned A, original, MIT.

A tool for retrieving and analysing China Sports Lottery football betting odds. It calculates probabilities, return rates, value comparisons, Kelly figures, and parlay payouts from odds data, without making predictions.

In plain words
What is it for?
Use it to fetch current Jingcai matches and odds, derive implied or no-vig probabilities, compare prices with a reference set, and calculate single-match or parlay payouts.
Why use it?
It removes the need to calculate these figures by hand or gather odds through separate interfaces. Live odds require access to the Sporttery Odds service; calculations can also use odds supplied by the user.

Skill for Claude Code

Written for Claude Code: installed under .claude/.

This is Johnserf-Seed/SportteryAPI's own configuration. It tells Claude Code how to work on SportteryAPI itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything SportteryAPI configures →

Reuse

Borrowing it

Nothing to install: this file belongs to Johnserf-Seed/SportteryAPI. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/Johnserf-Seed/SportteryAPI/main/.claude/skills/sporttery-odds/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/Johnserf-Seed/SportteryAPI

Made for: Claude Code.

Wrote 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.

agentmods badge for sporttery-odds

README.md
[![agentmods](https://agentmods.dev/badge/skills/johnserf-seed/sportteryapi/sporttery-odds/github.svg)](https://agentmods.dev/skills/johnserf-seed/sportteryapi/sporttery-odds)
Your own site
<a href="https://agentmods.dev/skills/johnserf-seed/sportteryapi/sporttery-odds"><img src="https://agentmods.dev/badge/skills/johnserf-seed/sportteryapi/sporttery-odds/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.

agentmods 80×15 button for sporttery-odds

Your own site · 80×15
<a href="https://agentmods.dev/skills/johnserf-seed/sportteryapi/sporttery-odds"><img src="https://agentmods.dev/badge/skills/johnserf-seed/sportteryapi/sporttery-odds.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 102 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,029 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00102 $0.01029
Opus 5 $0.00051 $0.00515
Sonnet 5 $0.00020 $0.00206
Haiku 4.5 $0.00010 $0.00103

Measured 11d ago against content hash 50c73d3e1ed6, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

sporttery-odds 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 11d 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.

.claude/skills/sporttery-odds/SKILL.md · 63 lines

How it starts

The opening of the file, as written. The whole thing — 63 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Sporttery Odds

This skill drives the Sporttery Odds service in this repository (a Cloudflare Worker REST API + a local MCP server) to fetch and analyze 竞彩足球 odds. All derivation is purely from the odds — no predictions.

Pick an interface (in order of preference)

  1. MCP tools — if the sporttery-odds MCP server is connected, use its tools directly: get_matches, get_match, derive_odds, compare_value, calc_parlay, list_parlay_types, get_meta. This is the primary path.
  2. REST — if a Worker is running/deployed: GET /api/matches, GET /api/match/:id, POST /api/derive, POST /api/value, POST /api/parlay, GET /api/parlay/types, GET /api/meta. Add the API key if one is configured (Authorization: Bearer <key>).
  3. Local, no server — run the pure engine via Node, e.g. npm run mcp:smoke to sanity-check, or import src/derive.ts / src/parlay.ts in a one-off node --experimental-strip-types script.

Live odds need the service to reach the geo-restricted upstream; the local MCP server reaches it directly, the deployed Worker needs UPSTREAM_PROXY. Compute tools (derive / value / parlay) work with any odds the user provides — no upstream.

Metric cheat-sheet (what the numbers mean)

  • impliedProb = 1/odds — includes the bookmaker margin.
  • 返还率 returnRate = 1/Σ(1/odds) — theoretical return-to-player. Lower ⇒ bigger margin. 竞彩 SPF is typically ~0.75–0.90.
  • 去水概率 noVigProb = (1/odds)/Σ — margin-removed "true" probability (sums to 1).
  • 真实赔率 fairOdds = 1/noVigProb.
  • 凯利指数 kelly = offeredOdds × referenceProb. >1 ⇒ positive expected value. Needs an EXTERNAL reference (a single odds set degenerates to returnRate).
  • trend up/flat/down — sporttery's own odds movement flag.

Common workflows

  1. "Latest odds for team / league / today"get_matches with pools, league, or date filters. Report each outcome's odds, 去水概率, and the market's 返还率. Don't dump all five pools unless asked — had,hhad is usually enough.
  2. "Is this a value bet?" → get a reference odds set (the user's 欧赔, or a bookmaker consensus) and call compare_value with {offered, reference}. Flag outcomes where kelly > 1; mention the EV and (optionally) Kelly stake fraction.
  3. "How much would this parlay pay?"calc_parlay with legs:[{odds}], a passType (单关, 3串1, …) and multiplier (倍数). Report 注数, 总投注, 最高奖金 (note the 500万 cap). Use per-leg result: win|lose|void for a settled-ticket calculation.
  4. "What 过关 types exist for N matches?"list_parlay_types?matches=N.
  5. Interpreting a market → high margin / low 返还率 means the book holds more; compare 去水概率 across outcomes for the market's implied view.

Read the full file on GitHub · 63 lines

Changes

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.

  1. 11d ago First seen · 63 lines · 102 tokens per session scan A 50c73d3e1ed6

Subscribe to this mod's changes

sporttery-odds is a skill published in the GitHub repository Johnserf-Seed/SportteryAPI (12 stars, last pushed 1mo ago), licensed MIT. It adds 102 tokens to every session and 1,029 once invoked, about $0.0005 per session on Opus 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-08-31.

Related

Other skills, from other repositories

distributed-systems

Distributed systems patterns for locking, resilience, idempotency, and rate limiting. Use when implementing distributed locks, circuit breakers, retry policies, idempotency keys, token bucket rate limiters, or fault tolerance patterns.

yonatangross/orchestkit · 48 tokens

dashiai-ppt

A presentation-making add-on that creates an HTML slide deck from preset visual page designs. The result can open offline in a browser and can be exported as a PowerPoint or PDF file.

huangrichao2020/pretty-skills · 62 tokens

html-ppt-viewer

A simple HTML viewer that presents a set of existing images like a slide deck. It includes a side panel, large image display, page controls, and keyboard navigation, but does not create the images.

huangrichao2020/pretty-skills · 93 tokens

xiaohongshu-image-creator

An image-making assistant for Xiaohongshu, a Chinese social platform for lifestyle, product, and educational posts. It creates vertical covers and supporting images matched to the post’s topic, audience, and visual style.

huangrichao2020/pretty-skills · 121 tokens

sansheng-distill

A book and text summarizer that creates one self-contained HTML page with five sections: an overview, chapter notes, the book’s central idea, an action checklist, and questions for judging its reliability. The page includes an embedded Mermaid mind map and works offline without a web server.

huangrichao2020/pretty-skills · 108 tokens

cloudflare-expert

Expert-level Cloudflare Workers, CDN, edge computing, and security services. Use when the user mentions edge computing, CDN, workers, or WAF, or when the task involves Cloudflare Services or Developer Tools.

personamanagmentlayer/pcl · 48 tokens