feat(prd-validation): add ISO 29148 validation steps for PRD

Add 4 new validation steps to PRD validation workflow:
- step-v-06b: Per-requirement quality check against 9 ISO criteria
  (necessary, implementation-free, unambiguous, consistent, complete,
  singular, feasible, traceable, verifiable)
- step-v-06c: Requirement attributes completeness check
  (ID, priority, source, rationale, V&V method, risk)
- step-v-12b: Verification coverage validation
  (all requirements have V&V methods assigned)
- step-v-12c: Interface coverage validation
  (cross-reference integrations against interface section)

Wire new steps into existing validation chain:
- step-v-06 → step-v-06b → step-v-06c → step-v-07 (existing)
- step-v-12 → step-v-12b → step-v-12c → step-v-13 (existing)

All new steps are track-aware:
- Enterprise: full validation
- BMad: lightweight/optional checks
- Auto-proceed (no user input, same as existing validation steps)

Part of ISO 29148 compliance initiative (Wave 2).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Tolga Karatas 2026-02-16 01:11:59 +03:00
parent b75f3fbefd
commit f7fd90297e
No known key found for this signature in database
GPG Key ID: C8389C243D70C4C9
6 changed files with 427 additions and 2 deletions

View File

@ -3,7 +3,7 @@ name: 'step-v-06-traceability-validation'
description: 'Traceability Validation - Validate the traceability chain from vision → success → journeys → FRs is intact'
# File references (ONLY variables used in this step)
nextStepFile: './step-v-07-implementation-leakage-validation.md'
nextStepFile: './step-v-06b-per-requirement-quality.md'
prdFile: '{prd_file_path}'
validationReportPath: '{validation_report_path}'
---

View File

