Claude-skill-registry rfi
Crowdsourced forecasting questions and predictions from the RAND Forecasting
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/other/other/sdk-rfi" ~/.claude/skills/majiayu000-claude-skill-registry-rfi && rm -rf "$T"
manifest:
skills/other/other/sdk-rfi/SKILL.mdsource content
RAND Forecasting Initiative (RFI)
SDK that provides access to the RAND Forecasting Initiative crowdsourced forecasting platform (formerly INFER, powered by Cultivate Labs). It covers policy-relevant forecasting questions with aggregated crowd probabilities and individual forecaster predictions with rationales.
Quick Start
from sdk_rfi import Client client = Client() # Uses RFI_EMAIL and RFI_PASSWORD env vars
Key Methods
| Method | What it does |
|---|---|
| List forecasting questions with filtering by status, tags, challenges, date ranges |
| Get a specific question with answers and crowd probabilities |
| Get individual forecaster predictions with rationales for a question |
| Get discussion comments on a question |
Data Coverage
- Domain: Politics / policy forecasting
- Countries/Regions: Global (US policy focus)
- Time range: Questions from ~2020 to present
- Update frequency: Event-driven (new questions published, forecasts updated continuously)
- Key data: Forecasting questions on geopolitics, national security, science/technology policy, economics, biosecurity, nuclear risk, AI governance
Forecasting Patterns
- Crowd forecast as base rate: Use
to find questions matching your topic, then read the crowd probability fromclient.questions.list()
as a calibrated starting point.question.answers[i].probability - Trend analysis via prediction history: Use
to see how individual forecasts changed over time. Plotclient.prediction_sets.list(question_id=X)
vscreated_at
to detect momentum.forecasted_probability - Expert rationale mining: Individual prediction sets include
text explaining the forecaster's reasoning. Userationale
and examine rationales for weak signals and arguments.client.prediction_sets.list(question_id=X) - Cross-reference with resolution: Use
to find resolved questions. Compare crowd probability at various cutoff dates against actual outcomes to measure calibration.client.questions.list(status="closed") - Comment-based signal detection: Use
to find discussion threads that may contain links to evidence or emerging developments.client.comments.list(commentable_id=X, commentable_type="Forecast::Question")
Common Queries
# Get all active forecasting questions questions = client.questions.list() for q in questions.questions: print(f"{q.id}: {q.name}") for a in (q.answers or []): print(f" {a.name}: {a.probability_formatted}") # Get individual forecasts and rationales for a question forecasts = client.prediction_sets.list(question_id=1234) for ps in forecasts.prediction_sets: print(f"{ps.membership_username}: {ps.rationale}") for pred in (ps.predictions or []): print(f" Answer {pred.answer_id}: {pred.forecasted_probability:.1%}") # Backtest: get data as it was available on a past date past_questions = client.questions.list(cutoff_date="2025-06-01") past_forecasts = client.prediction_sets.list(question_id=1234, cutoff_date="2025-06-01")
Full Method Reference
See
references/methods.md for all 4 methods with complete parameter details.