claude-code-workflow 6.3.32 → 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 (476) hide show
  1. package/.claude/CLAUDE.md +6 -1
  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/debug-with-file.md +666 -0
  49. package/.claude/commands/workflow/debug.md +327 -327
  50. package/.claude/commands/workflow/execute.md +498 -498
  51. package/.claude/commands/workflow/lite-execute.md +23 -20
  52. package/.claude/commands/workflow/lite-fix.md +631 -631
  53. package/.claude/commands/workflow/lite-lite-lite.md +39 -11
  54. package/.claude/commands/workflow/lite-plan.md +4 -2
  55. package/.claude/commands/workflow/multi-cli-plan.md +97 -39
  56. package/.claude/commands/workflow/plan.md +551 -551
  57. package/.claude/commands/workflow/replan.md +515 -515
  58. package/.claude/commands/workflow/review-fix.md +610 -610
  59. package/.claude/commands/workflow/review-module-cycle.md +771 -771
  60. package/.claude/commands/workflow/review-session-cycle.md +782 -782
  61. package/.claude/commands/workflow/review.md +322 -322
  62. package/.claude/commands/workflow/session/list.md +95 -95
  63. package/.claude/commands/workflow/session/resume.md +60 -60
  64. package/.claude/commands/workflow/session/solidify.md +299 -299
  65. package/.claude/commands/workflow/tdd-plan.md +597 -460
  66. package/.claude/commands/workflow/test-cycle-execute.md +504 -504
  67. package/.claude/commands/workflow/test-fix-gen.md +699 -699
  68. package/.claude/commands/workflow/tools/conflict-resolution.md +2 -2
  69. package/.claude/commands/workflow/tools/task-generate-tdd.md +517 -517
  70. package/.claude/commands/workflow/tools/tdd-coverage-analysis.md +309 -309
  71. package/.claude/commands/workflow/tools/test-concept-enhanced.md +1 -1
  72. package/.claude/commands/workflow/tools/test-context-gather.md +235 -235
  73. package/.claude/commands/workflow/tools/test-task-generate.md +255 -255
  74. package/.claude/commands/workflow/ui-design/animation-extract.md +1150 -1150
  75. package/.claude/commands/workflow/ui-design/design-sync.md +454 -454
  76. package/.claude/commands/workflow/ui-design/explore-auto.md +678 -678
  77. package/.claude/commands/workflow/ui-design/imitate-auto.md +745 -745
  78. package/.claude/commands/workflow/ui-design/layout-extract.md +788 -788
  79. package/.claude/commands/workflow/ui-design/reference-page-generator.md +356 -356
  80. package/.claude/commands/workflow/ui-design/style-extract.md +773 -773
  81. package/.claude/skills/ccw/SKILL.md +522 -352
  82. package/.claude/skills/ccw/command.json +641 -547
  83. package/.claude/skills/ccw-help/SKILL.md +116 -116
  84. package/.claude/skills/ccw-help/command.json +520 -520
  85. package/.claude/skills/copyright-docs/phases/01.5-project-exploration.md +150 -150
  86. package/.claude/skills/copyright-docs/phases/02.5-consolidation.md +192 -192
  87. package/.claude/skills/copyright-docs/templates/agent-base.md +200 -200
  88. package/.claude/skills/project-analyze/phases/03.5-consolidation.md +233 -233
  89. package/.claude/skills/project-analyze/specs/writing-style.md +152 -152
  90. package/.claude/skills/review-code/phases/state-manager.md +752 -752
  91. package/.claude/skills/review-code/specs/rules/index.md +140 -140
  92. package/.claude/skills/skill-generator/specs/cli-integration.md +13 -19
  93. package/.claude/skills/skill-generator/specs/scripting-integration.md +265 -265
  94. package/.claude/skills/skill-generator/templates/code-analysis-action.md +503 -503
  95. package/.claude/skills/skill-generator/templates/llm-action.md +355 -355
  96. package/.claude/skills/skill-generator/templates/script-bash.md +277 -277
  97. package/.claude/skills/skill-generator/templates/script-python.md +198 -198
  98. package/.claude/skills/skill-generator/templates/skill-md.md +235 -235
  99. package/.claude/skills/skill-tuning/SKILL.md +303 -303
  100. package/.claude/skills/skill-tuning/phases/actions/action-abort.md +164 -164
  101. package/.claude/skills/skill-tuning/phases/actions/action-apply-fix.md +206 -206
  102. package/.claude/skills/skill-tuning/phases/actions/action-complete.md +195 -195
  103. package/.claude/skills/skill-tuning/phases/actions/action-diagnose-agent.md +317 -317
  104. package/.claude/skills/skill-tuning/phases/actions/action-diagnose-context.md +243 -243
  105. package/.claude/skills/skill-tuning/phases/actions/action-diagnose-dataflow.md +318 -318
  106. package/.claude/skills/skill-tuning/phases/actions/action-diagnose-memory.md +269 -269
  107. package/.claude/skills/skill-tuning/phases/actions/action-diagnose-token-consumption.md +200 -200
  108. package/.claude/skills/skill-tuning/phases/actions/action-gemini-analysis.md +322 -322
  109. package/.claude/skills/skill-tuning/phases/actions/action-generate-report.md +228 -228
  110. package/.claude/skills/skill-tuning/phases/actions/action-init.md +149 -149
  111. package/.claude/skills/skill-tuning/phases/actions/action-propose-fixes.md +317 -317
  112. package/.claude/skills/skill-tuning/phases/actions/action-verify.md +222 -222
  113. package/.claude/skills/skill-tuning/phases/orchestrator.md +377 -377
  114. package/.claude/skills/skill-tuning/phases/state-schema.md +378 -378
  115. package/.claude/skills/skill-tuning/specs/problem-taxonomy.md +318 -318
  116. package/.claude/skills/skill-tuning/specs/quality-gates.md +263 -263
  117. package/.claude/skills/skill-tuning/specs/tuning-strategies.md +1537 -1537
  118. package/.claude/skills/skill-tuning/templates/diagnosis-report.md +153 -153
  119. package/.claude/skills/skill-tuning/templates/fix-proposal.md +204 -204
  120. package/.claude/skills/software-manual/SKILL.md +184 -184
  121. package/.claude/skills/software-manual/phases/01-requirements-discovery.md +162 -162
  122. package/.claude/skills/software-manual/phases/02-project-exploration.md +101 -101
  123. package/.claude/skills/software-manual/phases/03-parallel-analysis.md +183 -183
  124. package/.claude/skills/software-manual/phases/03.5-consolidation.md +82 -82
  125. package/.claude/skills/software-manual/phases/04-screenshot-capture.md +89 -89
  126. package/.claude/skills/software-manual/phases/05-html-assembly.md +132 -132
  127. package/.claude/skills/software-manual/phases/06-iterative-refinement.md +259 -259
  128. package/.claude/skills/software-manual/scripts/screenshot-helper.md +447 -447
  129. package/.claude/skills/software-manual/scripts/swagger-runner.md +419 -419
  130. package/.claude/skills/software-manual/scripts/typedoc-runner.md +357 -357
  131. package/.claude/skills/software-manual/specs/html-template.md +325 -325
  132. package/.claude/skills/software-manual/specs/quality-standards.md +253 -253
  133. package/.claude/skills/software-manual/specs/writing-style.md +298 -298
  134. package/.claude/skills/text-formatter/SKILL.md +196 -196
  135. package/.claude/skills/text-formatter/phases/01-input-collection.md +111 -111
  136. package/.claude/skills/text-formatter/phases/02-content-analysis.md +248 -248
  137. package/.claude/skills/text-formatter/phases/03-format-transform.md +245 -245
  138. package/.claude/skills/text-formatter/phases/04-output-preview.md +183 -183
  139. package/.claude/skills/text-formatter/specs/callout-types.md +293 -293
  140. package/.claude/skills/text-formatter/specs/element-mapping.md +226 -226
  141. package/.claude/skills/text-formatter/specs/format-rules.md +273 -273
  142. package/.claude/skills/text-formatter/templates/bbcode-template.md +350 -350
  143. package/.claude/workflows/chinese-response.md +25 -25
  144. package/.claude/workflows/cli-templates/memory/style-skill-memory/skill-md-template.md +299 -299
  145. package/.claude/workflows/cli-templates/planning-roles/product-owner.md +261 -261
  146. package/.claude/workflows/cli-templates/prompts/{analysis/03-analyze-performance.txt → analysis-analyze-performance.txt} +29 -29
  147. package/.claude/workflows/cli-templates/prompts/{analysis/03-assess-security-risks.txt → analysis-assess-security-risks.txt} +29 -29
  148. package/.claude/workflows/cli-templates/prompts/{analysis/02-review-architecture.txt → analysis-review-architecture.txt} +29 -29
  149. package/.claude/workflows/cli-templates/prompts/{analysis/02-review-code-quality.txt → analysis-review-code-quality.txt} +28 -28
  150. package/.claude/workflows/cli-templates/prompts/{analysis/03-review-quality-standards.txt → analysis-review-quality-standards.txt} +29 -29
  151. package/.claude/workflows/cli-templates/prompts/{analysis/01-trace-code-execution.txt → analysis-trace-code-execution.txt} +115 -115
  152. package/.claude/workflows/cli-templates/prompts/{documentation/api.txt → documentation-api.txt} +14 -14
  153. package/.claude/workflows/cli-templates/prompts/{documentation/folder-navigation.txt → documentation-folder-navigation.txt} +26 -26
  154. package/.claude/workflows/cli-templates/prompts/{documentation/project-architecture.txt → documentation-project-architecture.txt} +40 -40
  155. package/.claude/workflows/cli-templates/prompts/{documentation/project-examples.txt → documentation-project-examples.txt} +34 -34
  156. package/.claude/workflows/cli-templates/prompts/{documentation/project-readme.txt → documentation-project-readme.txt} +34 -34
  157. package/.claude/workflows/cli-templates/prompts/{documentation/swagger-api.txt → documentation-swagger-api.txt} +266 -266
  158. package/.claude/workflows/cli-templates/prompts/{planning/02-design-component-spec.txt → planning-design-component-spec.txt} +28 -28
  159. package/.claude/workflows/cli-templates/prompts/{verification/codex-technical.txt → verification-codex-technical.txt} +28 -28
  160. package/.claude/workflows/cli-templates/prompts/{verification/cross-validation.txt → verification-cross-validation.txt} +28 -28
  161. package/.claude/workflows/cli-templates/prompts/{verification/gemini-strategic.txt → verification-gemini-strategic.txt} +27 -27
  162. package/.claude/workflows/cli-templates/prompts/{workflow/analysis-results-structure.txt → workflow-analysis-results-structure.txt} +224 -224
  163. package/.claude/workflows/cli-templates/prompts/{workflow/impl-plan-template.txt → workflow-impl-plan-template.txt} +286 -286
  164. package/.claude/workflows/cli-templates/prompts/{workflow/skill-conflict-patterns.txt → workflow-skill-conflict-patterns.txt} +2 -2
  165. package/.claude/workflows/cli-templates/prompts/{workflow/skill-lessons-learned.txt → workflow-skill-lessons-learned.txt} +2 -2
  166. package/.claude/workflows/cli-templates/prompts/{workflow/task-json-agent-mode.txt → workflow-task-json-agent-mode.txt} +123 -123
  167. package/.claude/workflows/cli-templates/schemas/project-guidelines-schema.json +141 -141
  168. package/.claude/workflows/cli-tools-usage.md +113 -117
  169. package/.claude/workflows/coding-philosophy.md +69 -69
  170. package/.claude/workflows/context-tools.md +76 -76
  171. package/.claude/workflows/file-modification.md +64 -64
  172. package/.claude/workflows/review-directory-specification.md +336 -336
  173. package/.claude/workflows/windows-platform.md +19 -19
  174. package/.claude/workflows/workflow-architecture.md +942 -942
  175. package/.codex/prompts/issue-execute.md +176 -70
  176. package/README.md +250 -214
  177. package/ccw/dist/cli.d.ts.map +1 -1
  178. package/ccw/dist/cli.js +15 -0
  179. package/ccw/dist/cli.js.map +1 -1
  180. package/ccw/dist/commands/cli.d.ts +5 -0
  181. package/ccw/dist/commands/cli.d.ts.map +1 -1
  182. package/ccw/dist/commands/cli.js +116 -19
  183. package/ccw/dist/commands/cli.js.map +1 -1
  184. package/ccw/dist/commands/install.d.ts +17 -0
  185. package/ccw/dist/commands/install.d.ts.map +1 -1
  186. package/ccw/dist/commands/install.js +211 -2
  187. package/ccw/dist/commands/install.js.map +1 -1
  188. package/ccw/dist/commands/issue.d.ts.map +1 -1
  189. package/ccw/dist/commands/issue.js +208 -28
  190. package/ccw/dist/commands/issue.js.map +1 -1
  191. package/ccw/dist/commands/uninstall.d.ts.map +1 -1
  192. package/ccw/dist/commands/uninstall.js +22 -1
  193. package/ccw/dist/commands/uninstall.js.map +1 -1
  194. package/ccw/dist/commands/view.d.ts.map +1 -1
  195. package/ccw/dist/commands/view.js +3 -0
  196. package/ccw/dist/commands/view.js.map +1 -1
  197. package/ccw/dist/commands/workflow.d.ts +11 -0
  198. package/ccw/dist/commands/workflow.d.ts.map +1 -0
  199. package/ccw/dist/commands/workflow.js +294 -0
  200. package/ccw/dist/commands/workflow.js.map +1 -0
  201. package/ccw/dist/core/routes/claude-routes.d.ts.map +1 -1
  202. package/ccw/dist/core/routes/claude-routes.js +57 -3
  203. package/ccw/dist/core/routes/claude-routes.js.map +1 -1
  204. package/ccw/dist/core/routes/cli-routes.d.ts +13 -0
  205. package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
  206. package/ccw/dist/core/routes/cli-routes.js +46 -0
  207. package/ccw/dist/core/routes/cli-routes.js.map +1 -1
  208. package/ccw/dist/core/routes/hooks-routes.d.ts.map +1 -1
  209. package/ccw/dist/core/routes/hooks-routes.js +33 -0
  210. package/ccw/dist/core/routes/hooks-routes.js.map +1 -1
  211. package/ccw/dist/core/routes/issue-routes.d.ts.map +1 -1
  212. package/ccw/dist/core/routes/issue-routes.js +211 -29
  213. package/ccw/dist/core/routes/issue-routes.js.map +1 -1
  214. package/ccw/dist/core/routes/mcp-routes.d.ts.map +1 -1
  215. package/ccw/dist/core/routes/mcp-routes.js +4 -1
  216. package/ccw/dist/core/routes/mcp-routes.js.map +1 -1
  217. package/ccw/dist/core/routes/rules-routes.d.ts.map +1 -1
  218. package/ccw/dist/core/routes/rules-routes.js +22 -6
  219. package/ccw/dist/core/routes/rules-routes.js.map +1 -1
  220. package/ccw/dist/core/routes/session-routes.d.ts.map +1 -1
  221. package/ccw/dist/core/routes/session-routes.js +23 -1
  222. package/ccw/dist/core/routes/session-routes.js.map +1 -1
  223. package/ccw/dist/mcp-server/index.js +8 -2
  224. package/ccw/dist/mcp-server/index.js.map +1 -1
  225. package/ccw/dist/tools/claude-cli-tools.d.ts.map +1 -1
  226. package/ccw/dist/tools/claude-cli-tools.js +52 -28
  227. package/ccw/dist/tools/claude-cli-tools.js.map +1 -1
  228. package/ccw/dist/tools/cli-executor-core.d.ts.map +1 -1
  229. package/ccw/dist/tools/cli-executor-core.js +33 -8
  230. package/ccw/dist/tools/cli-executor-core.js.map +1 -1
  231. package/ccw/dist/tools/cli-executor-state.d.ts +2 -0
  232. package/ccw/dist/tools/cli-executor-state.d.ts.map +1 -1
  233. package/ccw/dist/tools/cli-executor-state.js.map +1 -1
  234. package/ccw/dist/tools/cli-executor-utils.d.ts +7 -0
  235. package/ccw/dist/tools/cli-executor-utils.d.ts.map +1 -1
  236. package/ccw/dist/tools/cli-executor-utils.js +18 -4
  237. package/ccw/dist/tools/cli-executor-utils.js.map +1 -1
  238. package/ccw/dist/tools/cli-history-store.d.ts +21 -0
  239. package/ccw/dist/tools/cli-history-store.d.ts.map +1 -1
  240. package/ccw/dist/tools/cli-history-store.js +106 -30
  241. package/ccw/dist/tools/cli-history-store.js.map +1 -1
  242. package/ccw/dist/tools/cli-output-converter.d.ts +2 -1
  243. package/ccw/dist/tools/cli-output-converter.d.ts.map +1 -1
  244. package/ccw/dist/tools/cli-output-converter.js +65 -10
  245. package/ccw/dist/tools/cli-output-converter.js.map +1 -1
  246. package/ccw/dist/tools/codex-lens-lsp.d.ts +61 -0
  247. package/ccw/dist/tools/codex-lens-lsp.d.ts.map +1 -0
  248. package/ccw/dist/tools/codex-lens-lsp.js +320 -0
  249. package/ccw/dist/tools/codex-lens-lsp.js.map +1 -0
  250. package/ccw/dist/tools/codex-lens.d.ts.map +1 -1
  251. package/ccw/dist/tools/codex-lens.js +74 -54
  252. package/ccw/dist/tools/codex-lens.js.map +1 -1
  253. package/ccw/dist/tools/index.d.ts.map +1 -1
  254. package/ccw/dist/tools/index.js +4 -0
  255. package/ccw/dist/tools/index.js.map +1 -1
  256. package/ccw/dist/tools/template-discovery.d.ts +85 -0
  257. package/ccw/dist/tools/template-discovery.d.ts.map +1 -0
  258. package/ccw/dist/tools/template-discovery.js +239 -0
  259. package/ccw/dist/tools/template-discovery.js.map +1 -0
  260. package/ccw/dist/tools/vscode-lsp.d.ts +57 -0
  261. package/ccw/dist/tools/vscode-lsp.d.ts.map +1 -0
  262. package/ccw/dist/tools/vscode-lsp.js +250 -0
  263. package/ccw/dist/tools/vscode-lsp.js.map +1 -0
  264. package/ccw/dist/utils/path-resolver.d.ts +16 -2
  265. package/ccw/dist/utils/path-resolver.d.ts.map +1 -1
  266. package/ccw/dist/utils/path-resolver.js +36 -6
  267. package/ccw/dist/utils/path-resolver.js.map +1 -1
  268. package/ccw/dist/utils/path-validator.d.ts +5 -0
  269. package/ccw/dist/utils/path-validator.d.ts.map +1 -1
  270. package/ccw/dist/utils/path-validator.js +16 -5
  271. package/ccw/dist/utils/path-validator.js.map +1 -1
  272. package/ccw/dist/utils/project-root.d.ts +25 -0
  273. package/ccw/dist/utils/project-root.d.ts.map +1 -0
  274. package/ccw/dist/utils/project-root.js +63 -0
  275. package/ccw/dist/utils/project-root.js.map +1 -0
  276. package/ccw/dist/utils/shell-escape.d.ts +47 -3
  277. package/ccw/dist/utils/shell-escape.d.ts.map +1 -1
  278. package/ccw/dist/utils/shell-escape.js +98 -15
  279. package/ccw/dist/utils/shell-escape.js.map +1 -1
  280. package/ccw/dist/utils/update-checker.d.ts +11 -0
  281. package/ccw/dist/utils/update-checker.d.ts.map +1 -0
  282. package/ccw/dist/utils/update-checker.js +167 -0
  283. package/ccw/dist/utils/update-checker.js.map +1 -0
  284. package/ccw/src/cli.ts +16 -0
  285. package/ccw/src/commands/cli.ts +126 -19
  286. package/ccw/src/commands/install.ts +239 -2
  287. package/ccw/src/commands/issue.ts +245 -31
  288. package/ccw/src/commands/uninstall.ts +23 -1
  289. package/ccw/src/commands/view.ts +4 -0
  290. package/ccw/src/commands/workflow.ts +348 -0
  291. package/ccw/src/core/routes/claude-routes.ts +64 -3
  292. package/ccw/src/core/routes/cli-routes.ts +58 -0
  293. package/ccw/src/core/routes/hooks-routes.ts +32 -0
  294. package/ccw/src/core/routes/issue-routes.ts +242 -28
  295. package/ccw/src/core/routes/mcp-routes.ts +6 -2
  296. package/ccw/src/core/routes/rules-routes.ts +24 -6
  297. package/ccw/src/core/routes/session-routes.ts +24 -1
  298. package/ccw/src/mcp-server/index.ts +7 -2
  299. package/ccw/src/templates/dashboard-css/26-claude-manager.css +179 -0
  300. package/ccw/src/templates/dashboard-css/32-issue-manager.css +3427 -3302
  301. package/ccw/src/templates/dashboard-css/33-cli-stream-viewer.css +3 -2
  302. package/ccw/src/templates/dashboard-js/components/cli-history.js +4 -1
  303. package/ccw/src/templates/dashboard-js/components/cli-stream-viewer.js +57 -21
  304. package/ccw/src/templates/dashboard-js/components/hook-manager.js +1492 -1492
  305. package/ccw/src/templates/dashboard-js/components/mcp-manager.js +107 -20
  306. package/ccw/src/templates/dashboard-js/components/version-check.js +135 -1
  307. package/ccw/src/templates/dashboard-js/i18n.js +42 -0
  308. package/ccw/src/templates/dashboard-js/views/claude-manager.js +168 -0
  309. package/ccw/src/templates/dashboard-js/views/cli-manager.js +1 -0
  310. package/ccw/src/templates/dashboard-js/views/issue-manager.js +201 -1
  311. package/ccw/src/templates/dashboard-js/views/lite-tasks.js +3502 -3478
  312. package/ccw/src/templates/dashboard-js/views/mcp-manager.js +16 -0
  313. package/ccw/src/templates/dashboard.html +112 -0
  314. package/ccw/src/tools/claude-cli-tools.ts +54 -28
  315. package/ccw/src/tools/cli-executor-core.ts +36 -8
  316. package/ccw/src/tools/cli-executor-state.ts +2 -0
  317. package/ccw/src/tools/cli-executor-utils.ts +26 -4
  318. package/ccw/src/tools/cli-history-store.ts +122 -31
  319. package/ccw/src/tools/cli-output-converter.ts +76 -12
  320. package/ccw/src/tools/codex-lens-lsp.ts +405 -0
  321. package/ccw/src/tools/codex-lens.ts +82 -59
  322. package/ccw/src/tools/index.ts +4 -0
  323. package/ccw/src/tools/template-discovery.ts +303 -0
  324. package/ccw/src/tools/vscode-lsp.ts +317 -0
  325. package/ccw/src/utils/path-resolver.ts +37 -6
  326. package/ccw/src/utils/path-validator.ts +17 -5
  327. package/ccw/src/utils/project-root.ts +73 -0
  328. package/ccw/src/utils/shell-escape.ts +103 -16
  329. package/ccw/src/utils/update-checker.ts +178 -0
  330. package/codex-lens/pyproject.toml +14 -0
  331. package/codex-lens/src/codexlens/__pycache__/config.cpython-312.pyc +0 -0
  332. package/codex-lens/src/codexlens/__pycache__/config.cpython-313.pyc +0 -0
  333. package/codex-lens/src/codexlens/__pycache__/errors.cpython-312.pyc +0 -0
  334. package/codex-lens/src/codexlens/__pycache__/errors.cpython-313.pyc +0 -0
  335. package/codex-lens/src/codexlens/api/__init__.py +88 -0
  336. package/codex-lens/src/codexlens/api/__pycache__/__init__.cpython-312.pyc +0 -0
  337. package/codex-lens/src/codexlens/api/__pycache__/__init__.cpython-313.pyc +0 -0
  338. package/codex-lens/src/codexlens/api/__pycache__/definition.cpython-312.pyc +0 -0
  339. package/codex-lens/src/codexlens/api/__pycache__/definition.cpython-313.pyc +0 -0
  340. package/codex-lens/src/codexlens/api/__pycache__/file_context.cpython-312.pyc +0 -0
  341. package/codex-lens/src/codexlens/api/__pycache__/file_context.cpython-313.pyc +0 -0
  342. package/codex-lens/src/codexlens/api/__pycache__/hover.cpython-312.pyc +0 -0
  343. package/codex-lens/src/codexlens/api/__pycache__/hover.cpython-313.pyc +0 -0
  344. package/codex-lens/src/codexlens/api/__pycache__/models.cpython-312.pyc +0 -0
  345. package/codex-lens/src/codexlens/api/__pycache__/models.cpython-313.pyc +0 -0
  346. package/codex-lens/src/codexlens/api/__pycache__/references.cpython-312.pyc +0 -0
  347. package/codex-lens/src/codexlens/api/__pycache__/references.cpython-313.pyc +0 -0
  348. package/codex-lens/src/codexlens/api/__pycache__/semantic.cpython-312.pyc +0 -0
  349. package/codex-lens/src/codexlens/api/__pycache__/semantic.cpython-313.pyc +0 -0
  350. package/codex-lens/src/codexlens/api/__pycache__/symbols.cpython-312.pyc +0 -0
  351. package/codex-lens/src/codexlens/api/__pycache__/symbols.cpython-313.pyc +0 -0
  352. package/codex-lens/src/codexlens/api/__pycache__/utils.cpython-312.pyc +0 -0
  353. package/codex-lens/src/codexlens/api/__pycache__/utils.cpython-313.pyc +0 -0
  354. package/codex-lens/src/codexlens/api/definition.py +126 -0
  355. package/codex-lens/src/codexlens/api/file_context.py +271 -0
  356. package/codex-lens/src/codexlens/api/hover.py +148 -0
  357. package/codex-lens/src/codexlens/api/models.py +281 -0
  358. package/codex-lens/src/codexlens/api/references.py +345 -0
  359. package/codex-lens/src/codexlens/api/semantic.py +471 -0
  360. package/codex-lens/src/codexlens/api/symbols.py +146 -0
  361. package/codex-lens/src/codexlens/api/utils.py +153 -0
  362. package/codex-lens/src/codexlens/config.py +7 -0
  363. package/codex-lens/src/codexlens/errors.py +4 -0
  364. package/codex-lens/src/codexlens/hybrid_search/__init__.py +28 -0
  365. package/codex-lens/src/codexlens/hybrid_search/__pycache__/__init__.cpython-312.pyc +0 -0
  366. package/codex-lens/src/codexlens/hybrid_search/__pycache__/__init__.cpython-313.pyc +0 -0
  367. package/codex-lens/src/codexlens/hybrid_search/__pycache__/data_structures.cpython-312.pyc +0 -0
  368. package/codex-lens/src/codexlens/hybrid_search/__pycache__/data_structures.cpython-313.pyc +0 -0
  369. package/codex-lens/src/codexlens/hybrid_search/__pycache__/engine.cpython-313.pyc +0 -0
  370. package/codex-lens/src/codexlens/hybrid_search/data_structures.py +602 -0
  371. package/codex-lens/src/codexlens/lsp/__init__.py +34 -0
  372. package/codex-lens/src/codexlens/lsp/__pycache__/__init__.cpython-312.pyc +0 -0
  373. package/codex-lens/src/codexlens/lsp/__pycache__/__init__.cpython-313.pyc +0 -0
  374. package/codex-lens/src/codexlens/lsp/__pycache__/handlers.cpython-313.pyc +0 -0
  375. package/codex-lens/src/codexlens/lsp/__pycache__/lsp_bridge.cpython-312.pyc +0 -0
  376. package/codex-lens/src/codexlens/lsp/__pycache__/lsp_bridge.cpython-313.pyc +0 -0
  377. package/codex-lens/src/codexlens/lsp/__pycache__/lsp_graph_builder.cpython-312.pyc +0 -0
  378. package/codex-lens/src/codexlens/lsp/__pycache__/lsp_graph_builder.cpython-313.pyc +0 -0
  379. package/codex-lens/src/codexlens/lsp/__pycache__/providers.cpython-313.pyc +0 -0
  380. package/codex-lens/src/codexlens/lsp/__pycache__/server.cpython-313.pyc +0 -0
  381. package/codex-lens/src/codexlens/lsp/__pycache__/standalone_manager.cpython-313.pyc +0 -0
  382. package/codex-lens/src/codexlens/lsp/handlers.py +551 -0
  383. package/codex-lens/src/codexlens/lsp/lsp_bridge.py +834 -0
  384. package/codex-lens/src/codexlens/lsp/lsp_graph_builder.py +375 -0
  385. package/codex-lens/src/codexlens/lsp/providers.py +177 -0
  386. package/codex-lens/src/codexlens/lsp/server.py +263 -0
  387. package/codex-lens/src/codexlens/lsp/standalone_manager.py +1159 -0
  388. package/codex-lens/src/codexlens/mcp/__init__.py +20 -0
  389. package/codex-lens/src/codexlens/mcp/__pycache__/__init__.cpython-313.pyc +0 -0
  390. package/codex-lens/src/codexlens/mcp/__pycache__/hooks.cpython-313.pyc +0 -0
  391. package/codex-lens/src/codexlens/mcp/__pycache__/provider.cpython-313.pyc +0 -0
  392. package/codex-lens/src/codexlens/mcp/__pycache__/schema.cpython-313.pyc +0 -0
  393. package/codex-lens/src/codexlens/mcp/hooks.py +170 -0
  394. package/codex-lens/src/codexlens/mcp/provider.py +202 -0
  395. package/codex-lens/src/codexlens/mcp/schema.py +113 -0
  396. package/codex-lens/src/codexlens/search/__init__.py +53 -15
  397. package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-312.pyc +0 -0
  398. package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-313.pyc +0 -0
  399. package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-312.pyc +0 -0
  400. package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-313.pyc +0 -0
  401. package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-312.pyc +0 -0
  402. package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-313.pyc +0 -0
  403. package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-312.pyc +0 -0
  404. package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-313.pyc +0 -0
  405. package/codex-lens/src/codexlens/search/association_tree/QUICK_START.md +257 -0
  406. package/codex-lens/src/codexlens/search/association_tree/README.md +188 -0
  407. package/codex-lens/src/codexlens/search/association_tree/__init__.py +21 -0
  408. package/codex-lens/src/codexlens/search/association_tree/__pycache__/__init__.cpython-313.pyc +0 -0
  409. package/codex-lens/src/codexlens/search/association_tree/__pycache__/builder.cpython-313.pyc +0 -0
  410. package/codex-lens/src/codexlens/search/association_tree/__pycache__/data_structures.cpython-313.pyc +0 -0
  411. package/codex-lens/src/codexlens/search/association_tree/__pycache__/deduplicator.cpython-313.pyc +0 -0
  412. package/codex-lens/src/codexlens/search/association_tree/builder.py +450 -0
  413. package/codex-lens/src/codexlens/search/association_tree/data_structures.py +191 -0
  414. package/codex-lens/src/codexlens/search/association_tree/deduplicator.py +301 -0
  415. package/codex-lens/src/codexlens/search/chain_search.py +864 -3
  416. package/codex-lens/src/codexlens/search/clustering/__init__.py +124 -0
  417. package/codex-lens/src/codexlens/search/clustering/__pycache__/__init__.cpython-312.pyc +0 -0
  418. package/codex-lens/src/codexlens/search/clustering/__pycache__/__init__.cpython-313.pyc +0 -0
  419. package/codex-lens/src/codexlens/search/clustering/__pycache__/base.cpython-312.pyc +0 -0
  420. package/codex-lens/src/codexlens/search/clustering/__pycache__/base.cpython-313.pyc +0 -0
  421. package/codex-lens/src/codexlens/search/clustering/__pycache__/dbscan_strategy.cpython-313.pyc +0 -0
  422. package/codex-lens/src/codexlens/search/clustering/__pycache__/factory.cpython-312.pyc +0 -0
  423. package/codex-lens/src/codexlens/search/clustering/__pycache__/factory.cpython-313.pyc +0 -0
  424. package/codex-lens/src/codexlens/search/clustering/__pycache__/frequency_strategy.cpython-312.pyc +0 -0
  425. package/codex-lens/src/codexlens/search/clustering/__pycache__/frequency_strategy.cpython-313.pyc +0 -0
  426. package/codex-lens/src/codexlens/search/clustering/__pycache__/hdbscan_strategy.cpython-313.pyc +0 -0
  427. package/codex-lens/src/codexlens/search/clustering/__pycache__/noop_strategy.cpython-312.pyc +0 -0
  428. package/codex-lens/src/codexlens/search/clustering/__pycache__/noop_strategy.cpython-313.pyc +0 -0
  429. package/codex-lens/src/codexlens/search/clustering/base.py +153 -0
  430. package/codex-lens/src/codexlens/search/clustering/dbscan_strategy.py +197 -0
  431. package/codex-lens/src/codexlens/search/clustering/factory.py +202 -0
  432. package/codex-lens/src/codexlens/search/clustering/frequency_strategy.py +263 -0
  433. package/codex-lens/src/codexlens/search/clustering/hdbscan_strategy.py +153 -0
  434. package/codex-lens/src/codexlens/search/clustering/noop_strategy.py +83 -0
  435. package/codex-lens/src/codexlens/search/hybrid_search.py +194 -2
  436. package/codex-lens/src/codexlens/search/ranking.py +6 -4
  437. package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-312.pyc +0 -0
  438. package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-312.pyc +0 -0
  439. package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-313.pyc +0 -0
  440. package/codex-lens/src/codexlens/storage/__pycache__/global_index.cpython-312.pyc +0 -0
  441. package/codex-lens/src/codexlens/storage/__pycache__/global_index.cpython-313.pyc +0 -0
  442. package/codex-lens/src/codexlens/storage/dir_index.py +172 -0
  443. package/codex-lens/src/codexlens/storage/global_index.py +33 -0
  444. package/package.json +92 -92
  445. /package/.claude/workflows/cli-templates/prompts/{analysis/02-analyze-code-patterns.txt → analysis-analyze-code-patterns.txt} +0 -0
  446. /package/.claude/workflows/cli-templates/prompts/{analysis/02-analyze-technical-document.txt → analysis-analyze-technical-document.txt} +0 -0
  447. /package/.claude/workflows/cli-templates/prompts/{analysis/01-diagnose-bug-root-cause.txt → analysis-diagnose-bug-root-cause.txt} +0 -0
  448. /package/.claude/workflows/cli-templates/prompts/{development/03-debug-runtime-issues.txt → development-debug-runtime-issues.txt} +0 -0
  449. /package/.claude/workflows/cli-templates/prompts/{development/02-generate-tests.txt → development-generate-tests.txt} +0 -0
  450. /package/.claude/workflows/cli-templates/prompts/{development/02-implement-component-ui.txt → development-implement-component-ui.txt} +0 -0
  451. /package/.claude/workflows/cli-templates/prompts/{development/02-implement-feature.txt → development-implement-feature.txt} +0 -0
  452. /package/.claude/workflows/cli-templates/prompts/{development/02-refactor-codebase.txt → development-refactor-codebase.txt} +0 -0
  453. /package/.claude/workflows/cli-templates/prompts/{documentation/module-readme.txt → documentation-module-readme.txt} +0 -0
  454. /package/.claude/workflows/cli-templates/prompts/{memory/02-document-module-structure.txt → memory-document-module-structure.txt} +0 -0
  455. /package/.claude/workflows/cli-templates/prompts/{planning/02-breakdown-task-steps.txt → planning-breakdown-task-steps.txt} +0 -0
  456. /package/.claude/workflows/cli-templates/prompts/{planning/03-evaluate-concept-feasibility.txt → planning-evaluate-concept-feasibility.txt} +0 -0
  457. /package/.claude/workflows/cli-templates/prompts/{planning/01-plan-architecture-design.txt → planning-plan-architecture-design.txt} +0 -0
  458. /package/.claude/workflows/cli-templates/prompts/{planning/03-plan-migration-strategy.txt → planning-plan-migration-strategy.txt} +0 -0
  459. /package/.claude/workflows/cli-templates/prompts/{rules/rule-api.txt → rules-rule-api.txt} +0 -0
  460. /package/.claude/workflows/cli-templates/prompts/{rules/rule-components.txt → rules-rule-components.txt} +0 -0
  461. /package/.claude/workflows/cli-templates/prompts/{rules/rule-config.txt → rules-rule-config.txt} +0 -0
  462. /package/.claude/workflows/cli-templates/prompts/{rules/rule-core.txt → rules-rule-core.txt} +0 -0
  463. /package/.claude/workflows/cli-templates/prompts/{rules/rule-patterns.txt → rules-rule-patterns.txt} +0 -0
  464. /package/.claude/workflows/cli-templates/prompts/{rules/rule-testing.txt → rules-rule-testing.txt} +0 -0
  465. /package/.claude/workflows/cli-templates/prompts/{rules/tech-rules-agent-prompt.txt → rules-tech-rules-agent-prompt.txt} +0 -0
  466. /package/.claude/workflows/cli-templates/prompts/{tech/tech-module-format.txt → tech-tech-module-format.txt} +0 -0
  467. /package/.claude/workflows/cli-templates/prompts/{tech/tech-skill-index.txt → tech-tech-skill-index.txt} +0 -0
  468. /package/.claude/workflows/cli-templates/prompts/{test/test-concept-analysis.txt → test-test-concept-analysis.txt} +0 -0
  469. /package/.claude/workflows/cli-templates/prompts/{universal/00-universal-creative-style.txt → universal-universal-creative-style.txt} +0 -0
  470. /package/.claude/workflows/cli-templates/prompts/{universal/00-universal-rigorous-style.txt → universal-universal-rigorous-style.txt} +0 -0
  471. /package/.claude/workflows/cli-templates/prompts/{workflow/codex-feasibility-validation.txt → workflow-codex-feasibility-validation.txt} +0 -0
  472. /package/.claude/workflows/cli-templates/prompts/{workflow/gemini-solution-design.txt → workflow-gemini-solution-design.txt} +0 -0
  473. /package/.claude/workflows/cli-templates/prompts/{workflow/skill-aggregation.txt → workflow-skill-aggregation.txt} +0 -0
  474. /package/.claude/workflows/cli-templates/prompts/{workflow/skill-index.txt → workflow-skill-index.txt} +0 -0
  475. /package/.claude/workflows/cli-templates/prompts/{workflow/skill-sessions-timeline.txt → workflow-skill-sessions-timeline.txt} +0 -0
  476. /package/.claude/workflows/cli-templates/prompts/{workflow/task-json-cli-mode.txt → workflow-task-json-cli-mode.txt} +0 -0
