From @angelotrifanoff.ai — the exact rule from my CLAUDE.md, from the reel.
# Adversarial Review
**After a substantial code change, run it past a fresh reviewer agent for an
adversarial review before declaring it done.** Knowing a second pass will critique
the output makes the first pass tighter — less sprawl, fewer stray files, clearer
logic. Spawn a fresh code-reviewer subagent (zero memory of writing the change) and
ask it to hunt for bugs, missed edge cases, and overcomplication; then fold in what
it finds or reject each point with a reason — don't rubber-stamp. Skip for trivial
edits (typos, one-liners); this is for features, refactors, and anything you'll
have to maintain.
A rival model makes the review even stronger: wire in a second coding CLI (I use
Codex — GPT's coding agent — with Claude Opus 4.8 as the backup reviewer when it's
unavailable). Any coding agent you can call from the terminal works. The review
step itself is mandatory on substantial changes either way.
- It runs automatically. Claude Code reads your CLAUDE.md at the start of every session, so once this rule is in there, it reviews its own big changes without being asked.
- Kick it off manually anytime: just say "run an adversarial review on this change" — or spawn the reviewer yourself with the Agent tool / a second CLI.
- The key is FRESH. The reviewer must have zero memory of writing the code — same model is fine, same chat is not. An AI checking its own work in the same conversation is grading its own homework.
- Don't rubber-stamp. Fix what survives; reject the rest with a written reason. That reject-with-a-reason step is what keeps the reviewer honest — and you in charge.
This is just code review — nobody merges their own code without a second set of eyes. Now yours doesn't have to be human.