forecast
Skill29 starsChanged 33 days agoMITView on GitHub
Use when the plan rests on a belief about what will happen — turnout, a vote, a decision, a response, a timeline. Converts vague expectations into dated, falsifiable predictions with explicit probabilities, then scores them once the outcome is known so the user finds out whether their judgment is actually calibrated. Writes to the goal's forecasts key.
We split this skill into the rules it gives an agent
14 rules. 0 are common, 13 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 6 edited versions we read keep these.
13
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 20
Every plan contains forecasts.
- Distinctive: line 35
Never let a forecast escape without a resolution date and resolution criteria.
- Distinctive: line 39
When scoring, be straight.
- Very specific: line 49
Read the goal — the goal statement, the plan key, and the forecasts array.
- Distinctive: line 55
Read the current plan and name the beliefs it rests on.
- Distinctive: line 63
Ask which of these, if wrong, would hurt most.
- Distinctive: line 80
Avoid 0% and 100%: If it's certain it isn't a forecast.
- Distinctive: line 96
If the answer comes easily and isn't far-fetched, the probability is too extreme.
- Distinctive: line 112
Ask for the user's number *first*, without anchoring them on yours.
- Distinctive: line 116
Do not average the estimates.
- Distinctive: line 120
When a resolution date passes:
- Distinctive: line 132
After several resolutions, look for a pattern and state it plainly:
- Distinctive: line 181
Keep resolved entries; they're the calibration record and the only reason the array has long-term value.
- Distinctive: line 184
If the write returns { ok: false, errors }, fix the reported fields and retry before ending the turn.
“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Skill: forecast
Trigger: The plan depends on something happening. "We'll get a few hundred people." "They'll respond within a fortnight." "The council will approve it." Also use to score predictions previously recorded, once an outcome is known.
Purpose: Make beliefs about the future explicit, dated, and checkable — then check them.
Every plan contains forecasts. Left implicit, they're never wrong, because they were never specific enough to be wrong. Writing them down changes two things: it exposes overconfidence at the moment it's cheap to correct, and over time it tells the user which of their own judgments to trust.
The second is the real payoff, and it only arrives if predictions are actually scored later. A forecast never resolved is a forecast never made.
Voice & Tone
Precise about uncertainty. A probability is a claim, not a hedge — "70%" means something specific and should be defensible.
Never let a forecast escape without a resolution date and resolution criteria. "Will the rally be successful" is not a forecast. "Will 2,000 or more people attend, per police estimate or two independent media reports, on 30 August" is.
When scoring, be straight. The point of keeping score is finding out where the user's judgment is systematically off, and that only works if past misses are stated plainly rather than explained away.
Execution Sequence
1. Load Context
Read the goal — the goal statement, the plan key, and the forecasts array. Check first
whether any recorded forecast has now resolved; if so, go to 6. Score before making
new ones.
2. Surface the Implicit Forecasts
Read the current plan and name the beliefs it rests on. Most are unstated:
The plan assumes:
- [belief] — [which plan step depends on it]
- [belief] — [which plan step depends on it]Ask which of these, if wrong, would hurt most. Forecast those. Don't forecast everything — the exercise has a cost and its value concentrates in the load-bearing few.
3. Make Each One Falsifiable
FORECAST: [statement that will be clearly true or false]
Resolution date: [when this will be known]
Resolves by: [the specific source or measure that settles it]
Probability: [N]%
Basis: [what this rests on — a base rate, a precedent, a person's word, a gut read]Rules:
- A resolution source, not a judgment call. "Whether it went well" resolves to an argument. "Police crowd estimate as reported by [outlet]" resolves to a fact.
- Avoid 0% and 100%. If it's certain it isn't a forecast; if you're tempted, the question is probably mis-specified.
- State the base rate where one exists. How often do things like this happen generally? Anchoring on the specific case while ignoring the base rate is the most common forecasting error and the easiest to correct.
- Name what the estimate rests on. A number derived from a precedent and a number derived from a feeling are both allowed; conflating them is not.
4. Pressure-Test the Number
For each forecast above 80% or below 20%, ask:
What would have to happen for this to go the other way?If the answer comes easily and isn't far-fetched, the probability is too extreme. Confident predictions that fail are almost always ones where the alternative was never seriously imagined.
For anything between 40% and 60%, ask whether the plan is treating a coin-flip as settled. That's a more common and more damaging error than a badly calibrated extreme.
5. Elicit
Before I record these:
- What's your own number on each? Say it before you look at mine.
- Where do we disagree most, and why?Ask for the user's number first, without anchoring them on yours. A gap between the two is informative regardless of which is right — it usually means one side is holding a fact the other isn't, and finding it is worth more than splitting the difference.
Do not average the estimates. Find the disagreement and resolve it, or record both.
6. Score Resolved Forecasts
When a resolution date passes:
RESOLVED [date]: [forecast]
Predicted: [N]% — Actual: [happened | didn't]
Verdict: [well-called | overconfident | underconfident | right for the wrong reason]
What the basis got wrong (if anything): [...]"Right for the wrong reason" is a real category and worth recording. A correct call from faulty reasoning will fail next time.
After several resolutions, look for a pattern and state it plainly:
CALIBRATION SO FAR
[N] forecasts resolved
Pattern: [e.g. "consistently overestimates other people's response speed";
"turnout estimates good, institutional timelines consistently optimistic"]
Adjust by: [the specific correction to apply to future estimates]This is the output the whole skill exists for. A named systematic bias is worth more than any individual forecast.
7. Update the Goal
Call write_section on forecasts with the new forecast added to the existing array, or with an existing entry updated once it resolves. Each entry must have statement, probability (0-100 integer), resolvesBy (YYYY-MM-DD), resolvesVia (one short label, the specific source that settles it), and resolved (boolean). Once a forecast resolves, set outcome ('yes' or 'no'), verdict (e.g., "well-called", "overconfident"), and resolved: true. detail (optional, max 280 chars) is a hover tooltip in the visual layer — the basis for the number, or what the verdict rested on. Fill in only when it adds something the statement doesn't already say.
New unresolved forecast:
{
"forecasts": [
{
"statement": "Will 2,000+ people attend per police estimate or two media reports",
"probability": 65,
"resolvesBy": "2026-10-30",
"resolvesVia": "police estimate or media report",
"resolved": false
}
]
}Resolved forecast (update the same entry):
{
"forecasts": [
{
"statement": "Will 2,000+ people attend per police estimate or two media reports",
"probability": 65,
"resolvesBy": "2026-10-30",
"resolvesVia": "police estimate or media report",
"resolved": true,
"outcome": "yes",
"verdict": "well-called"
}
]
}Keep resolved entries; they're the calibration record and the only reason the array has long-term value.
If the write returns { ok: false, errors }, fix the reported fields and retry before ending the turn.
8. Name the Next Step
Next: [the forecast most worth improving, or the plan step resting on the shakiest one]
Or:
- Improve a shaky estimate with real data → web search, or say it's unverified
- A low-probability assumption is load-bearing → plan, or premortem
- The forecast changes the call → decideOther versions6 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 6
- anthropics/knowledge-work-plugins★ 34ksame name
- ai-analyst-lab/ai-analyst★ 304same name
- mbwsims/claude-universe★ 71same name
- microsoft/dataverse-business-skills★ 51same name
- akachandan1/proofstack★ 0same name
- KevinReactiv8/claude-skills★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository36 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- brand-architectureSkill
- brand-auditSkill
- brand-contextSkill
- brand-guidelinesSkill
- brand-identitySkill
- brand-initSkill
- brand-messagingSkill
- brand-positioningSkill
- brand-storySkill
- brand-strategySkill
- brand-voiceSkill
- competitor-brandingSkill
- namingSkill
- rebrandingSkill
- target-audienceSkill
- briefSkill
- capacitySkill
- commsSkill
- decideSkill
- evalSkill
- experimentSkill
- exposureSkill
- negotiateSkill
- onboardSkill
- optionsSkill
- planSkill
- premortemSkill
- reconSkill
- reviewSkill
- sitrepSkill
- stakeholdersSkill
- strategySkill
- systemsSkill
- threatSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

