mcpField
E
egm-drift-report

egm-drift-report

github.com/googleテスト・品質4.7k62 回インストール今日更新
リポジトリ

egm-drift-report について

egm-drift-reportは、設計文書やREADMEとコードベースを照合し、差異を報告するスキルです。関連ソースを特定し、日付入りのMarkdownレポートに記録する手順を示します。

主な機能

  1. 01指定された文書ディレクトリの確認
  2. 02関連ソースファイルの特定
  3. 03文書の意図とコードの照合
  4. 04差異のみを報告
  5. 05日付入りドリフトレポートの作成

活用シーン

  1. 01設計が実装済みか確認
  2. 02READMEの仕様に不足するコードを特定

インストール

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

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

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

同梱ファイルtest_scenarios.yamlTEST.md

詳細

設計とコードの乖離を検出する

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

ユーザーからすべての設計、または一連の README を対象に乖離を検出するよう依頼された場合、目的は、コードベースがそれらの設計や README に記載された仕様から逸脱している、あるいは仕様を実装できていない箇所をすべて特定することです。

  1. 入力を確認する: 設計ドキュメントまたは README を含むディレクトリが指定されていることを確認します。指定されていない場合は、対象ディレクトリをユーザーに尋ねます。

  2. ドキュメントを列挙する: 設計ディレクトリにあるすべてのファイルを列挙します。

  3. 分析する: 各設計ドキュメントについて、以下を行います。

    • 文脈を把握する: 設計ドキュメントを読みます。意図、提案されている変更、記載されている具体的なファイル名やシンボルを特定します。
    • ソースを特定する: ソースツリー内で対応するソースコードファイルを探します。パスが明記されていない場合は、コード検索または grep を使って、ドキュメントに記載されている関連クラス、関数、API エンドポイントを探します。今後の検出にかかる手間を減らすため、ドキュメントに不足しているリンクを追加するようユーザーに促します。
    • 検証する: 該当するソースファイルの現在の状態を読みます。
    • 乖離を検出する: 設計と実際の実装を比較します。特に以下を確認します。
      • 機能の欠落: ドキュメントに記載されているが、コードに存在しないロジック。
      • 不完全なモデル: 設計で指定されたフィールドが欠けているデータクラス/クラス/構造体/プロトコルバッファ。
      • ロジックの簡略化: 動的なロジックが予定されていた箇所でのハードコードされた値。
      • アーキテクチャ上の逸脱: 提案されたパターン/ライブラリとは異なるものを使用した実装。
    • 絞り込む: 差異のみを報告します。正常に動作している点や一致している点は説明しないでください。コードが設計と完全に一致する場合は、「乖離は検出されませんでした」と出力します。
  4. 報告する: 見つかった不一致をすべて列挙した単一のレポートを作成します。

    • ファイル書き込みツールを使用して、各ファイルの分析を {YYYY-MM-DD}_DRIFT_REPORT.md に追記します。

    • 厳密な形式:

      ## <DESIGN_DOC_NAME>
      
      <見つかった具体的な乖離の箇条書き>
      <または「乖離は検出されませんでした」>
      
  5. ガイダンス

    • 厳密に確認してください。設計ドキュメントに特定のオブジェクト、フィールド、ファイル名が記載されていて、コードに存在しない場合は、報告対象となる乖離です。網羅性を必ず再確認してください。設計や README で言及されていないロジックがある場合も、報告対象となる乖離です。
    • 記憶に頼らず、コードの現在の状態を確認できるよう、必要に応じてファイルを読んでください。
    • ツールの出力バッファーがあふれないよう、ファイルを順番に処理してください。

コメント