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 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.Give each finding exactly one category:
the codebase. Cite evidence that the reviewer could read: a file and
symbol, or a decision recorded in the document.
file the reviewer could read (for example, a team convention or a verbal
decision). State that fact. Do not fix the finding. Give it to the user.
or structural formatting adjustments to resolve the gap.
PROPOSE FIX for a Nit if the fix is worth it.
Apply these rules:
If you cannot cite evidence the reviewer could read, use ESCALATE or
PROPOSE FIX.
reader of the document needs it. If only a zero-context subagent needs it,
use ESCALATE.
the document, the document is missing context.
and state the reason.
that the reviewer is wrong.
Construct the final report and save it namedgoldfish_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 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, ESCALATE, orDECLINE are explicitly bypassed. Then proceed to Step 5.
fixes. Then proceed to Step 5.
finding items (all categories except DECLINE):
i, output a visible chat message formatting the fullfinding details and explanation in rich markdown:
```markdown
[ReviewerPersona]]```
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**.
ESCALATE: Ask the user to reply with Confirm (no change),Add the fact to the document, 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, escalated items,
declined items, and remaining unaddressed issues.