Skills DirectorySearch all skills ↗

AI agent skill · by @EpicenterHQ

Adversarial Review

Independently pursue the strongest greenfield design, challenge the underlying model, and find concrete deletion prizes. Use when asking for an adversarial review, an independent architecture review, or an adversarial checkpoint on a plan or cumulative implementation. Do not use for routine final code inspection, which belongs to post-implementation-review.

Archived 2026-10-23 · Source updated 2026-10-12. Check the original repository for the latest version.

SKILL.md instructions

# Adversarial review

Independently pursue the strongest greenfield design from the desired outcome
and actual users and callers. Hold that outcome steady while questioning the
organizing idea, boundaries, ownership, lifecycle, representation, and inherited
promises. Reconstruct the system as evidence about the problem, not the boundary
of the solution. Develop a concrete vision of what you would build if the current
abstraction did not exist, even when no bugs are apparent.

Make the deletion prize concrete: what machinery, obligations, or planned work
becomes unnecessary, and what stronger guarantee replaces it? The strongest
design may introduce an abstraction that earns its place. Judge the whole
bargain; fewer parts alone do not establish improvement. Keep migration cost
visible without letting it define the destination before exploring that design.

Success is a better-supported next decision. Count complexity introduced as
well as removed, including work transferred to the user. Keeping the design is
valid after testing the alternative. Passing tests and individually defensible
abstractions do not settle whether the model deserves to survive; forced
disagreement and deletion at any cost do not establish improvement either.

## Establish independence

If you are already the delegated reviewer, perform the review yourself and
launch no child agents. The following setup belongs to the coordinating agent.

The coordinating agent starts with one fresh read-only `gpt-6.1-sol` subagent with
`fork_turns: "none"` and `reasoning_effort: "high"`, and one read-only Claude
Opus reviewer through [consult-claude](../consult-claude/SKILL.md). Explicit
user choices override this default. Ordinary final checks remain local under
post-implementation-review.

Give both reviewers the same evidence and complementary starting questions.
Run them in parallel when possible, and withhold each reviewer's findings from
the other until both initial verdicts arrive. Assign the starting questions
without assuming either model is better at simplification or guarantee tracing.
If either reviewer is unavailable, report that limitation and continue with the
available review. If neither is available, perform the pass locally and state
that it was not independent.

Reviewer one starts with:

> Starting from the desired outcome and actual users and callers, what is the
> strongest greenfield design? Reconsider the organizing idea, ownership,
> lifecycle, representation, and promises. Show concrete use, the deletion prize,
> the replacement guarantees, and the complexity introduced.

Reviewer two starts with:

> Independently develop the strongest greenfield design. What must it preserve
> to be worth adopting? Trace concrete callers and lifecycle sequences to find
> the guarantees the current complexity provides. Which matter to the user,
> and which are inherited assumptions? Show where an alternative would break
> a necessary guarantee or move the burden onto someone else.

These are starting questions, not assigned conclusions or separate file lanes.
Reviewer two explores alternatives without waiting for reviewer one's proposal.
Both can discover a better design or conclude that the current boundaries earn
their place.

When reviewing a design before implementation, first give each reviewer the
desired outcome, explicit requirements, actual callers, and existing system,
without the implementer's proposed design or rationale. Ask each to sketch the
strongest greenfield design and name what it deletes and introduces. Preserve
their independent initial answers. Then provide the full proposal and reasoning
to each reviewer for a challenge against those answers. This ordering tests
whether the proposal anchored the search. For implemented work, the current
checkout may already expose the proposal; do not claim that the first pass was
blind. Start from the outcome, actual callers, and task-start baseline when
available. Explore the
destination before narrowing to critique of the cumulative diff.

Give each reviewer raw artifacts, concrete proposals, engineering reasoning, and
open questions in the full-proposal pass. Distinguish facts, hypotheses,
preferences, and accepted constraints; the implementer's reasoning is
contestable evidence, not the answer:

- The accepted outcome, explicit constraints, and decision to be examined.
- The plan and remaining work, including newly discovered facts.
- For implementation, the task-start baseline and cumulative diff, including
  task-owned uncommitted and untracked files. Distinguish unrelated work.
- Relevant entrypoints, consumers, tests, and verification results. A summary
  alone is not sufficient evidence.

Include actual and proposed code, representative callsites, and an ASCII diagram
when it clarifies the design. Ask what the reviewer would build from the desired
outcome and actual callers if the current abstraction did not exist. All
reviewers apply this review method themselves without launching more reviewers.
They may propose follow-up investigations; the coordinator commissions them.
Codex owns verification and can assign bounded experiments through
[delegate-claude](../delegate-claude/SKILL.md) when the user explicitly
authorizes Claude execution.

