prd-quality-gatelisted
Install: claude install-skill shipshitdev/skills
<prd_quality_gate>
A well-formed PRD (or the issue body that serves as one) must contain ALL of the
following sections as markdown headings (## or ###).
Required sections:
- Executive Summary
- Problem Statement
- Goals
- Functional Requirements
- Acceptance Criteria
- Verification Plan
Acceptance Criteria must be written in EARS (Easy Approach to Requirements
Syntax) so each bullet is machine-checkable and pass/fail without judgement.
Every bullet under Acceptance Criteria must match one of:
- WHEN <trigger> THE SYSTEM SHALL <response> (event-driven)
- WHILE <state> THE SYSTEM SHALL <response> (state-driven)
- WHERE <feature> THE SYSTEM SHALL <response> (optional feature)
- IF <condition> THEN THE SYSTEM SHALL <response> (unwanted behavior)
- THE SYSTEM SHALL <invariant> (ubiquitous)
A bullet that does not match this grammar (case-insensitive regex
`^\s*(\d+\.\s*)?(WHEN|WHILE|WHERE|IF|THE SYSTEM)\b.*\bSHALL\b`) is free-form
prose, not a verifiable criterion.
When the quality gate is ENABLED (blocking):
- Missing any required section → fail immediately with an actionable message
listing the missing sections.
- Any Acceptance Criteria bullet that is not EARS-shaped → fail, quoting each
offending bullet and the EARS pattern it should take.
- The author must update the PRD and re-run the gate before planning proceeds.
When the quality gate is DISABLED (default, warning-only):
- Missing sections → log a warning.
- Non-EARS