thinking-probabilistic — Claude Code skill: forecasts as numbers
A skill that makes the agent name a base rate, give confidence intervals and update its estimate when new evidence lands, instead of stating one confident number.
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-probabilistic -a claude-codeWhat thinking-probabilistic does
The skill kicks in when the agent is about to forecast a timeline, size an effort or judge the risk of a deploy. It turns vague wording into a checkable claim with an outcome, a timeframe and a unit, then anchors the estimate on a base rate from a comparable reference class.
From there it works in ranges: at least one confidence interval, 50% and 80% preferred, widened on the assumption that the agent is overconfident. When evidence arrives, the skill computes a likelihood ratio and moves prior odds to posterior odds. Yesterday's posterior becomes today's prior. Quantities nobody can measure get decomposed into factors and reported as an order of magnitude, roughly X within 3–5×.
There is a guard against overuse. Measurable facts must not be dressed up as probabilities, reference classes must not be invented, and three significant figures on a product with 5× uncertainty is a signal to recompute. If the decision holds across the whole range, the skill tells the agent to stop estimating and act.
What it helps with
- size a migration timeline when the real date is unknown
- judge deploy risk before shipping to production
- revise a forecast after new evidence arrives
- bound an unmeasurable quantity to an order of magnitude
- separate a real estimate from a confident guess
Example prompts for the agent
- Estimate how long the auth module rewrite will take: give a base rate and 50% and 80% intervals
- We just got load test results — update the posterior risk estimate for the deploy
- Fermi-bound the traffic for the new endpoint by decomposing it into factors
How to install thinking-probabilistic
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-probabilistic -a claude-code2Manually: put the files in place
~/.claude/skills/thinking-probabilistic/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/thinking-probabilistic/
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-probabilistic -a codex2Manually: put the files in place
.agents/skills/thinking-probabilistic/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-probabilistic -a cursor2Manually: put the files in place
.cursor/skills/thinking-probabilistic/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install tjboudreaux/cc-thinking-skills thinking-probabilistic2Manually: put the files in place
.github/skills/thinking-probabilistic/SKILL.md1Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-probabilistic -a gemini-cli2Platform CLI
gemini skills install https://github.com/tjboudreaux/cc-thinking-skills --path skills/thinking-probabilisticManually: put the files in place
.devin/skills/thinking-probabilistic/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add tjboudreaux/cc-thinking-skills --skill thinking-probabilistic -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about thinking-probabilistic
How do I install thinking-probabilistic in Claude?
Run npx skills add tjboudreaux/cc-thinking-skills --skill thinking-probabilistic -a claude-code. The skill lands at ~/.claude/skills/thinking-probabilistic/SKILL.md.
What does thinking-probabilistic do?
It pushes the agent to state beliefs as numbers and ranges: a base rate, an explicit likelihood, and a prior-to-posterior update. Unmeasured quantities get bounded by order of magnitude.
When should I skip this skill?
When the number can be measured or looked up, the skill says to do that instead. It also steps aside when the decision is the same across the whole plausible range.
Source text
SKILL.md · MIT
---
name: thinking-probabilistic
description: Use when forecasting, estimating, or sizing risk — anchor on base rates, give ranges, update prior→likelihood→posterior on evidence, and factor unmeasured quantities into order-of-magnitude bounds.
disable-model-invocation: true
---
# Probabilistic Thinking
**Core rule:** State beliefs as numbers and ranges, not vibes. Anchor on a base rate, update with an explicit likelihood, and bound unknowns by factoring them — never invent false precision.
## When to Use
- Timeline, effort, or outcome forecasts where the true value is uncertain.
- Risk sizing for a change, migration, deploy, or launch.
- Any moment you are about to state a confident single number you cannot actually know.
- New evidence arrives and a prior estimate should move.
## When NOT to Use
- The quantity is measurable or look-up-able — measure or look it up.
- The decision is invariant across the whole plausible range — skip the estimate and act.
- There is no real reference class and you would invent a base rate — label it a guess, not a calibrated forecast.
- You only need a binary gate and already have a decisive observation — do not pad with ceremony.
## Procedure
1. **Define a checkable claim:** outcome + timeframe + unit. Prefer a falsifiable statement over vague language ("likely").
2. **Lock a prior and challenge it:** name a reference-class base rate and at least one credible alternative path/hypothesis with its rate. Pull the prior toward the base rate unless you write a concrete reason for deviation. Then state the strongest evidence-based case that your chosen prior or range is wrong, what estimate it supports, and revise if that countercase survives. Convert vague words to numbers (e.g. "likely" ≈ 65–80%).
3. **Express a range, not a point:** give at least one confidence interval (50% and 80% preferred). Assume overconfidence; widen intervals when the outside view is thin.
4. **Update prior → likelihood → posterior when evidence arrives:**
- Prior odds = p / (1 − p).
- Likelihood ratio LR = P(E|H) / P(E|¬H). LR > 1 supports H; LR = 1 is noise; LR < 1 undermines H.
- Posterior odds = prior odds × LR (multiply even when LR < 1); p = odds / (1 + odds).
- Strength bands for distance from 1: weak ~1.5–3×, moderate 3–10×, strong 10–100×, definitive 100×+.
- Yesterday's posterior is today's prior for the next evidence. For rare events, start from the base rate — vivid positives still leave most mass on false alarms.
5. **Fermi-bound unmeasured quantities** (only when you need a magnitude you cannot measure/look up):
- Decompose: Quantity = Factor₁ × Factor₂ × … (or sum of components).
- Bound each factor with a range; use one-significant-figure geometric means for order-of-magnitude.
- Multiply; report "~X within 3–5×"; sanity-check whether a 10× error would change the decision; replace any factor that is actually lookup-able.
- Skip Fermi when the number is cheaply measurable, when the decision needs tighter than ~3–5× precision, or when every factor is pure invention.
6. **State the final estimate for checking:** claim, range/CIs, key uncertainties, and the observation that would prove it wrong. Stop when the decision is stable across the remaining range or the next update needs new evidence you do not have.
## Output
1. **Claim** — falsifiable statement with timeframe.
2. **Prior** — base rate, alternative path, adjustment reason, strongest countercase, and resulting prior probability.
3. **Range** — confidence intervals (not a lone point).
4. **Updates** — each evidence row: prior, LR (or explicit heuristic Δ), posterior.
5. **Fermi bounds** (if used) — factor product and "~X within N×".
6. **Decision implication** — what changes if the true value is at the low vs high end of the range.
## Verification
- **Falsify/stop:** if you cannot name a base rate, alternative, or serious countercase, label the estimate as a guess rather than calibrated. If the decision is unchanged across the full range, stop estimating. If new evidence arrives and the number does not move (or moves without an LR/Δ), recompute.
- **Over-application guard:** do not dress checkable facts as probabilities, invent reference classes, or Fermi-decompose quantities you can measure. Do not report three significant figures on a 5×-uncertain product. For rare events, refuse jumps from one vivid hit to near-certainty without the base-rate prior.
© tjboudreaux · MIT · tjboudreaux/cc-thinking-skills