@agile-vibe-coding/avc 0.1.0 → 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.
Files changed (290) hide show
  1. package/README.md +2 -0
  2. package/cli/agent-loader.js +21 -0
  3. package/cli/agents/agent-selector.md +129 -0
  4. package/cli/agents/architecture-recommender.md +418 -0
  5. package/cli/agents/database-deep-dive.md +470 -0
  6. package/cli/agents/database-recommender.md +634 -0
  7. package/cli/agents/doc-distributor.md +176 -0
  8. package/cli/agents/documentation-updater.md +203 -0
  9. package/cli/agents/epic-story-decomposer.md +280 -0
  10. package/cli/agents/feature-context-generator.md +91 -0
  11. package/cli/agents/gap-checker-epic.md +52 -0
  12. package/cli/agents/impact-checker-story.md +51 -0
  13. package/cli/agents/migration-guide-generator.md +305 -0
  14. package/cli/agents/mission-scope-generator.md +79 -0
  15. package/cli/agents/mission-scope-validator.md +112 -0
  16. package/cli/agents/project-context-extractor.md +107 -0
  17. package/cli/agents/project-documentation-creator.json +226 -0
  18. package/cli/agents/project-documentation-creator.md +595 -0
  19. package/cli/agents/question-prefiller.md +269 -0
  20. package/cli/agents/refiner-epic.md +39 -0
  21. package/cli/agents/refiner-story.md +42 -0
  22. package/cli/agents/solver-epic-api.json +15 -0
  23. package/cli/agents/solver-epic-api.md +39 -0
  24. package/cli/agents/solver-epic-backend.json +15 -0
  25. package/cli/agents/solver-epic-backend.md +39 -0
  26. package/cli/agents/solver-epic-cloud.json +15 -0
  27. package/cli/agents/solver-epic-cloud.md +39 -0
  28. package/cli/agents/solver-epic-data.json +15 -0
  29. package/cli/agents/solver-epic-data.md +39 -0
  30. package/cli/agents/solver-epic-database.json +15 -0
  31. package/cli/agents/solver-epic-database.md +39 -0
  32. package/cli/agents/solver-epic-developer.json +15 -0
  33. package/cli/agents/solver-epic-developer.md +39 -0
  34. package/cli/agents/solver-epic-devops.json +15 -0
  35. package/cli/agents/solver-epic-devops.md +39 -0
  36. package/cli/agents/solver-epic-frontend.json +15 -0
  37. package/cli/agents/solver-epic-frontend.md +39 -0
  38. package/cli/agents/solver-epic-mobile.json +15 -0
  39. package/cli/agents/solver-epic-mobile.md +39 -0
  40. package/cli/agents/solver-epic-qa.json +15 -0
  41. package/cli/agents/solver-epic-qa.md +39 -0
  42. package/cli/agents/solver-epic-security.json +15 -0
  43. package/cli/agents/solver-epic-security.md +39 -0
  44. package/cli/agents/solver-epic-solution-architect.json +15 -0
  45. package/cli/agents/solver-epic-solution-architect.md +39 -0
  46. package/cli/agents/solver-epic-test-architect.json +15 -0
  47. package/cli/agents/solver-epic-test-architect.md +39 -0
  48. package/cli/agents/solver-epic-ui.json +15 -0
  49. package/cli/agents/solver-epic-ui.md +39 -0
  50. package/cli/agents/solver-epic-ux.json +15 -0
  51. package/cli/agents/solver-epic-ux.md +39 -0
  52. package/cli/agents/solver-story-api.json +15 -0
  53. package/cli/agents/solver-story-api.md +39 -0
  54. package/cli/agents/solver-story-backend.json +15 -0
  55. package/cli/agents/solver-story-backend.md +39 -0
  56. package/cli/agents/solver-story-cloud.json +15 -0
  57. package/cli/agents/solver-story-cloud.md +39 -0
  58. package/cli/agents/solver-story-data.json +15 -0
  59. package/cli/agents/solver-story-data.md +39 -0
  60. package/cli/agents/solver-story-database.json +15 -0
  61. package/cli/agents/solver-story-database.md +39 -0
  62. package/cli/agents/solver-story-developer.json +15 -0
  63. package/cli/agents/solver-story-developer.md +39 -0
  64. package/cli/agents/solver-story-devops.json +15 -0
  65. package/cli/agents/solver-story-devops.md +39 -0
  66. package/cli/agents/solver-story-frontend.json +15 -0
  67. package/cli/agents/solver-story-frontend.md +39 -0
  68. package/cli/agents/solver-story-mobile.json +15 -0
  69. package/cli/agents/solver-story-mobile.md +39 -0
  70. package/cli/agents/solver-story-qa.json +15 -0
  71. package/cli/agents/solver-story-qa.md +39 -0
  72. package/cli/agents/solver-story-security.json +15 -0
  73. package/cli/agents/solver-story-security.md +39 -0
  74. package/cli/agents/solver-story-solution-architect.json +15 -0
  75. package/cli/agents/solver-story-solution-architect.md +39 -0
  76. package/cli/agents/solver-story-test-architect.json +15 -0
  77. package/cli/agents/solver-story-test-architect.md +39 -0
  78. package/cli/agents/solver-story-ui.json +15 -0
  79. package/cli/agents/solver-story-ui.md +39 -0
  80. package/cli/agents/solver-story-ux.json +15 -0
  81. package/cli/agents/solver-story-ux.md +39 -0
  82. package/cli/agents/story-doc-enricher.md +133 -0
  83. package/cli/agents/suggestion-business-analyst.md +88 -0
  84. package/cli/agents/suggestion-deployment-architect.md +263 -0
  85. package/cli/agents/suggestion-product-manager.md +129 -0
  86. package/cli/agents/suggestion-security-specialist.md +156 -0
  87. package/cli/agents/suggestion-technical-architect.md +269 -0
  88. package/cli/agents/suggestion-ux-researcher.md +93 -0
  89. package/cli/agents/task-subtask-decomposer.md +188 -0
  90. package/cli/agents/validator-documentation.json +152 -0
  91. package/cli/agents/validator-documentation.md +453 -0
  92. package/cli/agents/validator-epic-api.json +93 -0
  93. package/cli/agents/validator-epic-api.md +137 -0
  94. package/cli/agents/validator-epic-backend.json +93 -0
  95. package/cli/agents/validator-epic-backend.md +130 -0
  96. package/cli/agents/validator-epic-cloud.json +93 -0
  97. package/cli/agents/validator-epic-cloud.md +137 -0
  98. package/cli/agents/validator-epic-data.json +93 -0
  99. package/cli/agents/validator-epic-data.md +130 -0
  100. package/cli/agents/validator-epic-database.json +93 -0
  101. package/cli/agents/validator-epic-database.md +137 -0
  102. package/cli/agents/validator-epic-developer.json +74 -0
  103. package/cli/agents/validator-epic-developer.md +153 -0
  104. package/cli/agents/validator-epic-devops.json +74 -0
  105. package/cli/agents/validator-epic-devops.md +153 -0
  106. package/cli/agents/validator-epic-frontend.json +74 -0
  107. package/cli/agents/validator-epic-frontend.md +153 -0
  108. package/cli/agents/validator-epic-mobile.json +93 -0
  109. package/cli/agents/validator-epic-mobile.md +130 -0
  110. package/cli/agents/validator-epic-qa.json +93 -0
  111. package/cli/agents/validator-epic-qa.md +130 -0
  112. package/cli/agents/validator-epic-security.json +74 -0
  113. package/cli/agents/validator-epic-security.md +154 -0
  114. package/cli/agents/validator-epic-solution-architect.json +74 -0
  115. package/cli/agents/validator-epic-solution-architect.md +156 -0
  116. package/cli/agents/validator-epic-test-architect.json +93 -0
  117. package/cli/agents/validator-epic-test-architect.md +130 -0
  118. package/cli/agents/validator-epic-ui.json +93 -0
  119. package/cli/agents/validator-epic-ui.md +130 -0
  120. package/cli/agents/validator-epic-ux.json +93 -0
  121. package/cli/agents/validator-epic-ux.md +130 -0
  122. package/cli/agents/validator-selector.md +211 -0
  123. package/cli/agents/validator-story-api.json +104 -0
  124. package/cli/agents/validator-story-api.md +152 -0
  125. package/cli/agents/validator-story-backend.json +104 -0
  126. package/cli/agents/validator-story-backend.md +152 -0
  127. package/cli/agents/validator-story-cloud.json +104 -0
  128. package/cli/agents/validator-story-cloud.md +152 -0
  129. package/cli/agents/validator-story-data.json +104 -0
  130. package/cli/agents/validator-story-data.md +152 -0
  131. package/cli/agents/validator-story-database.json +104 -0
  132. package/cli/agents/validator-story-database.md +152 -0
  133. package/cli/agents/validator-story-developer.json +104 -0
  134. package/cli/agents/validator-story-developer.md +152 -0
  135. package/cli/agents/validator-story-devops.json +104 -0
  136. package/cli/agents/validator-story-devops.md +152 -0
  137. package/cli/agents/validator-story-frontend.json +104 -0
  138. package/cli/agents/validator-story-frontend.md +152 -0
  139. package/cli/agents/validator-story-mobile.json +104 -0
  140. package/cli/agents/validator-story-mobile.md +152 -0
  141. package/cli/agents/validator-story-qa.json +104 -0
  142. package/cli/agents/validator-story-qa.md +152 -0
  143. package/cli/agents/validator-story-security.json +104 -0
  144. package/cli/agents/validator-story-security.md +152 -0
  145. package/cli/agents/validator-story-solution-architect.json +104 -0
  146. package/cli/agents/validator-story-solution-architect.md +152 -0
  147. package/cli/agents/validator-story-test-architect.json +104 -0
  148. package/cli/agents/validator-story-test-architect.md +152 -0
  149. package/cli/agents/validator-story-ui.json +104 -0
  150. package/cli/agents/validator-story-ui.md +152 -0
  151. package/cli/agents/validator-story-ux.json +104 -0
  152. package/cli/agents/validator-story-ux.md +152 -0
  153. package/cli/ansi-colors.js +21 -0
  154. package/cli/build-docs.js +298 -0
  155. package/cli/ceremony-history.js +369 -0
  156. package/cli/command-logger.js +245 -0
  157. package/cli/components/static-output.js +63 -0
  158. package/cli/console-output-manager.js +94 -0
  159. package/cli/docs-sync.js +306 -0
  160. package/cli/epic-story-validator.js +1174 -0
  161. package/cli/evaluation-prompts.js +1008 -0
  162. package/cli/execution-context.js +195 -0
  163. package/cli/generate-summary-table.js +340 -0
  164. package/cli/index.js +3 -25
  165. package/cli/init-model-config.js +697 -0
  166. package/cli/init.js +1765 -100
  167. package/cli/kanban-server-manager.js +228 -0
  168. package/cli/llm-claude.js +109 -0
  169. package/cli/llm-gemini.js +115 -0
  170. package/cli/llm-mock.js +233 -0
  171. package/cli/llm-openai.js +233 -0
  172. package/cli/llm-provider.js +300 -0
  173. package/cli/llm-token-limits.js +102 -0
  174. package/cli/llm-verifier.js +454 -0
  175. package/cli/logger.js +32 -5
  176. package/cli/message-constants.js +58 -0
  177. package/cli/message-manager.js +334 -0
  178. package/cli/message-types.js +96 -0
  179. package/cli/messaging-api.js +297 -0
  180. package/cli/model-pricing.js +169 -0
  181. package/cli/model-query-engine.js +468 -0
  182. package/cli/model-recommendation-analyzer.js +495 -0
  183. package/cli/model-selector.js +269 -0
  184. package/cli/output-buffer.js +107 -0
  185. package/cli/process-manager.js +332 -0
  186. package/cli/repl-ink.js +5840 -504
  187. package/cli/repl-old.js +4 -4
  188. package/cli/seed-processor.js +792 -0
  189. package/cli/sprint-planning-processor.js +1813 -0
  190. package/cli/template-processor.js +2306 -108
  191. package/cli/templates/project.md +25 -8
  192. package/cli/templates/vitepress-config.mts.template +34 -0
  193. package/cli/token-tracker.js +520 -0
  194. package/cli/tools/generate-story-validators.js +317 -0
  195. package/cli/tools/generate-validators.js +669 -0
  196. package/cli/update-checker.js +19 -17
  197. package/cli/update-notifier.js +4 -4
  198. package/cli/validation-router.js +605 -0
  199. package/cli/verification-tracker.js +563 -0
  200. package/kanban/README.md +386 -0
  201. package/kanban/client/README.md +205 -0
  202. package/kanban/client/components.json +20 -0
  203. package/kanban/client/dist/assets/index-CiD8PS2e.js +306 -0
  204. package/kanban/client/dist/assets/index-nLh0m82Q.css +1 -0
  205. package/kanban/client/dist/index.html +16 -0
  206. package/kanban/client/dist/vite.svg +1 -0
  207. package/kanban/client/index.html +15 -0
  208. package/kanban/client/package-lock.json +9442 -0
  209. package/kanban/client/package.json +44 -0
  210. package/kanban/client/postcss.config.js +6 -0
  211. package/kanban/client/public/vite.svg +1 -0
  212. package/kanban/client/src/App.jsx +622 -0
  213. package/kanban/client/src/components/ProjectFileEditorPopup.jsx +117 -0
  214. package/kanban/client/src/components/ceremony/AskArchPopup.jsx +416 -0
  215. package/kanban/client/src/components/ceremony/AskModelPopup.jsx +616 -0
  216. package/kanban/client/src/components/ceremony/CeremonyWorkflowModal.jsx +946 -0
  217. package/kanban/client/src/components/ceremony/EpicStorySelectionModal.jsx +254 -0
  218. package/kanban/client/src/components/ceremony/SponsorCallModal.jsx +619 -0
  219. package/kanban/client/src/components/ceremony/SprintPlanningModal.jsx +704 -0
  220. package/kanban/client/src/components/ceremony/steps/ArchitectureStep.jsx +150 -0
  221. package/kanban/client/src/components/ceremony/steps/CompleteStep.jsx +154 -0
  222. package/kanban/client/src/components/ceremony/steps/DatabaseStep.jsx +202 -0
  223. package/kanban/client/src/components/ceremony/steps/DeploymentStep.jsx +123 -0
  224. package/kanban/client/src/components/ceremony/steps/MissionStep.jsx +106 -0
  225. package/kanban/client/src/components/ceremony/steps/ReviewAnswersStep.jsx +125 -0
  226. package/kanban/client/src/components/ceremony/steps/RunningStep.jsx +228 -0
  227. package/kanban/client/src/components/kanban/CardDetailModal.jsx +559 -0
  228. package/kanban/client/src/components/kanban/EpicSection.jsx +146 -0
  229. package/kanban/client/src/components/kanban/FilterToolbar.jsx +222 -0
  230. package/kanban/client/src/components/kanban/GroupingSelector.jsx +57 -0
  231. package/kanban/client/src/components/kanban/KanbanBoard.jsx +211 -0
  232. package/kanban/client/src/components/kanban/KanbanCard.jsx +138 -0
  233. package/kanban/client/src/components/kanban/KanbanColumn.jsx +90 -0
  234. package/kanban/client/src/components/kanban/RefineWorkItemPopup.jsx +789 -0
  235. package/kanban/client/src/components/layout/LoadingScreen.jsx +82 -0
  236. package/kanban/client/src/components/process/ProcessMonitorBar.jsx +80 -0
  237. package/kanban/client/src/components/settings/AgentEditorPopup.jsx +171 -0
  238. package/kanban/client/src/components/settings/AgentsTab.jsx +353 -0
  239. package/kanban/client/src/components/settings/ApiKeysTab.jsx +113 -0
  240. package/kanban/client/src/components/settings/CeremonyModelsTab.jsx +98 -0
  241. package/kanban/client/src/components/settings/CostThresholdsTab.jsx +94 -0
  242. package/kanban/client/src/components/settings/ModelPricingTab.jsx +204 -0
  243. package/kanban/client/src/components/settings/ServersTab.jsx +121 -0
  244. package/kanban/client/src/components/settings/SettingsModal.jsx +84 -0
  245. package/kanban/client/src/components/stats/CostModal.jsx +353 -0
  246. package/kanban/client/src/components/ui/badge.jsx +27 -0
  247. package/kanban/client/src/components/ui/dialog.jsx +121 -0
  248. package/kanban/client/src/components/ui/tabs.jsx +85 -0
  249. package/kanban/client/src/hooks/__tests__/useGrouping.test.js +232 -0
  250. package/kanban/client/src/hooks/useGrouping.js +118 -0
  251. package/kanban/client/src/hooks/useWebSocket.js +120 -0
  252. package/kanban/client/src/lib/__tests__/api.test.js +196 -0
  253. package/kanban/client/src/lib/__tests__/status-grouping.test.js +94 -0
  254. package/kanban/client/src/lib/api.js +401 -0
  255. package/kanban/client/src/lib/status-grouping.js +144 -0
  256. package/kanban/client/src/lib/utils.js +11 -0
  257. package/kanban/client/src/main.jsx +10 -0
  258. package/kanban/client/src/store/__tests__/kanbanStore.test.js +164 -0
  259. package/kanban/client/src/store/ceremonyStore.js +172 -0
  260. package/kanban/client/src/store/filterStore.js +201 -0
  261. package/kanban/client/src/store/kanbanStore.js +115 -0
  262. package/kanban/client/src/store/processStore.js +65 -0
  263. package/kanban/client/src/store/sprintPlanningStore.js +33 -0
  264. package/kanban/client/src/styles/globals.css +59 -0
  265. package/kanban/client/tailwind.config.js +77 -0
  266. package/kanban/client/vite.config.js +28 -0
  267. package/kanban/client/vitest.config.js +28 -0
  268. package/kanban/dev-start.sh +47 -0
  269. package/kanban/package.json +12 -0
  270. package/kanban/server/index.js +516 -0
  271. package/kanban/server/routes/ceremony.js +305 -0
  272. package/kanban/server/routes/costs.js +157 -0
  273. package/kanban/server/routes/processes.js +50 -0
  274. package/kanban/server/routes/settings.js +303 -0
  275. package/kanban/server/routes/websocket.js +276 -0
  276. package/kanban/server/routes/work-items.js +347 -0
  277. package/kanban/server/services/CeremonyService.js +1190 -0
  278. package/kanban/server/services/FileSystemScanner.js +95 -0
  279. package/kanban/server/services/FileWatcher.js +144 -0
  280. package/kanban/server/services/HierarchyBuilder.js +196 -0
  281. package/kanban/server/services/ProcessRegistry.js +122 -0
  282. package/kanban/server/services/WorkItemReader.js +123 -0
  283. package/kanban/server/services/WorkItemRefineService.js +510 -0
  284. package/kanban/server/start.js +49 -0
  285. package/kanban/server/utils/kanban-logger.js +132 -0
  286. package/kanban/server/utils/markdown.js +91 -0
  287. package/kanban/server/utils/status-grouping.js +107 -0
  288. package/kanban/server/workers/sponsor-call-worker.js +84 -0
  289. package/kanban/server/workers/sprint-planning-worker.js +130 -0
  290. package/package.json +34 -7
