mcpField
E
egm-review-loop

egm-review-loop

github.com/googleドキュメント4.7k60 回インストール今日更新
リポジトリ

egm-review-loop について

egm-review-loopは、ドキュメントの反復的なマルチエージェントレビューを調整するスキルです。独立したコンテキストの監査役と、継続的なコンテキストを持つ修正役が連携し、指摘の評価と承認済み修正を行います。

主な機能

  1. 01各ラウンドで対象範囲を再確認
  2. 02専門レビュー担当をディスパッチ
  3. 03指摘を集約して分類
  4. 04承認済みのドキュメント修正
  5. 05各ラウンド間でユーザー確認を待機

活用シーン

  1. 01更新中の設計ドキュメントのレビュー
  2. 02標準に沿った反復監査
  3. 03選択したレビュー修正の適用
  4. 04ユーザー判断を待つレビューの一時停止

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/google/elephant-goldfish-model --skill egm-review-loop

インストール後、Claude Code で/egm-review-loopを入力して読み込まれたか確認します。

同梱ファイルtest_scenarios.yamlTEST.md

詳細

Goldfish Review:Loop(オーケストレーションドライバー)

Codex または ChatGPT Work で実行する場合は、まず Codex integration を読んでください。 Claude Code または Cowork では、先に ${CLAUDE_PLUGIN_ROOT}/docs/claude.md を読んでください。

概要

このスキルは、マルチエージェントレビューのループを駆動する中心的なオーケストレーションエンジンとして機能します。2つの異なるエージェントのメモリモデルを連携させます。

  • Goldfish(敵対的監査役):明示されていない前提を、過去のバイアスなしに見つけるため、隔離された新しいコンテキストウィンドウで起動されるサブエージェントです。
  • Elephant(永続的な解決役):組織の知識を保持し、指摘事項を評価して承認済みの修正を適用する、プライマリエージェントのコンテキストです。

ドライバーは、引数の受け取り、レビュアーと標準のパス解決、各イテレーション前の対象行範囲の無条件な再解析、設定に基づく専門のGoldfish監査役の並列起動、指摘事項の解決に向けたElephantコンテキストとの連携を管理します。

委任

Goldfishは会話履歴のない新しいコンテキストで実行されます。ハーネスのサブエージェントツールを使って各サブエージェントを起動してください(Antigravity:invoke_subagent、Claude Code:Agent、Codex:spawn_agent)。各サブエージェントはagents/<file>.mdで定義されており、そのフロントマターのname(例:egm-zoom-out)が、ハーネスに名前付きサブエージェントを登録している場合に指定するサブエージェントのタイプです。そうでない場合は、汎用サブエージェントを起動し、最初に該当するペルソナファイルを読むよう伝えてください。プロンプトをそのまま渡し、レポートを待ちます。ハーネスがサブエージェントの入れ子に対応していない場合は、シンセサイザーを使わず、直接ディスパッチしてください。docs/harnesses.mdを参照してください。 ハーネスにサブエージェントツールがない場合は、停止してユーザーに伝えてください。同じコンテキスト内でのレビューはGoldfishレビューではありません。

入力

呼び出し元またはユーザーは、以下のパラメーターを正確に指定します。

  • TargetFile:対象ドキュメントへの絶対パスまたは相対パスです。
  • SemanticTarget:対象箇所を示す説明文字列(例:「SS-IDが'S1.12'のH4ブロックを対象にする」)、またはfull fileです。
  • Reviewers:レビュアー名のリスト(短縮名またはパス)です。
  • Standards:レビュアー名と標準名の対応付け(短縮名またはパス)です。
  • GoldfishContext:レビュアーに渡して基準となる情報を共有するための資料リスト(ソースファイル、ディレクトリ、ドキュメントURL)です。

パスと標準の解決ロジック

ReviewersとStandardsの名前を解決するときは、以下のとおりに処理します。

  • レビュアーの短縮名:レビュアーの短縮名(例:design_critic、structural、style、implementation_readiness、codebase_details、comprehension、zoom_out)をagents/{name}.mdに対応付けます。ペルソナファイルには、レビュアーの中核的な責務、監査の観点、出力形式が定義されています。
  • 標準の短縮名:標準の短縮名(例:feature-spec-standard、implementation-readiness-standard、zoom-out-standard、heilmeier-standard、re-implementation-standard)をresources/document_standards/{name}.mdに対応付けます。
  • カスタムパス:名前にスラッシュ(/)が含まれている場合は、絶対パスまたはワークスペース相対パスとして扱い、そのファイルを直接読み込みます。

