deep-research

テーマを探索的に調査し、エビデンスレベル付きのファインディングスを提示した上で、ユーザーのフィードバックに基づいて 繰り返し深掘りするスキル。事実に基づく調査はもちろん、トレンド×因果関係からの未来シナリオ分析にも対応する。 「〇〇について調べて」「この調査結果をもっと深掘りしたい」「根拠が弱いところを補強して」「反対意見も調べて」 「他の選択肢は?」「実例が見たい」「この先どうなりそう?」「未来のシナリオを考えて」「deep researchして」 「調査を深めたい」「ファクトベースで整理して」「エビデンスを確認して」といった場面で必ずこのスキルを使用する。

Deep Research — エビデンスベース探索調査 × 反復深掘り

テーマを探索的に調査し、各主張にエビデンスレベルを付与してファインディングスを提示する。 ユーザーのフィードバックに基づいて方向を絞りながら繰り返し深掘りし、満足するまでループする。

原則: 「調べた」ではなく「根拠がある」を基準にする。 E4(未検証)の主張はそのまま提示せず、「未検証」と明示する。

スコープの明確化

このスキルは テーマの探索的調査 に集中する。

  • 対象: 技術選定の調査、概念の理解、トレンド分析、比較調査、未来シナリオ分析
  • 対象外: 既存成果物の評価(→ deep-review)、技術動向の定点観測(→ context-briefing)
deep-review:      既存の成果物を評価する     →「これは良いか?」
context-briefing: 技術動向をプロジェクトに照合 →「何が関係あるか?」
deep-research:    テーマを探索的に調査する    →「何が事実か? この先どうなるか?」

いつ使うか

  • 技術選定のために複数の選択肢を比較調査したいとき
  • あるテーマについてファクトベースで理解を深めたいとき
  • 外部の調査結果をさらに深掘り・検証したいとき
  • トレンドに基づく未来シナリオを描きたいとき
  • 「本当にそうか?」と反証を確認したいとき

このスキルがやらないこと

  • コードレビュー・実装は行わない。 調査結果の提示までが責務
  • 既存成果物の評価は行わない。 それは deep-review の領域
  • 定点観測は行わない。 期間×ジャンルの技術動向チェックは context-briefing の領域
  • オピニオンを事実として提示しない。 エビデンスのない主張は E4(未検証)として明示する
  • ソースのないシナリオは提示しない。 未来予測でも、根拠となるトレンド・データを必ず紐づける

入力モード

モードトリガーPhase 2 の動き
Topicテーマ・問いを投げるWebSearch で初回調査を実施
Seed外部の調査結果を貼り付ける内容を解析し、エビデンスレベルを評価 → ギャップを特定

自動判定: 入力が 500 文字以上、または URL・引用を含む → Seed を提案。それ以外 → Topic を提案。判定結果は AskUserQuestion でユーザーに確認する。

実行モード

モードPhase 構成推奨モデル用途
QuickPhase 1 → 2 → 3 → 4-6 ループ → 7Sonnet小規模テーマ、素早く概要を掴みたい
FullPhase 1 → 2 → 3 → 4-6 ループ → 7Opus重要な意思決定、網羅的な調査が必要

モード差分:

項目QuickFull
Phase 2 WebSearch 回数最大 3 回最大 6 回
Phase 5 WebSearch 回数(1ラウンド)最大 2 回最大 4 回
ファインディングス詳細度要点のみ(1-2 文/項目)詳細(根拠の引用含む)
シナリオ分析最大 2 シナリオ最大 4 シナリオ
sub-agent 活用なし(オーケストレーター直接実行)Haiku sub-agent で並列処理

進捗表示ルール

各 Phase 開始時に以下を出力すること:

[Phase {Phase名} ({進行番号}/{総数})] {1行の説明}

例: [Phase 5: 深掘り調査 (ラウンド 2)] 根拠補強 — Rust vs Go のベンチマーク一次ソースを検索中...

Phase 間データフロー

Phase 1 → 出力: 入力モード・テーマ・スコープ・実行モード
Phase 2 → 出力: ファインディングスリスト(主張 + エビデンスレベル + ソース)
Phase 3 → 出力: ファインディングス提示 + ギャップマップ
Phase 4 → 入力: ギャップマップ / 出力: 深掘り方向 + 対象
  ↕ ループ(Phase 4 → 5 → 6 → 4)
