Dispatches code or PRs to external companion AIs for fresh-eyes reviews and architectural feedback.

Install

mkdir -p .claude/skills/review-matteocervelli && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/9530" && unzip -o skill.zip -d .claude/skills/review-matteocervelli && rm skill.zip

Installs to .claude/skills/review-matteocervelli

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Dispatch reviews to external companion AIs (Codex, Gemini, Claude) for an independent second opinion on code changes, PR readiness, doc completeness, architecture, or implementation status. Use when you want a fresh-eyes review beyond Claude-native. Trigger on "get a second opinion", "companion review", "review my changes", "review the PR". For Claude-only quality checks use /code-review.
391 chars✓ has a “when” triggerlonger than Claude Code's old 250-char listing cap (fine on current versions)
Advanced

Key capabilities

  • Dispatch reviews to external AIs
  • Check PR merge readiness
  • Perform adversarial design reviews
  • Audit error handling and type design

How it works

The tool dispatches structured prompts to external companions like Codex or Gemini via a runner script to provide an independent review.

Inputs & outputs

You give it
review subcommand and context
You get back
independent second opinion from external AI

When to use review

  • PR readiness verdict
  • Architectural second opinion
  • Documentation completeness check
  • Adversarial design review

About this skill

Review — Companion-Dispatched Reviews & Analysis

Unified skill for all companion AI reviews. Dispatches structured prompts to external AIs (Codex, Gemini, Claude) via runner.sh for independent second opinions.

For Claude-native code quality checks (no external AI), use /code-review.

Usage

/review                              # Auto-detect: uncommitted changes → changes review
/review changes                      # Full review: code + silent-failures + types + comments
/review changes --quick              # Code review only (skip silent-failures/types/comments)
/review pr [--pr N]                  # PR merge readiness (MERGE/BLOCK verdict)
/review doc <file>                   # PRP/PRD/RFC/Design completeness review
/review solve "problem"              # Architecture/design second opinion
/review status <spec>                # Implementation progress vs spec
/review frontend <url>               # Delegates to /frontend review
/review silent-failures [file|diff]  # Error handling audit
/review types [file]                 # Type design analysis
/review comments [file]              # Comment accuracy check
/review gate                         # Lightweight pre-commit gate (critical bugs + security only)
/review adversarial                  # Adversarial review: challenge design choices (Codex gpt-5.5 xhigh)

All subcommands support: [companion] (codex/gemini/claude), --model MODEL, --all, --exclude-self

Workflow

Step 1: Parse Arguments

Parse $ARGUMENTS for subcommand and flags:

  • First positional arg → subcommand (changes, pr, doc, solve, status, frontend, silent-failures, types, comments, gate, adversarial)
  • If no subcommand: check for uncommitted changes → default to changes, else show usage
  • Companion name: codex, gemini, or claude (optional, resolved from registry defaults)
  • --model MODEL → override default model
  • --base BRANCH → diff against branch (for changes/pr)
  • --pr NUMBER → GitHub PR mode (for pr subcommand)
  • --context FILE → attach context files (for solve)
  • --type PRP|PRD|RFC|DESIGN → doc type override (for doc)
  • --issue NUMBER → GitHub issue (for status)
  • --timeout SECS → override default timeout
  • --all → dispatch to all installed companions in parallel
  • --exclude-self → exclude claude from --all runs
  • --quick → code review only (for changes: skip silent-failures/types/comments checks)

Step 2: Resolve Companion

: "${HOME:=$(eval echo ~)}"
DEFAULT_COMPANION=$(bash "$HOME/.claude/shared/companions/lib/resolve-default.sh" "$CAPABILITY")
COMPANION="${COMPANION:-$DEFAULT_COMPANION}"

Where $CAPABILITY maps from subcommand:

  • changes → review
  • pr → pr-review
  • doc → doc-review
  • solve → solve
  • status → implementation-status
  • gate → review
  • silent-failures, types, comments → review

Step 3: Check Availability

: "${HOME:=$(eval echo ~)}"
cat "$HOME/.claude/shared/companions/registry.json" | jq -r ".companions.$COMPANION.installed"

If not installed, report error with install instructions from registry.

Step 4: Dispatch by Subcommand

Load the prompt template from templates/ and dispatch:

