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,355 +1,355 @@
1
- # LLM Action Template
2
-
3
- LLM 动作模板,用于在 Skill 中集成 LLM 调用能力。
4
-
5
- ---
6
-
7
- ## 配置结构
8
-
9
- ```typescript
10
- interface LLMActionConfig {
11
- id: string; // "llm-analyze", "llm-generate"
12
- name: string; // "LLM Analysis"
13
- type: 'llm'; // 动作类型标识
14
-
15
- // LLM 工具配置
16
- tool: {
17
- primary: 'gemini' | 'qwen' | 'codex';
18
- fallback_chain: string[]; // ['gemini', 'qwen', 'codex']
19
- };
20
-
21
- // 执行模式
22
- mode: 'analysis' | 'write';
23
-
24
- // 提示词配置
25
- prompt: {
26
- template: string; // 提示词模板路径或内联
27
- variables: string[]; // 需要替换的变量
28
- };
29
-
30
- // 输入输出
31
- input: string[]; // 依赖的上下文文件
32
- output: string; // 输出文件路径
33
-
34
- // 超时配置
35
- timeout?: number; // 毫秒,默认 600000 (10min)
36
- }
37
- ```
38
-
39
- ---
40
-
41
- ## 模板生成函数
42
-
43
- ```javascript
44
- function generateLLMAction(config) {
45
- const { id, name, tool, mode, prompt, input, output, timeout = 600000 } = config;
46
-
47
- return `
48
- # ${name}
49
-
50
- ## Action: ${id}
51
-
52
- ### 执行逻辑
53
-
54
- \`\`\`javascript
55
- async function execute${toPascalCase(id)}(context) {
56
- const workDir = context.workDir;
57
- const state = context.state;
58
-
59
- // 1. 收集输入上下文
60
- const inputContext = ${JSON.stringify(input)}.map(f => {
61
- const path = \`\${workDir}/\${f}\`;
62
- return Read(path);
63
- }).join('\\n\\n---\\n\\n');
64
-
65
- // 2. 构建提示词
66
- const promptTemplate = \`${prompt.template}\`;
67
- const finalPrompt = promptTemplate
68
- ${prompt.variables.map(v => `.replace('{{${v}}}', context.${v} || '')`).join('\n ')};
69
-
70
- // 3. 执行 LLM 调用 (带 fallback)
71
- const tools = ['${tool.primary}', ${tool.fallback_chain.map(t => `'${t}'`).join(', ')}];
72
- let result = null;
73
- let usedTool = null;
74
-
75
- for (const t of tools) {
76
- try {
77
- result = await callLLM(t, finalPrompt, '${mode}', ${timeout});
78
- usedTool = t;
79
- break;
80
- } catch (error) {
81
- console.log(\`\${t} failed: \${error.message}, trying next...\`);
82
- }
83
- }
84
-
85
- if (!result) {
86
- throw new Error('All LLM tools failed');
87
- }
88
-
89
- // 4. 保存结果
90
- Write(\`\${workDir}/${output}\`, result);
91
-
92
- // 5. 更新状态
93
- state.llm_calls = (state.llm_calls || 0) + 1;
94
- state.last_llm_tool = usedTool;
95
-
96
- return {
97
- success: true,
98
- output: '${output}',
99
- tool_used: usedTool
100
- };
101
- }
102
-
103
- // LLM 调用封装
104
- async function callLLM(tool, prompt, mode, timeout) {
105
- const modeFlag = mode === 'write' ? '--mode write' : '--mode analysis';
106
-
107
- // 使用 CCW CLI 统一接口
108
- const command = \`ccw cli -p "\${escapePrompt(prompt)}" --tool \${tool} \${modeFlag}\`;
109
-
110
- const result = Bash({
111
- command,
112
- timeout,
113
- run_in_background: true // 异步执行
114
- });
115
-
116
- // 等待完成
117
- return await waitForResult(result.task_id, timeout);
118
- }
119
-
120
- function escapePrompt(prompt) {
121
- // 转义双引号和特殊字符
122
- return prompt.replace(/"/g, '\\\\"').replace(/\$/g, '\\\\$');
123
- }
124
- \`\`\`
125
-
126
- ### Prompt 模板
127
-
128
- \`\`\`
129
- ${prompt.template}
130
- \`\`\`
131
-
132
- ### 变量说明
133
-
134
- ${prompt.variables.map(v => `- \`{{${v}}}\`: ${v} 变量`).join('\n')}
135
- `;
136
- }
137
-
138
- function toPascalCase(str) {
139
- return str.split('-').map(s => s.charAt(0).toUpperCase() + s.slice(1)).join('');
140
- }
141
- ```
142
-
143
- ---
144
-
145
- ## 预置 LLM 动作模板
146
-
147
- ### 1. 代码分析动作
148
-
149
- ```yaml
150
- id: llm-code-analysis
151
- name: LLM Code Analysis
152
- type: llm
153
- tool:
154
- primary: gemini
155
- fallback_chain: [qwen]
156
- mode: analysis
157
- prompt:
158
- template: |
159
- PURPOSE: 分析代码结构和模式,提取关键设计特征
160
- TASK:
161
- • 识别主要模块和组件
162
- • 分析依赖关系
163
- • 提取设计模式
164
- • 评估代码质量
165
- MODE: analysis
166
- CONTEXT: {{code_context}}
167
- EXPECTED: JSON 格式的分析报告,包含 modules, dependencies, patterns, quality_score
168
- RULES: $(cat ~/.claude/workflows/cli-templates/protocols/analysis-protocol.md)
169
- variables:
170
- - code_context
171
- input:
172
- - collected-code.md
173
- output: analysis-report.json
174
- timeout: 900000
175
- ```
176
-
177
- ### 2. 文档生成动作
178
-
179
- ```yaml
180
- id: llm-doc-generation
181
- name: LLM Documentation Generation
182
- type: llm
183
- tool:
184
- primary: gemini
185
- fallback_chain: [qwen, codex]
186
- mode: write
187
- prompt:
188
- template: |
189
- PURPOSE: 根据分析结果生成高质量文档
190
- TASK:
191
- • 基于分析报告生成文档大纲
192
- • 填充各章节内容
193
- • 添加代码示例和说明
194
- • 生成 Mermaid 图表
195
- MODE: write
196
- CONTEXT: {{analysis_report}}
197
- EXPECTED: 完整的 Markdown 文档,包含目录、章节、图表
198
- RULES: $(cat ~/.claude/workflows/cli-templates/protocols/write-protocol.md)
199
- variables:
200
- - analysis_report
201
- input:
202
- - analysis-report.json
203
- output: generated-doc.md
204
- timeout: 1200000
205
- ```
206
-
207
- ### 3. 代码重构建议动作
208
-
209
- ```yaml
210
- id: llm-refactor-suggest
211
- name: LLM Refactoring Suggestions
212
- type: llm
213
- tool:
214
- primary: codex
215
- fallback_chain: [gemini]
216
- mode: analysis
217
- prompt:
218
- template: |
219
- PURPOSE: 分析代码并提供重构建议
220
- TASK:
221
- • 识别代码异味 (code smells)
222
- • 评估复杂度热点
223
- • 提出具体重构方案
224
- • 估算重构影响范围
225
- MODE: analysis
226
- CONTEXT: {{source_code}}
227
- EXPECTED: 重构建议列表,每项包含 location, issue, suggestion, impact
228
- RULES: $(cat ~/.claude/workflows/cli-templates/protocols/analysis-protocol.md)
229
- variables:
230
- - source_code
231
- input:
232
- - source-files.md
233
- output: refactor-suggestions.json
234
- timeout: 600000
235
- ```
236
-
237
- ---
238
-
239
- ## 使用示例
240
-
241
- ### 在 Phase 中使用 LLM 动作
242
-
243
- ```javascript
244
- // phases/02-llm-analysis.md
245
-
246
- const llmConfig = {
247
- id: 'llm-analyze-skill',
248
- name: 'Skill Pattern Analysis',
249
- type: 'llm',
250
- tool: {
251
- primary: 'gemini',
252
- fallback_chain: ['qwen']
253
- },
254
- mode: 'analysis',
255
- prompt: {
256
- template: `
257
- PURPOSE: 分析现有 Skill 的设计模式
258
- TASK:
259
- • 提取 Skill 结构规范
260
- • 识别 Phase 组织模式
261
- • 分析 Agent 调用模式
262
- MODE: analysis
263
- CONTEXT: {{skill_source}}
264
- EXPECTED: 结构化的设计模式分析
265
- `,
266
- variables: ['skill_source']
267
- },
268
- input: ['collected-skills.md'],
269
- output: 'skill-patterns.json'
270
- };
271
-
272
- // 执行
273
- const result = await executeLLMAction(llmConfig, {
274
- workDir: '.workflow/.scratchpad/skill-gen-xxx',
275
- skill_source: Read('.workflow/.scratchpad/skill-gen-xxx/collected-skills.md')
276
- });
277
- ```
278
-
279
- ### 在 Orchestrator 中调度 LLM 动作
280
-
281
- ```javascript
282
- // autonomous-orchestrator 中的 LLM 动作调度
283
-
284
- const actions = [
285
- { type: 'collect', priority: 100 },
286
- { type: 'llm', id: 'llm-analyze', priority: 90 }, // LLM 分析
287
- { type: 'process', priority: 80 },
288
- { type: 'llm', id: 'llm-generate', priority: 70 }, // LLM 生成
289
- { type: 'validate', priority: 60 }
290
- ];
291
-
292
- for (const action of sortByPriority(actions)) {
293
- if (action.type === 'llm') {
294
- const llmResult = await executeLLMAction(
295
- getLLMConfig(action.id),
296
- context
297
- );
298
- context.state[action.id] = llmResult;
299
- }
300
- }
301
- ```
302
-
303
- ---
304
-
305
- ## 错误处理
306
-
307
- ```javascript
308
- async function executeLLMActionWithRetry(config, context, maxRetries = 3) {
309
- let lastError = null;
310
-
311
- for (let attempt = 1; attempt <= maxRetries; attempt++) {
312
- try {
313
- return await executeLLMAction(config, context);
314
- } catch (error) {
315
- lastError = error;
316
- console.log(`Attempt ${attempt} failed: ${error.message}`);
317
-
318
- // 指数退避
319
- if (attempt < maxRetries) {
320
- await sleep(Math.pow(2, attempt) * 1000);
321
- }
322
- }
323
- }
324
-
325
- // 所有重试失败
326
- return {
327
- success: false,
328
- error: lastError.message,
329
- fallback: 'manual_review_required'
330
- };
331
- }
332
- ```
333
-
334
- ---
335
-
336
- ## 最佳实践
337
-
338
- 1. **选择合适的工具**
339
- - 分析任务:Gemini(大上下文)> Qwen
340
- - 生成任务:Codex(自主执行)> Gemini > Qwen
341
- - 代码修改:Codex > Gemini
342
-
343
- 2. **配置 Fallback Chain**
344
- - 总是配置至少一个 fallback
345
- - 考虑工具特性选择 fallback 顺序
346
-
347
- 3. **超时设置**
348
- - 分析任务:10-15 分钟
349
- - 生成任务:15-20 分钟
350
- - 复杂任务:20-60 分钟
351
-
352
- 4. **提示词设计**
353
- - 使用 PURPOSE/TASK/MODE/CONTEXT/EXPECTED/RULES 结构
354
- - 引用标准协议模板
355
- - 明确输出格式要求
1
+ # LLM Action Template
2
+
3
+ LLM 动作模板,用于在 Skill 中集成 LLM 调用能力。
4
+
5
+ ---
6
+
7
+ ## 配置结构
8
+
9
+ ```typescript
10
+ interface LLMActionConfig {
11
+ id: string; // "llm-analyze", "llm-generate"
12
+ name: string; // "LLM Analysis"
13
+ type: 'llm'; // 动作类型标识
14
+
15
+ // LLM 工具配置
16
+ tool: {
17
+ primary: 'gemini' | 'qwen' | 'codex';
18
+ fallback_chain: string[]; // ['gemini', 'qwen', 'codex']
19
+ };
20
+
21
+ // 执行模式
22
+ mode: 'analysis' | 'write';
23
+
24
+ // 提示词配置
25
+ prompt: {
26
+ template: string; // 提示词模板路径或内联
27
+ variables: string[]; // 需要替换的变量
28
+ };
29
+
30
+ // 输入输出
31
+ input: string[]; // 依赖的上下文文件
32
+ output: string; // 输出文件路径
33
+
34
+ // 超时配置
35
+ timeout?: number; // 毫秒,默认 600000 (10min)
36
+ }
37
+ ```
38
+
39
+ ---
40
+
41
+ ## 模板生成函数
42
+
43
+ ```javascript
44
+ function generateLLMAction(config) {
45
+ const { id, name, tool, mode, prompt, input, output, timeout = 600000 } = config;
46
+
47
+ return `
48
+ # ${name}
49
+
50
+ ## Action: ${id}
51
+
52
+ ### 执行逻辑
53
+
54
+ \`\`\`javascript
55
+ async function execute${toPascalCase(id)}(context) {
56
+ const workDir = context.workDir;
57
+ const state = context.state;
58
+
59
+ // 1. 收集输入上下文
60
+ const inputContext = ${JSON.stringify(input)}.map(f => {
61
+ const path = \`\${workDir}/\${f}\`;
62
+ return Read(path);
63
+ }).join('\\n\\n---\\n\\n');
64
+
65
+ // 2. 构建提示词
66
+ const promptTemplate = \`${prompt.template}\`;
67
+ const finalPrompt = promptTemplate
68
+ ${prompt.variables.map(v => `.replace('{{${v}}}', context.${v} || '')`).join('\n ')};
69
+
70
+ // 3. 执行 LLM 调用 (带 fallback)
71
+ const tools = ['${tool.primary}', ${tool.fallback_chain.map(t => `'${t}'`).join(', ')}];
72
+ let result = null;
73
+ let usedTool = null;
74
+
75
+ for (const t of tools) {
76
+ try {
77
+ result = await callLLM(t, finalPrompt, '${mode}', ${timeout});
78
+ usedTool = t;
79
+ break;
80
+ } catch (error) {
81
+ console.log(\`\${t} failed: \${error.message}, trying next...\`);
82
+ }
83
+ }
84
+
85
+ if (!result) {
86
+ throw new Error('All LLM tools failed');
87
+ }
88
+
89
+ // 4. 保存结果
90
+ Write(\`\${workDir}/${output}\`, result);
91
+
92
+ // 5. 更新状态
93
+ state.llm_calls = (state.llm_calls || 0) + 1;
94
+ state.last_llm_tool = usedTool;
95
+
96
+ return {
97
+ success: true,
98
+ output: '${output}',
99
+ tool_used: usedTool
100
+ };
101
+ }
102
+
103
+ // LLM 调用封装
104
+ async function callLLM(tool, prompt, mode, timeout) {
105
+ const modeFlag = mode === 'write' ? '--mode write' : '--mode analysis';
106
+
107
+ // 使用 CCW CLI 统一接口
108
+ const command = \`ccw cli -p "\${escapePrompt(prompt)}" --tool \${tool} \${modeFlag}\`;
109
+
110
+ const result = Bash({
111
+ command,
112
+ timeout,
113
+ run_in_background: true // 异步执行
114
+ });
115
+
116
+ // 等待完成
117
+ return await waitForResult(result.task_id, timeout);
118
+ }
119
+
120
+ function escapePrompt(prompt) {
121
+ // 转义双引号和特殊字符
122
+ return prompt.replace(/"/g, '\\\\"').replace(/\$/g, '\\\\$');
123
+ }
124
+ \`\`\`
125
+
126
+ ### Prompt 模板
127
+
128
+ \`\`\`
129
+ ${prompt.template}
130
+ \`\`\`
131
+
132
+ ### 变量说明
133
+
134
+ ${prompt.variables.map(v => `- \`{{${v}}}\`: ${v} 变量`).join('\n')}
135
+ `;
136
+ }
137
+
138
+ function toPascalCase(str) {
139
+ return str.split('-').map(s => s.charAt(0).toUpperCase() + s.slice(1)).join('');
140
+ }
141
+ ```
142
+
143
+ ---
144
+
145
+ ## 预置 LLM 动作模板
146
+
147
+ ### 1. 代码分析动作
148
+
149
+ ```yaml
150
+ id: llm-code-analysis
151
+ name: LLM Code Analysis
152
+ type: llm
153
+ tool:
154
+ primary: gemini
155
+ fallback_chain: [qwen]
156
+ mode: analysis
157
+ prompt:
158
+ template: |
159
+ PURPOSE: 分析代码结构和模式,提取关键设计特征
160
+ TASK:
161
+ • 识别主要模块和组件
162
+ • 分析依赖关系
163
+ • 提取设计模式
164
+ • 评估代码质量
165
+ MODE: analysis
166
+ CONTEXT: {{code_context}}
167
+ EXPECTED: JSON 格式的分析报告,包含 modules, dependencies, patterns, quality_score
168
+ RULES: $(cat ~/.claude/workflows/cli-templates/protocols/analysis-protocol.md)
169
+ variables:
170
+ - code_context
171
+ input:
172
+ - collected-code.md
173
+ output: analysis-report.json
174
+ timeout: 900000
175
+ ```
176
+
177
+ ### 2. 文档生成动作
178
+
179
+ ```yaml
180
+ id: llm-doc-generation
181
+ name: LLM Documentation Generation
182
+ type: llm
183
+ tool:
184
+ primary: gemini
185
+ fallback_chain: [qwen, codex]
186
+ mode: write
187
+ prompt:
188
+ template: |
189
+ PURPOSE: 根据分析结果生成高质量文档
190
+ TASK:
191
+ • 基于分析报告生成文档大纲
192
+ • 填充各章节内容
193
+ • 添加代码示例和说明
194
+ • 生成 Mermaid 图表
195
+ MODE: write
196
+ CONTEXT: {{analysis_report}}
197
+ EXPECTED: 完整的 Markdown 文档,包含目录、章节、图表
198
+ RULES: $(cat ~/.claude/workflows/cli-templates/protocols/write-protocol.md)
199
+ variables:
200
+ - analysis_report
201
+ input:
202
+ - analysis-report.json
203
+ output: generated-doc.md
204
+ timeout: 1200000
205
+ ```
206
+
207
+ ### 3. 代码重构建议动作
208
+
209
+ ```yaml
210
+ id: llm-refactor-suggest
211
+ name: LLM Refactoring Suggestions
212
+ type: llm
213
+ tool:
214
+ primary: codex
215
+ fallback_chain: [gemini]
216
+ mode: analysis
217
+ prompt:
218
+ template: |
219
+ PURPOSE: 分析代码并提供重构建议
220
+ TASK:
221
+ • 识别代码异味 (code smells)
222
+ • 评估复杂度热点
223
+ • 提出具体重构方案
224
+ • 估算重构影响范围
225
+ MODE: analysis
226
+ CONTEXT: {{source_code}}
227
+ EXPECTED: 重构建议列表,每项包含 location, issue, suggestion, impact
228
+ RULES: $(cat ~/.claude/workflows/cli-templates/protocols/analysis-protocol.md)
229
+ variables:
230
+ - source_code
231
+ input:
232
+ - source-files.md
233
+ output: refactor-suggestions.json
234
+ timeout: 600000
235
+ ```
236
+
237
+ ---
238
+
239
+ ## 使用示例
240
+
241
+ ### 在 Phase 中使用 LLM 动作
242
+
243
+ ```javascript
244
+ // phases/02-llm-analysis.md
245
+
246
+ const llmConfig = {
247
+ id: 'llm-analyze-skill',
248
+ name: 'Skill Pattern Analysis',
249
+ type: 'llm',
250
+ tool: {
251
+ primary: 'gemini',
252
+ fallback_chain: ['qwen']
253
+ },
254
+ mode: 'analysis',
255
+ prompt: {
256
+ template: `
257
+ PURPOSE: 分析现有 Skill 的设计模式
258
+ TASK:
259
+ • 提取 Skill 结构规范
260
+ • 识别 Phase 组织模式
261
+ • 分析 Agent 调用模式
262
+ MODE: analysis
263
+ CONTEXT: {{skill_source}}
264
+ EXPECTED: 结构化的设计模式分析
265
+ `,
266
+ variables: ['skill_source']
267
+ },
268
+ input: ['collected-skills.md'],
269
+ output: 'skill-patterns.json'
270
+ };
271
+
272
+ // 执行
273
+ const result = await executeLLMAction(llmConfig, {
274
+ workDir: '.workflow/.scratchpad/skill-gen-xxx',
275
+ skill_source: Read('.workflow/.scratchpad/skill-gen-xxx/collected-skills.md')
276
+ });
277
+ ```
278
+
279
+ ### 在 Orchestrator 中调度 LLM 动作
280
+
281
+ ```javascript
282
+ // autonomous-orchestrator 中的 LLM 动作调度
283
+
284
+ const actions = [
285
+ { type: 'collect', priority: 100 },
286
+ { type: 'llm', id: 'llm-analyze', priority: 90 }, // LLM 分析
287
+ { type: 'process', priority: 80 },
288
+ { type: 'llm', id: 'llm-generate', priority: 70 }, // LLM 生成
289
+ { type: 'validate', priority: 60 }
290
+ ];
291
+
292
+ for (const action of sortByPriority(actions)) {
293
+ if (action.type === 'llm') {
294
+ const llmResult = await executeLLMAction(
295
+ getLLMConfig(action.id),
296
+ context
297
+ );
298
+ context.state[action.id] = llmResult;
299
+ }
300
+ }
301
+ ```
302
+
303
+ ---
304
+
305
+ ## 错误处理
306
+
307
+ ```javascript
308
+ async function executeLLMActionWithRetry(config, context, maxRetries = 3) {
309
+ let lastError = null;
310
+
311
+ for (let attempt = 1; attempt <= maxRetries; attempt++) {
312
+ try {
313
+ return await executeLLMAction(config, context);
314
+ } catch (error) {
315
+ lastError = error;
316
+ console.log(`Attempt ${attempt} failed: ${error.message}`);
317
+
318
+ // 指数退避
319
+ if (attempt < maxRetries) {
320
+ await sleep(Math.pow(2, attempt) * 1000);
321
+ }
322
+ }
323
+ }
324
+
325
+ // 所有重试失败
326
+ return {
327
+ success: false,
328
+ error: lastError.message,
329
+ fallback: 'manual_review_required'
330
+ };
331
+ }
332
+ ```
333
+
334
+ ---
335
+
336
+ ## 最佳实践
337
+
338
+ 1. **选择合适的工具**
339
+ - 分析任务:Gemini(大上下文)> Qwen
340
+ - 生成任务:Codex(自主执行)> Gemini > Qwen
341
+ - 代码修改:Codex > Gemini
342
+
343
+ 2. **配置 Fallback Chain**
344
+ - 总是配置至少一个 fallback
345
+ - 考虑工具特性选择 fallback 顺序
346
+
347
+ 3. **超时设置**
348
+ - 分析任务:10-15 分钟
349
+ - 生成任务:15-20 分钟
350
+ - 复杂任务:20-60 分钟
351
+
352
+ 4. **提示词设计**
353
+ - 使用 PURPOSE/TASK/MODE/CONTEXT/EXPECTED/RULES 结构
354
+ - 引用标准协议模板
355
+ - 明确输出格式要求