>- Executes the Antagonistic-Review process from the Elephant-Goldfish Model (EGM) via an automated multi-agent review loop to audit documents against qualitative standards and structural templates, and automatically apply approved fixes. Use when reviewing design docs, READMEs, feature specifications, implementation plans, or verifying document completeness and tone.
npx skills add https://github.com/google/elephant-goldfish-model --skill egm-review-loop
This skill acts as the central orchestration engine driving the multi-agent
review loop. It coordinates two distinct agent memory models:
fresh context windows to catch unstated assumptions without historical bias.
institutional knowledge to evaluate findings and apply approved repairs.
The driver manages argument intake, resolves paths for reviewers and standards,
unconditionally re-parses target line ranges before every iteration, spawns
concurrent specialized Goldfish auditors based on configuration, and coordinates
with the Elephant context to resolve findings.
A Goldfish runs in a fresh context with no conversation history. Spawn each
subagent with your harness's subagent tool (Antigravity: invoke_subagent;
Gemini CLI: subagents). Each subagent is defined in agents/<file>.md, and its
frontmatter name (for example egm-zoom-out) is the subagent type to request
where your harness registers named subagents. Otherwise spawn a general-purpose
subagent and tell it to read that persona file first. Pass the prompt verbatim
and wait for the report. If your harness cannot nest subagents,
use direct dispatch instead of the synthesizer. See docs/harnesses.md.
If your harness has no subagent tool, stop and tell the user: a review in the same
context is not a Goldfish review.
The caller or user provides exactly these parameters:
TargetFile: Absolute or relative path to target document.SemanticTarget: Descriptive targeting string (e.g., *"Target the H4block with SS-ID 'S1.12'"*), or full file.
Reviewers: List of reviewer names (shortnames or paths).Standards: Mapping of reviewer names to standard names (shortnames orpaths).
GoldfishContext: A reading list (source files, directories, ordocumentation URLs) fed to reviewers to establish their baseline.
When resolving names in Reviewers and Standards:
design_critic,structural, style, implementation_readiness,
codebase_details, comprehension, zoom_out) to agents/{name}.md.
The persona file defines the reviewer's core mandates, audit vectors, and
output format.
feature-spec-standard,implementation-readiness-standard, zoom-out-standard, heilmeier-standard,
re-implementation-standard) to resources/document_standards/{name}.md.
/), treat it as anabsolute or workspace-relative path and read it directly.
Evaluate the provided inputs (TargetFile, SemanticTarget, Reviewers,
Standards, GoldfishContext).
missing.
only for the missing inputs, one at a time via chat messages.
design_critic (mapped toresources/document_standards/feature-spec-standard.md) and
structural (mapped to resources/document_standards/feature-spec-standard.md).
implementation_readiness(mapped to resources/document_standards/implementation-readiness-standard.md)
and codebase_details.
and mapped Standards) and ask the user to confirm before proceeding.
Execute the following sequence in a continuous loop:
Before every iteration, unconditionally re-scan TargetFile by reading it
and using the stable SemanticTarget string (e.g., locating the target header) to
dynamically determine the updated absolute start and end line numbers. This
ensures absolute accuracy even if the file was edited in prior rounds. (If `full
file` mode is specified, confirm full-file line bounds).
Spawn subagents to execute the review:
synthesizer subagent (agents/synthesizer.md / egm-synthesizer).
The synthesizer spawns the Goldfish review swarm in
parallel, deduplicates findings, writes the report artifact, and
returns a single summary message to avoid context pollution in the root
conversation.
reviewer subagent in Reviewers directly.
Instruct each subagent to first read its persona definition in
agents/{name}.md, then audit TargetFile at the resolved line range
against its designated standard in resources/document_standards/,
supplying GoldfishContext.
Nit), line numbers, discrepancy descriptions, and rationales.
flat FindingsList.
TargetFile, the active line range, and the aggregated FindingsListto the egm-resolve workflow.
CONTEST vs. PROPOSE FIX.goldfish_review_report.md with your file-writing tool.breakdown).
TargetFile using your file-editing tool.The cycle repeats until reviewers report zero remaining findings or the user
explicitly halts it.
Crucial Turn-Taking Requirement: After the resolution phase finishes for a
given round, the loop driver **MUST respect the turn-taking checkpoint in
egm-resolve**. The driver must remain idle across human turns,
only looping back to Step 2.1 when the user explicitly confirms they wish to run
another round of review.
Upon successful completion (e.g., zero findings remaining or manual halt):
egm-review, exitcleanly to hand execution back to the parent workflow.
loop has completed with zero remaining issues. Would you like to proceed to
the next stage, or do you have any final questions?"*
Take google/egm-review-loop from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.