research-fanout について
対話で目標を絞り、承認済みの調査計画を作成してから、複雑さに応じて調査を並列化し、結果を随時まとめるリサーチスキルです。進行中に利用者が方向を調整できます。
主な機能
- 01対話形式のスコープ確認
- 02承認制の調査計画ツリー
- 03コスト別の並列調査
- 04調査結果の逐次集約
- 05不足点を含むレポート作成
活用シーン
- 01曖昧な調査課題の範囲設定
- 02テーマを並列調査に分割
- 03調査中の方向修正
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ dzhuneyt/ skills --skill research-fanoutインストール後、Claude Code で/research-fanoutを入力して読み込まれたか確認します。
詳細
リサーチの並列展開
曖昧なリサーチ目標を、並列かつコスト別に調査できる形にします。スコープを絞るためのヒアリング → 承認済みの計画ツリーの作成 → サブエージェントへの作業の振り分け → 完了した調査から順次取りまとめ → レポートの提出。
タスク: $ARGUMENTS
(対話型ではないウェブ検索ハーネスの)deep-research とは異なり、このスキルでは、対話形式でスコープを絞るヒアリングと承認可能な計画ツリーの作成を最初に行います。コストを考慮して各分岐のモデルを使い分け、ユーザーが進行中に指示できるフォークごとの取りまとめをリアルタイムで提供します。
ステージ 1 — 状況を把握する
$ARGUMENTSを読みます。内容が明確であれば、ステージ 2 に進みます。- 用語が曖昧な場合は、ヒアリングの前にウェブ検索を 1~3 件行い、背景を把握します。目標は、リサーチの分岐数を適切に判断できる程度に分野を理解することです。まだ質問への回答を見つける段階ではありません。
ステージ 2 — ヒアリング(最大 3 問)
スコープを絞ります。上限は最大 3 問、一度に 1 問です。
- できるだけ選択式にし、必要に応じて自由回答にします。
- ユーザーの回答ごとに、理解した目標を 1~2 文で簡潔に言い換えて返信します。それ以上は書きません。
- スコープが明確になったら、早めに終了します。質問すること自体を目的に、質問数を使い切らないでください。
ステージ 3 — 計画ツリー(承認ゲート)
リサーチの「全体像」を、入れ子の箇条書きツリーで提示します。
- 上位分岐は約 3 つ(状況に応じて 2~5 つ)とし、それぞれを主張ではなく、ユーザーが問うべき疑問形(未知の未知)で表現します。
- 下位の箇条書きで各分岐を個別の質問に分解します。各質問が並列作業単位になります。
- コストを抑えるため、質問の総数は約 8 件までにします。削る場合は、その旨と削除した内容を伝えます。
その後、ユーザーが承認するか、自由形式で修正します。修正のたびに計画ツリーを再提示します。明確な実行指示(「進めて」「実行して」「承認」など)があるまでは、作業を開始しません。
ステージ 4 — ティア分けと実行開始
各質問に直感的な複雑度を付け、すべての質問を最大並列度でバックグラウンドのサブエージェントとして実行します(複数のディスパッチを単一のメッセージで送信)。general-purpose エージェントを使用します。ウェブを主な情報源とし、トピックに応じてローカルファイルも読み取ります。
| ティア | 質問の特徴 | Claude Code のモデル |
|---|---|---|
| 低コスト | 情報の検索、事実の収集、機械的な作業 | claude-haiku-4-5 |
| 標準 | 一般的な情報の統合/比較 | claude-sonnet-5 |
| 高度 | 曖昧、判断の難易度が高い、分野横断的 | claude-opus-4-8 |
Claude 以外のホストでは、各ティアをそのホストの低コスト/中位/最上位モデルに対応させます。
各サブエージェントには、簡潔な作業指示と固定の返却形式を指定します。
## <leaf question>
- Findings: <concise, evidence-backed>
- Sources: <urls / refs>
- Confidence: high | medium | low
- Gaps: <what it couldn't resolve>
ステージ 5 — 進行中の取りまとめ
実行中のフォークを監視します。フォークが完了するたびに、すべての完了を待たず、要約した調査結果をすぐにチャットへ投稿します。
- ユーザーが途中で修正指示を出した場合は、残りのフォークを必要に応じて調整、追加、または停止します。
- ユーザーが何も発言せず、結果を見守る場合も、引き続き取りまとめます。
- フォークが失敗する、または結果が null の場合は、1 行でその旨を伝え、残りの作業を続けます。
ステージ 6 — 統合する
すべてのフォークが完了したら、次の手順を実行します。
- 重複する調査結果を統合し、フォーク間の矛盾を明示します。
- 完全版レポートを
research/<topic-slug>-YYYY-MM-DD.mdに書き込みます。分岐ごとにセクションを設け、調査結果、情報源、未解決の点を記載します。 - チャットにエグゼクティブサマリーを表示します(元の目標への回答、主な調査結果、確信度、残された不明点)。
アンチパターン
- ヒアリングを省略して、サブエージェントの実行に進まないでください。
- 計画ツリーの明示的な承認前に、実行を開始しないでください。
- すべての質問に同じモデルを割り当てないでください。ティア分けはコストを管理する仕組みです。
- 取りまとめを最後に一括で行わないでください。フォークが完了するたびに結果を共有します。
- 上位分岐を回答として表現しないでください。調査対象の質問として表現します。
- 質問数の上限を超えて際限なく増やさないでください。削除した内容がある場合は、ユーザーに伝えます。