From peeragent
Run iterative cross-model peer review on substantive designs, code, plans, refactors, architecture, docs, or repo artifacts by delegating to the other local coding agent through peeragent. Use when the user asks for peer review, a second opinion, cross-review, feedback from Codex/Claude, or when recent work is risky enough to deserve an independent review loop. Resolve the bundled wrapper from the plugin location; do not assume peeragent is on PATH.
How this skill is triggered — by the user, by Claude, or both
Slash command
/peeragent:peer-reviewThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
A second pair of eyes from a different model, run as a loop. The other agent
A second pair of eyes from a different model, run as a loop. The other agent reviews; you weigh the feedback honestly; you refine the work; you ask again. Convergence is the goal — not consensus, not politeness, not a clean signoff no one earned.
Do not use this for trivial changes (a typo fix, a one-line rename). The loop is overhead; reserve it for work where the loop pays for itself.
The peer reviewer is the agent you are not.
<resolved-peeragent-bin> --agent codex ....<resolved-peeragent-bin> --agent claude ....--agent gemini) when the user asks for it or
when the natural pair is unavailable.The point of the alternate agent is different blind spots, not a more authoritative answer. Their misses are your catches and vice versa.
Run at least 3 full review→refine passes. Continue past 3 only while substantive issues keep surfacing. Stop when a pass returns mostly nits (taste, minor wording, micro-style). Cap at 5 — if you are still in substantive disagreement after 5, the work needs a human, not more loops.
Each pass has five steps. Do all five every time.
Tailor the framing to the type of work. Keep it open. Ask for "the good, the bad, and the ugly" — explicit permission for honest negatives. Do not tell the reviewer your conclusions; let them form their own.
| Type of work | What to ask the reviewer for |
|---|---|
| Code / implementation | Correctness bugs, edge cases, security, reuse opportunities, simplifications. |
| Design / architecture | Coherence, missing concerns, scope errors, alternatives not considered, integration risks. |
| Plan / task breakdown | Completeness, sequencing, risk, hidden dependencies, unrealistic estimates. |
| Refactor | Whether the abstraction earns its weight, dead code, unintended behavior change. |
| Docs / writeup | Accuracy against the code, gaps, audience fit, lying-by-omission. |
The prompt should orient on what kind of feedback you want and what the artifact is — not on the conclusions you want validated. Avoid leading questions ("don't you think X is good?"). The reviewer is in the same repo, so file paths work directly.
Include a no-recursion instruction in every review request. Tell the
reviewer explicitly not to reach for peeragent's own peer or
peer-review skills — and not to run the peeragent wrapper — to delegate
the review back out to another local coding agent. That would loop
host → reviewer → host and burn the review budget. The reviewer is the
endpoint of this delegation; it should review directly. It may freely use
its own harness's internal sub-agents for parallel or focused analysis; the
prohibition is only on recursive peeragent calls. A short line in the
prompt is enough, e.g. "Review this directly — do not call the peeragent
peer/peer-review skills to hand it off again; use your own harness's
sub-agents if you need help."
A blocking call. Default model/effort is fine for most passes; bump effort only when the work is dense or the stakes are high.
Do not assume peeragent is on PATH. Resolve the bundled wrapper before
the first call and use that path for every invocation:
PEERAGENT_BIN names an executable, use it.bin/peeragent.bin/peeragent.peeragent only if the bundled path cannot be found and
command -v peeragent succeeds.If a bare peeragent call fails with command not found, retry once with
the bundled plugin path before reporting failure.
Run each review pass with the host harness's outside-sandbox command mode so
the peer CLI inherits the developer machine's normal network, auth, hook, and
process environment. In Codex, use the command tool's escalated/outside-sandbox
execution mode for the wrapper invocation. This is separate from peeragent's
--full-access flag: do not pass --full-access for review.
<resolved-peeragent-bin> --agent <other-agent> "Review the following <work type> and give
me the good, the bad, and the ugly. Focus on <task-specific concerns>.
Artifact: <paths or inline description>. Context: <what changed, what
success looks like>."
For a deeper review pass:
<resolved-peeragent-bin> --agent codex --effort xhigh "..."
<resolved-peeragent-bin> --agent claude --model opus --effort xhigh "..."
Claude Opus review passes, especially with --effort xhigh, may take 10
minutes or longer to finish. A slow or quiet Opus reply is not by itself
evidence of a hung process; keep waiting unless the wrapper exits, reports
failure, or there is concrete evidence the process is stuck.
For very large prompts, write to a file and use --prompt-file <path>.
Never request --full-access for review — review shouldn't need it.
If the wrapper result includes metadata.agent_session, keep it for the
current review loop. Use --resume <agent-session> on the next pass when you
want the reviewer to evaluate whether its prior substantive concerns were
addressed. Do not use --resume when the point is an independent second
opinion or when the review scope materially changes.
For each point the reviewer raises, ask:
You are not obligated to accept the reviewer's framing. You are obligated to consider it.
Make the real edits in the working tree. The work is what changes; the review is the signal. Nodding at feedback without applying it is the most common failure mode of this loop — guard against it.
If you reject a point, note why — to yourself, in a running summary you'll share with the user at the end.
Look at what's left:
Three is the minimum because pass 1 catches the obvious, pass 2 catches what you fixed badly, pass 3 confirms convergence.
A healthy loop rejects roughly as many points as it accepts. Accepting everything is sycophancy; rejecting everything is stubbornness. Both fail.
Accept readily:
Push back when:
When you push back, do it in your own notes. Do not argue with the reviewer through another delegation — that wastes budget and doesn't change their position. Just don't apply the change.
The loop is for substantive concerns. Don't burn passes on nits.
If a pass surfaces only nits, that's the signal you've converged. Apply the worthwhile ones, drop the rest, stop the loop.
After the loop ends, summarize:
Keep it tight. The user doesn't need the full transcript of every pass — they need to know what got better, what you decided against, and where things landed.
The wrapper returns JSON by default. Per delegation:
status: success — read the reviewer's response, run it through the
honest-evaluation step, apply what you accept.status: blocked — note the blocker, evaluate the work yourself for
that pass, or surface to the user if it's structural.status: failed — surface the failure; one retry is fine; don't loop
on a broken wrapper.
3 (or, in --text mode, a "no prebuilt binary for this
platform" message), peeragent has no committed binary for the user's
OS/arch. Prebuilt binaries cover linux/darwin on amd64/arm64. Tell the
user: on those platforms, reinstall the plugin or download the matching
archive from https://github.com/nklisch/peeragent/releases; on any other
platform, install from source (requires Go) with
go install github.com/nklisch/peeragent/cmd/peeragent@latest and set
PEERAGENT_BIN. If the
platform is misdetected, PEERAGENT_TARGET_OVERRIDE=<goos>-<goarch>
selects a present binary. Do not retry in a loop.status: running (if --async was used) — record the job id and check
back; usually peer review wants the blocking default.Do not claim the reviewer signed off unless a pass actually returned without substantive findings.
peer/peer-review skills (or the peeragent
wrapper) back out to another agent. The reviewer's own internal harness
sub-agents are fine; recursive peeragent delegation is not.--full-access for review. Reviews shouldn't need it.3, tell the user to install a prebuilt binary
(linux/darwin amd64/arm64) or build from source with Go; do not retry.
No committed binary matches the host OS/arch — looping won't fix it.npx claudepluginhub nklisch/peeragentProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.