Agent skill

Crossreview

by coddy-project in coddy-project/coddy-agent

Run when the user invokes /crossreview (or /crossreview:setup to choose the reviewers) or asks for a cross-review, a quorum review or a second opinion from other agents or models: fan a code review…

MITAuto-check passedAgent Workflows

Install Crossreview

skills CLI
$ npx skills add coddy-project/coddy-agent --skill crossreview -a claude-code

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

GitHub CLI
$ gh skill install coddy-project/coddy-agent crossreview --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/coddy-project/coddy-agent.git skills-src && mkdir -p .claude/skills && cp -r skills-src/internal/skills/bundled/crossreview .claude/skills/crossreview && 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
crossreview
GitHub stars
167
Token cost
~3.3k tokens
SKILL.md length
1,835 words
Files
10 (incl. scripts, references)
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

Run when the user invokes /crossreview (or /crossreview:setup to choose the reviewers) or asks for a cross-review, a quorum review or a second opinion from other agents or models: fan a code review…

  • Works in 6 steps: Reviewers → Brief → Hand the run to the orchestrator → …
  • Invokes /crossreview (or /crossreview:setup to choose the reviewers)
  • SKILL.md covers 1. Reviewers, 2. Brief, 3. Hand the run to the… and 4. Run and collect every answer, plus 4 more sections
  • Runs Python, PowerShell and Shell scripts from its folder; calls python3, git and sh

What it does

Crossreview is an agent skill from coddy-project/coddy-agent. Run when the user invokes /crossreview (or /crossreview:setup to choose the reviewers) or asks for a cross-review, a quorum review or a second opinion from other agents or models: fan a code review (uncommitted work, a branch, a commit range, files, a plan or a document) out to several console code agents (Claude Code, Codex, Coddy, Cursor Agent, Devin, OpenCode, Gemini CLI, Qwen Code, Kimi, Koda) that review it in parallel and blind to each other, then, as the orchestrator, verify every finding against the code…

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 11 other files, including scripts and reference files (for example `README.md`, `references/agents.md` and `references/brief.md`).

It sits in Agent Workflows. It works with Linux, macOS, Kimi and Qwen. The repository describes itself as: General-purpose agent in one static Go binary: console TUI, ACP server for editors, OpenAI-compatible API with embedded web UI, Telegram gateway, cron scheduler, swarm relay… The licence is MIT.

When your agent uses it

  • Invokes /crossreview (or /crossreview:setup to choose the reviewers)
  • Asks for a cross-review
  • A quorum review
  • A second opinion from other agents

Example prompts

  • “s folder of the repository) or for all projects (in the agent”
  • “/crossreview”

Requirements

  • Python 3
  • A Bash shell
  • PowerShell

Workflow steps

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

  1. Reviewers
  2. Brief
  3. Hand the run to the orchestrator
  4. Run and collect every answer
  5. Decide
  6. Report

What it can do on your machine

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

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 4 files in scripts/ (Python, PowerShell and Shell), which the agent can run.

    Shell commands in SKILL.md call:

    • python3
    • git
    • sh

    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

Crossreview loads about 3.3k tokens when it runs, and up to ~8k if it reads all its reference files. Until then it costs about 218 tokens; SKILL.md has 1,835 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~218
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~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 passed

The automated check found no risky patterns in SKILL.md.

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); the scripts in this folder are not scanned.

SKILL.md

The full file from coddy-project/coddy-agent at commit 4a416a0, republished under its MIT licence (© coddy-project). 1,835 words, ~3,294 tokens.

