name: brainstorming description: | 複数の視点から並列にアイデアや選択肢を検討し、推奨方針を導き出す。 選ぶべき場合: 「どうすべきか」「どの方針が良いか」を多角的に検討する必要がある 選ぶべきでない場合: 答えが調査で明確になるタスク、具体的な成果物の作成が主目的 max_movements: 999 initial_movement: decompose triggers: keywords: - brainstorming - ブレスト - ブレインストーミング - 方針検討 - アイデア出し movements: - name: decompose edit: false persona: facilitator instruction: | 課題を分析し、複数の視点から検討すべきポイントを特定してください。 1. タスクの指示を注意深く読み、何が求められているかを理解する 2. 検討すべき視点や切り口を 2〜5 個に分解する - 例: 技術的実現性、コスト/リソース、ユーザーへの影響、リスク、長期的な拡張性 3. 各視点ごとに SpawnSubTask で独立した調査・検討タスクを作成する - piece は "research-sub" を指定する - instruction には「この視点で分析し、output/analysis.md に結論と根拠を書いてください」と具体的に記述 - 各サブタスクは異なる分析レンズを持つよう明確に指定する 4. 全サブタスクの登録が完了したら WAIT_SUBTASKS に遷移する allowed_tools: - Read - Grep - Glob - SpawnSubTask rules: - condition: "全てのサブタスクを SpawnSubTask で登録し終えた" next: WAIT_SUBTASKS - condition: 全てのサブタスクを登録し終えた(SpawnSubTask不可の場合は自分で分析を完了した) next: aggregate default_next: aggregate - name: aggregate edit: true persona: analyst instruction: | 各サブタスクの検討結果を統合し、推奨方針をまとめてください。 1. subtasks/ ディレクトリを確認する(Glob: subtasks/*/output/**) 2. 各サブタスクの分析結果を読み込む 3. 共通点・相違点・トレードオフを整理する 4. 総合的な推奨方針を output/recommendation.md に作成する - 各視点からの主要な発見 - トレードオフの整理 - 推奨アプローチとその根拠 - リスクと緩和策 5. 完了したら verify に遷移する allowed_tools: - Read - Glob - Grep - Write - Edit - SearchKnowledge - ListNamespaces - ListDocuments - SearchNotes - ReadNote - 'mcp__*' rules: - condition: "output/recommendation.md に推奨方針をまとめた" next: verify default_next: verify - name: verify edit: false persona: reviewer instruction: | output/ の成果物を確認する。 確認手順: 1. まず Glob で output/ 内のファイル一覧を確認する 2. output/recommendation.md がなければ「修正が必要」と判断し aggregate に差し戻す 3. ファイルがあれば Read で内容を確認し、各視点の分析が含まれているか・推奨方針が論理的かをチェックする 4. 不足や誤りがあれば、`transition({next_step: "aggregate", summary: ...})` で差し戻す。summary は次の形式で書く: [判定] needs_fix ## 問題点 - [ファイル名:行番号または項目名] 何が問題か ## 期待する修正 - 何をどう直すべきか ## 合格基準 - 再レビューで何を確認するか ## 次にやること - aggregate で最初に着手すべき具体的な修正 5. summary は抽象論で終えず、具体的な不足点・期待する修正内容を必ず含める ## チェックシート確認 GetChecklist でチェックシートが存在する場合、全アイテムが完了(done/failed/skipped)していることを確認する。 remaining が 0 でないまま完了してはならない。 ## 合格時のユーザーへの返答(complete ツール) output/ の内容で合格と判断したら、`complete({status: "success", result: ...})` を呼ぶ。 result はそのままユーザーに表示される最終回答。output/ のファイルを Read で読み、その内容をベースに整形する。 - 「output/xxx.md を確認してください」のようなファイル参照ではなく、内容そのものを回答として返すこと - 【厳守】「✅ 完了」「推奨方針をまとめました」「確認しました」等のステータス表示・メタ説明・内部作業の報告は一切書かない。1行目からいきなり本題の内容を書き始めること - 推奨方針・トレードオフ・根拠を会話調で分かりやすく伝える - 表・リスト・見出しなど Markdown 書式を活用して読みやすくする ## 終了方法のまとめ - 合格: `complete({status: "success", result: "ユーザー向け最終回答"})` - 修正必要: `transition({next_step: "aggregate", summary: "差し戻し指摘"})` (上記形式で) - 技術的失敗: `complete({status: "aborted", abort_reason: "..."})` allowed_tools: [Read, Glob, Grep] # default_next is the engine-internal fallback (context overflow / ASK # limit / SpawnSubTask unavailable). Not exposed to the LLM. default_next: COMPLETE rules: - condition: output/ にファイルがない、または内容に不足がある next: aggregate