実行ワークフロー

ステップ 1:インテークと設定の UX

提供された入力(TargetFile、SemanticTarget、Reviewers、 Standards、GoldfishContext)を評価します。

  1. 不足している入力の特定:必須パラメーターのうち、不足しているものを特定します。
  2. 対話型オンボーディング:
    • すべての入力がそろっている場合は、ステップ 2 に進みます。
    • 一部またはすべての入力が不足している場合は、不足している入力のみをチャットメッセージで 1 つずつ対話的にユーザーに尋ねます。
  3. レビュー担当者の推奨:
    • 機能仕様書:design_critic(resources/document_standards/feature-spec-standard.md に対応)および structural(resources/document_standards/feature-spec-standard.md に対応)を推奨します。
    • 実装計画:implementation_readiness(resources/document_standards/implementation-readiness-standard.md に対応)および codebase_details を推奨します。
  4. 設定の確認:統合した計画(Target、Reviewers、対応する Standards)を表示し、続行する前にユーザーに確認を求めます。
ステップ 2:ブラッシュアップループ(反復サイクル)

以下の手順を継続的なループで実行します。

2.1 無条件のターゲット解決

各反復の前に、TargetFile を読み取って必ず再スキャンし、安定した SemanticTarget 文字列(例:ターゲットの見出しを検索)を使って、更新後の開始行と終了行を動的に特定します。これにより、前のラウンドでファイルが編集されていても、行番号を常に正確に把握できます。(full file モードが指定されている場合は、ファイル全体の行範囲を確認します。)

2.2 レビュースウォームの実行
  1. サブエージェントスウォームの起動: レビューを実行するサブエージェントを起動します。
    • 階層型ディスパッチ(シンセサイザー):中間シンセサイザーサブエージェント(agents/synthesizer.md / egm-synthesizer)を起動します。シンセサイザーは Goldfish レビュースウォームを並行して起動し、指摘事項の重複を排除し、レポート成果物を作成した後、ルート会話のコンテキスト汚染を避けるため、単一の要約メッセージを返します。
    • 直接ディスパッチ(フラットスウォーム):または、Reviewers で指定された各レビュー担当者サブエージェントを直接起動します。各サブエージェントに、まず agents/{name}.md のペルソナ定義を読み、その後、GoldfishContext を提供したうえで、解決済みの行範囲にある TargetFile を resources/document_standards/ 内の指定された標準に照らして監査するよう指示します。
    • 各レビュー担当者は、重大度(🔴 Blocker、🟡 Major、🟢 Nit)、行番号、相違点の説明、および根拠を含む指摘事項を作成します。
  2. 指摘事項の統合:すべてのレビュー担当者から指摘事項を収集し、単一のフラットな FindingsList にまとめます。
2.3 集約した解決処理への引き継ぎ
  1. TargetFile、対象の行範囲、および集約した FindingsList を egm-resolve ワークフローに渡します。
  2. プライマリの Elephant コンテキストで解決ワークフローを実行します。
    • 指摘事項を CONTEST と PROPOSE FIX に分類します。
    • ファイル書き込みツールを使って goldfish_review_report.md を保存します。
    • 対話型の判断ゲート(自動承認、続行、対話型の詳細確認)を提示します。
    • ファイル編集ツールを使って、承認されたテキスト修正を TargetFile に適用します。
2.4 反復チェックとターン境界

レビュー担当者の報告で未解決の指摘事項がゼロになるか、ユーザーが明示的に停止するまで、サイクルを繰り返します。

重要なターン交代要件:各ラウンドの解決フェーズが完了した後、ループドライバーは egm-resolve のターン交代チェックポイントを必ず順守しなければなりません。ドライバーは人間のターン中は待機状態を維持し、ユーザーが次のレビュラウンドを実行することを明示的に確認した場合にのみ、ステップ 2.1 に戻ってループを再開します。

ステップ 3:出力境界と最終チェックポイント

正常に完了した場合(未対応の指摘がなくなった場合や、手動で停止した場合など):

  • プログラムから呼び出す場合:egm-review のサブフローとして実行している場合は、親ワークフローに実行を戻すため、正常に終了します。
  • 手動で呼び出す場合:チャットで完了の概要を出力します:"レビューの反復処理が完了し、未対応の問題はありません。次の段階に進みますか。それとも、最後に確認したいことがありますか?"

コメント