@@ -1,322 +1,322 @@
1
- # Action: Gemini Analysis
2
-
3
- 动态调用 Gemini CLI 进行深度分析,根据用户需求或诊断结果选择分析类型。
4
-
5
- ## Role
6
-
7
- - 接收用户指定的分析需求或从诊断结果推断需求
8
- - 构建适当的 CLI 命令
9
- - 执行分析并解析结果
10
- - 更新状态以供后续动作使用
11
-
12
- ## Preconditions
13
-
14
- - `state.status === 'running'`
15
- - 满足以下任一条件:
16
- - `state.gemini_analysis_requested === true` (用户请求)
17
- - `state.issues.some(i => i.severity === 'critical')` (发现严重问题)
18
- - `state.analysis_type !== null` (已指定分析类型)
19
-
20
- ## Analysis Types
21
-
22
- ### 1. root_cause - 问题根因分析
23
-
24
- 针对用户描述的问题进行深度分析。
25
-
26
- ```javascript
27
- const analysisPrompt = `
28
- PURPOSE: Identify root cause of skill execution issue: ${state.user_issue_description}
29
- TASK:
30
- • Analyze skill structure at: ${state.target_skill.path}
31
- • Identify anti-patterns in phase files
32
- • Trace data flow through state management
33
- • Check agent coordination patterns
34
- MODE: analysis
35
- CONTEXT: @**/*.md
36
- EXPECTED: JSON with structure:
37
- {
38
- "root_causes": [
39
- { "id": "RC-001", "description": "...", "severity": "high", "evidence": ["file:line"] }
40
- ],
41
- "patterns_found": [
42
- { "pattern": "...", "type": "anti-pattern|best-practice", "locations": [] }
43
- ],
44
- "recommendations": [
45
- { "priority": 1, "action": "...", "rationale": "..." }
46
- ]
47
- }
48
- RULES: Focus on execution flow, state management, agent coordination
49
- `;
50
- ```
51
-
52
- ### 2. architecture - 架构审查
53
-
54
- 评估 skill 的整体架构设计。
55
-
56
- ```javascript
57
- const analysisPrompt = `
58
- PURPOSE: Review skill architecture for: ${state.target_skill.name}
59
- TASK:
60
- • Evaluate phase decomposition and responsibility separation
61
- • Check state schema design and data flow
62
- • Assess agent coordination and error handling
63
- • Review scalability and maintainability
64
- MODE: analysis
65
- CONTEXT: @**/*.md
66
- EXPECTED: Markdown report with sections:
67
- - Executive Summary
68
- - Phase Architecture Assessment
69
- - State Management Evaluation
70
- - Agent Coordination Analysis
71
- - Improvement Recommendations (prioritized)
72
- RULES: Focus on modularity, extensibility, maintainability
73
- `;
74
- ```
75
-
76
- ### 3. prompt_optimization - 提示词优化
77
-
78
- 分析和优化 phase 中的提示词。
79
-
80
- ```javascript
81
- const analysisPrompt = `
82
- PURPOSE: Optimize prompts in skill phases for better output quality
83
- TASK:
84
- • Analyze existing prompts for clarity and specificity
85
- • Identify ambiguous instructions
86
- • Check output format specifications
87
- • Evaluate constraint communication
88
- MODE: analysis
89
- CONTEXT: @phases/**/*.md
90
- EXPECTED: JSON with structure:
91
- {
92
- "prompt_issues": [
93
- { "file": "...", "issue": "...", "severity": "...", "suggestion": "..." }
94
- ],
95
- "optimized_prompts": [
96
- { "file": "...", "original": "...", "optimized": "...", "rationale": "..." }
97
- ]
98
- }
99
- RULES: Preserve intent, improve clarity, add structured output requirements
100
- `;
101
- ```
102
-
103
- ### 4. performance - 性能分析
104
-
105
- 分析 Token 消耗和执行效率。
106
-
107
- ```javascript
108
- const analysisPrompt = `
109
- PURPOSE: Analyze performance bottlenecks in skill execution
110
- TASK:
111
- • Estimate token consumption per phase
112
- • Identify redundant data passing
113
- • Check for unnecessary full-content transfers
114
- • Evaluate caching opportunities
115
- MODE: analysis
116
- CONTEXT: @**/*.md
117
- EXPECTED: JSON with structure:
118
- {
119
- "token_estimates": [
120
- { "phase": "...", "estimated_tokens": 1000, "breakdown": {} }
121
- ],
122
- "bottlenecks": [
123
- { "type": "...", "location": "...", "impact": "high|medium|low", "fix": "..." }
124
- ],
125
- "optimization_suggestions": []
126
- }
127
- RULES: Focus on token efficiency, reduce redundancy
128
- `;
129
- ```
130
-
131
- ### 5. custom - 自定义分析
132
-
133
- 用户指定的自定义分析需求。
134
-
135
- ```javascript
136
- const analysisPrompt = `
137
- PURPOSE: ${state.custom_analysis_purpose}
138
- TASK: ${state.custom_analysis_tasks}
139
- MODE: analysis
140
- CONTEXT: @**/*.md
141
- EXPECTED: ${state.custom_analysis_expected}
142
- RULES: ${state.custom_analysis_rules || 'Follow best practices'}
143
- `;
144
- ```
145
-
146
- ## Execution
147
-
148
- ```javascript
149
- async function executeGeminiAnalysis(state, workDir) {
150
- // 1. 确定分析类型
151
- const analysisType = state.analysis_type || determineAnalysisType(state);
152
-
153
- // 2. 构建 prompt
154
- const prompt = buildAnalysisPrompt(analysisType, state);
155
-
156
- // 3. 构建 CLI 命令
157
- const cliCommand = `ccw cli -p "${escapeForShell(prompt)}" --tool gemini --mode analysis --cd "${state.target_skill.path}"`;
158
-
159
- console.log(`Executing Gemini analysis: ${analysisType}`);
160
- console.log(`Command: ${cliCommand}`);
161
-
162
- // 4. 执行 CLI (后台运行)
163
- const result = Bash({
164
- command: cliCommand,
165
- run_in_background: true,
166
- timeout: 300000 // 5 minutes
167
- });
168
-
169
- // 5. 等待结果
170
- // 注意: 根据 CLAUDE.md 指引,CLI 后台执行后应停止轮询
171
- // 结果会在 CLI 完成后写入 state
172
-
173
- return {
174
- stateUpdates: {
175
- gemini_analysis: {
176
- type: analysisType,
177
- status: 'running',
178
- started_at: new Date().toISOString(),
179
- task_id: result.task_id
180
- }
181
- },
182
- outputFiles: [],
183
- summary: `Gemini ${analysisType} analysis started in background`
184
- };
185
- }
186
-
187
- function determineAnalysisType(state) {
188
- // 根据状态推断分析类型
189
- if (state.user_issue_description && state.user_issue_description.length > 100) {
190
- return 'root_cause';
191
- }
192
- if (state.issues.some(i => i.severity === 'critical')) {
193
- return 'root_cause';
194
- }
195
- if (state.focus_areas.includes('architecture')) {
196
- return 'architecture';
197
- }
198
- if (state.focus_areas.includes('prompt')) {
199
- return 'prompt_optimization';
200
- }
201
- if (state.focus_areas.includes('performance')) {
202
- return 'performance';
203
- }
204
- return 'root_cause'; // 默认
205
- }
206
-
207
- function buildAnalysisPrompt(type, state) {
208
- const templates = {
209
- root_cause: () => `
210
- PURPOSE: Identify root cause of skill execution issue: ${state.user_issue_description}
211
- TASK: • Analyze skill structure • Identify anti-patterns • Trace data flow issues • Check agent coordination
212
- MODE: analysis
213
- CONTEXT: @**/*.md
214
- EXPECTED: JSON { root_causes: [], patterns_found: [], recommendations: [] }
215
- RULES: Focus on execution flow, be specific about file:line locations
216
- `,
217
- architecture: () => `
218
- PURPOSE: Review skill architecture for ${state.target_skill.name}
219
- TASK: • Evaluate phase decomposition • Check state design • Assess agent coordination • Review extensibility
220
- MODE: analysis
221
- CONTEXT: @**/*.md
222
- EXPECTED: Markdown architecture assessment report
223
- RULES: Focus on modularity and maintainability
224
- `,
225
- prompt_optimization: () => `
226
- PURPOSE: Optimize prompts in skill for better output quality
227
- TASK: • Analyze prompt clarity • Check output specifications • Evaluate constraint handling
228
- MODE: analysis
229
- CONTEXT: @phases/**/*.md
230
- EXPECTED: JSON { prompt_issues: [], optimized_prompts: [] }
231
- RULES: Preserve intent, improve clarity
232
- `,
233
- performance: () => `
234
- PURPOSE: Analyze performance bottlenecks in skill
235
- TASK: • Estimate token consumption • Identify redundancy • Check data transfer efficiency
236
- MODE: analysis
237
- CONTEXT: @**/*.md
238
- EXPECTED: JSON { token_estimates: [], bottlenecks: [], optimization_suggestions: [] }
239
- RULES: Focus on token efficiency
240
- `,
241
- custom: () => `
242
- PURPOSE: ${state.custom_analysis_purpose}
243
- TASK: ${state.custom_analysis_tasks}
244
- MODE: analysis
245
- CONTEXT: @**/*.md
246
- EXPECTED: ${state.custom_analysis_expected}
247
- RULES: ${state.custom_analysis_rules || 'Best practices'}
248
- `
249
- };
250
-
251
- return templates[type]();
252
- }
253
-
254
- function escapeForShell(str) {
255
- // 转义 shell 特殊字符
256
- return str.replace(/"/g, '\\"').replace(/\$/g, '\\$').replace(/`/g, '\\`');
257
- }
258
- ```
259
-
260
- ## Output
261
-
262
- ### State Updates
263
-
264
- ```javascript
265
- {
266
- gemini_analysis: {
267
- type: 'root_cause' | 'architecture' | 'prompt_optimization' | 'performance' | 'custom',
268
- status: 'running' | 'completed' | 'failed',
269
- started_at: '2024-01-01T00:00:00Z',
270
- completed_at: '2024-01-01T00:05:00Z',
271
- task_id: 'xxx',
272
- result: { /* 分析结果 */ },
273
- error: null
274
- },
275
- // 分析结果合并到 issues
276
- issues: [
277
- ...state.issues,
278
- ...newIssuesFromAnalysis
279
- ]
280
- }
281
- ```
282
-
283
- ### Output Files
284
-
285
- - `${workDir}/diagnosis/gemini-analysis-${type}.json` - 原始分析结果
286
- - `${workDir}/diagnosis/gemini-analysis-${type}.md` - 格式化报告
287
-
288
- ## Post-Execution
289
-
290
- 分析完成后:
291
- 1. 解析 CLI 输出为结构化数据
292
- 2. 提取新发现的 issues 合并到 state.issues
293
- 3. 更新 recommendations 到 state
294
- 4. 触发下一步动作 (通常是 action-generate-report 或 action-propose-fixes)
295
-
296
- ## Error Handling
297
-
298
- | Error | Recovery |
299
- |-------|----------|
300
- | CLI 超时 | 重试一次,仍失败则跳过 Gemini 分析 |
301
- | 解析失败 | 保存原始输出,手动处理 |
302
- | 无结果 | 标记为 skipped,继续流程 |
303
-
304
- ## User Interaction
305
-
306
- 如果 `state.analysis_type === null` 且无法自动推断,询问用户:
307
-
308
- ```javascript
309
- AskUserQuestion({
310
- questions: [{
311
- question: '请选择 Gemini 分析类型',
312
- header: '分析类型',
313
- options: [
314
- { label: '问题根因分析', description: '深度分析用户描述的问题' },
315
- { label: '架构审查', description: '评估整体架构设计' },
316
- { label: '提示词优化', description: '分析和优化 phase 提示词' },
317
- { label: '性能分析', description: '分析 Token 消耗和执行效率' }
318
- ],
319
- multiSelect: false
320
- }]
321
- });
322
- ```
1
+ # Action: Gemini Analysis
2
+
3
+ 动态调用 Gemini CLI 进行深度分析,根据用户需求或诊断结果选择分析类型。
4
+
5
+ ## Role
6
+
7
+ - 接收用户指定的分析需求或从诊断结果推断需求
8
+ - 构建适当的 CLI 命令
9
+ - 执行分析并解析结果
10
+ - 更新状态以供后续动作使用
11
+
12
+ ## Preconditions
13
+
14
+ - `state.status === 'running'`
15
+ - 满足以下任一条件:
16
+ - `state.gemini_analysis_requested === true` (用户请求)
17
+ - `state.issues.some(i => i.severity === 'critical')` (发现严重问题)
18
+ - `state.analysis_type !== null` (已指定分析类型)
19
+
20
+ ## Analysis Types
21
+
22
+ ### 1. root_cause - 问题根因分析
23
+
24
+ 针对用户描述的问题进行深度分析。
25
+
26
+ ```javascript
27
+ const analysisPrompt = `
28
+ PURPOSE: Identify root cause of skill execution issue: ${state.user_issue_description}
29
+ TASK:
30
+ • Analyze skill structure at: ${state.target_skill.path}
31
+ • Identify anti-patterns in phase files
32
+ • Trace data flow through state management
33
+ • Check agent coordination patterns
34
+ MODE: analysis
35
+ CONTEXT: @**/*.md
36
+ EXPECTED: JSON with structure:
37
+ {
38
+ "root_causes": [
39
+ { "id": "RC-001", "description": "...", "severity": "high", "evidence": ["file:line"] }
40
+ ],
41
+ "patterns_found": [
42
+ { "pattern": "...", "type": "anti-pattern|best-practice", "locations": [] }
43
+ ],
44
+ "recommendations": [
45
+ { "priority": 1, "action": "...", "rationale": "..." }
46
+ ]
47
+ }
48
+ RULES: Focus on execution flow, state management, agent coordination
49
+ `;
50
+ ```
51
+
52
+ ### 2. architecture - 架构审查
53
+
54
+ 评估 skill 的整体架构设计。
55
+
56
+ ```javascript
57
+ const analysisPrompt = `
58
+ PURPOSE: Review skill architecture for: ${state.target_skill.name}
59
+ TASK:
60
+ • Evaluate phase decomposition and responsibility separation
61
+ • Check state schema design and data flow
62
+ • Assess agent coordination and error handling
63
+ • Review scalability and maintainability
64
+ MODE: analysis
65
+ CONTEXT: @**/*.md
66
+ EXPECTED: Markdown report with sections:
67
+ - Executive Summary
68
+ - Phase Architecture Assessment
69
+ - State Management Evaluation
70
+ - Agent Coordination Analysis
71
+ - Improvement Recommendations (prioritized)
72
+ RULES: Focus on modularity, extensibility, maintainability
73
+ `;
74
+ ```
75
+
76
+ ### 3. prompt_optimization - 提示词优化
77
+
78
+ 分析和优化 phase 中的提示词。
79
+
80
+ ```javascript
81
+ const analysisPrompt = `
82
+ PURPOSE: Optimize prompts in skill phases for better output quality
83
+ TASK:
84
+ • Analyze existing prompts for clarity and specificity
85
+ • Identify ambiguous instructions
86
+ • Check output format specifications
87
+ • Evaluate constraint communication
88
+ MODE: analysis
89
+ CONTEXT: @phases/**/*.md
90
+ EXPECTED: JSON with structure:
91
+ {
92
+ "prompt_issues": [
93
+ { "file": "...", "issue": "...", "severity": "...", "suggestion": "..." }
94
+ ],
95
+ "optimized_prompts": [
96
+ { "file": "...", "original": "...", "optimized": "...", "rationale": "..." }
97
+ ]
98
+ }
99
+ RULES: Preserve intent, improve clarity, add structured output requirements
100
+ `;
101
+ ```
102
+
103
+ ### 4. performance - 性能分析
104
+
105
+ 分析 Token 消耗和执行效率。
106
+
107
+ ```javascript
108
+ const analysisPrompt = `
109
+ PURPOSE: Analyze performance bottlenecks in skill execution
110
+ TASK:
111
+ • Estimate token consumption per phase
112
+ • Identify redundant data passing
113
+ • Check for unnecessary full-content transfers
114
+ • Evaluate caching opportunities
115
+ MODE: analysis
116
+ CONTEXT: @**/*.md
117
+ EXPECTED: JSON with structure:
118
+ {
119
+ "token_estimates": [
120
+ { "phase": "...", "estimated_tokens": 1000, "breakdown": {} }
121
+ ],
122
+ "bottlenecks": [
123
+ { "type": "...", "location": "...", "impact": "high|medium|low", "fix": "..." }
124
+ ],
125
+ "optimization_suggestions": []
126
+ }
127
+ RULES: Focus on token efficiency, reduce redundancy
128
+ `;
129
+ ```
130
+
131
+ ### 5. custom - 自定义分析
132
+
133
+ 用户指定的自定义分析需求。
134
+
135
+ ```javascript
136
+ const analysisPrompt = `
137
+ PURPOSE: ${state.custom_analysis_purpose}
138
+ TASK: ${state.custom_analysis_tasks}
139
+ MODE: analysis
140
+ CONTEXT: @**/*.md
141
+ EXPECTED: ${state.custom_analysis_expected}
142
+ RULES: ${state.custom_analysis_rules || 'Follow best practices'}
143
+ `;
144
+ ```
145
+
146
+ ## Execution
147
+
148
+ ```javascript
149
+ async function executeGeminiAnalysis(state, workDir) {
150
+ // 1. 确定分析类型
151
+ const analysisType = state.analysis_type || determineAnalysisType(state);
152
+
153
+ // 2. 构建 prompt
154
+ const prompt = buildAnalysisPrompt(analysisType, state);
155
+
156
+ // 3. 构建 CLI 命令
157
+ const cliCommand = `ccw cli -p "${escapeForShell(prompt)}" --tool gemini --mode analysis --cd "${state.target_skill.path}"`;
158
+
159
+ console.log(`Executing Gemini analysis: ${analysisType}`);
160
+ console.log(`Command: ${cliCommand}`);
161
+
162
+ // 4. 执行 CLI (后台运行)
163
+ const result = Bash({
164
+ command: cliCommand,
165
+ run_in_background: true,
166
+ timeout: 300000 // 5 minutes
167
+ });
168
+
169
+ // 5. 等待结果
170
+ // 注意: 根据 CLAUDE.md 指引,CLI 后台执行后应停止轮询
171
+ // 结果会在 CLI 完成后写入 state
172
+
173
+ return {
174
+ stateUpdates: {
175
+ gemini_analysis: {
176
+ type: analysisType,
177
+ status: 'running',
178
+ started_at: new Date().toISOString(),
179
+ task_id: result.task_id
180
+ }
181
+ },
182
+ outputFiles: [],
183
+ summary: `Gemini ${analysisType} analysis started in background`
184
+ };
185
+ }
186
+
187
+ function determineAnalysisType(state) {
188
+ // 根据状态推断分析类型
189
+ if (state.user_issue_description && state.user_issue_description.length > 100) {
190
+ return 'root_cause';
191
+ }
192
+ if (state.issues.some(i => i.severity === 'critical')) {
193
+ return 'root_cause';
194
+ }
195
+ if (state.focus_areas.includes('architecture')) {
196
+ return 'architecture';
197
+ }
198
+ if (state.focus_areas.includes('prompt')) {
199
+ return 'prompt_optimization';
200
+ }
201
+ if (state.focus_areas.includes('performance')) {
202
+ return 'performance';
203
+ }
204
+ return 'root_cause'; // 默认
205
+ }
206
+
207
+ function buildAnalysisPrompt(type, state) {
208
+ const templates = {
209
+ root_cause: () => `
210
+ PURPOSE: Identify root cause of skill execution issue: ${state.user_issue_description}
211
+ TASK: • Analyze skill structure • Identify anti-patterns • Trace data flow issues • Check agent coordination
212
+ MODE: analysis
213
+ CONTEXT: @**/*.md
214
+ EXPECTED: JSON { root_causes: [], patterns_found: [], recommendations: [] }
215
+ RULES: Focus on execution flow, be specific about file:line locations
216
+ `,
217
+ architecture: () => `
218
+ PURPOSE: Review skill architecture for ${state.target_skill.name}
219
+ TASK: • Evaluate phase decomposition • Check state design • Assess agent coordination • Review extensibility
220
+ MODE: analysis
221
+ CONTEXT: @**/*.md
222
+ EXPECTED: Markdown architecture assessment report
223
+ RULES: Focus on modularity and maintainability
224
+ `,
225
+ prompt_optimization: () => `
226
+ PURPOSE: Optimize prompts in skill for better output quality
227
+ TASK: • Analyze prompt clarity • Check output specifications • Evaluate constraint handling
228
+ MODE: analysis
229
+ CONTEXT: @phases/**/*.md
230
+ EXPECTED: JSON { prompt_issues: [], optimized_prompts: [] }
231
+ RULES: Preserve intent, improve clarity
232
+ `,
233
+ performance: () => `
234
+ PURPOSE: Analyze performance bottlenecks in skill
235
+ TASK: • Estimate token consumption • Identify redundancy • Check data transfer efficiency
236
+ MODE: analysis
237
+ CONTEXT: @**/*.md
238
+ EXPECTED: JSON { token_estimates: [], bottlenecks: [], optimization_suggestions: [] }
239
+ RULES: Focus on token efficiency
240
+ `,
241
+ custom: () => `
242
+ PURPOSE: ${state.custom_analysis_purpose}
243
+ TASK: ${state.custom_analysis_tasks}
244
+ MODE: analysis
245
+ CONTEXT: @**/*.md
246
+ EXPECTED: ${state.custom_analysis_expected}
247
+ RULES: ${state.custom_analysis_rules || 'Best practices'}
248
+ `
249
+ };
250
+
251
+ return templates[type]();
252
+ }
253
+
254
+ function escapeForShell(str) {
255
+ // 转义 shell 特殊字符
256
+ return str.replace(/"/g, '\\"').replace(/\$/g, '\\$').replace(/`/g, '\\`');
257
+ }
258
+ ```
259
+
260
+ ## Output
261
+
262
+ ### State Updates
263
+
264
+ ```javascript
265
+ {
266
+ gemini_analysis: {
267
+ type: 'root_cause' | 'architecture' | 'prompt_optimization' | 'performance' | 'custom',
268
+ status: 'running' | 'completed' | 'failed',
269
+ started_at: '2024-01-01T00:00:00Z',
270
+ completed_at: '2024-01-01T00:05:00Z',
271
+ task_id: 'xxx',
272
+ result: { /* 分析结果 */ },
273
+ error: null
274
+ },
275
+ // 分析结果合并到 issues
276
+ issues: [
277
+ ...state.issues,
278
+ ...newIssuesFromAnalysis
279
+ ]
280
+ }
281
+ ```
282
+
283
+ ### Output Files
284
+
285
+ - `${workDir}/diagnosis/gemini-analysis-${type}.json` - 原始分析结果
286
+ - `${workDir}/diagnosis/gemini-analysis-${type}.md` - 格式化报告
287
+
288
+ ## Post-Execution
289
+
290
+ 分析完成后:
291
+ 1. 解析 CLI 输出为结构化数据
292
+ 2. 提取新发现的 issues 合并到 state.issues
293
+ 3. 更新 recommendations 到 state
294
+ 4. 触发下一步动作 (通常是 action-generate-report 或 action-propose-fixes)
295
+
296
+ ## Error Handling
297
+
298
+ | Error | Recovery |
299
+ |-------|----------|
300
+ | CLI 超时 | 重试一次,仍失败则跳过 Gemini 分析 |
301
+ | 解析失败 | 保存原始输出,手动处理 |
302
+ | 无结果 | 标记为 skipped,继续流程 |
303
+
304
+ ## User Interaction
305
+
306
+ 如果 `state.analysis_type === null` 且无法自动推断,询问用户:
307
+
308
+ ```javascript
309
+ AskUserQuestion({
310
+ questions: [{
311
+ question: '请选择 Gemini 分析类型',
312
+ header: '分析类型',
313
+ options: [
314
+ { label: '问题根因分析', description: '深度分析用户描述的问题' },
315
+ { label: '架构审查', description: '评估整体架构设计' },
316
+ { label: '提示词优化', description: '分析和优化 phase 提示词' },
317
+ { label: '性能分析', description: '分析 Token 消耗和执行效率' }
318
+ ],
319
+ multiSelect: false
320
+ }]
321
+ });
322
+ ```