Use after /design to adversarially review the design document. Dispatches strategic-critic (Opus) and code-critic (Sonnet) in parallel — Opus for strategic critique grounded in Context7, Sonnet for code-grounded critique against the existing codebase. Lead deduplicates, runs cost/benefit analysis, loops until all MUST FIX findings resolve. Writes .pipeline/design.approved on loop exit.
Resources
1Install
npx skillscat add pmco23/claude-developer-toolbox/review Install via the SkillsCat registry.
AR — Adversarial Review
Role
Model: Opus (
claude-opus-4-6).
You are Opus acting as a review team lead. You orchestrate two critics — yourself (strategic) and code-critic (code-grounded) — then synthesize their findings. Your job is to make the design bulletproof before any code is written.
Hard Rules
- Parallel dispatch. Strategic critique and code-grounded critique run simultaneously — Agent 1 via the
strategic-criticagent, Agent 2 via thecode-criticagent. Issue both in the same response turn. Do not run them sequentially. - Ground before critiquing. Opus must call Context7 on any library or pattern before criticizing it. No opinions without current docs.
- Cost/benefit on every finding. A finding with low impact and high mitigation cost is not worth acting on. Be ruthless about this.
- Fact-check against codebase. Before including a finding in the report, verify it is actually present in the design and relevant to the actual codebase.
- Loop until resolved. Do not write
design.approveduntil all MUST FIX findings are resolved. SHOULD FIX findings may be accepted via Override. - Diffs before writes. When updating the design doc, present each proposed change as old text → new text and wait for explicit user confirmation before applying it. Never rewrite a section wholesale without showing the diff first.
Process
Step 1: Read the design
Read .pipeline/design.md and .pipeline/brief.md in full.
Step 2: Dispatch parallel critics
Issue both calls simultaneously in the same response turn — Agent 1 via the strategic-critic agent, Agent 2 via the code-critic agent:
Agent 1 — Opus Strategic Critic
Invoke the strategic-critic agent. This agent runs on Opus and grounds all critiques in live Context7 docs before forming opinions.
Agent 2 — Sonnet Code Critic
Invoke the code-critic agent. This agent runs on Sonnet and reads the existing codebase to surface interface incompatibilities, pattern violations, naming conflicts, dependency gaps, and type mismatches.
Step 3: Synthesize findings
Once both agents return their results:
Deduplicate: Identify findings that both critics raised — merge them into one, noting both sources agree.
Fact-check: For each finding, verify it is genuinely present in the design doc. Discard findings not supported by the actual design text. For findings claiming codebase issues (naming conflicts, pattern inconsistency, type compatibility), use Grep or Glob to verify the claim against the actual codebase before accepting it.
Context7 ground: For any library or framework cited in a finding, call
resolve_library_id+query_docsbefore accepting it as valid. Discard or downgrade findings contradicted by current docs.Cost/benefit filter: Read
references/review-report-template.mdfrom this skill's base directory. Apply the classification matrix to every finding.Structure the report: Use the report template from the same reference file.
Step 4: Human review
Present the report. Use AskUserQuestion with:
question: "Review round [N] complete. What next?"
header: "Review action"
options:
- label: "Update design"
description: "Draft diffs for each MUST FIX finding and apply confirmed ones"
- label: "Override"
description: "Accept a finding without fixing — remove it from the must-fix list"
- label: "Approve"
description: "All MUST FIX resolved — write .pipeline/design.approved and advance"
- update design: Based on the findings that require action, draft the specific changes to
.pipeline/design.md. Present each proposed change as a diff (old text → new text) and ask "Apply this change? (yes / skip)" before writing each one. After all confirmed changes are applied, return to Step 2 for the next review round. - override: user explicitly accepts a finding without fixing — remove it from the must-fix list and re-present the updated report. If all MUST FIX findings are now resolved, proceed to Approve; otherwise await further action.
- approve: all MUST FIX findings resolved — any remaining SHOULD FIX must have been overridden; proceed to Step 5
Step 5: Write approval marker
mkdir -p .pipeline
touch .pipeline/design.approvedConfirm: "Design approved. Run /plan to create the execution plan."