# Cross-Vendor Code Review

Has two model families review a diff and refute each other for high-confidence findings.

- Repository: https://github.com/basicmachines-co/basic-memory (4440 stars)
- Category: Git and review
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add basicmachines-co/basic-memory --skill adversarial-review -g -a claude-code -y`
Codex: `npx skills add basicmachines-co/basic-memory --skill adversarial-review -g -a codex -y`
Cursor: `npx skills add basicmachines-co/basic-memory --skill adversarial-review -g -a cursor -y`
Gemini CLI: `npx skills add basicmachines-co/basic-memory --skill adversarial-review -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add basicmachines-co/basic-memory`

## Description

Cross-vendor adversarial code review of the current branch. Two different model families (Claude + Codex/GPT) review the diff independently, then try to refute each other's findings; survivors are reported by confidence. Runs from either Claude Code or Codex. Use when the user asks for an adversarial review, a cross-model / second-opinion review, or wants high-confidence findings before merging. Report-only, never auto-applies fixes.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Adversarial code review

Two reviewers from **different model families**, **Claude** and **Codex/GPT**, review the
same diff independently, then each tries to **refute** the other's findings. A finding's
confidence comes from whether it survives that cross-examination. This kills the two failure
modes of solo LLM review: self-ratification (a model won't critique its own work) and
confident false positives.

## You are the orchestrator, and one of the two reviewers

This skill runs from **either** Claude Code **or** Codex. First, **identify which model
family you are** (Claude or Codex/GPT). Then:

- **You** are reviewer #1. You review **natively**, in this session, using your own tools.
- **The other family** is reviewer #2. You invoke it as a **subprocess CLI** for an
  independent pass: a fresh process, no shared context, that independence is the point.

The CLI for "the other model":

| If you are… | Invoke the other via… |
|-------------|------------------------|
| **Claude**  | `codex exec` (GPT)     |
| **Codex**   | `claude -p` (Claude)   |

Everything else in the flow is symmetric. Resolve the `prompts/` and `schemas/` paths
below relative to **this skill's own directory** (where this SKILL.md lives).

## Inputs

Two independent, optional inputs:

- `BASE`, the ref to diff against. Default `main`.
- `SCOPE`, a pathspec to narrow the review (e.g. `src/basic_memory`). Default: none (whole diff).

These are separate: a ref and a pathspec are not interchangeable. Build the **canonical diff
command** once in preflight and reuse it everywhere below, never re-spell the diff inline
(the scattered, inconsistent spelling is what broke earlier). Build it as an **argv array**,
not a string, so a `$SCOPE` containing spaces or glob characters survives intact:

The rest: https://github.com/basicmachines-co/basic-memory/blob/HEAD/.agents/skills/adversarial-review/SKILL.md
