claude-code-workflow 6.1.4 → 6.2.2

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 (437) hide show
  1. package/.claude/CLAUDE.md +10 -0
  2. package/.claude/agents/action-planning-agent.md +857 -778
  3. package/.claude/agents/cli-execution-agent.md +266 -269
  4. package/.claude/agents/cli-explore-agent.md +2 -2
  5. package/.claude/agents/cli-lite-planning-agent.md +142 -92
  6. package/.claude/agents/cli-planning-agent.md +4 -4
  7. package/.claude/agents/code-developer.md +7 -6
  8. package/.claude/agents/conceptual-planning-agent.md +2 -2
  9. package/.claude/agents/context-search-agent.md +31 -32
  10. package/.claude/agents/doc-generator.md +4 -4
  11. package/.claude/agents/memory-bridge.md +93 -93
  12. package/.claude/agents/test-context-search-agent.md +8 -7
  13. package/.claude/agents/test-fix-agent.md +7 -6
  14. package/.claude/commands/clean.md +516 -0
  15. package/.claude/commands/memory/compact.md +383 -0
  16. package/.claude/commands/memory/docs-full-cli.md +471 -471
  17. package/.claude/commands/memory/docs-related-cli.md +386 -386
  18. package/.claude/commands/memory/docs.md +615 -615
  19. package/.claude/commands/memory/load.md +5 -5
  20. package/.claude/commands/memory/tech-research-rules.md +310 -0
  21. package/.claude/commands/memory/update-full.md +332 -332
  22. package/.claude/commands/memory/workflow-skill-memory.md +4 -4
  23. package/.claude/commands/task/create.md +151 -151
  24. package/.claude/commands/version.md +254 -254
  25. package/.claude/commands/workflow/brainstorm/api-designer.md +587 -585
  26. package/.claude/commands/workflow/brainstorm/artifacts.md +1 -0
  27. package/.claude/commands/workflow/brainstorm/auto-parallel.md +443 -443
  28. package/.claude/commands/workflow/brainstorm/data-architect.md +220 -220
  29. package/.claude/commands/workflow/brainstorm/product-manager.md +200 -200
  30. package/.claude/commands/workflow/brainstorm/product-owner.md +200 -200
  31. package/.claude/commands/workflow/brainstorm/scrum-master.md +200 -200
  32. package/.claude/commands/workflow/brainstorm/subject-matter-expert.md +200 -200
  33. package/.claude/commands/workflow/brainstorm/system-architect.md +389 -387
  34. package/.claude/commands/workflow/brainstorm/ui-designer.md +221 -221
  35. package/.claude/commands/workflow/brainstorm/ux-expert.md +221 -221
  36. package/.claude/commands/workflow/debug.md +321 -0
  37. package/.claude/commands/workflow/execute.md +13 -0
  38. package/.claude/commands/workflow/init.md +165 -164
  39. package/.claude/commands/workflow/lite-execute.md +119 -13
  40. package/.claude/commands/workflow/lite-fix.md +623 -621
  41. package/.claude/commands/workflow/lite-plan.md +610 -592
  42. package/.claude/commands/workflow/plan.md +5 -5
  43. package/.claude/commands/workflow/review-module-cycle.md +2 -0
  44. package/.claude/commands/workflow/review-session-cycle.md +2 -0
  45. package/.claude/commands/workflow/review.md +297 -291
  46. package/.claude/commands/workflow/session/complete.md +153 -500
  47. package/.claude/commands/workflow/session/list.md +95 -95
  48. package/.claude/commands/workflow/session/resume.md +60 -60
  49. package/.claude/commands/workflow/session/start.md +199 -199
  50. package/.claude/commands/workflow/tdd-plan.md +3 -3
  51. package/.claude/commands/workflow/tdd-verify.md +23 -9
  52. package/.claude/commands/workflow/test-cycle-execute.md +2 -0
  53. package/.claude/commands/workflow/test-fix-gen.md +699 -699
  54. package/.claude/commands/workflow/tools/conflict-resolution.md +104 -18
  55. package/.claude/commands/workflow/tools/context-gather.md +436 -434
  56. package/.claude/commands/workflow/tools/task-generate-agent.md +490 -291
  57. package/.claude/commands/workflow/tools/task-generate-tdd.md +18 -10
  58. package/.claude/commands/workflow/tools/test-concept-enhanced.md +2 -1
  59. package/.claude/commands/workflow/tools/test-context-gather.md +1 -0
  60. package/.claude/commands/workflow/tools/test-task-generate.md +1 -0
  61. package/.claude/commands/workflow/ui-design/import-from-code.md +9 -6
  62. package/.claude/skills/command-guide/SKILL.md +5 -5
  63. package/.claude/skills/command-guide/index/all-commands.json +1 -1
  64. package/.claude/skills/command-guide/index/by-category.json +1 -1
  65. package/.claude/skills/command-guide/index/by-use-case.json +1 -1
  66. package/.claude/skills/command-guide/reference/agents/action-planning-agent.md +857 -778
  67. package/.claude/skills/command-guide/reference/agents/cli-execution-agent.md +266 -269
  68. package/.claude/skills/command-guide/reference/agents/cli-explore-agent.md +2 -2
  69. package/.claude/skills/command-guide/reference/agents/cli-lite-planning-agent.md +142 -92
  70. package/.claude/skills/command-guide/reference/agents/cli-planning-agent.md +4 -4
  71. package/.claude/skills/command-guide/reference/agents/code-developer.md +7 -6
  72. package/.claude/skills/command-guide/reference/agents/conceptual-planning-agent.md +2 -2
  73. package/.claude/skills/command-guide/reference/agents/context-search-agent.md +31 -32
  74. package/.claude/skills/command-guide/reference/agents/doc-generator.md +4 -4
  75. package/.claude/skills/command-guide/reference/agents/memory-bridge.md +93 -93
  76. package/.claude/skills/command-guide/reference/agents/test-context-search-agent.md +8 -7
  77. package/.claude/skills/command-guide/reference/agents/test-fix-agent.md +7 -6
  78. package/.claude/skills/command-guide/reference/commands/memory/docs-full-cli.md +471 -471
  79. package/.claude/skills/command-guide/reference/commands/memory/docs-related-cli.md +386 -386
  80. package/.claude/skills/command-guide/reference/commands/memory/docs.md +17 -16
  81. package/.claude/skills/command-guide/reference/commands/memory/load.md +5 -5
  82. package/.claude/skills/command-guide/reference/commands/memory/tech-research.md +194 -357
  83. package/.claude/skills/command-guide/reference/commands/memory/update-full.md +332 -332
  84. package/.claude/skills/command-guide/reference/commands/memory/workflow-skill-memory.md +4 -4
  85. package/.claude/skills/command-guide/reference/commands/task/create.md +151 -151
  86. package/.claude/skills/command-guide/reference/commands/version.md +254 -254
  87. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/api-designer.md +585 -585
  88. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/auto-parallel.md +443 -443
  89. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/data-architect.md +220 -220
  90. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-manager.md +200 -200
  91. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-owner.md +200 -200
  92. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/scrum-master.md +200 -200
  93. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/subject-matter-expert.md +200 -200
  94. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/system-architect.md +387 -387
  95. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ui-designer.md +221 -221
  96. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ux-expert.md +221 -221
  97. package/.claude/skills/command-guide/reference/commands/workflow/execute.md +25 -20
  98. package/.claude/skills/command-guide/reference/commands/workflow/init.md +164 -164
  99. package/.claude/skills/command-guide/reference/commands/workflow/lite-execute.md +748 -686
  100. package/.claude/skills/command-guide/reference/commands/workflow/lite-fix.md +664 -621
  101. package/.claude/skills/command-guide/reference/commands/workflow/lite-plan.md +645 -592
  102. package/.claude/skills/command-guide/reference/commands/workflow/plan.md +5 -5
  103. package/.claude/skills/command-guide/reference/commands/workflow/review.md +25 -18
  104. package/.claude/skills/command-guide/reference/commands/workflow/session/complete.md +547 -500
  105. package/.claude/skills/command-guide/reference/commands/workflow/session/list.md +45 -27
  106. package/.claude/skills/command-guide/reference/commands/workflow/session/resume.md +35 -19
  107. package/.claude/skills/command-guide/reference/commands/workflow/session/start.md +90 -33
  108. package/.claude/skills/command-guide/reference/commands/workflow/tdd-plan.md +3 -3
  109. package/.claude/skills/command-guide/reference/commands/workflow/tdd-verify.md +23 -9
  110. package/.claude/skills/command-guide/reference/commands/workflow/test-fix-gen.md +699 -699
  111. package/.claude/skills/command-guide/reference/commands/workflow/tools/conflict-resolution.md +103 -17
  112. package/.claude/skills/command-guide/reference/commands/workflow/tools/context-gather.md +434 -434
  113. package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-agent.md +487 -291
  114. package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-tdd.md +17 -10
  115. package/.claude/skills/command-guide/reference/commands/workflow/tools/test-concept-enhanced.md +1 -1
  116. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/import-from-code.md +6 -6
  117. package/.claude/workflows/chinese-response.md +38 -0
  118. package/.claude/workflows/cli-templates/prompts/rules/rule-api.txt +122 -0
  119. package/.claude/workflows/cli-templates/prompts/rules/rule-components.txt +122 -0
  120. package/.claude/workflows/cli-templates/prompts/rules/rule-config.txt +89 -0
  121. package/.claude/workflows/cli-templates/prompts/rules/rule-core.txt +60 -0
  122. package/.claude/workflows/cli-templates/prompts/rules/rule-patterns.txt +70 -0
  123. package/.claude/workflows/cli-templates/prompts/rules/rule-testing.txt +81 -0
  124. package/.claude/workflows/cli-templates/prompts/rules/tech-rules-agent-prompt.txt +89 -0
  125. package/.claude/workflows/cli-templates/prompts/workflow/gemini-solution-design.txt +131 -131
  126. package/.claude/workflows/cli-templates/prompts/workflow/skill-conflict-patterns.txt +5 -9
  127. package/.claude/workflows/cli-templates/prompts/workflow/skill-lessons-learned.txt +5 -9
  128. package/.claude/workflows/cli-templates/protocols/analysis-protocol.md +112 -0
  129. package/.claude/workflows/cli-templates/protocols/write-protocol.md +201 -0
  130. package/.claude/workflows/cli-templates/schemas/conflict-resolution-schema.json +137 -0
  131. package/.claude/workflows/cli-templates/schemas/debug-log-json-schema.json +127 -0
  132. package/.claude/workflows/cli-templates/schemas/fix-plan-json-schema.json +25 -0
  133. package/.claude/workflows/cli-templates/schemas/plan-json-schema.json +25 -0
  134. package/.claude/workflows/cli-tools-usage.md +526 -0
  135. package/{CLAUDE.md → .claude/workflows/coding-philosophy.md} +24 -45
  136. package/.claude/workflows/context-tools.md +84 -0
  137. package/.claude/workflows/file-modification.md +64 -0
  138. package/.claude/workflows/tool-strategy.md +216 -79
  139. package/.claude/workflows/windows-platform.md +16 -0
  140. package/.claude/workflows/workflow-architecture.md +942 -942
  141. package/.codex/AGENTS.md +63 -330
  142. package/.codex/prompts/debug.md +318 -0
  143. package/.codex/prompts/execute.md +273 -0
  144. package/.codex/prompts/lite-execute.md +164 -0
  145. package/.codex/prompts/lite-plan.md +469 -0
  146. package/.codex/prompts.zip +0 -0
  147. package/.gemini/GEMINI.md +25 -164
  148. package/.qwen/QWEN.md +0 -139
  149. package/README.md +29 -9
  150. package/ccw/README.md +30 -6
  151. package/ccw/bin/ccw-mcp.js +7 -0
  152. package/ccw/bin/ccw.js +9 -9
  153. package/ccw/package.json +65 -47
  154. package/ccw/src/.workflow/.cli-history/history.db +0 -0
  155. package/ccw/src/.workflow/.cli-history/history.db-shm +0 -0
  156. package/ccw/src/.workflow/.cli-history/history.db-wal +0 -0
  157. package/ccw/src/cli.ts +244 -0
  158. package/ccw/src/commands/cli.ts +740 -0
  159. package/ccw/src/commands/core-memory.ts +770 -0
  160. package/ccw/src/commands/hook.ts +315 -0
  161. package/ccw/src/commands/install.ts +519 -0
  162. package/ccw/src/commands/{list.js → list.ts} +1 -1
  163. package/ccw/src/commands/memory.ts +1090 -0
  164. package/ccw/src/commands/{serve.js → serve.ts} +14 -5
  165. package/ccw/src/commands/session-path-resolver.ts +372 -0
  166. package/ccw/src/commands/session.ts +1141 -0
  167. package/ccw/src/commands/{stop.js → stop.ts} +16 -6
  168. package/ccw/src/commands/tool.ts +201 -0
  169. package/ccw/src/commands/{uninstall.js → uninstall.ts} +89 -40
  170. package/ccw/src/commands/{upgrade.js → upgrade.ts} +68 -23
  171. package/ccw/src/commands/{view.js → view.ts} +22 -8
  172. package/ccw/src/config/storage-paths.ts +670 -0
  173. package/ccw/src/core/cache-manager.ts +294 -0
  174. package/ccw/src/core/claude-freshness.ts +319 -0
  175. package/ccw/src/core/core-memory-store.ts +1528 -0
  176. package/ccw/src/core/{dashboard-generator-patch.js → dashboard-generator-patch.ts} +18 -0
  177. package/ccw/src/core/{dashboard-generator.js → dashboard-generator.ts} +69 -12
  178. package/ccw/src/core/data-aggregator.ts +584 -0
  179. package/ccw/src/core/history-importer.ts +625 -0
  180. package/ccw/src/core/{lite-scanner.js → lite-scanner-complete.ts} +162 -66
  181. package/ccw/src/core/lite-scanner.ts +469 -0
  182. package/ccw/src/core/{manifest.js → manifest.ts} +104 -34
  183. package/ccw/src/core/memory-embedder-bridge.ts +262 -0
  184. package/ccw/src/core/memory-store.ts +978 -0
  185. package/ccw/src/core/routes/ccw-routes.ts +96 -0
  186. package/ccw/src/core/routes/claude-routes.ts +1183 -0
  187. package/ccw/src/core/routes/cli-routes.ts +561 -0
  188. package/ccw/src/core/routes/codexlens-routes.ts +806 -0
  189. package/ccw/src/core/routes/core-memory-routes.ts +605 -0
  190. package/ccw/src/core/routes/files-routes.ts +428 -0
  191. package/ccw/src/core/routes/graph-routes.md +164 -0
  192. package/ccw/src/core/routes/graph-routes.ts +626 -0
  193. package/ccw/src/core/routes/help-routes.ts +308 -0
  194. package/ccw/src/core/routes/hooks-routes.ts +405 -0
  195. package/ccw/src/core/routes/mcp-routes.ts +1271 -0
  196. package/ccw/src/core/routes/mcp-routes.ts.backup +550 -0
  197. package/ccw/src/core/routes/mcp-templates-db.ts +268 -0
  198. package/ccw/src/core/routes/memory-routes.ts +1206 -0
  199. package/ccw/src/core/routes/rules-routes.ts +526 -0
  200. package/ccw/src/core/routes/session-routes.ts +467 -0
  201. package/ccw/src/core/routes/skills-routes.ts +599 -0
  202. package/ccw/src/core/routes/status-routes.ts +57 -0
  203. package/ccw/src/core/routes/system-routes.ts +427 -0
  204. package/ccw/src/core/server.ts +431 -0
  205. package/ccw/src/core/session-clustering-service.ts +1258 -0
  206. package/ccw/src/core/session-scanner.ts +283 -0
  207. package/ccw/src/core/websocket.ts +190 -0
  208. package/ccw/src/{index.js → index.ts} +1 -0
  209. package/ccw/src/mcp-server/index.ts +186 -0
  210. package/ccw/src/templates/assets/css/github-dark.min.css +10 -0
  211. package/ccw/src/templates/assets/css/github.min.css +10 -0
  212. package/ccw/src/templates/assets/js/cytoscape.min.js +32 -0
  213. package/ccw/src/templates/assets/js/d3.min.js +2 -0
  214. package/ccw/src/templates/assets/js/highlight.min.js +1244 -0
  215. package/ccw/src/templates/assets/js/lucide.min.js +12 -0
  216. package/ccw/src/templates/assets/js/marked.min.js +69 -0
  217. package/ccw/src/templates/assets/js/tailwind.js +83 -0
  218. package/ccw/src/templates/dashboard-css/01-base.css +11 -0
  219. package/ccw/src/templates/dashboard-css/02-session.css +22 -0
  220. package/ccw/src/templates/dashboard-css/04-lite-tasks.css +10 -0
  221. package/ccw/src/templates/dashboard-css/06-cards.css +10 -4
  222. package/ccw/src/templates/dashboard-css/07-managers.css +1178 -7
  223. package/ccw/src/templates/dashboard-css/09-explorer.css +23 -12
  224. package/ccw/src/templates/dashboard-css/10-cli-status.css +337 -0
  225. package/ccw/src/templates/dashboard-css/11-cli-history.css +271 -0
  226. package/ccw/src/templates/dashboard-css/12-cli-legacy.css +796 -0
  227. package/ccw/src/templates/dashboard-css/13-cli-ccw.css +199 -0
  228. package/ccw/src/templates/dashboard-css/14-cli-modals.css +258 -0
  229. package/ccw/src/templates/dashboard-css/15-cli-endpoints.css +305 -0
  230. package/ccw/src/templates/dashboard-css/16-cli-session.css +241 -0
  231. package/ccw/src/templates/dashboard-css/17-cli-conversation.css +283 -0
  232. package/ccw/src/templates/dashboard-css/18-cli-settings.css +160 -0
  233. package/ccw/src/templates/dashboard-css/19-cli-native-session.css +496 -0
  234. package/ccw/src/templates/dashboard-css/20-cli-taskqueue.css +188 -0
  235. package/ccw/src/templates/dashboard-css/21-cli-toolmgmt.css +310 -0
  236. package/ccw/src/templates/dashboard-css/22-cli-semantic.css +240 -0
  237. package/ccw/src/templates/dashboard-css/23-memory.css +2390 -0
  238. package/ccw/src/templates/dashboard-css/24-prompt-history.css +1089 -0
  239. package/ccw/src/templates/dashboard-css/25-skills-rules.css +326 -0
  240. package/ccw/src/templates/dashboard-css/26-claude-manager.css +908 -0
  241. package/ccw/src/templates/dashboard-css/27-graph-explorer.css +1678 -0
  242. package/ccw/src/templates/dashboard-css/28-mcp-manager.css +748 -0
  243. package/ccw/src/templates/dashboard-css/29-help.css +264 -0
  244. package/ccw/src/templates/dashboard-css/30-core-memory.css +1700 -0
  245. package/ccw/src/templates/dashboard-js/api.js +162 -142
  246. package/ccw/src/templates/dashboard-js/components/carousel.js +4 -4
  247. package/ccw/src/templates/dashboard-js/components/cli-history.js +876 -0
  248. package/ccw/src/templates/dashboard-js/components/cli-status.js +978 -0
  249. package/ccw/src/templates/dashboard-js/components/global-notifications.js +508 -219
  250. package/ccw/src/templates/dashboard-js/components/hook-manager.js +1277 -282
  251. package/ccw/src/templates/dashboard-js/components/index-manager.js +302 -0
  252. package/ccw/src/templates/dashboard-js/components/mcp-manager.js +718 -27
  253. package/ccw/src/templates/dashboard-js/components/modals.js +66 -0
  254. package/ccw/src/templates/dashboard-js/components/navigation.js +80 -12
  255. package/ccw/src/templates/dashboard-js/components/notifications.js +758 -194
  256. package/ccw/src/templates/dashboard-js/components/storage-manager.js +478 -0
  257. package/ccw/src/templates/dashboard-js/components/tabs-other.js +157 -6
  258. package/ccw/src/templates/dashboard-js/components/task-queue-sidebar.js +716 -0
  259. package/ccw/src/templates/dashboard-js/help-i18n.js +272 -0
  260. package/ccw/src/templates/dashboard-js/i18n.js +2807 -0
  261. package/ccw/src/templates/dashboard-js/main.js +15 -0
  262. package/ccw/src/templates/dashboard-js/state.js +243 -42
  263. package/ccw/src/templates/dashboard-js/utils.js +47 -1
  264. package/ccw/src/templates/dashboard-js/views/claude-manager.js +912 -0
  265. package/ccw/src/templates/dashboard-js/views/cli-manager.js +2272 -0
  266. package/ccw/src/templates/dashboard-js/views/codexlens-manager.js +964 -0
  267. package/ccw/src/templates/dashboard-js/views/core-memory-clusters.js +503 -0
  268. package/ccw/src/templates/dashboard-js/views/core-memory.js +782 -0
  269. package/ccw/src/templates/dashboard-js/views/explorer.js +888 -852
  270. package/ccw/src/templates/dashboard-js/views/graph-explorer.js +1157 -0
  271. package/ccw/src/templates/dashboard-js/views/help.js +856 -0
  272. package/ccw/src/templates/dashboard-js/views/history.js +337 -0
  273. package/ccw/src/templates/dashboard-js/views/home.js +61 -15
  274. package/ccw/src/templates/dashboard-js/views/hook-manager.js +311 -43
  275. package/ccw/src/templates/dashboard-js/views/lite-tasks.js +204 -28
  276. package/ccw/src/templates/dashboard-js/views/mcp-manager.js +2187 -411
  277. package/ccw/src/templates/dashboard-js/views/mcp-manager.js.backup +1729 -0
  278. package/ccw/src/templates/dashboard-js/views/mcp-manager.js.new +928 -0
  279. package/ccw/src/templates/dashboard-js/views/memory.js +1221 -0
  280. package/ccw/src/templates/dashboard-js/views/prompt-history.js +713 -0
  281. package/ccw/src/templates/dashboard-js/views/rules-manager.js +828 -0
  282. package/ccw/src/templates/dashboard-js/views/session-detail.js +54 -53
  283. package/ccw/src/templates/dashboard-js/views/skills-manager.js +819 -0
  284. package/ccw/src/templates/dashboard.html +185 -85
  285. package/ccw/src/templates/hooks-config-example.json +60 -0
  286. package/ccw/src/tools/classify-folders.ts +245 -0
  287. package/ccw/src/tools/cli-config-manager.ts +268 -0
  288. package/ccw/src/tools/cli-executor.ts +2014 -0
  289. package/ccw/src/tools/cli-history-store.ts +1195 -0
  290. package/ccw/src/tools/codex-lens.ts +1141 -0
  291. package/ccw/src/tools/{convert-tokens-to-css.js → convert-tokens-to-css.ts} +73 -23
  292. package/ccw/src/tools/core-memory.ts +444 -0
  293. package/ccw/src/tools/detect-changed-modules.ts +325 -0
  294. package/ccw/src/tools/{discover-design-files.js → discover-design-files.ts} +74 -24
  295. package/ccw/src/tools/edit-file.ts +568 -0
  296. package/ccw/src/tools/{generate-module-docs.js → generate-module-docs.ts} +207 -185
  297. package/ccw/src/tools/{get-modules-by-depth.js → get-modules-by-depth.ts} +120 -79
  298. package/ccw/src/tools/index.ts +370 -0
  299. package/ccw/src/tools/native-session-discovery.ts +795 -0
  300. package/ccw/src/tools/notifier.ts +129 -0
  301. package/ccw/src/tools/read-file.ts +410 -0
  302. package/ccw/src/tools/resume-strategy.ts +345 -0
  303. package/ccw/src/tools/session-content-parser.ts +619 -0
  304. package/ccw/src/tools/session-manager.ts +1026 -0
  305. package/ccw/src/tools/smart-context.ts +228 -0
  306. package/ccw/src/tools/smart-search.ts +2065 -0
  307. package/ccw/src/tools/smart-search.ts.backup +1233 -0
  308. package/ccw/src/tools/storage-manager.ts +455 -0
  309. package/ccw/src/tools/write-file.ts +222 -0
  310. package/ccw/src/types/config.ts +11 -0
  311. package/ccw/src/types/index.ts +3 -0
  312. package/ccw/src/types/session.ts +25 -0
  313. package/ccw/src/types/tool.ts +41 -0
  314. package/ccw/src/utils/{browser-launcher.js → browser-launcher.ts} +10 -8
  315. package/ccw/src/utils/file-utils.ts +48 -0
  316. package/ccw/src/utils/{path-resolver.js → path-resolver.ts} +114 -78
  317. package/ccw/src/utils/path-validator.ts +153 -0
  318. package/ccw/src/utils/{ui.js → ui.ts} +32 -25
  319. package/codex-lens/pyproject.toml +48 -0
  320. package/codex-lens/src/codexlens/.workflow/.cli-history/history.db +0 -0
  321. package/codex-lens/src/codexlens/__init__.py +28 -0
  322. package/codex-lens/src/codexlens/__main__.py +14 -0
  323. package/codex-lens/src/codexlens/__pycache__/__init__.cpython-313.pyc +0 -0
  324. package/codex-lens/src/codexlens/__pycache__/__main__.cpython-313.pyc +0 -0
  325. package/codex-lens/src/codexlens/__pycache__/config.cpython-313.pyc +0 -0
  326. package/codex-lens/src/codexlens/__pycache__/entities.cpython-313.pyc +0 -0
  327. package/codex-lens/src/codexlens/__pycache__/errors.cpython-313.pyc +0 -0
  328. package/codex-lens/src/codexlens/cli/__init__.py +27 -0
  329. package/codex-lens/src/codexlens/cli/__pycache__/__init__.cpython-313.pyc +0 -0
  330. package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-313.pyc +0 -0
  331. package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-313.pyc +0 -0
  332. package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-313.pyc +0 -0
  333. package/codex-lens/src/codexlens/cli/__pycache__/output.cpython-313.pyc +0 -0
  334. package/codex-lens/src/codexlens/cli/commands.py +1931 -0
  335. package/codex-lens/src/codexlens/cli/embedding_manager.py +620 -0
  336. package/codex-lens/src/codexlens/cli/model_manager.py +289 -0
  337. package/codex-lens/src/codexlens/cli/output.py +124 -0
  338. package/codex-lens/src/codexlens/config.py +201 -0
  339. package/codex-lens/src/codexlens/entities.py +121 -0
  340. package/codex-lens/src/codexlens/errors.py +55 -0
  341. package/codex-lens/src/codexlens/indexing/README.md +77 -0
  342. package/codex-lens/src/codexlens/indexing/__init__.py +4 -0
  343. package/codex-lens/src/codexlens/indexing/__pycache__/__init__.cpython-313.pyc +0 -0
  344. package/codex-lens/src/codexlens/indexing/__pycache__/symbol_extractor.cpython-313.pyc +0 -0
  345. package/codex-lens/src/codexlens/indexing/symbol_extractor.py +243 -0
  346. package/codex-lens/src/codexlens/parsers/__init__.py +8 -0
  347. package/codex-lens/src/codexlens/parsers/__pycache__/__init__.cpython-313.pyc +0 -0
  348. package/codex-lens/src/codexlens/parsers/__pycache__/encoding.cpython-313.pyc +0 -0
  349. package/codex-lens/src/codexlens/parsers/__pycache__/factory.cpython-313.pyc +0 -0
  350. package/codex-lens/src/codexlens/parsers/__pycache__/tokenizer.cpython-313.pyc +0 -0
  351. package/codex-lens/src/codexlens/parsers/__pycache__/treesitter_parser.cpython-313.pyc +0 -0
  352. package/codex-lens/src/codexlens/parsers/encoding.py +202 -0
  353. package/codex-lens/src/codexlens/parsers/factory.py +256 -0
  354. package/codex-lens/src/codexlens/parsers/tokenizer.py +98 -0
  355. package/codex-lens/src/codexlens/parsers/treesitter_parser.py +335 -0
  356. package/codex-lens/src/codexlens/search/__init__.py +15 -0
  357. package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-313.pyc +0 -0
  358. package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-313.pyc +0 -0
  359. package/codex-lens/src/codexlens/search/__pycache__/enrichment.cpython-313.pyc +0 -0
  360. package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-313.pyc +0 -0
  361. package/codex-lens/src/codexlens/search/__pycache__/query_parser.cpython-313.pyc +0 -0
  362. package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-313.pyc +0 -0
  363. package/codex-lens/src/codexlens/search/chain_search.py +647 -0
  364. package/codex-lens/src/codexlens/search/enrichment.py +150 -0
  365. package/codex-lens/src/codexlens/search/hybrid_search.py +313 -0
  366. package/codex-lens/src/codexlens/search/query_parser.py +242 -0
  367. package/codex-lens/src/codexlens/search/ranking.py +274 -0
  368. package/codex-lens/src/codexlens/semantic/__init__.py +39 -0
  369. package/codex-lens/src/codexlens/semantic/__pycache__/__init__.cpython-313.pyc +0 -0
  370. package/codex-lens/src/codexlens/semantic/__pycache__/ann_index.cpython-313.pyc +0 -0
  371. package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-313.pyc +0 -0
  372. package/codex-lens/src/codexlens/semantic/__pycache__/code_extractor.cpython-313.pyc +0 -0
  373. package/codex-lens/src/codexlens/semantic/__pycache__/embedder.cpython-313.pyc +0 -0
  374. package/codex-lens/src/codexlens/semantic/__pycache__/graph_analyzer.cpython-313.pyc +0 -0
  375. package/codex-lens/src/codexlens/semantic/__pycache__/llm_enhancer.cpython-313.pyc +0 -0
  376. package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-313.pyc +0 -0
  377. package/codex-lens/src/codexlens/semantic/ann_index.py +414 -0
  378. package/codex-lens/src/codexlens/semantic/chunker.py +448 -0
  379. package/codex-lens/src/codexlens/semantic/code_extractor.py +274 -0
  380. package/codex-lens/src/codexlens/semantic/embedder.py +185 -0
  381. package/codex-lens/src/codexlens/semantic/vector_store.py +955 -0
  382. package/codex-lens/src/codexlens/storage/__init__.py +29 -0
  383. package/codex-lens/src/codexlens/storage/__pycache__/__init__.cpython-313.pyc +0 -0
  384. package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-313.pyc +0 -0
  385. package/codex-lens/src/codexlens/storage/__pycache__/file_cache.cpython-313.pyc +0 -0
  386. package/codex-lens/src/codexlens/storage/__pycache__/index_tree.cpython-313.pyc +0 -0
  387. package/codex-lens/src/codexlens/storage/__pycache__/migration_manager.cpython-313.pyc +0 -0
  388. package/codex-lens/src/codexlens/storage/__pycache__/path_mapper.cpython-313.pyc +0 -0
  389. package/codex-lens/src/codexlens/storage/__pycache__/registry.cpython-313.pyc +0 -0
  390. package/codex-lens/src/codexlens/storage/__pycache__/sqlite_store.cpython-313.pyc +0 -0
  391. package/codex-lens/src/codexlens/storage/__pycache__/sqlite_utils.cpython-313.pyc +0 -0
  392. package/codex-lens/src/codexlens/storage/dir_index.py +1850 -0
  393. package/codex-lens/src/codexlens/storage/file_cache.py +32 -0
  394. package/codex-lens/src/codexlens/storage/index_tree.py +776 -0
  395. package/codex-lens/src/codexlens/storage/migration_manager.py +154 -0
  396. package/codex-lens/src/codexlens/storage/migrations/__init__.py +1 -0
  397. package/codex-lens/src/codexlens/storage/migrations/__pycache__/__init__.cpython-313.pyc +0 -0
  398. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_001_normalize_keywords.cpython-313.pyc +0 -0
  399. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_002_add_token_metadata.cpython-313.pyc +0 -0
  400. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_003_code_relationships.cpython-313.pyc +0 -0
  401. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_004_dual_fts.cpython-313.pyc +0 -0
  402. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_005_cleanup_unused_fields.cpython-313.pyc +0 -0
  403. package/codex-lens/src/codexlens/storage/migrations/migration_001_normalize_keywords.py +123 -0
  404. package/codex-lens/src/codexlens/storage/migrations/migration_002_add_token_metadata.py +48 -0
  405. package/codex-lens/src/codexlens/storage/migrations/migration_004_dual_fts.py +232 -0
  406. package/codex-lens/src/codexlens/storage/migrations/migration_005_cleanup_unused_fields.py +196 -0
  407. package/codex-lens/src/codexlens/storage/path_mapper.py +274 -0
  408. package/codex-lens/src/codexlens/storage/registry.py +670 -0
  409. package/codex-lens/src/codexlens/storage/sqlite_store.py +576 -0
  410. package/codex-lens/src/codexlens/storage/sqlite_utils.py +64 -0
  411. package/package.json +4 -1
  412. package/.claude/commands/memory/tech-research.md +0 -477
  413. package/.claude/scripts/classify-folders.sh +0 -39
  414. package/.claude/scripts/convert_tokens_to_css.sh +0 -229
  415. package/.claude/scripts/detect_changed_modules.sh +0 -161
  416. package/.claude/scripts/discover-design-files.sh +0 -87
  417. package/.claude/scripts/extract-animations.js +0 -243
  418. package/.claude/scripts/extract-computed-styles.js +0 -118
  419. package/.claude/scripts/extract-layout-structure.js +0 -411
  420. package/.claude/scripts/generate_module_docs.sh +0 -717
  421. package/.claude/scripts/get_modules_by_depth.sh +0 -170
  422. package/.claude/scripts/ui-generate-preview.sh +0 -395
  423. package/.claude/scripts/ui-instantiate-prototypes.sh +0 -815
  424. package/.claude/scripts/update_module_claude.sh +0 -337
  425. package/.claude/workflows/context-search-strategy.md +0 -77
  426. package/.claude/workflows/intelligent-tools-strategy.md +0 -662
  427. package/ccw/src/cli.js +0 -119
  428. package/ccw/src/commands/install.js +0 -324
  429. package/ccw/src/commands/tool.js +0 -138
  430. package/ccw/src/core/data-aggregator.js +0 -409
  431. package/ccw/src/core/server.js +0 -2063
  432. package/ccw/src/core/session-scanner.js +0 -235
  433. package/ccw/src/tools/classify-folders.js +0 -204
  434. package/ccw/src/tools/detect-changed-modules.js +0 -288
  435. package/ccw/src/tools/edit-file.js +0 -266
  436. package/ccw/src/tools/index.js +0 -176
  437. package/ccw/src/utils/file-utils.js +0 -48
