review-skills
Two skills: a pull request review where two models argue, and a helper that works through review comments round by round
- 166 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Posts reviews and thread replies from your own gh, glab or az account
- PR code goes to two model vendors through delegate-skills, and babysit-pr edits the code itself to address findings
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/review-skillsDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Posts reviews and thread replies from your own gh, glab or az account
- PR code goes to two model vendors through delegate-skills, and babysit-pr edits the code itself to address findings
This is third-party code. Review the repository files before installing.
What it does
The debate-review skill hands a pull request to a main reviewer and then to a second model. The second model tries to knock down the findings and may add its own, and the main reviewer makes the final call. One review with inline comments and a summary lands on the PR from your own gh, glab or az account. The skill cannot approve a PR or request changes. The babysit-pr skill works the review rounds. It collects threads from debate-review, Codex, Greptile and other bots, checks each finding against the code, fixes the real ones, replies in the thread with evidence, resolves it and starts the next round. It cannot merge a PR and leaves threads it did not answer open. Findings come in levels: P0 blocks on security, P1 blocks for any other reason, P2 does not block. The `--local` mode reviews the working tree before a PR exists.
Who it is for. Developers with subscriptions to two different models, for example Claude and Codex, who want a machine review of a pull request before people see it.
Good fit when
- You opened a PR on GitHub and want the bugs, graded P0 to P2, before your colleagues look
- There is no PR yet and the changes sit in the working tree: `--local` compares them with the base branch
- A PR has piled up comments from Codex and bots, and they need sorting and resolving round by round
- The repository is on GitLab, including self-hosted, and the review has to come back to the MR
- One model misses bugs, and a second one should challenge its conclusions
Not a fit when
- You need an automatic approval or a request for changes: the skill only comments
- You need babysit-pr on Azure DevOps: thread harvesting and replies are not implemented there yet
- You have a subscription to one model only: without a second opinion the debate loses its point
Example request
Review https://github.com/owner/repo/pull/123 with debate-review, but show me the result before posting anythingLimitations
- Needs Node 18+, a logged-in `gh`, `glab` or `az`, and the delegate-skills package with two lanes, `review-main` and `review-debate`, created by `$delegate-setup`.
- Replying and resolving threads is verified on GitHub; on GitLab it is implemented but not yet verified on a live instance.
- One review per head commit: a second run exits with code 3 unless `--force` is set.
- Each reviewer runs up to 30 minutes by default; `--timeout` changes the limit.
How to disable. Delete the debate-review and babysit-pr folders from the agent's skills directory. The run cache with prompts and model output sits in `~/.cache/debate-review` and can be erased separately. The `review-main` and `review-debate` lanes stay in delegate-skills.
FAQ
How do I run a review of a live PR without posting it?
Add `--dry-run` to the `review-pr.mjs` command with the PR URL or number, and the review prints to the terminal. For a working tree without a PR use `--local`, which never talks to GitHub or GitLab. The two flags do not combine.
What do the P0, P1 and P2 levels mean in comments?
P0 blocks the merge on security, P1 blocks for any other reason, P2 does not block. On GitHub they render as CAUTION, WARNING and NOTE alerts, so the colour reads before the text.
What is a contested finding in a review?
A finding the second reviewer refuted and the main reviewer kept. The comment shows both sides' reasoning. `--contested drop` removes such findings from the post and `--contested post` keeps them.
Which agents work with debate-review?
The skill runs through whatever agent you already use: the README names Claude Code, Codex, Cursor, OpenCode and Grok. delegate-skills starts the reviewers, and only implementers whose relay has `--read-only` qualify, so they cannot touch your file tree.
How much does one review cost?
There is no separate fee: the skill uses model subscriptions you already pay for. Each reviewer runs up to 30 minutes, `--timeout` sets the limit and `--min-confidence` drops weak findings.
Discussion
No questions or reviews yet.
Related
Skillskyy-logs code-review-skill
code-review-skill
A code review skill with four independent probes, evidence-backed findings and a merge gate derived from JSON
A code review skill across many languages and frameworks: architecture, performance, security, anti-patterns and common bugs
A CLI and three skills that work through review-bot comments on a PR: assess findings, fix code, reply and wait for checks
A skill that draws every pull request as an architecture and data-flow diagram right in the PR description, to speed up review
Three skills work through Greptile review comments on a pull request, fix them and re-run the review until none are left open
cross-review sends plans and code to a second model for review: Codex, Claude Code or Antigravity checks your agent's work.
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Repository stars | Main difference |
|---|---|---|---|
| review-skills (this card) | no | 166 | |
| Claude-Codex Review Skill | no | 5 | Claude Code and Codex trade rounds through files, and the review is not posted to the PR |
| agent-reviews | no | 314 | works through review-bot comments but does not run its own model debate review |
README in short
The README opens with a tagline about two models arguing and the install command, then covers both skills in a table with the environment requirements. After that come the comment format with levels, a GitHub, GitLab and Azure DevOps comparison, the `--local` mode and a manual run for CI with the flag list.
README badge
Original SKILL.md
--- name: debate-review description: Two-model debate review of a GitHub PR, GitLab MR, Azure DevOps PR, or local working tree, posted as inline comments or printed. Use for any PR/MR review request, or a local review before a PR exists. license: MIT compatibility: Requires Node 18+, Git 2.31+ for Azure DevOps, `gh` (GitHub), `glab` (GitLab) or `az` (Azure DevOps) authenticated, and delegate-skills installed for the main/debate lanes. metadata: version: 0.2.0 --- # debate-review Two models argue before anything is posted. A main reviewer finds issues. A debate reviewer tries to knock them down and may add its own. The main reviewer then makes the final call, and one review with inline comments lands on the PR or MR. It posts from the user's own `gh`, `glab` or `az` account as a non-approval review or comment. It never approves and never requests changes. You are the orchestrator. You run one command and relay the result. You do not review the diff yourself, and you do not touch the PR. ## Run it ```bash node "<skill-dir>/scripts/review-pr.mjs" --local [--base <ref>] node "<skill-dir>/scripts/review-pr.mjs" <pr-url | number> [--dry-run] ``` - If the user wants a review and there is no PR/MR URL, run `--local` from the repo (or `--repo-dir`). Do not invent a URL. Relay stdout. `--local` never talks to a forge and rejects non-UTF-8 Git paths rather than decoding them lossily. - `<pr-url>` is a GitHub `/pull/N`, GitLab `/-/merge_requests/N`, or Azure DevOps `/_git/<repo>/pullrequest/N` URL (`dev.azure.com` or the legacy `*.visualstudio.com`). A bare number resolves against the cwd's `origin`, including Azure DevOps https and `ssh.dev.azure.com:v3/` remotes. - `--dry-run` prints a live PR review instead of posting it. It does not combine with `--local`. - Azure DevOps needs `az` logged in (`az login`) with access to the project. No extension is required, the script talks to the REST API through `az rest`. A review there is N inline comment threads plus one closed summary thread, since Azure DevOps has no single review object; the alert blockquotes render as plain quotes, which still read. - The reviewers are two delegate-skills lanes, `review-main` and `review-debate`. If either is missing the script says so. Add them with `delegate-setup`. Pick two different implementers, since the debate is only worth something when the second model doesn't share the first one's blind spots (main `claude` or `grok`, debate `codex` at high effort is a good pair). For a one-off, pass `--main <implementer>` or `--debate <implementer>`. Only implementers whose relay has `--read-only` are accepted. These two lanes belong to the reviewer. Don't point them at a lane you use for other work, such as a plan-debate lane. - `--check` starts each reviewer on a one-line read-only brief and prints `ok` or `FAIL` with the reason per role, exit `1` on any failure. Run it once on every machine after setting up the lanes; it catches a reviewer that is not installed, not signed in, out of quota, or refused by its sandbox before a PR waits on it. - Exit code `3` means this head sha already has a debate-review. Re-run with `--force` to post again. - A run takes minutes, since it is two or three implementer sessions back to back. Run it in the background and report the printed URL when it finishes. Don't poll tightly. All flags: `--help`. Contracts: [references/schema.md](references/schema.md). What gets posted: [references/comment-format.md](references/comment-format.md). The reviewer briefs live in `assets/prompts/` and the script fills them in; you don't need to read them.