Validate that a story or feature meets its requirements
Validates stories or features meet requirements and acceptance criteria.
/plugin marketplace add eLafo/hefesto/plugin install elafo-hefesto-2@eLafo/hefesto<path> | story <path> | feature <id>po/Router command that validates stories or features meet their requirements.
Key distinction: Validation verifies the implementation meets requirements (PO concern). Testing verifies it works correctly (Dev concern).
| Input | Strategy |
|---|---|
story <path> | Story Validation |
feature <id> | Feature Validation |
<path> (auto-detect) | Detect from path pattern |
.hefesto/features/*/stories/* → Story.hefesto/features/* (no /stories/) → FeatureTrigger: po:validate story <path> or auto-detected story path
dev_documented (dev has written technical docs)Load Requirements:
user-story.md for acceptance criteriaprd.md for contextdev-documentation.md for implementation detailsValidate Each Acceptance Criterion:
Validate Scenarios:
Create Validation Report: {story_path}/po-validation.md
# PO Validation Report: {Story Title}
## Metadata
- **Story**: {story_id}
- **Validated By**: {validator}
- **Date**: {timestamp}
- **Result**: APPROVED / NEEDS_CHANGES
## Acceptance Criteria Validation
### AC-1: {Criterion Text}
- **Status**: ✅ PASS
- **Verification**: Manual check / Test review
- **Evidence**: {how verified}
### AC-2: {Criterion Text}
- **Status**: ❌ FAIL
- **Verification**: Manual check
- **Issue**: {what's wrong}
- **Recommendation**: {how to fix}
## Scenario Validation
### Scenario 1: {Name}
| Step | Expected | Actual | Status |
|------|----------|--------|--------|
| Given | ... | ✅ | PASS |
| When | ... | ✅ | PASS |
| Then | ... | ✅ | PASS |
## Issues Found
| Issue | Severity | Recommendation |
|-------|----------|----------------|
| ... | High/Med/Low | ... |
## Decision
**APPROVED** / **NEEDS_CHANGES**
{Rationale}
po_validated✅ Story Validation: APPROVED
Story: {title}
Acceptance Criteria: 5/5 passed
Scenarios: 3/3 validated
Report: {story_path}/po-validation.md
→ Next (PO): po:document story {story_path}
Trigger: po:validate feature <id> or auto-detected feature path
po_validatedfeature_tested (dev integration tests passed)Load Feature Context:
feature.jsonprd.mdValidate PRD Requirements:
Holistic Assessment:
Create Feature Validation Report: .hefesto/features/{id}/po-feature-validation.md
# PO Feature Validation: {Feature Title}
## Metadata
- **Feature ID**: {id}
- **Validated By**: {validator}
- **Date**: {timestamp}
- **Result**: APPROVED / NEEDS_CHANGES
## Requirements Validation
### Functional Requirements
#### FR-001: {Name}
- **Stories**: 001, 002
- **Status**: ✅ FULLY MET
- **Evidence**: {verification}
#### FR-002: {Name}
- **Stories**: 003
- **Status**: ⚠️ PARTIALLY MET
- **Gap**: {what's missing}
### Non-Functional Requirements
| NFR | Specification | Actual | Status |
|-----|---------------|--------|--------|
| Performance | < 500ms | 120ms avg | ✅ |
| Security | Auth required | Verified | ✅ |
## Scope Assessment
### In-Scope Verification
- [x] All PRD items implemented
### Scope Creep
- None detected / {list extras}
### Gaps
- None detected / {list gaps}
## User Experience Review
- [ ] Feature feels cohesive
- [ ] Error messages are user-friendly
- [ ] Consistent with application style
## Decision
**APPROVED** / **NEEDS_CHANGES**
{Rationale and conditions}
workflow.feature_validated → true✅ Feature Validation: APPROVED
Feature: {title}
Requirements: 8/8 met
Stories: 5/5 validated
Report: .hefesto/features/{id}/po-feature-validation.md
→ Next (PO): po:document feature {id}
| Aspect | Testing (Dev) | Validation (PO) |
|---|---|---|
| Focus | Does it work? | Does it meet requirements? |
| Owner | Developer | Product Owner |
| Artifacts | Test results | Validation report |
| Criteria | Pass/Fail tests | Acceptance criteria |