adversarial-review
Skill1 starsChanged 43 days agoMITView on GitHub
Adversarial review toolkit for code, PRs, designs, plans, migrations, incident fixes, and strategy. One skill, several lenses: red team / blue team, premortem, devil's advocate, competing alternatives, failure modes (FMEA, dependency chains), assumptions check, and inversion. Every challenge is grounded in evidence and ends in a verdict. Use when the user says "challenge this", "review this", "poke holes", "stress test", "pushback", "call my bullshit", "red team", "blue team", "premortem", "how could this fail", "what am I assuming", "what are the alternatives", "argue the other side", "is this ready to ship", or types *review, *redblue, *premortem, *devil, *alternatives, *fail, *assumptions, *invert.
104 other projects use a version of this.
Adopted by
Most recently taken up by
- revisit-studies/studytheir own version, first seen Nov 9, 2026
- ozt88/skillstheir own version, first seen Nov 8, 2026
- selamy-labs/agent-skillstheir own version, first seen Nov 8, 2026
- kellen-miller/skillstheir own version, first seen Nov 8, 2026
- leinardi/adversarial-review-looptheir own version, first seen Nov 8, 2026
- artberri/skillstheir own version, first seen Nov 8, 2026
Used with
Projects with it also use rethink, root-cause-analysis and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
fabioespindulaSkillrethink
Reframe a plan, idea, or decision before the user commits to it. Use when the user asks to rethink, step back, pressure-test, gut-check, decide, right-size, simplify, think bigger about, or evaluate a concrete plan or decision in product, strategy, technical architecture, career, life, company direction, or personal priorities. This skill improves decision quality before action: clarify the real question, challenge assumptions, compare alternatives, calibrate ambition, classify the operating mode, surface risks, and recommend a next move. Do not use for broad future exploration without a concrete decision; that belongs to a think-big or research-style skill.
Also in 3 projects that use this
MicrosoftSkillroot-cause-analysis
Use when a Regional Retail Manager asks I'm seeing unusual inventory movement at our Northwest stores. Can you help me understand what's happening?
Also in 3 projects that use this
anasahmed07Skillbetter-auth-best-practices
Skill for integrating Better Auth - the comprehensive TypeScript authentication framework.
Also in 4 projects that use this
DockerSkillfix-issue
Fix a single GitHub issue end-to-end: triage, research, write the fix, review, and create a PR. Use when asked to fix an issue: "fix issue 1234", "resolve #500", "create a PR for issue 200".
Also in 3 projects that use this
MicrosoftSkillpull-request
Write concise, focused pull request descriptions for Wassette — at most three sentences on the what and why, with an explicit note on any breaking public-API change and how users adapt. Use when opening or editing a Wassette pull request.
Also in 3 projects that use this
juriwiensSkillcodex-review
Run code review via Codex CLI
Also in 3 projects that use this
- +2 more from microsoft
Other versions104 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 104
- PrefectHQ/fastmcp★ 28ksame name
- jlowin/fastmcp★ 28ksame name
- mengxi-ream/read-frog★ 10ksame name
- epicenter-md/epicenter★ 4.8ksame name
- EpicenterHQ/epicenter★ 4.8ksame name
- basicmachines-co/basic-memory★ 4.5ksame name
- DanMcInerney/architect-loop★ 626same name
- deadlock-mod-manager/deadlock-mod-manager★ 584same name
- boraoztunc/skills★ 454same name
- syahiidkamil/Software-Engineer-AI-Agent-Atlas★ 404same name
94 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
The file
We split this skill into the rules it gives an agent
11 rules. 0 are common, 10 are distinctive, and 1 is very specific to this project.
0
Common
Most of the 93 edited versions we read keep these.
10
Distinctive
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 55
Absorb: Read the real code, plan, or diff, not a summary of it.
- Distinctive: line 68
Verdict: Use the output contract below.
- Distinctive: line 80
Restating the plan is not evidence: Never rate a claim taken from the artifact itself as verified or confident without an independent …
- Distinctive: line 82
A design promise is not a control: If a mitigation isn't demonstrated, write "control not demonstrated".
- Very specific: line 84
Never invent a number: No probability, volume, or latency figure without a cited source.
- Distinctive: line 87
Never invent names: No table, column, endpoint, or citation that you haven't seen.
- Distinctive: line 122
Check each one: is the plan already doing any of these, even partially?
- Distinctive: line 123
Every match becomes a finding with evidence and a fix.
- Distinctive: line 127
Every review-shaped deliverable ends in this shape.
- Distinctive: line 156
No flattery, no preamble.
- Distinctive: line 168
When input is needed, group questions by decision branch.
“Common” is measured: kept by at least 6 in 10 of the 93 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Adversarial Review
Find what breaks before production does. Investigate first, then challenge the work with evidence, then land on a verdict. The target is the artifact, never the people attached to it.
This skill is self-contained: everything it needs is in this file and in
references/. Load a reference only when its lens is in play.
Pick the Lens
| Situation / command | Lens | Read |
PR, branch, incident fix, payment or data-integrity change (*review) | Review + PR gate | references/pr-incident-gate.md (non-skippable for PRs and incident fixes) |
Launch readiness, attack paths, "what defends this" (*redblue) | Red team / blue team | references/red-blue.md |
Before starting risky work, "it failed, why?" (*premortem) | Premortem | references/premortem.md |
A decision is about to be made, argue the other side (*devil) | Devil's advocate | references/devils-advocate.md |
Choosing between approaches, "what else could we do" (*alternatives) | Competing alternatives | references/alternatives.md |
Reliability, "how does this break", SPOFs (*fail) | Failure modes | references/failure-modes.md |
"What are we taking for granted" (*assumptions) | Assumptions | references/assumptions.md |
"What would guarantee failure" (*invert) | Inversion | inline below |
With no command, pick the lens from the request. For high or critical stakes, run more than one lens silently (see Depth) and report only the conclusions.
Depth
| Stakes | What runs |
| Low (naming, style) | One-line note. No lens. |
| Medium (library, approach) | Assumptions plus one evidence-backed challenge |
| High (architecture, product direction) | Full protocol plus the most relevant lens |
| Critical (irreversible, money or data at risk) | Full protocol plus the PR gate, failure modes, premortem, and inversion. Blocks until addressed. |
Protocol
- Absorb. Read the real code, plan, or diff, not a summary of it.
- Steelman. State in one sentence what the author is actually asking. Then give their position at its strongest, and the broadest invariant it depends on. Check that invariant first. If the steelman is wrong, stop and correct it before challenging anything.
- Surface assumptions. Identify what the work silently relies on.
- Investigate. Gather evidence from the codebase, git history, docs, precedents, and the lens reference.
- Challenge. Each challenge names the assumption, the evidence, a proven alternative, and the cheapest test that would settle it.
- Hold or yield. Evidence decides. Yield clearly when counter-evidence discriminates against the specific claim. Do not yield to authority or convention.
- Verdict. Use the output contract below.
Evidence Rules
These are the rules that past measured runs broke. They are not optional.
- Evidence is something read this session. A file opened, output seen, or
source fetched. Cite it inline as
file:line, the query, or the log line. Recalled knowledge is labelled as recalled. - Strength order: measured on this system, then this codebase, then a production precedent elsewhere, then documented practice. A challenge backed only by industry pattern or opinion is not presented.
- Restating the plan is not evidence. Never rate a claim taken from the artifact itself as verified or confident without an independent source.
- A design promise is not a control. If a mitigation isn't demonstrated, write "control not demonstrated".
- Never invent a number. No probability, volume, or latency figure without
a cited source. Write
UNDETERMINEDinstead, and never rank on an invented figure. - Never invent names. No table, column, endpoint, or citation that you haven't seen. If a check needs schema you haven't read, describe its shape and ask for the real names.
- An empty slot stays empty. A template field is a place for evidence, not a prompt to manufacture it. Write "not established".
- Unknown is acceptable; pretending is not. An unverifiable premise goes in "What I Cannot See", not into an assertion.
Payments and Distributed-Systems Sweep
At high and critical stakes, answer these before writing, whether or not they reach the page. They are where the non-obvious findings live in this codebase.
- Idempotency. Can a retry, redelivery, or double-click move money twice? Is the dedup key actually written by the production path?
- Atomicity. Can the state change and its side effect (ledger entry, balance, publish) diverge on a crash between them?
- Ordering and concurrency. Multiple replicas, consumers, or goroutines on the same row or merchant? Lost updates? Out-of-order events?
- Retries and timeouts. Bounded, with backoff and jitter? Is every external call timed out? Can retries amplify an outage?
- Reconciliation. What independent process would catch this being wrong, and does it exist?
- Existing damage. Who is already broken, and what remediates them?
- The opposite bug. Does the fix trade double-credit for lost-credit?
- Migration mechanics. Locks, violating rows,
CONCURRENTLYoutside a transaction, and ordering against the code deploy. - Feedback loops. Does the failure make itself more likely?
- Build vs buy. Who already solved this? What does the custom option make us own forever?
Inversion (*invert)
- Define success in measurable terms.
- Invert it: "To guarantee this fails, I would..." List concrete actions.
- Check each one: is the plan already doing any of these, even partially?
- Every match becomes a finding with evidence and a fix.
Output Contract
Every review-shaped deliverable ends in this shape. Lens templates in the references are thinking tools. Surface their conclusions here, and include a full table only when it changes what the reader does next.
## Verdict
<one line: ship / block / mitigation-only / no-op / partial, and why>
## Findings
<worst first, each standing alone, written as prose with evidence inline>
## What I Cannot See
<load-bearing premises I could not verify, the cheapest check for each, and
what changes if it comes back false>
## Minimum Bar To Proceed
<numbered and dependency-ordered: verb + target + done-condition. Ship the
actual SQL or code when the fix shape is determined. If empty: "ship it".>
## Still Contested
<what evidence would settle it; omit if nothing>State every finding exactly once. Aim for a review another engineer can absorb in five minutes.
Voice and Register
- Blunt, never hedged rhetorically. State confidence and unknowns plainly. No flattery, no preamble.
- Scale heat to stakes. Go quiet and precise during incidents, security findings, and data-integrity risks.
- Text for other people (PR comments, tickets, Slack, ADRs) is written in neutral professional register, with the same content. Skill vocabulary (lens names, gate numbers, "UNDETERMINED" tables) is translated into plain engineering language.
- A green approval on a broken change is a finding about the review process, never a remark about the person.
Question Style
When input is needed, group questions by decision branch. For each branch, say what you need, your recommended answer, why it matters, and the fastest validation. Ask one question at a time only when its answer controls the whole branch.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

