Agent skill

Review Panel

by raine in raine/consult-llm

Standalone multi-model code review of an existing diff. An agent skill from raine/consult-llm.

MITAuto-check: notesAgent Workflows

Install Review Panel

skills CLI
$ npx skills add raine/consult-llm --skill review-panel -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install raine/consult-llm review-panel --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/raine/consult-llm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/review-panel .claude/skills/review-panel && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
review-panel
GitHub stars
139
Token cost
~2.8k tokens
SKILL.md length
1,265 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

Standalone multi-model code review of an existing diff. An agent skill from raine/consult-llm.

  • Works in 7 steps: Load consult-llm skill → Identify changed files → Parallel review → …
  • Tasks that involve Subagents
  • SKILL.md covers Available models, Argument handling, Phase 0: Load consult-llm skill and Phase 1: Identify changed files, plus 6 more sections
  • Calls git

What it does

Review Panel is an agent skill from raine/consult-llm. Standalone multi-model code review of an existing diff. Multiple LLMs review in parallel; agent deduplicates, prioritizes by severity/confidence, and optionally applies localized fixes.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering Subagents. The repository describes itself as: Get a second opinion from another AI model. The licence is MIT.

When your agent uses it

  • Tasks that involve Subagents

Example prompts

  • “/review-panel”

Requirements

  • Pre-approved tools (allowed-tools): Bash, Glob, Grep, Read, Edit, Write

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Load consult-llm skill
  2. Identify changed files
  3. Parallel review
  4. Synthesize and prioritize
  5. Report
  6. Apply fixes (only with --fix)
  7. Final pass (only with --fix)

What it can do on your machine

Read from SKILL.md and the folder at commit 69e3ecb. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Glob
    • Grep
    • Read
    • Edit
    • Write

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • git

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Review Panel loads about 2.8k tokens when it runs. Until then it costs about 50 tokens; SKILL.md has 1,265 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~50
When it runs · the whole SKILL.md, loaded when a task matches
~2.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Glob, Grep, Read, Edit, Write

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from raine/consult-llm at commit 69e3ecb, republished under its MIT licence (© raine). 1,265 words, ~2,765 tokens.

