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.
When running in Codex or ChatGPT Work, first read Codex integration.
In Claude Code or Cowork, read ${CLAUDE_PLUGIN_ROOT}/docs/claude.md first.
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 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 Goldfish
reviewers.Hybrid Execution UX: Detect if execution arguments are present:
Read TargetFile at LineRange by reading it and parse the FindingsList.
Give each finding exactly one category:
Apply these rules:
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: [Blocker | Major | Nit]
* **Affected Scope:** [Lines Start-End]([RelativePath]#L[Start]-L[End]) ([Sub-header])
* **Discrepancy Description:** [copied from FindingsList]
* **Rationale:** [copied from FindingsList]
* ***AI Suggestion:*** [CONTEST | ESCALATE | PROPOSE FIX | DECLINE]
* ***Justification:*** [Detailed reason]
* ***Proposed Edit:***
* Location: [Line/Header]
* Change: [Precise replacement string or deletion note]
{{end}}
If any finding is ESCALATE, list those findings first in the chat message.
They need the user's knowledge, not only approval.
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 in
chat or the file and leave comments/edits to approve, reject, or contest
specific items.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:
"Auto accept" / "Accept all suggestions" / User clicks "Proceed" without
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, ESCALATE, or
DECLINE are explicitly bypassed. Then proceed to Step 5.
"Continue to next phase" / "No changes": Do not apply any automated fixes. Then proceed to Step 5.
"Interactive breakdown": Enter a sequential breakdown loop over ALL
finding items (all categories except DECLINE):
For each item i, output a visible chat message formatting the full
finding 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 | ESCALATE | 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 proposed
fix, Skip / ignore, or Discuss.CONTEST: Ask the user to reply with Skip / agree with
contest, Overrule contest (propose fix), or Discuss.ESCALATE: Ask the user to reply with Confirm (no change),
Add the fact to the document, or Discuss.Record the user's decisions in an internal memory checklist (e.g., Item 1: Accepted, Item 2: Ignored, Item 3: Overruled). Do NOT call any file editing tools during this sequential loop.
Once all items have been decided, summarize the accepted edits, execute them using your file-editing tool, and proceed to Step 5.
Custom instruction / Out-of-band edit: If the user provides targeted instructions, apply them and proceed.
TargetFile, verify that the
file remains structurally coherent and valid markdown.Status: resolved line at the top).egm-review-loop)
with the count of accepted fixes, contested items, escalated items,
declined items, and remaining unaddressed issues.Copy a source-pinned command for your client. You run it yourself.
Destination: .claude/skills/egm-resolve · pinned to the source commit
# Run from your project root
git clone https://github.com/google/elephant-goldfish-model.git .skillboard-tmp
git -C .skillboard-tmp checkout bdcfe8cdaee99699c4b2cb7ad4e3b2c1a6b56a31
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/skills/egm-resolve" ".claude/skills/"
rm -rf .skillboard-tmpReview the source before running. This copies files into your project; it is not a one-click install and does not verify runtime safety.
sudo apt update && sudo apt install -y gitnpm install -g @anthropic-ai/claude-code# Run from your project root
git clone https://github.com/google/elephant-goldfish-model.git .skillboard-tmp
git -C .skillboard-tmp checkout bdcfe8cdaee99699c4b2cb7ad4e3b2c1a6b56a31
mkdir -p ".claude/skills"
cp -r ".skillboard-tmp/skills/egm-resolve" ".claude/skills/"
rm -rf .skillboard-tmpDestination: .claude/skills/egm-resolve
Scanner static-checks@0.1.0 · commit bdcfe8cdaee9. Static checks cannot prove runtime safety – review the source and the exact diff before installing. How checks work.
Instructs shell/process/package operations that run commands on the host.
Evidence: subprocess· fingerprint f77b7310faf3f1f4
References parent-directory traversal, which can escape a target directory.
Evidence: ../· fingerprint fa08499e14d0113b