About research-fanout
A research skill that turns an open-ended goal into an approved investigation plan, then assigns parallel research branches by complexity and rolls up findings as they arrive. It is designed for work that benefits from interactive scoping and user steering.
Key features
- 01Interactive scope interview
- 02Approval-gated research plan tree
- 03Cost-tiered parallel research branches
- 04Progressive findings rollup
- 05Synthesized report with gaps
Use cases
- 01Scoping an ambiguous research question
- 02Dividing a topic into parallel investigations
- 03Steering research while findings arrive
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ dzhuneyt/ skills --skill research-fanoutAfter installing, type/research-fanoutin Claude Code to confirm it loaded.
Details
From the project READMEResearch Fan-out
Turn one fuzzy research goal into parallel, cost-tiered investigation. Interview to scope → get an approved plan tree → fan out subagents → roll up findings as each completes → deliver a report.
Task: $ARGUMENTS
Distinct from deep-research (non-interactive web-search harness): this skill front-loads an interactive scoping interview and an approvable plan tree, tiers models per branch for cost, and streams a per-fork rollup the user can steer mid-flight.
Stage 1 — Orient
- Read
$ARGUMENTS. If clear, go to Stage 2. - If terms are ambiguous, run 1–3 quick web searches to ground yourself before interviewing. Goal: understand the domain well enough to count research forks correctly — not to answer the question yet.
Stage 2 — Interview (max 3 questions)
Narrow the scope. Hard cap: 3 questions, one at a time.
- Multiple-choice preferred; open-ended when needed.
- After every user answer, reply with a 1–2 sentence glanceable restatement of the understood goal (no more).
- Stop early once scope is clear — do not burn questions for their own sake.
Stage 3 — Plan tree (approval gate)
Present a nested bullet tree — the "big picture" of the research path:
- ~3 top-level branches (adaptive 2–5), each phrased as a question the user should be asking (the unknown unknowns), not a statement.
- Sub-bullets decompose each branch into leaf questions. Leaves are the parallel work units.
- Cap total leaves at ~8 for cost. If trimming, say so and name what was cut.
Then: user approves, or refines free-form. Loop — re-present after each refinement. Do not launch until a clear go-ahead ("go", "run it", "approved").
Stage 4 — Tier and launch
Tag each leaf by intuitive complexity, then launch all leaves as background subagents at max parallelism (single message, multiple dispatches). Use general-purpose agents — web-primary, may also read local files if the topic calls for it.
| Tier | Leaf looks like | Claude Code model |
|---|---|---|
| Cheap | lookup, fact-gathering, mechanical | claude-haiku-4-5 |
| Standard | typical synthesis / comparison | claude-sonnet-5 |
| Deep | ambiguous, high-judgment, cross-cutting | claude-opus-4-8 |
On non-Claude hosts, map tiers to that host's cheap / mid / flagship models.
Give each subagent a tight brief and a fixed return shape:
## <leaf question>
- Findings: <concise, evidence-backed>
- Sources: <urls / refs>
- Confidence: high | medium | low
- Gaps: <what it couldn't resolve>
Stage 5 — Live rollup
Monitor the running forks. As each fork completes, post its condensed findings to chat immediately (don't wait for all).
- User may interject with course-corrections → adjust, spawn, or kill remaining forks accordingly.
- User may also stay silent and keep watching — keep rolling up.
- If a fork fails or returns null: note it in one line, continue with the rest.
Stage 6 — Synthesize
When all forks are done:
- Dedup overlapping findings; flag contradictions between forks explicitly.
- Write the full report to
research/<topic-slug>-YYYY-MM-DD.md— branches as sections, findings, sources, open gaps. - Show the executive summary in chat (answer to the original goal + key findings + confidence + what remains unknown).
Anti-patterns
- Don't skip the interview and jump to launching subagents.
- Don't launch before the plan tree is explicitly approved.
- Don't give every leaf the same model — tiering is the cost mechanism.
- Don't batch the rollup into one dump at the end; roll up per-fork completion.
- Don't phrase top-level branches as answers — they are the questions to investigate.
- Don't let leaves sprawl past the cap without telling the user what was cut.