Skip to content
cccskills
FreePublished on GitHub

adversarial-review

Adversarial critique — devil's advocate, stress-test, honest teardown ('poke holes', 'be brutal', 'was hältst du davon'); explicit request only. Routine code or design review → code-review.

The English summary is being prepared. Showing the original description.

See how to install

Files included (2)

  • SKILL.md7.7 KB
  • evals/triggers.json926 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

Adversarial Review

When to use

Use this skill when:

  • You've completed a plan, design, or proposed fix and are about to present it.
  • The change is non-trivial (affects multiple files, changes behavior, touches critical paths).
  • You're about to recommend an architecture or design decision.
  • The user submits finished work (draft, post, naming decision, design proposal) and asks for an honest critical take — "what do you actually think?", "be brutal", "was hältst du wirklich davon". The flow is the same Attack-Defend-Revise loop, but on the user's artifact rather than the agent's plan.

Do NOT use when:

  • The task is trivial (renaming, formatting, simple config change).
  • The user explicitly asked for a quick/rough draft.
  • You're exploring options, not committing to one yet.

Inbound delegation: decision-record § Weighted-matrix mode delegates a scoped attack here after the weighted sums ("attack the winner, using the losing options' strongest criteria") — treat the matrix + sensitivity block as the artifact under review.

Procedure: Adversarial review

  1. Inspect the artifact — Read the plan, diff, or draft you are about to critique; note its scope, assumptions, and the explicit asks before attacking.
  2. Attack — Run Step 1 below as the grumpy senior engineer.
  3. Defend — Run Step 2 as the balanced engineer; classify each criticism as must-fix / defer / reject.
  4. Revise — Run Step 3 to fold valid fixes back in, then report every criticism with its disposition. Deciding which trade-offs matter is the user's pass, not this step's.

Step 1: Attack (Grumpy Senior Engineer)

Assume your plan/fix is flawed. Ask yourself:

  • What's the weakest assumption?
  • Where will this break under load, at scale, or with edge cases?
  • What did I ignore or hand-wave?
  • Is this over-engineered for the actual problem?
  • Would a simpler approach work just as well?
  • What will the next developer curse me for?

Step 2: Defend (Balanced Engineer)

Counter the criticism fairly:

  • Which criticisms are valid and must be addressed now?
  • Which are theoretical and can be deferred?
  • What's the pragmatic middle ground?

Step 3: Revise

  • Fix the valid issues in your plan/fix.
  • Move deferred concerns to "Open Questions" or "Known Limitations".
  • Present the improved version to the user.

Debate internally, report completely. The user sees the improved result rather than the blow-by-blow — but every criticism raised reaches the report with its disposition (must-fix / deferred / rejected, each with one line of reason). Do not decide on the user's behalf which concerns were worth their attention.

This clause used to read "surface only the trade-offs that need the user's input", and that is the pre-filter defect: an instruction to report a subset is followed literally — the review finds the defects, then withholds the ones it judged unimportant, and the loss is invisible because the withheld set leaves no trace. It matters here more than anywhere: self_review_gate.ts loads this file as the system prompt for the package's own CI self-review, so a suppression clause here suppresses findings on every pull request.

Context-specific attack questions

Feature plans / Architecture

  • Is this the simplest solution that works?
  • What happens when requirements change (and they will)?
  • Are there hidden dependencies or coupling?
  • Does this respect existing patterns or introduce a new one unnecessarily?
  • What's the migration/rollback story?

Bug fixes

  • Is this the root cause or just a symptom?
  • Will this fix break something else?
  • Does the fix handle the edge case that caused the bug?
  • Is there a regression test that proves the fix works?
  • Are there other places with the same bug pattern?

Code changes / Refactoring

  • Would I understand this code in 6 months without context?
  • Did I check all callers and downstream effects?
  • Are the tests actually testing the right behavior?
  • Did I introduce a new pattern where an existing one would work?

Database migrations

  • Can this destroy or corrupt data?
  • Is rollback possible?
  • What happens to running queries during migration?
  • Did I check the table size (large table ALTER can lock)?

API design

  • Is this a breaking change?
  • Is it consistent with existing endpoints?
  • Are error responses clear and actionable?
  • Did I consider pagination, filtering, versioning?

