name: research-sub description: | サブタスク専用の調査ピース。親タスクの decompose から SpawnSubTask で起動される。 dig → analyze → verify の 3 ステップで調査を完結させる。 さらなるサブタスク分解(SpawnSubTask)は行わない。 max_movements: 999 initial_movement: dig movements: - name: dig edit: true persona: researcher instruction: | ## 最初のステップ: 入力把握と調査計画 情報収集に着手する前に、調査対象と目的を整理する: 1. Glob でワークスペース全体のファイル一覧を確認する(input/ だけでなくルート直下も含む) 2. 指示で言及されているファイルがあれば適切なツールで内容を把握する(カタログ参照、詳細は ReadToolDoc) 3. 調査対象と目的を整理し、どこから情報を集めるか、何を分析するかを明確にする 4. 「今日のニュース」「最新動向」「直近」など時刻依存の調査依頼では、必ず最初のアクションを WebSearch にする ## 計画に従って情報を収集する WebSearch、WebFetch、ファイル読み込み等で情報を集め、必ず Write で output/ にファイルとして書き出すこと。 テキストで回答するだけでは不十分。 ## 検索の原則(必須) - モデルの内部知識だけで情報を書かないこと。主張・事実・数値は必ず WebSearch/WebFetch で裏付けを取る - output/ に既存ファイルがある場合でもその内容を鵜呑みにせず、検索で正確性を確認する ## 一次情報へのアクセスと捏造禁止(厳守) - YouTube 動画の内容を調査する場合は、必ず GetYouTubeTranscript で字幕を取得してから作業する - 一次情報に直接アクセスできなかった場合: - Web 検索の断片的な情報から内容を推測・捏造してはならない - アクセスできなかった旨を明記し、取得できた範囲の情報のみで成果物を作成する ## 画像・ビジュアル素材の収集(必須) 調査中は画像・グラフ・図表を積極的に収集し、output/images/ に保存すること。 ## 終了 / 遷移方法 - **次の analyze へ**: `transition({next_step: "analyze"})` - **追加調査のため同じ dig を続行**: `transition({next_step: "dig"})` - **対象が曖昧で確認が必要**: `complete({status: "needs_user_input", missing_info: "...", why_no_default: "..."})` - **技術的失敗で打ち切り**: `complete({status: "aborted", abort_reason: "..."})` allowed_tools: [Read, Write, Bash, Glob, Grep, WebSearch, WebFetch, BrowseWeb, DownloadFile, ReadImage, AnnotateImage, ReadPdf, PdfToImages, BatchReviewTextWithLLM, MergeReviewedResults, SearchPlaces, GetDirections, ReverseGeocode, GetYouTubeTranscript, SearchYouTube, SearchAmazon, TranscribeAudio, SearchKnowledge, ListNamespaces, ListDocuments, XSearch, XUserPosts, XPostDetail, XFetchCardMedia, SearchNotes, ReadNote, WriteNote, SearchMicrosoftLearn, FetchMicrosoftLearn, SearchMicrosoftLearnCache, RefreshMicrosoftLearnCache, 'mcp__*'] default_next: analyze rules: - condition: output/ に情報を書き出した next: analyze - condition: 追加調査が必要 next: dig - name: analyze edit: true persona: analyst instruction: | 収集した情報を分析し、調査レポートを output/ に作成する。 重要なポイント、トレンド、結論をまとめる。 必ず Write ツールで output/ にレポートファイルを書き出すこと。 前のステップから指摘事項がある場合は、それに対応すること。 ## 検索の原則(必須) - レポートに記載する事実・数値・主張は、dig で収集した検索結果に基づくこと - 情報が不足している場合は、ここでも追加の WebSearch/WebFetch を行い裏付けを取る - 「これまでのレビュー指摘」がある場合は、各項目を漏れなく解消すること ## 画像の活用(必須) output/images/ に画像がある場合は、必ずレポートの該当箇所に埋め込む: `![説明](./images/ファイル名.png)` allowed_tools: [Read, Write, Bash, Glob, Grep, WebSearch, WebFetch, BrowseWeb, DownloadFile, ReadImage, AnnotateImage, ReadPdf, PdfToImages, BatchReviewTextWithLLM, MergeReviewedResults, SearchPlaces, GetDirections, ReverseGeocode, GetYouTubeTranscript, SearchYouTube, SearchAmazon, TranscribeAudio, SearchKnowledge, ListNamespaces, ListDocuments, XSearch, XUserPosts, XPostDetail, XFetchCardMedia, SearchNotes, ReadNote, WriteNote, SearchMicrosoftLearn, FetchMicrosoftLearn, SearchMicrosoftLearnCache, RefreshMicrosoftLearnCache, 'mcp__*'] default_next: verify rules: - condition: output/ にレポートを書き出した next: verify - condition: 追加調査が必要 next: dig - name: verify edit: false persona: reviewer instruction: | output/ のレポートを確認する。 確認手順: 1. まず Glob で output/ 内のファイル一覧を確認する 2. output/ にファイルが1つもなければ「不足がある」と判断し analyze に差し戻す 3. ファイルがあれば Read で内容を確認し、網羅性・正確性・分かりやすさをチェックする 4. 不足があれば analyze に差し戻す ## 合格時 合格と判断したら、`complete({status: "success", result: ...})` を呼ぶ。 result はそのままユーザー(親タスク)に返される。 - 調査結果・発見・結論を簡潔にまとめる - 表・リスト・見出しなど Markdown 書式を活用して読みやすくする ## 終了方法 - 合格: `complete({status: "success", result: "調査結果のまとめ"})` - 修正必要: `transition({next_step: "analyze", summary: "差し戻し指摘"})` - 技術的失敗: `complete({status: "aborted", abort_reason: "..."})` allowed_tools: [Read, Glob, Grep, WebSearch, WebFetch, ReadImage, AnnotateImage, ReadPdf, ReadExcel, ReadDocx, ReadPPTX, SearchNotes, ReadNote, SearchMicrosoftLearn, FetchMicrosoftLearn, SearchMicrosoftLearnCache, RefreshMicrosoftLearnCache] default_next: COMPLETE rules: - condition: output/ にファイルがない、または内容に不足がある next: analyze