669 lines
24 KiB
Markdown
669 lines
24 KiB
Markdown
# /sdd:story-validate
|
|
|
|
## Meta
|
|
- Version: 2.0
|
|
- Category: quality-gates
|
|
- Complexity: medium
|
|
- Purpose: Final validation of story against acceptance criteria before production deployment
|
|
|
|
## Definition
|
|
**Purpose**: Execute comprehensive final validation to ensure all acceptance criteria are met, all tests pass, and story is production-ready.
|
|
|
|
**Syntax**: `/sdd:story-validate [story_id]`
|
|
|
|
## Parameters
|
|
| Parameter | Type | Required | Default | Description | Validation |
|
|
|-----------|------|----------|---------|-------------|------------|
|
|
| story_id | string | No | current branch | Story ID (STORY-YYYY-NNN) | Must match format STORY-YYYY-NNN |
|
|
|
|
## INSTRUCTION: Execute Final Story Validation
|
|
|
|
### INPUTS
|
|
- story_id: Story identifier (auto-detected from branch if not provided)
|
|
- Project context from `/docs/project-context/` directory
|
|
- Story file from `/docs/stories/qa/[story-id].md`
|
|
- Complete test suite results from QA
|
|
- Acceptance criteria from story file
|
|
|
|
### PROCESS
|
|
|
|
#### Phase 1: Project Context Loading
|
|
1. **CHECK** if `/docs/project-context/` directory exists
|
|
2. IF missing:
|
|
- SUGGEST running `/sdd:project-init` first
|
|
- EXIT with initialization guidance
|
|
3. **LOAD** project-specific validation requirements from:
|
|
- `/docs/project-context/technical-stack.md` - Testing tools and validation methods
|
|
- `/docs/project-context/coding-standards.md` - Quality thresholds and criteria
|
|
- `/docs/project-context/development-process.md` - Validation stage requirements
|
|
|
|
#### Phase 2: Story Identification & Validation
|
|
1. IF story_id NOT provided:
|
|
- **DETECT** current git branch
|
|
- **EXTRACT** story ID from branch name
|
|
- EXAMPLE: Branch `feature/STORY-2025-001-auth` → ID `STORY-2025-001`
|
|
|
|
2. **VALIDATE** story exists and is ready:
|
|
- CHECK `/docs/stories/qa/[story-id].md` exists
|
|
- IF NOT found in QA:
|
|
- CHECK if in `/docs/stories/development/` or `/docs/stories/review/`
|
|
- ERROR: "Story must complete QA before validation"
|
|
- SUGGEST appropriate command to progress
|
|
- IF in `/docs/stories/completed/`:
|
|
- ERROR: "Story already completed and shipped"
|
|
- IF NOT found anywhere:
|
|
- ERROR: "Story [story-id] not found"
|
|
- EXIT with guidance
|
|
|
|
3. **READ** story file for:
|
|
- Success Criteria (acceptance criteria)
|
|
- Implementation Checklist
|
|
- QA Checklist
|
|
- Technical Notes and concerns
|
|
- Rollback Plan
|
|
|
|
#### Phase 3: Acceptance Criteria Validation
|
|
|
|
##### 3.1 Load and Parse Criteria
|
|
1. **EXTRACT** all acceptance criteria from Success Criteria section
|
|
2. **COUNT** total criteria
|
|
3. **IDENTIFY** browser test mappings from QA results
|
|
|
|
##### 3.2 Validate Each Criterion
|
|
1. FOR each acceptance criterion:
|
|
```
|
|
✓ [Criterion]: PASSED/FAILED
|
|
How tested: [Discovered browser testing framework]
|
|
Evidence: [Test file path and line number]
|
|
Screenshots: [Screenshot path]
|
|
Validation method: [Automated browser test/Manual verification]
|
|
```
|
|
|
|
2. **MAP** criteria to browser tests:
|
|
- Laravel: `tests/Browser/[StoryId]Test.php`
|
|
- Node.js Playwright: `tests/e2e/[story-id].spec.js`
|
|
- Python Playwright: `tests/browser/test_[story_id].py`
|
|
|
|
3. **VERIFY** test evidence:
|
|
- READ test file to confirm test exists
|
|
- CHECK QA results for test pass status
|
|
- VALIDATE screenshot exists (if applicable)
|
|
- CONFIRM test actually validates the criterion
|
|
|
|
4. **MARK** criterion validation:
|
|
```markdown
|
|
## Success Criteria
|
|
- [x] User can toggle dark mode
|
|
* Tested by: tests/Browser/DarkModeTest.php::line 45
|
|
* Evidence: Browser test passed, screenshot saved
|
|
* Validated: 2025-10-01
|
|
```
|
|
|
|
#### Phase 4: Implementation Completeness Check
|
|
|
|
##### 4.1 Core Features Validation
|
|
1. **CHECK** Implementation Checklist:
|
|
```
|
|
✅ Core Features (using discovered standards):
|
|
- [x] Feature implementation → Code complete and functional
|
|
- [x] Unit tests → 87% coverage (target: 80% from standards)
|
|
- [x] Integration tests → All feature tests passing
|
|
- [x] Browser test coverage → 100% of acceptance criteria
|
|
- [x] All discovered tests passing → Unit + Feature + Browser
|
|
```
|
|
|
|
2. **VALIDATE** each checklist item:
|
|
- Feature implementation: CODE exists and works
|
|
- Unit tests: COVERAGE meets threshold from coding-standards.md
|
|
- Integration tests: ALL feature tests PASS
|
|
- Browser tests: 100% acceptance criteria coverage
|
|
- All tests passing: NO failures in any test suite
|
|
|
|
##### 4.2 Quality Standards Validation
|
|
1. **CHECK** quality items:
|
|
```
|
|
✅ Quality Standards:
|
|
- [x] Error handling → Try/catch blocks, graceful failures
|
|
- [x] Loading states → Spinners, skeleton screens implemented
|
|
- [x] Documentation → Code comments, README updated
|
|
```
|
|
|
|
2. **VALIDATE**:
|
|
- Error handling: CHECK for try/catch, error boundaries, validation
|
|
- Loading states: VERIFY wire:loading, spinners, feedback
|
|
- Documentation: CONFIRM inline docs, updated README/CHANGELOG
|
|
|
|
##### 4.3 Non-Functional Requirements
|
|
1. **CHECK** non-functional items:
|
|
```
|
|
✅ Non-Functional:
|
|
- [x] Performance → Response times meet targets
|
|
- [x] Accessibility → WCAG AA compliance
|
|
- [x] Security → No vulnerabilities, auth working
|
|
```
|
|
|
|
2. **VALIDATE** from QA results:
|
|
- Performance: METRICS from QA meet story targets
|
|
- Accessibility: ARIA labels, keyboard nav, contrast checked
|
|
- Security: NO vulnerabilities in audit, auth/authz verified
|
|
|
|
#### Phase 5: Rollback Plan Verification
|
|
1. **CHECK** if Rollback Plan section is populated
|
|
2. IF empty or minimal:
|
|
- WARN: "Rollback plan should be documented"
|
|
- SUGGEST rollback steps based on changes
|
|
- OFFER to populate from git diff
|
|
|
|
3. **VALIDATE** rollback plan contains:
|
|
- Clear steps to revert changes
|
|
- Database migration rollback (if applicable)
|
|
- Cache clearing instructions
|
|
- Service restart procedures (if needed)
|
|
- Verification steps after rollback
|
|
|
|
4. **TEST** rollback feasibility (if possible):
|
|
- Verify migrations are reversible
|
|
- Check for data loss risks
|
|
- Confirm no breaking changes to shared code
|
|
|
|
#### Phase 6: Final Checks
|
|
|
|
##### 6.1 Production Readiness Checklist
|
|
1. **EXECUTE** final readiness validation:
|
|
```
|
|
🚀 READY FOR PRODUCTION?
|
|
════════════════════════════════════════════════
|
|
|
|
☑ All acceptance criteria met
|
|
☑ All tests passing
|
|
☑ All acceptance criteria covered by automated browser tests
|
|
☑ Browser test suite passes completely
|
|
☑ Code reviewed and approved
|
|
☑ Documentation complete
|
|
☑ Performance acceptable
|
|
☑ Security verified
|
|
☑ Rollback plan ready
|
|
☑ Monitoring configured (if applicable)
|
|
|
|
CONFIDENCE LEVEL: [High/Medium/Low]
|
|
```
|
|
|
|
2. **CALCULATE** confidence level:
|
|
- HIGH: All items ✓, no warnings, comprehensive tests
|
|
- MEDIUM: All items ✓, some warnings, adequate tests
|
|
- LOW: Missing items, concerns, or gaps in testing
|
|
|
|
##### 6.2 Risk Assessment
|
|
1. **IDENTIFY** remaining risks:
|
|
```
|
|
RISKS:
|
|
- [Risk 1]: [Description] - Mitigation: [How to handle]
|
|
- [Risk 2]: [Description] - Mitigation: [How to handle]
|
|
```
|
|
|
|
2. **ASSESS** risk levels:
|
|
- Database migrations: Risk of data loss?
|
|
- API changes: Breaking changes for consumers?
|
|
- Dependency updates: Compatibility issues?
|
|
- Performance impact: Degradation possible?
|
|
- Security changes: New attack vectors?
|
|
|
|
##### 6.3 Dependency Validation
|
|
1. **CHECK** external dependencies:
|
|
```
|
|
DEPENDENCIES:
|
|
- [Dependency 1]: [Status - Ready/Not Ready]
|
|
- [Dependency 2]: [Status - Ready/Not Ready]
|
|
```
|
|
|
|
2. **VALIDATE**:
|
|
- External services: Available and tested?
|
|
- Third-party APIs: Credentials configured?
|
|
- Database migrations: Run on staging?
|
|
- Feature flags: Configured correctly?
|
|
- Environment variables: Set in production?
|
|
|
|
#### Phase 7: Validation Report Generation
|
|
1. **COMPILE** all validation results
|
|
2. **DETERMINE** overall status:
|
|
- ✅ READY TO SHIP: All checks pass, high confidence
|
|
- ⚠️ NEEDS WORK: Critical items missing or failing
|
|
|
|
3. **GENERATE** validation report:
|
|
|
|
```
|
|
📄 VALIDATION SUMMARY
|
|
════════════════════════════════════════════════
|
|
Story: [STORY-ID] - [Title]
|
|
Validated: [Timestamp]
|
|
Validator: Claude Code (Automated)
|
|
|
|
RESULT: ✅ READY TO SHIP / ⚠️ NEEDS WORK
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
📋 ACCEPTANCE CRITERIA: 5/5 PASSED
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
✓ User can toggle dark mode
|
|
→ tests/Browser/DarkModeTest.php::line 45 ✅
|
|
✓ Theme persists across sessions
|
|
→ tests/Browser/DarkModeTest.php::line 67 ✅
|
|
✓ All UI components support both themes
|
|
→ tests/Browser/DarkModeTest.php::line 89 ✅
|
|
✓ Keyboard shortcut (Cmd+Shift+D) works
|
|
→ tests/Browser/DarkModeTest.php::line 112 ✅
|
|
✓ Preference syncs across browser tabs
|
|
→ tests/Browser/DarkModeTest.php::line 134 ✅
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
📊 QUALITY METRICS
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
Passed Criteria: 5/5 (100%)
|
|
Test Coverage: 87% (target: 80% ✅)
|
|
Quality Score: 9.2/10
|
|
Performance: All targets met ✅
|
|
Security: No vulnerabilities ✅
|
|
Accessibility: WCAG AA compliant ✅
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
🚀 PRODUCTION READINESS
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
✅ All acceptance criteria met
|
|
✅ All tests passing (76/76)
|
|
✅ Browser test coverage: 100%
|
|
✅ Code reviewed and approved
|
|
✅ Documentation complete
|
|
✅ Performance acceptable
|
|
✅ Security verified
|
|
✅ Rollback plan documented
|
|
|
|
CONFIDENCE LEVEL: ✅ HIGH
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
⚠️ RISKS & MITIGATIONS
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
Low Risk: CSS changes may affect custom themes
|
|
Mitigation: Browser tests cover theme switching,
|
|
rollback plan ready
|
|
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
🔗 DEPENDENCIES
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
✅ No external dependencies
|
|
|
|
[IF NOT READY:]
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
❌ BLOCKING ISSUES
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1. Acceptance criterion "X" not validated by browser test
|
|
→ Create browser test in tests/Browser/
|
|
2. Rollback plan not documented
|
|
→ Add rollback steps to story file
|
|
3. Performance target not met (450ms vs 200ms)
|
|
→ Optimize database queries
|
|
|
|
[IF READY:]
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
✅ SHIP CHECKLIST
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1. /sdd:story-ship [story-id] # Deploy to production
|
|
2. Monitor application after deployment
|
|
3. Be ready to execute rollback plan if needed
|
|
4. Document lessons learned after ship
|
|
```
|
|
|
|
#### Phase 8: Story File Updates
|
|
1. **UPDATE** Success Criteria with validation evidence:
|
|
```markdown
|
|
## Success Criteria
|
|
- [x] User can toggle dark mode
|
|
* Tested by: tests/Browser/DarkModeTest.php::line 45
|
|
* Evidence: Browser test passed on 2025-10-01
|
|
* Screenshot: /storage/screenshots/STORY-2025-003/toggle.png
|
|
- [x] Theme persists across sessions
|
|
* Tested by: tests/Browser/DarkModeTest.php::line 67
|
|
* Evidence: Browser test passed on 2025-10-01
|
|
```
|
|
|
|
2. **MARK** remaining checklist items:
|
|
- Implementation Checklist: `[x]` any newly validated items
|
|
- QA Checklist: `[x]` any newly validated items
|
|
|
|
3. **ADD** validation entry to Progress Log:
|
|
```markdown
|
|
- [Today]: Final validation completed
|
|
* All 5 acceptance criteria validated ✅
|
|
* Test coverage: 87% (exceeds 80% target)
|
|
* Performance: All targets met
|
|
* Security: No vulnerabilities
|
|
* Rollback plan: Documented and verified
|
|
* Confidence level: HIGH
|
|
* Status: READY TO SHIP
|
|
```
|
|
|
|
4. **RECORD** validation results:
|
|
- Validation timestamp
|
|
- Confidence level
|
|
- Risk assessment
|
|
- Dependency status
|
|
- Any conditions for shipping
|
|
|
|
#### Phase 9: Next Steps
|
|
1. **DISPLAY** validation outcome:
|
|
```
|
|
💡 NEXT STEPS:
|
|
════════════════════════════════════════════════
|
|
|
|
[IF READY TO SHIP:]
|
|
✅ Story validated and ready for production
|
|
|
|
1. /sdd:story-ship [story-id] # Deploy to production
|
|
- Creates PR (if not created)
|
|
- Merges to main branch
|
|
- Moves story to completed
|
|
- Tags release
|
|
|
|
2. Post-Deployment Actions:
|
|
- Monitor application logs
|
|
- Watch performance metrics
|
|
- Be ready for rollback
|
|
- Document lessons learned
|
|
|
|
[IF NEEDS WORK:]
|
|
⚠️ X critical issues prevent shipping
|
|
|
|
1. /sdd:story-refactor [story-id] # Return to development
|
|
2. Address blocking issues:
|
|
- [Issue 1]
|
|
- [Issue 2]
|
|
3. /sdd:story-review [story-id] # Re-run review
|
|
4. /sdd:story-qa [story-id] # Re-run QA
|
|
5. /sdd:story-validate [story-id] # Re-validate
|
|
|
|
[MONITORING COMMANDS:]
|
|
# Laravel:
|
|
php artisan pail # Watch logs in real-time
|
|
php artisan telescope:clear # Clear old monitoring data
|
|
|
|
# System:
|
|
tail -f storage/logs/laravel.log # Follow application logs
|
|
```
|
|
|
|
### OUTPUTS
|
|
- Updated `/docs/stories/qa/[story-id].md` with validation results
|
|
- Validation summary report (displayed to user)
|
|
- Updated Success Criteria with test evidence
|
|
- Updated checklists with final validation status
|
|
- Progress log entry with validation timestamp
|
|
|
|
### RULES
|
|
- MUST load project context before validation
|
|
- MUST validate ALL acceptance criteria with evidence
|
|
- MUST verify 100% browser test coverage of criteria
|
|
- MUST check rollback plan is documented
|
|
- MUST assess production readiness
|
|
- SHOULD identify risks and mitigations
|
|
- SHOULD validate external dependencies
|
|
- NEVER mark story ready with failing tests
|
|
- NEVER skip acceptance criteria validation
|
|
- ALWAYS provide test evidence for each criterion
|
|
- ALWAYS update Success Criteria with validation details
|
|
- ALWAYS record confidence level in validation
|
|
|
|
## Examples
|
|
|
|
### Example 1: Validation Ready to Ship
|
|
```bash
|
|
INPUT:
|
|
/sdd:story-validate STORY-2025-003
|
|
|
|
OUTPUT:
|
|
→ Loading project context...
|
|
✓ technical-stack.md: Laravel + Pest + Playwright
|
|
✓ coding-standards.md: 80% coverage target
|
|
✓ development-process.md: Validation requirements
|
|
|
|
→ Loading story requirements...
|
|
✓ Story: STORY-2025-003 - Dark Mode Toggle
|
|
✓ Success Criteria: 5 criteria
|
|
✓ Implementation Checklist: 9/9 complete
|
|
✓ QA Checklist: 6/6 complete
|
|
|
|
→ Validating acceptance criteria...
|
|
✓ [1/5] User can toggle dark mode
|
|
→ tests/Browser/DarkModeTest.php::line 45 ✅
|
|
✓ [2/5] Theme persists across sessions
|
|
→ tests/Browser/DarkModeTest.php::line 67 ✅
|
|
✓ [3/5] All UI components support both themes
|
|
→ tests/Browser/DarkModeTest.php::line 89 ✅
|
|
✓ [4/5] Keyboard shortcut works
|
|
→ tests/Browser/DarkModeTest.php::line 112 ✅
|
|
✓ [5/5] Preference syncs across tabs
|
|
→ tests/Browser/DarkModeTest.php::line 134 ✅
|
|
|
|
→ Checking implementation completeness...
|
|
✓ Feature implementation: Complete
|
|
✓ Unit tests: 87% coverage (target: 80%)
|
|
✓ Browser tests: 100% criteria coverage
|
|
✓ All tests passing: 76/76
|
|
|
|
→ Verifying rollback plan...
|
|
✓ Rollback plan documented
|
|
✓ Migrations are reversible
|
|
|
|
→ Final production readiness checks...
|
|
✓ All acceptance criteria met
|
|
✓ All tests passing
|
|
✓ Code reviewed
|
|
✓ Documentation complete
|
|
✓ Performance acceptable
|
|
✓ Security verified
|
|
✓ Rollback plan ready
|
|
|
|
📄 VALIDATION SUMMARY
|
|
════════════════════════════════════════════════
|
|
Story: STORY-2025-003 - Dark Mode Toggle
|
|
Validated: 2025-10-01 17:45:23
|
|
|
|
RESULT: ✅ READY TO SHIP
|
|
|
|
Passed Criteria: 5/5 (100%)
|
|
Test Coverage: 87%
|
|
Quality Score: 9.2/10
|
|
|
|
CONFIDENCE LEVEL: ✅ HIGH
|
|
|
|
💡 NEXT STEPS:
|
|
════════════════════════════════════════════════
|
|
✅ Story validated and ready for production
|
|
|
|
1. /sdd:story-ship STORY-2025-003 # Deploy to production
|
|
2. Monitor application after deployment
|
|
3. Be ready to execute rollback if needed
|
|
```
|
|
|
|
### Example 2: Validation with Blocking Issues
|
|
```bash
|
|
INPUT:
|
|
/sdd:story-validate STORY-2025-004
|
|
|
|
OUTPUT:
|
|
→ Loading project context...
|
|
✓ technical-stack.md loaded
|
|
|
|
→ Loading story requirements...
|
|
✓ Story: STORY-2025-004 - Notification System
|
|
✓ Success Criteria: 4 criteria
|
|
|
|
→ Validating acceptance criteria...
|
|
✓ [1/4] Notifications appear on events
|
|
→ tests/Browser/NotificationTest.php::line 23 ✅
|
|
✓ [2/4] Notifications can be dismissed
|
|
→ tests/Browser/NotificationTest.php::line 45 ✅
|
|
✗ [3/4] Notifications persist across sessions
|
|
→ NO BROWSER TEST FOUND ❌
|
|
✗ [4/4] Email notifications sent
|
|
→ NO BROWSER TEST FOUND ❌
|
|
|
|
→ Checking rollback plan...
|
|
✗ Rollback plan not documented
|
|
|
|
📄 VALIDATION SUMMARY
|
|
════════════════════════════════════════════════
|
|
Story: STORY-2025-004 - Notification System
|
|
Validated: 2025-10-01 18:12:45
|
|
|
|
RESULT: ⚠️ NEEDS WORK
|
|
|
|
Passed Criteria: 2/4 (50%)
|
|
Test Coverage: 78% (below 80% target)
|
|
|
|
❌ BLOCKING ISSUES:
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1. Acceptance criterion "Notifications persist across sessions" not validated
|
|
→ Create browser test in tests/Browser/NotificationTest.php
|
|
|
|
2. Acceptance criterion "Email notifications sent" not validated
|
|
→ Create browser test for email sending
|
|
|
|
3. Rollback plan not documented
|
|
→ Add rollback steps to story file
|
|
|
|
4. Test coverage 78% below target 80%
|
|
→ Add tests to increase coverage
|
|
|
|
💡 NEXT STEPS:
|
|
════════════════════════════════════════════════
|
|
⚠️ 4 critical issues prevent shipping
|
|
|
|
1. /sdd:story-refactor STORY-2025-004 # Return to development
|
|
2. Address blocking issues:
|
|
- Add browser test for session persistence
|
|
- Add browser test for email notifications
|
|
- Document rollback plan
|
|
- Increase test coverage to 80%+
|
|
3. /sdd:story-review STORY-2025-004 # Re-run review
|
|
4. /sdd:story-qa STORY-2025-004 # Re-run QA
|
|
5. /sdd:story-validate STORY-2025-004 # Re-validate
|
|
```
|
|
|
|
### Example 3: Validation with Warnings (Still Ship-Ready)
|
|
```bash
|
|
INPUT:
|
|
/sdd:story-validate
|
|
|
|
OUTPUT:
|
|
→ Detecting story from current branch...
|
|
✓ Current branch: feature/STORY-2025-005-search
|
|
✓ Story ID: STORY-2025-005
|
|
|
|
→ Loading story requirements...
|
|
✓ Success Criteria: 3 criteria
|
|
|
|
→ Validating acceptance criteria...
|
|
✓ All 3 criteria validated by browser tests
|
|
|
|
→ Assessing risks...
|
|
⚠️ Database migration changes column type
|
|
⚠️ Bundle size increased by 15KB
|
|
|
|
📄 VALIDATION SUMMARY
|
|
════════════════════════════════════════════════
|
|
Story: STORY-2025-005 - Advanced Search
|
|
Validated: 2025-10-01 19:23:11
|
|
|
|
RESULT: ✅ READY TO SHIP (with warnings)
|
|
|
|
Passed Criteria: 3/3 (100%)
|
|
Test Coverage: 91%
|
|
|
|
CONFIDENCE LEVEL: ⚠️ MEDIUM
|
|
|
|
⚠️ WARNINGS (non-blocking):
|
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
1. Database migration changes column type
|
|
Risk: Potential data loss on rollback
|
|
Mitigation: Backup database before deployment
|
|
|
|
2. Bundle size increased by 15KB
|
|
Risk: Slightly slower page loads
|
|
Mitigation: Monitor performance metrics
|
|
|
|
💡 NEXT STEPS:
|
|
════════════════════════════════════════════════
|
|
✅ Story validated - Ready to ship with awareness
|
|
|
|
1. /sdd:story-ship STORY-2025-005 # Deploy to production
|
|
2. Backup database before deployment
|
|
3. Monitor performance after deployment
|
|
```
|
|
|
|
## Edge Cases
|
|
|
|
### No Project Context
|
|
- DETECT missing `/docs/project-context/` directory
|
|
- SUGGEST running `/sdd:project-init`
|
|
- OFFER to validate with basic checks
|
|
- WARN that validation will be incomplete
|
|
|
|
### Story Not in QA
|
|
- CHECK if story in `/docs/stories/development/` or `/docs/stories/review/`
|
|
- ERROR: "Story must complete QA before validation"
|
|
- PROVIDE workflow guidance to reach QA stage
|
|
- SUGGEST appropriate command
|
|
|
|
### Missing Browser Tests
|
|
- DETECT acceptance criteria without browser test evidence
|
|
- COUNT uncovered criteria
|
|
- BLOCK validation if coverage < 100%
|
|
- PROVIDE test file examples for stack
|
|
|
|
### Incomplete Checklists
|
|
- DETECT unchecked items in Implementation/QA checklists
|
|
- LIST incomplete items
|
|
- ASSESS if items are truly incomplete or just not checked
|
|
- WARN if critical items unchecked
|
|
|
|
### Rollback Plan Empty
|
|
- DETECT missing or minimal rollback plan
|
|
- SUGGEST rollback steps based on git diff
|
|
- OFFER to auto-generate basic rollback plan
|
|
- WARN that deployment without rollback plan is risky
|
|
|
|
### External Dependencies Not Ready
|
|
- DETECT external dependencies in story
|
|
- CHECK if dependencies are ready (if possible)
|
|
- WARN about deployment risks
|
|
- SUGGEST coordinating with dependency owners
|
|
|
|
## Error Handling
|
|
- **Missing /docs/project-context/**: Suggest `/sdd:project-init`, offer basic validation
|
|
- **Story not in QA**: Provide clear workflow, suggest correct command
|
|
- **Missing tests**: Block validation, provide test creation guidance
|
|
- **Git errors**: Validate git state, suggest resolution
|
|
- **File read errors**: Report specific file issue, suggest fix
|
|
|
|
## Performance Considerations
|
|
- Validation is primarily file reading and analysis (fast)
|
|
- Browser test evidence lookup is file-based (< 1s typically)
|
|
- No expensive operations unless re-running tests
|
|
- Cache story file contents for session
|
|
|
|
## Related Commands
|
|
- `/sdd:story-qa [id]` - Must complete before validation
|
|
- `/sdd:story-ship [id]` - Run after validation passes
|
|
- `/sdd:story-refactor [id]` - Return to development if validation fails
|
|
- `/sdd:story-status [id]` - Check current story state
|
|
|
|
## Constraints
|
|
- ✅ MUST load project context for validation standards
|
|
- ✅ MUST validate ALL acceptance criteria with evidence
|
|
- ✅ MUST verify 100% browser test coverage
|
|
- ✅ MUST check rollback plan exists
|
|
- ✅ MUST assess production readiness
|
|
- ⚠️ NEVER mark story ready with incomplete criteria validation
|
|
- ⚠️ NEVER skip browser test evidence requirement
|
|
- 📋 SHOULD identify and document risks
|
|
- 🔧 SHOULD validate external dependencies
|
|
- 💾 MUST update Success Criteria with validation details
|
|
- 🚫 BLOCK shipping if critical issues found
|