# Adversarial vs Regular Review in Codex Plugin CC: Key Differences Explained

> Understand the crucial differences between adversarial and regular review in OpenAI Codex Plugin CC. Learn how each method strengthens your code by uncovering hidden issues and ensuring quality.

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

---

**Regular review validates changes for correctness, style, and quality, while adversarial review actively attempts to break confidence in the change by hunting for hidden failure modes, security gaps, and risky assumptions.**

The openai/codex-plugin-cc repository provides two distinct code review modes that serve different purposes in the development workflow. Understanding the difference between adversarial and regular review ensures you apply the right level of scrutiny to your changes, whether you need a balanced quality check or a stress-test for high-risk modifications.

## Core Architectural Differences

### Primary Goals and Philosophy

**Regular review** (`/codex:review`) focuses on validating a change by checking correctness, style, tests, documentation, and overall quality. It provides constructive feedback and suggestions for improvement.

**Adversarial review** (`/codex:adversarial-review`) adopts a skeptical operating stance designed to actively break confidence in the change. Instead of validating what works, it hunts for hidden failure modes, security vulnerabilities, and unsafe assumptions that could cause production failures.

### Prompt Contracts and Operating Stance

The review modes diverge at the prompt level. According to [`plugins/codex/commands/review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/commands/review.md), the regular review command uses a standard review contract focused on constructive feedback. The adversarial review command, defined in [`plugins/codex/commands/adversarial-review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/commands/adversarial-review.md), explicitly loads the adversarial-review prompt from [`plugins/codex/prompts/adversarial-review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/prompts/adversarial-review.md).

This specialized prompt enforces grounding rules and a stricter structured-output contract that disables any weakening of the framing. The adversarial prompt adds a skeptical operating stance that requires the model to challenge assumptions rather than validate them.

### Output Structure and Findings

Regular review returns findings and suggestions that may include stylistic or low-impact comments. Adversarial review filters out non-adversarial, stylistic, or speculative items, returning **only material findings** tied to concrete code locations.

Each adversarial finding includes a confidence score and concrete mitigation strategy. The adversarial mode returns a concise ship/no-ship assessment, emitting `approve` only when no substantive adversarial finding can be supported.

## When to Use Each Review Mode

Use **regular review** for general code-review workflows, CI checks, or when authors need balanced feedback on implementation quality.

Use **adversarial review** when you need to challenge a specific decision or stress-test high-risk areas such as security logic, race conditions, rollback safety, or caching layer TTL handling. This mode is ideal for verifying that your code withstands hostile scrutiny before production deployment.

## Command Usage and Implementation

Both commands launch the same underlying review job implemented in `plugins/codex/scripts/codex-companion.mjs`, but adversarial review adds the adversarial prompt and stricter output constraints.

Regular review invocation:

```bash
node plugins/codex/scripts/codex-companion.mjs review \
  --base main \
  --wait \
  path/to/changed/file.js

```

Adversarial review invocation:

```bash
node plugins/codex/scripts/codex-companion.mjs adversarial-review \
  --base main \
  --background \
  --focus "does the caching layer correctly handle TTL expiry?" \
  path/to/changed/file.js

```

From a chat interface, the equivalent commands are:

```text
/codex:review --base main path/to/changed/file.js

```

```text
/codex:adversarial-review --base main --background \
  --focus "are race conditions possible in the retry loop?" \
  path/to/changed/file.js

```

The adversarial command reuses the same target-selection logic as regular review but adds the adversarial prompt, fundamentally changing the tone from constructive suggestions to rigorous challenge.

## Summary

- **Regular review** (`/codex:review`) validates correctness, style, and documentation, providing balanced constructive feedback suitable for general workflows.
- **Adversarial review** (`/codex:adversarial-review`) actively hunts for failure modes and security gaps, returning only material findings with confidence scores and concrete mitigations.
- Both modes share the same underlying job infrastructure in `plugins/codex/scripts/codex-companion.mjs`, but adversarial review loads the specialized prompt from [`plugins/codex/prompts/adversarial-review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/prompts/adversarial-review.md) and enforces stricter output contracts defined in [`plugins/codex/commands/adversarial-review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/commands/adversarial-review.md).
- Use regular review for standard quality checks; use adversarial review when you need to stress-test high-risk changes or validate security-critical logic.

## Frequently Asked Questions

### What is the main difference between adversarial and regular review in Codex Plugin CC?

The main difference lies in the operating stance. Regular review validates that code meets quality standards and correctness requirements, while adversarial review assumes a skeptical posture designed to actively break confidence in the change. According to the source code in [`plugins/codex/prompts/adversarial-review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/prompts/adversarial-review.md), the adversarial mode hunts for hidden failure modes, security gaps, and risky assumptions that standard reviews might miss.

### Can I use both review modes on the same code change?

Yes, you can run both modes sequentially. Start with regular review to catch style issues and basic correctness problems, then run adversarial review to stress-test the logic for security vulnerabilities or edge cases. The commands invoke the same underlying review job but with different prompt contracts, making them complementary rather than mutually exclusive.

### Why does adversarial review only return material findings with confidence scores?

Adversarial review filters out stylistic and speculative comments to focus exclusively on concrete risks. As implemented in [`plugins/codex/commands/adversarial-review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/commands/adversarial-review.md), this mode requires every finding to include a confidence score and concrete mitigation strategy tied to specific code locations. This constraint ensures that the ship/no-ship assessment is based solely on substantive threats rather than subjective preferences.

### When should I choose adversarial review over regular review?

Choose adversarial review when modifying security-critical code, implementing distributed systems prone to race conditions, or changing rollback mechanisms where failure modes could cause significant production issues. The adversarial mode is designed to challenge high-risk assumptions, whereas regular review in [`plugins/codex/commands/review.md`](https://github.com/openai/codex-plugin-cc/blob/main/plugins/codex/commands/review.md) provides balanced feedback for general development tasks.