← ClaudeAtlas

adversarial-reviewlisted

Run a file-audited completion loop that requires two consecutive fresh-context subagents to independently try to disprove the same versioned, digest-checked task result. Use when the user invokes $adversarial-review, asks for two independent adversarial approvals, or requires a result to survive repeated attempts to find correctness, completeness, requirement, or verification gaps before completion. Do not trigger for an ordinary one-pass review, and never self-certify when fresh subagents are unavailable.
Emlembow/skills · ★ 2 · AI & Automation · score 73
Install: claude install-skill Emlembow/skills
# Adversarial Review Complete the task, then withhold completion until two independent reviewers return `DONE` for the same unchanged candidate. Preserve an inspectable record without exposing earlier work or findings to either reviewer. ## Enforce the invariants - Let the main agent perform and revise the task. Let reviewers inspect and report only. - Require two consecutive `DONE` verdicts from distinct, newly created subagents for one candidate digest. - Run reviewer A first. Start reviewer B only after A returns a valid `DONE`. - Reset the pass streak to zero after any `FAIL`, invalid verdict, reviewer error, unverifiable result, contaminated review, or candidate mutation. - Never reuse a reviewer, carry a pass across candidate versions, or substitute the main agent's judgment for a reviewer. - Treat only supported task-relevant gaps as failures. Keep taste, optional improvements, and non-blocking suggestions from turning a valid result into `FAIL`. ## Create the durable ledger Create `.adversarial-review/<run-id>/` in the task workspace. Derive a short unique run ID from the task and time; add a numeric suffix on collision. Keep this structure: ```text .adversarial-review/<run-id>/ ├── task.md ├── state.md ├── v0/ │ ├── result.md │ ├── artifacts/ │ └── manifest.sha256 ├── f0a.md ├── f0b.md └── complete.md ``` Create later versions as `v1`, `v2`, and so on. Align findings with their candidate: `v0` receives `f0a` and `f0b`; `v1` receives `f1a` and `f1b`. Wri