@@ -0,0 +1,321 @@
1
+ ---
2
+ name: debug
3
+ description: Interactive hypothesis-driven debugging with NDJSON logging, iterative until resolved
4
+ argument-hint: "\"bug description or error message\""
5
+ allowed-tools: TodoWrite(*), Task(*), AskUserQuestion(*), Read(*), Grep(*), Glob(*), Bash(*), Edit(*), Write(*)
6
+ ---
7
+
8
+ # Workflow Debug Command (/workflow:debug)
9
+
10
+ ## Overview
11
+
12
+ Evidence-based interactive debugging command. Systematically identifies root causes through hypothesis-driven logging and iterative verification.
13
+
14
+ **Core workflow**: Explore → Add Logging → Reproduce → Analyze Log → Fix → Verify
15
+
16
+ ## Usage
17
+
18
+ ```bash
19
+ /workflow:debug <BUG_DESCRIPTION>
20
+
21
+ # Arguments
22
+ <bug-description> Bug description, error message, or stack trace (required)
23
+ ```
24
+
25
+ ## Execution Process
26
+
27
+ ```
28
+ Session Detection:
29
+ ├─ Check if debug session exists for this bug
30
+ ├─ EXISTS + debug.log has content → Analyze mode
31
+ └─ NOT_FOUND or empty log → Explore mode
32
+
33
+ Explore Mode:
34
+ ├─ Locate error source in codebase
35
+ ├─ Generate testable hypotheses (dynamic count)
36
+ ├─ Add NDJSON logging instrumentation
37
+ └─ Output: Hypothesis list + await user reproduction
38
+
39
+ Analyze Mode:
40
+ ├─ Parse debug.log, validate each hypothesis
41
+ └─ Decision:
42
+ ├─ Confirmed → Fix root cause
43
+ ├─ Inconclusive → Add more logging, iterate
44
+ └─ All rejected → Generate new hypotheses
45
+
46
+ Fix & Cleanup:
47
+ ├─ Apply fix based on confirmed hypothesis
48
+ ├─ User verifies
49
+ ├─ Remove debug instrumentation
50
+ └─ If not fixed → Return to Analyze mode
51
+ ```
52
+
53
+ ## Implementation
54
+
55
+ ### Session Setup & Mode Detection
56
+
57
+ ```javascript
58
+ const getUtc8ISOString = () => new Date(Date.now() + 8 * 60 * 60 * 1000).toISOString()
59
+
60
+ const bugSlug = bug_description.toLowerCase().replace(/[^a-z0-9]+/g, '-').substring(0, 30)
61
+ const dateStr = getUtc8ISOString().substring(0, 10)
62
+
63
+ const sessionId = `DBG-${bugSlug}-${dateStr}`
64
+ const sessionFolder = `.workflow/.debug/${sessionId}`
65
+ const debugLogPath = `${sessionFolder}/debug.log`
66
+
67
+ // Auto-detect mode
68
+ const sessionExists = fs.existsSync(sessionFolder)
69
+ const logHasContent = sessionExists && fs.existsSync(debugLogPath) && fs.statSync(debugLogPath).size > 0
70
+
71
+ const mode = logHasContent ? 'analyze' : 'explore'
72
+
73
+ if (!sessionExists) {
74
+ bash(`mkdir -p ${sessionFolder}`)
75
+ }
76
+ ```
77
+
78
+ ---
79
+
80
+ ### Explore Mode
81
+
82
+ **Step 1.1: Locate Error Source**
83
+
84
+ ```javascript
85
+ // Extract keywords from bug description
86
+ const keywords = extractErrorKeywords(bug_description)
87
+ // e.g., ['Stack Length', '未找到', 'registered 0']
88
+
89
+ // Search codebase for error locations
90
+ for (const keyword of keywords) {
91
+ Grep({ pattern: keyword, path: ".", output_mode: "content", "-C": 3 })
92
+ }
93
+
94
+ // Identify affected files and functions
95
+ const affectedLocations = [...] // from search results
96
+ ```
97
+
98
+ **Step 1.2: Generate Hypotheses (Dynamic)**
99
+
100
+ ```javascript
101
+ // Hypothesis categories based on error pattern
102
+ const HYPOTHESIS_PATTERNS = {
103
+ "not found|missing|undefined|未找到": "data_mismatch",
104
+ "0|empty|zero|registered 0": "logic_error",
105
+ "timeout|connection|sync": "integration_issue",
106
+ "type|format|parse": "type_mismatch"
107
+ }
108
+
109
+ // Generate hypotheses based on actual issue (NOT fixed count)
110
+ function generateHypotheses(bugDescription, affectedLocations) {
111
+ const hypotheses = []
112
+
113
+ // Analyze bug and create targeted hypotheses
114
+ // Each hypothesis has:
115
+ // - id: H1, H2, ... (dynamic count)
116
+ // - description: What might be wrong
117
+ // - testable_condition: What to log
118
+ // - logging_point: Where to add instrumentation
119
+
120
+ return hypotheses // Could be 1, 3, 5, or more
121
+ }
122
+
123
+ const hypotheses = generateHypotheses(bug_description, affectedLocations)
124
+ ```
125
+
126
+ **Step 1.3: Add NDJSON Instrumentation**
127
+
128
+ For each hypothesis, add logging at the relevant location:
129
+
130
+ **Python template**:
131
+ ```python
132
+ # region debug [H{n}]
133
+ try:
134
+ import json, time
135
+ _dbg = {
136
+ "sid": "{sessionId}",
137
+ "hid": "H{n}",
138
+ "loc": "{file}:{line}",
139
+ "msg": "{testable_condition}",
140
+ "data": {
141
+ # Capture relevant values here
142
+ },
143
+ "ts": int(time.time() * 1000)
144
+ }
145
+ with open(r"{debugLogPath}", "a", encoding="utf-8") as _f:
146
+ _f.write(json.dumps(_dbg, ensure_ascii=False) + "\n")
147
+ except: pass
148
+ # endregion
149
+ ```
150
+
151
+ **JavaScript/TypeScript template**:
152
+ ```javascript
153
+ // region debug [H{n}]
154
+ try {
155
+ require('fs').appendFileSync("{debugLogPath}", JSON.stringify({
156
+ sid: "{sessionId}",
157
+ hid: "H{n}",
158
+ loc: "{file}:{line}",
159
+ msg: "{testable_condition}",
160
+ data: { /* Capture relevant values */ },
161
+ ts: Date.now()
162
+ }) + "\n");
163
+ } catch(_) {}
164
+ // endregion
165
+ ```
166
+
167
+ **Output to user**:
168
+ ```
169
+ ## Hypotheses Generated
170
+
171
+ Based on error "{bug_description}", generated {n} hypotheses:
172
+
173
+ {hypotheses.map(h => `
174
+ ### ${h.id}: ${h.description}
175
+ - Logging at: ${h.logging_point}
176
+ - Testing: ${h.testable_condition}
177
+ `).join('')}
178
+
179
+ **Debug log**: ${debugLogPath}
180
+
181
+ **Next**: Run reproduction steps, then come back for analysis.
182
+ ```
183
+
184
+ ---
185
+
186
+ ### Analyze Mode
187
+
188
+ ```javascript
189
+ // Parse NDJSON log
190
+ const entries = Read(debugLogPath).split('\n')
191
+ .filter(l => l.trim())
192
+ .map(l => JSON.parse(l))
193
+
194
+ // Group by hypothesis
195
+ const byHypothesis = groupBy(entries, 'hid')
196
+
197
+ // Validate each hypothesis
198
+ for (const [hid, logs] of Object.entries(byHypothesis)) {
199
+ const hypothesis = hypotheses.find(h => h.id === hid)
200
+ const latestLog = logs[logs.length - 1]
201
+
202
+ // Check if evidence confirms or rejects hypothesis
203
+ const verdict = evaluateEvidence(hypothesis, latestLog.data)
204
+ // Returns: 'confirmed' | 'rejected' | 'inconclusive'
205
+ }
206
+ ```
207
+
208
+ **Output**:
209
+ ```
210
+ ## Evidence Analysis
211
+
212
+ Analyzed ${entries.length} log entries.
213
+
214
+ ${results.map(r => `
215
+ ### ${r.id}: ${r.description}
216
+ - **Status**: ${r.verdict}
217
+ - **Evidence**: ${JSON.stringify(r.evidence)}
218
+ - **Reason**: ${r.reason}
219
+ `).join('')}
220
+
221
+ ${confirmedHypothesis ? `
222
+ ## Root Cause Identified
223
+
224
+ **${confirmedHypothesis.id}**: ${confirmedHypothesis.description}
225
+
226
+ Ready to fix.
227
+ ` : `
228
+ ## Need More Evidence
229
+
230
+ Add more logging or refine hypotheses.
231
+ `}
232
+ ```
233
+
234
+ ---
235
+
236
+ ### Fix & Cleanup
237
+
238
+ ```javascript
239
+ // Apply fix based on confirmed hypothesis
240
+ // ... Edit affected files
241
+
242
+ // After user verifies fix works:
243
+
244
+ // Remove debug instrumentation (search for region markers)
245
+ const instrumentedFiles = Grep({
246
+ pattern: "# region debug|// region debug",
247
+ output_mode: "files_with_matches"
248
+ })
249
+
250
+ for (const file of instrumentedFiles) {
251
+ // Remove content between region markers
252
+ removeDebugRegions(file)
253
+ }
254
+
255
+ console.log(`
256
+ ## Debug Complete
257
+
258
+ - Root cause: ${confirmedHypothesis.description}
259
+ - Fix applied to: ${modifiedFiles.join(', ')}
260
+ - Debug instrumentation removed
261
+ `)
262
+ ```
263
+
264
+ ---
265
+
266
+ ## Debug Log Format (NDJSON)
267
+
268
+ Each line is a JSON object:
269
+
270
+ ```json
271
+ {"sid":"DBG-xxx-2025-12-18","hid":"H1","loc":"file.py:func:42","msg":"Check dict keys","data":{"keys":["a","b"],"target":"c","found":false},"ts":1734567890123}
272
+ ```
273
+
274
+ | Field | Description |
275
+ |-------|-------------|
276
+ | `sid` | Session ID |
277
+ | `hid` | Hypothesis ID (H1, H2, ...) |
278
+ | `loc` | Code location |
279
+ | `msg` | What's being tested |
280
+ | `data` | Captured values |
281
+ | `ts` | Timestamp (ms) |
282
+
283
+ ## Session Folder
284
+
285
+ ```
286
+ .workflow/.debug/DBG-{slug}-{date}/
287
+ ├── debug.log # NDJSON log (main artifact)
288
+ └── resolution.md # Summary after fix (optional)
289
+ ```
290
+
291
+ ## Iteration Flow
292
+
293
+ ```
294
+ First Call (/workflow:debug "error"):
295
+ ├─ No session exists → Explore mode
296
+ ├─ Extract error keywords, search codebase
297
+ ├─ Generate hypotheses, add logging
298
+ └─ Await user reproduction
299
+
300
+ After Reproduction (/workflow:debug "error"):
301
+ ├─ Session exists + debug.log has content → Analyze mode
302
+ ├─ Parse log, evaluate hypotheses
303
+ └─ Decision:
304
+ ├─ Confirmed → Fix → User verify
305
+ │ ├─ Fixed → Cleanup → Done
306
+ │ └─ Not fixed → Add logging → Iterate
307
+ ├─ Inconclusive → Add logging → Iterate
308
+ └─ All rejected → New hypotheses → Iterate
309
+
310
+ Output:
311
+ └─ .workflow/.debug/DBG-{slug}-{date}/debug.log
312
+ ```
313
+
314
+ ## Error Handling
315
+
316
+ | Situation | Action |
317
+ |-----------|--------|
318
+ | Empty debug.log | Verify reproduction triggered the code path |
319
+ | All hypotheses rejected | Generate new hypotheses with broader scope |
320
+ | Fix doesn't work | Iterate with more granular logging |
321
+ | >5 iterations | Escalate to `/workflow:lite-fix` with evidence |
@@ -56,6 +56,7 @@ Phase 2: Planning Document Validation
56
56
  └─ Validate .task/ contains IMPL-*.json files
