Digital Oracle
komako-workshop/digital-oracle
Answer prediction questions using market trading data, not opinions.
Daily temperature high/low bracket and threshold contracts on Kalshi — contract structure, forecast→P(YES) map, settlement rules, cross-venue divergences, and weather-specific pitfalls
$ npx skills add agiprolabs/claude-trading-skills --skill kalshi-weather-markets -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install agiprolabs/claude-trading-skills kalshi-weather-markets --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/agiprolabs/claude-trading-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/kalshi-weather-markets .claude/skills/kalshi-weather-markets && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "kalshi-weather-markets" agent skill from https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/kalshi-weather-markets into .claude/skills/kalshi-weather-markets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kalshi-weather-markets", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/kalshi-weather-marketsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add agiprolabs/claude-trading-skills --skill kalshi-weather-markets -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install agiprolabs/claude-trading-skills kalshi-weather-markets --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agiprolabs/claude-trading-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/kalshi-weather-markets .agents/skills/kalshi-weather-markets && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "kalshi-weather-markets" agent skill from https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/kalshi-weather-markets into .agents/skills/kalshi-weather-markets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kalshi-weather-markets", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add agiprolabs/claude-trading-skills --skill kalshi-weather-markets -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install agiprolabs/claude-trading-skills kalshi-weather-markets --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agiprolabs/claude-trading-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/kalshi-weather-markets .cursor/skills/kalshi-weather-markets && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "kalshi-weather-markets" agent skill from https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/kalshi-weather-markets into .cursor/skills/kalshi-weather-markets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kalshi-weather-markets", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/agiprolabs/claude-trading-skills.git --path skills/kalshi-weather-markets--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add agiprolabs/claude-trading-skills --skill kalshi-weather-markets -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install agiprolabs/claude-trading-skills kalshi-weather-markets --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agiprolabs/claude-trading-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/kalshi-weather-markets .gemini/skills/kalshi-weather-markets && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "kalshi-weather-markets" agent skill from https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/kalshi-weather-markets into .gemini/skills/kalshi-weather-markets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kalshi-weather-markets", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install agiprolabs/claude-trading-skills kalshi-weather-marketsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add agiprolabs/claude-trading-skills --skill kalshi-weather-markets -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/agiprolabs/claude-trading-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/kalshi-weather-markets .github/skills/kalshi-weather-markets && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "kalshi-weather-markets" agent skill from https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/kalshi-weather-markets into .github/skills/kalshi-weather-markets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kalshi-weather-markets", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add agiprolabs/claude-trading-skills --skill kalshi-weather-markets -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install agiprolabs/claude-trading-skills kalshi-weather-markets --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/agiprolabs/claude-trading-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/kalshi-weather-markets .opencode/skills/kalshi-weather-markets && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "kalshi-weather-markets" agent skill from https://github.com/agiprolabs/claude-trading-skills/tree/main/skills/kalshi-weather-markets into .opencode/skills/kalshi-weather-markets/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "kalshi-weather-markets", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
kalshi-weather-marketsDaily temperature high/low bracket and threshold contracts on Kalshi — contract structure, forecast→P(YES) map, settlement rules, cross-venue divergences, and weather-specific pitfalls
Kalshi Weather Markets is an agent skill from agiprolabs/claude-trading-skills. Daily temperature high/low bracket and threshold contracts on Kalshi — contract structure, forecast→P(YES) map, settlement rules, cross-venue divergences, and weather-specific pitfalls
Its SKILL.md is about 2.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `references/brackets-and-settlement.md`, `references/forecasting.md` and `scripts/weather_brackets.py`).
It sits in Business, Finance & HR. It works with Kalshi. The repository describes itself as: 68 trading, DeFi, and quantitative finance Agent Skills. Works with Claude Code, Cursor, Codex, Gemini CLI, and 30+ other tools. The licence is MIT.
10 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 981e1d7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.kalshi.comweather.govmesonet.agron.iastate.eduwunderground.comdocs.uma.xyzFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Kalshi Weather Markets loads about 2.2k tokens when it runs, and up to ~4.5k if it reads all its reference files. Until then it costs about 52 tokens; SKILL.md has 1,001 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from agiprolabs/claude-trading-skills at commit 981e1d7, republished under its MIT licence (© agiprolabs). 1,001 words, ~2,196 tokens.
.claude/skills/kalshi-weather-markets/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Kalshi lists daily high and low temperature options for ~20 US cities as binary contracts that settle YES ($1.00) or NO ($0.00). This skill covers the market structure, the forecast-to-probability map, exact settlement mechanics, and hard-won pitfalls. It builds on the exchange layer — for Kalshi API mechanics (host, auth, orders, order book, candlesticks) see the kalshi-api skill; for strategy, sizing, and backtesting see prediction-market-strategy.
B<center>A bracket ticker B<center> is a 2°F-wide, both-ends-inclusive window.
B74.5 covers the two integers {74, 75}°F.T<strike>A threshold ticker T<strike> is a one-sided binary.
greater → YES iff cli >= strike + 1less → YES iff cli <= strike - 1strike_type ("greater" / "less") is not inferable from the ticker. Read it from the API strike_type field every time.KXHIGH<CITY>-<YYMONDD>-B<center> # bracket high
KXLOW<CITY>-<YYMONDD>-T<strike> # threshold lowThe date is encoded in the ticker, not derivable from close_time.KXHIGHNY-26JUN21 settles 2026-06-21 LST. close_time is next-day UTC (~00:59 ET). Joining on close_time off-by-ones every label — use the ticker date.
Given a forecast distribution N(μ, σ) for the day's extreme, apply the half-integer continuity correction (mandatory — settlement is on integers, not a continuous scale):
# Bracket B<center>, covering integers {floor, cap}
P(YES) = Φ((cap + 0.5 − μ) / σ) − Φ((floor − 0.5 − μ) / σ)
# Threshold "greater":
P(YES) = 1 − Φ((T + 0.5 − μ) / σ)
# Threshold "less":
P(YES) = Φ((T − 0.5 − μ) / σ)
Φ(x) = 0.5 · (1 + erf(x / √2)) # stdlib only, no scipy neededThe ±0.5 shift is not optional. Dropping it biases every bracket. Treating 2°F brackets as 1°F half-open windows produced a +1640% phantom backtest in one project.
See scripts/weather_brackets.py for runnable implementations of all four functions.
sigma_raw = max((p90 − p10) / 2.56, 0.5) · sigma_scale · sigma_mult
mu = p50 # or nowcast-blended (see forecasting.md)
sigma = max(sigma_raw, 0.1) # hard floor against degeneracyThe 2.56 divisor is the 10th–90th percentile span of a standard normal (2 × 1.28σ).
The settlement value (NWS CLI integer °F, LST day) is not the same as raw ASOS/METAR hourly max/min — CLI applies QC, backup-station fallback, and LST aggregation. Shift μ before computing P(YES):
mu_cli = mu_metar + bias_city_season # bias = oracle_extreme − asos_extreme, fit per city + seasonFit bias_max / bias_min as seasonal (circular) curves per city. Skipping this systematically misprices every bracket for cities with a structural CLI/METAR gap.
cli ∈ {floor, cap} (both ends inclusive).cli >= strike + 1.cli <= strike - 1.Read each market's own rulebook before scoring or trading. Settlement source, station, and day-window are per-market contract terms that can change.
| Resource | URL |
|---|---|
| Kalshi market rules / Rulebook | https://docs.kalshi.com (per-market "Rulebook") |
| NWS Climatological Report (CLI) | https://www.weather.gov/wrh/Climate |
| IEM ASOS daily download | https://mesonet.agron.iastate.edu/request/daily.phtml |
| Polymarket resolution (WU) | https://www.wunderground.com |
| Polymarket disputes (UMA) | https://docs.uma.xyz |
The same metro on the same date can settle to different values across venues — both because of the station and the DST window in spring/fall.
| Axis | Kalshi | Polymarket |
|---|---|---|
| Source | NWS CLI / IEM ASOS | Weather Underground |
| Day window | LST (no DST) | Local clock (with DST) |
| NYC station | KNYC (Central Park) | KLGA (LaGuardia) |
| Rounding | Integer °F, t ∈ {floor, cap} | Per WU history |
Any cross-venue analysis must settle each leg on its own source.
Once an intraday observation is available, pull μ toward reality and shrink σ:
[obs, obs + drift · hours_remaining][obs − drift · hours_remaining, obs]sigma_raw · sqrt(hours_remaining / 24), floored at sigma_floor (≈ 0.5)drift ≈ 3.0°F/hr defaultOptional NWP prior blend: new_p50 = w · hrrr + (1−w) · p50 (w ≈ 0.5), then rebuild symmetric quantiles using a calibrated σ.
Per-city OOS Brier scores across 22 highs + 22 lows (v1.5, 2026-06-17 baseline):
| Metric | Range |
|---|---|
| Per-city OOS Brier | 0.07 – 0.14 (lower = better; 0.25 = climatology) |
| Per-city accuracy | 65–85% (bracket classification) |
Forecast skill ≠ trading edge. A calibrated model that beats climatology by 0.05 Brier does not guarantee positive EV at market prices — the market already incorporates NWP. The practical edge is maker-side fading of mispriced longshot brackets (favorite–longshot bias), not raw directional forecasting.
Wrong settlement source. Scoring against a derived truth that correlates with but differs from the venue's resolution flips ~10% of outcomes. Settle on the venue's own result.
Bracket off-by-one (phantom +1640%). Treating 2°F inclusive brackets {floor, cap} as 1°F half-open [floor, cap) manufactures a large phantom backtest edge. The bracket is both-ends-inclusive.
strike_type not inferable from ticker. T74 on a low market might be greater or less. Always read strike_type from the API. Never guess.
Date-in-ticker, not close_time. Use the date embedded in the ticker string for settlement-date joins, not close_time (which is next-day UTC).
LST ≠ local clock. Kalshi settles on LST (no DST). In spring/fall, the LST window shifts relative to local time. Cross-referencing WU (which uses local clock) against CLI on DST-transition days will produce mismatches.
CLI ≠ METAR. Raw ASOS hourly max/min is not the settlement value. CLI applies QC, backup-station fallback, and LST aggregation. Fit per-city seasonal bias corrections before computing P(YES).
UTC vs local-day feature aggregation. Aggregating forecast features over UTC days instead of LST days misaligns labels — cost ~14 percentage points of accuracy in one study.
Clock-mismatch look-ahead. Filling at an 18:00Z book snapshot while features are cut at 14:00 LST trades non-Eastern cities on future information. Use each city's own local decision time.
Phantom penny asks. 1¢ ask levels are frequently spoofed; assuming you fill them over-credits PnL ~23×. Count only depth that persists across snapshots and is corroborated by trade prints.
Overround as a diagnostic. Sum the YES prices across an event's full bracket set. overround > 1.0 is normal (house edge); overround >> 1.1 signals a mispriced event (or data error).
references/brackets-and-settlement.md — Bracket/threshold structure, P(YES) formulas, settlement rules, cross-venue divergence table, overroundreferences/forecasting.md — Ensemble quantiles → (μ, σ), nowcast blending, CLI-space bias correction, model skill numbers, forecast ≠ edgescripts/weather_brackets.py — Gaussian bracket/threshold P(YES), settlement resolution, and quantile→(μ,σ) functions (pure stdlib, runs offline)© agiprolabs, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (scripts, references) in skills/kalshi-weather-markets of agiprolabs/claude-trading-skills.
Open the folder on GitHubat commit 981e1d7
Kalshi Weather Markets next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Kalshi Weather Markets this skillagiprolabs/claude-trading-skills | 410 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Digital Oraclekomako-workshop/digital-oracle | 878 | — | ~5.9k | Automated safety check: Pass | MIT | |
| Dr Manhattanguzus/dr-manhattan | 204 | — | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Kalshi Traderyanfrigo/kalshi-ai-trading-bot | 613 | — | ~3.4k | Automated safety check: Pass | MIT | |
| Polymarket Tennislivetennisapi/livetennisapi-mcp | 152 | — | ~3k | Automated safety check: Pass | MIT | |
| Prediction Markets AnalysisOctagonAI/octagon-mcp-server | 147 | — | ~465 | Automated safety check: Pass | MIT |
komako-workshop/digital-oracle
Answer prediction questions using market trading data, not opinions.
guzus/dr-manhattan
Trade prediction markets (Polymarket, Kalshi, Opinion, Limitless, Predict.fun) using a unified CCXT-style API.
ryanfrigo/kalshi-ai-trading-bot
The disciplined process for autonomously and profitably trading the live Kalshi account on each /loop tick, with Claude as the decision-maker.
livetennisapi/livetennisapi-mcp
Build observe-only Polymarket and Kalshi tennis market tooling on the polymarket-tennis Python package (MIT) plus the Live Tennis API free tier.
OctagonAI/octagon-mcp-server
Generate Kalshi prediction market research reports or fetch structured event history.
alsk1992/CloddsBot
Real-time market data feeds from 8 prediction market platforms
agiprolabs/claude-trading-skills
Event-driven backtesting with bar-by-bar execution, complex order types, multiple analyzers, and custom indicators
agiprolabs/claude-trading-skills
Solana token market data via Birdeye — prices, OHLCV, trades, token metadata, security checks, and trader activity
agiprolabs/claude-trading-skills
Broad crypto market data from CoinGecko covering 13,000+ tokens.
agiprolabs/claude-trading-skills
Cointegration testing for pairs trading using Engle-Granger, Johansen, and rolling stability analysis
agiprolabs/claude-trading-skills
Wallet evaluation, monitoring, and copy-trade strategy design for Solana DEX trading
agiprolabs/claude-trading-skills
Cross-asset correlation analysis including rolling correlation, hierarchical clustering, tail dependence, and regime-dependent correlation
Works with
Categories
Daily temperature high/low bracket and threshold contracts on Kalshi — contract structure, forecast→P(YES) map, settlement rules, cross-venue divergences, and weather-specific pitfalls. Kalshi Weather Markets is an agent skill from agiprolabs/claude-trading-skills.
Kalshi Weather Markets fits situations like: business, Finance & HR work in your project.
Run `npx skills add agiprolabs/claude-trading-skills --skill kalshi-weather-markets -a claude-code`. Or copy the skill folder (skills/kalshi-weather-markets in agiprolabs/claude-trading-skills) into .claude/skills/kalshi-weather-markets in your project. Claude Code loads it when a task matches its description.
Run `npx skills add agiprolabs/claude-trading-skills --skill kalshi-weather-markets -a codex`. Or copy the skill folder (skills/kalshi-weather-markets in agiprolabs/claude-trading-skills) into .agents/skills/kalshi-weather-markets in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add agiprolabs/claude-trading-skills --skill kalshi-weather-markets -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/kalshi-weather-markets, .gemini/skills/kalshi-weather-markets, .github/skills/kalshi-weather-markets and .opencode/skills/kalshi-weather-markets in your project.
Going by SKILL.md and its folder, Kalshi Weather Markets needs Python for the scripts in its folder. Our summary lists: Python 3.
SKILL.md names 5 domains. As links in the text: docs.kalshi.com, weather.gov, mesonet.agron.iastate.edu, wunderground.com and docs.uma.xyz. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Kalshi Weather Markets is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Kalshi Weather Markets: Digital Oracle (komako-workshop/digital-oracle, 878 stars), Dr Manhattan (guzus/dr-manhattan, 204 stars), Kalshi Trade (ryanfrigo/kalshi-ai-trading-bot, 613 stars) and Polymarket Tennis (livetennisapi/livetennisapi-mcp, 152 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
agiprolabs (a GitHub user) maintains it in agiprolabs/claude-trading-skills, which has 410 GitHub stars. The repository holds 68 skills in this directory. The repository was last updated on September 3, 2026.
Source: agiprolabs/claude-trading-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.