Security-sensitive changes

  • Where is the attack surface I'm not seeing?
  • Am I trusting user input anywhere?
  • Are there authorization gaps?
  • Would this pass a security review?

Integration with other skills

  • feature-planning — adversarial review after Understanding Lock, before presenting the plan.
  • bug-analyzer — review the proposed fix before implementing.
  • code-review — self-review before creating a PR.
  • laravel-migration (or framework-native equivalent) — review migration for data safety.
  • api-design — review API design for consistency and breaking changes.
  • security — review security-sensitive changes for attack surface.

RDP: fresh-context verifier as the default gate (structural)

Within the Reasoning Discipline Protocol the fresh-context verifier subagent is the default final gate — but, because it is a full extra inference pass, it fires only on the structural-complexity signal: ≥ 2 of {branching/conditional logic, ≥ 3 explicit must/must-not constraints, stateful operations, irreversibility} and estimated work ≥ ~1k tokens. Token length alone never triggers it. See rdp-gate (L12).

Validate

  • Confirm each identified risk has a concrete mitigation or explicit acceptance.
  • Verify the review produced at least one actionable finding (or explicit "no issues found").
  • Check that the review did not just restate the plan — it must challenge assumptions.

Output format

  1. Improved plan/code incorporating adversarial findings
  2. Every criticism raised, each with severity and disposition (must-fix / deferred / rejected) and one line of reason. Not "top concerns" — a summary that keeps only the highlights is the pre-filter defect wearing an editor's hat.
  3. Remaining open risks (if any) with severity rating

Gotcha

  • Don't use this on trivial changes — it adds overhead without value on simple renames or config tweaks.
  • The model tends to invent risks that don't exist. Ground every concern in actual code, not hypotheticals.
  • Don't challenge the user's explicit requirements — challenge the implementation, not the goal.

Do NOT

  • Do NOT present the raw adversarial debate to the user — only the improved result.
  • Do NOT use this as an excuse to delay work — the review should take seconds, not minutes.
  • Do NOT apply this to trivial changes — it adds overhead without value.
  • Do NOT let the "grumpy engineer" kill good ideas — the balanced engineer must counter.
  • Do NOT skip Step 3 (Revise) — attacking without improving is just complaining.

References

  • Tree-of-Thoughts (ToT) — arxiv.org/abs/2305.10601 Deliberate problem-solving by exploring multiple reasoning branches. This skill adapts ToT by pitting a grumpy engineer against a balanced engineer — the branching happens between roles, not between thought-tree nodes.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use when reviewing UI for accessibility — WCAG 2.2 AA, keyboard nav, focus, ARIA, contrast, screen-reader semantics — even on 'is this a11y-OK?' or 'mach das barrierefrei'.

The English summary is being prepared. Showing the original description.

event4u-app/agent-config13Updated Oct 22, 2026

Use when defining or auditing the activation event — aha-moment selection, retention correlation, falsifiable definition. Triggers on 'what is our aha moment', 'redefine activation'.

The English summary is being prepared. Showing the original description.

event4u-app/agent-config13Updated Oct 22, 2026

Use when capturing an architectural decision — file naming, next ADR number, Status / Context / Decision / Consequences, index regen; fires even without saying 'ADR'.

The English summary is being prepared. Showing the original description.

event4u-app/agent-config13Updated Oct 22, 2026

Use when reading, creating, or updating agent documentation, module docs, roadmaps, or AGENTS.md. Understands the full .augment/, agents/, and copilot-instructions structure.

The English summary is being prepared. Showing the original description.

event4u-app/agent-config13Updated Oct 22, 2026

Use for an adversarial red-team / blue-team / auditor review of an AI agent's CONFIG + behaviour (rules, skills, MCP, hooks, permissions) — attack-chain → defensive-gap list, not a code audit.

The English summary is being prepared. Showing the original description.

event4u-app/agent-config13Updated Oct 22, 2026

Use when editing AGENTS.md (package root) or templates/AGENTS.md (consumer) — enforces Thin-Root contract: hard char ceilings, ≥40% pointer ratio, mandatory emergency-triage block.

The English summary is being prepared. Showing the original description.

event4u-app/agent-config13Updated Oct 22, 2026

See all skills by event4u-app

Report a problem with this skill