111 lines
6.6 KiB
YAML
111 lines
6.6 KiB
YAML
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/ に画像がある場合は、必ずレポートの該当箇所に埋め込む:
|
||
``
|
||
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
|