From f7fd90297ee696951119f19a83d34fc3d3e91fb7 Mon Sep 17 00:00:00 2001 From: Tolga Karatas Date: Mon, 16 Feb 2026 01:11:59 +0300 Subject: [PATCH] feat(prd-validation): add ISO 29148 validation steps for PRD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../step-v-06-traceability-validation.md | 2 +- .../step-v-06b-per-requirement-quality.md | 143 ++++++++++++++++++ .../step-v-06c-requirement-attributes.md | 106 +++++++++++++ .../step-v-12-completeness-validation.md | 2 +- .../step-v-12b-verification-coverage.md | 91 +++++++++++ .../steps-v/step-v-12c-interface-coverage.md | 85 +++++++++++ 6 files changed, 427 insertions(+), 2 deletions(-) create mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06b-per-requirement-quality.md create mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06c-requirement-attributes.md create mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12b-verification-coverage.md create mode 100644 src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12c-interface-coverage.md diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md index 84bf9cce9..d60161073 100644 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md +++ b/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06-traceability-validation.md @@ -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}' --- diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06b-per-requirement-quality.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06b-per-requirement-quality.md new file mode 100644 index 000000000..177c6eaa4 --- /dev/null +++ b/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06b-per-requirement-quality.md @@ -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 diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06c-requirement-attributes.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06c-requirement-attributes.md new file mode 100644 index 000000000..3f49736fc --- /dev/null +++ b/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-06c-requirement-attributes.md @@ -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 diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md index 00c477981..28ed9f6cd 100644 --- a/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md +++ b/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12-completeness-validation.md @@ -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}' diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12b-verification-coverage.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12b-verification-coverage.md new file mode 100644 index 000000000..426b24a36 --- /dev/null +++ b/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12b-verification-coverage.md @@ -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 diff --git a/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12c-interface-coverage.md b/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12c-interface-coverage.md new file mode 100644 index 000000000..c279ab43c --- /dev/null +++ b/src/bmm/workflows/2-plan-workflows/create-prd/steps-v/step-v-12c-interface-coverage.md @@ -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