SubcommandTemplateInputCapability
changestemplates/changes.mdgit diff (uncommitted or branch)review
prtemplates/pr.mdgh pr diff or git diff base...HEADpr-review
doctemplates/doc.mdFile content + type-specific criteriadoc-review
solvetemplates/solve.mdProblem description + context filessolve
statustemplates/status.mdReference doc/issue + codebase accessimplementation-status
gatetemplates/gate.mdgit diff HEAD (lightweight, critical only)review
adversarialtemplates/adversarial.mdgit diff HEAD (uncommitted)review
silent-failurestemplates/silent-failures.mdFile content or diffreview
typestemplates/types.mdFile contentreview
commentstemplates/comments.mdFile contentreview

Diff collection for changes, adversarial, and gate: use the shared adaptive collector rather than raw git diff:

: "${HOME:=$(eval echo ~)}"
COLLECT_ARGS="--uncommitted"
[[ -n "$BASE_BRANCH" ]] && COLLECT_ARGS="--base $BASE_BRANCH"
DIFF=$(bash "$HOME/.claude/shared/companions/lib/collect_diff.sh" $COLLECT_ARGS)

This applies three-tier sizing automatically (full / per-file-truncated / stat+top10).

Each template contains the full prompt structure. Read the template for the prompt format, then build the prompt in bash using variable expansion. NEVER use sed for interpolation — diff content breaks sed delimiters. Instead:

# Build prompt by assembling sections directly (NOT by sed-replacing template vars)
PROMPT="You are a senior code reviewer...

Scope: $SCOPE
$TRUNCATION_WARNING

[rest of prompt from template]

--- DIFF ---
$DIFF"

# Write to temp file for large prompts (>50K)
echo "$PROMPT" > /tmp/review_prompt.txt
cat /tmp/review_prompt.txt | bash "$HOME/.claude/shared/companions/runner.sh" ...
rm /tmp/review_prompt.txt

The template shows the prompt structure and variables. Copy the prompt text from the template's ```prompt block, substitute variables inline via bash "$VAR" expansion, and pipe to runner.sh.

Step 5: Dispatch via Runner

Single companion:

: "${HOME:=$(eval echo ~)}"
RUNNER_ARGS="$COMPANION --capability $CAPABILITY --timeout $TIMEOUT"
[[ -n "$MODEL" ]] && RUNNER_ARGS+=" --model $MODEL"
echo "$PROMPT" | bash "$HOME/.claude/shared/companions/runner.sh" $RUNNER_ARGS

IMPORTANT: Do NOT pass --model default or --model "". Omit --model entirely when no user override is specified — runner.sh resolves from registry automatically.

Adversarial subcommand: always add --structured --model gpt-5.5 --reasoning xhigh to RUNNER_ARGS. Load the template from ~/.claude/shared/companions/templates/adversarial.md, substitute $REVIEWER_CONTEXT with "second opinion for Claude", and substitute $DIFF / $SCOPE / $TRUNCATION_WARNING as usual.

Gate subcommand: use the fast codex review - path (no --structured). Parse PASS/BLOCK from the text output with grep. Timeout: 120s. Do NOT add --structuredcodex exec review --output-schema has more latency than the native review mode and defeats the purpose of a fast gate.

Multi-companion (--all):

MULTI_ARGS="--capability $CAPABILITY --timeout $TIMEOUT"
[[ -n "$MODEL" ]] && MULTI_ARGS+=" --model $MODEL"
$EXCLUDE_SELF && MULTI_ARGS+=" --exclude-self"

: "${HOME:=$(eval echo ~)}"
MULTI_OUTPUT=$(echo "$PROMPT" | bash "$HOME/.claude/shared/companions/multi-runner.sh" $MULTI_ARGS)

Step 6: Present Output

Display companion output directly in the conversation. Never write to files.

Single companion:

══════════════════════════════════════
REVIEW: [Subcommand] — [Companion] ([model])
Target: [scope description]
══════════════════════════════════════

[companion output]

══════════════════════════════════════

Multi-companion:

══════════════════════════════════════
MULTI-COMPANION REVIEW: [Subcommand]
Target: [scope description]
══════════════════════════════════════

[multi-runner output — each companion labeled]

══════════════════════════════════════

Step 7: Analysis