Phase 5 → 入力: Phase 4 の方向指示 / 出力: 追加ファインディングス
Phase 6 → 入力: 既存 + 追加ファインディングス / 出力: 統合結果 + 更新ギャップマップ
Phase 7 → 入力: 全ラウンドの統合結果 / 出力: 最終レポート

実行手順

Phase 1: 入力 & スコープ設定

AskUserQuestion は Phase 1 内で最大 2 問に制限する:

1 問目: 入力モード(Topic/Seed)の確認 + テーマの受け取り

  • 自動判定結果を提示し、ユーザーに確認する
  • Topic の場合: 「何を知りたいか」を明確化する問いかけを含める
  • Seed の場合: 貼り付けられた内容を受け取る

2 問目: 実行モード(Quick/Full)の提案 + スコープの確認

  • テーマの規模・重要度から推奨モードを提案する
  • スコープ(調査範囲・除外事項)を確認する

Phase 2: 初回調査 / シード解析

Topic モード

WebSearch で初回調査を実施する。

検索戦略:

  1. テーマに関連するキーワードで Quick: 3 回 / Full: 6 回の WebSearch を実行
  2. 英語メイン + 日本語補完(一次ソースは英語が多い)
  3. ソースの優先順位: 公式ドキュメント / 論文 / RFC > 企業エンジニアブログ > 個人ブログ > フォーラム

Full モードでの sub-agent 活用: 検索結果の要約・エビデンスレベル判定を Haiku sub-agent(Agent ツール, model: haiku) に委任する。オーケストレーターは検索クエリの設計と結果の統合に集中する。

sub-agent プロンプトには以下を含める:

  • 検索結果のテキスト
  • references/evidence-framework.md のエビデンスレベル定義
  • 「各主張にエビデンスレベルを付与し、ソース URL を紐づけて返せ」という指示

各主張について:

  • 主張の内容を簡潔にまとめる
  • エビデンスレベル(E1-E4)を判定する(判定基準は references/evidence-framework.md 参照)
  • ソース を紐づける

Seed モード

貼り付けられた調査結果を解析する。

  1. 内容を主張単位に分解する
  2. 各主張のエビデンスレベルを評価する(ソースが明記されていれば E1-E3、なければ E4)
  3. 元の調査で弱い部分・欠けている観点を特定する

Phase 3: ファインディングス提示 + ギャップマップ

Phase 2 の結果を構造化して提示する。出力フォーマットは references/output-templates.md を参照。

ギャップマップ: ファインディングスの弱点を可視化する:

  • E4 クラスタ: 未検証の主張が集中している領域
  • 単一ソース依存: 1 つのソースにしか裏付けがない主張
  • 欠落観点: テーマに対して調べられていない角度(反証、代替案、具体例、因果関係)
  • 矛盾: ソース間で主張が食い違っている箇所

ギャップマップの各項目に、推奨する深掘りタイプを紐づけて提示する。

Phase 4: 深掘り方向の選択

ユーザーにフィードバックを求める。AskUserQuestion で以下を提示する:

  1. ギャップマップから推奨する深掘り方向(上位 3 件)
  2. 深掘りタイプの選択肢(references/deepening-types.md 参照):
    • 根拠補強: エビデンスが弱い主張の一次ソースを探す
    • 代替探索: 他の選択肢・アプローチを調べる
    • 具体化: 実例・ケーススタディ・ベンチマークを探す
    • 反証検証: 反対意見・limitation・失敗事例を調べる
    • 因果深掘り: メカニズム・原理・根本原因を調べる
    • シナリオ分岐: トレンドに基づく未来シナリオを生成する
  3. 「満足した → Phase 7 へ」の選択肢

ユーザーが自然言語でフィードバックした場合も、上記のどのタイプに該当するか判定して進める。

「シナリオ分岐」が選択された場合: references/evidence-framework.md の推論レベル(P1-P4)と references/scenario-framework.md のシナリオ構造に従う。事実(E レベル)と推論(P レベル)を明確に分離して提示する。

Phase 5: 深掘り調査

Phase 4 で選択された方向に基づいて追加調査を実施する。