For a proposal without implementation, supply the proposal and any existing
system it would replace. Distinguish observed behavior from design assumptions;
name what a prototype or caller would need to establish.

Hold the reviewed surface stable until the available reviewers return. Use that
interval for verification preparation or an independent question outside the surface.
Do not begin work whose shape depends on the verdict.

Reviewers do not edit the live checkout.

## Manage the search

Be willing to add reviewers for independent exploration, a different starting
angle, or a focused sequential challenge. A known defect or suspected shared
assumption is not required. Name the opportunity another perspective could
explore and how its answer could affect the decision. Scale the search to the
breadth and consequence of the design; available capacity alone is not a purpose.
For broad decisions, two reviewers of each model can explore both starting
questions. Model symmetry and a fixed panel size are not requirements.

Use parallel reviewers to broaden the search and sequential reviewers to
challenge emerging alternatives, shared assumptions, or the coordinator's
synthesis. Later reviewers receive raw evidence alongside preserved findings;
their passes are informed challenges rather than blind discovery. A fresh
reviewer can reopen the destination:

> The current recommendation is evidence to examine, not your destination.
> Independently consider whether a different organizing idea would better
> achieve the desired outcome. Develop it far enough to compare actual use,
> guarantees, total complexity, and the deletion prize. Keeping the
> recommendation is valid if it survives that comparison.

Actively manage assignments. Clarify questions, supply new evidence, correct
factual misunderstandings, and redirect duplicated or low-value work. Share
material facts with affected reviewers while withholding competing conclusions
until their independent initial answers are preserved. Steer toward the
uncertainty that matters without prescribing the conclusion. Preserve useful
findings and state the new question when redirecting. If a reviewer stops at
local cleanup, ask what makes the model necessary and what different organizing
idea would eliminate it. Intervene when evidence or the investigation's trajectory
warrants it, rather than repeatedly requesting status. Choose natural assignment
boundaries when evidence could change substantial work. Use mid-run messages only
when supported; consult-claude owns Claude's completed-turn follow-ups.

As the destination earns support, focus effort on claims that could change the
decision or establish how to realize it. Prefer a concrete counterexample,
caller trace, or executable check when it can settle the question. Reopen the
destination when evidence reveals a better organizing idea or changes the
bargain; difficulty alone does not justify lowering the ambition. Close when a
concrete destination has survived serious alternatives and its consequential
claims have sufficient evidence. Further reviewers need an opportunity to improve
that decision, not a demand for unanimity or proof that no better design exists.

## Reconstruct before judging

Trace the affected design through its entrypoints, callers, owners, lifecycle,
and invariants. Include earlier implementation waves and relevant unchanged
consumers. Expand only far enough to establish the owner and consequences;
this is not a repository-wide audit.

List every file read as an ASCII tree before analysis. Mentally inline helpers,
wrappers, components, props, compartments, and file boundaries into their call
sites. Read the resulting behavior as if encountering it for the first time.

For implemented code, apply
[post-implementation-review](../post-implementation-review/SKILL.md)'s inspection
passes in review-only mode: first read, mental inlining, ownership, smells,
invariants, API shape, naming, and file organization. This supplies the code
inspection; it does not initiate another independent review.

## Find the deletion prize

Ask what the local complexity is compensating for. Would moving an invariant
to construction, giving one object the lifecycle, or removing a stale promise
make a family of adapters, flags, callbacks, checks, or future tasks disappear?
Challenge new abstractions as readily as inherited ones.

Make the prize concrete: name the methods, types, modules, states, tests, docs
branches, or planned work that becomes unnecessary. Explain the replacement
guarantee. Fewer files alone proves little if callers inherit the same work or
lose a useful boundary. Preserve tests for behavior that must survive.

A compact implementation can still implement a bloated model. Challenge the
promise that requires the machinery, including previously accepted architecture
and product assumptions. Bring consequential tradeoffs to the human even when
they go beyond the current implementation plan; the reviewer proposes them
without treating them as authorized changes.

Distinguish a guarantee the software enforces from an obligation the user must
fulfill. For a proposed obligation, name the steps, what happens if they are
missed, and which guarantee the product can no longer claim. Moving work to a
person may be an excellent bargain, but that work remains part of the cost.
When exploring lifecycle resets or user-owned operations that eliminate
coordination, read [references/deletion-prizes.md](references/deletion-prizes.md).

Use focused skills for deeper decisions, without copying their procedures:

- [Repairability](../rethink/references/repairability.md) when file-authoritative
  workflows coordinate to prevent inconsistencies. Identify what information
  the machinery protects and show the proposed repair path. Verification is
  required before removing protections.
