@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.
Files changed (289) hide show
  1. package/cli/agent-loader.js +21 -0
  2. package/cli/agents/agent-selector.md +129 -0
  3. package/cli/agents/architecture-recommender.md +418 -0
  4. package/cli/agents/database-deep-dive.md +470 -0
  5. package/cli/agents/database-recommender.md +634 -0
  6. package/cli/agents/doc-distributor.md +176 -0
  7. package/cli/agents/documentation-updater.md +203 -0
  8. package/cli/agents/epic-story-decomposer.md +280 -0
  9. package/cli/agents/feature-context-generator.md +91 -0
  10. package/cli/agents/gap-checker-epic.md +52 -0
  11. package/cli/agents/impact-checker-story.md +51 -0
  12. package/cli/agents/migration-guide-generator.md +305 -0
  13. package/cli/agents/mission-scope-generator.md +79 -0
  14. package/cli/agents/mission-scope-validator.md +112 -0
  15. package/cli/agents/project-context-extractor.md +107 -0
  16. package/cli/agents/project-documentation-creator.json +226 -0
  17. package/cli/agents/project-documentation-creator.md +595 -0
  18. package/cli/agents/question-prefiller.md +269 -0
  19. package/cli/agents/refiner-epic.md +39 -0
  20. package/cli/agents/refiner-story.md +42 -0
  21. package/cli/agents/solver-epic-api.json +15 -0
  22. package/cli/agents/solver-epic-api.md +39 -0
  23. package/cli/agents/solver-epic-backend.json +15 -0
  24. package/cli/agents/solver-epic-backend.md +39 -0
  25. package/cli/agents/solver-epic-cloud.json +15 -0
  26. package/cli/agents/solver-epic-cloud.md +39 -0
  27. package/cli/agents/solver-epic-data.json +15 -0
  28. package/cli/agents/solver-epic-data.md +39 -0
  29. package/cli/agents/solver-epic-database.json +15 -0
  30. package/cli/agents/solver-epic-database.md +39 -0
  31. package/cli/agents/solver-epic-developer.json +15 -0
  32. package/cli/agents/solver-epic-developer.md +39 -0
  33. package/cli/agents/solver-epic-devops.json +15 -0
  34. package/cli/agents/solver-epic-devops.md +39 -0
  35. package/cli/agents/solver-epic-frontend.json +15 -0
  36. package/cli/agents/solver-epic-frontend.md +39 -0
  37. package/cli/agents/solver-epic-mobile.json +15 -0
  38. package/cli/agents/solver-epic-mobile.md +39 -0
  39. package/cli/agents/solver-epic-qa.json +15 -0
  40. package/cli/agents/solver-epic-qa.md +39 -0
  41. package/cli/agents/solver-epic-security.json +15 -0
  42. package/cli/agents/solver-epic-security.md +39 -0
  43. package/cli/agents/solver-epic-solution-architect.json +15 -0
  44. package/cli/agents/solver-epic-solution-architect.md +39 -0
  45. package/cli/agents/solver-epic-test-architect.json +15 -0
  46. package/cli/agents/solver-epic-test-architect.md +39 -0
  47. package/cli/agents/solver-epic-ui.json +15 -0
  48. package/cli/agents/solver-epic-ui.md +39 -0
  49. package/cli/agents/solver-epic-ux.json +15 -0
  50. package/cli/agents/solver-epic-ux.md +39 -0
  51. package/cli/agents/solver-story-api.json +15 -0
  52. package/cli/agents/solver-story-api.md +39 -0
  53. package/cli/agents/solver-story-backend.json +15 -0
  54. package/cli/agents/solver-story-backend.md +39 -0
  55. package/cli/agents/solver-story-cloud.json +15 -0
  56. package/cli/agents/solver-story-cloud.md +39 -0
  57. package/cli/agents/solver-story-data.json +15 -0
  58. package/cli/agents/solver-story-data.md +39 -0
  59. package/cli/agents/solver-story-database.json +15 -0
  60. package/cli/agents/solver-story-database.md +39 -0
  61. package/cli/agents/solver-story-developer.json +15 -0
  62. package/cli/agents/solver-story-developer.md +39 -0
  63. package/cli/agents/solver-story-devops.json +15 -0
  64. package/cli/agents/solver-story-devops.md +39 -0
  65. package/cli/agents/solver-story-frontend.json +15 -0
  66. package/cli/agents/solver-story-frontend.md +39 -0
  67. package/cli/agents/solver-story-mobile.json +15 -0
  68. package/cli/agents/solver-story-mobile.md +39 -0
  69. package/cli/agents/solver-story-qa.json +15 -0
  70. package/cli/agents/solver-story-qa.md +39 -0
  71. package/cli/agents/solver-story-security.json +15 -0
  72. package/cli/agents/solver-story-security.md +39 -0
  73. package/cli/agents/solver-story-solution-architect.json +15 -0
  74. package/cli/agents/solver-story-solution-architect.md +39 -0
  75. package/cli/agents/solver-story-test-architect.json +15 -0
  76. package/cli/agents/solver-story-test-architect.md +39 -0
  77. package/cli/agents/solver-story-ui.json +15 -0
  78. package/cli/agents/solver-story-ui.md +39 -0
  79. package/cli/agents/solver-story-ux.json +15 -0
  80. package/cli/agents/solver-story-ux.md +39 -0
  81. package/cli/agents/story-doc-enricher.md +133 -0
  82. package/cli/agents/suggestion-business-analyst.md +88 -0
  83. package/cli/agents/suggestion-deployment-architect.md +263 -0
  84. package/cli/agents/suggestion-product-manager.md +129 -0
  85. package/cli/agents/suggestion-security-specialist.md +156 -0
  86. package/cli/agents/suggestion-technical-architect.md +269 -0
  87. package/cli/agents/suggestion-ux-researcher.md +93 -0
  88. package/cli/agents/task-subtask-decomposer.md +188 -0
  89. package/cli/agents/validator-documentation.json +152 -0
  90. package/cli/agents/validator-documentation.md +453 -0
  91. package/cli/agents/validator-epic-api.json +93 -0
  92. package/cli/agents/validator-epic-api.md +137 -0
  93. package/cli/agents/validator-epic-backend.json +93 -0
  94. package/cli/agents/validator-epic-backend.md +130 -0
  95. package/cli/agents/validator-epic-cloud.json +93 -0
  96. package/cli/agents/validator-epic-cloud.md +137 -0
  97. package/cli/agents/validator-epic-data.json +93 -0
  98. package/cli/agents/validator-epic-data.md +130 -0
  99. package/cli/agents/validator-epic-database.json +93 -0
  100. package/cli/agents/validator-epic-database.md +137 -0
  101. package/cli/agents/validator-epic-developer.json +74 -0
  102. package/cli/agents/validator-epic-developer.md +153 -0
  103. package/cli/agents/validator-epic-devops.json +74 -0
  104. package/cli/agents/validator-epic-devops.md +153 -0
  105. package/cli/agents/validator-epic-frontend.json +74 -0
  106. package/cli/agents/validator-epic-frontend.md +153 -0
  107. package/cli/agents/validator-epic-mobile.json +93 -0
  108. package/cli/agents/validator-epic-mobile.md +130 -0
  109. package/cli/agents/validator-epic-qa.json +93 -0
  110. package/cli/agents/validator-epic-qa.md +130 -0
  111. package/cli/agents/validator-epic-security.json +74 -0
  112. package/cli/agents/validator-epic-security.md +154 -0
  113. package/cli/agents/validator-epic-solution-architect.json +74 -0
  114. package/cli/agents/validator-epic-solution-architect.md +156 -0
  115. package/cli/agents/validator-epic-test-architect.json +93 -0
  116. package/cli/agents/validator-epic-test-architect.md +130 -0
  117. package/cli/agents/validator-epic-ui.json +93 -0
  118. package/cli/agents/validator-epic-ui.md +130 -0
  119. package/cli/agents/validator-epic-ux.json +93 -0
  120. package/cli/agents/validator-epic-ux.md +130 -0
  121. package/cli/agents/validator-selector.md +211 -0
  122. package/cli/agents/validator-story-api.json +104 -0
  123. package/cli/agents/validator-story-api.md +152 -0
  124. package/cli/agents/validator-story-backend.json +104 -0
  125. package/cli/agents/validator-story-backend.md +152 -0
  126. package/cli/agents/validator-story-cloud.json +104 -0
  127. package/cli/agents/validator-story-cloud.md +152 -0
  128. package/cli/agents/validator-story-data.json +104 -0
  129. package/cli/agents/validator-story-data.md +152 -0
  130. package/cli/agents/validator-story-database.json +104 -0
  131. package/cli/agents/validator-story-database.md +152 -0
  132. package/cli/agents/validator-story-developer.json +104 -0
  133. package/cli/agents/validator-story-developer.md +152 -0
  134. package/cli/agents/validator-story-devops.json +104 -0
  135. package/cli/agents/validator-story-devops.md +152 -0
  136. package/cli/agents/validator-story-frontend.json +104 -0
  137. package/cli/agents/validator-story-frontend.md +152 -0
  138. package/cli/agents/validator-story-mobile.json +104 -0
  139. package/cli/agents/validator-story-mobile.md +152 -0
  140. package/cli/agents/validator-story-qa.json +104 -0
  141. package/cli/agents/validator-story-qa.md +152 -0
  142. package/cli/agents/validator-story-security.json +104 -0
  143. package/cli/agents/validator-story-security.md +152 -0
  144. package/cli/agents/validator-story-solution-architect.json +104 -0
  145. package/cli/agents/validator-story-solution-architect.md +152 -0
  146. package/cli/agents/validator-story-test-architect.json +104 -0
  147. package/cli/agents/validator-story-test-architect.md +152 -0
  148. package/cli/agents/validator-story-ui.json +104 -0
  149. package/cli/agents/validator-story-ui.md +152 -0
  150. package/cli/agents/validator-story-ux.json +104 -0
  151. package/cli/agents/validator-story-ux.md +152 -0
  152. package/cli/ansi-colors.js +21 -0
  153. package/cli/build-docs.js +29 -8
  154. package/cli/ceremony-history.js +369 -0
  155. package/cli/command-logger.js +49 -12
  156. package/cli/components/static-output.js +63 -0
  157. package/cli/console-output-manager.js +94 -0
  158. package/cli/docs-sync.js +306 -0
  159. package/cli/epic-story-validator.js +1174 -0
  160. package/cli/evaluation-prompts.js +1008 -0
  161. package/cli/execution-context.js +195 -0
  162. package/cli/generate-summary-table.js +340 -0
  163. package/cli/index.js +0 -0
  164. package/cli/init-model-config.js +697 -0
  165. package/cli/init.js +1311 -274
  166. package/cli/kanban-server-manager.js +228 -0
  167. package/cli/llm-claude.js +83 -1
  168. package/cli/llm-gemini.js +85 -0
  169. package/cli/llm-mock.js +233 -0
  170. package/cli/llm-openai.js +233 -0
  171. package/cli/llm-provider.js +240 -3
  172. package/cli/llm-token-limits.js +102 -0
  173. package/cli/llm-verifier.js +454 -0
  174. package/cli/message-constants.js +58 -0
  175. package/cli/message-manager.js +334 -0
  176. package/cli/message-types.js +96 -0
  177. package/cli/messaging-api.js +297 -0
  178. package/cli/model-pricing.js +169 -0
  179. package/cli/model-query-engine.js +468 -0
  180. package/cli/model-recommendation-analyzer.js +495 -0
  181. package/cli/model-selector.js +269 -0
  182. package/cli/output-buffer.js +107 -0
  183. package/cli/process-manager.js +73 -2
  184. package/cli/repl-ink.js +4988 -1217
  185. package/cli/repl-old.js +4 -4
  186. package/cli/seed-processor.js +792 -0
  187. package/cli/sprint-planning-processor.js +1813 -0
  188. package/cli/template-processor.js +2102 -105
  189. package/cli/templates/project.md +25 -8
  190. package/cli/templates/vitepress-config.mts.template +5 -4
  191. package/cli/token-tracker.js +520 -0
  192. package/cli/tools/generate-story-validators.js +317 -0
  193. package/cli/tools/generate-validators.js +669 -0
  194. package/cli/update-checker.js +19 -17
  195. package/cli/update-notifier.js +4 -4
  196. package/cli/validation-router.js +605 -0
  197. package/cli/verification-tracker.js +563 -0
  198. package/kanban/README.md +386 -0
  199. package/kanban/client/README.md +205 -0
  200. package/kanban/client/components.json +20 -0
  201. package/kanban/client/dist/assets/index-CiD8PS2e.js +306 -0
  202. package/kanban/client/dist/assets/index-nLh0m82Q.css +1 -0
  203. package/kanban/client/dist/index.html +16 -0
  204. package/kanban/client/dist/vite.svg +1 -0
  205. package/kanban/client/index.html +15 -0
  206. package/kanban/client/package-lock.json +9442 -0
  207. package/kanban/client/package.json +44 -0
  208. package/kanban/client/postcss.config.js +6 -0
  209. package/kanban/client/public/vite.svg +1 -0
  210. package/kanban/client/src/App.jsx +622 -0
  211. package/kanban/client/src/components/ProjectFileEditorPopup.jsx +117 -0
  212. package/kanban/client/src/components/ceremony/AskArchPopup.jsx +416 -0
  213. package/kanban/client/src/components/ceremony/AskModelPopup.jsx +616 -0
  214. package/kanban/client/src/components/ceremony/CeremonyWorkflowModal.jsx +946 -0
  215. package/kanban/client/src/components/ceremony/EpicStorySelectionModal.jsx +254 -0
  216. package/kanban/client/src/components/ceremony/SponsorCallModal.jsx +619 -0
  217. package/kanban/client/src/components/ceremony/SprintPlanningModal.jsx +704 -0
  218. package/kanban/client/src/components/ceremony/steps/ArchitectureStep.jsx +150 -0
  219. package/kanban/client/src/components/ceremony/steps/CompleteStep.jsx +154 -0
  220. package/kanban/client/src/components/ceremony/steps/DatabaseStep.jsx +202 -0
  221. package/kanban/client/src/components/ceremony/steps/DeploymentStep.jsx +123 -0
  222. package/kanban/client/src/components/ceremony/steps/MissionStep.jsx +106 -0
  223. package/kanban/client/src/components/ceremony/steps/ReviewAnswersStep.jsx +125 -0
  224. package/kanban/client/src/components/ceremony/steps/RunningStep.jsx +228 -0
  225. package/kanban/client/src/components/kanban/CardDetailModal.jsx +559 -0
  226. package/kanban/client/src/components/kanban/EpicSection.jsx +146 -0
  227. package/kanban/client/src/components/kanban/FilterToolbar.jsx +222 -0
  228. package/kanban/client/src/components/kanban/GroupingSelector.jsx +57 -0
  229. package/kanban/client/src/components/kanban/KanbanBoard.jsx +211 -0
  230. package/kanban/client/src/components/kanban/KanbanCard.jsx +138 -0
  231. package/kanban/client/src/components/kanban/KanbanColumn.jsx +90 -0
  232. package/kanban/client/src/components/kanban/RefineWorkItemPopup.jsx +789 -0
  233. package/kanban/client/src/components/layout/LoadingScreen.jsx +82 -0
  234. package/kanban/client/src/components/process/ProcessMonitorBar.jsx +80 -0
  235. package/kanban/client/src/components/settings/AgentEditorPopup.jsx +171 -0
  236. package/kanban/client/src/components/settings/AgentsTab.jsx +353 -0
  237. package/kanban/client/src/components/settings/ApiKeysTab.jsx +113 -0
  238. package/kanban/client/src/components/settings/CeremonyModelsTab.jsx +98 -0
  239. package/kanban/client/src/components/settings/CostThresholdsTab.jsx +94 -0
  240. package/kanban/client/src/components/settings/ModelPricingTab.jsx +204 -0
  241. package/kanban/client/src/components/settings/ServersTab.jsx +121 -0
  242. package/kanban/client/src/components/settings/SettingsModal.jsx +84 -0
  243. package/kanban/client/src/components/stats/CostModal.jsx +353 -0
  244. package/kanban/client/src/components/ui/badge.jsx +27 -0
  245. package/kanban/client/src/components/ui/dialog.jsx +121 -0
  246. package/kanban/client/src/components/ui/tabs.jsx +85 -0
  247. package/kanban/client/src/hooks/__tests__/useGrouping.test.js +232 -0
  248. package/kanban/client/src/hooks/useGrouping.js +118 -0
  249. package/kanban/client/src/hooks/useWebSocket.js +120 -0
  250. package/kanban/client/src/lib/__tests__/api.test.js +196 -0
  251. package/kanban/client/src/lib/__tests__/status-grouping.test.js +94 -0
  252. package/kanban/client/src/lib/api.js +401 -0
  253. package/kanban/client/src/lib/status-grouping.js +144 -0
  254. package/kanban/client/src/lib/utils.js +11 -0
  255. package/kanban/client/src/main.jsx +10 -0
  256. package/kanban/client/src/store/__tests__/kanbanStore.test.js +164 -0
  257. package/kanban/client/src/store/ceremonyStore.js +172 -0
  258. package/kanban/client/src/store/filterStore.js +201 -0
  259. package/kanban/client/src/store/kanbanStore.js +115 -0
  260. package/kanban/client/src/store/processStore.js +65 -0
  261. package/kanban/client/src/store/sprintPlanningStore.js +33 -0
  262. package/kanban/client/src/styles/globals.css +59 -0
  263. package/kanban/client/tailwind.config.js +77 -0
  264. package/kanban/client/vite.config.js +28 -0
  265. package/kanban/client/vitest.config.js +28 -0
  266. package/kanban/dev-start.sh +47 -0
  267. package/kanban/package.json +12 -0
  268. package/kanban/server/index.js +516 -0
  269. package/kanban/server/routes/ceremony.js +305 -0
  270. package/kanban/server/routes/costs.js +157 -0
  271. package/kanban/server/routes/processes.js +50 -0
  272. package/kanban/server/routes/settings.js +303 -0
  273. package/kanban/server/routes/websocket.js +276 -0
  274. package/kanban/server/routes/work-items.js +347 -0
  275. package/kanban/server/services/CeremonyService.js +1190 -0
  276. package/kanban/server/services/FileSystemScanner.js +95 -0
  277. package/kanban/server/services/FileWatcher.js +144 -0
  278. package/kanban/server/services/HierarchyBuilder.js +196 -0
  279. package/kanban/server/services/ProcessRegistry.js +122 -0
  280. package/kanban/server/services/WorkItemReader.js +123 -0
  281. package/kanban/server/services/WorkItemRefineService.js +510 -0
  282. package/kanban/server/start.js +49 -0
  283. package/kanban/server/utils/kanban-logger.js +132 -0
  284. package/kanban/server/utils/markdown.js +91 -0
  285. package/kanban/server/utils/status-grouping.js +107 -0
  286. package/kanban/server/workers/sponsor-call-worker.js +84 -0
  287. package/kanban/server/workers/sprint-planning-worker.js +130 -0
  288. package/package.json +18 -5
  289. package/cli/agents/documentation.md +0 -302