WebSearch 回数: Quick: 最大 2 回 / Full: 最大 4 回(1 ラウンドあたり)

Full モードでの sub-agent 活用: Phase 2 と同様、Haiku sub-agent に検索結果の要約・エビデンスレベル判定を委任する。

各深掘りタイプに応じた検索戦略は references/deepening-types.md を参照。

Phase 6: 統合 & 再評価

Phase 5 の結果を既存のファインディングスに統合する。

  1. エビデンスレベルの更新: 新たなソースで裏付けが得られた主張の E レベルを引き上げる
  2. 矛盾の解消: 新旧の情報で矛盾がある場合、どちらが信頼できるか評価する
  3. ギャップマップの更新: 埋まったギャップと新たに見つかったギャップを反映する

ラウンドサマリーの圧縮(トークン効率): 各ラウンド完了時、前ラウンドまでの詳細を Haiku sub-agent で圧縮サマリーに変換する。次ラウンドは「圧縮サマリー + 最新ラウンドの詳細」のみを扱い、生の WebSearch 結果は持ち越さない。

圧縮サマリーの構造:

  • 確定ファインディングス(E1-E2 の主張のみ、ソース付き)
  • 未確定ファインディングス(E3-E4 の主張、要深掘りフラグ付き)
  • シナリオ分岐がある場合: シナリオ名 + 蓋然性レベル + 根拠の要約
  • 残存ギャップ一覧

統合結果を提示し、Phase 4 に戻る(ループ)。

ループ制御

ソフトリミット: 3 ラウンド到達時に AskUserQuestion で確認する:

3 ラウンド目が完了しました。 残存ギャップ: {件数}。このまま続けますか?

ハードリミットは設けない。ユーザーが続行を選べばループを継続する。

Phase 7: 最終アウトプット

ユーザーが Phase 4 で「満足した」を選択したら、全ラウンドの統合結果を最終レポートとしてまとめる。

出力フォーマットは references/output-templates.md の「最終レポート」セクションを参照。

出力形式は 2 段階:

トリガー出力形式
指定なしテキスト出力(CLI 上に表示)
「ファイルに書き出して」「md にして」マークダウンファイル(Write で書き出し)

最終レポートの必須セクション:

  1. 調査サマリー: テーマ・スコープ・ラウンド数・主要ファインディングス数
  2. ファインディングス一覧: エビデンスレベル付き。E1-E2 の確定事実 → E3-E4 の未確定事項の順
  3. シナリオマップ(シナリオ分析を実施した場合): P1-P4 の推論レベル付き
  4. ソース一覧: 全ソースをエビデンスレベル別に整理
  5. 残存ギャップ・限界: 調査で明らかにならなかった点を正直に記載
  6. 連携提案(該当する場合): 調査結果を元に task-decompose で issue 化、adr-capture で意思決定記録、context-briefing で継続ウォッチ

フォールバック

状況対処
WebSearch 失敗利用可能な結果のみで続行。「N 件の検索に失敗しました」と明示
ソースが少ない(3 件未満)集まった分で続行し、ギャップマップでソース不足を明示
Haiku sub-agent 利用不可オーケストレーターが直接実行(Quick 相当の処理量に制限)
Seed の内容が構造化されていない段落単位で分解し、主張の抽出精度が低い可能性をユーザーに明示
コンテキスト圧迫の兆候即座に Haiku sub-agent で圧縮サマリーを生成。ファインディングスを E1-E2 のみに絞る
シナリオ分岐で根拠となるトレンドが見つからない「根拠が不十分なためシナリオ生成を見送ります」と明示し、追加調査を提案

注意事項

  • ファクト・サイエンスベースを徹底する。 「〜と言われている」「一般的に〜」のような曖昧な表現は避け、ソースを紐づける
  • エビデンスのない推論を事実として提示しない。 推論は P レベルで明示する
  • ソースの質を評価する。 一次ソース(E1)と個人ブログ(E3)を同列に扱わない
  • 矛盾するエビデンスを隠さない。 相反する情報がある場合は両方提示し、どちらが信頼できるか根拠とともに評価する
  • 「分からない」を正直に言う。 調査で明らかにならなかった点は残存ギャップとして明示する