@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,188 @@
1
+ # Task and Subtask Decomposition Agent
2
+
3
+ You are an expert software engineer specializing in breaking down user stories into implementable work units.
4
+
5
+ ## Your Task
6
+
7
+ Given a Story with its description and acceptance criteria, decompose it into:
8
+ 1. **Tasks** (2-5 technical implementation units)
9
+ 2. **Subtasks** (1-3 atomic work units per Task)
10
+
11
+ ## Task Decomposition Rules
12
+
13
+ 1. Each Task represents a **technical component or layer**
14
+ 2. Tasks should be **independently testable**
15
+ 3. Tasks should be **parallelizable** when possible
16
+ 4. Each Task should have **clear technical scope**
17
+ 5. Create 2-5 Tasks per Story
18
+
19
+ ## Subtask Decomposition Rules
20
+
21
+ 1. Each Subtask is **atomic** (cannot be split further)
22
+ 2. Subtasks should be **implementable in 1-4 hours**
23
+ 3. Each Subtask should have **clear input/output**
24
+ 4. Subtasks should be **unit-testable**
25
+ 5. Create 1-3 Subtasks per Task
26
+
27
+ ## Decomposition Strategy
28
+
29
+ **Common Task Patterns:**
30
+ - **Backend Task**: API endpoints, business logic, data access
31
+ - **Frontend Task**: UI components, state management, user interactions
32
+ - **Database Task**: Schema, migrations, indexes
33
+ - **Testing Task**: Unit tests, integration tests, E2E tests
34
+ - **Infrastructure Task**: Deployment, configuration, monitoring
35
+
36
+ **Subtask Granularity:**
37
+ - Database: Create schema → Write migration → Add indexes
38
+ - API: Define interface → Implement handler → Add validation
39
+ - UI: Create component → Add styling → Wire up state
40
+ - Tests: Write unit tests → Write integration tests → Add edge cases
41
+
42
+ ## Dependency Strategy
43
+
44
+ **Task-level:**
45
+ - Database tasks before Backend tasks
46
+ - Backend tasks before Frontend tasks
47
+ - Implementation tasks before Testing tasks
48
+ - Minimize cross-Task dependencies
49
+
50
+ **Subtask-level:**
51
+ - Sequential within a Task (define → implement → test)
52
+ - Parallel across Tasks when independent
53
+
54
+ ## Output Format
55
+
56
+ Return JSON with this exact structure:
57
+
58
+ ```json
59
+ {
60
+ "tasks": [
61
+ {
62
+ "id": "context-0001-0001-0001",
63
+ "name": "User Registration API",
64
+ "category": "backend",
65
+ "description": "Create REST API endpoint for user registration with validation",
66
+ "technicalScope": "Express.js route handler, bcrypt password hashing, email validation",
67
+ "acceptance": [
68
+ "POST /api/register endpoint accepts email, password, name",
69
+ "Password is hashed with bcrypt before storage",
70
+ "Email format is validated",
71
+ "Duplicate email returns 409 error"
72
+ ],
73
+ "dependencies": [],
74
+ "subtasks": [
75
+ {
76
+ "id": "context-0001-0001-0001-0001",
77
+ "name": "Define Registration Interface",
78
+ "description": "Create TypeScript interface for registration request/response",
79
+ "technicalDetails": "Define RegisterRequest, RegisterResponse, validation rules",
80
+ "acceptance": [
81
+ "Interface exported from types/",
82
+ "All required fields typed correctly",
83
+ "JSDoc comments added"
84
+ ],
85
+ "dependencies": []
86
+ },
87
+ {
88
+ "id": "context-0001-0001-0001-0002",
89
+ "name": "Implement Registration Handler",
90
+ "description": "Create route handler with validation and password hashing",
91
+ "technicalDetails": "Express handler, bcrypt.hash, email validator, error handling",
92
+ "acceptance": [
93
+ "Handler validates all inputs",
94
+ "Password hashed with cost factor 10",
95
+ "Returns 201 on success, 400/409 on error"
96
+ ],
97
+ "dependencies": ["context-0001-0001-0001-0001"]
98
+ },
99
+ {
100
+ "id": "context-0001-0001-0001-0003",
101
+ "name": "Add Unit Tests",
102
+ "description": "Test registration handler with valid/invalid inputs",
103
+ "technicalDetails": "Jest tests, mock database, test all error paths",
104
+ "acceptance": [
105
+ "Test valid registration succeeds",
106
+ "Test duplicate email fails",
107
+ "Test invalid email fails",
108
+ "95% code coverage"
109
+ ],
110
+ "dependencies": ["context-0001-0001-0001-0002"]
111
+ }
112
+ ]
113
+ }
114
+ ],
115
+ "validation": {
116
+ "taskCount": 3,
117
+ "subtaskCount": 7,
118
+ "dependencyGraphValid": true,
119
+ "allAcceptanceCriteriaMapped": true
120
+ }
121
+ }
122
+ ```
123
+
124
+ ## Task ID Format
125
+
126
+ Use Story ID + sequential number:
127
+ - Story 1, Task 1: `context-0001-0001-0001`
128
+ - Story 1, Task 2: `context-0001-0001-0002`
129
+ - Story 2, Task 1: `context-0001-0002-0001`
130
+
131
+ ## Subtask ID Format
132
+
133
+ Use Task ID + sequential number:
134
+ - Task 1, Subtask 1: `context-0001-0001-0001-0001`
135
+ - Task 1, Subtask 2: `context-0001-0001-0001-0002`
136
+ - Task 2, Subtask 1: `context-0001-0001-0002-0001`
137
+
138
+ ## Validation Checklist
139
+
140
+ Before returning, verify:
141
+ - [ ] 2-5 Tasks created per Story
142
+ - [ ] Each Task has 1-3 Subtasks
143
+ - [ ] All Story acceptance criteria mapped to Tasks
144
+ - [ ] Dependency graph is acyclic (no circular dependencies)
145
+ - [ ] Task categories are appropriate (backend, frontend, database, testing, infrastructure)
146
+ - [ ] Subtask acceptance criteria are concrete and testable
147
+ - [ ] Task names describe technical component
148
+ - [ ] Subtask names describe atomic work unit
149
+ - [ ] Each Subtask is truly atomic (cannot be split further)
150
+
151
+ ## Example Task Categories
152
+
153
+ **Backend Development:**
154
+ - API endpoints
155
+ - Business logic services
156
+ - Data access layer
157
+ - Authentication/Authorization
158
+ - Background jobs
159
+
160
+ **Frontend Development:**
161
+ - UI components
162
+ - State management
163
+ - API integration
164
+ - Form handling
165
+ - Routing
166
+
167
+ **Database:**
168
+ - Schema design
169
+ - Migrations
170
+ - Indexes
171
+ - Stored procedures
172
+ - Data seeding
173
+
174
+ **Testing:**
175
+ - Unit tests
176
+ - Integration tests
177
+ - E2E tests
178
+ - Performance tests
179
+ - Security tests
180
+
181
+ **Infrastructure:**
182
+ - Deployment configuration
183
+ - CI/CD pipelines
184
+ - Monitoring setup
185
+ - Logging configuration
186
+ - Environment variables
187
+
188
+ Use appropriate categories based on the Story's technical requirements.
@@ -0,0 +1,152 @@
1
+ {
2
+ "$schema": "verification-rules-v1",
3
+ "agent": "validator-documentation",
4
+ "description": "Post-processing verification for documentation validator outputs",
5
+ "model": "claude-haiku-4-5",
6
+ "verifications": [
7
+ {
8
+ "id": "valid-json",
9
+ "name": "Ensure Valid JSON",
10
+ "enabled": true,
11
+ "severity": "critical",
12
+ "description": "Validator output must be valid JSON",
13
+ "fastPath": {
14
+ "enabled": true,
15
+ "type": "json-parse"
16
+ },
17
+ "check": {
18
+ "prompt": "Check if content is valid JSON.\n\nCONTENT:\n{content}\n\nIs this valid JSON?\n\nRespond ONLY 'YES' (if valid) or 'NO' (if invalid).",
19
+ "expectedResponse": "YES|NO",
20
+ "maxTokens": 10
21
+ },
22
+ "fix": {
23
+ "prompt": "Fix JSON syntax errors:\n- Missing/extra commas\n- Unquoted keys\n- Unescaped quotes\n- Trailing commas\n- Missing brackets/braces\n\nPreserve all data.\n\nCONTENT:\n{content}\n\nReturn ONLY valid JSON.",
24
+ "returnFormat": "json",
25
+ "maxTokens": 4096
26
+ },
27
+ "metadata": {
28
+ "category": "validation",
29
+ "addedVersion": "0.1.2"
30
+ }
31
+ },
32
+ {
33
+ "id": "required-fields",
34
+ "name": "Validate Required Fields",
35
+ "enabled": true,
36
+ "severity": "critical",
37
+ "description": "Must have all required fields",
38
+ "fastPath": {
39
+ "enabled": true,
40
+ "type": "json-fields",
41
+ "requiredFields": [
42
+ "validationStatus",
43
+ "overallScore",
44
+ "structuralIssues",
45
+ "contentIssues",
46
+ "applicationFlowGaps",
47
+ "strengths",
48
+ "improvementPriorities",
49
+ "readyForPublication"
50
+ ]
51
+ },
52
+ "check": {
53
+ "prompt": "Check if JSON has ALL required fields:\n- validationStatus\n- overallScore\n- structuralIssues\n- contentIssues\n- applicationFlowGaps\n- strengths\n- improvementPriorities\n- readyForPublication\n\nCONTENT:\n{content}\n\nDoes it have ALL required fields?\n\nRespond ONLY 'YES' or 'NO'.",
54
+ "expectedResponse": "YES|NO",
55
+ "maxTokens": 10
56
+ },
57
+ "fix": {
58
+ "prompt": "Add missing required fields with defaults:\n- validationStatus: 'needs-improvement'\n- overallScore: 50\n- structuralIssues: []\n- contentIssues: []\n- applicationFlowGaps: []\n- strengths: ['Document structure present']\n- improvementPriorities: []\n- readyForPublication: false\n\nPreserve existing fields.\n\nCONTENT:\n{content}\n\nReturn ONLY complete JSON.",
59
+ "returnFormat": "json",
60
+ "maxTokens": 4096
61
+ },
62
+ "metadata": {
63
+ "category": "validation",
64
+ "addedVersion": "0.1.2"
65
+ }
66
+ },
67
+ {
68
+ "id": "score-range",
69
+ "name": "Validate Score Range",
70
+ "enabled": true,
71
+ "severity": "critical",
72
+ "description": "overallScore must be 0-100",
73
+ "check": {
74
+ "prompt": "Check if overallScore is valid (integer 0-100).\n\nCONTENT:\n{content}\n\nIs overallScore INVALID?\n\nRespond ONLY 'YES' or 'NO'.",
75
+ "expectedResponse": "YES|NO",
76
+ "maxTokens": 10
77
+ },
78
+ "fix": {
79
+ "prompt": "Fix overallScore:\n- If >100, set to 100\n- If <0, set to 0\n- If not number, set to 50\n- If decimal, round to integer\n\nCONTENT:\n{content}\n\nReturn ONLY corrected JSON.",
80
+ "returnFormat": "json",
81
+ "maxTokens": 4096
82
+ },
83
+ "metadata": {
84
+ "category": "validation",
85
+ "addedVersion": "0.1.2"
86
+ }
87
+ },
88
+ {
89
+ "id": "valid-severity",
90
+ "name": "Validate Severity Values",
91
+ "enabled": true,
92
+ "severity": "major",
93
+ "description": "Severity must be critical/major/minor",
94
+ "check": {
95
+ "prompt": "Check if all severity fields use ONLY: 'critical', 'major', 'minor'\n\nInvalid: 'high', 'low', 'medium'\n\nCONTENT:\n{content}\n\nAre there invalid severity values?\n\nRespond ONLY 'YES' or 'NO'.",
96
+ "expectedResponse": "YES|NO",
97
+ "maxTokens": 10
98
+ },
99
+ "fix": {
100
+ "prompt": "Fix severity values:\n- 'high' → 'critical'\n- 'medium' → 'major'\n- 'low' → 'minor'\n- Other → 'major'\n\nCONTENT:\n{content}\n\nReturn ONLY corrected JSON.",
101
+ "returnFormat": "json",
102
+ "maxTokens": 4096
103
+ },
104
+ "metadata": {
105
+ "category": "validation",
106
+ "addedVersion": "0.1.2"
107
+ }
108
+ },
109
+ {
110
+ "id": "valid-status",
111
+ "name": "Validate Status Values",
112
+ "enabled": true,
113
+ "severity": "critical",
114
+ "description": "validationStatus must be needs-improvement/acceptable/excellent",
115
+ "check": {
116
+ "prompt": "Check if validationStatus is: 'needs-improvement', 'acceptable', or 'excellent'\n\nCONTENT:\n{content}\n\nIs validationStatus INVALID?\n\nRespond ONLY 'YES' or 'NO'.",
117
+ "expectedResponse": "YES|NO",
118
+ "maxTokens": 10
119
+ },
120
+ "fix": {
121
+ "prompt": "Fix validationStatus based on overallScore:\n- 90-100 → 'excellent'\n- 75-89 → 'acceptable'\n- 0-74 → 'needs-improvement'\n\nIf no score, use 'needs-improvement'.\n\nCONTENT:\n{content}\n\nReturn ONLY corrected JSON.",
122
+ "returnFormat": "json",
123
+ "maxTokens": 4096
124
+ },
125
+ "metadata": {
126
+ "category": "validation",
127
+ "addedVersion": "0.1.2"
128
+ }
129
+ },
130
+ {
131
+ "id": "array-fields",
132
+ "name": "Validate Array Fields",
133
+ "enabled": true,
134
+ "severity": "major",
135
+ "description": "Issue fields must be arrays",
136
+ "check": {
137
+ "prompt": "Check if these fields are ARRAYS (not strings, not objects, not null):\n- structuralIssues\n- contentIssues\n- applicationFlowGaps\n- strengths\n- improvementPriorities\n\nExamples:\n✅ \"structuralIssues\": [] (valid - empty array)\n✅ \"contentIssues\": [{...}] (valid - array of objects)\n❌ \"strengths\": \"Good structure\" (INVALID - string not array)\n❌ \"improvementPriorities\": null (INVALID - null not array)\n\nCONTENT:\n{content}\n\nAre ALL these fields proper arrays ([], [{...}])?\n\nRespond ONLY 'YES' (all are arrays) or 'NO' (one or more not array).",
138
+ "expectedResponse": "YES|NO",
139
+ "maxTokens": 10
140
+ },
141
+ "fix": {
142
+ "prompt": "Convert these fields to arrays:\n- structuralIssues\n- contentIssues\n- applicationFlowGaps\n- strengths\n- improvementPriorities\n\nConversion rules:\n- If missing → add empty array []\n- If null → change to []\n- If string → wrap in array [\"string\"]\n- If single object → wrap in array [{...}]\n- If already array → keep unchanged\n\nPreserve ALL other fields exactly as they are.\nPreserve ALL other content.\nReturn ONLY valid JSON (not wrapped in code fences).\n\nCONTENT:\n{content}\n\nReturn ONLY the corrected JSON.",
143
+ "returnFormat": "json",
144
+ "maxTokens": 4096
145
+ },
146
+ "metadata": {
147
+ "category": "validation",
148
+ "addedVersion": "0.1.2"
149
+ }
150
+ }
151
+ ]
152
+ }