woos-product-prd-review-gate
Independent product-side PRD review gate. Runs the full PRD checklist in fresh context and returns PASS or REQUEST_CHANGES.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Independent product-side PRD review gate. Runs the full PRD checklist in fresh context and returns PASS or REQUEST_CHANGES.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Produce the high-level architecture overview used by downstream product design and engineering.
Independent high-level architecture review gate for discovery.
Capture and structure raw ideas through guided interview or quick note. Produces a structured idea document ready for research or PRD pass. Focuses purely on product intent — no technical decisions.
Entry-point product workflow from raw idea to validated product design artifacts. Stops at reviewed PRD readiness and does not include engineering implementation.
Write the per-feature PRD from the ranked requirements contract using the mandatory PRD template.
Dedicated analyze gate for PRD and UI brief consistency. Runs script extraction first, then semantic review with evidence-backed findings.
| name | woos-product-prd-review-gate |
| description | Independent product-side PRD review gate. Runs the full PRD checklist in fresh context and returns PASS or REQUEST_CHANGES. |
| version | 1.0.0 |
| author | Hermes Profile |
| license | MIT |
| metadata | {"hermes":{"tags":["product","prd","review","gate","validator"],"related_skills":["woos-product-design-flow"]}} |
PASS, REQUEST_CHANGES, BLOCKED, NOT_RUNcritical, high, medium, low, warning[ASSUMPTION: ...], [NEEDS CLARIFICATION: ...], [NEEDS INPUT: ...]P0 … P11, P2a, Phase A, Phase Binternal-tool, single-operator, consumer-product, multi-stakeholder, CLIstrong, adequate, thin, broken## Background, ## Functional Requirements, ## Assumptions Index) — translations break downstream structural checks**Consequences (testable):**, **Out of Scope:**, **User value:**, Given … When … Then …)Run Step 4 of woos-product-design-flow as an isolated review skill so the reviewer cannot coast on the parent orchestrator's momentum.
This skill exists to enforce:
woos-product-design-flowBLOCKEDBefore reviewing, load and report:
references/persona-prd-validator.mdreferences/template-prd-validation-checklist.mddocs/prd/<version>/<feature-id>.mddocs/prd/<version>/<feature-id>-requirements.mddocs/product/<project>-architecture.mdIf any required file is not loaded, return BLOCKED.
When the orchestrator provides upstream interface summaries, also load:
docs/prd/<version>/<upstream-feature-id>-interface.md for each declared upstream dependencyWhen upstream interface summaries are present, add P8 to the content quality checklist:
| P8 | Upstream interface alignment | Verify all shared concepts (enums, models, events, endpoints, terms) match upstream interface definitions exactly. Flag any divergence. |
P8 failures count toward REQUEST_CHANGES.
docs/reviews/<version>/<feature-id>-prd-review-rN.mdThe reviewer MUST use references/template-prd-validation-checklist.md as a real judgment rubric, not as background reading only. In particular:
critical even though it's a one-paragraph fix. Glossary drift may be low even though it appears in many places.BLOCKED.Read the Shape: declaration at the top of the PRD's ## Background (e.g. Shape: internal-tool / single-operator). If absent, treat shape as unspecified and require the author to declare it before passing Phase A.
Always required:
## Background (with Shape declaration)## Functional Requirements## Non-Functional Requirements## Edge Cases## Non-Goals## Success MetricsConditionally required:
## User Personas and ## User Flows — required when shape is consumer-product, multi-stakeholder, or any feature with user-facing UI / multiple distinct user types. Optional (and preferably omitted) when shape is internal-tool, single-operator, or CLI.## Assumptions Index — required whenever any [ASSUMPTION: ...] tag appears anywhere in the PRD.If a required section is missing, the result is immediately REQUEST_CHANGES. If a conditionally required section is present for the wrong shape and contains only placeholder filler ("the user is the operator"), flag it under P5 as persona theater.
| # | Criterion | Fix Hint |
|---|---|---|
| P0 | Problem framing clarity (rated strong / adequate / thin / broken) | Separate actual problem, current example, root cause/mismatch, workaround, and user impact. The PRD MUST NOT pass if P0 is thin or broken. See P0 Calibration Anchors below for tier definitions. |
| P1 | Value-traced | Add User value: lines linking each requirement to user outcome |
| P2 | AC + testable Consequences | Every FR/US MUST carry at least one atomic, observable Consequences (testable) bullet with a concrete threshold or outcome. Rewrite "graceful handling", "reasonable performance", "user-friendly" as concrete bounds. |
| P2a | FR atomicity (one relationship per FR) | Each FR MUST express one capability or one relationship. Flag FRs that combine routing + observability + fallback + scope-boundary in one statement. Quote the FR text and propose the split. |
| P3 | Non-goals effective | Make non-goals concrete enough to reject a real request |
| P4 | Edge cases covered | Add empty/error/timeout/concurrent-access scenarios |
| P5 | Real user behavior and shape fit | Replace developer-centric wording with user-observable behavior. Reject persona/flow theater when shape is internal-tool. Reject under-specified personas/flows when shape is consumer-product. |
| P6 | No internal contradictions | Resolve conflicting statements or move scope to non-goals |
| P7 | Architecture reference check | Compare routes/constants/state names against architecture and annotate divergence; flag deployment conventions accidentally promoted into product contract without architectural basis |
| P9 | Assumptions surfaced and indexed | Two checks: (a) Roundtrip — every inline [ASSUMPTION] tag is in the index; every index entry can be located inline. (b) Positive evidence — reviewer MUST proactively identify at least two domain-specific inferences in the PRD (specific paths, enum values, default behaviors, precedence rules, timeout values, threshold numbers not stated in the requirements doc or roadmap quote) and verify they are either tagged or genuinely traced to explicit input. A non-trivial PRD with zero [ASSUMPTION] tags is a red flag and MUST be marked critical unless the reviewer can affirmatively list the inferences and show their source quotes. |
| P10 | Strategic coherence | Does the PRD have a thesis? Do FRs serve a unified arc, or is it a backlog with section headers? Does at least one Success Metric validate the thesis rather than just measure activity? Is a counter-metric named for the primary metric? Flag PRDs that read as feature lists with no central bet. |
| P11 | Downstream usability (only when this PRD feeds engineering / UX) | Are domain nouns used consistently across FRs / NFRs / Success Metrics (no synonym drift)? Do FR / US IDs resolve? For terminology-heavy features, recommend (do not require) a Glossary subsection. |
To make the four-tier rating repeatable, judge by these anchors:
strong — All five components (observable problem / root cause / workaround / impact / example-vs-problem distinction) present and named, AND the "observable problem" is the general problem, not the current example. Example labels are explicit ("Teams is the example that exposed it"; "config-path X is one valid path, not the contract").adequate — All five components present, and the general-vs-example distinction is recoverable from the prose even if not labeled. Reviewer can summarize the real problem in one sentence after reading.thin — At least one component missing, OR the "observable problem" reads as the example itself ("Teams egress is broken" when the issue is general egress visibility), OR a deployment convention is asserted as product requirement without justification. Gate cannot PASS.broken — Problem framing is essentially the symptom or a feature request, with no underlying observable problem stated. Gate cannot PASS.When borderline between two tiers, drop one tier. A thin/adequate borderline → thin.
Architecture is a reference, not a hard constraint.
✅ = aligned📐 = intentional or explainable divergence — MUST cite an explicit product reason in the PRD (not just operator habit or current deployment state). Operator habit alone is not a valid product reason and reverts the row to ❌.❌ = true contradiction with no rationaleOnly unsupported contradictions count toward REQUEST_CHANGES.
The output MUST include:
strong | adequate | thin | broken before its finding; other rows use concrete PASS/FAIL per fix-hint.## Architecture Divergences section when needed## Upstream Interface Alignment section when P8 applies## Assumptions Roundtrip section — list (a) inline [ASSUMPTION] tags missing from the index, (b) index entries that cannot be located inline, and (c) the ≥2 inferences the reviewer proactively identified for P9 positive-evidence, each with its source quote from roadmap/requirements OR UNVERIFIED — should be tagged.## Summary with explicit verdictPASS — all required structural checks pass; P1-P7 + P9-P11 have no failures; P0 is strong or adequate; P8 has no failures when it appliesREQUEST_CHANGES — one or more structural/content failures remain, OR P0 is thin or broken, OR P9 positive-evidence found ≥1 hidden inferenceBLOCKED — review incomplete, missing inputs, checklist rows skipped, blanket-pass language detected, or REQUEST_CHANGES findings without cited evidenceBLOCKEDthin or broken), the gate MUST NOT pass even if the rest of the structure is complete[ASSUMPTION] tags, escalate to BLOCKED — the absence of inferences is itself suspect