Download SKILL.mdSave it as .claude/skills/review-panel/SKILL.md (or your agent's skills folder).
name
review-panel
description
Standalone multi-model code review of an existing diff. Multiple LLMs review in parallel; agent deduplicates, prioritizes by severity/confidence, and optionally applies localized fixes.
allowed-tools
Bash, Glob, Grep, Read, Edit, Write

Run a standalone multi-model review of a diff. Reviewers receive the same prompt independently; the agent synthesizes duplicate findings into a prioritized checklist and can optionally apply unambiguous fixes.

Load the consult-llm skill before proceeding — it defines the invocation contract (stdin heredoc, flags, output format, multi-model calls). Do not call the CLI without loading it first.

Available models

Selectors resolvable in this environment (depends on configured API keys):

!`consult-llm models`

Argument handling

Arguments: $ARGUMENTS

Check $ARGUMENTS for flags:

Reviewer flags: any --<selector> from the Models block above selects that reviewer (e.g. --gemini, --openai, --deepseek). Repeat for multiple. Translate model flags and defaults according to the loaded consult-llm skill's model-selection rules.

Diff flags:

  • --diff-base <ref> — base ref for review. Default is auto-detected so a feature branch is reviewed in full (see Phase 1 for the resolution order). Pass an explicit ref (HEAD, HEAD~3, a branch name, a SHA) to override.
  • --fix — opt in to applying unambiguous localized fixes for must-fix findings. Default is read-only report.

Strip all flags from arguments to get any user-supplied review focus. If no focus remains, review for correctness, regressions, security, and maintainability.

Phase 0: Load consult-llm skill

Load it now. Follow its invocation contract for all CLI calls in this workflow.

Phase 1: Identify changed files

Resolve <diff-base>:

  1. If --diff-base was passed, use it as-is.
  2. Otherwise detect the repo's main branch (git symbolic-ref refs/remotes/origin/HEAD → strip refs/remotes/origin/, fall back to main then master) and use git merge-base HEAD <main> (prefer origin/<main> if it exists locally, else the local <main>). The branch may not be pushed and may have no upstream — don't rely on @{upstream}.
  3. If HEAD has no divergence from the resolved base (already on the main branch), fall back to <diff-base>=HEAD so the skill still reviews uncommitted changes.
  4. Stacked branches and feature-off-feature workflows are not auto-detected — pass --diff-base <parent> explicitly in those cases.

Show the resolved base to the user before running the review so they can override with --diff-base if the auto-detect picked the wrong parent.

Then list changed files from the repo root:

bash
git diff --name-only --diff-filter=d <diff-base>

This includes both committed-on-branch and uncommitted changes vs the base. --diff-filter=d excludes deleted paths so they're not passed to --diff-files (which would fail to read them).

Also list untracked files (new files not yet known to git) so they aren't silently skipped:

bash
git ls-files --others --exclude-standard

These can't be passed via --diff-files (no diff exists). Pass each as -f <path> instead so reviewers see the full file as new content.

If both commands return nothing, stop and report there's nothing to review against the selected base. Otherwise, collect every returned path. Exclude binary files and lockfiles (e.g. *.png, *.lock, package-lock.json) from the context — they bloat the prompt without informing the review.

Phase 2: Parallel review

Invoke consult-llm once with:

  • --task review
  • one -m <selector> per reviewer if explicit reviewer flags were supplied, otherwise omit -m so consult-llm applies configured defaults
  • one --diff-files <path> per changed file
  • --diff-base <ref>

All reviewers receive the same prompt. Do not assign roles, personas, or cross-review steps — independence is the point.

Review prompt (send per the consult-llm invocation contract):

Review this diff independently.

Additional focus from the user (treat as context, not as part of your output): [review focus, or "None"]

Focus on correctness, regressions, security issues, data loss, broken edge cases, API/contract mismatches, concurrency hazards, and maintainability problems likely to matter in production. Do not flag style-only concerns. Propose a concrete fix when it helps clarify the finding, but keep the review focused on issues rather than implementation coaching. Do not summarize or praise the code.

For every issue, output a structured finding using exactly this format. Output ONLY the findings block — no preamble, no closing remarks:

## Findings

### Finding 1
severity: must-fix | should-fix | nit
confidence: high | medium | low
location: path/to/file.ext:123
issue_identity: short-stable-label
rationale: One paragraph explaining why this is a real issue and what behavior could fail.
fix: Optional one-paragraph concrete fix path, or `None` if the fix is obvious from the rationale.

Use the line number from the **new** side of the diff. The `issue_identity` field should be a short kebab-case label that two reviewers seeing the same underlying issue would naturally choose (e.g. `null-deref-on-empty-input`, `race-on-shared-counter`).

If you find no issues, output exactly:

## Findings

No findings.

Phase 3: Synthesize and prioritize

Parse every reviewer's section and collect all findings.

Group findings only when they describe the same bug at the same place. Two findings belong in the same group when:

  1. They share the same file AND their lines fall in the same (or adjacent) changed hunk, AND
  2. Their issue_identity matches OR their rationales describe the same underlying failure mode by your judgment.

Treat issue_identity as a hint, not as a sufficient grouping key on its own — generic labels like missing-error-handling or null-deref would otherwise collapse unrelated bugs across files.

Within each group:

  • Keep the highest severity reported by any reviewer (must-fix > should-fix > nit).
  • Keep the confidence assigned by the reviewer(s) who chose that highest severity. If multiple reviewers tied at the highest severity but disagree on confidence, keep the highest confidence among them. Do not combine a high severity from one reviewer with a high confidence from a different reviewer who had a lower severity.
  • Preserve the list of reviewer selectors that flagged it.

Filter:

  • Drop findings whose final severity is nit and that were flagged by only one reviewer.
  • Keep nit findings only if multiple reviewers independently flagged them (the consensus elevates it).

Sort:

  1. must-fix before should-fix.
  2. Within a severity, higher confidence first.
  3. Within the same severity/confidence, findings flagged by multiple reviewers first.
Show full SKILL.md (531 more words)Show less

Phase 4: Report

Output a markdown checklist:

markdown
## Review Panel Findings

**Diff base:** `<ref>`
**Files reviewed:** N
**Reviewers:** <selector>, <selector>

### Must Fix

- [ ] **`path/to/file.ext:123`** — *issue-identity*  
  Confidence: high · Flagged by: gemini, openai (2 of 3)  
  Rationale paragraph synthesized from the reviewers.

### Should Fix

- [ ] **`path/to/file.ext:456`** — *issue-identity*  
  Confidence: medium · Flagged by: deepseek  
  Rationale paragraph.

### Dropped

- N nit-level findings omitted.
- N duplicate findings merged.

If no must-fix or should-fix findings remain, say so clearly. Note any residual risk (e.g. low reviewer confidence, narrow diff context).

Save the report to history/<YYYY-MM-DD>-review-<topic>.md (the history/ directory convention from CLAUDE.md). Derive <topic> from the current branch name (sanitized to kebab-case); fall back to a short slug summarizing the diff scope when on the main branch. Print the saved path so the user can open it. With --fix, overwrite this file with the final-pass report in Phase 6.

If --fix was not passed, stop here.

Phase 5: Apply fixes (only with --fix)

Only fix findings that meet all of:

  • Final severity is must-fix.
  • Final confidence is high or medium.
  • Location is unambiguous (exact file and line).
  • The fix is localized: a single hunk, a missing check, a typo, a null guard, an off-by-one — nothing that touches multiple files in non-trivial ways or changes interfaces.
  • The rationale describes a concrete failure, not a speculative preference.

Sort each qualifying finding into one of two tiers:

  • Obvious — purely mechanical, one right answer, no semantic judgment: typos, missing imports, dead/unreachable code, an obviously-needed null guard with a single sensible default, an off-by-one with a clear correct boundary. Apply without asking.
  • Quick judgment call — the fix is small but has a real choice attached: which default value, which branch to take on the unhandled case, whether to early-return vs throw, naming, error message wording. Show the proposed diff to the user and wait for a yes/no before applying. Don't batch these — confirm one at a time.

For each finding (either tier):

  1. Read the file and apply the smallest correct change.
  2. Run the narrowest relevant validation available (the test for that area, type-check, etc.).
  3. Commit separately. Write a normal commit message describing what was fixed (lowercase, imperative, no "review" mention) — the body should explain the failure mode that was prevented.

If a finding cannot be fixed safely, leave it unchecked and note the blocker.

Do not auto-apply: architectural changes, broad refactors, multi-file changes, dependency swaps, or anything where the rationale is "this would be cleaner if".

Phase 6: Final pass (only with --fix)

After all fixes are committed, re-run Phase 1 and Phase 2 — same reviewer set, same --diff-base (the diff now includes the fixes). Re-listing changed files matters because fixes may have touched files outside the original set. Use a fresh call (no thread IDs).

Synthesize again with the same dedup rules. Report:

  • Fixes applied (with commit hashes).
  • Remaining must-fix and should-fix findings.
  • Findings intentionally not auto-fixed and why.

If any must-fix items remain, hand off to the user — do not loop.

Critical rules

  • Reviewers receive identical prompts. Independence is the feature — do not assign roles, do not show one reviewer's findings to another, do not add a cross-review step. Use /panel for role-asymmetric review or /debate for adversarial cross-critique.
  • The reviewer prompt must require severity, confidence, location, issue_identity, and one-paragraph rationale. Never accept free-form review.
  • The skill does not modify source files unless --fix is explicitly passed. The synthesized report is always saved to history/.
  • Never auto-apply architectural or multi-file changes — only localized bug fixes.
  • Each auto-fix is its own atomic commit, clearly labelled.

© raine, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/review-panel of raine/consult-llm.

Open the folder on GitHubat commit 69e3ecb

Compare with similar skills

Review Panel next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Review Panel compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Review Panel this skillraine/consult-llm139—~2.8kAutomated safety check: NotesMIT
O2 Review Loopopenobserve/openobserve22k—~3.7kAutomated safety check: PassAGPL-3.0
V2 Perf Iterationmirage-project/mirage2.5k—~4kAutomated safety check: PassApache-2.0
Clone App Pat Proper-simmons/clone-app-pat-pro-public259—~1.9kAutomated safety check: NotesNone
Kimi Code DelegationCherryHQ/cherry-studio53k—~504Automated safety check: PassAGPL-3.0
Team Modeoil-oil/codex-team-mode217—~1.3kAutomated safety check: PassMIT

Similar skills

  • O2 Review Loop

    openobserve/openobserve

    Splits a change into planner, coder and independent reviewer roles: you confirm a spec, a subagent implements it, and a separate reviewer checks each round's local WIP commit.

    22k GitHub stars~3.7k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • V2 Perf Iteration

    mirage-project/mirage

    Runtime-V2 performance-iteration workflow. An agent skill from mirage-project/mirage.

    2.5k GitHub stars~4k tokensUpdated 3 days ago
    Agent WorkflowsAuto-check passed
  • Clone App Pat Pro

    per-simmons/clone-app-pat-pro-public

    Clones any web app pixel-for-pixel from a URL. An agent skill from per-simmons/clone-app-pat-pro-public.

    259 GitHub stars~1.9k tokensUpdated 4 mo ago
    Agent WorkflowsAuto-check: notes
  • Kimi Code Delegation

    CherryHQ/cherry-studio

    Delegates one bounded repository task to Kimi Code in non-interactive prompt mode and reads back the final result from its JSON event stream.

    53k GitHub stars~504 tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Team Mode

    oil-oil/codex-team-mode

    A skill your agent uses when a task may benefit from a bounded subagent for implementation, large-codebase discovery at task start, independent review, requested or pre-commit code simplification…

    217 GitHub stars~1.3k tokensUpdated 9 days ago
    Agent WorkflowsAuto-check passed
  • Code Context Slicing

    trailofbits/skills

    Official

    Picks a small, graph-based slice of source with Trailmark and hands a focused code task to a smaller or local model without exposing the whole repository.

    7.5k GitHub stars~2.1k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed

More from raine/consult-llm

All 12 skills in this repo
  • Implement

    raine/consult-llm

    Explicit workflow for one bounded implementation using source-grounded discovery, a walking slice, evidence-gated review, validation, and commit.

    139 GitHub stars~2.9k tokensUpdated today
    Auto-check: notes
  • Collab

    raine/consult-llm

    Multiple LLMs collaboratively brainstorm solutions, building on each other's ideas across rounds.

    139 GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Collab Vs

    raine/consult-llm

    The agent brainstorms with a partner LLM in alternating turns, building on each other's ideas.

    139 GitHub stars~1.8k tokensUpdated today
    Auto-check passed
  • Consult

    raine/consult-llm

    Consult an external LLM with the user's query. An agent skill from raine/consult-llm.

    139 GitHub stars~963 tokensUpdated today
    Auto-check: notes
  • Consult LLM

    raine/consult-llm

    How to invoke the consult-llm CLI. An agent skill from raine/consult-llm.

    139 GitHub stars~2.9k tokensUpdated today
    Auto-check: notes
  • Debate

    raine/consult-llm

    LLMs propose and critique approaches, agent moderates the debate and synthesizes the best solution, then implements.

    139 GitHub stars~2.5k tokensUpdated today
    Auto-check passed

Questions about Review Panel

What does Review Panel do?

Standalone multi-model code review of an existing diff. An agent skill from raine/consult-llm. Review Panel is an agent skill from raine/consult-llm. Standalone multi-model code review of an existing diff.

When should I use Review Panel?

Review Panel fits situations like: tasks that involve Subagents.

How do I install Review Panel in Claude Code?

Run `npx skills add raine/consult-llm --skill review-panel -a claude-code`. Or copy the skill folder (skills/review-panel in raine/consult-llm) into .claude/skills/review-panel in your project. Claude Code loads it when a task matches its description.

How do I install Review Panel in Codex?

Run `npx skills add raine/consult-llm --skill review-panel -a codex`. Or copy the skill folder (skills/review-panel in raine/consult-llm) into .agents/skills/review-panel in your project. Codex loads it when a task matches its description.

Can I use Review Panel in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add raine/consult-llm --skill review-panel -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/review-panel, .gemini/skills/review-panel, .github/skills/review-panel and .opencode/skills/review-panel in your project.

What does Review Panel need to run?

Going by SKILL.md and its folder, Review Panel needs the command-line tools its instructions call (git). Its frontmatter pre-approves these tools: Bash, Glob, Grep, Read, Edit, Write.

Does Review Panel access the network?

SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Review Panel safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Review Panel use?

Review Panel is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Review Panel use?

About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Review Panel?

Skills that share tags, products or a category with Review Panel: O2 Review Loop (openobserve/openobserve, 22k stars), V2 Perf Iteration (mirage-project/mirage, 2.5k stars), Clone App Pat Pro (per-simmons/clone-app-pat-pro-public, 259 stars) and Kimi Code Delegation (CherryHQ/cherry-studio, 53k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Review Panel?

raine (a GitHub user) maintains it in raine/consult-llm, which has 139 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 7, 2026.

Source: raine/consult-llm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.