57
57
 
58
58
  Phase 3: TodoWrite Generation
59
+ ├─ Update session status to "active" (Step 0)
59
60
  ├─ Parse TODO_LIST.md for task statuses
60
61
  ├─ Generate TodoWrite for entire workflow
61
62
  └─ Prepare session context paths
@@ -80,6 +81,7 @@ Phase 5: Completion
80
81
  Resume Mode (--resume-session):
81
82
  ├─ Skip Phase 1 & Phase 2
82
83
  └─ Entry Point: Phase 3 (TodoWrite Generation)
84
+ ├─ Update session status to "active" (if not already)
83
85
  └─ Continue: Phase 4 → Phase 5
84
86
  ```
85
87
 
@@ -179,6 +181,16 @@ bash(cat .workflow/active/${sessionId}/workflow-session.json)
179
181
  ### Phase 3: TodoWrite Generation
180
182
  **Applies to**: Both normal and resume modes (resume mode entry point)
181
183
 
184
+ **Step 0: Update Session Status to Active**
185
+ Before generating TodoWrite, update session status from "planning" to "active":
186
+ ```bash
187
+ # Update session status (idempotent - safe to run if already active)
188
+ jq '.status = "active" | .execution_started_at = (.execution_started_at // now | todate)' \
189
+ .workflow/active/${sessionId}/workflow-session.json > tmp.json && \
190
+ mv tmp.json .workflow/active/${sessionId}/workflow-session.json
191
+ ```
192
+ This ensures the dashboard shows the session as "ACTIVE" during execution.
193
+
182
194
  **Process**:
183
195
  1. **Create TodoWrite List**: Generate task list from TODO_LIST.md (not from task JSONs)
184
196
  - Parse TODO_LIST.md to extract all tasks with current statuses
@@ -380,6 +392,7 @@ TodoWrite({
380
392
 
381
393
  ```bash
