agentleFS
CassioRoosCassioRoos/godfly-skills/skills/adversarial-review/SKILL.md

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

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.
  • fabioespindulaSkill

    rethink

    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

  • MicrosoftSkill

    root-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

  • anasahmed07Skill

    better-auth-best-practices

    Skill for integrating Better Auth - the comprehensive TypeScript authentication framework.

    Also in 4 projects that use this

  • DockerSkill

    fix-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

  • MicrosoftSkill

    pull-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

  • juriwiensSkill

    codex-review

    Run code review via Codex CLI

    Also in 3 projects that use this

  • +2 more from microsoft

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
  1. Distinctive:

    Absorb: Read the real code, plan, or diff, not a summary of it.

    line 55
  2. Distinctive:

    Verdict: Use the output contract below.

    line 68
  3. Distinctive:

    Restating the plan is not evidence: Never rate a claim taken from the artifact itself as verified or confident without an independent …

    line 80
  4. Distinctive:

    A design promise is not a control: If a mitigation isn't demonstrated, write "control not demonstrated".

    line 82
  5. Very specific:

    Never invent a number: No probability, volume, or latency figure without a cited source.

    line 84
  6. Distinctive:

    Never invent names: No table, column, endpoint, or citation that you haven't seen.

    line 87
  7. Distinctive:

    Check each one: is the plan already doing any of these, even partially?

    line 122
  8. Distinctive:

    Every match becomes a finding with evidence and a fix.

    line 123
  9. Distinctive:

    Every review-shaped deliverable ends in this shape.

    line 127
  10. Distinctive:

    No flattery, no preamble.

    line 156
  11. Distinctive:

    When input is needed, group questions by decision branch.

    line 168

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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 / commandLensRead
PR, branch, incident fix, payment or data-integrity change (*review)Review + PR gatereferences/pr-incident-gate.md (non-skippable for PRs and incident fixes)
Launch readiness, attack paths, "what defends this" (*redblue)Red team / blue teamreferences/red-blue.md
Before starting risky work, "it failed, why?" (*premortem)Premortemreferences/premortem.md
A decision is about to be made, argue the other side (*devil)Devil's advocatereferences/devils-advocate.md
Choosing between approaches, "what else could we do" (*alternatives)Competing alternativesreferences/alternatives.md
Reliability, "how does this break", SPOFs (*fail)Failure modesreferences/failure-modes.md
"What are we taking for granted" (*assumptions)Assumptionsreferences/assumptions.md
"What would guarantee failure" (*invert)Inversioninline 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

StakesWhat 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

  1. Absorb. Read the real code, plan, or diff, not a summary of it.
  2. 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.
  3. Surface assumptions. Identify what the work silently relies on.
  4. Investigate. Gather evidence from the codebase, git history, docs, precedents, and the lens reference.
  5. Challenge. Each challenge names the assumption, the evidence, a proven alternative, and the cheapest test that would settle it.
  6. Hold or yield. Evidence decides. Yield clearly when counter-evidence discriminates against the specific claim. Do not yield to authority or convention.
  7. 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 UNDETERMINED instead, 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, CONCURRENTLY outside 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)

  1. Define success in measurable terms.
  2. Invert it: "To guarantee this fails, I would..." List concrete actions.
  3. Check each one: is the plan already doing any of these, even partially?
  4. 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.