- [Rethink's radical-options reference](../rethink/references/radical-options.md)
  when local fixes preserve a bad abstraction and the better design may sit one
  level above it.
- [asymmetric-wins](../asymmetric-wins/SKILL.md) when refusing a small promise
  could delete a disproportionate code family. Name who loses what.
- [rethink](../rethink/SKILL.md) when the finding
  changes ownership, lifecycle, public contracts, or package boundaries. Use
  its design reasoning here; execution belongs to the coordinating agent.

Recommend a [collapse-pass](../collapse-pass/SKILL.md) when the evidence calls
for sustained removal of unearned indirection. The reviewer identifies the
opportunity; it does not begin that skill's editing or commit loop.

Product changes remain proposals for user judgment. Explicit user constraints
bound execution; surface a conflicting opportunity as a tradeoff rather than
silently dropping required behavior or data guarantees.

## Return a decision

Lead with the recommended path, whether it changes the current design or keeps
it. Show the mechanism and why it wins. Name the deletion prize when there is
one: the machinery or planned work that would disappear, and the replacement
guarantee. Explain the cost as a concrete consequence, such as losing unsaved
work, and what complexity a mitigation would retain or introduce. When keeping
the design, show the strongest deletion prize considered and why its cost makes
retention worthwhile.

Give each serious alternative enough shape to judge on its own. A compact ASCII
diagram can expose ownership or lifecycle; a code block can show an API; bullets
or a small table can distinguish multiple options. Use bold text to expose a
recommendation or requirement warning when it helps scanning. Do not force a
fixed number of options or headings. If one path clearly wins, explain it and
include only alternatives that illuminate the decision. Label any option that
conflicts with an explicit user requirement as a proposed requirement change,
and include the strongest compliant path when one is viable.

State downsides, remaining uncertainty, and the next discriminating check where
they affect the judgment. Give the current best estimate instead of listing
unknowns without analysis. Codex owns checks it can perform; do not hand the
user homework. Ask the user only about a product choice that evidence cannot
settle. Keep precise design terms and make their consequences understandable.

Read [the example workflow](references/example-workflow.md) when calibrating
how independent findings become a recommendation the user can judge. It shows
both a proposed simplification and a decision to retain the current design,
with the intended phrasing and progression rather than a required transcript.

Support that judgment with:

- Current and proposed shape, with both file trees when organization changes.
- Concrete file or caller evidence, the stronger invariant and its owner,
  and behavior that must survive.
- The concrete greenfield alternative, deletion prize, complexity introduced,
  and any user loss or obligation. Explain why the alternative wins or loses.
- Which remaining tasks should change or disappear, if a plan exists.
- Verification that would distinguish improvement from displaced complexity,
  including assumptions that remain unproven.

Report correctness blockers separately so an attractive collapse cannot hide
a regression. Attribute verification failures using the agreed review baseline;
the code inspection skill owns that procedure. Do not call a failure pre-existing
without evidence.

## Adjudicate and continue

The coordinating agent reconciles the available reviews into one recommendation,
preserving consequential disagreement. Verify findings against current artifacts
and accept, reject, or defer them with reasons; agreement is not a correctness
test. State the decisive claim behind a consequential recommendation, including
one synthesized from multiple reviews. If no reviewer tested that specific
alternative against the guarantee it must preserve, ask the reviewer best placed
to challenge it for a focused counterexample or the caller evidence that rules
one out. Verify the deciding fact directly; if it remains unproven, keep the
recommendation conditional. Do not start another full review to answer a
focused question.

Present the strongest opportunity, deletion prize, costs, and judgment
together so the user can assess the bargain. Keep reviewer inventories and
deliberation in the supporting evidence; the user should not have to reconstruct
the recommendation from separate reports. An unresolved condition belongs beside
the recommendation, without making a promising direction sound settled.
Explain accepted findings before editing.
Implement and verify repairs within existing authorization; bring changes to
the accepted outcome or unresolved product judgment to the user.

After repairs, apply [post-implementation-review](../post-implementation-review/SKILL.md#output-shape)'s
local post-edit checks to every repaired file before closing the review.

When executing a plan, rewrite remaining work around the resulting design and
delete obsolete tasks. Record consequential findings and decisions in the active
plan or working notes. The assignment sets any intermediate review checkpoints.

Request a focused follow-up when repairs materially change reviewed ownership
or expose an unresolved risk. Close the review when grounded findings are
resolved and the next step has a defensible shape, then resume any remaining
assigned work. Do not repeat reviews to obtain a collapse or unanimous approval.

Related skills