What this skill does
Reviews existing PDRs for quality gaps, asks targeted clarification questions, and promotes approved PDRs to Accepted status. This is the quality gate before PRD generation.
Input: Individual PDR-*.md files in .adlc/drafts/pdr/ (status Proposed or Discovered)
Output: Updated PDR-*.md files (status Accepted where approved), regenerated pdr.md index
When to use
- After
/product-specifyor/product-initto refine initial PDRs - Before
/product-implementto approve PDRs (required — implement skips non-Accepted) - Periodic PDR review before milestones
- Resolving inconsistency flags from cross-feature-area analysis
When NOT to use
- No PDRs exist (use
/product-specifyor/product-initfirst)
Execution Steps
Phase 1: Load PDRs
- Run setup script:
sh: scripts/bash/setup-product-clarify.sh [--json]
ps: scripts/powershell/setup-product-clarify.ps1
- Read all PDR files from
{REPO_ROOT}/.adlc/drafts/pdr/PDR-*.md - Read constitution from
{REPO_ROOT}/docs/adlc/memory/constitution.md, falling back to legacy{REPO_ROOT}/.adlc/memory/constitution.md(ADR-401 dual-read), if either exists - Build inventory:
| PDR | Title | Status | Category |
|-----|-------|--------|----------|
| PDR-001 | Target Market | Proposed | Problem |
| PDR-002 | Primary Persona | Proposed | Persona |
Step 0: Detect Lightweight Draft Format
Check if the draft being reviewed uses the lightweight draft template (indicated
by presence of type, evidence, source, revisit-when fields in frontmatter
and ## Rejected Alternatives / ## Reason body sections without the full
formal template sections).
If lightweight:
- Read the draft's captured fields (Context, Decision, Rejected Alternatives, Reason)
- Transform to full formal template:
- ADR: full MADR format with Decision Drivers, Considered Options, Pros/Cons, Constitution Alignment, Related ADRs
- PDR: full PDR format with Market Forces, Consequences, Alternatives Considered, Links
- ChDR: full ChDR format with Issue Links, Commits, Consequences, Evidence
- CDR: full CDR format with Context Type, Target Module, Descriptor, Evidence
- EVAL: full eval format with Error Analysis, Pass/Fail Examples, Implementation Notes
- Enrich from session context (add details the lightweight draft may have omitted)
- Present the enriched draft for review
If already full format, proceed with normal review.
Phase 2: PDR Quality Analysis
Check each PDR against standards:
| Dimension | Check | Severity if Missing |
|---|---|---|
| Context | Problem clearly stated | MEDIUM |
| Decision | Actionable, testable | HIGH |
| Consequences | Positive AND negative | HIGH |
| Success Metrics | Defined with targets | HIGH |
| Alternatives | At least 2 with neutral trade-offs | HIGH |
| Constitution | Aligns with vision | CRITICAL |
Quality checklist:
- Clear context explaining the problem/opportunity
- Explicit, actionable decision statement
- Positive AND negative consequences documented
- At least 2 alternatives with neutral trade-offs (not "rejected because")
- Success metrics defined
- Risks identified with mitigation strategies
- Valid status value
- No conflicts with other PDRs
- Alignment with constitution/vision principles
Phase 3: Cross-PDR Consistency
- Conflicting Decisions: Same concept, different decisions across PDRs
- Missing Dependencies: PDRs that should reference each other
- Terminology Drift: Same concept named differently
- Priority Conflicts: One PDR says B2B, another assumes B2C
Phase 4: Gap Identification
Generate gap report:
## PDR Clarification Report
| PDR | Title | Gap Type | Severity |
|-----|-------|----------|----------|
| PDR-001 | [Title] | Missing alternatives | HIGH |
| PDR-002 | [Title] | Incomplete consequences | MEDIUM |
Severity:
- CRITICAL: Constitution violations, missing decision statement, no success metrics
- HIGH: No alternatives, missing consequences
- MEDIUM: Incomplete risks, unclear context
- LOW: Minor phrasing
Phase 5: Interactive Refinement
For each gap, present one clarification at a time:
## Clarification [N]: PDR-XXX — [Gap Type]
**Current State**:
[Quote current PDR content]
**Gap Identified**:
[Explain what's missing]
**Question**:
[Specific question]
**Suggested Options**:
| Option | Description |
|--------|-------------|
| A | [Option A] |
| B | [Option B] |
| C | [Custom response] |
Rules:
- Present one clarification at a time
- Prioritize by severity — CRITICAL/HIGH first
- Limit to 5 clarifications per session
- Allow user to skip non-critical clarifications
- Summarize changes after each answer
Phase 6: Constitution Violations (if any)
For Duplicates:
## Constitution Duplication Detected
**PDR**: PDR-XXX — [Title]
**Constitution Principle**: §[Section] — [Principle]
**Options**:
| Option | Action |
|--------|--------|
| A | Remove PDR |
| B | Convert to Reference |
| C | Add Context |
| D | Extend |
For Violations (⭐ RECOMMENDED: Amend Constitution):
## Constitution Violation Detected ⭐
**⭐ RECOMMENDED: A. Amend Constitution**
Update constitution §[Section] to accommodate this decision.
**Alternatives**:
B. Override in PDR — Document justification
C. Revise PDR — Change decision to comply
D. Remove PDR — Delete and follow constitution
Phase 7: Update PDR Files
- Apply clarifications per-file
- Update status where applicable
- Update "Last Updated" timestamps
- Regenerate
pdr/pdr.mdindex — callgenerate_pdr_index draftsfrompdr-lib.sh(orGenerate-PdrIndex draftsfrompdr-lib.ps1). This uses a frontmatter-primary + heading-fallback parser that handles both H2 and H3 metadata, preventing the blank-row bug.
Phase 8: PDR Approval ⭐
Critical: /product-implement only processes PDRs with Accepted status.
## PDR Approval ⭐
**Total PDRs**: [N]
**Status Distribution**:
- Accepted: [N]
- Proposed: [N]
- Discovered: [N]
**Options**:
| Option | Action |
|--------|--------|
| A | Accept All — Change Proposed/Discovered → Accepted |
| B | Review Specific — Select individual PDRs |
| C | Defer — Keep current status |
Bulk approval (Option A):
## Confirm Bulk Approval
Change [N] PDRs to Accepted?
| PDR | Current | New |
|-----|---------|-----|
| PDR-001 | Proposed | Accepted |
| PDR-002 | Discovered | Accepted |
Post-approval:
## PDRs Approved
**Ready for Implementation**:
- Accepted PDRs: [N]
- Pending: [N]
Run `/product-implement` to generate PRD.md.
Key Rules
Non-Destructive Refinement
- Never delete existing PDRs without explicit user approval
- Preserve original intent when updating wording
- Add, don't replace consequences and alternatives
- Mark changes with updated timestamps
Focused Clarification
- Ask one question at a time
- Make questions specific and answerable
- Provide suggested options when possible
- Respect user's time
Constitution Authority
- Constitution violations are always flagged
- PDRs cannot override MUST principles without justification
- Suggest constitution updates if conflict is systemic
Configuration
PDR_DRAFTS_DIR—{REPO_ROOT}/.adlc/drafts/pdrPDR_INDEX—{REPO_ROOT}/.adlc/drafts/pdr/pdr.mdCONSTITUTION—{REPO_ROOT}/docs/adlc/memory/constitution.md(legacy.adlc/memory/constitution.mdfallback)
12-Factor Alignment
- Factor III (Mission Definition): Ensures product mission is well-defined before execution
- Factor VII (Quality Gates): Applies human judgment before automated generation
Common Rationalizations
| Rationalization | Reality |
|---|---|
| "The PDRs look fine — let's skip clarify." | Implement will skip non-Accepted PDRs, silently dropping decisions from the PRD. |
| "I'll just accept all at once." | Bulk accept without review risks embedding bad decisions into the PRD. |
| "A warning on constitution is basically okay." | Constitution violations are CRITICAL because they undermine product coherence. |
Red Flags
- Skipping the approval step — without Accepted status, implement ignores the PDR.
- Accepting without reading — defeats the purpose of the quality gate.
- Not flagging cross-PDR conflicts — inconsistent PDRs produce an incoherent PRD.
Verification
- All PDR files read and inventoried
- Quality checklist applied to each PDR
- Cross-PDR consistency verified
- Constitution alignment checked
- Gaps identified and prioritized
- Clarifications applied per-file
-
pdr.mdindex regenerated - Approval phase completed (Accept/Review/Defer)
- Accepted PDRs have status "Accepted" in their files
- No duplicate or missing PDR IDs