382
394
  Task(subagent_type="{meta.agent}",
395
+ run_in_background=false,
383
396
  prompt="Execute task: {task.title}
384
397
 
385
398
  {[FLOW_CONTROL]}
@@ -1,164 +1,165 @@
1
- ---
2
- name: init
3
- description: Initialize project-level state with intelligent project analysis using cli-explore-agent
4
- argument-hint: "[--regenerate]"
5
- examples:
6
- - /workflow:init
7
- - /workflow:init --regenerate
8
- ---
9
-
10
- # Workflow Init Command (/workflow:init)
11
-
12
- ## Overview
13
- Initialize `.workflow/project.json` with comprehensive project understanding by delegating analysis to **cli-explore-agent**.
14
-
15
- **Note**: This command may be called by other workflow commands. Upon completion, return immediately to continue the calling workflow without interrupting the task flow.
16
-
17
- ## Usage
18
- ```bash
19
- /workflow:init # Initialize (skip if exists)
20
- /workflow:init --regenerate # Force regeneration
21
- ```
22
-
23
- ## Execution Process
24
-
25
- ```
26
- Input Parsing:
27
- └─ Parse --regenerate flag → regenerate = true | false
28
-
29
- Decision:
30
- ├─ EXISTS + no --regenerate → Exit: "Already initialized"
31
- ├─ EXISTS + --regenerate → Backup existing → Continue analysis
32
- └─ NOT_FOUND → Continue analysis
33
-
34
- Analysis Flow:
35
- ├─ Get project metadata (name, root)
36
- ├─ Invoke cli-explore-agent
37
- │ ├─ Structural scan (get_modules_by_depth.sh, find, wc)
38
- │ ├─ Semantic analysis (Gemini CLI)
39
- │ ├─ Synthesis and merge
40
- │ └─ Write .workflow/project.json
41
- └─ Display summary
42
-
43
- Output:
44
- └─ .workflow/project.json (+ .backup if regenerate)
45
- ```
46
-
47
- ## Implementation
48
-
49
- ### Step 1: Parse Input and Check Existing State
50
-
51
- **Parse --regenerate flag**:
52
- ```javascript
53
- const regenerate = $ARGUMENTS.includes('--regenerate')
54
- ```
55
-
56
- **Check existing state**:
57
-
58
- ```bash
59
- bash(test -f .workflow/project.json && echo "EXISTS" || echo "NOT_FOUND")
60
- ```
61
-
62
- **If EXISTS and no --regenerate**: Exit early
63
- ```
64
- Project already initialized at .workflow/project.json
65
- Use /workflow:init --regenerate to rebuild
66
- Use /workflow:status --project to view state
67
- ```
68
-
69
- ### Step 2: Get Project Metadata
70
-
71
- ```bash
72
- bash(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)")
73
- bash(git rev-parse --show-toplevel 2>/dev/null || pwd)
74
- bash(mkdir -p .workflow)
75
- ```
76
-
77
- ### Step 3: Invoke cli-explore-agent
78
-
79
- **For --regenerate**: Backup and preserve existing data
80
- ```bash
81
- bash(cp .workflow/project.json .workflow/project.json.backup)
82
- ```
83
-
84
- **Delegate analysis to agent**:
85
-
86
- ```javascript
87
- Task(
88
- subagent_type="cli-explore-agent",
89
- description="Deep project analysis",
90
- prompt=`
91
- Analyze project for workflow initialization and generate .workflow/project.json.
92
-
93
- ## MANDATORY FIRST STEPS
94
- 1. Execute: cat ~/.claude/workflows/cli-templates/schemas/project-json-schema.json (get schema reference)
95
- 2. Execute: ccw tool exec get_modules_by_depth '{}' (get project structure)
96
-
97
- ## Task
98
- Generate complete project.json with:
99
- - project_name: ${projectName}
100
- - initialized_at: current ISO timestamp
101
- - overview: {description, technology_stack, architecture, key_components}
102
- - features: ${regenerate ? 'preserve from backup' : '[] (empty)'}
103
- - development_index: ${regenerate ? 'preserve from backup' : '{feature: [], enhancement: [], bugfix: [], refactor: [], docs: []}'}
104
- - statistics: ${regenerate ? 'preserve from backup' : '{total_features: 0, total_sessions: 0, last_updated}'}
105
- - _metadata: {initialized_by: "cli-explore-agent", analysis_timestamp, analysis_mode}
106
-
107
- ## Analysis Requirements
108
-
109
- **Technology Stack**:
110
- - Languages: File counts, mark primary
111
- - Frameworks: From package.json, requirements.txt, go.mod, etc.
112
- - Build tools: npm, cargo, maven, webpack, vite
113
- - Test frameworks: jest, pytest, go test, junit
114
-
115
- **Architecture**:
116
- - Style: MVC, microservices, layered (from structure & imports)
117
- - Layers: presentation, business-logic, data-access
118
- - Patterns: singleton, factory, repository
119
- - Key components: 5-10 modules {name, path, description, importance}
120
-
121
- ## Execution
122
- 1. Structural scan: get_modules_by_depth.sh, find, wc -l
123
- 2. Semantic analysis: Gemini for patterns/architecture
124
- 3. Synthesis: Merge findings
125
- 4. ${regenerate ? 'Merge with preserved features/development_index/statistics from .workflow/project.json.backup' : ''}
126
- 5. Write JSON: Write('.workflow/project.json', jsonContent)
127
- 6. Report: Return brief completion summary
128
-
129
- Project root: ${projectRoot}
130
- `
131
- )
132
- ```
133
-
134
- ### Step 4: Display Summary
135
-
136
- ```javascript
137
- const projectJson = JSON.parse(Read('.workflow/project.json'));
138
-
139
- console.log(`
140
- ✓ Project initialized successfully
141
-
142
- ## Project Overview
143
- Name: ${projectJson.project_name}
144
- Description: ${projectJson.overview.description}
145
-
146
- ### Technology Stack
147
- Languages: ${projectJson.overview.technology_stack.languages.map(l => l.name).join(', ')}
148
- Frameworks: ${projectJson.overview.technology_stack.frameworks.join(', ')}
149
-
150
- ### Architecture
151
- Style: ${projectJson.overview.architecture.style}
152
- Components: ${projectJson.overview.key_components.length} core modules
153
-
154
- ---
155
- Project state: .workflow/project.json
156
- ${regenerate ? 'Backup: .workflow/project.json.backup' : ''}
157
- `);
158
- ```
159
-
160
- ## Error Handling
161
-
162
- **Agent Failure**: Fall back to basic initialization with placeholder overview
163
- **Missing Tools**: Agent uses Qwen fallback or bash-only
164
- **Empty Project**: Create minimal JSON with all gaps identified
1
+ ---
2
+ name: init
3
+ description: Initialize project-level state with intelligent project analysis using cli-explore-agent
4
+ argument-hint: "[--regenerate]"
5
+ examples:
6
+ - /workflow:init
7
+ - /workflow:init --regenerate
8
+ ---
9
+
10
+ # Workflow Init Command (/workflow:init)
11
+
12
+ ## Overview
13
+ Initialize `.workflow/project.json` with comprehensive project understanding by delegating analysis to **cli-explore-agent**.
14
+
15
+ **Note**: This command may be called by other workflow commands. Upon completion, return immediately to continue the calling workflow without interrupting the task flow.
16
+
17
+ ## Usage
18
+ ```bash
19
+ /workflow:init # Initialize (skip if exists)
20
+ /workflow:init --regenerate # Force regeneration
21
+ ```
22
+
23
+ ## Execution Process
24
+
25
+ ```
26
+ Input Parsing:
27
+ └─ Parse --regenerate flag → regenerate = true | false
28
+
29
+ Decision:
30
+ ├─ EXISTS + no --regenerate → Exit: "Already initialized"
31
+ ├─ EXISTS + --regenerate → Backup existing → Continue analysis
32
+ └─ NOT_FOUND → Continue analysis
33
+
34
+ Analysis Flow:
35
+ ├─ Get project metadata (name, root)
36
+ ├─ Invoke cli-explore-agent
37
+ │ ├─ Structural scan (get_modules_by_depth.sh, find, wc)
38
+ │ ├─ Semantic analysis (Gemini CLI)
39
+ │ ├─ Synthesis and merge
40
+ │ └─ Write .workflow/project.json
41
+ └─ Display summary
42
+
43
+ Output:
44
+ └─ .workflow/project.json (+ .backup if regenerate)
45
+ ```
46
+
47
+ ## Implementation
48
+
49
+ ### Step 1: Parse Input and Check Existing State
50
+
51
+ **Parse --regenerate flag**:
52
+ ```javascript
53
+ const regenerate = $ARGUMENTS.includes('--regenerate')
54
+ ```
55
+
56
+ **Check existing state**:
57
+
58
+ ```bash
59
+ bash(test -f .workflow/project.json && echo "EXISTS" || echo "NOT_FOUND")
60
+ ```
61
+
62
+ **If EXISTS and no --regenerate**: Exit early
63
+ ```
64
+ Project already initialized at .workflow/project.json
65
+ Use /workflow:init --regenerate to rebuild
66
+ Use /workflow:status --project to view state
67
+ ```
68
+
69
+ ### Step 2: Get Project Metadata
70
+
71
+ ```bash
72
+ bash(basename "$(git rev-parse --show-toplevel 2>/dev/null || pwd)")
73
+ bash(git rev-parse --show-toplevel 2>/dev/null || pwd)
74
+ bash(mkdir -p .workflow)
75
+ ```
76
+
77
+ ### Step 3: Invoke cli-explore-agent
78
+
79
+ **For --regenerate**: Backup and preserve existing data
80
+ ```bash
81
+ bash(cp .workflow/project.json .workflow/project.json.backup)
82
+ ```
83
+
84
+ **Delegate analysis to agent**:
85
+
86
+ ```javascript
87
+ Task(
88
+ subagent_type="cli-explore-agent",
89
+ run_in_background=false,
90
+ description="Deep project analysis",
91
+ prompt=`
92
+ Analyze project for workflow initialization and generate .workflow/project.json.
93
+
94
+ ## MANDATORY FIRST STEPS
95
+ 1. Execute: cat ~/.claude/workflows/cli-templates/schemas/project-json-schema.json (get schema reference)
96
+ 2. Execute: ccw tool exec get_modules_by_depth '{}' (get project structure)
97
+
98
+ ## Task
99
+ Generate complete project.json with:
100
+ - project_name: ${projectName}
101
+ - initialized_at: current ISO timestamp
102
+ - overview: {description, technology_stack, architecture, key_components}
103
+ - features: ${regenerate ? 'preserve from backup' : '[] (empty)'}
104
+ - development_index: ${regenerate ? 'preserve from backup' : '{feature: [], enhancement: [], bugfix: [], refactor: [], docs: []}'}
105
+ - statistics: ${regenerate ? 'preserve from backup' : '{total_features: 0, total_sessions: 0, last_updated}'}
106
+ - _metadata: {initialized_by: "cli-explore-agent", analysis_timestamp, analysis_mode}
107
+
108
+ ## Analysis Requirements
109
+
110
+ **Technology Stack**:
111
+ - Languages: File counts, mark primary
112
+ - Frameworks: From package.json, requirements.txt, go.mod, etc.
113
+ - Build tools: npm, cargo, maven, webpack, vite
114
+ - Test frameworks: jest, pytest, go test, junit
115
+
116
+ **Architecture**:
117
+ - Style: MVC, microservices, layered (from structure & imports)
118
+ - Layers: presentation, business-logic, data-access
119
+ - Patterns: singleton, factory, repository
120
+ - Key components: 5-10 modules {name, path, description, importance}
121
+
122
+ ## Execution
123
+ 1. Structural scan: get_modules_by_depth.sh, find, wc -l
124
+ 2. Semantic analysis: Gemini for patterns/architecture
125
+ 3. Synthesis: Merge findings
126
+ 4. ${regenerate ? 'Merge with preserved features/development_index/statistics from .workflow/project.json.backup' : ''}
127
+ 5. Write JSON: Write('.workflow/project.json', jsonContent)
128
+ 6. Report: Return brief completion summary
129
+
130
+ Project root: ${projectRoot}
131
+ `
132
+ )
133
+ ```
134
+
135
+ ### Step 4: Display Summary
136
+
137
+ ```javascript
138
+ const projectJson = JSON.parse(Read('.workflow/project.json'));
139
+
140
+ console.log(`
141
+ ✓ Project initialized successfully
142
+
143
+ ## Project Overview
144
+ Name: ${projectJson.project_name}
145
+ Description: ${projectJson.overview.description}
146
+
147
+ ### Technology Stack
148
+ Languages: ${projectJson.overview.technology_stack.languages.map(l => l.name).join(', ')}
149
+ Frameworks: ${projectJson.overview.technology_stack.frameworks.join(', ')}
150
+
151
+ ### Architecture
152
+ Style: ${projectJson.overview.architecture.style}
153
+ Components: ${projectJson.overview.key_components.length} core modules
154
+
155
+ ---
156
+ Project state: .workflow/project.json
157
+ ${regenerate ? 'Backup: .workflow/project.json.backup' : ''}
158
+ `);
159
+ ```
160
+
161
+ ## Error Handling
162
+
163
+ **Agent Failure**: Fall back to basic initialization with placeholder overview
164
+ **Missing Tools**: Agent uses Qwen fallback or bash-only
165
+ **Empty Project**: Create minimal JSON with all gaps identified