@ -0,0 +1,143 @@
---
name: 'step-v-06b-per-requirement-quality'
description: 'Per-Requirement Quality Validation - Validate each requirement against 9 ISO 29148 quality criteria'
# File references (ONLY variables used in this step)
nextStepFile: './step-v-06c-requirement-attributes.md'
prdFile: '{prd_file_path}'
validationReportPath: '{validation_report_path}'
requirementQualityChecklist: '{project-root}/_bmad/bmm/workflows/shared/templates/requirement-quality-checklist.md'
---
# Step 6b: Per-Requirement Quality Validation (Enterprise Track)
## STEP GOAL:
Validate each individual requirement against the 9 ISO 29148 quality criteria: necessary, implementation-free, unambiguous, consistent, complete, singular, feasible, traceable, verifiable.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- 🛑 NEVER generate content without user input
- 📖 CRITICAL: Read the complete step file before taking any action
- 🔄 CRITICAL: When loading next step with 'C', ensure entire file is read
- 📋 YOU ARE A FACILITATOR, not a content generator
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Role Reinforcement:
- ✅ You are a Validation Architect and Quality Assurance Specialist
- ✅ This step runs autonomously - no user input needed
- ✅ You bring ISO 29148 requirement quality expertise
### Step-Specific Rules:
- 🎯 Focus ONLY on per-requirement quality validation
- 🎯 This step is MANDATORY for Enterprise track, OPTIONAL for BMad Method track
- 🚫 FORBIDDEN to validate other aspects in this step
- 🚪 This is a validation sequence step - auto-proceeds when complete
### Track-Aware Execution:
**Check the PRD frontmatter for `track` value:**
- If `track: 'enterprise'` → Run full per-requirement quality validation
- If `track: 'bmad'` or not set → Run a lightweight sample check (spot-check 5 requirements)
- Log which track mode was used in the report
## EXECUTION PROTOCOLS:
- 🎯 Load the requirement quality checklist
- 🎯 Extract all FRs and NFRs from the PRD
- 🎯 Validate a representative sample (or all for Enterprise) against 9 criteria
- 💾 Append findings to validation report
- 📖 Display "Proceeding to next check..." and load next step
- 🚫 FORBIDDEN to pause or request user input
## CONTEXT BOUNDARIES:
- PRD document from previous validation steps is available
- Quality checklist provides the 9 criteria
- Focus on individual requirement quality, not document-level quality
## VALIDATION SEQUENCE:
### 1. Load Quality Criteria
Load the requirement quality checklist from: `{requirementQualityChecklist}`
### 2. Extract Requirements
Extract all FRs and NFRs from the PRD document:
- Count total requirements
- Group by category (FR capability areas, NFR categories)
### 3. Validate Requirements
**For Enterprise track:** Validate ALL requirements against 9 criteria
**For BMad track:** Spot-check 5 representative requirements
**For each requirement, check:**
1. **Necessary:** Does it trace to a stakeholder need?
2. **Implementation-Free:** Does it state WHAT, not HOW?
3. **Unambiguous:** Is there only one interpretation?
4. **Consistent:** Does it conflict with other requirements?
5. **Complete:** Is there sufficient detail?
6. **Singular:** Is it one requirement, not compound?
7. **Feasible:** Is it achievable within constraints?
8. **Traceable:** Does it have an ID and source?
9. **Verifiable:** Can it be tested or inspected?
### 4. Generate Findings
Create a quality report:
```markdown
### Per-Requirement Quality Validation
**Track Mode:** [Enterprise (full) / BMad (sample)]
**Requirements Analyzed:** [count] of [total]
**Quality Summary:**
| Criterion | Pass | Fail | Pass Rate |
|-----------|------|------|-----------|
| Necessary | | | |
| Implementation-Free | | | |
| Unambiguous | | | |
| Consistent | | | |
| Complete | | | |
| Singular | | | |
| Feasible | | | |
| Traceable | | | |
| Verifiable | | | |
**Issues Found:**
[List specific requirements that fail criteria with details]
**Severity:** [PASS / CONCERNS / FAIL]
```
### 5. Append to Report and Proceed
Append findings to `{validationReportPath}`.
Display: "**Per-Requirement Quality:** [PASS/CONCERNS/FAIL] - [X] requirements checked, [Y] issues found. Proceeding to requirement attributes check..."
Read fully and follow: `{nextStepFile}`
## SUCCESS METRICS:
✅ Quality checklist loaded and applied
✅ Requirements extracted and counted
✅ Representative or full sample validated against 9 criteria
✅ Quality summary table generated
✅ Specific issues identified with requirement references
✅ Findings appended to validation report
✅ Auto-proceeded to next step
## FAILURE MODES:
❌ Not loading the quality checklist
❌ Validating document-level quality instead of per-requirement
❌ Not reporting specific failing requirements
❌ Skipping criteria in the check

View File

