@agile-vibe-coding/avc 0.1.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/agent-loader.js +21 -0
- package/cli/agents/agent-selector.md +129 -0
- package/cli/agents/architecture-recommender.md +418 -0
- package/cli/agents/database-deep-dive.md +470 -0
- package/cli/agents/database-recommender.md +634 -0
- package/cli/agents/doc-distributor.md +176 -0
- package/cli/agents/documentation-updater.md +203 -0
- package/cli/agents/epic-story-decomposer.md +280 -0
- package/cli/agents/feature-context-generator.md +91 -0
- package/cli/agents/gap-checker-epic.md +52 -0
- package/cli/agents/impact-checker-story.md +51 -0
- package/cli/agents/migration-guide-generator.md +305 -0
- package/cli/agents/mission-scope-generator.md +79 -0
- package/cli/agents/mission-scope-validator.md +112 -0
- package/cli/agents/project-context-extractor.md +107 -0
- package/cli/agents/project-documentation-creator.json +226 -0
- package/cli/agents/project-documentation-creator.md +595 -0
- package/cli/agents/question-prefiller.md +269 -0
- package/cli/agents/refiner-epic.md +39 -0
- package/cli/agents/refiner-story.md +42 -0
- package/cli/agents/solver-epic-api.json +15 -0
- package/cli/agents/solver-epic-api.md +39 -0
- package/cli/agents/solver-epic-backend.json +15 -0
- package/cli/agents/solver-epic-backend.md +39 -0
- package/cli/agents/solver-epic-cloud.json +15 -0
- package/cli/agents/solver-epic-cloud.md +39 -0
- package/cli/agents/solver-epic-data.json +15 -0
- package/cli/agents/solver-epic-data.md +39 -0
- package/cli/agents/solver-epic-database.json +15 -0
- package/cli/agents/solver-epic-database.md +39 -0
- package/cli/agents/solver-epic-developer.json +15 -0
- package/cli/agents/solver-epic-developer.md +39 -0
- package/cli/agents/solver-epic-devops.json +15 -0
- package/cli/agents/solver-epic-devops.md +39 -0
- package/cli/agents/solver-epic-frontend.json +15 -0
- package/cli/agents/solver-epic-frontend.md +39 -0
- package/cli/agents/solver-epic-mobile.json +15 -0
- package/cli/agents/solver-epic-mobile.md +39 -0
- package/cli/agents/solver-epic-qa.json +15 -0
- package/cli/agents/solver-epic-qa.md +39 -0
- package/cli/agents/solver-epic-security.json +15 -0
- package/cli/agents/solver-epic-security.md +39 -0
- package/cli/agents/solver-epic-solution-architect.json +15 -0
- package/cli/agents/solver-epic-solution-architect.md +39 -0
- package/cli/agents/solver-epic-test-architect.json +15 -0
- package/cli/agents/solver-epic-test-architect.md +39 -0
- package/cli/agents/solver-epic-ui.json +15 -0
- package/cli/agents/solver-epic-ui.md +39 -0
- package/cli/agents/solver-epic-ux.json +15 -0
- package/cli/agents/solver-epic-ux.md +39 -0
- package/cli/agents/solver-story-api.json +15 -0
- package/cli/agents/solver-story-api.md +39 -0
- package/cli/agents/solver-story-backend.json +15 -0
- package/cli/agents/solver-story-backend.md +39 -0
- package/cli/agents/solver-story-cloud.json +15 -0
- package/cli/agents/solver-story-cloud.md +39 -0
- package/cli/agents/solver-story-data.json +15 -0
- package/cli/agents/solver-story-data.md +39 -0
- package/cli/agents/solver-story-database.json +15 -0
- package/cli/agents/solver-story-database.md +39 -0
- package/cli/agents/solver-story-developer.json +15 -0
- package/cli/agents/solver-story-developer.md +39 -0
- package/cli/agents/solver-story-devops.json +15 -0
- package/cli/agents/solver-story-devops.md +39 -0
- package/cli/agents/solver-story-frontend.json +15 -0
- package/cli/agents/solver-story-frontend.md +39 -0
- package/cli/agents/solver-story-mobile.json +15 -0
- package/cli/agents/solver-story-mobile.md +39 -0
- package/cli/agents/solver-story-qa.json +15 -0
- package/cli/agents/solver-story-qa.md +39 -0
- package/cli/agents/solver-story-security.json +15 -0
- package/cli/agents/solver-story-security.md +39 -0
- package/cli/agents/solver-story-solution-architect.json +15 -0
- package/cli/agents/solver-story-solution-architect.md +39 -0
- package/cli/agents/solver-story-test-architect.json +15 -0
- package/cli/agents/solver-story-test-architect.md +39 -0
- package/cli/agents/solver-story-ui.json +15 -0
- package/cli/agents/solver-story-ui.md +39 -0
- package/cli/agents/solver-story-ux.json +15 -0
- package/cli/agents/solver-story-ux.md +39 -0
- package/cli/agents/story-doc-enricher.md +133 -0
- package/cli/agents/suggestion-business-analyst.md +88 -0
- package/cli/agents/suggestion-deployment-architect.md +263 -0
- package/cli/agents/suggestion-product-manager.md +129 -0
- package/cli/agents/suggestion-security-specialist.md +156 -0
- package/cli/agents/suggestion-technical-architect.md +269 -0
- package/cli/agents/suggestion-ux-researcher.md +93 -0
- package/cli/agents/task-subtask-decomposer.md +188 -0
- package/cli/agents/validator-documentation.json +152 -0
- package/cli/agents/validator-documentation.md +453 -0
- package/cli/agents/validator-epic-api.json +93 -0
- package/cli/agents/validator-epic-api.md +137 -0
- package/cli/agents/validator-epic-backend.json +93 -0
- package/cli/agents/validator-epic-backend.md +130 -0
- package/cli/agents/validator-epic-cloud.json +93 -0
- package/cli/agents/validator-epic-cloud.md +137 -0
- package/cli/agents/validator-epic-data.json +93 -0
- package/cli/agents/validator-epic-data.md +130 -0
- package/cli/agents/validator-epic-database.json +93 -0
- package/cli/agents/validator-epic-database.md +137 -0
- package/cli/agents/validator-epic-developer.json +74 -0
- package/cli/agents/validator-epic-developer.md +153 -0
- package/cli/agents/validator-epic-devops.json +74 -0
- package/cli/agents/validator-epic-devops.md +153 -0
- package/cli/agents/validator-epic-frontend.json +74 -0
- package/cli/agents/validator-epic-frontend.md +153 -0
- package/cli/agents/validator-epic-mobile.json +93 -0
- package/cli/agents/validator-epic-mobile.md +130 -0
- package/cli/agents/validator-epic-qa.json +93 -0
- package/cli/agents/validator-epic-qa.md +130 -0
- package/cli/agents/validator-epic-security.json +74 -0
- package/cli/agents/validator-epic-security.md +154 -0
- package/cli/agents/validator-epic-solution-architect.json +74 -0
- package/cli/agents/validator-epic-solution-architect.md +156 -0
- package/cli/agents/validator-epic-test-architect.json +93 -0
- package/cli/agents/validator-epic-test-architect.md +130 -0
- package/cli/agents/validator-epic-ui.json +93 -0
- package/cli/agents/validator-epic-ui.md +130 -0
- package/cli/agents/validator-epic-ux.json +93 -0
- package/cli/agents/validator-epic-ux.md +130 -0
- package/cli/agents/validator-selector.md +211 -0
- package/cli/agents/validator-story-api.json +104 -0
- package/cli/agents/validator-story-api.md +152 -0
- package/cli/agents/validator-story-backend.json +104 -0
- package/cli/agents/validator-story-backend.md +152 -0
- package/cli/agents/validator-story-cloud.json +104 -0
- package/cli/agents/validator-story-cloud.md +152 -0
- package/cli/agents/validator-story-data.json +104 -0
- package/cli/agents/validator-story-data.md +152 -0
- package/cli/agents/validator-story-database.json +104 -0
- package/cli/agents/validator-story-database.md +152 -0
- package/cli/agents/validator-story-developer.json +104 -0
- package/cli/agents/validator-story-developer.md +152 -0
- package/cli/agents/validator-story-devops.json +104 -0
- package/cli/agents/validator-story-devops.md +152 -0
- package/cli/agents/validator-story-frontend.json +104 -0
- package/cli/agents/validator-story-frontend.md +152 -0
- package/cli/agents/validator-story-mobile.json +104 -0
- package/cli/agents/validator-story-mobile.md +152 -0
- package/cli/agents/validator-story-qa.json +104 -0
- package/cli/agents/validator-story-qa.md +152 -0
- package/cli/agents/validator-story-security.json +104 -0
- package/cli/agents/validator-story-security.md +152 -0
- package/cli/agents/validator-story-solution-architect.json +104 -0
- package/cli/agents/validator-story-solution-architect.md +152 -0
- package/cli/agents/validator-story-test-architect.json +104 -0
- package/cli/agents/validator-story-test-architect.md +152 -0
- package/cli/agents/validator-story-ui.json +104 -0
- package/cli/agents/validator-story-ui.md +152 -0
- package/cli/agents/validator-story-ux.json +104 -0
- package/cli/agents/validator-story-ux.md +152 -0
- package/cli/ansi-colors.js +21 -0
- package/cli/build-docs.js +29 -8
- package/cli/ceremony-history.js +369 -0
- package/cli/command-logger.js +49 -12
- package/cli/components/static-output.js +63 -0
- package/cli/console-output-manager.js +94 -0
- package/cli/docs-sync.js +306 -0
- package/cli/epic-story-validator.js +1174 -0
- package/cli/evaluation-prompts.js +1008 -0
- package/cli/execution-context.js +195 -0
- package/cli/generate-summary-table.js +340 -0
- package/cli/index.js +0 -0
- package/cli/init-model-config.js +697 -0
- package/cli/init.js +1311 -274
- package/cli/kanban-server-manager.js +228 -0
- package/cli/llm-claude.js +83 -1
- package/cli/llm-gemini.js +85 -0
- package/cli/llm-mock.js +233 -0
- package/cli/llm-openai.js +233 -0
- package/cli/llm-provider.js +240 -3
- package/cli/llm-token-limits.js +102 -0
- package/cli/llm-verifier.js +454 -0
- package/cli/message-constants.js +58 -0
- package/cli/message-manager.js +334 -0
- package/cli/message-types.js +96 -0
- package/cli/messaging-api.js +297 -0
- package/cli/model-pricing.js +169 -0
- package/cli/model-query-engine.js +468 -0
- package/cli/model-recommendation-analyzer.js +495 -0
- package/cli/model-selector.js +269 -0
- package/cli/output-buffer.js +107 -0
- package/cli/process-manager.js +73 -2
- package/cli/repl-ink.js +4988 -1217
- package/cli/repl-old.js +4 -4
- package/cli/seed-processor.js +792 -0
- package/cli/sprint-planning-processor.js +1813 -0
- package/cli/template-processor.js +2102 -105
- package/cli/templates/project.md +25 -8
- package/cli/templates/vitepress-config.mts.template +5 -4
- package/cli/token-tracker.js +520 -0
- package/cli/tools/generate-story-validators.js +317 -0
- package/cli/tools/generate-validators.js +669 -0
- package/cli/update-checker.js +19 -17
- package/cli/update-notifier.js +4 -4
- package/cli/validation-router.js +605 -0
- package/cli/verification-tracker.js +563 -0
- package/kanban/README.md +386 -0
- package/kanban/client/README.md +205 -0
- package/kanban/client/components.json +20 -0
- package/kanban/client/dist/assets/index-CiD8PS2e.js +306 -0
- package/kanban/client/dist/assets/index-nLh0m82Q.css +1 -0
- package/kanban/client/dist/index.html +16 -0
- package/kanban/client/dist/vite.svg +1 -0
- package/kanban/client/index.html +15 -0
- package/kanban/client/package-lock.json +9442 -0
- package/kanban/client/package.json +44 -0
- package/kanban/client/postcss.config.js +6 -0
- package/kanban/client/public/vite.svg +1 -0
- package/kanban/client/src/App.jsx +622 -0
- package/kanban/client/src/components/ProjectFileEditorPopup.jsx +117 -0
- package/kanban/client/src/components/ceremony/AskArchPopup.jsx +416 -0
- package/kanban/client/src/components/ceremony/AskModelPopup.jsx +616 -0
- package/kanban/client/src/components/ceremony/CeremonyWorkflowModal.jsx +946 -0
- package/kanban/client/src/components/ceremony/EpicStorySelectionModal.jsx +254 -0
- package/kanban/client/src/components/ceremony/SponsorCallModal.jsx +619 -0
- package/kanban/client/src/components/ceremony/SprintPlanningModal.jsx +704 -0
- package/kanban/client/src/components/ceremony/steps/ArchitectureStep.jsx +150 -0
- package/kanban/client/src/components/ceremony/steps/CompleteStep.jsx +154 -0
- package/kanban/client/src/components/ceremony/steps/DatabaseStep.jsx +202 -0
- package/kanban/client/src/components/ceremony/steps/DeploymentStep.jsx +123 -0
- package/kanban/client/src/components/ceremony/steps/MissionStep.jsx +106 -0
- package/kanban/client/src/components/ceremony/steps/ReviewAnswersStep.jsx +125 -0
- package/kanban/client/src/components/ceremony/steps/RunningStep.jsx +228 -0
- package/kanban/client/src/components/kanban/CardDetailModal.jsx +559 -0
- package/kanban/client/src/components/kanban/EpicSection.jsx +146 -0
- package/kanban/client/src/components/kanban/FilterToolbar.jsx +222 -0
- package/kanban/client/src/components/kanban/GroupingSelector.jsx +57 -0
- package/kanban/client/src/components/kanban/KanbanBoard.jsx +211 -0
- package/kanban/client/src/components/kanban/KanbanCard.jsx +138 -0
- package/kanban/client/src/components/kanban/KanbanColumn.jsx +90 -0
- package/kanban/client/src/components/kanban/RefineWorkItemPopup.jsx +789 -0
- package/kanban/client/src/components/layout/LoadingScreen.jsx +82 -0
- package/kanban/client/src/components/process/ProcessMonitorBar.jsx +80 -0
- package/kanban/client/src/components/settings/AgentEditorPopup.jsx +171 -0
- package/kanban/client/src/components/settings/AgentsTab.jsx +353 -0
- package/kanban/client/src/components/settings/ApiKeysTab.jsx +113 -0
- package/kanban/client/src/components/settings/CeremonyModelsTab.jsx +98 -0
- package/kanban/client/src/components/settings/CostThresholdsTab.jsx +94 -0
- package/kanban/client/src/components/settings/ModelPricingTab.jsx +204 -0
- package/kanban/client/src/components/settings/ServersTab.jsx +121 -0
- package/kanban/client/src/components/settings/SettingsModal.jsx +84 -0
- package/kanban/client/src/components/stats/CostModal.jsx +353 -0
- package/kanban/client/src/components/ui/badge.jsx +27 -0
- package/kanban/client/src/components/ui/dialog.jsx +121 -0
- package/kanban/client/src/components/ui/tabs.jsx +85 -0
- package/kanban/client/src/hooks/__tests__/useGrouping.test.js +232 -0
- package/kanban/client/src/hooks/useGrouping.js +118 -0
- package/kanban/client/src/hooks/useWebSocket.js +120 -0
- package/kanban/client/src/lib/__tests__/api.test.js +196 -0
- package/kanban/client/src/lib/__tests__/status-grouping.test.js +94 -0
- package/kanban/client/src/lib/api.js +401 -0
- package/kanban/client/src/lib/status-grouping.js +144 -0
- package/kanban/client/src/lib/utils.js +11 -0
- package/kanban/client/src/main.jsx +10 -0
- package/kanban/client/src/store/__tests__/kanbanStore.test.js +164 -0
- package/kanban/client/src/store/ceremonyStore.js +172 -0
- package/kanban/client/src/store/filterStore.js +201 -0
- package/kanban/client/src/store/kanbanStore.js +115 -0
- package/kanban/client/src/store/processStore.js +65 -0
- package/kanban/client/src/store/sprintPlanningStore.js +33 -0
- package/kanban/client/src/styles/globals.css +59 -0
- package/kanban/client/tailwind.config.js +77 -0
- package/kanban/client/vite.config.js +28 -0
- package/kanban/client/vitest.config.js +28 -0
- package/kanban/dev-start.sh +47 -0
- package/kanban/package.json +12 -0
- package/kanban/server/index.js +516 -0
- package/kanban/server/routes/ceremony.js +305 -0
- package/kanban/server/routes/costs.js +157 -0
- package/kanban/server/routes/processes.js +50 -0
- package/kanban/server/routes/settings.js +303 -0
- package/kanban/server/routes/websocket.js +276 -0
- package/kanban/server/routes/work-items.js +347 -0
- package/kanban/server/services/CeremonyService.js +1190 -0
- package/kanban/server/services/FileSystemScanner.js +95 -0
- package/kanban/server/services/FileWatcher.js +144 -0
- package/kanban/server/services/HierarchyBuilder.js +196 -0
- package/kanban/server/services/ProcessRegistry.js +122 -0
- package/kanban/server/services/WorkItemReader.js +123 -0
- package/kanban/server/services/WorkItemRefineService.js +510 -0
- package/kanban/server/start.js +49 -0
- package/kanban/server/utils/kanban-logger.js +132 -0
- package/kanban/server/utils/markdown.js +91 -0
- package/kanban/server/utils/status-grouping.js +107 -0
- package/kanban/server/workers/sponsor-call-worker.js +84 -0
- package/kanban/server/workers/sprint-planning-worker.js +130 -0
- package/package.json +18 -5
- package/cli/agents/documentation.md +0 -302
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Story Validator - Frontend Specialist
|
|
2
|
+
|
|
3
|
+
## Role
|
|
4
|
+
You are an expert frontend reviewing user story implementations. Your role is to validate that story acceptance criteria are complete, testable, and implementable from a frontend perspective.
|
|
5
|
+
|
|
6
|
+
## Validation Scope
|
|
7
|
+
|
|
8
|
+
**What to Validate:**
|
|
9
|
+
- Acceptance criteria are specific, measurable, and testable
|
|
10
|
+
- Story includes all frontend-specific implementation requirements
|
|
11
|
+
- Technical details are sufficient for developers to implement
|
|
12
|
+
- Dependencies are clearly identified
|
|
13
|
+
- Story is appropriately sized (not too large or too small)
|
|
14
|
+
- Frontend best practices are followed
|
|
15
|
+
|
|
16
|
+
**What NOT to Validate:**
|
|
17
|
+
- High-level architecture (that's for Epic validation)
|
|
18
|
+
- Detailed code implementation (that's for Task level)
|
|
19
|
+
- Estimates or timelines
|
|
20
|
+
|
|
21
|
+
## Validation Checklist
|
|
22
|
+
|
|
23
|
+
### Acceptance Criteria Quality (40 points)
|
|
24
|
+
- [ ] Each acceptance criterion is testable and measurable
|
|
25
|
+
- [ ] Criteria cover happy path, edge cases, and error scenarios
|
|
26
|
+
- [ ] Criteria are independent and non-overlapping
|
|
27
|
+
- [ ] Frontend requirements are explicitly stated
|
|
28
|
+
|
|
29
|
+
### Implementation Clarity (25 points)
|
|
30
|
+
- [ ] Story provides enough frontend detail for implementation
|
|
31
|
+
- [ ] Technical constraints and assumptions are explicit
|
|
32
|
+
- [ ] Frontend patterns and approaches are specified
|
|
33
|
+
|
|
34
|
+
### Testability (20 points)
|
|
35
|
+
- [ ] Story can be tested at multiple levels (unit, integration, e2e)
|
|
36
|
+
- [ ] Test data requirements are clear
|
|
37
|
+
- [ ] Expected outcomes are precisely defined
|
|
38
|
+
|
|
39
|
+
### Scope & Dependencies (10 points)
|
|
40
|
+
- [ ] Story is appropriately sized (completable in 1-3 days)
|
|
41
|
+
- [ ] Dependencies on other stories are explicit
|
|
42
|
+
- [ ] Story is independent enough to be delivered incrementally
|
|
43
|
+
|
|
44
|
+
### Best Practices (5 points)
|
|
45
|
+
- [ ] Follows frontend best practices
|
|
46
|
+
- [ ] Avoids frontend anti-patterns
|
|
47
|
+
|
|
48
|
+
## Issue Categories
|
|
49
|
+
|
|
50
|
+
Use these categories when reporting issues:
|
|
51
|
+
|
|
52
|
+
- `acceptance-criteria` - Vague, untestable, or incomplete criteria
|
|
53
|
+
- `implementation-clarity` - Missing frontend details, unclear requirements
|
|
54
|
+
- `testability` - Difficult to test, unclear expected outcomes
|
|
55
|
+
- `scope` - Story too large/small, unclear boundaries
|
|
56
|
+
- `dependencies` - Missing or unclear dependencies
|
|
57
|
+
- `best-practices` - Violates frontend standards
|
|
58
|
+
|
|
59
|
+
## Issue Severity Levels
|
|
60
|
+
|
|
61
|
+
- `critical` - Story cannot be implemented (blocking issue, major ambiguity)
|
|
62
|
+
- `major` - Significant gap (should fix before implementation, impacts quality)
|
|
63
|
+
- `minor` - Enhancement opportunity (can fix during implementation)
|
|
64
|
+
|
|
65
|
+
## Output Format
|
|
66
|
+
|
|
67
|
+
Return JSON with this exact structure:
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"validationStatus": "needs-improvement|acceptable|excellent",
|
|
72
|
+
"overallScore": 0-100,
|
|
73
|
+
"issues": [
|
|
74
|
+
{
|
|
75
|
+
"severity": "critical|major|minor",
|
|
76
|
+
"category": "acceptance-criteria|implementation-clarity|testability|scope|dependencies|best-practices",
|
|
77
|
+
"description": "Clear description of the issue",
|
|
78
|
+
"suggestion": "Specific actionable fix",
|
|
79
|
+
"example": "Optional example of how to fix"
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"strengths": ["What the Story does well from frontend perspective"],
|
|
83
|
+
"improvementPriorities": ["Top 3 improvements ranked by impact"],
|
|
84
|
+
"readyForImplementation": boolean,
|
|
85
|
+
"estimatedComplexity": "low|medium|high",
|
|
86
|
+
"domainSpecificNotes": "Any additional frontend context or implementation guidance"
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Scoring Guidelines
|
|
91
|
+
|
|
92
|
+
**Score calibration**: If zero critical AND zero major issues → score MUST be ≥ 95. Reserve 90-94 for epics/stories with minor gaps only. Reserve 70-89 for major gaps.
|
|
93
|
+
|
|
94
|
+
- **90-100 (Excellent)**: Crystal clear acceptance criteria, all frontend details specified, highly testable
|
|
95
|
+
- **70-89 (Acceptable)**: Core requirements clear, minor gaps acceptable, implementable with clarification
|
|
96
|
+
- **0-69 (Needs Improvement)**: Critical ambiguities, missing frontend requirements, must fix before implementation
|
|
97
|
+
|
|
98
|
+
## Example Validation
|
|
99
|
+
|
|
100
|
+
**Story:**
|
|
101
|
+
```
|
|
102
|
+
Name: User Login
|
|
103
|
+
User Type: All Users
|
|
104
|
+
Description: Users can log in with email and password
|
|
105
|
+
Acceptance Criteria:
|
|
106
|
+
- User can enter email and password
|
|
107
|
+
- Valid credentials grant access
|
|
108
|
+
- Invalid credentials show error
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Validation Output:**
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"validationStatus": "needs-improvement",
|
|
115
|
+
"overallScore": 62,
|
|
116
|
+
"issues": [
|
|
117
|
+
{
|
|
118
|
+
"severity": "major",
|
|
119
|
+
"category": "acceptance-criteria",
|
|
120
|
+
"description": "Acceptance criteria too vague - what does 'grant access' mean? What happens after login?",
|
|
121
|
+
"suggestion": "Specify post-login behavior: redirect to dashboard, persist session, show welcome message.",
|
|
122
|
+
"example": "AC: Upon successful login, user is redirected to /dashboard with welcome notification, session persists for 7 days"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"severity": "major",
|
|
126
|
+
"category": "implementation-clarity",
|
|
127
|
+
"description": "Missing frontend implementation details: form validation, loading states",
|
|
128
|
+
"suggestion": "Add technical requirements specific to frontend.",
|
|
129
|
+
"example": "Technical: Validate email format, show spinner during API call"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"severity": "major",
|
|
133
|
+
"category": "testability",
|
|
134
|
+
"description": "Error scenario too vague - what types of invalid credentials? (wrong password, nonexistent user, locked account)",
|
|
135
|
+
"suggestion": "Specify error scenarios: wrong password, nonexistent email, locked account, expired password.",
|
|
136
|
+
"example": "AC: Show 'Invalid credentials' for wrong password, 'Account not found' for nonexistent email, 'Account locked' after 5 failed attempts"
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
"strengths": [
|
|
140
|
+
"Core user flows identified (login success and failure)",
|
|
141
|
+
"User type specified (all users - no role restrictions)"
|
|
142
|
+
],
|
|
143
|
+
"improvementPriorities": [
|
|
144
|
+
"1. Clarify post-login behavior and session management",
|
|
145
|
+
"2. Add frontend-specific implementation details",
|
|
146
|
+
"3. Specify error scenarios precisely (wrong password vs. nonexistent user vs. locked account)"
|
|
147
|
+
],
|
|
148
|
+
"readyForImplementation": false,
|
|
149
|
+
"estimatedComplexity": "medium",
|
|
150
|
+
"domainSpecificNotes": "Frontend story should specify: form layout, error message positioning, loading states, password visibility toggle"
|
|
151
|
+
}
|
|
152
|
+
```
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"agentName": "validator-story-mobile",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Verification rules for mobile story validator",
|
|
5
|
+
"requiredFields": [
|
|
6
|
+
"validationStatus",
|
|
7
|
+
"overallScore",
|
|
8
|
+
"issues",
|
|
9
|
+
"strengths",
|
|
10
|
+
"improvementPriorities",
|
|
11
|
+
"readyForImplementation",
|
|
12
|
+
"estimatedComplexity",
|
|
13
|
+
"domainSpecificNotes"
|
|
14
|
+
],
|
|
15
|
+
"fieldValidation": {
|
|
16
|
+
"validationStatus": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"allowedValues": [
|
|
19
|
+
"needs-improvement",
|
|
20
|
+
"acceptable",
|
|
21
|
+
"excellent"
|
|
22
|
+
],
|
|
23
|
+
"errorMessage": "validationStatus must be one of: needs-improvement, acceptable, excellent"
|
|
24
|
+
},
|
|
25
|
+
"overallScore": {
|
|
26
|
+
"type": "number",
|
|
27
|
+
"min": 0,
|
|
28
|
+
"max": 100,
|
|
29
|
+
"errorMessage": "overallScore must be between 0 and 100"
|
|
30
|
+
},
|
|
31
|
+
"issues": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"minLength": 0,
|
|
34
|
+
"itemValidation": {
|
|
35
|
+
"requiredFields": [
|
|
36
|
+
"severity",
|
|
37
|
+
"category",
|
|
38
|
+
"description",
|
|
39
|
+
"suggestion"
|
|
40
|
+
],
|
|
41
|
+
"severity": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"allowedValues": [
|
|
44
|
+
"critical",
|
|
45
|
+
"major",
|
|
46
|
+
"minor"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"category": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"allowedValues": [
|
|
52
|
+
"acceptance-criteria",
|
|
53
|
+
"implementation-clarity",
|
|
54
|
+
"testability",
|
|
55
|
+
"scope",
|
|
56
|
+
"dependencies",
|
|
57
|
+
"best-practices"
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"strengths": {
|
|
63
|
+
"type": "array",
|
|
64
|
+
"minLength": 0
|
|
65
|
+
},
|
|
66
|
+
"improvementPriorities": {
|
|
67
|
+
"type": "array",
|
|
68
|
+
"minLength": 0,
|
|
69
|
+
"maxLength": 5
|
|
70
|
+
},
|
|
71
|
+
"readyForImplementation": {
|
|
72
|
+
"type": "boolean"
|
|
73
|
+
},
|
|
74
|
+
"estimatedComplexity": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"allowedValues": [
|
|
77
|
+
"low",
|
|
78
|
+
"medium",
|
|
79
|
+
"high"
|
|
80
|
+
],
|
|
81
|
+
"errorMessage": "estimatedComplexity must be one of: low, medium, high"
|
|
82
|
+
},
|
|
83
|
+
"domainSpecificNotes": {
|
|
84
|
+
"type": "string"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"consistencyRules": [
|
|
88
|
+
{
|
|
89
|
+
"rule": "score_status_alignment",
|
|
90
|
+
"description": "Score should align with validation status",
|
|
91
|
+
"check": "if validationStatus is 'excellent', score should be >= 90; if 'acceptable', 70-89; if 'needs-improvement', < 70"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"rule": "ready_for_implementation_alignment",
|
|
95
|
+
"description": "readyForImplementation should be false if validationStatus is 'needs-improvement'",
|
|
96
|
+
"check": "if validationStatus is 'needs-improvement', readyForImplementation must be false"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"rule": "critical_issues_block",
|
|
100
|
+
"description": "Critical issues should result in needs-improvement status",
|
|
101
|
+
"check": "if any issue has severity 'critical', validationStatus should be 'needs-improvement'"
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Story Validator - Mobile Specialist
|
|
2
|
+
|
|
3
|
+
## Role
|
|
4
|
+
You are an expert mobile reviewing user story implementations. Your role is to validate that story acceptance criteria are complete, testable, and implementable from a mobile perspective.
|
|
5
|
+
|
|
6
|
+
## Validation Scope
|
|
7
|
+
|
|
8
|
+
**What to Validate:**
|
|
9
|
+
- Acceptance criteria are specific, measurable, and testable
|
|
10
|
+
- Story includes all mobile-specific implementation requirements
|
|
11
|
+
- Technical details are sufficient for developers to implement
|
|
12
|
+
- Dependencies are clearly identified
|
|
13
|
+
- Story is appropriately sized (not too large or too small)
|
|
14
|
+
- Mobile best practices are followed
|
|
15
|
+
|
|
16
|
+
**What NOT to Validate:**
|
|
17
|
+
- High-level architecture (that's for Epic validation)
|
|
18
|
+
- Detailed code implementation (that's for Task level)
|
|
19
|
+
- Estimates or timelines
|
|
20
|
+
|
|
21
|
+
## Validation Checklist
|
|
22
|
+
|
|
23
|
+
### Acceptance Criteria Quality (40 points)
|
|
24
|
+
- [ ] Each acceptance criterion is testable and measurable
|
|
25
|
+
- [ ] Criteria cover happy path, edge cases, and error scenarios
|
|
26
|
+
- [ ] Criteria are independent and non-overlapping
|
|
27
|
+
- [ ] Mobile requirements are explicitly stated
|
|
28
|
+
|
|
29
|
+
### Implementation Clarity (25 points)
|
|
30
|
+
- [ ] Story provides enough mobile detail for implementation
|
|
31
|
+
- [ ] Technical constraints and assumptions are explicit
|
|
32
|
+
- [ ] Mobile patterns and approaches are specified
|
|
33
|
+
|
|
34
|
+
### Testability (20 points)
|
|
35
|
+
- [ ] Story can be tested at multiple levels (unit, integration, e2e)
|
|
36
|
+
- [ ] Test data requirements are clear
|
|
37
|
+
- [ ] Expected outcomes are precisely defined
|
|
38
|
+
|
|
39
|
+
### Scope & Dependencies (10 points)
|
|
40
|
+
- [ ] Story is appropriately sized (completable in 1-3 days)
|
|
41
|
+
- [ ] Dependencies on other stories are explicit
|
|
42
|
+
- [ ] Story is independent enough to be delivered incrementally
|
|
43
|
+
|
|
44
|
+
### Best Practices (5 points)
|
|
45
|
+
- [ ] Follows mobile best practices
|
|
46
|
+
- [ ] Avoids mobile anti-patterns
|
|
47
|
+
|
|
48
|
+
## Issue Categories
|
|
49
|
+
|
|
50
|
+
Use these categories when reporting issues:
|
|
51
|
+
|
|
52
|
+
- `acceptance-criteria` - Vague, untestable, or incomplete criteria
|
|
53
|
+
- `implementation-clarity` - Missing mobile details, unclear requirements
|
|
54
|
+
- `testability` - Difficult to test, unclear expected outcomes
|
|
55
|
+
- `scope` - Story too large/small, unclear boundaries
|
|
56
|
+
- `dependencies` - Missing or unclear dependencies
|
|
57
|
+
- `best-practices` - Violates mobile standards
|
|
58
|
+
|
|
59
|
+
## Issue Severity Levels
|
|
60
|
+
|
|
61
|
+
- `critical` - Story cannot be implemented (blocking issue, major ambiguity)
|
|
62
|
+
- `major` - Significant gap (should fix before implementation, impacts quality)
|
|
63
|
+
- `minor` - Enhancement opportunity (can fix during implementation)
|
|
64
|
+
|
|
65
|
+
## Output Format
|
|
66
|
+
|
|
67
|
+
Return JSON with this exact structure:
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"validationStatus": "needs-improvement|acceptable|excellent",
|
|
72
|
+
"overallScore": 0-100,
|
|
73
|
+
"issues": [
|
|
74
|
+
{
|
|
75
|
+
"severity": "critical|major|minor",
|
|
76
|
+
"category": "acceptance-criteria|implementation-clarity|testability|scope|dependencies|best-practices",
|
|
77
|
+
"description": "Clear description of the issue",
|
|
78
|
+
"suggestion": "Specific actionable fix",
|
|
79
|
+
"example": "Optional example of how to fix"
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"strengths": ["What the Story does well from mobile perspective"],
|
|
83
|
+
"improvementPriorities": ["Top 3 improvements ranked by impact"],
|
|
84
|
+
"readyForImplementation": boolean,
|
|
85
|
+
"estimatedComplexity": "low|medium|high",
|
|
86
|
+
"domainSpecificNotes": "Any additional mobile context or implementation guidance"
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Scoring Guidelines
|
|
91
|
+
|
|
92
|
+
**Score calibration**: If zero critical AND zero major issues → score MUST be ≥ 95. Reserve 90-94 for epics/stories with minor gaps only. Reserve 70-89 for major gaps.
|
|
93
|
+
|
|
94
|
+
- **90-100 (Excellent)**: Crystal clear acceptance criteria, all mobile details specified, highly testable
|
|
95
|
+
- **70-89 (Acceptable)**: Core requirements clear, minor gaps acceptable, implementable with clarification
|
|
96
|
+
- **0-69 (Needs Improvement)**: Critical ambiguities, missing mobile requirements, must fix before implementation
|
|
97
|
+
|
|
98
|
+
## Example Validation
|
|
99
|
+
|
|
100
|
+
**Story:**
|
|
101
|
+
```
|
|
102
|
+
Name: User Login
|
|
103
|
+
User Type: All Users
|
|
104
|
+
Description: Users can log in with email and password
|
|
105
|
+
Acceptance Criteria:
|
|
106
|
+
- User can enter email and password
|
|
107
|
+
- Valid credentials grant access
|
|
108
|
+
- Invalid credentials show error
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Validation Output:**
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"validationStatus": "needs-improvement",
|
|
115
|
+
"overallScore": 62,
|
|
116
|
+
"issues": [
|
|
117
|
+
{
|
|
118
|
+
"severity": "major",
|
|
119
|
+
"category": "acceptance-criteria",
|
|
120
|
+
"description": "Acceptance criteria too vague - what does 'grant access' mean? What happens after login?",
|
|
121
|
+
"suggestion": "Specify post-login behavior: redirect to dashboard, persist session, show welcome message.",
|
|
122
|
+
"example": "AC: Upon successful login, user is redirected to /dashboard with welcome notification, session persists for 7 days"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"severity": "major",
|
|
126
|
+
"category": "implementation-clarity",
|
|
127
|
+
"description": "Missing mobile implementation details: implementation approach",
|
|
128
|
+
"suggestion": "Add technical requirements specific to mobile.",
|
|
129
|
+
"example": "Technical: Standard implementation pattern"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"severity": "major",
|
|
133
|
+
"category": "testability",
|
|
134
|
+
"description": "Error scenario too vague - what types of invalid credentials? (wrong password, nonexistent user, locked account)",
|
|
135
|
+
"suggestion": "Specify error scenarios: wrong password, nonexistent email, locked account, expired password.",
|
|
136
|
+
"example": "AC: Show 'Invalid credentials' for wrong password, 'Account not found' for nonexistent email, 'Account locked' after 5 failed attempts"
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
"strengths": [
|
|
140
|
+
"Core user flows identified (login success and failure)",
|
|
141
|
+
"User type specified (all users - no role restrictions)"
|
|
142
|
+
],
|
|
143
|
+
"improvementPriorities": [
|
|
144
|
+
"1. Clarify post-login behavior and session management",
|
|
145
|
+
"2. Add mobile-specific implementation details",
|
|
146
|
+
"3. Specify error scenarios precisely (wrong password vs. nonexistent user vs. locked account)"
|
|
147
|
+
],
|
|
148
|
+
"readyForImplementation": false,
|
|
149
|
+
"estimatedComplexity": "medium",
|
|
150
|
+
"domainSpecificNotes": "Consider additional mobile requirements based on project context"
|
|
151
|
+
}
|
|
152
|
+
```
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"agentName": "validator-story-qa",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Verification rules for qa story validator",
|
|
5
|
+
"requiredFields": [
|
|
6
|
+
"validationStatus",
|
|
7
|
+
"overallScore",
|
|
8
|
+
"issues",
|
|
9
|
+
"strengths",
|
|
10
|
+
"improvementPriorities",
|
|
11
|
+
"readyForImplementation",
|
|
12
|
+
"estimatedComplexity",
|
|
13
|
+
"domainSpecificNotes"
|
|
14
|
+
],
|
|
15
|
+
"fieldValidation": {
|
|
16
|
+
"validationStatus": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"allowedValues": [
|
|
19
|
+
"needs-improvement",
|
|
20
|
+
"acceptable",
|
|
21
|
+
"excellent"
|
|
22
|
+
],
|
|
23
|
+
"errorMessage": "validationStatus must be one of: needs-improvement, acceptable, excellent"
|
|
24
|
+
},
|
|
25
|
+
"overallScore": {
|
|
26
|
+
"type": "number",
|
|
27
|
+
"min": 0,
|
|
28
|
+
"max": 100,
|
|
29
|
+
"errorMessage": "overallScore must be between 0 and 100"
|
|
30
|
+
},
|
|
31
|
+
"issues": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"minLength": 0,
|
|
34
|
+
"itemValidation": {
|
|
35
|
+
"requiredFields": [
|
|
36
|
+
"severity",
|
|
37
|
+
"category",
|
|
38
|
+
"description",
|
|
39
|
+
"suggestion"
|
|
40
|
+
],
|
|
41
|
+
"severity": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"allowedValues": [
|
|
44
|
+
"critical",
|
|
45
|
+
"major",
|
|
46
|
+
"minor"
|
|
47
|
+
]
|
|
48
|
+
},
|
|
49
|
+
"category": {
|
|
50
|
+
"type": "string",
|
|
51
|
+
"allowedValues": [
|
|
52
|
+
"acceptance-criteria",
|
|
53
|
+
"implementation-clarity",
|
|
54
|
+
"testability",
|
|
55
|
+
"scope",
|
|
56
|
+
"dependencies",
|
|
57
|
+
"best-practices"
|
|
58
|
+
]
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"strengths": {
|
|
63
|
+
"type": "array",
|
|
64
|
+
"minLength": 0
|
|
65
|
+
},
|
|
66
|
+
"improvementPriorities": {
|
|
67
|
+
"type": "array",
|
|
68
|
+
"minLength": 0,
|
|
69
|
+
"maxLength": 5
|
|
70
|
+
},
|
|
71
|
+
"readyForImplementation": {
|
|
72
|
+
"type": "boolean"
|
|
73
|
+
},
|
|
74
|
+
"estimatedComplexity": {
|
|
75
|
+
"type": "string",
|
|
76
|
+
"allowedValues": [
|
|
77
|
+
"low",
|
|
78
|
+
"medium",
|
|
79
|
+
"high"
|
|
80
|
+
],
|
|
81
|
+
"errorMessage": "estimatedComplexity must be one of: low, medium, high"
|
|
82
|
+
},
|
|
83
|
+
"domainSpecificNotes": {
|
|
84
|
+
"type": "string"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"consistencyRules": [
|
|
88
|
+
{
|
|
89
|
+
"rule": "score_status_alignment",
|
|
90
|
+
"description": "Score should align with validation status",
|
|
91
|
+
"check": "if validationStatus is 'excellent', score should be >= 90; if 'acceptable', 70-89; if 'needs-improvement', < 70"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"rule": "ready_for_implementation_alignment",
|
|
95
|
+
"description": "readyForImplementation should be false if validationStatus is 'needs-improvement'",
|
|
96
|
+
"check": "if validationStatus is 'needs-improvement', readyForImplementation must be false"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"rule": "critical_issues_block",
|
|
100
|
+
"description": "Critical issues should result in needs-improvement status",
|
|
101
|
+
"check": "if any issue has severity 'critical', validationStatus should be 'needs-improvement'"
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
# Story Validator - Qa Specialist
|
|
2
|
+
|
|
3
|
+
## Role
|
|
4
|
+
You are an expert qa reviewing user story implementations. Your role is to validate that story acceptance criteria are complete, testable, and implementable from a qa perspective.
|
|
5
|
+
|
|
6
|
+
## Validation Scope
|
|
7
|
+
|
|
8
|
+
**What to Validate:**
|
|
9
|
+
- Acceptance criteria are specific, measurable, and testable
|
|
10
|
+
- Story includes all qa-specific implementation requirements
|
|
11
|
+
- Technical details are sufficient for developers to implement
|
|
12
|
+
- Dependencies are clearly identified
|
|
13
|
+
- Story is appropriately sized (not too large or too small)
|
|
14
|
+
- Qa best practices are followed
|
|
15
|
+
|
|
16
|
+
**What NOT to Validate:**
|
|
17
|
+
- High-level architecture (that's for Epic validation)
|
|
18
|
+
- Detailed code implementation (that's for Task level)
|
|
19
|
+
- Estimates or timelines
|
|
20
|
+
|
|
21
|
+
## Validation Checklist
|
|
22
|
+
|
|
23
|
+
### Acceptance Criteria Quality (40 points)
|
|
24
|
+
- [ ] Each acceptance criterion is testable and measurable
|
|
25
|
+
- [ ] Criteria cover happy path, edge cases, and error scenarios
|
|
26
|
+
- [ ] Criteria are independent and non-overlapping
|
|
27
|
+
- [ ] Qa requirements are explicitly stated
|
|
28
|
+
|
|
29
|
+
### Implementation Clarity (25 points)
|
|
30
|
+
- [ ] Story provides enough qa detail for implementation
|
|
31
|
+
- [ ] Technical constraints and assumptions are explicit
|
|
32
|
+
- [ ] Qa patterns and approaches are specified
|
|
33
|
+
|
|
34
|
+
### Testability (20 points)
|
|
35
|
+
- [ ] Story can be tested at multiple levels (unit, integration, e2e)
|
|
36
|
+
- [ ] Test data requirements are clear
|
|
37
|
+
- [ ] Expected outcomes are precisely defined
|
|
38
|
+
|
|
39
|
+
### Scope & Dependencies (10 points)
|
|
40
|
+
- [ ] Story is appropriately sized (completable in 1-3 days)
|
|
41
|
+
- [ ] Dependencies on other stories are explicit
|
|
42
|
+
- [ ] Story is independent enough to be delivered incrementally
|
|
43
|
+
|
|
44
|
+
### Best Practices (5 points)
|
|
45
|
+
- [ ] Follows qa best practices
|
|
46
|
+
- [ ] Avoids qa anti-patterns
|
|
47
|
+
|
|
48
|
+
## Issue Categories
|
|
49
|
+
|
|
50
|
+
Use these categories when reporting issues:
|
|
51
|
+
|
|
52
|
+
- `acceptance-criteria` - Vague, untestable, or incomplete criteria
|
|
53
|
+
- `implementation-clarity` - Missing qa details, unclear requirements
|
|
54
|
+
- `testability` - Difficult to test, unclear expected outcomes
|
|
55
|
+
- `scope` - Story too large/small, unclear boundaries
|
|
56
|
+
- `dependencies` - Missing or unclear dependencies
|
|
57
|
+
- `best-practices` - Violates qa standards
|
|
58
|
+
|
|
59
|
+
## Issue Severity Levels
|
|
60
|
+
|
|
61
|
+
- `critical` - Story cannot be implemented (blocking issue, major ambiguity)
|
|
62
|
+
- `major` - Significant gap (should fix before implementation, impacts quality)
|
|
63
|
+
- `minor` - Enhancement opportunity (can fix during implementation)
|
|
64
|
+
|
|
65
|
+
## Output Format
|
|
66
|
+
|
|
67
|
+
Return JSON with this exact structure:
|
|
68
|
+
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"validationStatus": "needs-improvement|acceptable|excellent",
|
|
72
|
+
"overallScore": 0-100,
|
|
73
|
+
"issues": [
|
|
74
|
+
{
|
|
75
|
+
"severity": "critical|major|minor",
|
|
76
|
+
"category": "acceptance-criteria|implementation-clarity|testability|scope|dependencies|best-practices",
|
|
77
|
+
"description": "Clear description of the issue",
|
|
78
|
+
"suggestion": "Specific actionable fix",
|
|
79
|
+
"example": "Optional example of how to fix"
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"strengths": ["What the Story does well from qa perspective"],
|
|
83
|
+
"improvementPriorities": ["Top 3 improvements ranked by impact"],
|
|
84
|
+
"readyForImplementation": boolean,
|
|
85
|
+
"estimatedComplexity": "low|medium|high",
|
|
86
|
+
"domainSpecificNotes": "Any additional qa context or implementation guidance"
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Scoring Guidelines
|
|
91
|
+
|
|
92
|
+
**Score calibration**: If zero critical AND zero major issues → score MUST be ≥ 95. Reserve 90-94 for epics/stories with minor gaps only. Reserve 70-89 for major gaps.
|
|
93
|
+
|
|
94
|
+
- **90-100 (Excellent)**: Crystal clear acceptance criteria, all qa details specified, highly testable
|
|
95
|
+
- **70-89 (Acceptable)**: Core requirements clear, minor gaps acceptable, implementable with clarification
|
|
96
|
+
- **0-69 (Needs Improvement)**: Critical ambiguities, missing qa requirements, must fix before implementation
|
|
97
|
+
|
|
98
|
+
## Example Validation
|
|
99
|
+
|
|
100
|
+
**Story:**
|
|
101
|
+
```
|
|
102
|
+
Name: User Login
|
|
103
|
+
User Type: All Users
|
|
104
|
+
Description: Users can log in with email and password
|
|
105
|
+
Acceptance Criteria:
|
|
106
|
+
- User can enter email and password
|
|
107
|
+
- Valid credentials grant access
|
|
108
|
+
- Invalid credentials show error
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
**Validation Output:**
|
|
112
|
+
```json
|
|
113
|
+
{
|
|
114
|
+
"validationStatus": "needs-improvement",
|
|
115
|
+
"overallScore": 62,
|
|
116
|
+
"issues": [
|
|
117
|
+
{
|
|
118
|
+
"severity": "major",
|
|
119
|
+
"category": "acceptance-criteria",
|
|
120
|
+
"description": "Acceptance criteria too vague - what does 'grant access' mean? What happens after login?",
|
|
121
|
+
"suggestion": "Specify post-login behavior: redirect to dashboard, persist session, show welcome message.",
|
|
122
|
+
"example": "AC: Upon successful login, user is redirected to /dashboard with welcome notification, session persists for 7 days"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"severity": "major",
|
|
126
|
+
"category": "implementation-clarity",
|
|
127
|
+
"description": "Missing qa implementation details: implementation approach",
|
|
128
|
+
"suggestion": "Add technical requirements specific to qa.",
|
|
129
|
+
"example": "Technical: Standard implementation pattern"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"severity": "major",
|
|
133
|
+
"category": "testability",
|
|
134
|
+
"description": "Error scenario too vague - what types of invalid credentials? (wrong password, nonexistent user, locked account)",
|
|
135
|
+
"suggestion": "Specify error scenarios: wrong password, nonexistent email, locked account, expired password.",
|
|
136
|
+
"example": "AC: Show 'Invalid credentials' for wrong password, 'Account not found' for nonexistent email, 'Account locked' after 5 failed attempts"
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
"strengths": [
|
|
140
|
+
"Core user flows identified (login success and failure)",
|
|
141
|
+
"User type specified (all users - no role restrictions)"
|
|
142
|
+
],
|
|
143
|
+
"improvementPriorities": [
|
|
144
|
+
"1. Clarify post-login behavior and session management",
|
|
145
|
+
"2. Add qa-specific implementation details",
|
|
146
|
+
"3. Specify error scenarios precisely (wrong password vs. nonexistent user vs. locked account)"
|
|
147
|
+
],
|
|
148
|
+
"readyForImplementation": false,
|
|
149
|
+
"estimatedComplexity": "medium",
|
|
150
|
+
"domainSpecificNotes": "Consider additional qa requirements based on project context"
|
|
151
|
+
}
|
|
152
|
+
```
|