Download SKILL.mdSave it as .claude/skills/crossreview/SKILL.md (or your agent's skills folder). This skill also uses 9 other files; get the full folder from GitHub.
name
crossreview
description
Run when the user invokes /crossreview (or /crossreview:setup to choose the reviewers) or asks for a cross-review, a quorum review or a second opinion from other agents or models: fan a code review (uncommitted work, a branch, a commit range, files, a plan or a document) out to several console code agents (Claude Code, Codex, Coddy, Cursor Agent, Devin, OpenCode, Gemini CLI, Qwen Code, Kimi, Koda) that review it in parallel and blind to each other, then, as the orchestrator, verify every finding against the code and decide alone what matters and what to fix. Works from any agent with a shell on Linux, macOS and Windows; the first run detects the installed CLIs, asks which agents and which of their models to use, and keeps the reviewer roster either for the project (in the agent's folder of the repository) or for all projects (in the agent's home).
metadata.version
2.0.0
metadata.author
Pavel Rykov <paul@drteam.rocks>
metadata.homepage
https://github.com/EvilFreelancer/crossreview

Crossreview: independent reviewers, one orchestrator

One brief is written, every reviewer gets that brief and nothing else, they all answer, and then the orchestrator alone decides: which findings are real, which matter, what to fix now and what not to fix. The reviewers advise; the last word is the orchestrator's: the subagent you hand the run to in step 3, or you. Their value is in the disagreement of different models, so pick reviewers from different vendors.

Three rules hold for the whole run:

  1. Reviewers are blind to each other. A reviewer never sees another reviewer's answer: not in its brief, not in a later round, not as a summary. Internal reviewers (your own subagents) included.
  2. Every reviewer gets to answer. Wait until each one has answered or ended (failed, timed out). Retry the ones that failed for a passing reason before you write the report. Stop one early only when the user says so.
  3. You decide, not the majority. One reviewer with evidence outweighs four without it. Your verdict may differ from every reviewer's.

<skill> below is the directory holding this SKILL.md; agents usually say where it is when they load a skill (Claude Code's "Base directory", Coddy's "Skill directory"). If yours did not, take the first of these that holds scripts/crossreview.py, and do not search the whole disk: ${CODDY_HOME:-~/.coddy}/skills/crossreview, then crossreview under ~/.claude/skills, ~/.codex/skills, ~/.cursor/skills, ~/.agents/skills, ~/.config/opencode/skills, ~/.config/devin/skills, and under the workspace's .claude/skills, .agents/skills, .cursor/skills, .opencode/skills, .coddy/skills.

The helper is python3 <skill>/scripts/crossreview.py (py -3 or python on Windows), standard library only, the same on Linux, macOS and Windows; every subcommand has --help. Without Python, see the last section.

Who you are. Every helper command that reads or writes a roster takes --host <you>: claude (Claude Code), codex, coddy, cursor, opencode, devin, gemini, qwen, kimi, or your own name. The rosters are yours, kept where you keep your settings: the global one in your home folder (~/.claude/crossreview.json, ${CODDY_HOME:-~/.coddy}/crossreview.json, ${CODEX_HOME:-~/.codex}/..., ~/.cursor/...), the local one in your folder of the project (.claude/crossreview.json, .coddy/..., .codex/..., .cursor/...). An agent not on the list uses ~/.agents and .agents. Claude Code is recognised without the flag.

Requirements. A shell and permission to write files: in a read-only mode (plan, ask) say so and stop. Reviewers call their model APIs and write their own session files, so a sandbox that blocks the network or writes outside the workspace (Codex's default) has to let the helper's commands out, or every reviewer fails.

Never recurse. If CROSSREVIEW_DEPTH is set in your environment, you are a reviewer: answer the brief directly and do not start another crossreview.

1. Reviewers

Reviewers named in the request ("crossreview with cursor auto and coddy on codex/gpt-5.6-sol") are a one-off list: pass each as --reviewer agent:model to the run and leave the roster alone.

Otherwise run crossreview.py roster --host <you>: it takes your local roster of this project when there is one, else your global one, and you act on its exit code:

  • 0: use it. Relay its warnings (a brief passed as an argument breaks past 128 KB) and offer crossreview.py init --host <you> --scope <the same> --import <path> --refresh --force to move the entries to the current templates.
  • 4: the local roster is not approved: it may have come with the clone, or it changed since, and it would run the commands it prints. Show them to the user and ask; only after a clear yes run the crossreview.py trust ... line it printed. On a no, use --scope global from then on.
  • 2: no roster. Set one up.

Setup, also whenever the user invokes /crossreview:setup, even if a roster exists:

  1. crossreview.py detect prints one line per installed reviewer CLI. Offer only those.
  2. Ask which agents to use, multiple choice: with your question tool if you have one, otherwise in plain text, then end the turn and wait. Never choose for the user.
  3. For each chosen agent run crossreview.py models <agent> and offer the ids it prints (multiple choice); when it prints none, ask for the id as free text. Each (agent, model) pair is one reviewer.
  4. Ask where to keep the roster: local, for this project only, in your folder of it (commit the file to give the team the same reviewers; each teammate approves it once), or global, for all of your projects, in your home folder.
  5. crossreview.py init --host <you> --scope local|global <agent:model>... writes it (--force over an existing one, --add to extend it, --import <file> to start from the reviewers another agent already has). --min-reviewers N raises the quorum, --timeout S the time each reviewer gets. A local roster written this way counts as approved.
  6. crossreview.py probe --host <you> sends every reviewer a one-word brief. Report each failure with the reason it gives (not signed in, usage limit, unknown model) and offer to drop or fix the entry.

An internal reviewer is a subagent of a host agent on another model, written internal/<host>:<model> (internal/claude:sonnet, internal/coddy:devin/swe-2). Only the host it names runs it, read-only; other hosts skip it.

2. Brief

Take the scope from the request: the uncommitted work by default, or a branch against its base, a commit range, the staged changes, whole files, a plan or a document.

crossreview.py brief --out <tmp>/brief.md --intent "<what the change is meant to do>" \
    [--base main | --range A..B | --staged | --files F... | --doc PLAN.md] [--exclude PATHSPEC...]
  • Write --intent from the conversation: a reviewer judges a change by what it was meant to do.
  • The brief carries the whole diff, and its first line forbids tools: reviewers answer from the brief alone, which is fast and keeps them away from your files. When correctness depends on code outside the diff, write the brief with --tools read and give run a --cwd: a detached worktree (git worktree add --detach), never the live checkout.
  • Leave out lockfiles, generated code and snapshots with --exclude. Past 150 KB split the review by layer (backend, frontend, tests): small local models stall on long briefs.
  • --notes-file adds your own notes for every reviewer alike: facts about the code, decisions you already took in an earlier round. Write them yourself; never paste or paraphrase a reviewer's answer and never say who raised what.
Show full SKILL.md (827 more words)Show less

3. Hand the run to the orchestrator

Steps 1 and 2 were yours: the setup questions and the intent of the brief need the conversation. Steps 4 to 6 are the orchestrator's, and whenever your host can start a subagent they run in one, so the reviews, the checking of the code and the decisions stay out of your context. Do not run crossreview.py run yourself in that case:

  • Coddy: its built-in subagent crossreview is the orchestrator. It is hidden, so it is not among the agents you see listed, but spawn_agent accepts it: call it with agent: "crossreview" in the foreground and a prompt naming the brief file, the roster file and <skill>.
  • Claude Code: the Task tool (called Agent in some versions) with the general-purpose agent. OpenCode: the task tool. Any other host whose subagents have a shell: the same. Start it in the foreground with a prompt that says it is the crossreview orchestrator, that it reads <skill>/SKILL.md and carries out steps 4 to 6, and that names the brief file, --host <you>, and the roster file or the one-off --reviewer specs.

The roster file is the path crossreview.py roster --host <you> printed; for one-off reviewers in Coddy, write one with crossreview.py init --host coddy --path <tmp>/roster.json agent:model .... The subagent's report is the final word: relay it to the user as it is, and you are done. Carry out steps 4 to 6 yourself only when your host has no subagents, when the roster holds internal reviewers of yours that your subagents could not start, or when you are that subagent.

4. Run and collect every answer

crossreview.py run --host <you> --brief <tmp>/brief.md [--reviewer agent:model ...] [--scope global]
crossreview.py wait <run> --max 240

run prints every exact command, then starts them in the background. Repeat wait while it exits 3. Keep --max under your shell tool's time limit; the reviewers run detached, so a cut-off wait loses nothing. Each reviewer has a time limit (45 minutes unless the roster says otherwise).

When the run has finished, look at every reviewer that did not answer:

  • failed for a passing reason (network, rate limit, a stream reset): crossreview.py retry <run> <name>, then wait again;
  • timed out: retry with a longer --timeout, or recover the answer from its session with the resume command of that CLI in references/agents.md;
  • not signed in, out of quota, unknown model: tell the user, it will not answer this time.

run marks the internal reviewers that belong to you as host: start one read-only subagent per entry on its model while the CLIs run, with the brief file as its whole prompt, and write each answer to the path the status names.

5. Decide

crossreview.py collect <run> prints every answer, and the error of every reviewer that failed.

  1. Split into findings. One finding per problem, with every reviewer that raised it.
  2. Verify each one yourself. Read the code at path:line, follow the callers, reproduce it with a test or a command when you can. Reviewers working from a diff take a removed line for current code and miss guards elsewhere.
  3. Decide each one. Exactly one of:
    • fix: a real defect worth fixing now;
    • not worth fixing: real, but too minor, out of scope or costlier than it is worth; say why;
    • rejected: not a defect; give the line or the run that disproves it;
    • open: you could not settle it; say what would.
  4. Set the severity yourself after verification, not by the loudest reviewer or the count.

6. Report

  1. ## Verdict: approve, approve with changes or needs rework, and one sentence why. Yours.
  2. ## Reviewers: who answered (agent, model, time), who did not and why, retries included.
  3. ## Fix: by severity, each with path:line, the problem, the fix, who raised it, how you verified it.
  4. ## Not worth fixing, ## Rejected, ## Open: briefly, each with its reason or evidence.
  5. ## Quorum: answered N of M. Under min_reviewers write insufficient quorum and call the verdict advisory.

Apply the fixes only if the user asked for that. A second round reviews the fixed change with a fresh brief, and its reviewers again see nothing of the first round's answers.

Reference

  • references/agents.md: every reviewer CLI, its template, how it is kept read-only, known failures, and how to recover an answer from a reviewer that timed out.
  • references/roster.md: the roster format, where each agent keeps it, the approvals of a project's roster.
  • references/brief.md: the brief format, for writing one by hand.

No Python

sh <skill>/scripts/detect-agents.sh (powershell -ExecutionPolicy Bypass -File <skill>\scripts\detect-agents.ps1 on Windows) prints the same detection lines. Write the roster by hand (references/roster.md) and the brief by hand (references/brief.md). For each reviewer substitute the quoted paths of the brief and of its output file for {brief} and {out}, put CROSSREVIEW_DEPTH=1 in front of the command ($env:CROSSREVIEW_DEPTH = '1'; in PowerShell) so the reviewer knows not to start a crossreview of its own, and start it with your own background shell tool in an empty directory, each under a time limit; wait for all of them, then continue at step 5.

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

Files

SKILL.md and 9 other files (scripts, references) in internal/skills/bundled/crossreview of coddy-project/coddy-agent.

  • SKILL.md
  • LICENSE
  • README.md
  • references/agents.md
  • references/brief.md
  • references/roster.md
  • scripts/agents.tsv
  • scripts/crossreview.py
  • scripts/detect-agents.ps1
  • scripts/detect-agents.sh

Open the folder on GitHubat commit 4a416a0

Compare with similar skills

Crossreview 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.

Crossreview compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Crossreview this skillcoddy-project/coddy-agent167—~3.3kAutomated safety check: PassMIT
Local Asrysyecust/lecture-to-notes273—~1.6kAutomated safety check: PassCustom licence
Apple Container Test RunnerRustPython/RustPython22k—~467Automated safety check: PassMIT
Remote Hostslibnativeapi/nativeapi162—~1.3kAutomated safety check: PassMIT
Flutter UI Probelibnativeapi/nativeapi162—~988Automated safety check: PassMIT
Yolo Detection 2026 Coral Tpu macOSSharpAI/DeepCamera3.1k—~1.2kAutomated safety check: PassMIT

Similar skills

  • Local Asr

    ysyecust/lecture-to-notes

    把本地长视频/音频转写成文字稿 + 可选字幕,纯本地(不上传云端),用 sherpa-onnx X-ASR Zipformer transducer 模型(int8 量化、中英双语、自动标点)。已在 macOS Apple Silicon(int8 + AMX,~100× 实时)、Linux ARM64(CPU,~32× 实时)与 Windows(PowerShell…

    273 GitHub stars~1.6k tokensUpdated 6 days ago
    AI & LLM EngineeringAuto-check passed
  • Apple Container Test Runner

    RustPython/RustPython

    Runs RustPython tests inside a Linux container built with Apple's container CLI, so macOS users can compare Linux results with their local ones.

    22k GitHub stars~467 tokensUpdated yesterday
    Testing & QAAuto-check passed
  • Remote Hosts

    libnativeapi/nativeapi

    Build, run, and GUI-test on another machine over SSH — the user's Windows laptop today, Linux or other macOS machines tomorrow — with one symmetric CLI for every OS: push scripts, run them either in…

    162 GitHub stars~1.3k tokensUpdated yesterday
    MobileAuto-check passed
  • Flutter UI Probe

    libnativeapi/nativeapi

    Find where widgets are on screen in a running debug Flutter desktop app (macOS, Windows, Linux) by reading its render tree through the VM service — no hard-coded coordinates, no screenshots, works…

    162 GitHub stars~988 tokensUpdated yesterday
    MobileAuto-check passed
  • Google Coral Edge TPU — real-time object detection natively (macOS / Linux)

    3.1k GitHub stars~1.2k tokensUpdated 23 days ago
    AI & LLM EngineeringAuto-check passed
  • Editaplot

    liushunqi8-hash/editaplot2026

    Analyze local scientific CSV, TXT, XLS, or XLSX data; recommend publication-informed charts and Chinese scientific palettes; freeze a reproducible plan; and automate editable figures through a…

    128 GitHub stars~5.8k tokensUpdated 19 days ago
    Documents & OfficeAuto-check passed

More from coddy-project/coddy-agent

  • Rpa Init

    coddy-project/coddy-agent

    Run when the user invokes /rpa-init or asks to onboard or warm up context on a repository.

    167 GitHub stars~728 tokensUpdated yesterday
    Auto-check passed
  • Rpa Gen Rules

    coddy-project/coddy-agent

    A skill your agent uses when the user invokes /rpa-gen-rules or asks to create, refresh, audit, or synchronize project instructions such as root AGENTS.md, Cursor .cursor/rules, or Claude Code…

    167 GitHub stars~1.2k tokensUpdated yesterday
    Auto-check passed
  • Configure Coddy

    coddy-project/coddy-agent

    Change Coddy's own configuration when the user asks for it: edit settings, providers, models, logging, permissions, or find, install, update, and remove MCP servers and skills.

    167 GitHub stars~7.3k tokensUpdated yesterday
    Auto-check: notes
  • Rpa Bugfix

    coddy-project/coddy-agent

    Run when the user invokes /rpa-bugfix together with a clear bug description (expected vs actual, reproduction).

    167 GitHub stars~324 tokensUpdated yesterday
    Auto-check passed
  • Rpa Feat

    coddy-project/coddy-agent

    Run when the user invokes /rpa-feat together with a clear feature description (for example issue text).

    167 GitHub stars~407 tokensUpdated yesterday
    Auto-check passed

Questions about Crossreview

What does Crossreview do?

Run when the user invokes /crossreview (or /crossreview:setup to choose the reviewers) or asks for a cross-review, a quorum review or a second opinion from other agents or models: fan a code review…. Crossreview is an agent skill from coddy-project/coddy-agent.

When should I use Crossreview?

Crossreview fits situations like: invokes /crossreview (or /crossreview:setup to choose the reviewers); asks for a cross-review; A quorum review; A second opinion from other agents.

How do I install Crossreview in Claude Code?

Run `npx skills add coddy-project/coddy-agent --skill crossreview -a claude-code`. Or copy the skill folder (internal/skills/bundled/crossreview in coddy-project/coddy-agent) into .claude/skills/crossreview in your project. Claude Code loads it when a task matches its description.

How do I install Crossreview in Codex?

Run `npx skills add coddy-project/coddy-agent --skill crossreview -a codex`. Or copy the skill folder (internal/skills/bundled/crossreview in coddy-project/coddy-agent) into .agents/skills/crossreview in your project. Codex loads it when a task matches its description.

Can I use Crossreview 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 coddy-project/coddy-agent --skill crossreview -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/crossreview, .gemini/skills/crossreview, .github/skills/crossreview and .opencode/skills/crossreview in your project.

What does Crossreview need to run?

Going by SKILL.md and its folder, Crossreview needs Python, PowerShell and a shell for the scripts in its folder and the command-line tools its instructions call (python3, git and sh). Our summary lists: Python 3; A Bash shell; PowerShell.

Does Crossreview 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 Crossreview safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Crossreview use?

Crossreview is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Crossreview use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.7k tokens, read only when the agent opens those files.

What are the alternatives to Crossreview?

Skills that share tags, products or a category with Crossreview: Local Asr (ysyecust/lecture-to-notes, 273 stars), Apple Container Test Runner (RustPython/RustPython, 22k stars), Remote Hosts (libnativeapi/nativeapi, 162 stars) and Flutter UI Probe (libnativeapi/nativeapi, 162 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Crossreview?

coddy-project (a GitHub organization) maintains it in coddy-project/coddy-agent, which has 167 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 9, 2026.

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