@ -0,0 +1,106 @@
---
name: 'step-v-06c-requirement-attributes'
description: 'Requirement Attributes Validation - Verify each requirement has required attributes (ID, priority, source, V&V method)'
# File references (ONLY variables used in this step)
nextStepFile: './step-v-07-implementation-leakage-validation.md'
prdFile: '{prd_file_path}'
validationReportPath: '{validation_report_path}'
---
# Step 6c: Requirement Attributes Completeness Validation (Enterprise Track)
## STEP GOAL:
Verify that each requirement has the required attributes: unique ID, priority (MoSCoW), source reference, rationale, verification method, and risk level. This is primarily an Enterprise track check.
## MANDATORY EXECUTION RULES (READ FIRST):
### Universal Rules:
- 📖 CRITICAL: Read the complete step file before taking any action
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
### Step-Specific Rules:
- 🎯 Focus ONLY on requirement attribute completeness
- 🎯 This step is MANDATORY for Enterprise track, SKIP for other tracks
- 🚪 This is a validation sequence step - auto-proceeds when complete
### Track-Aware Execution:
**Check the PRD frontmatter for `track` value:**
- If `track: 'enterprise'` → Run full attribute validation
- If `track: 'bmad'` or not set → Skip this step entirely, proceed to next step
- Log decision in report
## EXECUTION PROTOCOLS:
- 🎯 Extract all requirements and check for required attributes
- 💾 Append findings to validation report
- 📖 Display "Proceeding to next check..." and load next step
## VALIDATION SEQUENCE:
### 1. Track Check
If not Enterprise track:
- Append to report: "**Requirement Attributes:** SKIPPED (not Enterprise track)"
- Proceed to {nextStepFile}
### 2. Extract and Check Attributes (Enterprise Only)
For each FR and NFR, verify presence of:
**Required Attributes:**
- [ ] **Unique ID**: Follows consistent pattern (FR-[AREA]-###, NFR-[AREA]-###)
- [ ] **Priority**: Must / Should / Could / Won't (MoSCoW)
- [ ] **Source**: StRS reference or stakeholder name
- [ ] **Rationale**: Why this requirement exists
- [ ] **Verification Method**: Test / Analysis / Demonstration / Inspection
- [ ] **Risk**: High / Medium / Low
### 3. Generate Findings
```markdown
### Requirement Attributes Completeness
**Requirements Checked:** [count]
**Attribute Coverage:**
| Attribute | Present | Missing | Coverage % |
|-----------|---------|---------|------------|
| Unique ID | | | |
| Priority (MoSCoW) | | | |
| Source Reference | | | |
| Rationale | | | |
| Verification Method | | | |
| Risk Level | | | |
**Missing Attributes:**
[List specific requirements with missing attributes]
**Severity:** [PASS / CONCERNS / FAIL]
```
### 4. Append to Report and Proceed
Append findings to `{validationReportPath}`.
Display: "**Requirement Attributes:** [PASS/CONCERNS/FAIL] - [X]% attribute coverage. Proceeding to implementation leakage check..."
Read fully and follow: `{nextStepFile}`
## SUCCESS METRICS:
✅ Track correctly detected and appropriate action taken
✅ All requirements checked for attribute completeness
✅ Coverage percentages calculated per attribute type
✅ Missing attributes identified with specific requirements
✅ Findings appended to validation report
## FAILURE MODES:
❌ Running Enterprise validation on non-Enterprise track
❌ Not identifying specific requirements with missing attributes
❌ Not calculating coverage percentages

View File

@ -3,7 +3,7 @@ name: 'step-v-12-completeness-validation'
description: 'Completeness Check - Final comprehensive completeness check before report generation'
# File references (ONLY variables used in this step)
nextStepFile: './step-v-13-report-complete.md'
nextStepFile: './step-v-12b-verification-coverage.md'
prdFile: '{prd_file_path}'
prdFrontmatter: '{prd_frontmatter}'
validationReportPath: '{validation_report_path}'

View File

@ -0,0 +1,91 @@
---
name: 'step-v-12b-verification-coverage'
description: 'Verification Coverage Validation - Check that all requirements have assigned verification methods'
# File references (ONLY variables used in this step)
nextStepFile: './step-v-12c-interface-coverage.md'
prdFile: '{prd_file_path}'
validationReportPath: '{validation_report_path}'
---
# Step 12b: Verification Coverage Validation (Enterprise Track)
## STEP GOAL:
Validate that all requirements have assigned verification methods and that the verification approach section is complete.
## MANDATORY EXECUTION RULES (READ FIRST):
- 📖 CRITICAL: Read the complete step file before taking any action
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
- 🚪 This is a validation sequence step - auto-proceeds when complete
### Track-Aware Execution:
- If `track: 'enterprise'` → Run full verification coverage check
- If `track: 'bmad'` or not set → Check if verification section exists, basic review only
- Log decision in report
## VALIDATION SEQUENCE:
### 1. Check Verification Section Exists
Look for "## Verification Approaches" or similar section in the PRD.
**If Enterprise track:**
- Section MUST exist → FAIL if missing
- Every requirement category must have a verification method assigned
- Verification dependencies must be documented
**If BMad track:**
- Section is OPTIONAL → Note if missing but don't fail
- If present, do a basic quality check
### 2. Verify Coverage (Enterprise)
For each requirement category (FRs, NFRs, Interfaces, Constraints):
- Is a primary verification method assigned?
- Is the method appropriate for the requirement type?
- Are verification dependencies identified?
### 3. Generate Findings
```markdown
### Verification Coverage Validation
**Verification Section:** [Present / Missing]
**Coverage by Category:**
| Requirement Category | V&V Method Assigned | Appropriate | Notes |
|---------------------|-------------------|-------------|-------|
| Functional | [Yes/No] | [Yes/No] | |
| Performance NFRs | [Yes/No] | [Yes/No] | |
| Security NFRs | [Yes/No] | [Yes/No] | |
| Interface | [Yes/No] | [Yes/No] | |
| Constraints | [Yes/No] | [Yes/No] | |
**Verification Dependencies:** [Documented / Not documented]
**Severity:** [PASS / CONCERNS / FAIL]
```
### 4. Append to Report and Proceed
Append findings to `{validationReportPath}`.
Display: "**Verification Coverage:** [PASS/CONCERNS/FAIL]. Proceeding to interface coverage check..."
Read fully and follow: `{nextStepFile}`
## SUCCESS METRICS:
✅ Verification section existence checked
✅ Track-appropriate depth of validation
✅ All requirement categories checked for V&V assignment
✅ Verification method appropriateness validated
✅ Dependencies identified
## FAILURE MODES:
❌ Not checking verification section for Enterprise track
❌ Not validating method appropriateness

View File

@ -0,0 +1,85 @@
---
name: 'step-v-12c-interface-coverage'
description: 'Interface Coverage Validation - Check that external interface requirements are complete'
# File references (ONLY variables used in this step)
nextStepFile: './step-v-13-report-complete.md'
prdFile: '{prd_file_path}'
validationReportPath: '{validation_report_path}'
---
# Step 12c: Interface Coverage Validation (Enterprise Track)
## STEP GOAL:
Validate that external interface requirements are complete and cover all integration points mentioned in the PRD.
## MANDATORY EXECUTION RULES (READ FIRST):
- 📖 CRITICAL: Read the complete step file before taking any action
- ✅ YOU MUST ALWAYS SPEAK OUTPUT In your Agent communication style with the config `{communication_language}`
- 🚪 This is a validation sequence step - auto-proceeds when complete
### Track-Aware Execution:
- If `track: 'enterprise'` → Run full interface coverage check
- If `track: 'bmad'` or not set → Check if interface section exists, note for awareness
- Log decision in report
## VALIDATION SEQUENCE:
### 1. Check Interface Section Exists
Look for "## External Interface Requirements" or similar section in the PRD.
### 2. Cross-Reference Analysis (Enterprise)
Scan the entire PRD for mentions of:
- External systems, APIs, services
- User interface platforms (web, mobile, CLI)
- Hardware devices or sensors
- Communication protocols
- Third-party integrations
Compare these mentions against what's documented in the Interface Requirements section.
### 3. Generate Findings
```markdown
### Interface Coverage Validation
**Interface Section:** [Present / Missing]
**Interface Category Coverage:**
| Category | Section Present | Completeness | Notes |
|----------|---------------|-------------|-------|
| User Interfaces | [Yes/No/N/A] | [Complete/Partial/Missing] | |
| Hardware Interfaces | [Yes/No/N/A] | [Complete/Partial/Missing] | |
| Software Interfaces | [Yes/No/N/A] | [Complete/Partial/Missing] | |
| Communication Interfaces | [Yes/No/N/A] | [Complete/Partial/Missing] | |
**Cross-Reference Issues:**
[List any integrations mentioned in PRD but not documented in interface section]
**Severity:** [PASS / CONCERNS / FAIL]
```
### 4. Append to Report and Proceed
Append findings to `{validationReportPath}`.
Display: "**Interface Coverage:** [PASS/CONCERNS/FAIL]. Proceeding to final report..."
Read fully and follow: `{nextStepFile}`
## SUCCESS METRICS:
✅ Interface section existence checked
✅ Cross-reference analysis performed
✅ Missing interfaces identified
✅ Track-appropriate validation depth
## FAILURE MODES:
❌ Not cross-referencing integrations mentioned elsewhere in PRD
❌ Not checking all four interface categories