# Native Review vs Adversarial Review in the Codex Plugin: Complete Guide

> Discover the difference between native review and adversarial review in the Codex plugin. Learn how native review ensures correctness and adversarial review finds hidden risks.

- Repository: [OpenAI/codex-plugin-cc](https://github.com/openai/codex-plugin-cc)
- Tags: deep-dive
- Published: 2026-07-16

---

**Native review provides a neutral, correctness-focused code audit, while adversarial review actively challenges the implementation to uncover hidden risks and design flaws.**

The openai/codex-plugin-cc repository ships two distinct review commands that run the same underlying Codex engine but serve different purposes. Understanding the difference between native review and adversarial-review in the Codex plugin helps developers choose the right approach for standard code quality checks versus high-pressure design validation.

## What Is Native Review?

Native review is the standard, read-only code review command accessed via `/codex:review`. According to the source code in [`plugins/codex/commands/review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/commands/review.md), this command executes `codex-companion.mjs review ...` to provide a neutral assessment of code changes.

**Key characteristics:**
- **Purpose:** Checks for bugs, style issues, and general quality without aggressive skepticism
- **Prompt:** Uses a built-in neutral "review" template focused on factual correctness
- **Steerability:** Not steerable—does not accept custom focus text or review tone modifications
- **Framing:** Normal, factual, and supportive tone that assumes good intent

## What Is Adversarial Review?

Adversarial review is the challenge-oriented variant accessed via `/codex:adversarial-review`. As defined in [`plugins/codex/commands/adversarial-review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/commands/adversarial-review.md), this command executes `codex-companion.mjs adversarial-review ...` and uses a specialized prompt template located at [`plugins/codex/prompts/adversarial-review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/prompts/adversarial-review.md).

**Key characteristics:**
- **Purpose:** Conducts a challenge review that actively tries to disprove the change and surface design-level risks
- **Prompt:** Uses the adversarial template containing sections like `<operating_stance>`, `<attack_surface>`, `<review_method>`, and `<finding_bar>` that force the model to adopt a skeptical stance
- **Steerability:** Fully steerable—callers can supply extra focus text after the flags to direct the review toward specific risk areas
- **Framing:** Skeptical, asking "what could go wrong?" and refusing to give credit for good intent unless it can be defended

## Technical Implementation Differences

Both commands share the same underlying infrastructure but differ in prompt selection and input handling.

### Command Definitions

The native review command is defined in [`plugins/codex/commands/review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/commands/review.md) and supports these flags:
- `--wait`
- `--background`
- `--base <ref>`

The adversarial review command is defined in [`plugins/codex/commands/adversarial-review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/commands/adversarial-review.md) and supports the same flags **plus** an optional free-form focus string that gets appended after the flags.

### Shared Infrastructure

Both commands ultimately invoke the same companion script (`plugins/codex/scripts/codex-companion.mjs`). The script receives the raw arguments and handles target selection logic (git status, diffs, and optional `--base`) identically for both modes. The only distinction is the sub-command word passed to the script—`review` versus `adversarial-review`—which selects the prompt file to load.

## Practical Usage Examples

```bash

# Native review – simple, read-only quality check

/codex:review --background          # runs in background, no focus text

/codex:review --base main           # review branch diff against main

/codex:review --wait                # foreground, blocks until result

```

```bash

# Adversarial review – add focus text to direct the challenge

/codex:adversarial-review "challenge whether the retry logic handles network partitions"
/codex:adversarial-review --base main "question the caching strategy for consistency"
/codex:adversarial-review --background "look for race conditions in the new worker pool"

```

## When to Use Each Review Mode

**Use native review** when you need a quick, high-quality assessment of current changes or branch diffs. It provides straightforward feedback on correctness and style without aggressive skepticism, making it ideal for routine development workflows.

**Use adversarial review** when you want to pressure-test assumptions, explore edge-case failures, or challenge a design decision before shipping. The steerable focus text allows you to direct the model toward specific risk areas like security vulnerabilities, concurrency issues, or hidden assumptions in caching logic.

## Summary

- **Native review** (`/codex:review`) provides neutral, correctness-focused code reviews using a standard prompt and does not accept custom focus text.
- **Adversarial review** (`/codex:adversarial-review`) provides skeptical, risk-focused challenges using the prompt template in [`plugins/codex/prompts/adversarial-review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/prompts/adversarial-review.md) and accepts optional focus text to steer the analysis.
- Both commands share the same target selection logic and underlying script (`codex-companion.mjs`), differing only in the sub-command and prompt template used.
- Native review is ideal for routine quality checks, while adversarial review is designed for pre-shipping design validation and risk discovery.

## Frequently Asked Questions

### Can I use adversarial review without focus text?

Yes. The focus text is optional. You can run `/codex:adversarial-review --background` without any additional text, and the model will apply its default skeptical stance across the entire change set. However, adding focus text helps direct the challenge toward specific areas of concern, such as security vulnerabilities or concurrency edge cases.

### Do both commands analyze the same files?

Yes. Both commands use identical target selection logic defined in the companion script. They examine the same git status, diffs, and respect the same `--base <ref>` option. The only difference is how the model analyzes those files based on the prompt template loaded—neutral for native review and skeptical for adversarial review.

### Why does adversarial review use a different prompt template?

The adversarial prompt template in [`plugins/codex/prompts/adversarial-review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/prompts/adversarial-review.md) contains specific structural sections like `<operating_stance>` and `<finding_bar>` that force the model to adopt a skeptical posture and produce material findings only. This architectural choice prevents the model from giving credit for good intent unless the implementation can be defended against active challenges, surfacing hidden failure modes that neutral reviews might miss.

### Can I switch between review modes without changing my workflow?

Yes. Since both commands support the same flags (`--wait`, `--background`, `--base`) and target selection logic, you can swap `/codex:review` with `/codex:adversarial-review` in your workflow without modifying file paths or branch references. Simply add optional focus text when using the adversarial variant to customize the review scope, or omit it to run a general adversarial challenge.