Difference Between Native Reviews and Adversarial Reviews in the Codex Plugin

The native /codex:review command provides a neutral, read‑only quality check, while the /codex:adversarial-review command conducts a steerable, skeptical challenge that actively tries to disprove the change and surface hidden risks.

The openai/codex-plugin-cc repository ships two distinct slash‑commands that invoke the same underlying Codex engine, yet they differ fundamentally in intent, framing, and flexibility. Both commands run against the same git state or diff, but they use different prompt templates and accept different arguments.

Core Concept: Prompt‑Driven Review Modes

Both review modes execute through plugins/codex/scripts/codex-companion.mjs, sharing identical target‑selection logic for git diffs and status. The only architectural distinction is the sub‑command word passed to the script—review versus adversarial-review—which selects a different prompt template and enables additional steerability options.

Native Review Mode

Native reviews utilize a neutral, factual prompt designed for general correctness and style analysis. The model acts as a supportive reviewer, flagging bugs, style violations, and obvious quality issues without questioning the underlying design intent.

Adversarial Review Mode

Adversarial reviews load the skeptical prompt defined in plugins/codex/prompts/adversarial-review.md, which includes sections such as <operating_stance>, <attack_surface>, and <finding_bar>. This forces the model to adopt a “break confidence in the change” mentality, refusing to give credit for good intent unless the implementation can be defended against failure modes.

Native Review Command (/codex:review)

The native review command is defined in plugins/codex/commands/review.md. It is optimized for quick, high‑quality feedback on current working changes or branch diffs.

  • Purpose: Provide straightforward, read‑only code review.
  • Prompt: Uses the built‑in neutral “review” template.
  • Steerability: Not steerable—you cannot append custom focus text or modify the review tone.
  • Supported Flags: --wait, --background, --base <ref>.

Because the native mode lacks steerability, it always applies the same general quality lens regardless of the domain or risk profile of the code.

Adversarial Review Command (/codex:adversarial-review)

The adversarial review command is defined in plugins/codex/commands/adversarial-review.md. It is designed for pressure‑testing assumptions before shipping.

  • Purpose: Conduct a challenge review that actively tries to disprove the change.
  • Prompt: Uses the adversarial prompt template to surface design‑level risks and hidden assumptions.
  • Steerability: Steerable—callers can supply free‑form focus text after the flags to direct the review toward specific risk areas (e.g., “challenge whether this caching design is safe”).
  • Supported Flags: Same as native review, plus optional focus string.

The ability to inject focus text makes this mode ideal for exploring edge‑case failures, questioning distributed‑system consistency, or validating retry logic under network partitions.

Implementation Details

Both commands ultimately invoke the same companion script, but they pass different sub‑command arguments:


# Native review execution path

codex-companion.mjs review ...

# Adversarial review execution path  

codex-companion.mjs adversarial-review ...

The target selection logic—determining which files to review based on git status, diffs, or the optional --base reference—remains identical between both modes. The adversarial command simply adds extra handling for the focus string and loads the alternative prompt template from plugins/codex/prompts/adversarial-review.md.

Usage Examples

Run a native review in the background to check current changes:

/codex:review --background

Review a branch diff against main using the native mode:

/codex:review --base main

Conduct an adversarial review with a specific focus on retry logic:

/codex:adversarial-review "challenge whether the retry logic handles network partitions"

Pressure‑test a caching strategy while running in the background:

/codex:adversarial-review --background "question the caching strategy for consistency"

Summary

  • Native reviews (/codex:review) provide neutral, read‑only quality checks using a general‑purpose prompt and do not accept custom focus text.
  • Adversarial reviews (/codex:adversarial-review) provide skeptical, steerable challenge reviews that can be directed at specific risk areas via free‑form focus strings.
  • Both commands share the same underlying implementation in plugins/codex/scripts/codex-companion.mjs and target‑selection logic, differing only in the prompt template and steerability.
  • The adversarial prompt template is located at plugins/codex/prompts/adversarial-review.md and enforces a high bar for material findings.

Frequently Asked Questions

Can I use custom focus text with the native review command?

No. The native /codex:review command is not steerable and will reject focus text. According to the command definition in plugins/codex/commands/review.md, it only accepts flags like --wait, --background, and --base <ref>. If you need to direct the review toward a specific risk area, use /codex:adversarial-review instead.

Do both review modes analyze the same set of files?

Yes. Both commands share identical target‑selection logic. They evaluate the same git state, diff, or branch comparison determined by the --base flag or current working directory status. The only difference is the prompt that processes those files.

When should I choose adversarial review over native review?

Use adversarial review when you need to pressure‑test design assumptions, explore failure modes in distributed systems, or validate edge‑case handling before shipping. Use native review for routine quality checks, style validation, and bug detection when you do not need the model to challenge the fundamental premise of the change.

What is the performance difference between native and adversarial reviews?

There is no significant performance difference in execution time or resource usage. Both commands invoke the same codex-companion.mjs script and process the same file sets. The adversarial review may produce longer outputs because the skeptical prompt encourages detailed risk analysis, but the underlying engine latency remains identical.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →