name: research description: | Web検索やファイル読み込みによる情報収集と、収集情報の分析・レポート作成。 複数ソースからの調査、比較分析、トレンド調査、文献サーベイに適する。 選ぶべき場合: タスクの主目的が「調べること」「情報を集めて整理すること」 選ぶべきでない場合: 既にデータがあり加工するだけ、Officeファイルの操作が主目的 triggers: keywords: ["調べて", "調査", "リサーチ", "分析して", "比較して", "まとめて", "レポート"] max_movements: 999 initial_movement: dig movements: - name: delegate_research persona: orchestrator instruction: | dig で立てた並列調査計画に従い、各テーマを delegate で1件ずつ直列に深掘りさせ、 最後に統合レポートにまとめる。重い調査は各サブに任せ、自分の文脈は軽く保つ。 手順: 1. dig で立てた調査テーマを思い出す(2〜5 個程度)。各テーマに上から 1 始まりの 連番を振る(1, 2, 3 ...)。 2. 各テーマについて delegate を1回ずつ呼ぶ(1件ずつ順番に・直列)。 delegate の prompt には必ず次を自己完結で書く(サブは独立した文脈で動くため、 このタスク全体の背景・目的を要約して渡す): - 調べるテーマと目的・背景 - 「WebSearch / WebFetch / 一次情報で裏を取る。モデルの内部知識だけで書かない」指示 - 「概要・主要な特徴・数値や事例・まとめと考察 の構成で output/research/theme-{連番}.md に Write せよ。関連する画像・グラフは output/images/ に保存し Markdown で埋め込め」指示 - 「完了したら 3〜5 行の要約だけを返せ。深掘り本文は返さずファイルに書け」 - 「あなたは末端の調査担当。delegate / SpawnSubTask は呼ぶな」 各サブの戻り値(短い要約)だけが手元に残る。本文はファイルにある。 3. Glob で output/research/*.md の件数を確認する。 4. 各サブの要約とファイルを基に統合レポートを output/report.md に Write する: - 各テーマの主要な知見を統合(矛盾・重複は整理) - 比較・対照が必要なら表形式で整理 - 全体のまとめと考察を付ける - 各テーマの詳細へ相対リンク [theme-{連番}](./research/theme-{連番}.md) で繋ぐ 5. output/report.md を書き終えたら verify へ遷移する default_next: verify rules: - condition: output/report.md に統合レポートを作成した next: verify - name: dig persona: researcher instruction: | ## 最初のステップ: 入力把握と調査計画 情報収集に着手する前に、調査対象と目的を整理する: 1. Glob でワークスペース全体のファイル一覧を確認する(input/ だけでなくルート直下も含む) 2. 指示で言及されているファイルがあれば適切なツールで内容を把握する(カタログ参照、詳細は ReadToolDoc) 3. 調査対象と目的を整理し、どこから情報を集めるか、何を分析するかを明確にする 4. 「今日のニュース」「最新動向」「直近」など時刻依存の調査依頼では、必ず最初のアクションを WebSearch にする ## 分割調査の判断(delegate_research) delegate_research を積極的に検討するケース: - 複数の独立した調査対象がある(例: 3社の比較、複数技術の比較) - 各調査が互いに依存せず、結果を最後に統合すればよい - 全体を 1 回の dig → analyze で処理すると context が溢れるリスクがある (delegate_research では各テーマを delegate に1件ずつ任せ、本文はファイルに書かせて 自分の文脈を軽く保つ。直列実行) delegate_research を使わないケース: - 単一テーマの調査 - 各ステップが前のステップの結果に依存する逐次的な調査 ## 計画に従って情報を収集する WebSearch、WebFetch、ファイル読み込み等で情報を集め、必ず Write で output/ にファイルとして書き出すこと。 テキストで回答するだけでは不十分。 ## 検索の原則(必須) - モデルの内部知識だけで情報を書かないこと。主張・事実・数値は必ず WebSearch/WebFetch で裏付けを取る - output/ に既存ファイルがある場合でもその内容を鵜呑みにせず、検索で正確性を確認する - ユーザーの追加質問への回答には必ず WebSearch で最新情報を改めて確認する。前回の調査結果に依存して検索を省略しない ## 一次情報へのアクセスと捏造禁止(厳守) - YouTube 動画の内容を調査する場合は、必ず GetYouTubeTranscript で字幕を取得してから作業する - 一次情報(動画字幕、論文本文、ページ本文等)に直接アクセスできなかった場合: - Web 検索の断片的な情報から内容を推測・捏造してはならない - アクセスできなかった旨を明記し、取得できた範囲の情報のみで成果物を作成する - 推測部分は「推測」と明示する - 二次情報(ブログ記事、要約サイト等)から得た情報は、一次情報ではないことを明記する ## 画像・ビジュアル素材の収集(必須) 調査中は画像・グラフ・図表を積極的に収集し、output/images/ に保存すること。 テキストだけの調査で終わらせない。ビジュアル素材がレポートの品質を大きく左右する。 収集すべきもの: - 記事・ページ内のグラフ・チャート・比較表の画像 - 製品・サービスのスクリーンショットや公式画像 - データの可視化(統計グラフ、トレンド図等) - 関連する図解・インフォグラフィック 収集した画像はレポートの Markdown から相対パスで参照する: `![説明](./images/ファイル名.png)` ## 終了 / 遷移方法 - **次の analyze へ**: `transition({next_step: "analyze"})` - **分割調査 → delegate_research へ**: `transition({next_step: "delegate_research"})` - **追加調査のため同じ dig を続行**: `transition({next_step: "dig"})` - **対象が曖昧で確認が必要**: `complete({status: "needs_user_input", missing_info: "...", why_no_default: "..."})` - **技術的失敗で打ち切り**: `complete({status: "aborted", abort_reason: "..."})` default_next: analyze rules: - condition: 2つ以上の独立した調査テーマがあり、分割して delegate に任せるのが効率的と判断した next: delegate_research - condition: output/ に情報を書き出した next: analyze - condition: 追加調査が必要 next: dig - name: analyze persona: analyst instruction: | 収集した情報を分析し、調査レポートを output/ に作成する。 重要なポイント、トレンド、結論をまとめる。 必ず Write ツールで output/ にレポートファイルを書き出すこと。 前のステップから指摘事項がある場合は、それに対応すること。 ## 検索の原則(必須) - レポートに記載する事実・数値・主張は、dig で収集した検索結果に基づくこと - 情報が不足している場合は、ここでも追加の WebSearch/WebFetch を行い裏付けを取る。モデルの内部知識だけで補完しない - ユーザーの追加質問への回答には必ず WebSearch で最新情報を改めて確認する。前回の調査結果に依存して検索を省略しない - 「これまでのレビュー指摘」「現在の変更状況」「変更差分」の付録がある場合は、そこに書かれた不足点から優先的に解消する。指摘事項は「問題点」「期待する修正」「合格基準」まで含めて渡されるので、各項目を漏れなく解消すること ## 画像の活用(必須) output/images/ に画像が保存されている場合は、必ずレポートの該当箇所に埋め込む: `![説明](./images/ファイル名.png)` 画像があるのにテキストだけのレポートにしないこと。 レポート作成中に追加で必要な図・グラフを見つけた場合も DownloadFile で収集して埋め込む。 default_next: verify rules: - condition: output/ にレポートを書き出した next: verify - condition: 追加調査が必要 next: dig - name: verify persona: reviewer instruction: | output/ のレポートを確認する。 確認手順: 1. まず Glob で output/ 内のファイル一覧を確認する 2. output/ にファイルが1つもなければ「不足がある」と判断し analyze に差し戻す 3. ファイルがあれば Read で内容を確認し、網羅性・正確性・分かりやすさをチェックする 4. 不足があれば、`transition({next_step: "analyze", summary: ...})` で差し戻す。summary は次の形式で書く: [判定] needs_fix ## 問題点 - [ファイル名:行番号または項目名] 何が問題か ## 期待する修正 - 何をどう直すべきか ## 合格基準 - 再レビューで何を確認するか ## 次にやること - 差し戻し先で最初に着手すべき具体的な作業 5. summary は抽象論で終えず、変更ファイル・不足点・期待する修正内容を必ず含める 6. 技術的正確性の再確認が必要な場合は、まず自分で WebSearch / WebFetch で簡易チェックする。深い追加調査が必要な場合は、確認すべき URL・検索語・論点を summary に具体的に書いて analyze に差し戻す 追加チェック(追加質問への回答): - ユーザーの追加質問(前回タスクへの補足・深掘り)への回答が含まれる場合、その内容に WebSearch/WebFetch による検索の裏付けがあるか確認する。内部知識だけで回答している形跡がある場合は「追加質問への回答に検索根拠が不足」として analyze に差し戻す 追加チェック(画像): - output/images/ に画像があるのにレポートに `![` が一つもない場合、 画像埋め込み漏れとして analyze に差し戻す ## 合格時のユーザーへの返答(complete ツール) 合格と判断したら、`complete({status: "success", result: ...})` を呼ぶ。 result はそのままユーザーに表示される最終回答。output/ のレポートを Read で読み、その内容をベースに整形する。 - 「output/xxx.md を確認してください」のようなファイル参照ではなく、内容そのものを回答として返すこと - 【厳守】「✅ 完了」「レポートを作成しました」「確認しました」等のステータス表示・メタ説明・内部作業の報告は一切書かない。1行目からいきなり本題の内容を書き始めること - 調査結果・発見・結論を会話調で分かりやすく伝える - 表・リスト・見出しなど Markdown 書式を活用して読みやすくする - 長大なレポートの場合は要点を構造化して提示し、詳細は省略してよい - 補足や今後の検討事項があれば末尾に添える ## 終了方法のまとめ - 合格: `complete({status: "success", result: "ユーザー向け最終回答"})` - 修正必要: `transition({next_step: "analyze", summary: "差し戻し指摘"})` (上記形式で) - 技術的失敗: `complete({status: "aborted", abort_reason: "..."})` default_next: COMPLETE rules: - condition: output/ にファイルがない、または内容に不足がある(追加質問への回答に検索根拠が不足している場合も含む) next: analyze