mcpField
E
egm-drift-report

egm-drift-report

github.com/googleTesting & quality4.7k62 installsUpdated today
Repository

About egm-drift-report

egm-drift-report is a skill for comparing design documents or READMEs with a codebase and reporting discrepancies. It guides an agent through locating referenced source and recording drift in a dated Markdown report.

Key features

  1. 01Checks a specified document directory
  2. 02Locates related source files
  3. 03Compares documented intent with code
  4. 04Reports discrepancies only
  5. 05Writes a dated drift report

Use cases

  1. 01Check whether a design was implemented
  2. 02Find code missing from a README specification

Install

Copy the command and run it in a terminal.

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

After installing, type/egm-drift-reportin Claude Code to confirm it loaded.

Bundled filestest_scenarios.yamlTEST.md

Details

From the project README

Detect Drift In Designs and Code

When running in Codex or ChatGPT Work, first read Codex integration. In Claude Code or Cowork, read ${CLAUDE_PLUGIN_ROOT}/docs/claude.md first.

When the user asks to detect drift across all designs or a set of READMEs, the goal is to identify all instances where the codebase has diverged or failed to implement the specifications described by those designs or READMEs.

  1. Check Input: Verify a directory containing design documents or READMEs is provided. If not provided, ask the user to specify the target directory.

  2. List Documents: List all files in the design directory.

  3. Analyze: For EACH design document:

    • Contextualize: Read the design document. Identify the intent, proposed changes, and specific filenames/symbols mentioned.
    • Locate Source: Find the corresponding source code files in the source tree. If paths aren't explicit, use code search or grep to locate the relevant classes, functions, or API endpoints mentioned in the doc. Prompt the user to add missing links to the document to make future detection cheaper.
    • Verify: Read the current state of those source files.
    • Detect Drift: Compare the design vs. reality. Look specifically for:
      • Missing Features: Logic described in the doc but absent in the code.
      • Incomplete Models: Dataclasses/Classes/Structs/Protos missing fields specified in the design.
      • Logic Shortcuts: Hardcoded values where dynamic logic was planned.
      • Architectural Divergence: Implementation using different patterns/libraries than proposed.
    • Filter: Report ONLY the differences. Do not describe what is working or what matches. If the code matches the design perfectly, output "No drift detected."
  4. Report: Produce a single report listing all discrepancies found.

    • Append the analysis for each file to {YYYY-MM-DD}_DRIFT_REPORT.md using your file-writing tool.

    • Strict Format:

      ## <DESIGN_DOC_NAME>
      
      <Bulleted list of specific divergences found>
      <Or "No drift detected">
      
  5. Guidance

    • Be rigorous. If a design doc mentions a specific object, field or file name and the code doesn't have it, that is a reportable drift. Double check for coverage. If there is some part of the logic that is not referenced in a design or README, this is a reportable drift.
    • Read files liberally to ensure you are looking at the current state of the code, not relying on memory.
    • Process the files sequentially to ensure the tool output buffer doesn't overflow.

Comments

Markdown supported