From forge
Stress-test a subject spec for ambiguity, gaps, contradictions, and untestable claims using dynamic agent teams. Use this when the spec has passed completeness and synthesis-review gates and needs adversarial validation before readiness promotion.
How this skill is triggered — by the user, by Claude, or both
Slash command
/forge:spec-adversarial-reviewThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Use this after `spec-synthesis-review` passes and the orchestrator's scoring
Use this after spec-synthesis-review passes and the orchestrator's scoring
gates are met. Do not use this before blocker_reasons is empty and
completeness_score >= 80 and evidence_confidence_score >= 80.
Find every remaining gap that could force an engineer to make a judgment call the spec should have made for them. The full adversarial attack surface: ambiguity, missing failure modes, contradictions between sections, unstated dependencies, scalability gaps, security blind spots, untestable claims.
The orchestrator creates agent teams via TeamCreate before delegating to this
skill. The team persists across all rounds for context continuity.
One per substantive spec area. Allocate dynamically by reading the completeness matrix. A simple spec gets 3-4 agents, a complex one 8-10.
Candidate roles (allocate only those with substantive spec content):
Always allocate these regardless of spec size:
Every round MUST spawn the full agent team — all section agents and all cross-cutting agents. Do not spawn a subset, even if earlier findings were narrow. The point of subsequent rounds is to verify fixes did not introduce new issues elsewhere and to catch things the previous round missed.
Each round:
UBIQUITOUS-LANGUAGE.md, and AGENTS.md
(project root, if they exist) independentlyHitting the cap (5 rounds without convergence) is NOT an acceptable exit. It triggers a decomposition signal:
adversarial_status = decomposition_required as structured input to
the orchestratordecomposition-proposal.md identifying natural seams, tangled concerns,
and 2-3 suggested sub-specs with boundariessub-spec-brief-<name>.md per suggested sub-spec containing:
spec-intake without losing
informationWhen escalating back to earlier pipeline stages:
adversarial-escalation.json listing: finding IDs, affected sections,
blocker reason if reopenedspec-loop so the re-entry round is targeted
to the specific findings, not a generic passEach finding must include:
finding_id — stable identifierround — which adversarial roundagent_role — which agent filed itseverity — critical, high, or resolvablespec_section — which section of the subject specdescription — what the problem isevidence — what the agent observed (spec text, codebase evidence, or both)resolution — how it was resolved (user answer, codebase research, or
pending)resolution_source — user, codebase, or autoEmit as structured input to the orchestrator (do not write these directly):
adversarial-review-log.md — all findings across all rounds with resolutions
and provenanceadversarial-round-N.json — structured findings per roundspecs/<subject>.mdmanifest.json:
adversarial_rounds_completedadversarial_status (converged | decomposition_required)adversarial_findings_totaladversarial_findings_resolved_by_researchadversarial_findings_resolved_by_userOn decomposition:
decomposition-proposal.mdsub-spec-brief-<name>.md (one per suggested sub-spec)adversarial-escalation.json (on back-transition)adversarial_status has exactly two values: converged or
decomposition_required. No middle ground.npx claudepluginhub mwarger/forge --plugin forgeAdversarially reviews specs before building, citing evidence to refute plans and produce go/no-go gates. Triggers on "review the spec", "red-team this", or "/ck:review".
Reviews spec.md files for completeness, clarity, implementability, testability, and structure. Identifies ambiguities, gaps, and missing sections before implementation.
Hunts ambiguous, under-specified points in a spec.md and resolves or defers each one so two engineers can't build different things from the same spec.