@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,386 @@
1
+ # AVC Kanban Board
2
+
3
+ Visual kanban board for managing AVC project work items.
4
+
5
+ ## Overview
6
+
7
+ The AVC Kanban Board is a full-stack web application that provides an interactive visual interface for managing work items in an Agile Vibe Coding project. It consists of:
8
+
9
+ - **Backend Server** (`server/`) - Express.js API with WebSocket support
10
+ - **Frontend Client** (`client/`) - React SPA with real-time updates
11
+
12
+ ## Features
13
+
14
+ ### Core Functionality
15
+
16
+ - **Visual Workflow**: 5-column kanban board (Backlog → Ready → In Progress → Review → Done)
17
+ - **Work Item Management**: View and filter Epics, Stories, Tasks, Subtasks
18
+ - **Real-time Updates**: WebSocket synchronization when work items change
19
+ - **Advanced Grouping**: View by Status, Epic, or Type
20
+ - **Interactive Details**: Click cards for full work item information
21
+ - **Powerful Filtering**: Type filters, column visibility, full-text search
22
+ - **Beautiful Animations**: Framer Motion-powered transitions and interactions
23
+
24
+ ### Technical Features
25
+
26
+ - **File Watching**: Chokidar monitors `.avc/project/` for changes
27
+ - **WebSocket**: Real-time bidirectional communication
28
+ - **State Management**: Zustand with localStorage persistence
29
+ - **Responsive UI**: Tailwind CSS with mobile-friendly design
30
+ - **Markdown Rendering**: Full support for documentation and context
31
+ - **Keyboard Navigation**: Arrow keys, Escape, and shortcuts
32
+
33
+ ## Architecture
34
+
35
+ ```
36
+ kanban/
37
+ ├── server/ # Backend Express.js application
38
+ │ ├── start.js # Server entry point
39
+ │ ├── api.js # REST API routes
40
+ │ ├── work-items.js # Work item data layer
41
+ │ └── README.md # Server documentation
42
+ ├── client/ # Frontend React application
43
+ │ ├── src/
44
+ │ │ ├── components/ # React components
45
+ │ │ ├── hooks/ # Custom React hooks
46
+ │ │ ├── lib/ # Utility functions
47
+ │ │ ├── store/ # Zustand state management
48
+ │ │ └── main.jsx # React entry point
49
+ │ ├── public/ # Static assets
50
+ │ ├── vite.config.js # Vite configuration
51
+ │ └── README.md # Client documentation
52
+ └── README.md # This file
53
+ ```
54
+
55
+ ## Usage
56
+
57
+ ### Starting the Server
58
+
59
+ From the AVC CLI:
60
+
61
+ ```sh
62
+ > /kanban
63
+ ```
64
+
65
+ This starts both backend and frontend servers:
66
+ - Backend API/WebSocket: http://localhost:4174
67
+ - Frontend UI: http://localhost:5173
68
+
69
+ ### Development
70
+
71
+ **Backend (server):**
72
+
73
+ ```sh
74
+ cd server
75
+ node start.js
76
+ ```
77
+
78
+ **Frontend (client):**
79
+
80
+ ```sh
81
+ cd client
82
+ npm install
83
+ npm run dev
84
+ ```
85
+
86
+ The Vite dev server proxies API requests to the backend.
87
+
88
+ ## Configuration
89
+
90
+ Edit `.avc/avc.json` in your AVC project:
91
+
92
+ ```json
93
+ {
94
+ "settings": {
95
+ "kanban": {
96
+ "port": 4174
97
+ }
98
+ }
99
+ }
100
+ ```
101
+
102
+ **Ports:**
103
+ - `port` - Backend server port (default: 4174)
104
+ - Frontend port is hardcoded to 5173 in `client/vite.config.js`
105
+
106
+ ## API Reference
107
+
108
+ ### REST Endpoints
109
+
110
+ **GET /api/health**
111
+ ```json
112
+ { "status": "ok", "uptime": 12345, "port": 4174 }
113
+ ```
114
+
115
+ **GET /api/stats**
116
+ ```json
117
+ {
118
+ "totalItems": 42,
119
+ "byStatus": { "planned": 5, "ready": 3, ... },
120
+ "byType": { "epic": 2, "story": 15, ... }
121
+ }
122
+ ```
123
+
124
+ **GET /api/work-items**
125
+ Returns array of work items. Optional query params: `type`, `status`
126
+
127
+ **GET /api/work-items/grouped**
128
+ Returns grouped work items. Query param: `groupBy` (status|epic|type)
129
+
130
+ **GET /api/work-items/:id**
131
+ Returns single work item with full details.
132
+
133
+ **GET /api/work-items/:id/doc**
134
+ Returns work item documentation (doc.md) as plain text.
135
+
136
+ **GET /api/work-items/:id/context**
137
+ Returns aggregated context from parent hierarchy as plain text.
138
+
139
+ ### WebSocket
140
+
141
+ **Connection:** `ws://localhost:4174/ws`
142
+
143
+ **Events:**
144
+ - Server → Client: `{ "type": "update", "data": "..." }`
145
+ - Server → Client: `{ "type": "ping" }`
146
+ - Client → Server: `{ "type": "pong" }`
147
+
148
+ Heartbeat interval: 30 seconds
149
+
150
+ ## Status Mapping
151
+
152
+ AVC's 9 statuses are mapped to 5 kanban columns:
153
+
154
+ | AVC Status | Kanban Column |
155
+ |------------|---------------|
156
+ | `planned` | Backlog |
157
+ | `pending` | Backlog |
158
+ | `ready` | Ready |
159
+ | `implementing` | In Progress |
160
+ | `feedback` | In Progress |
161
+ | `implemented` | Review |
162
+ | `testing` | Review |
163
+ | `completed` | Done |
164
+
165
+ ## Testing
166
+
167
+ **Client tests:**
168
+
169
+ ```sh
170
+ cd client
171
+ npm test
172
+ npm run test:coverage
173
+ ```
174
+
175
+ **Test files:**
176
+ - `src/lib/__tests__/status-grouping.test.js` - Status mapping logic
177
+ - `src/lib/__tests__/api.test.js` - API client
178
+ - `src/store/__tests__/kanbanStore.test.js` - Zustand store
179
+ - `src/hooks/__tests__/useGrouping.test.js` - Grouping hook
180
+
181
+ **Server tests:**
182
+
183
+ Currently no unit tests for server. Integration testing via manual QA.
184
+
185
+ ## Dependencies
186
+
187
+ ### Backend
188
+
189
+ - `express` - Web framework
190
+ - `cors` - CORS middleware
191
+ - `chokidar` - File watching
192
+ - `ws` - WebSocket server
193
+ - `marked` - Markdown parser (for future features)
194
+
195
+ ### Frontend
196
+
197
+ - `react` ^18.3.1 - UI framework
198
+ - `react-dom` ^18.3.1 - React DOM bindings
199
+ - `vite` ^6.0.5 - Build tool
200
+ - `zustand` ^5.0.2 - State management
201
+ - `framer-motion` ^11.15.0 - Animations
202
+ - `lucide-react` ^0.468.0 - Icons
203
+ - `react-markdown` ^9.0.1 - Markdown rendering
204
+ - `tailwindcss` ^3.4.17 - CSS framework
205
+ - `@tailwindcss/typography` ^0.5.19 - Markdown styling
206
+ - `vitest` ^2.1.9 - Testing framework
207
+ - `@testing-library/react` ^16.1.0 - React testing utilities
208
+
209
+ ## Development Workflow
210
+
211
+ ### Adding New Features
212
+
213
+ 1. **Backend (API):**
214
+ - Add route to `server/api.js`
215
+ - Add data layer logic to `server/work-items.js`
216
+ - Test endpoint manually
217
+
218
+ 2. **Frontend (UI):**
219
+ - Add component to `client/src/components/`
220
+ - Add hook if needed to `client/src/hooks/`
221
+ - Update store if state changes needed
222
+ - Write tests in `__tests__/` directories
223
+
224
+ ### Building for Production
225
+
226
+ **Client:**
227
+
228
+ ```sh
229
+ cd client
230
+ npm run build
231
+ ```
232
+
233
+ Outputs to `client/dist/` (gitignored).
234
+
235
+ **Server:**
236
+
237
+ No build step needed. Node.js runs directly.
238
+
239
+ ### Debugging
240
+
241
+ **Backend:**
242
+
243
+ ```sh
244
+ DEBUG=* node server/start.js
245
+ ```
246
+
247
+ **Frontend:**
248
+
249
+ Open browser DevTools:
250
+ - Console - JavaScript errors and logs
251
+ - Network - API and WebSocket traffic
252
+ - React DevTools - Component hierarchy and state
253
+
254
+ ## Integration with AVC CLI
255
+
256
+ The kanban server is integrated into the AVC CLI via:
257
+
258
+ 1. **Command Handler** (`src/cli/repl-ink.js:runKanban`)
259
+ - Checks for work items
260
+ - Handles port conflicts
261
+ - Spawns background process
262
+ - Displays server URLs
263
+
264
+ 2. **Server Manager** (`src/cli/kanban-server-manager.js`)
265
+ - Port availability checking
266
+ - Process identification (PID lookup)
267
+ - Graceful shutdown
268
+
269
+ 3. **Background Process** (`src/cli/process-manager.js`)
270
+ - Lifecycle management
271
+ - Output capture
272
+ - Event emission
273
+ - Auto-cleanup
274
+
275
+ ## Troubleshooting
276
+
277
+ ### Server won't start
278
+
279
+ **Check port availability:**
280
+ ```sh
281
+ lsof -i :4174
282
+ lsof -i :5173
283
+ ```
284
+
285
+ **Kill conflicting process:**
286
+ ```sh
287
+ kill -9 <PID>
288
+ ```
289
+
290
+ **Change port:**
291
+ Edit `.avc/avc.json` and `client/vite.config.js`
292
+
293
+ ### No work items displayed
294
+
295
+ **Verify work items exist:**
296
+ ```sh
297
+ ls -R .avc/project/
298
+ ```
299
+
300
+ Should see `epic/`, `story/`, `task/`, `subtask/` directories.
301
+
302
+ **Check item.json format:**
303
+ ```json
304
+ {
305
+ "id": "EPIC-001",
306
+ "type": "epic",
307
+ "name": "Epic Name",
308
+ "status": "implementing"
309
+ }
310
+ ```
311
+
312
+ ### WebSocket not connecting
313
+
314
+ **Check server logs:**
315
+ ```sh
316
+ > /processes
317
+ ```
318
+
319
+ Select "Kanban Server" to view output.
320
+
321
+ **Check browser console:**
322
+ F12 → Console tab → Look for WebSocket errors
323
+
324
+ **Verify health endpoint:**
325
+ ```sh
326
+ curl http://localhost:4174/api/health
327
+ ```
328
+
329
+ ### Filters not working
330
+
331
+ **Clear localStorage:**
332
+ Browser DevTools → Application → Local Storage → Delete `avc-kanban-filters`
333
+
334
+ **Reset filters:**
335
+ Click "Reset" button in filter toolbar.
336
+
337
+ ## Future Enhancements
338
+
339
+ Potential features for future versions:
340
+
341
+ - [ ] Drag & drop to change work item status
342
+ - [ ] Inline editing of work item properties
343
+ - [ ] Batch operations (bulk status change)
344
+ - [ ] Custom column definitions
345
+ - [ ] Export to CSV/JSON
346
+ - [ ] Performance metrics (cycle time, lead time)
347
+ - [ ] Swimlanes for assignees
348
+ - [ ] Board snapshots for retrospectives
349
+ - [ ] Integration with git branches
350
+ - [ ] Mobile app (React Native)
351
+
352
+ ## Contributing
353
+
354
+ See root `CONTRIBUTING.md` for development guidelines.
355
+
356
+ ### Code Style
357
+
358
+ - **Backend**: Node.js with ES modules
359
+ - **Frontend**: React functional components with hooks
360
+ - **CSS**: Tailwind utility classes
361
+ - **State**: Zustand for global, React hooks for local
362
+ - **Testing**: Vitest with AAA pattern
363
+
364
+ ### Pull Request Checklist
365
+
366
+ - [ ] Tests pass (`npm test`)
367
+ - [ ] No console errors in browser
368
+ - [ ] Markdown files updated
369
+ - [ ] No lint warnings
370
+ - [ ] Mobile responsive
371
+ - [ ] Keyboard accessible
372
+
373
+ ## License
374
+
375
+ MIT - See root LICENSE file
376
+
377
+ ## Support
378
+
379
+ - **Documentation**: [ceremonies/kanban.md](../../ceremonies/kanban.md)
380
+ - **Commands**: [COMMANDS.md](../../COMMANDS.md)
381
+ - **Issues**: https://github.com/anthropics/agilevibecoding/issues
382
+
383
+ ---
384
+
385
+ **Version:** 0.1.0
386
+ **Last Updated:** 2026-02-14
@@ -0,0 +1,205 @@
1
+ # AVC Kanban Board - Frontend
2
+
3
+ Modern React frontend for the AVC Kanban Board.
4
+
5
+ ## Tech Stack
6
+
7
+ - **React 18** - UI framework with hooks
8
+ - **Vite 6** - Build tool and dev server
9
+ - **Tailwind CSS 3.4** - Utility-first CSS framework
10
+ - **@tailwindcss/typography** - Markdown styling
11
+ - **Zustand 5.0** - Lightweight state management with persistence
12
+ - **Framer Motion 11.15** - Production-grade animation library
13
+ - **Lucide React** - Beautiful icon library (300+ icons)
14
+ - **React Markdown 9.0** - Markdown rendering with GFM support
15
+ - **Vitest 2.1** - Fast unit testing framework
16
+ - **@testing-library/react 16.1** - React testing utilities
17
+
18
+ ## Development
19
+
20
+ ### Start Dev Server
21
+
22
+ ```bash
23
+ npm run dev
24
+ ```
25
+
26
+ The frontend will be available at `http://localhost:5173`.
27
+
28
+ The backend API must be running on `http://localhost:4174`.
29
+
30
+ ### Build for Production
31
+
32
+ ```bash
33
+ npm run build
34
+ ```
35
+
36
+ ### Preview Production Build
37
+
38
+ ```bash
39
+ npm run preview
40
+ ```
41
+
42
+ ## Project Structure
43
+
44
+ ```
45
+ src/
46
+ ├── components/
47
+ │ ├── ui/ # shadcn/ui-inspired components
48
+ │ │ ├── dialog.jsx # Modal dialog with animations
49
+ │ │ ├── tabs.jsx # Tabbed interface
50
+ │ │ └── badge.jsx # Status badges
51
+ │ ├── kanban/ # Kanban-specific components
52
+ │ │ ├── KanbanBoard.jsx # Main board container
53
+ │ │ ├── KanbanColumn.jsx # Workflow column
54
+ │ │ ├── KanbanCard.jsx # Work item card
55
+ │ │ ├── CardDetailModal.jsx # Detailed work item view
56
+ │ │ ├── FilterToolbar.jsx # Filtering controls
57
+ │ │ ├── GroupingSelector.jsx # Grouping mode switcher
58
+ │ │ └── EpicSection.jsx # Epic grouping view
59
+ │ └── layout/ # Layout components
60
+ │ └── LoadingScreen.jsx # Loading states & skeletons
61
+ ├── hooks/
62
+ │ ├── useWebSocket.js # WebSocket with auto-reconnect
63
+ │ └── useGrouping.js # Grouping logic (status/epic/type)
64
+ │ └── __tests__/ # Hook unit tests
65
+ │ └── useGrouping.test.js
66
+ ├── store/ # Zustand state management
67
+ │ ├── kanbanStore.js # Work items state
68
+ │ ├── filterStore.js # Filters with localStorage persistence
69
+ │ └── __tests__/ # Store unit tests
70
+ │ └── kanbanStore.test.js
71
+ ├── lib/
72
+ │ ├── api.js # API client functions
73
+ │ ├── utils.js # Utility functions (cn, clsx)
74
+ │ ├── status-grouping.js # Status → column mapping
75
+ │ └── __tests__/ # Lib unit tests
76
+ │ ├── status-grouping.test.js
77
+ │ └── api.test.js
78
+ ├── App.jsx # Root component
79
+ ├── main.jsx # React entry point
80
+ └── index.css # Global styles and Tailwind imports
81
+ ```
82
+
83
+ ## API Endpoints
84
+
85
+ The frontend communicates with the backend API:
86
+
87
+ - `GET /api/health` - Health check
88
+ - `GET /api/stats` - Statistics
89
+ - `GET /api/work-items` - All work items
90
+ - `GET /api/work-items/grouped` - Grouped by column
91
+ - `GET /api/work-items/:id` - Single work item
92
+ - `GET /api/work-items/:id/doc` - Documentation (HTML)
93
+ - `GET /api/work-items/:id/context` - Context (HTML)
94
+ - `WS /ws` - WebSocket for real-time updates
95
+
96
+ ## Real-Time Updates
97
+
98
+ The frontend connects to the backend WebSocket server for live updates:
99
+
100
+ - File changes in `.avc/project/` automatically refresh the board
101
+ - No manual refresh needed
102
+ - Connection status indicator in header
103
+
104
+ ## Implementation Status
105
+
106
+ **🎉 ALL STEPS COMPLETE**
107
+
108
+ ### ✅ Step 3: Frontend Setup
109
+ - Vite + React 18 project initialized
110
+ - Tailwind CSS with @tailwindcss/typography
111
+ - shadcn/ui-inspired components (Dialog, Tabs, Badge)
112
+ - API client with REST endpoints
113
+ - WebSocket hook with auto-reconnection
114
+
115
+ ### ✅ Step 4: State Management + UI Components
116
+ - Zustand stores (kanbanStore, filterStore)
117
+ - localStorage persistence for filters
118
+ - KanbanBoard, KanbanColumn, KanbanCard components
119
+ - FilterToolbar with type filters, search, column visibility
120
+ - Framer Motion animations (entrance, hover, transitions)
121
+
122
+ ### ✅ Step 5: Detail Modal
123
+ - CardDetailModal with tabbed navigation
124
+ - Overview, Context, Documentation, Children tabs
125
+ - Markdown rendering with syntax highlighting
126
+ - Keyboard navigation (arrow keys, Escape)
127
+ - Fetch full details on modal open
128
+
129
+ ### ✅ Step 6: Grouping + Animations
130
+ - useGrouping hook with 3 modes: Status, Epic, Type
131
+ - EpicSection component with collapsible sections
132
+ - GroupingSelector for mode switching
133
+ - Progress bars for epic completion tracking
134
+ - Smooth transitions between grouping modes
135
+ - LoadingScreen with skeleton states
136
+
137
+ ### ✅ Step 7: Testing + Documentation
138
+ - Unit tests for all core modules:
139
+ - status-grouping.test.js (grouping logic)
140
+ - api.test.js (API client)
141
+ - kanbanStore.test.js (Zustand store)
142
+ - useGrouping.test.js (grouping hook)
143
+ - Vitest configuration
144
+ - COMMANDS.md updated with /kanban documentation
145
+ - ceremonies/kanban.md user guide created
146
+ - READMEs updated (kanban/, client/)
147
+
148
+ ## Features
149
+
150
+ ### Visual Organization
151
+ - 5-column workflow (Backlog → Ready → In Progress → Review → Done)
152
+ - 9 AVC statuses mapped to logical columns
153
+ - Card-based interface with status badges
154
+ - Type icons (🏛️ Epic, 📖 Story, ⚙️ Task, 📝 Subtask)
155
+
156
+ ### Filtering & Search
157
+ - Type filters (Epics, Stories, Tasks, Subtasks)
158
+ - Column visibility toggles
159
+ - Full-text search (300ms debounced)
160
+ - Filter presets (All, Active Work, Hide Done)
161
+ - localStorage persistence
162
+
163
+ ### Grouping Modes
164
+ - **By Status**: Traditional kanban columns
165
+ - **By Epic**: Hierarchical sections with progress bars
166
+ - **By Type**: Separate sections per work item type
167
+
168
+ ### Real-time Updates
169
+ - WebSocket connection to backend
170
+ - Auto-refresh when files change
171
+ - Connection status indicator
172
+ - Automatic reconnection (max 5 attempts)
173
+
174
+ ### Interactive Details
175
+ - Click cards to open modal
176
+ - 4 tabbed sections (Overview, Context, Docs, Children)
177
+ - Markdown rendering with @tailwindcss/typography
178
+ - Keyboard navigation between cards
179
+ - Smooth animations powered by Framer Motion
180
+
181
+ ## Testing
182
+
183
+ Run all unit tests:
184
+
185
+ ```bash
186
+ npm test
187
+ ```
188
+
189
+ Run with coverage:
190
+
191
+ ```bash
192
+ npm run test:coverage
193
+ ```
194
+
195
+ Watch mode:
196
+
197
+ ```bash
198
+ npm run test:watch
199
+ ```
200
+
201
+ **Test Coverage:**
202
+ - `lib/` - Status grouping, API client
203
+ - `store/` - Zustand state management
204
+ - `hooks/` - useGrouping hook
205
+ - All critical business logic covered
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "https://ui.shadcn.com/schema.json",
3
+ "style": "default",
4
+ "rsc": false,
5
+ "tsx": false,
6
+ "tailwind": {
7
+ "config": "tailwind.config.js",
8
+ "css": "src/styles/globals.css",
9
+ "baseColor": "slate",
10
+ "cssVariables": true,
11
+ "prefix": ""
12
+ },
13
+ "aliases": {
14
+ "components": "@/components",
15
+ "utils": "@/lib/utils",
16
+ "ui": "@/components/ui",
17
+ "lib": "@/lib",
18
+ "hooks": "@/hooks"
19
+ }
20
+ }