Async Agent-to-Agent Code Review

VerifiedSafe

Reviews a diff, branch, or PR, logs findings in a shared Changelog, then loops on a timer waiting for a second agent to push fixes and re-reviews each time.

Sby Skills Guide Bot
DevelopmentIntermediate
9/20/2026
Claude Code
#code-review#async-collaboration#multi-agent#changelog#pull-request

Recommended for

Automated summary

Reviews a diff, branch, or PR for merge readiness, records P0–P* findings at the top of a shared Changelog, then rechecks every five minutes (up to four times) whenever a collaborating agent pushes fixes.

Strengths

  • Keeps findings out of chat: each one is timestamped, severity-tagged, and written at the top of the PR or ticket Changelog where the other agent will see it.
  • Bounded check loop (four 5-minute wakes) that exits on its own when the change is already mergeable or the worker goes quiet.
  • Acts as the asynchronous counterpart to a one-shot review: reviewer and worker make progress without a human relaying between them.
  • Signals liveness by posting a 'seen it, re-reviewing' entry before re-reading the full diff.

Limitations

  • Only works if the other agent writes into the same Changelog under a non-Reviewer role; otherwise the loop never detects a reply.
  • Waiting is capped at roughly 20 minutes, so it stops even if fixes are still landing.
  • Assumes the target doc path (PR description or docs/tasks/<TICKET>.md) is known or supplied, and running tests/lint depends on what the environment allows.

Security analysis

Safe
Quality score88/100

The skill instructs an agent to review code changes, write findings into a changelog, and use scheduled wakeups to re-check for updates. It does not include destructive commands, exfiltration, obfuscation, or instructions to disable safety. Running repository verification commands is a legitimate review activity, though it could execute project-specific scripts, the skill itself does not prescribe unsafe actions.

No concerns found

How this analysis is made

Examples

Review a PR and wait for the worker agent
Review this PR for merge readiness and wait for the other agent to push fixes — leave your findings in the Changelog of docs/tasks/PAY-412.md and check back every few minutes.
Check merge readiness while fixes land
Is this branch ready to merge? Write your findings to the ticket doc's Changelog and keep re-reviewing as the other agent fixes things.
Resume a review loop
tony:reviews-code resume docs/tasks/PAY-412.md, check 2/4

name: reviews-code description: "Use when asked to review a code change (diff, branch, or PR) for merge readiness and collaborate asynchronously with another agent (often invoked with tony:does-work) that is or will be pushing fixes to the same change. Leaves P0-P* findings in a Changelog section, then sleeps in 5-minute checks (up to 4) waiting for the other agent to respond, re-reviewing whenever it does. Triggers: 'review this PR and wait for the other agent', 'reviews:code', 'is this ready to merge, check back as they fix it'."

Reviews Code (tony:reviews-code)

Purpose

Review a code change for merge readiness, leave findings inline in a target doc's own Changelog instead of only in chat, then keep checking back on a timer so a second agent (running tony:does-work on the same file, or pushing fixes to the reviewed branch) can pick up the findings, act, and hand back without either side needing to be polled by a human. The loop ends when the change needs nothing further to merge, or when the other agent goes quiet.

This is the async, collaborative counterpart to tony:is-review-ready: that skill produces a one-shot report for a human to read; this one keeps a running conversation with another agent until the change is mergeable.

Target doc