@@ -0,0 +1,669 @@
1
+ #!/usr/bin/env node
2
+
3
+ /**
4
+ * Validator Generator Script
5
+ *
6
+ * Generates validator agent .md files and verification rule .json files
7
+ * for all remaining domains based on established patterns.
8
+ *
9
+ * Usage: node src/cli/tools/generate-validators.js
10
+ */
11
+
12
+ import fs from 'fs';
13
+ import path from 'path';
14
+ import { fileURLToPath } from 'url';
15
+
16
+ const __filename = fileURLToPath(import.meta.url);
17
+ const __dirname = path.dirname(__filename);
18
+
19
+ const AGENTS_PATH = path.join(__dirname, '..', 'agents');
20
+
21
+ // Validator domain configurations
22
+ const VALIDATORS = {
23
+ epic: [
24
+ {
25
+ name: 'database',
26
+ title: 'Database Specialist',
27
+ expertise: 'database design, data modeling, query optimization, and database administration',
28
+ scope: {
29
+ validate: [
30
+ 'Data model design and schema definitions',
31
+ 'Database performance and query optimization',
32
+ 'Data integrity and consistency requirements',
33
+ 'Backup, recovery, and disaster recovery strategies',
34
+ 'Database scalability (sharding, replication, partitioning)',
35
+ 'Migration and schema evolution strategies'
36
+ ],
37
+ categories: [
38
+ 'completeness - Missing tables/entities, unclear relationships',
39
+ 'clarity - Ambiguous data model, unclear database boundaries',
40
+ 'technical-depth - Insufficient normalization/denormalization strategy, missing indexes',
41
+ 'consistency - Conflicting data requirements or constraints',
42
+ 'best-practices - Violates database design principles (normalization, indexing)'
43
+ ]
44
+ },
45
+ example: {
46
+ name: 'User Data Storage',
47
+ domain: 'data-processing',
48
+ description: 'Store user data',
49
+ features: ['user table', 'profile storage'],
50
+ issues: [
51
+ {
52
+ severity: 'critical',
53
+ category: 'completeness',
54
+ description: 'Database epic missing schema definition and relationships',
55
+ suggestion: 'Define complete schema: tables, columns, data types, primary keys, foreign keys, indexes.',
56
+ example: 'Schema: users table (id PK, email unique, password_hash, created_at), profiles table (user_id FK, bio, avatar_url)'
57
+ },
58
+ {
59
+ severity: 'major',
60
+ category: 'technical-depth',
61
+ description: 'No mention of database technology (SQL vs NoSQL) or specific database engine',
62
+ suggestion: 'Specify database type (PostgreSQL, MySQL, MongoDB, DynamoDB) based on data access patterns.',
63
+ example: 'Technology: PostgreSQL for relational user data with ACID guarantees'
64
+ }
65
+ ]
66
+ }
67
+ },
68
+ {
69
+ name: 'api',
70
+ title: 'API Specialist',
71
+ expertise: 'RESTful API design, GraphQL, API security, and API lifecycle management',
72
+ scope: {
73
+ validate: [
74
+ 'API endpoints and resource models',
75
+ 'Request/response formats and data contracts',
76
+ 'API authentication and authorization',
77
+ 'Rate limiting and throttling strategies',
78
+ 'API versioning and backward compatibility',
79
+ 'Error handling and status codes'
80
+ ],
81
+ categories: [
82
+ 'completeness - Missing endpoints, unclear API surface',
83
+ 'clarity - Ambiguous API contracts, unclear resource models',
84
+ 'technical-depth - Insufficient API design detail, missing error handling',
85
+ 'consistency - Conflicting API patterns or conventions',
86
+ 'best-practices - Violates REST/GraphQL principles, poor API design'
87
+ ]
88
+ },
89
+ example: {
90
+ name: 'User API',
91
+ domain: 'api',
92
+ description: 'Expose user management APIs',
93
+ features: ['user endpoints', 'authentication'],
94
+ issues: [
95
+ {
96
+ severity: 'critical',
97
+ category: 'completeness',
98
+ description: 'API epic missing endpoint specifications (methods, paths, parameters)',
99
+ suggestion: 'Define all endpoints: GET /users, POST /users, GET /users/:id, PUT /users/:id, DELETE /users/:id',
100
+ example: 'Endpoints: GET /users (list), POST /users (create), GET /users/:id (get), PUT /users/:id (update), DELETE /users/:id (delete)'
101
+ },
102
+ {
103
+ severity: 'major',
104
+ category: 'technical-depth',
105
+ description: 'No mention of API authentication mechanism',
106
+ suggestion: 'Specify authentication: JWT bearer tokens, API keys, OAuth 2.0, session cookies.',
107
+ example: 'Authentication: JWT bearer tokens in Authorization header, 1-hour expiry, refresh token support'
108
+ }
109
+ ]
110
+ }
111
+ },
112
+ {
113
+ name: 'cloud',
114
+ title: 'Cloud Specialist',
115
+ expertise: 'cloud architecture, AWS/Azure/GCP services, cloud cost optimization, and cloud security',
116
+ scope: {
117
+ validate: [
118
+ 'Cloud service selection and architecture',
119
+ 'Multi-region and high availability strategies',
120
+ 'Cloud cost optimization and resource sizing',
121
+ 'Cloud security and compliance (IAM, encryption)',
122
+ 'Serverless vs container vs VM trade-offs',
123
+ 'Cloud-native patterns and services'
124
+ ],
125
+ categories: [
126
+ 'completeness - Missing cloud services, unclear cloud architecture',
127
+ 'clarity - Ambiguous cloud terminology, unclear service boundaries',
128
+ 'technical-depth - Insufficient HA/DR strategy, missing cost considerations',
129
+ 'consistency - Conflicting cloud approaches or providers',
130
+ 'best-practices - Violates cloud best practices (well-architected framework)'
131
+ ]
132
+ },
133
+ example: {
134
+ name: 'Cloud Infrastructure',
135
+ domain: 'infrastructure',
136
+ description: 'Set up cloud infrastructure',
137
+ features: ['compute', 'storage'],
138
+ issues: [
139
+ {
140
+ severity: 'critical',
141
+ category: 'completeness',
142
+ description: 'Cloud epic missing specific service selections (EC2 vs Lambda, S3 vs EBS)',
143
+ suggestion: 'Specify cloud services: compute (EC2, Lambda, ECS), storage (S3, EBS, EFS), networking (VPC, ALB).',
144
+ example: 'Services: ECS Fargate for containers, S3 for object storage, RDS PostgreSQL for database, CloudFront CDN'
145
+ },
146
+ {
147
+ severity: 'major',
148
+ category: 'technical-depth',
149
+ description: 'No mention of high availability or multi-AZ deployment',
150
+ suggestion: 'Define HA strategy: multi-AZ deployment, auto-scaling, health checks, failover.',
151
+ example: 'HA: Deploy across 3 AZs, auto-scaling group (min 2, max 10), ALB health checks, RDS Multi-AZ'
152
+ }
153
+ ]
154
+ }
155
+ },
156
+ {
157
+ name: 'qa',
158
+ title: 'QA Engineer',
159
+ expertise: 'quality assurance, test planning, defect management, and quality metrics',
160
+ scope: {
161
+ validate: [
162
+ 'Testing strategy and test coverage requirements',
163
+ 'Quality gates and acceptance criteria',
164
+ 'Defect management and bug triage processes',
165
+ 'Test automation and manual testing balance',
166
+ 'Performance and load testing requirements',
167
+ 'Quality metrics and success criteria'
168
+ ],
169
+ categories: [
170
+ 'completeness - Missing test scenarios, unclear quality criteria',
171
+ 'clarity - Ambiguous acceptance criteria, unclear test scope',
172
+ 'technical-depth - Insufficient test coverage, missing edge cases',
173
+ 'consistency - Conflicting quality requirements',
174
+ 'best-practices - Violates testing best practices (test pyramid, shift-left)'
175
+ ]
176
+ },
177
+ example: {
178
+ name: 'User Authentication',
179
+ domain: 'user-management',
180
+ description: 'Implement authentication',
181
+ features: ['login', 'logout'],
182
+ issues: [
183
+ {
184
+ severity: 'critical',
185
+ category: 'completeness',
186
+ description: 'Epic missing testability requirements and quality gates',
187
+ suggestion: 'Define quality gates: unit test coverage (>80%), integration tests for all flows, security tests.',
188
+ example: 'Quality Gates: 80% unit coverage, 100% integration coverage for auth flows, OWASP ZAP security scan, load test (1000 concurrent logins)'
189
+ }
190
+ ]
191
+ }
192
+ },
193
+ {
194
+ name: 'test-architect',
195
+ title: 'Test Architect',
196
+ expertise: 'test architecture, automation frameworks, test infrastructure, and testing patterns',
197
+ scope: {
198
+ validate: [
199
+ 'Test architecture and framework selection',
200
+ 'Test data management strategies',
201
+ 'Test environment and infrastructure needs',
202
+ 'Test automation patterns and anti-patterns',
203
+ 'Integration with CI/CD pipelines',
204
+ 'Test maintainability and scalability'
205
+ ],
206
+ categories: [
207
+ 'completeness - Missing test infrastructure, unclear test architecture',
208
+ 'clarity - Ambiguous test strategy, unclear automation scope',
209
+ 'technical-depth - Insufficient test framework design, missing CI/CD integration',
210
+ 'consistency - Conflicting test approaches',
211
+ 'best-practices - Violates test architecture principles (DRY, test pyramid, BDD)'
212
+ ]
213
+ },
214
+ example: {
215
+ name: 'E-commerce Checkout',
216
+ domain: 'frontend',
217
+ description: 'Build checkout flow',
218
+ features: ['cart', 'payment', 'order confirmation'],
219
+ issues: [
220
+ {
221
+ severity: 'major',
222
+ category: 'technical-depth',
223
+ description: 'Epic missing test automation framework and CI/CD integration',
224
+ suggestion: 'Specify test framework: Jest for unit, Cypress for e2e, run tests in CI before merge.',
225
+ example: 'Testing: Jest (unit), React Testing Library (component), Cypress (e2e), run in GitHub Actions on PR'
226
+ }
227
+ ]
228
+ }
229
+ },
230
+ {
231
+ name: 'ux',
232
+ title: 'UX Designer',
233
+ expertise: 'user experience design, user research, interaction design, and usability testing',
234
+ scope: {
235
+ validate: [
236
+ 'User flows and journey maps',
237
+ 'Usability and accessibility requirements',
238
+ 'User research and validation needs',
239
+ 'Information architecture and navigation',
240
+ 'User feedback and iteration strategies',
241
+ 'UX metrics and success criteria'
242
+ ],
243
+ categories: [
244
+ 'completeness - Missing user flows, unclear UX requirements',
245
+ 'clarity - Ambiguous user experience, unclear user goals',
246
+ 'technical-depth - Insufficient user research, missing usability testing',
247
+ 'consistency - Conflicting UX patterns',
248
+ 'best-practices - Violates UX principles (cognitive load, user control, consistency)'
249
+ ]
250
+ },
251
+ example: {
252
+ name: 'User Dashboard',
253
+ domain: 'frontend',
254
+ description: 'Build dashboard',
255
+ features: ['widgets', 'charts'],
256
+ issues: [
257
+ {
258
+ severity: 'major',
259
+ category: 'completeness',
260
+ description: 'Epic missing user flows and task analysis',
261
+ suggestion: 'Define primary user tasks and flows: what users need to accomplish, key actions, success paths.',
262
+ example: 'User Flows: (1) View key metrics at a glance, (2) Drill into specific metric details, (3) Customize dashboard layout'
263
+ }
264
+ ]
265
+ }
266
+ },
267
+ {
268
+ name: 'ui',
269
+ title: 'UI Designer',
270
+ expertise: 'user interface design, visual design, design systems, and UI component libraries',
271
+ scope: {
272
+ validate: [
273
+ 'Visual design and branding consistency',
274
+ 'UI component specifications',
275
+ 'Design system and component library',
276
+ 'Responsive design and breakpoints',
277
+ 'Accessibility (color contrast, typography, spacing)',
278
+ 'UI patterns and conventions'
279
+ ],
280
+ categories: [
281
+ 'completeness - Missing UI specifications, unclear component library',
282
+ 'clarity - Ambiguous visual design, unclear UI patterns',
283
+ 'technical-depth - Insufficient responsive design, missing accessibility specs',
284
+ 'consistency - Conflicting UI styles or components',
285
+ 'best-practices - Violates UI design principles (visual hierarchy, contrast, spacing)'
286
+ ]
287
+ },
288
+ example: {
289
+ name: 'Admin Panel',
290
+ domain: 'frontend',
291
+ description: 'Build admin interface',
292
+ features: ['tables', 'forms'],
293
+ issues: [
294
+ {
295
+ severity: 'major',
296
+ category: 'completeness',
297
+ description: 'Epic missing UI design system and component specifications',
298
+ suggestion: 'Define design system: color palette, typography scale, spacing system, component library (tables, forms, buttons).',
299
+ example: 'Design System: Material-UI component library, 8px spacing grid, primary color #1976d2, Roboto font family'
300
+ }
301
+ ]
302
+ }
303
+ },
304
+ {
305
+ name: 'mobile',
306
+ title: 'Mobile Developer',
307
+ expertise: 'iOS and Android development, mobile app architecture, and mobile UX patterns',
308
+ scope: {
309
+ validate: [
310
+ 'Mobile platform support (iOS, Android, cross-platform)',
311
+ 'Mobile-specific UX patterns and gestures',
312
+ 'Offline support and data synchronization',
313
+ 'Mobile performance and battery optimization',
314
+ 'Push notifications and background tasks',
315
+ 'App store deployment and distribution'
316
+ ],
317
+ categories: [
318
+ 'completeness - Missing mobile features, unclear platform support',
319
+ 'clarity - Ambiguous mobile requirements, unclear offline behavior',
320
+ 'technical-depth - Insufficient mobile architecture, missing performance optimization',
321
+ 'consistency - Conflicting mobile patterns',
322
+ 'best-practices - Violates mobile best practices (native patterns, offline-first)'
323
+ ]
324
+ },
325
+ example: {
326
+ name: 'Mobile App',
327
+ domain: 'mobile',
328
+ description: 'Build mobile application',
329
+ features: ['user interface', 'data sync'],
330
+ issues: [
331
+ {
332
+ severity: 'critical',
333
+ category: 'completeness',
334
+ description: 'Mobile epic missing platform specification (iOS, Android, React Native, Flutter)',
335
+ suggestion: 'Specify mobile approach: native iOS + Android, React Native, Flutter, or PWA.',
336
+ example: 'Platform: React Native for iOS and Android, share 90% codebase, native modules for camera/payments'
337
+ }
338
+ ]
339
+ }
340
+ },
341
+ {
342
+ name: 'backend',
343
+ title: 'Backend Developer',
344
+ expertise: 'server-side development, microservices, database integration, and API implementation',
345
+ scope: {
346
+ validate: [
347
+ 'Backend architecture and service design',
348
+ 'Database integration and ORM strategy',
349
+ 'Background jobs and async processing',
350
+ 'Caching and performance optimization',
351
+ 'Error handling and logging',
352
+ 'Service-to-service communication'
353
+ ],
354
+ categories: [
355
+ 'completeness - Missing backend services, unclear service boundaries',
356
+ 'clarity - Ambiguous backend logic, unclear data flows',
357
+ 'technical-depth - Insufficient architecture detail, missing error handling',
358
+ 'consistency - Conflicting backend patterns',
359
+ 'best-practices - Violates backend principles (separation of concerns, SOLID)'
360
+ ]
361
+ },
362
+ example: {
363
+ name: 'Order Processing',
364
+ domain: 'api',
365
+ description: 'Process customer orders',
366
+ features: ['order creation', 'order status'],
367
+ issues: [
368
+ {
369
+ severity: 'critical',
370
+ category: 'technical-depth',
371
+ description: 'Backend epic missing async processing strategy for order workflows',
372
+ suggestion: 'Define async processing: background jobs for payment, inventory, notifications. Specify queue technology.',
373
+ example: 'Async Processing: Bull queue with Redis, background jobs for payment processing, inventory updates, email notifications'
374
+ }
375
+ ]
376
+ }
377
+ },
378
+ {
379
+ name: 'data',
380
+ title: 'Data Engineer',
381
+ expertise: 'data pipelines, ETL processes, data warehousing, and big data technologies',
382
+ scope: {
383
+ validate: [
384
+ 'Data pipeline architecture and orchestration',
385
+ 'Data ingestion and extraction strategies',
386
+ 'Data transformation and quality checks',
387
+ 'Data storage and warehousing solutions',
388
+ 'Data governance and lineage tracking',
389
+ 'Data processing scalability (batch vs streaming)'
390
+ ],
391
+ categories: [
392
+ 'completeness - Missing data pipeline stages, unclear data flows',
393
+ 'clarity - Ambiguous data transformations, unclear data sources',
394
+ 'technical-depth - Insufficient data quality checks, missing scalability',
395
+ 'consistency - Conflicting data models or formats',
396
+ 'best-practices - Violates data engineering principles (idempotency, schema evolution)'
397
+ ]
398
+ },
399
+ example: {
400
+ name: 'Analytics Pipeline',
401
+ domain: 'data-processing',
402
+ description: 'Build analytics data pipeline',
403
+ features: ['data ingestion', 'reporting'],
404
+ issues: [
405
+ {
406
+ severity: 'critical',
407
+ category: 'completeness',
408
+ description: 'Data epic missing ETL pipeline stages and orchestration',
409
+ suggestion: 'Define complete ETL: data sources, extraction schedule, transformations, loading to warehouse, orchestration tool.',
410
+ example: 'ETL: Extract from PostgreSQL/S3 (hourly), transform with dbt, load to Snowflake, orchestrate with Airflow'
411
+ }
412
+ ]
413
+ }
414
+ }
415
+ ],
416
+ story: [
417
+ // Story validators follow same pattern but focus on implementation details
418
+ ]
419
+ };
420
+
421
+ /**
422
+ * Generate epic validator markdown file
423
+ */
424
+ function generateEpicValidatorMd(domain, config) {
425
+ return `# Epic Validator - ${config.title}
426
+
427
+ ## Role
428
+ You are an expert ${config.title.toLowerCase()} with 15+ years of experience in ${config.expertise}. Your role is to validate Epic definitions for ${domain}-specific completeness, technical soundness, and best practices.
429
+
430
+ ## Validation Scope
431
+
432
+ **What to Validate:**
433
+ ${config.scope.validate.map(item => `- ${item}`).join('\n')}
434
+
435
+ **What NOT to Validate:**
436
+ - Detailed implementation steps (that's for Stories/Tasks)
437
+ - Technology-specific choices (unless critical)
438
+ - Timeline or resource estimates
439
+
440
+ ## Validation Checklist
441
+
442
+ ### Completeness (40 points)
443
+ - [ ] Epic scope clearly defines ${domain} boundaries
444
+ - [ ] All critical ${domain} features are identified
445
+ - [ ] Dependencies on ${domain} services/infrastructure are explicit
446
+ - [ ] ${domain} success criteria are measurable
447
+
448
+ ### Clarity (20 points)
449
+ - [ ] ${domain} terminology is used correctly
450
+ - [ ] Epic description is understandable to non-${domain} team members
451
+ - [ ] Features are described in business value terms
452
+
453
+ ### Technical Depth (20 points)
454
+ - [ ] ${domain} architectural patterns are considered
455
+ - [ ] Performance/scalability concerns for ${domain} are addressed
456
+ - [ ] Quality considerations for ${domain} are identified
457
+
458
+ ### Consistency (10 points)
459
+ - [ ] ${domain} approach aligns with project context
460
+ - [ ] Features don't overlap or conflict
461
+
462
+ ### Best Practices (10 points)
463
+ - [ ] Industry-standard ${domain} patterns are followed
464
+ - [ ] ${domain} anti-patterns are avoided
465
+
466
+ ## Issue Categories
467
+
468
+ Use these categories when reporting issues:
469
+
470
+ ${config.scope.categories.map(cat => `- \`${cat}\``).join('\n')}
471
+
472
+ ## Issue Severity Levels
473
+
474
+ - \`critical\` - Epic cannot proceed (blocking ${domain} issue)
475
+ - \`major\` - Significant ${domain} gap (should fix before Stories)
476
+ - \`minor\` - Enhancement opportunity (can fix later)
477
+
478
+ ## Output Format
479
+
480
+ Return JSON with this exact structure:
481
+
482
+ \`\`\`json
483
+ {
484
+ "validationStatus": "needs-improvement|acceptable|excellent",
485
+ "overallScore": 0-100,
486
+ "issues": [
487
+ {
488
+ "severity": "critical|major|minor",
489
+ "category": "completeness|clarity|technical-depth|consistency|best-practices",
490
+ "description": "Clear description of the ${domain} issue",
491
+ "suggestion": "Specific actionable fix",
492
+ "example": "Optional example of how to fix"
493
+ }
494
+ ],
495
+ "strengths": ["What the Epic does well from ${domain} perspective"],
496
+ "improvementPriorities": ["Top 3 ${domain} improvements ranked by impact"],
497
+ "readyForStories": boolean,
498
+ "domainSpecificNotes": "Any additional ${domain} context or warnings"
499
+ }
500
+ \`\`\`
501
+
502
+ ## Scoring Guidelines
503
+
504
+ - **90-100 (Excellent)**: Comprehensive ${domain} coverage, clear boundaries, all best practices
505
+ - **70-89 (Acceptable)**: Core ${domain} concerns addressed, minor gaps acceptable
506
+ - **0-69 (Needs Improvement)**: Critical ${domain} gaps, must fix before proceeding
507
+
508
+ ## Example Validation
509
+
510
+ **Epic:**
511
+ \`\`\`
512
+ Name: ${config.example.name}
513
+ Domain: ${config.example.domain}
514
+ Description: ${config.example.description}
515
+ Features: ${JSON.stringify(config.example.features)}
516
+ \`\`\`
517
+
518
+ **Validation Output:**
519
+ \`\`\`json
520
+ {
521
+ "validationStatus": "needs-improvement",
522
+ "overallScore": 65,
523
+ "issues": ${JSON.stringify(config.example.issues, null, 2)},
524
+ "strengths": [
525
+ "Core ${domain} features identified"
526
+ ],
527
+ "improvementPriorities": [
528
+ "1. Address critical ${domain} gaps identified above",
529
+ "2. Add comprehensive ${domain} specifications",
530
+ "3. Define ${domain} success criteria"
531
+ ],
532
+ "readyForStories": false,
533
+ "domainSpecificNotes": "Consider additional ${domain} requirements based on project context"
534
+ }
535
+ \`\`\`
536
+ `;
537
+ }
538
+
539
+ /**
540
+ * Generate verification rules JSON
541
+ */
542
+ function generateVerificationJson(domain, type) {
543
+ return {
544
+ agentName: `validator-${type}-${domain}`,
545
+ version: '1.0.0',
546
+ description: `Verification rules for ${domain} ${type} validator`,
547
+ requiredFields: [
548
+ 'validationStatus',
549
+ 'overallScore',
550
+ 'issues',
551
+ 'strengths',
552
+ 'improvementPriorities',
553
+ 'readyForStories',
554
+ 'domainSpecificNotes'
555
+ ],
556
+ fieldValidation: {
557
+ validationStatus: {
558
+ type: 'string',
559
+ allowedValues: ['needs-improvement', 'acceptable', 'excellent'],
560
+ errorMessage: 'validationStatus must be one of: needs-improvement, acceptable, excellent'
561
+ },
562
+ overallScore: {
563
+ type: 'number',
564
+ min: 0,
565
+ max: 100,
566
+ errorMessage: 'overallScore must be between 0 and 100'
567
+ },
568
+ issues: {
569
+ type: 'array',
570
+ minLength: 0,
571
+ itemValidation: {
572
+ requiredFields: ['severity', 'category', 'description', 'suggestion'],
573
+ severity: {
574
+ type: 'string',
575
+ allowedValues: ['critical', 'major', 'minor']
576
+ },
577
+ category: {
578
+ type: 'string',
579
+ allowedValues: ['completeness', 'clarity', 'technical-depth', 'consistency', 'best-practices']
580
+ }
581
+ }
582
+ },
583
+ strengths: {
584
+ type: 'array',
585
+ minLength: 0
586
+ },
587
+ improvementPriorities: {
588
+ type: 'array',
589
+ minLength: 0,
590
+ maxLength: 5
591
+ },
592
+ readyForStories: {
593
+ type: 'boolean'
594
+ },
595
+ domainSpecificNotes: {
596
+ type: 'string'
597
+ }
598
+ },
599
+ consistencyRules: [
600
+ {
601
+ rule: 'score_status_alignment',
602
+ description: 'Score should align with validation status',
603
+ check: 'if validationStatus is \'excellent\', score should be >= 90; if \'acceptable\', 70-89; if \'needs-improvement\', < 70'
604
+ },
605
+ {
606
+ rule: 'ready_for_stories_alignment',
607
+ description: 'readyForStories should be false if validationStatus is \'needs-improvement\'',
608
+ check: 'if validationStatus is \'needs-improvement\', readyForStories must be false'
609
+ },
610
+ {
611
+ rule: 'critical_issues_block',
612
+ description: 'Critical issues should result in needs-improvement status',
613
+ check: 'if any issue has severity \'critical\', validationStatus should be \'needs-improvement\''
614
+ }
615
+ ]
616
+ };
617
+ }
618
+
619
+ /**
620
+ * Main generation function
621
+ */
622
+ function generateValidators() {
623
+ console.log('Generating validator files...\n');
624
+
625
+ // Check which validators already exist
626
+ const existingEpicValidators = [
627
+ 'security', 'devops', 'frontend', 'solution-architect', 'developer'
628
+ ];
629
+
630
+ let created = 0;
631
+ let skipped = 0;
632
+
633
+ // Generate epic validators
634
+ VALIDATORS.epic.forEach(config => {
635
+ const mdFilename = `validator-epic-${config.name}.md`;
636
+ const jsonFilename = `validator-epic-${config.name}.json`;
637
+
638
+ if (existingEpicValidators.includes(config.name)) {
639
+ console.log(`Skipping ${mdFilename} (already exists)`);
640
+ skipped += 2;
641
+ return;
642
+ }
643
+
644
+ // Generate .md file
645
+ const mdPath = path.join(AGENTS_PATH, mdFilename);
646
+ const mdContent = generateEpicValidatorMd(config.name, config);
647
+ fs.writeFileSync(mdPath, mdContent, 'utf8');
648
+ console.log(`Created ${mdFilename}`);
649
+ created++;
650
+
651
+ // Generate .json file
652
+ const jsonPath = path.join(AGENTS_PATH, jsonFilename);
653
+ const jsonContent = JSON.stringify(generateVerificationJson(config.name, 'epic'), null, 2);
654
+ fs.writeFileSync(jsonPath, jsonContent, 'utf8');
655
+ console.log(`Created ${jsonFilename}`);
656
+ created++;
657
+ });
658
+
659
+ console.log(`\nSummary:`);
660
+ console.log(` Created: ${created} files`);
661
+ console.log(` Skipped: ${skipped} files (already exist)`);
662
+ console.log(`\nNext steps:`);
663
+ console.log(` 1. Review generated validators in ${AGENTS_PATH}`);
664
+ console.log(` 2. Customize domain-specific examples and notes`);
665
+ console.log(` 3. Run story validator generation (coming next)`);
666
+ }
667
+
668
+ // Run generator
669
+ generateValidators();