After presenting companion output, add:

Extended Analysis — For each finding:

  • Agree/disagree with companion, with reasoning
  • Additional codebase context
  • Severity assessment

Action Plan — Prioritized checklist ordered by severity. Skip false positives.

For --all mode, perform consensus analysis instead:

  • UNANIMOUS: All companions agree → high confidence
  • MAJORITY: >50% agree → strong signal
  • SOLO: Only one flagged → validate manually
  • CONFLICTING: Companions disagree → needs human judgment

Special: /review frontend

Delegates to /frontend review. Display message:

Delegating to /frontend review — visual design review requires Gemini multimodal.
Run: /frontend review [url] [--full-page] [--color-scheme MODE]

Default: /review changes (full review)

By default, /review changes runs the standard code review prompt PLUS appends checks from:

  • templates/silent-failures.md (error handling audit)
  • templates/types.md (type design analysis)
  • templates/comments.md (comment accuracy)

Special: /review changes --quick

Skips silent-failures, types, and comments checks. Runs only the standard code review prompt from templates/changes.md. Use when you want a fast review and don't need the deeper audits.

Diff Handling (shared by changes, pr, gate)

# Determine diff
if [[ -n "$BASE_BRANCH" ]]; then
  DIFF=$(git diff "$BASE_BRANCH"...HEAD)
  SCOPE="branch diff: $(git branch --show-current) vs $BASE_BRANCH"
elif [[ -n "$PR_NUMBER" ]]; then
  DIFF=$(gh pr diff "$PR_NUMBER")
  SCOPE="PR #$PR_NUMBER"
else
  DIFF=$(git diff HEAD)
  SCOPE="uncommitted changes"
fi

# Empty check
if [[ -z "$DIFF" ]]; then
  echo "No changes to review."
  exit 0
fi

# Size guard — truncate at 100K chars
DIFF_LEN=${#DIFF}
if [[ $DIFF_LEN -gt 100000 ]]; then
  DIFF="${DIFF:0:100000}"
  TRUNCATION_WARNING="WARNING: Diff truncated from $DIFF_LEN to 100,000 characters."
fi

Default Timeouts

| Subcommand |


Content truncated.

When not to use it

  • When a Claude-native code review is sufficient
  • When the required companion is not installed

Prerequisites

runner.sh

Limitations

  • Hard failures require stopping and reporting the error
  • No fallback to Claude-native review allowed

How it compares

It provides an independent second opinion from external AIs, explicitly avoiding Claude-native analysis to ensure unbiased feedback.

Compared to similar skills

review side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
review (this skill)02moReviewAdvanced
architect-review1094moNo flagsAdvanced
solid-principles579moNo flagsIntermediate
codex322moReviewAdvanced

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

architect-review

sickn33

Master software architect specializing in modern architecture patterns, clean architecture, microservices, event-driven systems, and DDD. Reviews system designs and code changes for architectural integrity, scalability, and maintainability. Use PROACTIVELY for architectural decisions.

109320

solid-principles

SmidigStorm

Enforce SOLID principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion) in object-oriented design. Use when writing or reviewing classes and modules.

57236

codex

Lucklyric

Invoke Codex CLI for complex coding tasks requiring high reasoning capabilities. This skill should be invoked when users explicitly mention "Codex", request complex implementation challenges, advanced reasoning, or need high-reasoning model assistance. Automatically triggers on codex-related requests and supports session continuation for iterative development.

32238

error-handling-patterns

wshobson

Master error handling patterns across languages including exceptions, Result types, error propagation, and graceful degradation to build resilient applications. Use when implementing error handling, designing APIs, or improving application reliability.

35170

deepwiki-rs

sopaco

AI-powered Rust documentation generation engine for comprehensive codebase analysis, C4 architecture diagrams, and automated technical documentation. Use when Claude needs to analyze source code, understand software architecture, generate technical specs, or create professional documentation from any programming language.

25170

senior-fullstack

davila7

Comprehensive fullstack development skill for building complete web applications with React, Next.js, Node.js, GraphQL, and PostgreSQL. Includes project scaffolding, code quality analysis, architecture patterns, and complete tech stack guidance. Use when building new projects, analyzing code quality, implementing design patterns, or setting up development workflows.

35110

Search skills

Search the agent skills registry