claude-code-workflow 6.3.31 → 6.3.34

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 (492) hide show
  1. package/.claude/CLAUDE.md +7 -3
  2. package/.claude/agents/action-planning-agent.md +885 -885
  3. package/.claude/agents/cli-discuss-agent.md +391 -391
  4. package/.claude/agents/cli-execution-agent.md +7 -6
  5. package/.claude/agents/cli-lite-planning-agent.md +1 -1
  6. package/.claude/agents/cli-planning-agent.md +2 -2
  7. package/.claude/agents/code-developer.md +407 -403
  8. package/.claude/agents/conceptual-planning-agent.md +11 -0
  9. package/.claude/agents/debug-explore-agent.md +3 -3
  10. package/.claude/agents/doc-generator.md +3 -3
  11. package/.claude/agents/issue-plan-agent.md +333 -340
  12. package/.claude/agents/issue-queue-agent.md +1 -1
  13. package/.claude/agents/memory-bridge.md +95 -95
  14. package/.claude/agents/test-context-search-agent.md +402 -402
  15. package/.claude/agents/ui-design-agent.md +595 -595
  16. package/.claude/agents/universal-executor.md +134 -134
  17. package/.claude/commands/cli/codex-review.md +355 -0
  18. package/.claude/commands/issue/discover-by-prompt.md +1 -1
  19. package/.claude/commands/issue/execute.md +581 -581
  20. package/.claude/commands/issue/new.md +413 -413
  21. package/.claude/commands/issue/plan.md +1 -1
  22. package/.claude/commands/issue/queue.md +441 -382
  23. package/.claude/commands/memory/code-map-memory.md +687 -687
  24. package/.claude/commands/memory/compact.md +383 -383
  25. package/.claude/commands/memory/docs-full-cli.md +471 -471
  26. package/.claude/commands/memory/docs-related-cli.md +386 -386
  27. package/.claude/commands/memory/docs.md +615 -615
  28. package/.claude/commands/memory/load-skill-memory.md +182 -182
  29. package/.claude/commands/memory/skill-memory.md +525 -525
  30. package/.claude/commands/memory/style-skill-memory.md +396 -396
  31. package/.claude/commands/memory/swagger-docs.md +773 -773
  32. package/.claude/commands/memory/tech-research-rules.md +2 -2
  33. package/.claude/commands/memory/update-full.md +332 -332
  34. package/.claude/commands/memory/workflow-skill-memory.md +517 -517
  35. package/.claude/commands/task/create.md +151 -151
  36. package/.claude/commands/task/replan.md +436 -436
  37. package/.claude/commands/version.md +254 -254
  38. package/.claude/commands/workflow/brainstorm/api-designer.md +587 -587
  39. package/.claude/commands/workflow/brainstorm/auto-parallel.md +11 -0
  40. package/.claude/commands/workflow/brainstorm/data-architect.md +220 -220
  41. package/.claude/commands/workflow/brainstorm/product-manager.md +200 -200
  42. package/.claude/commands/workflow/brainstorm/product-owner.md +200 -200
  43. package/.claude/commands/workflow/brainstorm/scrum-master.md +200 -200
  44. package/.claude/commands/workflow/brainstorm/subject-matter-expert.md +200 -200
  45. package/.claude/commands/workflow/brainstorm/system-architect.md +389 -389
  46. package/.claude/commands/workflow/brainstorm/ui-designer.md +221 -221
  47. package/.claude/commands/workflow/brainstorm/ux-expert.md +221 -221
  48. package/.claude/commands/workflow/clean.md +3 -3
  49. package/.claude/commands/workflow/debug-with-file.md +666 -0
  50. package/.claude/commands/workflow/debug.md +327 -327
  51. package/.claude/commands/workflow/execute.md +498 -498
  52. package/.claude/commands/workflow/init.md +25 -12
  53. package/.claude/commands/workflow/lite-execute.md +25 -22
  54. package/.claude/commands/workflow/lite-fix.md +631 -631
  55. package/.claude/commands/workflow/lite-lite-lite.md +39 -11
  56. package/.claude/commands/workflow/lite-plan.md +4 -2
  57. package/.claude/commands/workflow/multi-cli-plan.md +97 -39
  58. package/.claude/commands/workflow/plan.md +551 -551
  59. package/.claude/commands/workflow/replan.md +515 -515
  60. package/.claude/commands/workflow/review-fix.md +610 -610
  61. package/.claude/commands/workflow/review-module-cycle.md +771 -771
  62. package/.claude/commands/workflow/review-session-cycle.md +782 -782
  63. package/.claude/commands/workflow/review.md +322 -322
  64. package/.claude/commands/workflow/session/complete.md +31 -4
  65. package/.claude/commands/workflow/session/list.md +95 -95
  66. package/.claude/commands/workflow/session/resume.md +60 -60
  67. package/.claude/commands/workflow/session/solidify.md +299 -299
  68. package/.claude/commands/workflow/session/start.md +1 -1
  69. package/.claude/commands/workflow/tdd-plan.md +597 -460
  70. package/.claude/commands/workflow/test-cycle-execute.md +504 -504
  71. package/.claude/commands/workflow/test-fix-gen.md +699 -699
  72. package/.claude/commands/workflow/tools/conflict-resolution.md +2 -2
  73. package/.claude/commands/workflow/tools/context-gather.md +2 -2
  74. package/.claude/commands/workflow/tools/task-generate-tdd.md +517 -517
  75. package/.claude/commands/workflow/tools/tdd-coverage-analysis.md +309 -309
  76. package/.claude/commands/workflow/tools/test-concept-enhanced.md +1 -1
  77. package/.claude/commands/workflow/tools/test-context-gather.md +235 -235
  78. package/.claude/commands/workflow/tools/test-task-generate.md +255 -255
  79. package/.claude/commands/workflow/ui-design/animation-extract.md +1150 -1150
  80. package/.claude/commands/workflow/ui-design/design-sync.md +454 -454
  81. package/.claude/commands/workflow/ui-design/explore-auto.md +678 -678
  82. package/.claude/commands/workflow/ui-design/imitate-auto.md +745 -745
  83. package/.claude/commands/workflow/ui-design/layout-extract.md +788 -788
  84. package/.claude/commands/workflow/ui-design/reference-page-generator.md +356 -356
  85. package/.claude/commands/workflow/ui-design/style-extract.md +773 -773
  86. package/.claude/skills/ccw/SKILL.md +522 -352
  87. package/.claude/skills/ccw/command.json +641 -547
  88. package/.claude/skills/ccw-help/SKILL.md +116 -116
  89. package/.claude/skills/ccw-help/command.json +520 -511
  90. package/.claude/skills/copyright-docs/phases/01.5-project-exploration.md +150 -150
  91. package/.claude/skills/copyright-docs/phases/02.5-consolidation.md +192 -192
  92. package/.claude/skills/copyright-docs/templates/agent-base.md +200 -200
  93. package/.claude/skills/project-analyze/phases/03.5-consolidation.md +233 -233
  94. package/.claude/skills/project-analyze/specs/writing-style.md +152 -152
  95. package/.claude/skills/review-code/phases/state-manager.md +752 -752
  96. package/.claude/skills/review-code/specs/rules/index.md +140 -140
  97. package/.claude/skills/skill-generator/specs/cli-integration.md +13 -19
  98. package/.claude/skills/skill-generator/specs/scripting-integration.md +265 -265
  99. package/.claude/skills/skill-generator/templates/code-analysis-action.md +503 -503
  100. package/.claude/skills/skill-generator/templates/llm-action.md +355 -355
  101. package/.claude/skills/skill-generator/templates/script-bash.md +277 -277
  102. package/.claude/skills/skill-generator/templates/script-python.md +198 -198
  103. package/.claude/skills/skill-generator/templates/skill-md.md +235 -235
  104. package/.claude/skills/skill-tuning/SKILL.md +303 -303
  105. package/.claude/skills/skill-tuning/phases/actions/action-abort.md +164 -164
  106. package/.claude/skills/skill-tuning/phases/actions/action-apply-fix.md +206 -206
  107. package/.claude/skills/skill-tuning/phases/actions/action-complete.md +195 -195
  108. package/.claude/skills/skill-tuning/phases/actions/action-diagnose-agent.md +317 -317
  109. package/.claude/skills/skill-tuning/phases/actions/action-diagnose-context.md +243 -243
  110. package/.claude/skills/skill-tuning/phases/actions/action-diagnose-dataflow.md +318 -318
  111. package/.claude/skills/skill-tuning/phases/actions/action-diagnose-memory.md +269 -269
  112. package/.claude/skills/skill-tuning/phases/actions/action-diagnose-token-consumption.md +200 -200
  113. package/.claude/skills/skill-tuning/phases/actions/action-gemini-analysis.md +322 -322
  114. package/.claude/skills/skill-tuning/phases/actions/action-generate-report.md +228 -228
  115. package/.claude/skills/skill-tuning/phases/actions/action-init.md +149 -149
  116. package/.claude/skills/skill-tuning/phases/actions/action-propose-fixes.md +317 -317
  117. package/.claude/skills/skill-tuning/phases/actions/action-verify.md +222 -222
  118. package/.claude/skills/skill-tuning/phases/orchestrator.md +377 -377
  119. package/.claude/skills/skill-tuning/phases/state-schema.md +378 -378
  120. package/.claude/skills/skill-tuning/specs/problem-taxonomy.md +318 -318
  121. package/.claude/skills/skill-tuning/specs/quality-gates.md +263 -263
  122. package/.claude/skills/skill-tuning/specs/tuning-strategies.md +1537 -1537
  123. package/.claude/skills/skill-tuning/templates/diagnosis-report.md +153 -153
  124. package/.claude/skills/skill-tuning/templates/fix-proposal.md +204 -204
  125. package/.claude/skills/software-manual/SKILL.md +184 -184
  126. package/.claude/skills/software-manual/phases/01-requirements-discovery.md +162 -162
  127. package/.claude/skills/software-manual/phases/02-project-exploration.md +101 -101
  128. package/.claude/skills/software-manual/phases/03-parallel-analysis.md +183 -183
  129. package/.claude/skills/software-manual/phases/03.5-consolidation.md +82 -82
  130. package/.claude/skills/software-manual/phases/04-screenshot-capture.md +89 -89
  131. package/.claude/skills/software-manual/phases/05-html-assembly.md +132 -132
  132. package/.claude/skills/software-manual/phases/06-iterative-refinement.md +259 -259
  133. package/.claude/skills/software-manual/scripts/screenshot-helper.md +447 -447
  134. package/.claude/skills/software-manual/scripts/swagger-runner.md +419 -419
  135. package/.claude/skills/software-manual/scripts/typedoc-runner.md +357 -357
  136. package/.claude/skills/software-manual/specs/html-template.md +325 -325
  137. package/.claude/skills/software-manual/specs/quality-standards.md +253 -253
  138. package/.claude/skills/software-manual/specs/writing-style.md +298 -298
  139. package/.claude/skills/text-formatter/SKILL.md +196 -196
  140. package/.claude/skills/text-formatter/phases/01-input-collection.md +111 -111
  141. package/.claude/skills/text-formatter/phases/02-content-analysis.md +248 -248
  142. package/.claude/skills/text-formatter/phases/03-format-transform.md +245 -245
  143. package/.claude/skills/text-formatter/phases/04-output-preview.md +183 -183
  144. package/.claude/skills/text-formatter/specs/callout-types.md +293 -293
  145. package/.claude/skills/text-formatter/specs/element-mapping.md +226 -226
  146. package/.claude/skills/text-formatter/specs/format-rules.md +273 -273
  147. package/.claude/skills/text-formatter/templates/bbcode-template.md +350 -350
  148. package/.claude/workflows/chinese-response.md +25 -25
  149. package/.claude/workflows/cli-templates/memory/style-skill-memory/skill-md-template.md +299 -299
  150. package/.claude/workflows/cli-templates/planning-roles/product-owner.md +261 -261
  151. package/.claude/workflows/cli-templates/prompts/{analysis/03-analyze-performance.txt → analysis-analyze-performance.txt} +29 -29
  152. package/.claude/workflows/cli-templates/prompts/{analysis/03-assess-security-risks.txt → analysis-assess-security-risks.txt} +29 -29
  153. package/.claude/workflows/cli-templates/prompts/{analysis/02-review-architecture.txt → analysis-review-architecture.txt} +29 -29
  154. package/.claude/workflows/cli-templates/prompts/{analysis/02-review-code-quality.txt → analysis-review-code-quality.txt} +28 -28
  155. package/.claude/workflows/cli-templates/prompts/{analysis/03-review-quality-standards.txt → analysis-review-quality-standards.txt} +29 -29
  156. package/.claude/workflows/cli-templates/prompts/{analysis/01-trace-code-execution.txt → analysis-trace-code-execution.txt} +115 -115
  157. package/.claude/workflows/cli-templates/prompts/{documentation/api.txt → documentation-api.txt} +14 -14
  158. package/.claude/workflows/cli-templates/prompts/{documentation/folder-navigation.txt → documentation-folder-navigation.txt} +26 -26
  159. package/.claude/workflows/cli-templates/prompts/{documentation/project-architecture.txt → documentation-project-architecture.txt} +40 -40
  160. package/.claude/workflows/cli-templates/prompts/{documentation/project-examples.txt → documentation-project-examples.txt} +34 -34
  161. package/.claude/workflows/cli-templates/prompts/{documentation/project-readme.txt → documentation-project-readme.txt} +34 -34
  162. package/.claude/workflows/cli-templates/prompts/{documentation/swagger-api.txt → documentation-swagger-api.txt} +266 -266
  163. package/.claude/workflows/cli-templates/prompts/{planning/02-design-component-spec.txt → planning-design-component-spec.txt} +28 -28
  164. package/.claude/workflows/cli-templates/prompts/{verification/codex-technical.txt → verification-codex-technical.txt} +28 -28
  165. package/.claude/workflows/cli-templates/prompts/{verification/cross-validation.txt → verification-cross-validation.txt} +28 -28
  166. package/.claude/workflows/cli-templates/prompts/{verification/gemini-strategic.txt → verification-gemini-strategic.txt} +27 -27
  167. package/.claude/workflows/cli-templates/prompts/{workflow/analysis-results-structure.txt → workflow-analysis-results-structure.txt} +224 -224
  168. package/.claude/workflows/cli-templates/prompts/{workflow/impl-plan-template.txt → workflow-impl-plan-template.txt} +286 -286
  169. package/.claude/workflows/cli-templates/prompts/{workflow/skill-conflict-patterns.txt → workflow-skill-conflict-patterns.txt} +2 -2
  170. package/.claude/workflows/cli-templates/prompts/{workflow/skill-lessons-learned.txt → workflow-skill-lessons-learned.txt} +2 -2
  171. package/.claude/workflows/cli-templates/prompts/{workflow/task-json-agent-mode.txt → workflow-task-json-agent-mode.txt} +123 -123
  172. package/.claude/workflows/cli-templates/schemas/project-guidelines-schema.json +141 -0
  173. package/.claude/workflows/cli-templates/schemas/{project-json-schema.json → project-tech-schema.json} +2 -2
  174. package/.claude/workflows/cli-tools-usage.md +135 -115
  175. package/.claude/workflows/coding-philosophy.md +69 -69
  176. package/.claude/workflows/context-tools.md +76 -76
  177. package/.claude/workflows/file-modification.md +64 -64
  178. package/.claude/workflows/review-directory-specification.md +336 -336
  179. package/.claude/workflows/windows-platform.md +19 -19
  180. package/.claude/workflows/workflow-architecture.md +942 -942
  181. package/.codex/prompts/issue-execute.md +176 -70
  182. package/README.md +250 -214
  183. package/ccw/dist/cli.d.ts.map +1 -1
  184. package/ccw/dist/cli.js +15 -0
  185. package/ccw/dist/cli.js.map +1 -1
  186. package/ccw/dist/commands/cli.d.ts +5 -0
  187. package/ccw/dist/commands/cli.d.ts.map +1 -1
  188. package/ccw/dist/commands/cli.js +117 -20
  189. package/ccw/dist/commands/cli.js.map +1 -1
  190. package/ccw/dist/commands/install.d.ts +17 -0
  191. package/ccw/dist/commands/install.d.ts.map +1 -1
  192. package/ccw/dist/commands/install.js +211 -2
  193. package/ccw/dist/commands/install.js.map +1 -1
  194. package/ccw/dist/commands/issue.d.ts.map +1 -1
  195. package/ccw/dist/commands/issue.js +208 -28
  196. package/ccw/dist/commands/issue.js.map +1 -1
  197. package/ccw/dist/commands/uninstall.d.ts.map +1 -1
  198. package/ccw/dist/commands/uninstall.js +22 -1
  199. package/ccw/dist/commands/uninstall.js.map +1 -1
  200. package/ccw/dist/commands/view.d.ts.map +1 -1
  201. package/ccw/dist/commands/view.js +3 -0
  202. package/ccw/dist/commands/view.js.map +1 -1
  203. package/ccw/dist/commands/workflow.d.ts +11 -0
  204. package/ccw/dist/commands/workflow.d.ts.map +1 -0
  205. package/ccw/dist/commands/workflow.js +294 -0
  206. package/ccw/dist/commands/workflow.js.map +1 -0
  207. package/ccw/dist/core/data-aggregator.d.ts +13 -2
  208. package/ccw/dist/core/data-aggregator.d.ts.map +1 -1
  209. package/ccw/dist/core/data-aggregator.js +10 -16
  210. package/ccw/dist/core/data-aggregator.js.map +1 -1
  211. package/ccw/dist/core/routes/claude-routes.d.ts.map +1 -1
  212. package/ccw/dist/core/routes/claude-routes.js +57 -3
  213. package/ccw/dist/core/routes/claude-routes.js.map +1 -1
  214. package/ccw/dist/core/routes/cli-routes.d.ts +13 -0
  215. package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
  216. package/ccw/dist/core/routes/cli-routes.js +46 -0
  217. package/ccw/dist/core/routes/cli-routes.js.map +1 -1
  218. package/ccw/dist/core/routes/help-routes.d.ts.map +1 -1
  219. package/ccw/dist/core/routes/help-routes.js +156 -58
  220. package/ccw/dist/core/routes/help-routes.js.map +1 -1
  221. package/ccw/dist/core/routes/hooks-routes.d.ts.map +1 -1
  222. package/ccw/dist/core/routes/hooks-routes.js +33 -0
  223. package/ccw/dist/core/routes/hooks-routes.js.map +1 -1
  224. package/ccw/dist/core/routes/issue-routes.d.ts.map +1 -1
  225. package/ccw/dist/core/routes/issue-routes.js +211 -29
  226. package/ccw/dist/core/routes/issue-routes.js.map +1 -1
  227. package/ccw/dist/core/routes/mcp-routes.d.ts.map +1 -1
  228. package/ccw/dist/core/routes/mcp-routes.js +4 -1
  229. package/ccw/dist/core/routes/mcp-routes.js.map +1 -1
  230. package/ccw/dist/core/routes/rules-routes.d.ts.map +1 -1
  231. package/ccw/dist/core/routes/rules-routes.js +22 -6
  232. package/ccw/dist/core/routes/rules-routes.js.map +1 -1
  233. package/ccw/dist/core/routes/session-routes.d.ts.map +1 -1
  234. package/ccw/dist/core/routes/session-routes.js +23 -1
  235. package/ccw/dist/core/routes/session-routes.js.map +1 -1
  236. package/ccw/dist/mcp-server/index.js +8 -2
  237. package/ccw/dist/mcp-server/index.js.map +1 -1
  238. package/ccw/dist/tools/claude-cli-tools.d.ts.map +1 -1
  239. package/ccw/dist/tools/claude-cli-tools.js +52 -28
  240. package/ccw/dist/tools/claude-cli-tools.js.map +1 -1
  241. package/ccw/dist/tools/cli-executor-core.d.ts.map +1 -1
  242. package/ccw/dist/tools/cli-executor-core.js +38 -12
  243. package/ccw/dist/tools/cli-executor-core.js.map +1 -1
  244. package/ccw/dist/tools/cli-executor-state.d.ts +2 -0
  245. package/ccw/dist/tools/cli-executor-state.d.ts.map +1 -1
  246. package/ccw/dist/tools/cli-executor-state.js.map +1 -1
  247. package/ccw/dist/tools/cli-executor-utils.d.ts +7 -0
  248. package/ccw/dist/tools/cli-executor-utils.d.ts.map +1 -1
  249. package/ccw/dist/tools/cli-executor-utils.js +31 -2
  250. package/ccw/dist/tools/cli-executor-utils.js.map +1 -1
  251. package/ccw/dist/tools/cli-history-store.d.ts +21 -0
  252. package/ccw/dist/tools/cli-history-store.d.ts.map +1 -1
  253. package/ccw/dist/tools/cli-history-store.js +106 -30
  254. package/ccw/dist/tools/cli-history-store.js.map +1 -1
  255. package/ccw/dist/tools/cli-output-converter.d.ts +2 -1
  256. package/ccw/dist/tools/cli-output-converter.d.ts.map +1 -1
  257. package/ccw/dist/tools/cli-output-converter.js +65 -10
  258. package/ccw/dist/tools/cli-output-converter.js.map +1 -1
  259. package/ccw/dist/tools/codex-lens-lsp.d.ts +61 -0
  260. package/ccw/dist/tools/codex-lens-lsp.d.ts.map +1 -0
  261. package/ccw/dist/tools/codex-lens-lsp.js +320 -0
  262. package/ccw/dist/tools/codex-lens-lsp.js.map +1 -0
  263. package/ccw/dist/tools/codex-lens.d.ts.map +1 -1
  264. package/ccw/dist/tools/codex-lens.js +74 -54
  265. package/ccw/dist/tools/codex-lens.js.map +1 -1
  266. package/ccw/dist/tools/index.d.ts.map +1 -1
  267. package/ccw/dist/tools/index.js +4 -0
  268. package/ccw/dist/tools/index.js.map +1 -1
  269. package/ccw/dist/tools/template-discovery.d.ts +85 -0
  270. package/ccw/dist/tools/template-discovery.d.ts.map +1 -0
  271. package/ccw/dist/tools/template-discovery.js +239 -0
  272. package/ccw/dist/tools/template-discovery.js.map +1 -0
  273. package/ccw/dist/tools/vscode-lsp.d.ts +57 -0
  274. package/ccw/dist/tools/vscode-lsp.d.ts.map +1 -0
  275. package/ccw/dist/tools/vscode-lsp.js +250 -0
  276. package/ccw/dist/tools/vscode-lsp.js.map +1 -0
  277. package/ccw/dist/utils/path-resolver.d.ts +16 -2
  278. package/ccw/dist/utils/path-resolver.d.ts.map +1 -1
  279. package/ccw/dist/utils/path-resolver.js +36 -6
  280. package/ccw/dist/utils/path-resolver.js.map +1 -1
  281. package/ccw/dist/utils/path-validator.d.ts +5 -0
  282. package/ccw/dist/utils/path-validator.d.ts.map +1 -1
  283. package/ccw/dist/utils/path-validator.js +16 -5
  284. package/ccw/dist/utils/path-validator.js.map +1 -1
  285. package/ccw/dist/utils/project-root.d.ts +25 -0
  286. package/ccw/dist/utils/project-root.d.ts.map +1 -0
  287. package/ccw/dist/utils/project-root.js +63 -0
  288. package/ccw/dist/utils/project-root.js.map +1 -0
  289. package/ccw/dist/utils/shell-escape.d.ts +47 -3
  290. package/ccw/dist/utils/shell-escape.d.ts.map +1 -1
  291. package/ccw/dist/utils/shell-escape.js +98 -15
  292. package/ccw/dist/utils/shell-escape.js.map +1 -1
  293. package/ccw/dist/utils/update-checker.d.ts +11 -0
  294. package/ccw/dist/utils/update-checker.d.ts.map +1 -0
  295. package/ccw/dist/utils/update-checker.js +167 -0
  296. package/ccw/dist/utils/update-checker.js.map +1 -0
  297. package/ccw/src/cli.ts +16 -0
  298. package/ccw/src/commands/cli.ts +127 -20
  299. package/ccw/src/commands/install.ts +239 -2
  300. package/ccw/src/commands/issue.ts +245 -31
  301. package/ccw/src/commands/uninstall.ts +23 -1
  302. package/ccw/src/commands/view.ts +4 -0
  303. package/ccw/src/commands/workflow.ts +348 -0
  304. package/ccw/src/core/data-aggregator.ts +25 -19
  305. package/ccw/src/core/routes/claude-routes.ts +64 -3
  306. package/ccw/src/core/routes/cli-routes.ts +58 -0
  307. package/ccw/src/core/routes/help-routes.ts +172 -60
  308. package/ccw/src/core/routes/hooks-routes.ts +32 -0
  309. package/ccw/src/core/routes/issue-routes.ts +242 -28
  310. package/ccw/src/core/routes/mcp-routes.ts +6 -2
  311. package/ccw/src/core/routes/rules-routes.ts +24 -6
  312. package/ccw/src/core/routes/session-routes.ts +24 -1
  313. package/ccw/src/mcp-server/index.ts +7 -2
  314. package/ccw/src/templates/dashboard-css/26-claude-manager.css +179 -0
  315. package/ccw/src/templates/dashboard-css/32-issue-manager.css +3427 -3302
  316. package/ccw/src/templates/dashboard-css/33-cli-stream-viewer.css +3 -2
  317. package/ccw/src/templates/dashboard-js/components/cli-history.js +4 -1
  318. package/ccw/src/templates/dashboard-js/components/cli-stream-viewer.js +57 -21
  319. package/ccw/src/templates/dashboard-js/components/hook-manager.js +1492 -1372
  320. package/ccw/src/templates/dashboard-js/components/mcp-manager.js +107 -20
  321. package/ccw/src/templates/dashboard-js/components/version-check.js +135 -1
  322. package/ccw/src/templates/dashboard-js/i18n.js +42 -0
  323. package/ccw/src/templates/dashboard-js/views/claude-manager.js +168 -0
  324. package/ccw/src/templates/dashboard-js/views/cli-manager.js +1 -0
  325. package/ccw/src/templates/dashboard-js/views/hook-manager.js +21 -5
  326. package/ccw/src/templates/dashboard-js/views/issue-manager.js +201 -1
  327. package/ccw/src/templates/dashboard-js/views/lite-tasks.js +3502 -3478
  328. package/ccw/src/templates/dashboard-js/views/mcp-manager.js +16 -0
  329. package/ccw/src/templates/dashboard.html +112 -0
  330. package/ccw/src/tools/claude-cli-tools.ts +54 -28
  331. package/ccw/src/tools/cli-executor-core.ts +42 -13
  332. package/ccw/src/tools/cli-executor-state.ts +2 -0
  333. package/ccw/src/tools/cli-executor-utils.ts +38 -2
  334. package/ccw/src/tools/cli-history-store.ts +122 -31
  335. package/ccw/src/tools/cli-output-converter.ts +76 -12
  336. package/ccw/src/tools/codex-lens-lsp.ts +405 -0
  337. package/ccw/src/tools/codex-lens.ts +82 -59
  338. package/ccw/src/tools/index.ts +4 -0
  339. package/ccw/src/tools/template-discovery.ts +303 -0
  340. package/ccw/src/tools/vscode-lsp.ts +317 -0
  341. package/ccw/src/utils/path-resolver.ts +37 -6
  342. package/ccw/src/utils/path-validator.ts +17 -5
  343. package/ccw/src/utils/project-root.ts +73 -0
  344. package/ccw/src/utils/shell-escape.ts +103 -16
  345. package/ccw/src/utils/update-checker.ts +178 -0
  346. package/codex-lens/pyproject.toml +14 -0
  347. package/codex-lens/src/codexlens/__pycache__/config.cpython-312.pyc +0 -0
  348. package/codex-lens/src/codexlens/__pycache__/config.cpython-313.pyc +0 -0
  349. package/codex-lens/src/codexlens/__pycache__/errors.cpython-312.pyc +0 -0
  350. package/codex-lens/src/codexlens/__pycache__/errors.cpython-313.pyc +0 -0
  351. package/codex-lens/src/codexlens/api/__init__.py +88 -0
  352. package/codex-lens/src/codexlens/api/__pycache__/__init__.cpython-312.pyc +0 -0
  353. package/codex-lens/src/codexlens/api/__pycache__/__init__.cpython-313.pyc +0 -0
  354. package/codex-lens/src/codexlens/api/__pycache__/definition.cpython-312.pyc +0 -0
  355. package/codex-lens/src/codexlens/api/__pycache__/definition.cpython-313.pyc +0 -0
  356. package/codex-lens/src/codexlens/api/__pycache__/file_context.cpython-312.pyc +0 -0
  357. package/codex-lens/src/codexlens/api/__pycache__/file_context.cpython-313.pyc +0 -0
  358. package/codex-lens/src/codexlens/api/__pycache__/hover.cpython-312.pyc +0 -0
  359. package/codex-lens/src/codexlens/api/__pycache__/hover.cpython-313.pyc +0 -0
  360. package/codex-lens/src/codexlens/api/__pycache__/models.cpython-312.pyc +0 -0
  361. package/codex-lens/src/codexlens/api/__pycache__/models.cpython-313.pyc +0 -0
  362. package/codex-lens/src/codexlens/api/__pycache__/references.cpython-312.pyc +0 -0
  363. package/codex-lens/src/codexlens/api/__pycache__/references.cpython-313.pyc +0 -0
  364. package/codex-lens/src/codexlens/api/__pycache__/semantic.cpython-312.pyc +0 -0
  365. package/codex-lens/src/codexlens/api/__pycache__/semantic.cpython-313.pyc +0 -0
  366. package/codex-lens/src/codexlens/api/__pycache__/symbols.cpython-312.pyc +0 -0
  367. package/codex-lens/src/codexlens/api/__pycache__/symbols.cpython-313.pyc +0 -0
  368. package/codex-lens/src/codexlens/api/__pycache__/utils.cpython-312.pyc +0 -0
  369. package/codex-lens/src/codexlens/api/__pycache__/utils.cpython-313.pyc +0 -0
  370. package/codex-lens/src/codexlens/api/definition.py +126 -0
  371. package/codex-lens/src/codexlens/api/file_context.py +271 -0
  372. package/codex-lens/src/codexlens/api/hover.py +148 -0
  373. package/codex-lens/src/codexlens/api/models.py +281 -0
  374. package/codex-lens/src/codexlens/api/references.py +345 -0
  375. package/codex-lens/src/codexlens/api/semantic.py +471 -0
  376. package/codex-lens/src/codexlens/api/symbols.py +146 -0
  377. package/codex-lens/src/codexlens/api/utils.py +153 -0
  378. package/codex-lens/src/codexlens/config.py +7 -0
  379. package/codex-lens/src/codexlens/errors.py +4 -0
  380. package/codex-lens/src/codexlens/hybrid_search/__init__.py +28 -0
  381. package/codex-lens/src/codexlens/hybrid_search/__pycache__/__init__.cpython-312.pyc +0 -0
  382. package/codex-lens/src/codexlens/hybrid_search/__pycache__/__init__.cpython-313.pyc +0 -0
  383. package/codex-lens/src/codexlens/hybrid_search/__pycache__/data_structures.cpython-312.pyc +0 -0
  384. package/codex-lens/src/codexlens/hybrid_search/__pycache__/data_structures.cpython-313.pyc +0 -0
  385. package/codex-lens/src/codexlens/hybrid_search/__pycache__/engine.cpython-313.pyc +0 -0
  386. package/codex-lens/src/codexlens/hybrid_search/data_structures.py +602 -0
  387. package/codex-lens/src/codexlens/lsp/__init__.py +34 -0
  388. package/codex-lens/src/codexlens/lsp/__pycache__/__init__.cpython-312.pyc +0 -0
  389. package/codex-lens/src/codexlens/lsp/__pycache__/__init__.cpython-313.pyc +0 -0
  390. package/codex-lens/src/codexlens/lsp/__pycache__/handlers.cpython-313.pyc +0 -0
  391. package/codex-lens/src/codexlens/lsp/__pycache__/lsp_bridge.cpython-312.pyc +0 -0
  392. package/codex-lens/src/codexlens/lsp/__pycache__/lsp_bridge.cpython-313.pyc +0 -0
  393. package/codex-lens/src/codexlens/lsp/__pycache__/lsp_graph_builder.cpython-312.pyc +0 -0
  394. package/codex-lens/src/codexlens/lsp/__pycache__/lsp_graph_builder.cpython-313.pyc +0 -0
  395. package/codex-lens/src/codexlens/lsp/__pycache__/providers.cpython-313.pyc +0 -0
  396. package/codex-lens/src/codexlens/lsp/__pycache__/server.cpython-313.pyc +0 -0
  397. package/codex-lens/src/codexlens/lsp/__pycache__/standalone_manager.cpython-313.pyc +0 -0
  398. package/codex-lens/src/codexlens/lsp/handlers.py +551 -0
  399. package/codex-lens/src/codexlens/lsp/lsp_bridge.py +834 -0
  400. package/codex-lens/src/codexlens/lsp/lsp_graph_builder.py +375 -0
  401. package/codex-lens/src/codexlens/lsp/providers.py +177 -0
  402. package/codex-lens/src/codexlens/lsp/server.py +263 -0
  403. package/codex-lens/src/codexlens/lsp/standalone_manager.py +1159 -0
  404. package/codex-lens/src/codexlens/mcp/__init__.py +20 -0
  405. package/codex-lens/src/codexlens/mcp/__pycache__/__init__.cpython-313.pyc +0 -0
  406. package/codex-lens/src/codexlens/mcp/__pycache__/hooks.cpython-313.pyc +0 -0
  407. package/codex-lens/src/codexlens/mcp/__pycache__/provider.cpython-313.pyc +0 -0
  408. package/codex-lens/src/codexlens/mcp/__pycache__/schema.cpython-313.pyc +0 -0
  409. package/codex-lens/src/codexlens/mcp/hooks.py +170 -0
  410. package/codex-lens/src/codexlens/mcp/provider.py +202 -0
  411. package/codex-lens/src/codexlens/mcp/schema.py +113 -0
  412. package/codex-lens/src/codexlens/search/__init__.py +53 -15
  413. package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-312.pyc +0 -0
  414. package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-313.pyc +0 -0
  415. package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-312.pyc +0 -0
  416. package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-313.pyc +0 -0
  417. package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-312.pyc +0 -0
  418. package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-313.pyc +0 -0
  419. package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-312.pyc +0 -0
  420. package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-313.pyc +0 -0
  421. package/codex-lens/src/codexlens/search/association_tree/QUICK_START.md +257 -0
  422. package/codex-lens/src/codexlens/search/association_tree/README.md +188 -0
  423. package/codex-lens/src/codexlens/search/association_tree/__init__.py +21 -0
  424. package/codex-lens/src/codexlens/search/association_tree/__pycache__/__init__.cpython-313.pyc +0 -0
  425. package/codex-lens/src/codexlens/search/association_tree/__pycache__/builder.cpython-313.pyc +0 -0
  426. package/codex-lens/src/codexlens/search/association_tree/__pycache__/data_structures.cpython-313.pyc +0 -0
  427. package/codex-lens/src/codexlens/search/association_tree/__pycache__/deduplicator.cpython-313.pyc +0 -0
  428. package/codex-lens/src/codexlens/search/association_tree/builder.py +450 -0
  429. package/codex-lens/src/codexlens/search/association_tree/data_structures.py +191 -0
  430. package/codex-lens/src/codexlens/search/association_tree/deduplicator.py +301 -0
  431. package/codex-lens/src/codexlens/search/chain_search.py +864 -3
  432. package/codex-lens/src/codexlens/search/clustering/__init__.py +124 -0
  433. package/codex-lens/src/codexlens/search/clustering/__pycache__/__init__.cpython-312.pyc +0 -0
  434. package/codex-lens/src/codexlens/search/clustering/__pycache__/__init__.cpython-313.pyc +0 -0
  435. package/codex-lens/src/codexlens/search/clustering/__pycache__/base.cpython-312.pyc +0 -0
  436. package/codex-lens/src/codexlens/search/clustering/__pycache__/base.cpython-313.pyc +0 -0
  437. package/codex-lens/src/codexlens/search/clustering/__pycache__/dbscan_strategy.cpython-313.pyc +0 -0
  438. package/codex-lens/src/codexlens/search/clustering/__pycache__/factory.cpython-312.pyc +0 -0
  439. package/codex-lens/src/codexlens/search/clustering/__pycache__/factory.cpython-313.pyc +0 -0
  440. package/codex-lens/src/codexlens/search/clustering/__pycache__/frequency_strategy.cpython-312.pyc +0 -0
  441. package/codex-lens/src/codexlens/search/clustering/__pycache__/frequency_strategy.cpython-313.pyc +0 -0
  442. package/codex-lens/src/codexlens/search/clustering/__pycache__/hdbscan_strategy.cpython-313.pyc +0 -0
  443. package/codex-lens/src/codexlens/search/clustering/__pycache__/noop_strategy.cpython-312.pyc +0 -0
  444. package/codex-lens/src/codexlens/search/clustering/__pycache__/noop_strategy.cpython-313.pyc +0 -0
  445. package/codex-lens/src/codexlens/search/clustering/base.py +153 -0
  446. package/codex-lens/src/codexlens/search/clustering/dbscan_strategy.py +197 -0
  447. package/codex-lens/src/codexlens/search/clustering/factory.py +202 -0
  448. package/codex-lens/src/codexlens/search/clustering/frequency_strategy.py +263 -0
  449. package/codex-lens/src/codexlens/search/clustering/hdbscan_strategy.py +153 -0
  450. package/codex-lens/src/codexlens/search/clustering/noop_strategy.py +83 -0
  451. package/codex-lens/src/codexlens/search/hybrid_search.py +194 -2
  452. package/codex-lens/src/codexlens/search/ranking.py +6 -4
  453. package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-312.pyc +0 -0
  454. package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-312.pyc +0 -0
  455. package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-313.pyc +0 -0
  456. package/codex-lens/src/codexlens/storage/__pycache__/global_index.cpython-312.pyc +0 -0
  457. package/codex-lens/src/codexlens/storage/__pycache__/global_index.cpython-313.pyc +0 -0
  458. package/codex-lens/src/codexlens/storage/dir_index.py +172 -0
  459. package/codex-lens/src/codexlens/storage/global_index.py +33 -0
  460. package/package.json +92 -92
  461. /package/.claude/workflows/cli-templates/prompts/{analysis/02-analyze-code-patterns.txt → analysis-analyze-code-patterns.txt} +0 -0
  462. /package/.claude/workflows/cli-templates/prompts/{analysis/02-analyze-technical-document.txt → analysis-analyze-technical-document.txt} +0 -0
  463. /package/.claude/workflows/cli-templates/prompts/{analysis/01-diagnose-bug-root-cause.txt → analysis-diagnose-bug-root-cause.txt} +0 -0
  464. /package/.claude/workflows/cli-templates/prompts/{development/03-debug-runtime-issues.txt → development-debug-runtime-issues.txt} +0 -0
  465. /package/.claude/workflows/cli-templates/prompts/{development/02-generate-tests.txt → development-generate-tests.txt} +0 -0
  466. /package/.claude/workflows/cli-templates/prompts/{development/02-implement-component-ui.txt → development-implement-component-ui.txt} +0 -0
  467. /package/.claude/workflows/cli-templates/prompts/{development/02-implement-feature.txt → development-implement-feature.txt} +0 -0
  468. /package/.claude/workflows/cli-templates/prompts/{development/02-refactor-codebase.txt → development-refactor-codebase.txt} +0 -0
  469. /package/.claude/workflows/cli-templates/prompts/{documentation/module-readme.txt → documentation-module-readme.txt} +0 -0
  470. /package/.claude/workflows/cli-templates/prompts/{memory/02-document-module-structure.txt → memory-document-module-structure.txt} +0 -0
  471. /package/.claude/workflows/cli-templates/prompts/{planning/02-breakdown-task-steps.txt → planning-breakdown-task-steps.txt} +0 -0
  472. /package/.claude/workflows/cli-templates/prompts/{planning/03-evaluate-concept-feasibility.txt → planning-evaluate-concept-feasibility.txt} +0 -0
  473. /package/.claude/workflows/cli-templates/prompts/{planning/01-plan-architecture-design.txt → planning-plan-architecture-design.txt} +0 -0
  474. /package/.claude/workflows/cli-templates/prompts/{planning/03-plan-migration-strategy.txt → planning-plan-migration-strategy.txt} +0 -0
  475. /package/.claude/workflows/cli-templates/prompts/{rules/rule-api.txt → rules-rule-api.txt} +0 -0
  476. /package/.claude/workflows/cli-templates/prompts/{rules/rule-components.txt → rules-rule-components.txt} +0 -0
  477. /package/.claude/workflows/cli-templates/prompts/{rules/rule-config.txt → rules-rule-config.txt} +0 -0
  478. /package/.claude/workflows/cli-templates/prompts/{rules/rule-core.txt → rules-rule-core.txt} +0 -0
  479. /package/.claude/workflows/cli-templates/prompts/{rules/rule-patterns.txt → rules-rule-patterns.txt} +0 -0
  480. /package/.claude/workflows/cli-templates/prompts/{rules/rule-testing.txt → rules-rule-testing.txt} +0 -0
  481. /package/.claude/workflows/cli-templates/prompts/{rules/tech-rules-agent-prompt.txt → rules-tech-rules-agent-prompt.txt} +0 -0
  482. /package/.claude/workflows/cli-templates/prompts/{tech/tech-module-format.txt → tech-tech-module-format.txt} +0 -0
  483. /package/.claude/workflows/cli-templates/prompts/{tech/tech-skill-index.txt → tech-tech-skill-index.txt} +0 -0
  484. /package/.claude/workflows/cli-templates/prompts/{test/test-concept-analysis.txt → test-test-concept-analysis.txt} +0 -0
  485. /package/.claude/workflows/cli-templates/prompts/{universal/00-universal-creative-style.txt → universal-universal-creative-style.txt} +0 -0
  486. /package/.claude/workflows/cli-templates/prompts/{universal/00-universal-rigorous-style.txt → universal-universal-rigorous-style.txt} +0 -0
  487. /package/.claude/workflows/cli-templates/prompts/{workflow/codex-feasibility-validation.txt → workflow-codex-feasibility-validation.txt} +0 -0
  488. /package/.claude/workflows/cli-templates/prompts/{workflow/gemini-solution-design.txt → workflow-gemini-solution-design.txt} +0 -0
  489. /package/.claude/workflows/cli-templates/prompts/{workflow/skill-aggregation.txt → workflow-skill-aggregation.txt} +0 -0
  490. /package/.claude/workflows/cli-templates/prompts/{workflow/skill-index.txt → workflow-skill-index.txt} +0 -0
  491. /package/.claude/workflows/cli-templates/prompts/{workflow/skill-sessions-timeline.txt → workflow-skill-sessions-timeline.txt} +0 -0
  492. /package/.claude/workflows/cli-templates/prompts/{workflow/task-json-cli-mode.txt → workflow-task-json-cli-mode.txt} +0 -0
