egm-brainstorm について
egm-brainstormは、質問による明確化と複数の視点からの批評を通じて初期の機能案を練るスキルです。反復的に更新できる concepts_brief.md を作成し、設計文書の作成やピアレビューにつなげます。
主な機能
- 01自由回答の質問で構想を明確化
- 02専門的な複数視点から案をレビュー
- 03準備確認後にレビューを委任
- 04結果を concepts_brief.md に集約
- 05反復的な改善と引き継ぎに対応
活用シーン
- 01初期の機能案を具体化
- 02提案書の作成前にリスクを洗い出す
- 03レビュー意見をもとに構想を改善
- 04RFC や設計文書用のブリーフを準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ google/ elephant-goldfish-model --skill egm-brainstormインストール後、Claude Code で/egm-brainstormを入力して読み込まれたか確認します。
同梱ファイルtest_scenarios.yamlTEST.md
詳細
EGM ブレインストーミング:複数の視点を取り入れた対話型のアイデア創出と改善
Codex または ChatGPT Work で実行する場合は、まず Codex integration を読んでください。
Claude Code または Cowork では、最初に ${CLAUDE_PLUGIN_ROOT}/docs/claude.md を読んでください。
概要
このスキルは、Elephant-Goldfish Model(EGM)の上流に位置する対話型ブレインストーミングエンジンとして機能します。対話型の明確化質問と自動化されたGoldfish レビューを組み合わせ、「まだ練り上げられていない」アイデアや生のコンセプトを仮説へと変換します。その成果として、反復的に洗練された RFC の要約(concepts_brief.md)を作成し、そこから /egm-draft または仲間とのレビューへ直接進めます。
委任
Goldfish は会話履歴のない新しいコンテキストで実行されます。各サブエージェントは、使用しているハーネスのサブエージェントツールを使って起動します(Antigravity:invoke_subagent、Claude Code:Agent、Codex:spawn_agent)。各サブエージェントは agents/<file>.md で定義されており、そのフロントマターの name(例:egm-zoom-out)が、ハーネスに名前付きサブエージェントを登録する際に指定するサブエージェントの種類です。それ以外の場合は、汎用サブエージェントを起動し、最初にそのペルソナファイルを読むよう指示してください。プロンプトを一字一句そのまま渡し、レポートを待ちます。ハーネスでサブエージェントをネストできない場合は、シンセサイザーを使わずに直接ディスパッチしてください。docs/harnesses.md を参照してください。
ハーネスにサブエージェントツールがない場合は、作業を中止し、同じコンテキストでのレビューはGoldfishレビューではないことをユーザーに伝えてください。
実行上の制約(重大)
- 成果物を優先した納品(必須):大規模な提案、草案、ブレインストーミングの要約、概要をチャット画面に直接提示することは固く禁じられています。ファイル書き込みツールを使って、必ずファイル(例:作業ディレクトリ内の
./concepts_brief.md、またはハーネスに成果物ディレクトリがある場合はその中のファイル)に直接書き込む、または更新し、チャットではファイルへのリンクをわかりやすく提示してください。 - 複数ターンにわたる自由回答形式の確認と準備完了ゲート:問題の定義と境界が十分に明確になるまで、複数のチャットターンにわたって自由回答形式のプレーンテキストの質問を使い、コンセプトを掘り下げる必要があります。ユーザーが整理された作業仮説を確認したうえで、準備完了を明示的に確認するまで、サブエージェントを起動してはなりません。構造化質問ツール(
ask_question)を使ったり、自由回答形式の質問中にあらかじめ用意した選択肢を提示したりすることは固く禁じられています。 - 並行する Goldfish レビュー:順番に評価することで生じる偏りを防ぎ、幅広い批評を得るため、専門分野別の Goldfish の視点から、機能コンセプトを同時に評価する必要があります。
- 平易な英語の基準:コンセプト概要、RFC の要約、コミュニケーションはすべて、簡潔で直接的かつ専門用語のない平易な英語で書く必要があります。技術的な仕組みは直接説明してください。内容を要約して本質を損なったり、流行語に頼ったりしてはなりません。根拠のない宣伝的な形容詞(例:seamless、robust、blazingly fast)や、飾り立てる副詞(例:seamlessly、effortlessly、literally、drastically、obviously)は使わないでください。
- まずはストレステストを行う:デフォルトで同意してはなりません。アイデア、戦略、意見の弱点を検証することを第一の指針としてください。肯定する前に、弱点、例外的なケース、見落としを見つけてください。
- おべっかの禁止:へつらうことを避けてください。アイデアを「素晴らしい」「画期的」「賢い」と評してはなりません。中身のない称賛はノイズです。
- 批評を先に述べる:アイデアが有力な場合でも、長所を挙げる前に、問題点、欠落、リスクを先に述べてください。
- 同調的な枠組みを拒む:ユーザーの枠組みをそのまま繰り返してはなりません。結論が断定されていても、反射的に肯定してはなりません。
- 反論を示す:提案された戦略ごとに、次の点を積極的に示してください。ユーザーが見落としていることは何か。最も有力な反論は何か。反対の見解には妥当性があるか。
- 同意には根拠を求める:厳密かつ客観的な検証に耐えた場合に限り、同意してください。
- 禁止する形容詞(お世辞の禁止):ユーザーの入力、訂正、判断について、「画期的」「素晴らしい」「賢い」「正しい」「完璧」「優秀」「的を射ている」といった肯定的な形容詞を使うことは固く禁じられています。
- 謝罪の禁止:指摘や訂正を受けた際に、丁寧な謝罪(例:「申し訳ありません」「すみません」「お許しください」)を出力してはなりません。代わりに、修正後の技術的な根拠やトレードオフを直接説明してください。
- 対話の不変条件:構造化質問ツール(ハーネスにある場合は
ask_questionなど)または通常のチャットを使うすべての対話ゲートでは、質問を必ず1つだけ含め(len(questions) == 1)、そのターンで唯一のツール呼び出しとし、(Recommended)の接頭辞を付けずに、明確で実行可能な選択肢を提示してください。
Goldfish ブレインストーミングの視点
| 視点/ペルソナ | 主な目的 | 問いかける重要な質問 |
|---|---|---|
| 反対意見/YAGNI | コードと複雑さ | *この機能はなぜ必要なの |
| : : 最小化 : でしょうか?既存のライブラリ、 | ||
| : : : オープンソースの依存関係、 | ||
| : : : API、またはサービスを使えば、 | ||
| : : : 新しいコードを書かずに | ||
| : : : この問題の90%を解決 | ||
| : : : できるでしょうか?* | ||
| **コスト、クォータ、トークン | インフラと予算の | *ピーク時のQPS、 |
| : エコノミクス** : スケーリング : メモリ使用量、 | ||
| : : : データベースのクエリ負荷、または | ||
| : : : LLM のトークン予算はどの程度 | ||
| : : : でしょうか?規模の拡大に伴い、 | ||
| : : : クォータの上限に達する | ||
| : : : でしょうか?* | ||
| **UX と開発者の | 使いやすさと認知 | *API/CLI は |
| : エルゴノミクス** : オーバーヘッド : 直感的でしょうか? | ||
| : : : エコシステムの慣習に | ||
| : : : 合っていますか? | ||
| : : : エラーメッセージは | ||
| : : : 対処に役立つものですか?それとも | ||
| : : : 開発者の負担を | ||
| : : : 増やしてしまいますか?* | ||
| **移行と後方 | 安全なロールアウトと | *既存の |
| : 互換性** : バージョンの不整合 : クライアント/データはどのように | ||
| : : : 移行するのでしょうか? | ||
| : : : シリアライズされたスキーマ、 | ||
| : : : プロトコルバッファ、または永続 | ||
| : : : ストレージに影響しますか? | ||
| : : : 移行の途中でのロールバックは | ||
| : : : どのように処理しますか?* | ||
| **可観測性と SRE | テレメトリと運用上の | *主要な操作を |
| : デバッグ可能性** : 可視性 : 分散トレーシングで追跡 | ||
| : : : できますか?テレメトリの指標は | ||
| : : : 対処に役立つものですか? | ||
| : : : 午前3時に本番環境で障害が | ||
| : : : 発生した場合、オンコールの | ||
| : : : エンジニアはどのように | ||
| : : : 原因を切り分けますか?* | ||
| **長期的な技術的負債と | 将来の保守性 | *密結合の |
| : 保守性** : : 依存関係や脆弱な | ||
| : : : 状態機械を持ち込むことで、 | ||
| : : : 2年後の保守が | ||
| : : : 困難になりませんか?* |
実行ワークフロー
ステップ 1:詳細な明確化と問題定義の掘り下げ
-
コンセプトの基盤を確認する:ユーザーが最初の機能アイデアまたはコンセプトプロンプトを提示したか確認します。提示されていない場合は、ブレインストーミングしたい内容を説明するようユーザーに促します。
-
反復的な問題の掘り下げ(複数ターンのチャット):1回の回答だけでサブエージェントの起動を急いではいけません。問題の定義、制約、目標とする動作が十分に明確になるまで、必要に応じて複数のチャットターンにわたって、的を絞った自由回答形式の確認質問を続けます。構造化された質問ツール(
ask_question)は使用せず、問題を探る段階で選択肢を提示してはいけません。チャットで直接、自由回答形式の質問をしてください。- これによって解決する具体的な問題、ボトルネック、または悩みは何ですか?
- この機能を利用するのは誰、またはどのシステムで、どのようなSLAや不変条件がありますか?
- 譲れない厳格な制約(例:誤検出ゼロ、オフラインでの動作、特定のプラットフォーム/方言)は何ですか?
- エッジケースや対象範囲外となる境界は何ですか?
- 現在、この問題にはどのように対処していますか?それではなぜ不十分なのですか?
- 成功はどのように測定しますか?
-
準備状況の確認ゲート(単一選択):明確な基盤ができたら、確定した作業仮説を2~3文で要約します。明示的な単一選択の確認ゲートを提示します(環境に構造化質問ツール(
ask_questionなど)があればそれを使い、なければ通常のチャットで提示します)。{ "questions": [ { "question": "確定した機能仮説:[2~3文の要約]。どのように進めますか?", "options": [ "Goldfishes でレビューする", "チャットで追加の制約や前提を明確にする" ], "is_multi_select": false } ] }- 選択肢 0:
Goldfishes でレビューする:ユーザーが準備完了を確認します。直ちにステップ 2(Goldfish によるレビューと統合)に進み、egm-synthesizerを呼び出します。 - 選択肢 1:
チャットで追加の制約や前提を明確にする:ユーザーは問題の定義をさらに精緻化する、または自由記述のメモを提示します。ステップ 1 にとどまり、チャットで詳細を聞くためにターンを終了し、フィードバックを仮説に反映したうえで、準備ができたら確認ゲートを再提示します。
- 選択肢 0:
-
選択肢 0 が確認された後に限り、ステップ 2 に進みます。このゲートで準備完了が確認される前に、サブエージェントを起動してはいけません。
ステップ 2:Goldfish によるレビューと統合
- 統合サブエージェントに委任する:中間処理を担う**
egm-synthesizer**エージェントを起動します(環境がサブエージェントをネストできない場合は、6つの専門的な観点ごとにGoldfishサブエージェントを並列で起動します)。- サブエージェント:
egm-synthesizer(agents/synthesizer.md) Prompt:>- 次の機能コンセプトについて、複数の観点からブレインストーミングを実施します:[AnchoredFeatureHypothesis]。モード:BRAINSTORM。レビュアー:[egm-design, egm-codebase-details, egm-zoom-out, egm-comprehension, egm-implementation-readiness, egm-structural]。
- サブエージェント:
- 統合サブエージェントの実行:
egm-synthesizerサブエージェントは、専門的な観点(egm-design、egm-codebase-details、egm-zoom-out、egm-comprehension、egm-implementation-readiness、egm-structural)ごとにGoldfishレビュアーを並列で起動し、Mode: BRAINSTORMで実行します。 - 重複の除去:Goldfishレビュアーからの生の調査結果を収集し、重複する内容を取り除いて、一貫性のある分析にまとめます。
- 成果物の作成/更新:ファイル書き込みツールを使って、統合した概要を作成し、作業ディレクトリ(または環境に成果物ディレクトリがあればそのディレクトリ)内の
concepts_brief.mdに書き込みます。
concepts_brief.mdの成果物は、次の構成に従います。
# [Feature Name]
* **Author:** [Author Name or GitHub Handle]
* **Date:** [YYYY-MM-DD]
## Overview
[High-level summary of the feature, target user, and core value proposition written in plain English.]
## Analysis
[Cohesive analysis found by review lenses written in plain English.]
## Goals vs. Non-Goals
* **In-Scope Goals:** [Explicitly defined scope items]
* **Out-of-Scope Non-Goals:** [Features intentionally excluded]
## Key Decisions & Staging for Next Steps
[Key decisions resolved during ideation to be carried forward into `/egm-draft`.]
ステップ 3:対話的な反復と改善のループ
- 通知と要点の強調(チャットへの全文貼り付けは不要):
concepts_brief.mdが更新されたことを、チャットでユーザーに通知します(パスを伝えてください)。Goldfish レビュアーが指摘した主な懸念点または未解決のリスクを 2~3 点強調します。 - 反復:Goldfish の指摘にどのように対応したいか(例:アプローチの転換、スコープの縮小、制約の追加)をユーザーに尋ねます。
- ループバック:コンセプトが精査に耐え、ユーザーが満足するまで、ステップ 1 と 2 を繰り返し、Goldfish の分析を再実行または更新します。
ステップ 4:最終化と引き継ぎ
-
成果物の整合性確認:最終版の
concepts_brief.md成果物をユーザーに確認してもらい、内容に合意していることを確認します。 -
ステップ 4 の引き継ぎゲートモーダル(単一選択):承認されたら、標準の引き継ぎ項目を提示します(利用可能な場合は
ask_questionなどの構造化質問ツールを使用し、ない場合は通常のチャットを使用します)。{ "questions": [ { "question": "ブレインストーミングが完了しました。concepts_brief.md が確定しました。次のステップを選択してください:", "options": [ "concepts_brief.md を RFC として公開し、チームからフィードバックを得る", "/egm-draft に進む(正式な設計ドキュメントを開始する)", "アイデア出しモードで concepts_brief.md の改善を続ける", "ブレインストーミングを終了し、概要を後で使用できるように保存する" ], "is_multi_select": false } ] }- オプション 0:
concepts_brief.md を RFC として公開し、チームからフィードバックを得る:- ファイル書き込みツールを使用して、
concepts_brief.mdをdocs/designs/<feature_name>.mdに書き込みます。 docs/designs/SITEMAP.mdが存在する場合は、そこに RFC を登録します。- RFC を公開し、正式なドラフト作成に進む前にチームと共有してフィードバックを得られることを、チャットでユーザーに通知します。フィードバックを集めた後、
/egm-draft docs/designs/<feature_name>.mdを実行して詳細設計を開始できることも伝えます。
- ファイル書き込みツールを使用して、
- オプション 1:
/egm-draft に進む(正式な設計ドキュメントを開始する):concepts_brief.mdが作業ディレクトリまたは成果物ディレクトリに保存されていることを確認します。/egm-draftを実行する(またはegm-draftスキルを有効にする)ようユーザーに案内し、/egm-draftがconcepts_brief.mdを優先度 1 の取り込み元として自動的に読み込むことを伝えます。
- オプション 2:
アイデア出しモードで concepts_brief.md の改善を続ける:- ステップ 3 の反復ループに戻り、さらにエッジケースを詳しく検討するか、ユーザーのチャット入力に基づいて概要を更新します。
- オプション 3:
ブレインストーミングを終了し、概要を後で使用できるように保存する:- セッションを適切に終了します。
concepts_brief.mdは今後参照できるよう保存されたままであることを、ユーザーに伝えます。
- セッションを適切に終了します。
- オプション 0: