adversarial-reviewer
Adversarial code review that breaks the self-review monoculture.
Skill by agisota
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/agisota-adversarial-reviewer
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/adversarial-reviewer
What's inside
- Skill name
adversarial-reviewer- Description
- Adversarial code review that breaks the self-review monoculture. Use when you want a genuinely critical review of recent changes, before merging a PR, or when you suspect Claude is being too agreeable about code quality. Forces perspective shifts through hostile reviewer personas that catch blind spots the author's mental model shares with the reviewer.
- License
- MIT
- Instructions
- 238 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Adversarial Code Reviewer ## Description Adversarial code review skill that forces genuine perspective shifts through three hostile reviewer personas (Saboteur, New Hire, Security Auditor). Each persona MUST find at least one issue — no "LGTM" escapes. Findings are severity-classified and cross-promoted when caught by multiple personas. ## Features - **Three adversarial personas** — Saboteur (production breaks), New Hire (maintainability), Security Auditor (OWASP-informed) - **Mandatory findings** — Each persona must surface at least one issue, eliminating rubber-stamp reviews - **Severity promotion** — Issues caught by 2+ personas are promoted one severity level - **Self-review trap breaker** — Concrete techniques to overcome shared mental model blind spots - **Structured verdicts** — BLOCK / CONCERNS / CLEAN with clear merge guidance ## Usage ``` /adversarial-review # Review staged/unstaged changes /adversarial-review --diff HEAD~3 # Review last 3 commits /adversarial-review --file src/auth.ts # Review a specific file ``` ## Examples ### Example: Reviewing a PR Before Merge ``` /adversarial-review --diff main...HEAD ``` Produces a structured report with findings from all three personas, deduplicated and severity-ranked, ending with a BLOCK/CONCERNS/CLEAN verdict. ## Problem This Solves When Claude reviews code it wrote (or code it just read), it shares the same mental model, assumptions, and blind spots as the author. This produces "Looks good to me" reviews on code that a fresh human reviewer would flag immediately. Users report this as one of the top frustrations with AI-assisted development. This skill forces a genuine perspective shift by requiring you to adopt adversarial personas — each with different priorities, different fears, and different definitions of "bad code." ## Table of Contents 1. [Quick Start](#quick-start) 2. [Review Workflow](#review-workflow) 3. [The Three Personas](#the-three-personas) 4. [Severity Classification](#severity-classification) 5. [Output Format](#output-format) 6. [Anti-Patterns](#anti-patterns) 7. [When to Use This](#when-to-use-this) ## Quick Start ``` /adversarial-review # Review staged/unstaged changes /adversarial-review --diff HEAD~3 # Review last 3 commits /adversarial-review --file src/auth.ts # Review a specific file ``` ## Review Workflow ### Step 1: Gather the Changes Determine what to review based on invocation: - **No arguments:** Run `git diff` (unstaged) + `git diff --cached` (staged). If both empty, run `git diff HEAD~1` (last commit). - **`--diff <ref>`:** Run `git diff <ref>`. - **`--file <path>`:** Read the entire file. Focus review on the full file rather than just changes. If no changes are found, stop and report: "Nothing to review." ### Step 2: Read the Full Context For every file in the diff: 1. Read the **full file** (not just the changed lines) — bugs hide in how new code interacts with existing code. 2. Identify the **purpose** of the change: bug fix, new feature, refactor, config change, test. 3. Note any **project conventions** from CLAUDE.md, .editorconfig, linting configs, or existing patterns. ### Step 3: Run All Three Personas Execute each persona sequentially. Each persona MUST produce at least one finding. If a persona finds nothing wrong, it has not looked hard enough — go back and look again. **IMPORTANT:** Do not soften findings. Do not hedge. Do not say "this might be fine but..." — either it's a problem or it isn't. Be direct. ### Step 4: Deduplicate and Synthesize After all three personas have reported: 1. Merge duplicate findings (same issue caught by multiple personas). 2. Promote findings caught by 2+ personas to the next severity level. 3. Produce the final structured output. ## The Three Personas ### Persona 1: The Saboteur **Mindset:** "I am trying to break this code in production." **Priorities:** - Input that was never validated - State that can become inconsistent - Concurrent access without synchronization - Error paths that swallow exceptions or return misleading results - Assumptions about data format, size, or availability that could be violated - Off-by-one errors, integer overflow, null/undefined dereferences - Resource leaks (file handles, connections, subscriptions, listeners) **Review Process:** 1. For each function/method changed, ask: "What is the worst input I could send this?" 2. For each external call, ask: "What if this fails, times out, or returns garbage?" 3. For each state mutation, ask: "What if this runs twice? Concurrently? Never?" 4. For each conditional, ask: "What if neither branch is correct?" **You MUST find at least one issue. If the code is genuinely bulletproof, note the most fragile assumption it relies on.** --- ### Persona 2: The New Hire **Mindset:** "I just joined this team. I need to understand and modify this code in 6 months with zero context from the original author." **Priorities:** - Names that don't communicate intent (what does `data` mean? what does `process()` do?)
From agisota/old-one, MIT.
More from agisota/old-one
- 0.514score
ticket-format
agisota
Use when creating, drafting, or grooming a Linear or Rox ticket in this repo.
SkillCFreshness: C★ 3Claude Code +9 - 0.510score
agent-workflow-designer
agisota
Design production-grade multi-agent workflows with clear pattern choice (sequential, parallel, hierarchical), handoff contracts, failure handling, and…
SkillCFreshness: C★ 3Claude Code +9 - 0.500score
Agent Name
agisota
One paragraph describing what this agent does, who it's for, and when to activate it.
SkillCFreshness: C★ 3Claude Code +9 - 0.489score
agent-designer
agisota
Use when the user asks to design multi-agent systems, create agent architectures, define agent communication patterns, or build autonomous agent workflows.
SkillCFreshness: C★ 3Claude Code +9 - 0.484score
agentd-global-orchestrator
agisota
Единый глобальный оркестратор AgentD для полного автопилота: принимает один prompt и сам делает планирование, dispatch subagents, skill-routing…
SkillCFreshness: C★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 1
- Open issues
- 139
- Last commit (this folder)
- Jun 15, 2026 (4 months ago)
- Last release
- Jun 27, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/agisota/old-one
- Website
- agisota.github.io/old-one/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
- 0.315score
adversarial-reviewer
Je-hye
Adversarial code review that breaks the self-review monoculture.
SkillBFreshness: BClaude Code +9 - 0.285score
adversarial-reviewer
HasRahm
Adversarial code review that breaks the self-review monoculture.
SkillCFreshness: CClaude Code +9 - 0.285score
adversarial-reviewer
sat-yam09
Adversarial code review that breaks the self-review monoculture.
SkillCFreshness: CClaude Code +9 - 0.246score
adversarial-reviewer
futurediffusion
Adversarial code review that breaks the self-review monoculture.
SkillDFreshness: DClaude Code +9
More from agisota
- 0.514score
ticket-format
agisota
Use when creating, drafting, or grooming a Linear or Rox ticket in this repo.
SkillCFreshness: C★ 3Claude Code +9 - 0.510score
agent-workflow-designer
agisota
Design production-grade multi-agent workflows with clear pattern choice (sequential, parallel, hierarchical), handoff contracts, failure handling, and…
SkillCFreshness: C★ 3Claude Code +9 - 0.500score
Agent Name
agisota
One paragraph describing what this agent does, who it's for, and when to activate it.
SkillCFreshness: C★ 3Claude Code +9 - 0.489score
agent-designer
agisota
Use when the user asks to design multi-agent systems, create agent architectures, define agent communication patterns, or build autonomous agent workflows.
SkillCFreshness: C★ 3Claude Code +9 - 0.484score
agentd-global-orchestrator
agisota
Единый глобальный оркестратор AgentD для полного автопилота: принимает один prompt и сам делает планирование, dispatch subagents, skill-routing…
SkillCFreshness: C★ 3Claude Code +9
Cite this page
adversarial-reviewer skill. Agent Mart. https://agentmart.dev/skills/agisota-adversarial-reviewer (last updated 2026-10-24)