@@ -0,0 +1,152 @@
1
+ # Story Validator - Test Architect Specialist
2
+
3
+ ## Role
4
+ You are an expert test architect reviewing user story implementations. Your role is to validate that story acceptance criteria are complete, testable, and implementable from a test-architect perspective.
5
+
6
+ ## Validation Scope
7
+
8
+ **What to Validate:**
9
+ - Acceptance criteria are specific, measurable, and testable
10
+ - Story includes all test-architect-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
+ - Test Architect 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
+ - [ ] Test Architect requirements are explicitly stated
28
+
29
+ ### Implementation Clarity (25 points)
30
+ - [ ] Story provides enough test-architect detail for implementation
31
+ - [ ] Technical constraints and assumptions are explicit
32
+ - [ ] Test Architect 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 test-architect best practices
46
+ - [ ] Avoids test-architect 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 test-architect 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 test-architect 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 test-architect perspective"],
83
+ "improvementPriorities": ["Top 3 improvements ranked by impact"],
84
+ "readyForImplementation": boolean,
85
+ "estimatedComplexity": "low|medium|high",
86
+ "domainSpecificNotes": "Any additional test-architect 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 test-architect 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 test-architect 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 test-architect implementation details: implementation approach",
128
+ "suggestion": "Add technical requirements specific to test-architect.",
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 test-architect-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 test-architect requirements based on project context"
151
+ }
152
+ ```
@@ -0,0 +1,104 @@
1
+ {
2
+ "agentName": "validator-story-ui",
3
+ "version": "1.0.0",
4
+ "description": "Verification rules for ui 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 - Ui Specialist
2
+
3
+ ## Role
4
+ You are an expert ui reviewing user story implementations. Your role is to validate that story acceptance criteria are complete, testable, and implementable from a ui perspective.
5
+
6
+ ## Validation Scope
7
+
8
+ **What to Validate:**
9
+ - Acceptance criteria are specific, measurable, and testable
10
+ - Story includes all ui-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
+ - Ui 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
+ - [ ] Ui requirements are explicitly stated
28
+
29
+ ### Implementation Clarity (25 points)
30
+ - [ ] Story provides enough ui detail for implementation
31
+ - [ ] Technical constraints and assumptions are explicit
32
+ - [ ] Ui 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 ui best practices
46
+ - [ ] Avoids ui 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 ui 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 ui 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 ui perspective"],
83
+ "improvementPriorities": ["Top 3 improvements ranked by impact"],
84
+ "readyForImplementation": boolean,
85
+ "estimatedComplexity": "low|medium|high",
86
+ "domainSpecificNotes": "Any additional ui 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 ui 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 ui 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 ui implementation details: implementation approach",
128
+ "suggestion": "Add technical requirements specific to ui.",
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 ui-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 ui requirements based on project context"
151
+ }
152
+ ```
@@ -0,0 +1,104 @@
1
+ {
2
+ "agentName": "validator-story-ux",
3
+ "version": "1.0.0",
4
+ "description": "Verification rules for ux 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 - Ux Specialist
2
+
3
+ ## Role
4
+ You are an expert ux reviewing user story implementations. Your role is to validate that story acceptance criteria are complete, testable, and implementable from a ux perspective.
5
+
6
+ ## Validation Scope
7
+
8
+ **What to Validate:**
9
+ - Acceptance criteria are specific, measurable, and testable
10
+ - Story includes all ux-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
+ - Ux 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
+ - [ ] Ux requirements are explicitly stated
28
+
29
+ ### Implementation Clarity (25 points)
30
+ - [ ] Story provides enough ux detail for implementation
31
+ - [ ] Technical constraints and assumptions are explicit
32
+ - [ ] Ux 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 ux best practices
46
+ - [ ] Avoids ux 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 ux 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 ux 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 ux perspective"],
83
+ "improvementPriorities": ["Top 3 improvements ranked by impact"],
84
+ "readyForImplementation": boolean,
85
+ "estimatedComplexity": "low|medium|high",
86
+ "domainSpecificNotes": "Any additional ux 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 ux 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 ux 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 ux implementation details: implementation approach",
128
+ "suggestion": "Add technical requirements specific to ux.",
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 ux-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 ux requirements based on project context"
151
+ }
152
+ ```
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Shared ANSI color helpers for static output via outputBuffer.append()
3
+ *
4
+ * Use these in strings passed to outputBuffer.append() or sendOutput().
5
+ * Ink strips ANSI codes for layout measurement, so no layout impact.
6
+ */
7
+
8
+ const R = '\x1b[0m';
9
+
10
+ export const bold = s => `\x1b[1m${s}${R}`;
11
+ export const dim = s => `\x1b[2m${s}${R}`;
12
+ export const cyan = s => `\x1b[36m${s}${R}`;
13
+ export const green = s => `\x1b[32m${s}${R}`;
14
+ export const yellow = s => `\x1b[33m${s}${R}`;
15
+ export const red = s => `\x1b[31m${s}${R}`;
16
+ export const blue = s => `\x1b[34m${s}${R}`;
17
+ export const gray = s => `\x1b[90m${s}${R}`;
18
+ export const boldCyan = s => `\x1b[1m\x1b[36m${s}${R}`;
19
+ export const boldGreen = s => `\x1b[1m\x1b[32m${s}${R}`;
20
+ export const boldYellow = s => `\x1b[1m\x1b[33m${s}${R}`;
21
+ export const boldRed = s => `\x1b[1m\x1b[31m${s}${R}`;