@@ -1,498 +1,498 @@
1
- ---
2
- name: execute
3
- description: Coordinate agent execution for workflow tasks with automatic session discovery, parallel task processing, and status tracking
4
- argument-hint: "[--resume-session=\"session-id\"]"
5
- ---
6
-
7
- # Workflow Execute Command
8
-
9
- ## Overview
10
- Orchestrates autonomous workflow execution through systematic task discovery, agent coordination, and progress tracking. **Executes entire workflow without user interruption** (except initial session selection if multiple active sessions exist), providing complete context to agents and ensuring proper flow control execution with comprehensive TodoWrite tracking.
11
-
12
- **Resume Mode**: When called with `--resume-session` flag, skips discovery phase and directly enters TodoWrite generation and agent execution for the specified session.
13
-
14
- ## Performance Optimization Strategy
15
-
16
- **Lazy Loading**: Task JSONs read **on-demand** during execution, not upfront. TODO_LIST.md + IMPL_PLAN.md provide metadata for planning.
17
-
18
- **Loading Strategy**:
19
- - **TODO_LIST.md**: Read in Phase 3 (task metadata, status, dependencies for TodoWrite generation)
20
- - **IMPL_PLAN.md**: Check existence in Phase 2 (normal mode), parse execution strategy in Phase 4A
21
- - **Task JSONs**: Lazy loading - read only when task is about to execute (Phase 4B)
22
-
23
- ## Core Rules
24
- **Complete entire workflow autonomously without user interruption, using TodoWrite for comprehensive progress tracking.**
25
- **Execute all discovered pending tasks until workflow completion or blocking dependency.**
26
- **User-choice completion: When all tasks finished, ask user to choose review or complete.**
27
- **ONE AGENT = ONE TASK JSON: Each agent instance executes exactly one task JSON file - never batch multiple tasks into single agent execution.**
28
-
29
- ## Core Responsibilities
30
- - **Session Discovery**: Identify and select active workflow sessions
31
- - **Execution Strategy Parsing**: Extract execution model from IMPL_PLAN.md
32
- - **TodoWrite Progress Tracking**: Maintain real-time execution status throughout entire workflow
33
- - **Agent Orchestration**: Coordinate specialized agents with complete context
34
- - **Status Synchronization**: Update task JSON files and workflow state
35
- - **Autonomous Completion**: Continue execution until all tasks complete or reach blocking state
36
- - **Session User-Choice Completion**: Ask user to choose review or complete when all tasks finished
37
-
38
- ## Execution Philosophy
39
- - **Progress tracking**: Continuous TodoWrite updates throughout entire workflow execution
40
- - **Autonomous completion**: Execute all tasks without user interruption until workflow complete
41
-
42
- ## Execution Process
43
-
44
- ```
45
- Normal Mode:
46
- Phase 1: Discovery
47
- ├─ Count active sessions
48
- └─ Decision:
49
- ├─ count=0 → ERROR: No active sessions
50
- ├─ count=1 → Auto-select session → Phase 2
51
- └─ count>1 → AskUserQuestion (max 4 options) → Phase 2
52
-
53
- Phase 2: Planning Document Validation
54
- ├─ Check IMPL_PLAN.md exists
55
- ├─ Check TODO_LIST.md exists
56
- └─ Validate .task/ contains IMPL-*.json files
57
-
58
- Phase 3: TodoWrite Generation
59
- ├─ Update session status to "active" (Step 0)
60
- ├─ Parse TODO_LIST.md for task statuses
61
- ├─ Generate TodoWrite for entire workflow
62
- └─ Prepare session context paths
63
-
64
- Phase 4: Execution Strategy & Task Execution
65
- ├─ Step 4A: Parse execution strategy from IMPL_PLAN.md
66
- └─ Step 4B: Execute tasks with lazy loading
67
- └─ Loop:
68
- ├─ Get next in_progress task from TodoWrite
69
- ├─ Lazy load task JSON
70
- ├─ Launch agent with task context
71
- ├─ Mark task completed (update IMPL-*.json status)
72
- │ # Quick fix: Update task status for ccw dashboard
73
- │ # TS=$(date -Iseconds) && jq --arg ts "$TS" '.status="completed" | .status_history=(.status_history // [])+[{"from":"in_progress","to":"completed","changed_at":$ts}]' IMPL-X.json > tmp.json && mv tmp.json IMPL-X.json
74
- └─ Advance to next task
75
-
76
- Phase 5: Completion
77
- ├─ Update task statuses in JSON files
78
- ├─ Generate summaries
79
- └─ AskUserQuestion: Choose next step
80
- ├─ "Enter Review" → /workflow:review
81
- └─ "Complete Session" → /workflow:session:complete
82
-
83
- Resume Mode (--resume-session):
84
- ├─ Skip Phase 1 & Phase 2
85
- └─ Entry Point: Phase 3 (TodoWrite Generation)
86
- ├─ Update session status to "active" (if not already)
87
- └─ Continue: Phase 4 → Phase 5
88
- ```
89
-
90
- ## Execution Lifecycle
91
-
92
- ### Phase 1: Discovery
93
- **Applies to**: Normal mode only (skipped in resume mode)
94
-
95
- **Purpose**: Find and select active workflow session with user confirmation when multiple sessions exist
96
-
97
- **Process**:
98
-
99
- #### Step 1.1: Count Active Sessions
100
- ```bash
101
- bash(find .workflow/active/ -name "WFS-*" -type d 2>/dev/null | wc -l)
102
- ```
103
-
104
- #### Step 1.2: Handle Session Selection
105
-
106
- **Case A: No Sessions** (count = 0)
107
- ```
108
- ERROR: No active workflow sessions found
109
- Run /workflow:plan "task description" to create a session
110
- ```
111
-
112
- **Case B: Single Session** (count = 1)
113
- ```bash
114
- bash(find .workflow/active/ -name "WFS-*" -type d 2>/dev/null | head -1 | xargs basename)
115
- ```
116
- Auto-select and continue to Phase 2.
117
-
118
- **Case C: Multiple Sessions** (count > 1)
119
-
120
- List sessions with metadata and prompt user selection:
121
- ```bash
122
- bash(for dir in .workflow/active/WFS-*/; do [ -d "$dir" ] || continue; session=$(basename "$dir"); project=$(jq -r '.project // "Unknown"' "${dir}workflow-session.json" 2>/dev/null || echo "Unknown"); total=$(grep -c '^\- \[' "${dir}TODO_LIST.md" 2>/dev/null || echo 0); completed=$(grep -c '^\- \[x\]' "${dir}TODO_LIST.md" 2>/dev/null || echo 0); if [ "$total" -gt 0 ]; then progress=$((completed * 100 / total)); else progress=0; fi; echo "$session | $project | $completed/$total tasks ($progress%)"; done)
123
- ```
124
-
125
- Use AskUserQuestion to present formatted options (max 4 options shown):
126
- ```javascript
127
- // If more than 4 sessions, show most recent 4 with "Other" option for manual input
128
- const sessions = getActiveSessions() // sorted by last modified
129
- const displaySessions = sessions.slice(0, 4)
130
-
131
- AskUserQuestion({
132
- questions: [{
133
- question: "Multiple active sessions detected. Select one:",
134
- header: "Session",
135
- multiSelect: false,
136
- options: displaySessions.map(s => ({
137
- label: s.id,
138
- description: `${s.project} | ${s.progress}`
139
- }))
140
- // Note: User can select "Other" to manually enter session ID
141
- }]
142
- })
143
- ```
144
-
145
- **Input Validation**:
146
- - If user selects from options: Use selected session ID
147
- - If user selects "Other" and provides input: Validate session exists
148
- - If validation fails: Show error and re-prompt or suggest available sessions
149
-
150
- Parse user input (supports: number "1", full ID "WFS-auth-system", or partial "auth"), validate selection, and continue to Phase 2.
151
-
152
- #### Step 1.3: Load Session Metadata
153
- ```bash
154
- bash(cat .workflow/active/${sessionId}/workflow-session.json)
155
- ```
156
-
157
- **Output**: Store session metadata in memory
158
- **DO NOT read task JSONs yet** - defer until execution phase (lazy loading)
159
-
160
- **Resume Mode**: This entire phase is skipped when `--resume-session="session-id"` flag is provided.
161
-
162
- ### Phase 2: Planning Document Validation
163
- **Applies to**: Normal mode only (skipped in resume mode)
164
-
165
- **Purpose**: Validate planning artifacts exist before execution
166
-
167
- **Process**:
168
- 1. **Check IMPL_PLAN.md**: Verify file exists (defer detailed parsing to Phase 4A)
169
- 2. **Check TODO_LIST.md**: Verify file exists (defer reading to Phase 3)
170
- 3. **Validate Task Directory**: Ensure `.task/` contains at least one IMPL-*.json file
171
-
172
- **Key Optimization**: Only existence checks here. Actual file reading happens in later phases.
173
-
174
- **Resume Mode**: This phase is skipped when `--resume-session` flag is provided. Resume mode entry point is Phase 3.
175
-
176
- ### Phase 3: TodoWrite Generation
177
- **Applies to**: Both normal and resume modes (resume mode entry point)
178
-
179
- **Step 0: Update Session Status to Active**
180
- Before generating TodoWrite, update session status from "planning" to "active":
181
- ```bash
182
- # Update session status (idempotent - safe to run if already active)
183
- jq '.status = "active" | .execution_started_at = (.execution_started_at // now | todate)' \
184
- .workflow/active/${sessionId}/workflow-session.json > tmp.json && \
185
- mv tmp.json .workflow/active/${sessionId}/workflow-session.json
186
- ```
187
- This ensures the dashboard shows the session as "ACTIVE" during execution.
188
-
189
- **Process**:
190
- 1. **Create TodoWrite List**: Generate task list from TODO_LIST.md (not from task JSONs)
191
- - Parse TODO_LIST.md to extract all tasks with current statuses
192
- - Identify first pending task with met dependencies
193
- - Generate comprehensive TodoWrite covering entire workflow
194
- 2. **Prepare Session Context**: Inject workflow paths for agent use (using provided session-id)
195
- 3. **Validate Prerequisites**: Ensure IMPL_PLAN.md and TODO_LIST.md exist and are valid
196
-
197
- **Resume Mode Behavior**:
198
- - Load existing TODO_LIST.md directly from `.workflow/active/{session-id}/`
199
- - Extract current progress from TODO_LIST.md
200
- - Generate TodoWrite from TODO_LIST.md state
201
- - Proceed immediately to agent execution (Phase 4)
202
-
203
- ### Phase 4: Execution Strategy Selection & Task Execution
204
- **Applies to**: Both normal and resume modes
205
-
206
- **Step 4A: Parse Execution Strategy from IMPL_PLAN.md**
207
-
208
- Read IMPL_PLAN.md Section 4 to extract:
209
- - **Execution Model**: Sequential | Parallel | Phased | TDD Cycles
210
- - **Parallelization Opportunities**: Which tasks can run in parallel
211
- - **Serialization Requirements**: Which tasks must run sequentially
212
- - **Critical Path**: Priority execution order
213
-
214
- If IMPL_PLAN.md lacks execution strategy, use intelligent fallback (analyze task structure).
215
-
216
- **Step 4B: Execute Tasks with Lazy Loading**
217
-
218
- **Key Optimization**: Read task JSON **only when needed** for execution
219
-
220
- **Execution Loop Pattern**:
221
- ```
222
- while (TODO_LIST.md has pending tasks) {
223
- next_task_id = getTodoWriteInProgressTask()
224
- task_json = Read(.workflow/active/{session}/.task/{next_task_id}.json) // Lazy load
225
- executeTaskWithAgent(task_json)
226
- updateTodoListMarkCompleted(next_task_id)
227
- advanceTodoWriteToNextTask()
228
- }
229
- ```
230
-
231
- **Execution Process per Task**:
232
- 1. **Identify Next Task**: From TodoWrite, get the next `in_progress` task ID
233
- 2. **Load Task JSON on Demand**: Read `.task/{task-id}.json` for current task ONLY
234
- 3. **Validate Task Structure**: Ensure all 5 required fields exist (id, title, status, meta, context, flow_control)
235
- 4. **Launch Agent**: Invoke specialized agent with complete context including flow control steps
236
- 5. **Monitor Progress**: Track agent execution and handle errors without user interruption
237
- 6. **Collect Results**: Gather implementation results and outputs
238
- 7. **Continue Workflow**: Identify next pending task from TODO_LIST.md and repeat
239
-
240
- **Note**: TODO_LIST.md updates are handled by agents (e.g., code-developer.md), not by the orchestrator.
241
-
242
-
243
- ### Phase 5: Completion
244
- **Applies to**: Both normal and resume modes
245
-
246
- **Process**:
247
- 1. **Update Task Status**: Mark completed tasks in JSON files
248
- 2. **Generate Summary**: Create task summary in `.summaries/`
249
- 3. **Update TodoWrite**: Mark current task complete, advance to next
250
- 4. **Synchronize State**: Update session state and workflow status
251
- 5. **Check Workflow Complete**: Verify all tasks are completed
252
- 6. **User Choice**: When all tasks finished, ask user to choose next step:
253
-
254
- ```javascript
255
- AskUserQuestion({
256
- questions: [{
257
- question: "All tasks completed. What would you like to do next?",
258
- header: "Next Step",
259
- multiSelect: false,
260
- options: [
261
- {
262
- label: "Enter Review",
263
- description: "Run specialized review (security/architecture/quality/action-items)"
264
- },
265
- {
266
- label: "Complete Session",
267
- description: "Archive session and update manifest"
268
- }
269
- ]
270
- }]
271
- })
272
- ```
273
-
274
- **Based on user selection**:
275
- - **"Enter Review"**: Execute `/workflow:review`
276
- - **"Complete Session"**: Execute `/workflow:session:complete`
277
-
278
- ### Post-Completion Expansion
279
-
280
- 完成后询问用户是否扩展为issue(test/enhance/refactor/doc),选中项调用 `/issue:new "{summary} - {dimension}"`
281
-
282
- ## Execution Strategy (IMPL_PLAN-Driven)
283
-
284
- ### Strategy Priority
285
-
286
- **IMPL_PLAN-Driven Execution (Recommended)**:
287
- 1. **Read IMPL_PLAN.md execution strategy** (Section 4: Implementation Strategy)
288
- 2. **Follow explicit guidance**:
289
- - Execution Model (Sequential/Parallel/Phased/TDD)
290
- - Parallelization Opportunities (which tasks can run in parallel)
291
- - Serialization Requirements (which tasks must run sequentially)
292
- - Critical Path (priority execution order)
293
- 3. **Use TODO_LIST.md for status tracking** only
294
- 4. **IMPL_PLAN decides "HOW"**, execute.md implements it
295
-
296
- **Intelligent Fallback (When IMPL_PLAN lacks execution details)**:
297
- 1. **Analyze task structure**:
298
- - Check `meta.execution_group` in task JSONs
299
- - Analyze `depends_on` relationships
300
- - Understand task complexity and risk
301
- 2. **Apply smart defaults**:
302
- - No dependencies + same execution_group → Parallel
303
- - Has dependencies → Sequential (wait for deps)
304
- - Critical/high-risk tasks → Sequential
305
- 3. **Conservative approach**: When uncertain, prefer sequential execution
306
-
307
- ### Execution Models
308
-
309
- #### 1. Sequential Execution
310
- **When**: IMPL_PLAN specifies "Sequential" OR no clear parallelization guidance
311
- **Pattern**: Execute tasks one by one in TODO_LIST order
312
- **TodoWrite**: ONE task marked as `in_progress` at a time
313
-
314
- #### 2. Parallel Execution
315
- **When**: IMPL_PLAN specifies "Parallel" with clear parallelization opportunities
316
- **Pattern**: Execute independent task groups concurrently by launching multiple agent instances
317
- **TodoWrite**: MULTIPLE tasks (in same batch) marked as `in_progress` simultaneously
318
- **Agent Instantiation**: Launch one agent instance per task (respects ONE AGENT = ONE TASK JSON rule)
319
-
320
- #### 3. Phased Execution
321
- **When**: IMPL_PLAN specifies "Phased" with phase breakdown
322
- **Pattern**: Execute tasks in phases, respect phase boundaries
323
- **TodoWrite**: Within each phase, follow Sequential or Parallel rules
324
-
325
- #### 4. Intelligent Fallback
326
- **When**: IMPL_PLAN lacks execution strategy details
327
- **Pattern**: Analyze task structure and apply smart defaults
328
- **TodoWrite**: Follow Sequential or Parallel rules based on analysis
329
-
330
- ### Task Status Logic
331
- ```
332
- pending + dependencies_met → executable
333
- completed → skip
334
- blocked → skip until dependencies clear
335
- ```
336
-
337
- ## TodoWrite Coordination
338
-
339
- ### TodoWrite Rules (Unified)
340
-
341
- **Rule 1: Initial Creation**
342
- - **Normal Mode**: Generate TodoWrite from discovered pending tasks for entire workflow
343
- - **Resume Mode**: Generate from existing session state and current progress
344
-
345
- **Rule 2: In-Progress Task Count (Execution-Model-Dependent)**
346
- - **Sequential execution**: Mark ONLY ONE task as `in_progress` at a time
347
- - **Parallel batch execution**: Mark ALL tasks in current batch as `in_progress` simultaneously
348
- - **Execution group indicator**: Show `[execution_group: group-id]` for parallel tasks
349
-
350
- **Rule 3: Status Updates**
351
- - **Immediate Updates**: Update status after each task/batch completion without user interruption
352
- - **Status Synchronization**: Sync with JSON task files after updates
353
- - **Continuous Tracking**: Maintain TodoWrite throughout entire workflow execution until completion
354
-
355
- **Rule 4: Workflow Completion Check**
356
- - When all tasks marked `completed`, prompt user to choose review or complete session
357
-
358
- ### TodoWrite Tool Usage
359
-
360
- **Example 1: Sequential Execution**
361
- ```javascript
362
- TodoWrite({
363
- todos: [
364
- {
365
- content: "Execute IMPL-1.1: Design auth schema [code-developer] [FLOW_CONTROL]",
366
- status: "in_progress", // ONE task in progress
367
- activeForm: "Executing IMPL-1.1: Design auth schema"
368
- },
369
- {
370
- content: "Execute IMPL-1.2: Implement auth logic [code-developer] [FLOW_CONTROL]",
371
- status: "pending",
372
- activeForm: "Executing IMPL-1.2: Implement auth logic"
373
- }
374
- ]
375
- });
376
- ```
377
-
378
- **Example 2: Parallel Batch Execution**
379
- ```javascript
380
- TodoWrite({
381
- todos: [
382
- {
383
- content: "Execute IMPL-1.1: Build Auth API [code-developer] [execution_group: parallel-auth-api]",
384
- status: "in_progress", // Batch task 1
385
- activeForm: "Executing IMPL-1.1: Build Auth API"
386
- },
387
- {
388
- content: "Execute IMPL-1.2: Build User UI [code-developer] [execution_group: parallel-ui-comp]",
389
- status: "in_progress", // Batch task 2 (running concurrently)
390
- activeForm: "Executing IMPL-1.2: Build User UI"
391
- },
392
- {
393
- content: "Execute IMPL-1.3: Setup Database [code-developer] [execution_group: parallel-db-schema]",
394
- status: "in_progress", // Batch task 3 (running concurrently)
395
- activeForm: "Executing IMPL-1.3: Setup Database"
396
- },
397
- {
398
- content: "Execute IMPL-2.1: Integration Tests [test-fix-agent] [depends_on: IMPL-1.1, IMPL-1.2, IMPL-1.3]",
399
- status: "pending", // Next batch (waits for current batch completion)
400
- activeForm: "Executing IMPL-2.1: Integration Tests"
401
- }
402
- ]
403
- });
404
- ```
405
-
406
- ## Agent Execution Pattern
407
-
408
- ### Flow Control Execution
409
- **[FLOW_CONTROL]** marker indicates task JSON contains `flow_control.pre_analysis` steps for context preparation.
410
-
411
- **Note**: Orchestrator does NOT execute flow control steps - Agent interprets and executes them autonomously.
412
-
413
- ### Agent Prompt Template
414
- **Path-Based Invocation**: Pass paths and trigger markers, let agent parse task JSON autonomously.
415
-
416
- ```bash
417
- Task(subagent_type="{meta.agent}",
418
- run_in_background=false,
419
- prompt="Implement task {task.id}: {task.title}
420
-
421
- [FLOW_CONTROL]
422
-
423
- **Input**:
424
- - Task JSON: {session.task_json_path}
425
- - Context Package: {session.context_package_path}
426
-
427
- **Output Location**:
428
- - Workflow: {session.workflow_dir}
429
- - TODO List: {session.todo_list_path}
430
- - Summaries: {session.summaries_dir}
431
-
432
- **Execution**: Read task JSON → Parse flow_control → Execute implementation_approach → Update TODO_LIST.md → Generate summary",
433
- description="Implement: {task.id}")
434
- ```
435
-
436
- **Key Markers**:
437
- - `Implement` keyword: Triggers tech stack detection and guidelines loading
438
- - `[FLOW_CONTROL]`: Triggers flow_control.pre_analysis execution
439
-
440
- **Why Path-Based**: Agent (code-developer.md) autonomously:
441
- - Reads and parses task JSON (requirements, acceptance, flow_control)
442
- - Loads tech stack guidelines based on detected language
443
- - Executes pre_analysis steps and implementation_approach
444
- - Generates structured summary with integration points
445
-
446
- Embedding task content in prompt creates duplication and conflicts with agent's parsing logic.
447
-
448
- ### Agent Assignment Rules
449
- ```
450
- meta.agent specified → Use specified agent
451
- meta.agent missing → Infer from meta.type:
452
- - "feature" → @code-developer
453
- - "test-gen" → @code-developer
454
- - "test-fix" → @test-fix-agent
455
- - "review" → @universal-executor
456
- - "docs" → @doc-generator
457
- ```
458
-
459
- ## Workflow File Structure Reference
460
- ```
461
- .workflow/active/WFS-[topic-slug]/
462
- ├── workflow-session.json # Session state and metadata
463
- ├── IMPL_PLAN.md # Planning document and requirements
464
- ├── TODO_LIST.md # Progress tracking (updated by agents)
465
- ├── .task/ # Task definitions (JSON only)
466
- │ ├── IMPL-1.json # Main task definitions
467
- │ └── IMPL-1.1.json # Subtask definitions
468
- ├── .summaries/ # Task completion summaries
469
- │ ├── IMPL-1-summary.md # Task completion details
470
- │ └── IMPL-1.1-summary.md # Subtask completion details
471
- └── .process/ # Planning artifacts
472
- ├── context-package.json # Smart context package
473
- └── ANALYSIS_RESULTS.md # Planning analysis results
474
- ```
475
-
476
- ## Error Handling & Recovery
477
-
478
- ### Common Errors & Recovery
479
-
480
- | Error Type | Cause | Recovery Strategy | Max Attempts |
481
- |-----------|-------|------------------|--------------|
482
- | **Discovery Errors** |
483
- | No active session | No sessions in `.workflow/active/` | Create or resume session: `/workflow:plan "project"` | N/A |
484
- | Multiple sessions | Multiple sessions in `.workflow/active/` | Prompt user selection | N/A |
485
- | Corrupted session | Invalid JSON files | Recreate session structure or validate files | N/A |
486
- | **Execution Errors** |
487
- | Agent failure | Agent crash/timeout | Retry with simplified context | 2 |
488
- | Flow control error | Command failure | Skip optional, fail critical | 1 per step |
489
- | Context loading error | Missing dependencies | Reload from JSON, use defaults | 3 |
490
- | JSON file corruption | File system issues | Restore from backup/recreate | 1 |
491
-
492
- ### Error Prevention
493
- - **Pre-flight Checks**: Validate session integrity before execution
494
- - **Backup Strategy**: Create task snapshots before major operations
495
- - **Atomic Updates**: Update JSON files atomically to prevent corruption
496
- - **Dependency Validation**: Check all depends_on references exist
497
- - **Context Verification**: Ensure all required context is available
498
-
1
+ ---
2
+ name: execute
3
+ description: Coordinate agent execution for workflow tasks with automatic session discovery, parallel task processing, and status tracking
4
+ argument-hint: "[--resume-session=\"session-id\"]"
5
+ ---
6
+
7
+ # Workflow Execute Command
8
+
9
+ ## Overview
10
+ Orchestrates autonomous workflow execution through systematic task discovery, agent coordination, and progress tracking. **Executes entire workflow without user interruption** (except initial session selection if multiple active sessions exist), providing complete context to agents and ensuring proper flow control execution with comprehensive TodoWrite tracking.
11
+
12
+ **Resume Mode**: When called with `--resume-session` flag, skips discovery phase and directly enters TodoWrite generation and agent execution for the specified session.
13
+
14
+ ## Performance Optimization Strategy
15
+
16
+ **Lazy Loading**: Task JSONs read **on-demand** during execution, not upfront. TODO_LIST.md + IMPL_PLAN.md provide metadata for planning.
17
+
18
+ **Loading Strategy**:
19
+ - **TODO_LIST.md**: Read in Phase 3 (task metadata, status, dependencies for TodoWrite generation)
20
+ - **IMPL_PLAN.md**: Check existence in Phase 2 (normal mode), parse execution strategy in Phase 4A
21
+ - **Task JSONs**: Lazy loading - read only when task is about to execute (Phase 4B)
22
+
23
+ ## Core Rules
24
+ **Complete entire workflow autonomously without user interruption, using TodoWrite for comprehensive progress tracking.**
25
+ **Execute all discovered pending tasks until workflow completion or blocking dependency.**
26
+ **User-choice completion: When all tasks finished, ask user to choose review or complete.**
27
+ **ONE AGENT = ONE TASK JSON: Each agent instance executes exactly one task JSON file - never batch multiple tasks into single agent execution.**
28
+
29
+ ## Core Responsibilities
30
+ - **Session Discovery**: Identify and select active workflow sessions
31
+ - **Execution Strategy Parsing**: Extract execution model from IMPL_PLAN.md
32
+ - **TodoWrite Progress Tracking**: Maintain real-time execution status throughout entire workflow
33
+ - **Agent Orchestration**: Coordinate specialized agents with complete context
34
+ - **Status Synchronization**: Update task JSON files and workflow state
35
+ - **Autonomous Completion**: Continue execution until all tasks complete or reach blocking state
36
+ - **Session User-Choice Completion**: Ask user to choose review or complete when all tasks finished
37
+
38
+ ## Execution Philosophy
39
+ - **Progress tracking**: Continuous TodoWrite updates throughout entire workflow execution
40
+ - **Autonomous completion**: Execute all tasks without user interruption until workflow complete
41
+
42
+ ## Execution Process
43
+
44
+ ```
45
+ Normal Mode:
46
+ Phase 1: Discovery
47
+ ├─ Count active sessions
48
+ └─ Decision:
49
+ ├─ count=0 → ERROR: No active sessions
50
+ ├─ count=1 → Auto-select session → Phase 2
51
+ └─ count>1 → AskUserQuestion (max 4 options) → Phase 2
52
+
53
+ Phase 2: Planning Document Validation
54
+ ├─ Check IMPL_PLAN.md exists
55
+ ├─ Check TODO_LIST.md exists
56
+ └─ Validate .task/ contains IMPL-*.json files
57
+
58
+ Phase 3: TodoWrite Generation
59
+ ├─ Update session status to "active" (Step 0)
60
+ ├─ Parse TODO_LIST.md for task statuses
61
+ ├─ Generate TodoWrite for entire workflow
62
+ └─ Prepare session context paths
63
+
64
+ Phase 4: Execution Strategy & Task Execution
65
+ ├─ Step 4A: Parse execution strategy from IMPL_PLAN.md
66
+ └─ Step 4B: Execute tasks with lazy loading
67
+ └─ Loop:
68
+ ├─ Get next in_progress task from TodoWrite
69
+ ├─ Lazy load task JSON
70
+ ├─ Launch agent with task context
71
+ ├─ Mark task completed (update IMPL-*.json status)
72
+ │ # Quick fix: Update task status for ccw dashboard
73
+ │ # TS=$(date -Iseconds) && jq --arg ts "$TS" '.status="completed" | .status_history=(.status_history // [])+[{"from":"in_progress","to":"completed","changed_at":$ts}]' IMPL-X.json > tmp.json && mv tmp.json IMPL-X.json
74
+ └─ Advance to next task
75
+
76
+ Phase 5: Completion
77
+ ├─ Update task statuses in JSON files
78
+ ├─ Generate summaries
79
+ └─ AskUserQuestion: Choose next step
80
+ ├─ "Enter Review" → /workflow:review
81
+ └─ "Complete Session" → /workflow:session:complete
82
+
83
+ Resume Mode (--resume-session):
84
+ ├─ Skip Phase 1 & Phase 2
85
+ └─ Entry Point: Phase 3 (TodoWrite Generation)
86
+ ├─ Update session status to "active" (if not already)
87
+ └─ Continue: Phase 4 → Phase 5
88
+ ```
89
+
90
+ ## Execution Lifecycle
91
+
92
+ ### Phase 1: Discovery
93
+ **Applies to**: Normal mode only (skipped in resume mode)
94
+
95
+ **Purpose**: Find and select active workflow session with user confirmation when multiple sessions exist
96
+
97
+ **Process**:
98
+
99
+ #### Step 1.1: Count Active Sessions
100
+ ```bash
101
+ bash(find .workflow/active/ -name "WFS-*" -type d 2>/dev/null | wc -l)
102
+ ```
103
+
104
+ #### Step 1.2: Handle Session Selection
105
+
106
+ **Case A: No Sessions** (count = 0)
107
+ ```
108
+ ERROR: No active workflow sessions found
109
+ Run /workflow:plan "task description" to create a session
110
+ ```
111
+
112
+ **Case B: Single Session** (count = 1)
113
+ ```bash
114
+ bash(find .workflow/active/ -name "WFS-*" -type d 2>/dev/null | head -1 | xargs basename)
115
+ ```
116
+ Auto-select and continue to Phase 2.
117
+
118
+ **Case C: Multiple Sessions** (count > 1)
119
+
120
+ List sessions with metadata and prompt user selection:
121
+ ```bash
122
+ bash(for dir in .workflow/active/WFS-*/; do [ -d "$dir" ] || continue; session=$(basename "$dir"); project=$(jq -r '.project // "Unknown"' "${dir}workflow-session.json" 2>/dev/null || echo "Unknown"); total=$(grep -c '^\- \[' "${dir}TODO_LIST.md" 2>/dev/null || echo 0); completed=$(grep -c '^\- \[x\]' "${dir}TODO_LIST.md" 2>/dev/null || echo 0); if [ "$total" -gt 0 ]; then progress=$((completed * 100 / total)); else progress=0; fi; echo "$session | $project | $completed/$total tasks ($progress%)"; done)
123
+ ```
124
+
125
+ Use AskUserQuestion to present formatted options (max 4 options shown):
126
+ ```javascript
127
+ // If more than 4 sessions, show most recent 4 with "Other" option for manual input
128
+ const sessions = getActiveSessions() // sorted by last modified
129
+ const displaySessions = sessions.slice(0, 4)
130
+
131
+ AskUserQuestion({
132
+ questions: [{
133
+ question: "Multiple active sessions detected. Select one:",
134
+ header: "Session",
135
+ multiSelect: false,
136
+ options: displaySessions.map(s => ({
137
+ label: s.id,
138
+ description: `${s.project} | ${s.progress}`
139
+ }))
140
+ // Note: User can select "Other" to manually enter session ID
141
+ }]
142
+ })
143
+ ```
144
+
145
+ **Input Validation**:
146
+ - If user selects from options: Use selected session ID
147
+ - If user selects "Other" and provides input: Validate session exists
148
+ - If validation fails: Show error and re-prompt or suggest available sessions
149
+
150
+ Parse user input (supports: number "1", full ID "WFS-auth-system", or partial "auth"), validate selection, and continue to Phase 2.
151
+
152
+ #### Step 1.3: Load Session Metadata
153
+ ```bash
154
+ bash(cat .workflow/active/${sessionId}/workflow-session.json)
155
+ ```
156
+
157
+ **Output**: Store session metadata in memory
158
+ **DO NOT read task JSONs yet** - defer until execution phase (lazy loading)
159
+
160
+ **Resume Mode**: This entire phase is skipped when `--resume-session="session-id"` flag is provided.
161
+
162
+ ### Phase 2: Planning Document Validation
163
+ **Applies to**: Normal mode only (skipped in resume mode)
164
+
165
+ **Purpose**: Validate planning artifacts exist before execution
166
+
167
+ **Process**:
168
+ 1. **Check IMPL_PLAN.md**: Verify file exists (defer detailed parsing to Phase 4A)
169
+ 2. **Check TODO_LIST.md**: Verify file exists (defer reading to Phase 3)
170
+ 3. **Validate Task Directory**: Ensure `.task/` contains at least one IMPL-*.json file
171
+
172
+ **Key Optimization**: Only existence checks here. Actual file reading happens in later phases.
173
+
174
+ **Resume Mode**: This phase is skipped when `--resume-session` flag is provided. Resume mode entry point is Phase 3.
175
+
176
+ ### Phase 3: TodoWrite Generation
177
+ **Applies to**: Both normal and resume modes (resume mode entry point)
178
+
179
+ **Step 0: Update Session Status to Active**
180
+ Before generating TodoWrite, update session status from "planning" to "active":
181
+ ```bash
182
+ # Update session status (idempotent - safe to run if already active)
183
+ jq '.status = "active" | .execution_started_at = (.execution_started_at // now | todate)' \
184
+ .workflow/active/${sessionId}/workflow-session.json > tmp.json && \
185
+ mv tmp.json .workflow/active/${sessionId}/workflow-session.json
186
+ ```
187
+ This ensures the dashboard shows the session as "ACTIVE" during execution.
188
+
189
+ **Process**:
190
+ 1. **Create TodoWrite List**: Generate task list from TODO_LIST.md (not from task JSONs)
191
+ - Parse TODO_LIST.md to extract all tasks with current statuses
192
+ - Identify first pending task with met dependencies
193
+ - Generate comprehensive TodoWrite covering entire workflow
194
+ 2. **Prepare Session Context**: Inject workflow paths for agent use (using provided session-id)
195
+ 3. **Validate Prerequisites**: Ensure IMPL_PLAN.md and TODO_LIST.md exist and are valid
196
+
197
+ **Resume Mode Behavior**:
198
+ - Load existing TODO_LIST.md directly from `.workflow/active/{session-id}/`
199
+ - Extract current progress from TODO_LIST.md
200
+ - Generate TodoWrite from TODO_LIST.md state
201
+ - Proceed immediately to agent execution (Phase 4)
202
+
203
+ ### Phase 4: Execution Strategy Selection & Task Execution
204
+ **Applies to**: Both normal and resume modes
205
+
206
+ **Step 4A: Parse Execution Strategy from IMPL_PLAN.md**
207
+
208
+ Read IMPL_PLAN.md Section 4 to extract:
209
+ - **Execution Model**: Sequential | Parallel | Phased | TDD Cycles
210
+ - **Parallelization Opportunities**: Which tasks can run in parallel
211
+ - **Serialization Requirements**: Which tasks must run sequentially
212
+ - **Critical Path**: Priority execution order
213
+
214
+ If IMPL_PLAN.md lacks execution strategy, use intelligent fallback (analyze task structure).
215
+
216
+ **Step 4B: Execute Tasks with Lazy Loading**
217
+
218
+ **Key Optimization**: Read task JSON **only when needed** for execution
219
+
220
+ **Execution Loop Pattern**:
221
+ ```
222
+ while (TODO_LIST.md has pending tasks) {
223
+ next_task_id = getTodoWriteInProgressTask()
224
+ task_json = Read(.workflow/active/{session}/.task/{next_task_id}.json) // Lazy load
225
+ executeTaskWithAgent(task_json)
226
+ updateTodoListMarkCompleted(next_task_id)
227
+ advanceTodoWriteToNextTask()
228
+ }
229
+ ```
230
+
231
+ **Execution Process per Task**:
232
+ 1. **Identify Next Task**: From TodoWrite, get the next `in_progress` task ID
233
+ 2. **Load Task JSON on Demand**: Read `.task/{task-id}.json` for current task ONLY
234
+ 3. **Validate Task Structure**: Ensure all 5 required fields exist (id, title, status, meta, context, flow_control)
235
+ 4. **Launch Agent**: Invoke specialized agent with complete context including flow control steps
236
+ 5. **Monitor Progress**: Track agent execution and handle errors without user interruption
237
+ 6. **Collect Results**: Gather implementation results and outputs
238
+ 7. **Continue Workflow**: Identify next pending task from TODO_LIST.md and repeat
239
+
240
+ **Note**: TODO_LIST.md updates are handled by agents (e.g., code-developer.md), not by the orchestrator.
241
+
242
+
243
+ ### Phase 5: Completion
244
+ **Applies to**: Both normal and resume modes
245
+
246
+ **Process**:
247
+ 1. **Update Task Status**: Mark completed tasks in JSON files
248
+ 2. **Generate Summary**: Create task summary in `.summaries/`
249
+ 3. **Update TodoWrite**: Mark current task complete, advance to next
250
+ 4. **Synchronize State**: Update session state and workflow status
251
+ 5. **Check Workflow Complete**: Verify all tasks are completed
252
+ 6. **User Choice**: When all tasks finished, ask user to choose next step:
253
+
254
+ ```javascript
255
+ AskUserQuestion({
256
+ questions: [{
257
+ question: "All tasks completed. What would you like to do next?",
258
+ header: "Next Step",
259
+ multiSelect: false,
260
+ options: [
261
+ {
262
+ label: "Enter Review",
263
+ description: "Run specialized review (security/architecture/quality/action-items)"
264
+ },
265
+ {
266
+ label: "Complete Session",
267
+ description: "Archive session and update manifest"
268
+ }
269
+ ]
270
+ }]
271
+ })
272
+ ```
273
+
274
+ **Based on user selection**:
275
+ - **"Enter Review"**: Execute `/workflow:review`
276
+ - **"Complete Session"**: Execute `/workflow:session:complete`
277
+
278
+ ### Post-Completion Expansion
279
+
280
+ 完成后询问用户是否扩展为issue(test/enhance/refactor/doc),选中项调用 `/issue:new "{summary} - {dimension}"`
281
+
282
+ ## Execution Strategy (IMPL_PLAN-Driven)
283
+
284
+ ### Strategy Priority
285
+
286
+ **IMPL_PLAN-Driven Execution (Recommended)**:
287
+ 1. **Read IMPL_PLAN.md execution strategy** (Section 4: Implementation Strategy)
288
+ 2. **Follow explicit guidance**:
289
+ - Execution Model (Sequential/Parallel/Phased/TDD)
290
+ - Parallelization Opportunities (which tasks can run in parallel)
291
+ - Serialization Requirements (which tasks must run sequentially)
292
+ - Critical Path (priority execution order)
293
+ 3. **Use TODO_LIST.md for status tracking** only
294
+ 4. **IMPL_PLAN decides "HOW"**, execute.md implements it
295
+
296
+ **Intelligent Fallback (When IMPL_PLAN lacks execution details)**:
297
+ 1. **Analyze task structure**:
298
+ - Check `meta.execution_group` in task JSONs
299
+ - Analyze `depends_on` relationships
300
+ - Understand task complexity and risk
301
+ 2. **Apply smart defaults**:
302
+ - No dependencies + same execution_group → Parallel
303
+ - Has dependencies → Sequential (wait for deps)
304
+ - Critical/high-risk tasks → Sequential
305
+ 3. **Conservative approach**: When uncertain, prefer sequential execution
306
+
307
+ ### Execution Models
308
+
309
+ #### 1. Sequential Execution
310
+ **When**: IMPL_PLAN specifies "Sequential" OR no clear parallelization guidance
311
+ **Pattern**: Execute tasks one by one in TODO_LIST order
312
+ **TodoWrite**: ONE task marked as `in_progress` at a time
313
+
314
+ #### 2. Parallel Execution
315
+ **When**: IMPL_PLAN specifies "Parallel" with clear parallelization opportunities
316
+ **Pattern**: Execute independent task groups concurrently by launching multiple agent instances
317
+ **TodoWrite**: MULTIPLE tasks (in same batch) marked as `in_progress` simultaneously
318
+ **Agent Instantiation**: Launch one agent instance per task (respects ONE AGENT = ONE TASK JSON rule)
319
+
320
+ #### 3. Phased Execution
321
+ **When**: IMPL_PLAN specifies "Phased" with phase breakdown
322
+ **Pattern**: Execute tasks in phases, respect phase boundaries
323
+ **TodoWrite**: Within each phase, follow Sequential or Parallel rules
324
+
325
+ #### 4. Intelligent Fallback
326
+ **When**: IMPL_PLAN lacks execution strategy details
327
+ **Pattern**: Analyze task structure and apply smart defaults
328
+ **TodoWrite**: Follow Sequential or Parallel rules based on analysis
329
+
330
+ ### Task Status Logic
331
+ ```
332
+ pending + dependencies_met → executable
333
+ completed → skip
334
+ blocked → skip until dependencies clear
335
+ ```
336
+
337
+ ## TodoWrite Coordination
338
+
339
+ ### TodoWrite Rules (Unified)
340
+
341
+ **Rule 1: Initial Creation**
342
+ - **Normal Mode**: Generate TodoWrite from discovered pending tasks for entire workflow
343
+ - **Resume Mode**: Generate from existing session state and current progress
344
+
345
+ **Rule 2: In-Progress Task Count (Execution-Model-Dependent)**
346
+ - **Sequential execution**: Mark ONLY ONE task as `in_progress` at a time
347
+ - **Parallel batch execution**: Mark ALL tasks in current batch as `in_progress` simultaneously
348
+ - **Execution group indicator**: Show `[execution_group: group-id]` for parallel tasks
349
+
350
+ **Rule 3: Status Updates**
351
+ - **Immediate Updates**: Update status after each task/batch completion without user interruption
352
+ - **Status Synchronization**: Sync with JSON task files after updates
353
+ - **Continuous Tracking**: Maintain TodoWrite throughout entire workflow execution until completion
354
+
355
+ **Rule 4: Workflow Completion Check**
356
+ - When all tasks marked `completed`, prompt user to choose review or complete session
357
+
358
+ ### TodoWrite Tool Usage
359
+
360
+ **Example 1: Sequential Execution**
361
+ ```javascript
362
+ TodoWrite({
363
+ todos: [
364
+ {
365
+ content: "Execute IMPL-1.1: Design auth schema [code-developer] [FLOW_CONTROL]",
366
+ status: "in_progress", // ONE task in progress
367
+ activeForm: "Executing IMPL-1.1: Design auth schema"
368
+ },
369
+ {
370
+ content: "Execute IMPL-1.2: Implement auth logic [code-developer] [FLOW_CONTROL]",
371
+ status: "pending",
372
+ activeForm: "Executing IMPL-1.2: Implement auth logic"
373
+ }
374
+ ]
375
+ });
376
+ ```
377
+
378
+ **Example 2: Parallel Batch Execution**
379
+ ```javascript
380
+ TodoWrite({
381
+ todos: [
382
+ {
383
+ content: "Execute IMPL-1.1: Build Auth API [code-developer] [execution_group: parallel-auth-api]",
384
+ status: "in_progress", // Batch task 1
385
+ activeForm: "Executing IMPL-1.1: Build Auth API"
386
+ },
387
+ {
388
+ content: "Execute IMPL-1.2: Build User UI [code-developer] [execution_group: parallel-ui-comp]",
389
+ status: "in_progress", // Batch task 2 (running concurrently)
390
+ activeForm: "Executing IMPL-1.2: Build User UI"
391
+ },
392
+ {
393
+ content: "Execute IMPL-1.3: Setup Database [code-developer] [execution_group: parallel-db-schema]",
394
+ status: "in_progress", // Batch task 3 (running concurrently)
395
+ activeForm: "Executing IMPL-1.3: Setup Database"
396
+ },
397
+ {
398
+ content: "Execute IMPL-2.1: Integration Tests [test-fix-agent] [depends_on: IMPL-1.1, IMPL-1.2, IMPL-1.3]",
399
+ status: "pending", // Next batch (waits for current batch completion)
400
+ activeForm: "Executing IMPL-2.1: Integration Tests"
401
+ }
402
+ ]
403
+ });
404
+ ```
405
+
406
+ ## Agent Execution Pattern
407
+
408
+ ### Flow Control Execution
409
+ **[FLOW_CONTROL]** marker indicates task JSON contains `flow_control.pre_analysis` steps for context preparation.
410
+
411
+ **Note**: Orchestrator does NOT execute flow control steps - Agent interprets and executes them autonomously.
412
+
413
+ ### Agent Prompt Template
414
+ **Path-Based Invocation**: Pass paths and trigger markers, let agent parse task JSON autonomously.
415
+
416
+ ```bash
417
+ Task(subagent_type="{meta.agent}",
418
+ run_in_background=false,
419
+ prompt="Implement task {task.id}: {task.title}
420
+
421
+ [FLOW_CONTROL]
422
+
423
+ **Input**:
424
+ - Task JSON: {session.task_json_path}
425
+ - Context Package: {session.context_package_path}
426
+
427
+ **Output Location**:
428
+ - Workflow: {session.workflow_dir}
429
+ - TODO List: {session.todo_list_path}
430
+ - Summaries: {session.summaries_dir}
431
+
432
+ **Execution**: Read task JSON → Parse flow_control → Execute implementation_approach → Update TODO_LIST.md → Generate summary",
433
+ description="Implement: {task.id}")
434
+ ```
435
+
436
+ **Key Markers**:
437
+ - `Implement` keyword: Triggers tech stack detection and guidelines loading
438
+ - `[FLOW_CONTROL]`: Triggers flow_control.pre_analysis execution
439
+
440
+ **Why Path-Based**: Agent (code-developer.md) autonomously:
441
+ - Reads and parses task JSON (requirements, acceptance, flow_control)
442
+ - Loads tech stack guidelines based on detected language
443
+ - Executes pre_analysis steps and implementation_approach
444
+ - Generates structured summary with integration points
445
+
446
+ Embedding task content in prompt creates duplication and conflicts with agent's parsing logic.
447
+
448
+ ### Agent Assignment Rules
449
+ ```
450
+ meta.agent specified → Use specified agent
451
+ meta.agent missing → Infer from meta.type:
452
+ - "feature" → @code-developer
453
+ - "test-gen" → @code-developer
454
+ - "test-fix" → @test-fix-agent
455
+ - "review" → @universal-executor
456
+ - "docs" → @doc-generator
457
+ ```
458
+
459
+ ## Workflow File Structure Reference
460
+ ```
461
+ .workflow/active/WFS-[topic-slug]/
462
+ ├── workflow-session.json # Session state and metadata
463
+ ├── IMPL_PLAN.md # Planning document and requirements
464
+ ├── TODO_LIST.md # Progress tracking (updated by agents)
465
+ ├── .task/ # Task definitions (JSON only)
466
+ │ ├── IMPL-1.json # Main task definitions
467
+ │ └── IMPL-1.1.json # Subtask definitions
468
+ ├── .summaries/ # Task completion summaries
469
+ │ ├── IMPL-1-summary.md # Task completion details
470
+ │ └── IMPL-1.1-summary.md # Subtask completion details
471
+ └── .process/ # Planning artifacts
472
+ ├── context-package.json # Smart context package
473
+ └── ANALYSIS_RESULTS.md # Planning analysis results
474
+ ```
475
+
476
+ ## Error Handling & Recovery
477
+
478
+ ### Common Errors & Recovery
479
+
480
+ | Error Type | Cause | Recovery Strategy | Max Attempts |
481
+ |-----------|-------|------------------|--------------|
482
+ | **Discovery Errors** |
483
+ | No active session | No sessions in `.workflow/active/` | Create or resume session: `/workflow:plan "project"` | N/A |
484
+ | Multiple sessions | Multiple sessions in `.workflow/active/` | Prompt user selection | N/A |
485
+ | Corrupted session | Invalid JSON files | Recreate session structure or validate files | N/A |
486
+ | **Execution Errors** |
487
+ | Agent failure | Agent crash/timeout | Retry with simplified context | 2 |
488
+ | Flow control error | Command failure | Skip optional, fail critical | 1 per step |
489
+ | Context loading error | Missing dependencies | Reload from JSON, use defaults | 3 |
490
+ | JSON file corruption | File system issues | Restore from backup/recreate | 1 |
491
+
492
+ ### Error Prevention
493
+ - **Pre-flight Checks**: Validate session integrity before execution
494
+ - **Backup Strategy**: Create task snapshots before major operations
495
+ - **Atomic Updates**: Update JSON files atomically to prevent corruption
496
+ - **Dependency Validation**: Check all depends_on references exist
497
+ - **Context Verification**: Ensure all required context is available
498
+