>- The Elephant resolution skill. Ingests flat deficiency reports from concurrent Goldfish reviewers, applies automated fixes for PROPOSE FIX items via UI multiple-choice gates, and presents interactive negotiation/re-sync checkpoints.
npx skills add https://github.com/google/elephant-goldfish-model --skill egm-resolve
This skill instructs the agent on how to operate within the primary Elephant
context window to parse flat deficiency reports from concurrent Goldfish
reviewers. It defends accurate design choices, applies automated textual
repairs, and manages interactive negotiation checkpoints.
the persistent conversation session that generated the target document (the
Elephant) to recall earlier reasoning and craft higher-quality fixes.
The caller or orchestration driver provides exactly these parameters:
TargetFile: Absolute or relative path to target document.LineRange: Exact line numbers (or full file).FindingsList: Aggregated flat list of findings from Goldfishreviewers.
subprocess.
onboarding flow. Prompt for one piece of input at a time, waiting for
the user's response after each turn. Once all inputs are specified,
display the final setup and verify the user is ready to continue.
TargetFile at LineRange by reading it and parse the FindingsList.For each finding in the list, determine:
the codebase. Provide exact code or design doc evidence defending current
text.
or structural formatting adjustments to resolve the gap.
Construct the final report and save it named
goldfish_review_report.md in the working directory (or your harness's artifact directory, if it has one)
using your file-writing tool. Use this layout:
# Goldfish Annotated Review Report
**Target:** `[TargetFile]` (`[LineRange]`)
## Prioritized Findings & AI Suggestions
{{range findings, ordered by Severity}}
### [Issue 1] [`[ReviewerPersona]`] - Severity: [High | Medium | Low]
* **Affected Scope:** [Lines Start-End]([RelativePath]#L[Start]-L[End]) ([Sub-header])
* **Discrepancy Description:** [copied from FindingsList]
* **Rationale:** [copied from FindingsList]
* ***AI Suggestion:*** [CONTEST | PROPOSE FIX]
* ***Justification:*** [Detailed reason]
* ***Proposed Edit:***
* Location: [Line/Header]
* Change: [Precise replacement string or deletion note]
{{end}}
Before proceeding, output a visible chat message to the user: *"I have compiled
the audit findings into goldfish_review_report.md. Please review the findings there and choose how you would like to
proceed:
goldfish_review_report.md inchat or the file and leave comments/edits to approve, reject, or contest
specific items.
(skipping contested items).
without applying fixes.
item-by-item walkthrough in chat with detailed explanations for each
proposed edit or contested finding before making decisions.
instruction, question, or out-of-band request."*
You MUST immediately yield active execution by calling zero tools in
this turn payload. You must stop execution and go idle, waiting for the human
developer to comment on/edit the artifact or reply in the chat.
Interpret the user's action/response as follows:
contesting**: Apply all fixes where the AI suggestion was PROPOSE FIX
directly to TargetFile at LineRange in a single batch using
your file-editing tool. Any items categorized as CONTEST are explicitly
bypassed. Then proceed to Step 5.
fixes. Then proceed to Step 5.
finding items (both PROPOSE FIX and CONTEST):
i, output a visible chat message formatting the fullfinding details and explanation in rich markdown:
### Breakdown Item [i]: [Issue Title] [`[ReviewerPersona]`]
* **Scope:** [Lines Start-End]([RelativePath]#L[Start]-L[End]) ([Sub-header])
* **Description:** [Description]
* **AI Suggestion:** [CONTEST | PROPOSE FIX]
* **Explanation & Justification:** [Detailed reason and background explaining why the fix is proposed or why the finding is contested]
* **Proposed Edit:** [Precise replacement text or deletion note]
Then prompt the user in chat for their decision on this item (calling
zero tools and going idle):
PROPOSE FIX: Ask the user to reply with **Accept proposedfix, Skip / ignore, or Discuss**.
CONTEST: Ask the user to reply with **Skip / agree withcontest, Overrule contest (propose fix), or Discuss**.
1: Accepted*, *Item 2: Ignored*, *Item 3: Overruled*). **Do NOT call any
file editing tools during this sequential loop.**
them using your file-editing tool, and proceed to Step 5.
instructions, apply them and proceed.
TargetFile, verify that thefile remains structurally coherent and valid markdown.
Status: resolved line at the top).egm-review-loop)with the count of accepted fixes, contested items, and remaining unaddressed
issues.
Take google/egm-resolve 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.