From founder-os
Fan-out/fan-in research. Spawns N researchers (Sonnet) in parallel to explore a question from different angles, then synthesizes findings with Opus.
How this skill is triggered — by the user, by Claude, or both
Slash command
/founder-os:fanoutThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Spawn N researcher agents (default 5) in parallel using Sonnet. Each explores the research question independently. An Opus synthesizer then merges all findings into a coherent answer.
Spawn N researcher agents (default 5) in parallel using Sonnet. Each explores the research question independently. An Opus synthesizer then merges all findings into a coherent answer.
$ARGUMENTS — the research question or topic.
Optional:
n=X — number of researchers (default 5)model=haiku — use Haiku instead of Sonnet for researchersParallel research catches angles a single agent misses. Each researcher has its own context window to dig deep. The Opus synthesizer sees all findings and produces higher-quality synthesis than any individual researcher.
Research this question thoroughly:
[QUESTION]
You are one of [N] parallel researchers. Explore your own angle — don't assume others will cover what you skip.
Use available tools: WebSearch, WebFetch, Read, Grep, Glob.
Report findings in under 500 words. Lead with key insights. Cite sources.
Here are findings from [N] independent researchers on:
[QUESTION]
[ALL FINDINGS]
Synthesize into a comprehensive answer:
- What the researchers agree on
- Conflicting findings (if any)
- Key insights and evidence
- Your final synthesis
Be thorough but direct.
// Parse n from args, default 5
n = parse_arg("n") || 5
researcher_model = parse_arg("model") == "haiku" ? "haiku" : "sonnet"
// Fan out: spawn N researchers in parallel
researchers = []
for i in 1..n:
researchers.push(Agent({
subagent_type: "researcher",
model: researcher_model,
prompt: RESEARCHER_PROMPT.replace("[QUESTION]", question).replace("[N]", n),
description: "Researcher " + i
}))
// Collect all findings
findings = await_all(researchers)
// Fan in: Opus synthesizes
synthesis = Agent({
subagent_type: "researcher",
model: "opus",
prompt: SYNTHESIZER_PROMPT.replace("[QUESTION]", question).replace("[N]", n).replace("[ALL FINDINGS]", format_findings(findings)),
description: "Opus Synthesizer"
})
Report directly:
npx claudepluginhub rhinehart514/founder-os --plugin founder-osCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.