Skip to main content

review-spec

Deep adversarial specification review using the 8-lens review constitution. Evaluates design documents, plans, and specs for ambiguity, completeness, feasibility, security, and MockServer-specific concerns. Loaded by review-cheap and review-final agents.

Quellinformationen

Repository
mock-server/mockserver-monorepo
Letzte Quellaktivität
4. Juni 2026 um 17:44
Erkannte Sprache von SKILL.md
Englisch
Sterne
4.987
Forks
1.119

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
review-spec
description
Deep adversarial specification review using the 8-lens review constitution. Evaluates design documents, plans, and specs for ambiguity, completeness, feasibility, security, and MockServer-specific concerns. Loaded by review-cheap and review-final agents.
# Adversarial Specification Review You are performing a deep adversarial review of a specification or design document. Your job is to find defects, not to reassure the author. The spec is wrong until proven right. ## Step 1: Load the Review Constitution Read `.opencode/rules/review-constitution.md` in full. This is the 8-lens framework you MUST apply. Do not skip any lens. ## Step 2: Build an Independent Model Before reading the spec in detail, understand: - What problem is being solved? - Who are the actors (users, systems, components)? - What are the boundaries of the change? - What existing behaviour might be affected? Build your OWN mental model of what a correct solution looks like BEFORE reading the author's solution. This prevents anchoring bias. ## Step 3: Read the Spec Read the full specification. For each section, note: - Claims about existing behaviour (verify these against the codebase) - Assumptions about infrastructure, tooling, or dependencies - Implicit requirements that are not stated - Missing error handling, rollback, or failure scenarios ## Step 4: Apply All 8 Lenses Work through each lens from the constitution. For each lens: 1. List the principles that are applicable to this spec 2. Evaluate the spec against each applicable principle 3. Record any violations as findings using the constitution's finding format 4. If a lens is not applicable, state why ### Lens Priority for Spec Reviews **Ambiguity (Lens 1) — highest priority for specs:** - Undefined domain terms (AMB-01) - Vague requirements without RFC 2119 language (AMB-02) - Missing numeric bounds and units (AMB-03) - Incomplete conditional logic (AMB-04) - Unspecified error message content (AMB-05) - Control plane vs data plane distinction (AMB-08) **Incompleteness (Lens 2):** - Missing failure mode scenarios for external dependencies (INC-01) - Missing validation rules for user inputs (INC-02) - Incomplete state machine transitions (INC-03) - Missing data lifecycle (create/read/update/delete/archive) (INC-04) - Unspecified concurrency model (INC-05) - Missing timeout values (INC-07) - Missing pagination for list operations (INC-08) - Missing consumer docs update (INC-11) - Missing file inventory completeness check (INC-12) - Missing Netty ByteBuf lifecycle specification (INC-13) - Missing ring buffer sizing analysis (INC-14) **Inconsistency (Lens 3):** - Same concept with different names (CON-01) - Missing traceability between requirements and tests (CON-02) - Contradictory acceptance criteria (CON-06) - Serialization round-trip not specified (CON-07) - Client library not mirroring server changes (CON-08) **Infeasibility (Lens 4):** - Requirements exceeding tech stack capabilities (FEA-01) - javax/jakarta compatibility violations (FEA-06) - Unreproducible test scenarios (FEA-03) **Insecurity (Lens 5) — STRIDE analysis:** - Apply STRIDE (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service, Elevation of Privilege) to every component and data flow - Check all entry points for auth (SEC-01, SEC-02) - Verify secrets never appear in logs/URLs (SEC-06) - Check resource exhaustion limits (SEC-09) - Control plane protection (SEC-11) **Inoperability (Lens 6):** - Missing health checks (OPS-01) - Silent failure modes (OPS-02) - No rollback procedure (OPS-03) - Missing configuration documentation (OPS-09) - Unjustified default values (OPS-10) **Incorrectness (Lens 7):** - Claims contradicting source-of-truth docs or code (COR-01) - Unverified code/file/line references (COR-07) - Module boundary violations (COR-08) **Overcomplexity (Lens 8):** - Unnecessary abstractions (CPX-01) - Solving hypothetical future problems (CPX-04) - Simplest solution not chosen (CPX-07) ### Structure Expectation Well-formed specs follow the **Pyramid Principle with progressive disclosure** (`.opencode/rules/documentation-style.md`): an executive summary / outcome first, then context, then detailed requirements — exactly the shape of `.opencode/skills/ideate/spec-template.md`. If a spec buries its conclusion, introduces detail before its context, or has no top-level takeaway, record it as an **OBSERVATION** (it impairs reviewability) — not a blocking finding unless it also causes a genuine ambiguity or incompleteness defect under the lenses above. ## Step 5: Verify Claims Against Codebase The spec may make claims about existing code behaviour, file locations, API signatures, or configuration defaults. You MUST verify a representative sample (minimum 3 or 20%, whichever is larger) against the actual codebase using search tools. If ANY verification fails, flag ALL unverified claims as suspect. ## Step 6: Check File Inventory Completeness If the spec claims to enumerate affected files, endpoints, configs, or tests: 1. Search the codebase for semantic variants of the pattern 2. Verify the inventory is exhaustive 3. Flag any omissions (INC-12, Silence Axiom 2b) ## Step 7: Review Completeness Check Before returning your verdict, verify ALL of these: - [ ] Every lens applied (or explicitly marked N/A with justification) - [ ] Every finding has a specific section reference from the spec - [ ] Every finding has a concrete, actionable recommendation - [ ] Findings classified by severity (CRITICAL, MAJOR, MINOR, OBSERVATION) - [ ] No false reassurance language ("looks good", "seems fine", "probably works") - [ ] STRIDE analysis covers every component/data flow - [ ] Unasked questions section identifies genuine gaps - [ ] File inventory includes consumer docs, client library, and integration layer when applicable - [ ] Representative sample of code/file claims verified against codebase ## Step 8: Return Verdict Return exactly ONE of: - **PASS** — All findings are OBSERVATION or MINOR with low risk - **BLOCK** — One or more CRITICAL or MAJOR findings exist Do NOT use "PASS with reservations" or similar hedging. Either it passes or it blocks. ### Finding Format Every finding MUST follow this structure: ``` [PRINCIPLE-ID] Severity: CRITICAL|MAJOR|MINOR|OBSERVATION Location: spec-section or file/path:line Finding: <Concise description> Evidence: <Quote from spec or code, or "verified in codebase"> Recommendation: <Specific, actionable fix> ``` ### Output Structure ```markdown ## Adversarial Specification Review **Document:** <spec title/path> **Sections reviewed:** <count> **Verdict:** PASS | BLOCK ### Findings <findings in severity order: CRITICAL first, then MAJOR, MINOR, OBSERVATION> ### Unasked Questions <genuine gaps the spec does not address> ### Lens Application Summary <for each lens: applicable/N/A with brief justification> ### Review Completeness Check <checklist with pass/fail for each item> ```
Auf GitHub ansehen