Findings are written into the Changelog of a Markdown doc that both agents watch — the PR description, or (per this project's convention) the ticket anchor doc (docs/tasks/<TICKET>.md) referencing the linked spec/plan. Ask for this file if it isn't already named.

Changelog format

The Changelog lives at the bottom of the target doc, under a ## Changelog heading. Create the heading if it isn't there yet. New entries always go directly under the heading (top of the list), never appended at the bottom.

Each entry is one bullet:

## Changelog

- **2026-09-09T14:32Z — Reviewer:** <finding or note>

Use role Reviewer for every entry you write. Entries written by the other agent will say Worker (or whatever role they used) — that's how you tell "my own last entry" apart from "something new arrived".

Process

  1. Gather the change. Identify base and head (uncommitted work, a branch against its base, or a pull request). Read the PR/task description, linked spec, and existing review comments before forming a finding.
  2. Review the change for merge readiness using the same lenses as tony:is-review-ready: intent and behavior, contracts and safety, proof and operations (do the tests actually test this), structure and history. Run the repository's own verification (tests, typecheck, lint, build) where the environment allows it.
  3. Write findings into the Changelog, one bullet per finding, newest on top, role Reviewer, ISO 8601 UTC timestamp, each prefixed with its severity tag (see below). If nothing needs to change, skip to step 7 immediately — do not enter the sleep loop for a change that's already mergeable.
  4. Enter the check loop. Call ScheduleWakeup with delaySeconds: 300 and a prompt that names the file and the current check count, e.g. tony:reviews-code resume <file path>, check 1/4. Set noop based on whether anything changed this turn.
  5. On each wake, re-read the Changelog. Compare its top entry to the last one you wrote or saw.
    • No new entry above yours: this was one check. If this was check 4 with nothing new, stop — the other agent appears to have stopped — and tell the user so. Otherwise go back to step 4 with the count incremented.
    • A new entry from the other agent (role isn't Reviewer): go to step 6.
  6. Acknowledge, then re-review. a. Add a new top-of-Changelog entry, role Reviewer, timestamped now, saying you've seen their update and are re-reviewing — this tells the other agent you're active if they check back before you finish. b. Re-read the diff in full (not just the delta implied by their note), re-run verification where applicable, and check off each prior finding as closed, partially closed, or still open — verify the claim rather than taking the note at its word. c. If more changes are needed: go back to step 3 (new findings, reset the check count to 0, resume the loop at step 4). d. If nothing more is needed: go to step 7.
  7. Mark it ready. Add a final Changelog entry, role Reviewer, stating the change is ready to merge, and stop the loop (do not call ScheduleWakeup again).

Severity: P0-P*

Every finding gets a severity prefix so the other agent knows what's required versus optional. Use the fewest tiers actually needed for a given change — skip a tier entirely rather than force a finding into it.

| Tier | Requires | Action | |---|---|---| | P0 | Catastrophic or irreversible harm if merged (data loss, broken build, security hole) | Fix before merge, blocks the loop from closing | | P1 | A realistic material failure this change causes or worsens, no acceptable fallback | Fix before merge | | P2 | A real bounded issue, missing case, or open question a reviewer would raise | Fix, or answer it in the description | | P3 | Small objective cleanup, tiny cost | The other agent's call, never blocks merge readiness on its own |

A Changelog finding entry looks like:

- **2026-09-09T14:32Z — Reviewer:** P1 `path:line` <what breaks, for whom, and the fix>

The loop only reaches step 7 (ready to merge) once every open P0 and P1 is closed. P2/P3 entries left open do not block the "ready" verdict but should be named in the final entry.

Output

Changelog entries written directly into the target doc at each step above, plus a short chat message at the point the loop stops (ready to merge, or the other agent went quiet) summarizing the outstanding P-tier count. This skill only edits the target doc's Changelog section — it does not edit the reviewed code, commit, push, comment on the PR, or change labels.

From the file to a first result

The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.

View the source and supporting files

This download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.

1. Download the file

Download SKILL.md

From the root of a test project, save the file as .skill-downloads/async-agent-to-agent-code-review-mu99joka/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.

Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.

mkdir -p '.skill-downloads/async-agent-to-agent-code-review-mu99joka' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/async-agent-to-agent-code-review-mu99joka/download' --output '.skill-downloads/async-agent-to-agent-code-review-mu99joka/SKILL.md.part' && mv '.skill-downloads/async-agent-to-agent-code-review-mu99joka/SKILL.md.part' '.skill-downloads/async-agent-to-agent-code-review-mu99joka/SKILL.md'

2. Check prerequisites

Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.

No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.

The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.

3. Load the skill

After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.

Claude Code
test -f '.skill-downloads/async-agent-to-agent-code-review-mu99joka/SKILL.md' && test -s '.skill-downloads/async-agent-to-agent-code-review-mu99joka/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/reviews-code' && cp -R '.skill-downloads/async-agent-to-agent-code-review-mu99joka' '.claude/skills/reviews-code'

OpenSkills

OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.

Official OpenSkills installation
openskills install './.skill-downloads/async-agent-to-agent-code-review-mu99joka'

openskills read 'async-agent-to-agent-code-review-mu99joka'

Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.

For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.

openskills sync

Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.

4. Try a first task

Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:

Read .skill-downloads/async-agent-to-agent-code-review-mu99joka/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.

Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.

Related skills