claude-code-workflow 6.3.18 → 6.3.19

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 (822) hide show
  1. package/.claude/CLAUDE.md +8 -5
  2. package/.claude/agents/action-planning-agent.md +26 -2
  3. package/.claude/agents/code-developer.md +132 -43
  4. package/.claude/agents/debug-explore-agent.md +434 -0
  5. package/.claude/agents/test-fix-agent.md +14 -0
  6. package/.claude/commands/issue/discover.md +41 -0
  7. package/.claude/commands/issue/execute.md +200 -19
  8. package/.claude/commands/issue/new.md +1 -1
  9. package/.claude/commands/issue/plan.md +6 -1
  10. package/.claude/commands/issue/queue.md +94 -39
  11. package/.claude/commands/memory/swagger-docs.md +773 -0
  12. package/.claude/commands/workflow/brainstorm/auto-parallel.md +21 -21
  13. package/.claude/commands/workflow/execute.md +54 -34
  14. package/.claude/commands/workflow/lite-execute.md +48 -164
  15. package/.claude/commands/workflow/lite-fix.md +4 -4
  16. package/.claude/commands/workflow/lite-plan.md +5 -5
  17. package/.claude/commands/workflow/plan.md +27 -27
  18. package/.claude/commands/workflow/review.md +42 -17
  19. package/.claude/commands/workflow/tdd-plan.md +25 -25
  20. package/.claude/commands/workflow/test-fix-gen.md +10 -10
  21. package/.claude/commands/workflow/test-gen.md +14 -14
  22. package/.claude/commands/workflow/ui-design/explore-auto.md +21 -21
  23. package/.claude/commands/workflow/ui-design/imitate-auto.md +24 -24
  24. package/.claude/skills/_shared/SKILL-DESIGN-SPEC.md +693 -0
  25. package/.claude/skills/ccw/SKILL.md +462 -0
  26. package/.claude/skills/ccw/index/command-capabilities.json +127 -0
  27. package/.claude/skills/ccw/index/intent-rules.json +136 -0
  28. package/.claude/skills/ccw/index/workflow-chains.json +451 -0
  29. package/.claude/skills/ccw/phases/actions/bugfix.md +218 -0
  30. package/.claude/skills/ccw/phases/actions/coupled.md +194 -0
  31. package/.claude/skills/ccw/phases/actions/docs.md +93 -0
  32. package/.claude/skills/ccw/phases/actions/full.md +154 -0
  33. package/.claude/skills/ccw/phases/actions/issue.md +201 -0
  34. package/.claude/skills/ccw/phases/actions/rapid.md +104 -0
  35. package/.claude/skills/ccw/phases/actions/review-fix.md +84 -0
  36. package/.claude/skills/ccw/phases/actions/tdd.md +66 -0
  37. package/.claude/skills/ccw/phases/actions/ui.md +79 -0
  38. package/.claude/skills/ccw/phases/orchestrator.md +435 -0
  39. package/.claude/skills/ccw/specs/intent-classification.md +336 -0
  40. package/.claude/skills/ccw-help/SKILL.md +177 -0
  41. package/.claude/skills/ccw-help/index/all-agents.json +82 -0
  42. package/.claude/skills/{command-guide → ccw-help}/index/all-commands.json +183 -73
  43. package/.claude/skills/{command-guide → ccw-help}/index/by-category.json +187 -73
  44. package/.claude/skills/{command-guide → ccw-help}/index/by-use-case.json +295 -185
  45. package/.claude/skills/{command-guide → ccw-help}/index/command-relationships.json +19 -166
  46. package/.claude/skills/{command-guide → ccw-help}/index/essential-commands.json +10 -10
  47. package/.claude/skills/ccw-help/scripts/analyze_commands.py +337 -0
  48. package/.claude/skills/code-reviewer/README.md +340 -0
  49. package/.claude/skills/code-reviewer/SKILL.md +308 -0
  50. package/.claude/skills/code-reviewer/phases/01-code-discovery.md +246 -0
  51. package/.claude/skills/code-reviewer/phases/02-security-analysis.md +442 -0
  52. package/.claude/skills/code-reviewer/phases/03-best-practices-review.md +36 -0
  53. package/.claude/skills/code-reviewer/phases/04-report-generation.md +278 -0
  54. package/.claude/skills/code-reviewer/specs/best-practices-requirements.md +346 -0
  55. package/.claude/skills/code-reviewer/specs/quality-standards.md +252 -0
  56. package/.claude/skills/code-reviewer/specs/security-requirements.md +243 -0
  57. package/.claude/skills/code-reviewer/templates/best-practice-finding.md +234 -0
  58. package/.claude/skills/code-reviewer/templates/report-template.md +316 -0
  59. package/.claude/skills/code-reviewer/templates/security-finding.md +161 -0
  60. package/.claude/skills/skill-generator/SKILL.md +187 -0
  61. package/.claude/skills/skill-generator/phases/01-requirements-discovery.md +239 -0
  62. package/.claude/skills/skill-generator/phases/02-structure-generation.md +207 -0
  63. package/.claude/skills/skill-generator/phases/03-phase-generation.md +802 -0
  64. package/.claude/skills/skill-generator/phases/04-specs-templates.md +328 -0
  65. package/.claude/skills/skill-generator/phases/05-validation.md +334 -0
  66. package/.claude/skills/skill-generator/specs/cli-integration.md +448 -0
  67. package/.claude/skills/skill-generator/specs/execution-modes.md +396 -0
  68. package/.claude/skills/skill-generator/specs/scripting-integration.md +265 -0
  69. package/.claude/skills/skill-generator/specs/skill-requirements.md +466 -0
  70. package/.claude/skills/skill-generator/templates/autonomous-action.md +517 -0
  71. package/.claude/skills/skill-generator/templates/autonomous-orchestrator.md +276 -0
  72. package/.claude/skills/skill-generator/templates/code-analysis-action.md +503 -0
  73. package/.claude/skills/skill-generator/templates/llm-action.md +355 -0
  74. package/.claude/skills/skill-generator/templates/script-bash.md +277 -0
  75. package/.claude/skills/skill-generator/templates/script-python.md +198 -0
  76. package/.claude/skills/skill-generator/templates/sequential-phase.md +441 -0
  77. package/.claude/skills/skill-generator/templates/skill-md.md +156 -0
  78. package/.claude/workflows/chinese-response.md +15 -28
  79. package/.claude/workflows/cli-templates/prompts/documentation/swagger-api.txt +266 -0
  80. package/.claude/workflows/cli-tools-usage.md +221 -177
  81. package/.claude/workflows/windows-platform.md +13 -10
  82. package/.codex/prompts/issue-execute.md +305 -82
  83. package/.codex/prompts/issue-queue.md +22 -0
  84. package/.codex/prompts/lite-execute.md +36 -11
  85. package/README.md +309 -305
  86. package/ccw/README.md +10 -4
  87. package/ccw/dist/cli.d.ts.map +1 -1
  88. package/ccw/dist/cli.js +4 -1
  89. package/ccw/dist/cli.js.map +1 -1
  90. package/ccw/dist/commands/cli.d.ts.map +1 -1
  91. package/ccw/dist/commands/cli.js +131 -34
  92. package/ccw/dist/commands/cli.js.map +1 -1
  93. package/ccw/dist/commands/issue.d.ts +152 -0
  94. package/ccw/dist/commands/issue.d.ts.map +1 -1
  95. package/ccw/dist/commands/issue.js +550 -85
  96. package/ccw/dist/commands/issue.js.map +1 -1
  97. package/ccw/dist/commands/serve.d.ts +1 -0
  98. package/ccw/dist/commands/serve.d.ts.map +1 -1
  99. package/ccw/dist/commands/serve.js +12 -5
  100. package/ccw/dist/commands/serve.js.map +1 -1
  101. package/ccw/dist/commands/stop.d.ts.map +1 -1
  102. package/ccw/dist/commands/stop.js +29 -5
  103. package/ccw/dist/commands/stop.js.map +1 -1
  104. package/ccw/dist/commands/tool.d.ts.map +1 -1
  105. package/ccw/dist/commands/tool.js +19 -2
  106. package/ccw/dist/commands/tool.js.map +1 -1
  107. package/ccw/dist/commands/view.d.ts +1 -0
  108. package/ccw/dist/commands/view.d.ts.map +1 -1
  109. package/ccw/dist/commands/view.js +10 -3
  110. package/ccw/dist/commands/view.js.map +1 -1
  111. package/ccw/dist/config/cli-settings-manager.d.ts +86 -0
  112. package/ccw/dist/config/cli-settings-manager.d.ts.map +1 -0
  113. package/ccw/dist/config/cli-settings-manager.js +392 -0
  114. package/ccw/dist/config/cli-settings-manager.js.map +1 -0
  115. package/ccw/dist/config/litellm-api-config-manager.d.ts +71 -5
  116. package/ccw/dist/config/litellm-api-config-manager.d.ts.map +1 -1
  117. package/ccw/dist/config/litellm-api-config-manager.js +290 -20
  118. package/ccw/dist/config/litellm-api-config-manager.js.map +1 -1
  119. package/ccw/dist/core/auth/csrf-manager.d.ts +18 -0
  120. package/ccw/dist/core/auth/csrf-manager.d.ts.map +1 -0
  121. package/ccw/dist/core/auth/csrf-manager.js +80 -0
  122. package/ccw/dist/core/auth/csrf-manager.js.map +1 -0
  123. package/ccw/dist/core/auth/csrf-middleware.d.ts +8 -0
  124. package/ccw/dist/core/auth/csrf-middleware.d.ts.map +1 -0
  125. package/ccw/dist/core/auth/csrf-middleware.js +141 -0
  126. package/ccw/dist/core/auth/csrf-middleware.js.map +1 -0
  127. package/ccw/dist/core/auth/middleware.d.ts +15 -0
  128. package/ccw/dist/core/auth/middleware.d.ts.map +1 -0
  129. package/ccw/dist/core/auth/middleware.js +76 -0
  130. package/ccw/dist/core/auth/middleware.js.map +1 -0
  131. package/ccw/dist/core/auth/token-manager.d.ts +41 -0
  132. package/ccw/dist/core/auth/token-manager.d.ts.map +1 -0
  133. package/ccw/dist/core/auth/token-manager.js +171 -0
  134. package/ccw/dist/core/auth/token-manager.js.map +1 -0
  135. package/ccw/dist/core/cache-manager.d.ts +6 -6
  136. package/ccw/dist/core/cache-manager.d.ts.map +1 -1
  137. package/ccw/dist/core/cache-manager.js +70 -48
  138. package/ccw/dist/core/cache-manager.js.map +1 -1
  139. package/ccw/dist/core/claude-freshness.d.ts.map +1 -1
  140. package/ccw/dist/core/claude-freshness.js +23 -3
  141. package/ccw/dist/core/claude-freshness.js.map +1 -1
  142. package/ccw/dist/core/core-memory-store.d.ts.map +1 -1
  143. package/ccw/dist/core/core-memory-store.js +2 -1
  144. package/ccw/dist/core/core-memory-store.js.map +1 -1
  145. package/ccw/dist/core/cors.d.ts +3 -0
  146. package/ccw/dist/core/cors.d.ts.map +1 -0
  147. package/ccw/dist/core/cors.js +10 -0
  148. package/ccw/dist/core/cors.js.map +1 -0
  149. package/ccw/dist/core/dashboard-generator-patch.js +0 -1
  150. package/ccw/dist/core/dashboard-generator-patch.js.map +1 -1
  151. package/ccw/dist/core/dashboard-generator.d.ts.map +1 -1
  152. package/ccw/dist/core/dashboard-generator.js +417 -416
  153. package/ccw/dist/core/dashboard-generator.js.map +1 -1
  154. package/ccw/dist/core/data-aggregator.js +2 -2
  155. package/ccw/dist/core/data-aggregator.js.map +1 -1
  156. package/ccw/dist/core/lite-scanner.d.ts +1 -1
  157. package/ccw/dist/core/lite-scanner.d.ts.map +1 -1
  158. package/ccw/dist/core/lite-scanner.js +130 -127
  159. package/ccw/dist/core/lite-scanner.js.map +1 -1
  160. package/ccw/dist/core/routes/auth-routes.d.ts +12 -0
  161. package/ccw/dist/core/routes/auth-routes.d.ts.map +1 -0
  162. package/ccw/dist/core/routes/auth-routes.js +80 -0
  163. package/ccw/dist/core/routes/auth-routes.js.map +1 -0
  164. package/ccw/dist/core/routes/ccw-routes.d.ts +1 -14
  165. package/ccw/dist/core/routes/ccw-routes.d.ts.map +1 -1
  166. package/ccw/dist/core/routes/ccw-routes.js +9 -4
  167. package/ccw/dist/core/routes/ccw-routes.js.map +1 -1
  168. package/ccw/dist/core/routes/claude-routes.d.ts +1 -14
  169. package/ccw/dist/core/routes/claude-routes.d.ts.map +1 -1
  170. package/ccw/dist/core/routes/claude-routes.js +98 -39
  171. package/ccw/dist/core/routes/claude-routes.js.map +1 -1
  172. package/ccw/dist/core/routes/cli-routes.d.ts +14 -12
  173. package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
  174. package/ccw/dist/core/routes/cli-routes.js +122 -43
  175. package/ccw/dist/core/routes/cli-routes.js.map +1 -1
  176. package/ccw/dist/core/routes/cli-settings-routes.d.ts +11 -0
  177. package/ccw/dist/core/routes/cli-settings-routes.d.ts.map +1 -0
  178. package/ccw/dist/core/routes/cli-settings-routes.js +204 -0
  179. package/ccw/dist/core/routes/cli-settings-routes.js.map +1 -0
  180. package/ccw/dist/core/routes/codexlens/config-handlers.d.ts +6 -0
  181. package/ccw/dist/core/routes/codexlens/config-handlers.d.ts.map +1 -0
  182. package/ccw/dist/core/routes/codexlens/config-handlers.js +1195 -0
  183. package/ccw/dist/core/routes/codexlens/config-handlers.js.map +1 -0
  184. package/ccw/dist/core/routes/codexlens/index-handlers.d.ts +10 -0
  185. package/ccw/dist/core/routes/codexlens/index-handlers.d.ts.map +1 -0
  186. package/ccw/dist/core/routes/codexlens/index-handlers.js +322 -0
  187. package/ccw/dist/core/routes/codexlens/index-handlers.js.map +1 -0
  188. package/ccw/dist/core/routes/codexlens/semantic-handlers.d.ts +6 -0
  189. package/ccw/dist/core/routes/codexlens/semantic-handlers.d.ts.map +1 -0
  190. package/ccw/dist/core/routes/codexlens/semantic-handlers.js +865 -0
  191. package/ccw/dist/core/routes/codexlens/semantic-handlers.js.map +1 -0
  192. package/ccw/dist/core/routes/codexlens/utils.d.ts +23 -0
  193. package/ccw/dist/core/routes/codexlens/utils.d.ts.map +1 -0
  194. package/ccw/dist/core/routes/codexlens/utils.js +85 -0
  195. package/ccw/dist/core/routes/codexlens/utils.js.map +1 -0
  196. package/ccw/dist/core/routes/codexlens/watcher-handlers.d.ts +13 -0
  197. package/ccw/dist/core/routes/codexlens/watcher-handlers.d.ts.map +1 -0
  198. package/ccw/dist/core/routes/codexlens/watcher-handlers.js +235 -0
  199. package/ccw/dist/core/routes/codexlens/watcher-handlers.js.map +1 -0
  200. package/ccw/dist/core/routes/codexlens-routes.d.ts +2 -11
  201. package/ccw/dist/core/routes/codexlens-routes.d.ts.map +1 -1
  202. package/ccw/dist/core/routes/codexlens-routes.js +10 -981
  203. package/ccw/dist/core/routes/codexlens-routes.js.map +1 -1
  204. package/ccw/dist/core/routes/discovery-routes.d.ts +1 -35
  205. package/ccw/dist/core/routes/discovery-routes.d.ts.map +1 -1
  206. package/ccw/dist/core/routes/discovery-routes.js +25 -0
  207. package/ccw/dist/core/routes/discovery-routes.js.map +1 -1
  208. package/ccw/dist/core/routes/files-routes.d.ts +1 -14
  209. package/ccw/dist/core/routes/files-routes.d.ts.map +1 -1
  210. package/ccw/dist/core/routes/files-routes.js +57 -14
  211. package/ccw/dist/core/routes/files-routes.js.map +1 -1
  212. package/ccw/dist/core/routes/graph-routes.d.ts +1 -14
  213. package/ccw/dist/core/routes/graph-routes.d.ts.map +1 -1
  214. package/ccw/dist/core/routes/graph-routes.js +36 -37
  215. package/ccw/dist/core/routes/graph-routes.js.map +1 -1
  216. package/ccw/dist/core/routes/help-routes.d.ts +1 -14
  217. package/ccw/dist/core/routes/help-routes.d.ts.map +1 -1
  218. package/ccw/dist/core/routes/help-routes.js +5 -0
  219. package/ccw/dist/core/routes/help-routes.js.map +1 -1
  220. package/ccw/dist/core/routes/hooks-routes.d.ts +4 -14
  221. package/ccw/dist/core/routes/hooks-routes.d.ts.map +1 -1
  222. package/ccw/dist/core/routes/hooks-routes.js +43 -21
  223. package/ccw/dist/core/routes/hooks-routes.js.map +1 -1
  224. package/ccw/dist/core/routes/issue-routes.d.ts +1 -34
  225. package/ccw/dist/core/routes/issue-routes.d.ts.map +1 -1
  226. package/ccw/dist/core/routes/issue-routes.js +24 -0
  227. package/ccw/dist/core/routes/issue-routes.js.map +1 -1
  228. package/ccw/dist/core/routes/litellm-api-routes.d.ts +1 -14
  229. package/ccw/dist/core/routes/litellm-api-routes.d.ts.map +1 -1
  230. package/ccw/dist/core/routes/litellm-api-routes.js +505 -48
  231. package/ccw/dist/core/routes/litellm-api-routes.js.map +1 -1
  232. package/ccw/dist/core/routes/litellm-routes.d.ts +1 -14
  233. package/ccw/dist/core/routes/litellm-routes.d.ts.map +1 -1
  234. package/ccw/dist/core/routes/litellm-routes.js +28 -11
  235. package/ccw/dist/core/routes/litellm-routes.js.map +1 -1
  236. package/ccw/dist/core/routes/mcp-routes.d.ts +1 -14
  237. package/ccw/dist/core/routes/mcp-routes.d.ts.map +1 -1
  238. package/ccw/dist/core/routes/mcp-routes.js +99 -30
  239. package/ccw/dist/core/routes/mcp-routes.js.map +1 -1
  240. package/ccw/dist/core/routes/mcp-templates-db.d.ts.map +1 -1
  241. package/ccw/dist/core/routes/mcp-templates-db.js +30 -31
  242. package/ccw/dist/core/routes/mcp-templates-db.js.map +1 -1
  243. package/ccw/dist/core/routes/memory-routes.d.ts.map +1 -1
  244. package/ccw/dist/core/routes/memory-routes.js +74 -24
  245. package/ccw/dist/core/routes/memory-routes.js.map +1 -1
  246. package/ccw/dist/core/routes/nav-status-routes.d.ts +3 -0
  247. package/ccw/dist/core/routes/nav-status-routes.d.ts.map +1 -0
  248. package/ccw/dist/core/routes/nav-status-routes.js +217 -0
  249. package/ccw/dist/core/routes/nav-status-routes.js.map +1 -0
  250. package/ccw/dist/core/routes/rules-routes.d.ts +1 -14
  251. package/ccw/dist/core/routes/rules-routes.d.ts.map +1 -1
  252. package/ccw/dist/core/routes/rules-routes.js +481 -58
  253. package/ccw/dist/core/routes/rules-routes.js.map +1 -1
  254. package/ccw/dist/core/routes/session-routes.d.ts +1 -14
  255. package/ccw/dist/core/routes/session-routes.d.ts.map +1 -1
  256. package/ccw/dist/core/routes/session-routes.js +15 -3
  257. package/ccw/dist/core/routes/session-routes.js.map +1 -1
  258. package/ccw/dist/core/routes/skills-routes.d.ts +1 -14
  259. package/ccw/dist/core/routes/skills-routes.d.ts.map +1 -1
  260. package/ccw/dist/core/routes/skills-routes.js +394 -112
  261. package/ccw/dist/core/routes/skills-routes.js.map +1 -1
  262. package/ccw/dist/core/routes/status-routes.d.ts +1 -14
  263. package/ccw/dist/core/routes/status-routes.d.ts.map +1 -1
  264. package/ccw/dist/core/routes/status-routes.js +4 -0
  265. package/ccw/dist/core/routes/status-routes.js.map +1 -1
  266. package/ccw/dist/core/routes/system-routes.d.ts +4 -10
  267. package/ccw/dist/core/routes/system-routes.d.ts.map +1 -1
  268. package/ccw/dist/core/routes/system-routes.js +6 -4
  269. package/ccw/dist/core/routes/system-routes.js.map +1 -1
  270. package/ccw/dist/core/routes/types.d.ts +19 -0
  271. package/ccw/dist/core/routes/types.d.ts.map +1 -0
  272. package/ccw/dist/core/routes/types.js +2 -0
  273. package/ccw/dist/core/routes/types.js.map +1 -0
  274. package/ccw/dist/core/server.d.ts.map +1 -1
  275. package/ccw/dist/core/server.js +201 -29
  276. package/ccw/dist/core/server.js.map +1 -1
  277. package/ccw/dist/core/services/api-key-tester.d.ts +31 -0
  278. package/ccw/dist/core/services/api-key-tester.d.ts.map +1 -0
  279. package/ccw/dist/core/services/api-key-tester.js +106 -0
  280. package/ccw/dist/core/services/api-key-tester.js.map +1 -0
  281. package/ccw/dist/core/services/health-check-service.d.ts +82 -0
  282. package/ccw/dist/core/services/health-check-service.d.ts.map +1 -0
  283. package/ccw/dist/core/services/health-check-service.js +271 -0
  284. package/ccw/dist/core/services/health-check-service.js.map +1 -0
  285. package/ccw/dist/core/websocket.d.ts +9 -7
  286. package/ccw/dist/core/websocket.d.ts.map +1 -1
  287. package/ccw/dist/core/websocket.js +9 -4
  288. package/ccw/dist/core/websocket.js.map +1 -1
  289. package/ccw/dist/tools/claude-cli-tools.d.ts +152 -28
  290. package/ccw/dist/tools/claude-cli-tools.d.ts.map +1 -1
  291. package/ccw/dist/tools/claude-cli-tools.js +490 -100
  292. package/ccw/dist/tools/claude-cli-tools.js.map +1 -1
  293. package/ccw/dist/tools/cli-config-manager.d.ts +24 -8
  294. package/ccw/dist/tools/cli-config-manager.d.ts.map +1 -1
  295. package/ccw/dist/tools/cli-config-manager.js +76 -156
  296. package/ccw/dist/tools/cli-config-manager.js.map +1 -1
  297. package/ccw/dist/tools/cli-executor-core.d.ts +85 -0
  298. package/ccw/dist/tools/cli-executor-core.d.ts.map +1 -0
  299. package/ccw/dist/tools/cli-executor-core.js +1310 -0
  300. package/ccw/dist/tools/cli-executor-core.js.map +1 -0
  301. package/ccw/dist/tools/cli-executor-state.d.ts +241 -0
  302. package/ccw/dist/tools/cli-executor-state.d.ts.map +1 -0
  303. package/ccw/dist/tools/cli-executor-state.js +392 -0
  304. package/ccw/dist/tools/cli-executor-state.js.map +1 -0
  305. package/ccw/dist/tools/cli-executor-utils.d.ts +36 -0
  306. package/ccw/dist/tools/cli-executor-utils.d.ts.map +1 -0
  307. package/ccw/dist/tools/cli-executor-utils.js +298 -0
  308. package/ccw/dist/tools/cli-executor-utils.js.map +1 -0
  309. package/ccw/dist/tools/cli-executor.d.ts +3 -377
  310. package/ccw/dist/tools/cli-executor.d.ts.map +1 -1
  311. package/ccw/dist/tools/cli-executor.js +3 -1884
  312. package/ccw/dist/tools/cli-executor.js.map +1 -1
  313. package/ccw/dist/tools/cli-history-store.d.ts +2 -0
  314. package/ccw/dist/tools/cli-history-store.d.ts.map +1 -1
  315. package/ccw/dist/tools/cli-history-store.js.map +1 -1
  316. package/ccw/dist/tools/cli-output-converter.d.ts +192 -0
  317. package/ccw/dist/tools/cli-output-converter.d.ts.map +1 -0
  318. package/ccw/dist/tools/cli-output-converter.js +1047 -0
  319. package/ccw/dist/tools/cli-output-converter.js.map +1 -0
  320. package/ccw/dist/tools/cli-prompt-builder.d.ts +113 -0
  321. package/ccw/dist/tools/cli-prompt-builder.d.ts.map +1 -0
  322. package/ccw/dist/tools/cli-prompt-builder.js +363 -0
  323. package/ccw/dist/tools/cli-prompt-builder.js.map +1 -0
  324. package/ccw/dist/tools/codex-lens.d.ts +15 -1
  325. package/ccw/dist/tools/codex-lens.d.ts.map +1 -1
  326. package/ccw/dist/tools/codex-lens.js +289 -55
  327. package/ccw/dist/tools/codex-lens.js.map +1 -1
  328. package/ccw/dist/tools/detect-changed-modules.d.ts.map +1 -1
  329. package/ccw/dist/tools/detect-changed-modules.js +22 -4
  330. package/ccw/dist/tools/detect-changed-modules.js.map +1 -1
  331. package/ccw/dist/tools/index.d.ts.map +1 -1
  332. package/ccw/dist/tools/index.js +2 -0
  333. package/ccw/dist/tools/index.js.map +1 -1
  334. package/ccw/dist/tools/litellm-client.d.ts.map +1 -1
  335. package/ccw/dist/tools/litellm-client.js +10 -4
  336. package/ccw/dist/tools/litellm-client.js.map +1 -1
  337. package/ccw/dist/tools/litellm-executor.d.ts +2 -4
  338. package/ccw/dist/tools/litellm-executor.d.ts.map +1 -1
  339. package/ccw/dist/tools/litellm-executor.js +39 -8
  340. package/ccw/dist/tools/litellm-executor.js.map +1 -1
  341. package/ccw/dist/tools/native-session-discovery.d.ts +2 -0
  342. package/ccw/dist/tools/native-session-discovery.d.ts.map +1 -1
  343. package/ccw/dist/tools/native-session-discovery.js +197 -1
  344. package/ccw/dist/tools/native-session-discovery.js.map +1 -1
  345. package/ccw/dist/tools/session-manager.d.ts.map +1 -1
  346. package/ccw/dist/tools/session-manager.js +79 -0
  347. package/ccw/dist/tools/session-manager.js.map +1 -1
  348. package/ccw/dist/tools/skill-context-loader.d.ts +15 -0
  349. package/ccw/dist/tools/skill-context-loader.d.ts.map +1 -0
  350. package/ccw/dist/tools/skill-context-loader.js +198 -0
  351. package/ccw/dist/tools/skill-context-loader.js.map +1 -0
  352. package/ccw/dist/tools/smart-search.d.ts +8 -3
  353. package/ccw/dist/tools/smart-search.d.ts.map +1 -1
  354. package/ccw/dist/tools/smart-search.js +378 -75
  355. package/ccw/dist/tools/smart-search.js.map +1 -1
  356. package/ccw/dist/types/cli-settings.d.ts +86 -0
  357. package/ccw/dist/types/cli-settings.d.ts.map +1 -0
  358. package/ccw/dist/types/cli-settings.js +54 -0
  359. package/ccw/dist/types/cli-settings.js.map +1 -0
  360. package/ccw/dist/types/litellm-api-config.d.ts +40 -1
  361. package/ccw/dist/types/litellm-api-config.d.ts.map +1 -1
  362. package/ccw/dist/utils/exec-constants.d.ts +25 -0
  363. package/ccw/dist/utils/exec-constants.d.ts.map +1 -0
  364. package/ccw/dist/utils/exec-constants.js +25 -0
  365. package/ccw/dist/utils/exec-constants.js.map +1 -0
  366. package/ccw/dist/utils/path-resolver.d.ts +1 -0
  367. package/ccw/dist/utils/path-resolver.d.ts.map +1 -1
  368. package/ccw/dist/utils/path-resolver.js +48 -3
  369. package/ccw/dist/utils/path-resolver.js.map +1 -1
  370. package/ccw/dist/utils/path-validator.d.ts.map +1 -1
  371. package/ccw/dist/utils/path-validator.js +25 -6
  372. package/ccw/dist/utils/path-validator.js.map +1 -1
  373. package/ccw/dist/utils/python-utils.d.ts.map +1 -1
  374. package/ccw/dist/utils/python-utils.js +27 -7
  375. package/ccw/dist/utils/python-utils.js.map +1 -1
  376. package/ccw/dist/utils/shell-escape.d.ts +8 -0
  377. package/ccw/dist/utils/shell-escape.d.ts.map +1 -0
  378. package/ccw/dist/utils/shell-escape.js +24 -0
  379. package/ccw/dist/utils/shell-escape.js.map +1 -0
  380. package/ccw/dist/utils/uv-manager.d.ts +167 -0
  381. package/ccw/dist/utils/uv-manager.d.ts.map +1 -0
  382. package/ccw/dist/utils/uv-manager.js +644 -0
  383. package/ccw/dist/utils/uv-manager.js.map +1 -0
  384. package/ccw/src/cli.ts +4 -1
  385. package/ccw/src/commands/cli.ts +132 -34
  386. package/ccw/src/commands/issue.ts +605 -91
  387. package/ccw/src/commands/serve.ts +15 -5
  388. package/ccw/src/commands/stop.ts +32 -5
  389. package/ccw/src/commands/tool.ts +17 -2
  390. package/ccw/src/commands/view.ts +13 -3
  391. package/ccw/src/config/cli-settings-manager.ts +460 -0
  392. package/ccw/src/config/litellm-api-config-manager.ts +392 -57
  393. package/ccw/src/core/auth/csrf-manager.ts +104 -0
  394. package/ccw/src/core/auth/csrf-middleware.ts +159 -0
  395. package/ccw/src/core/auth/middleware.ts +94 -0
  396. package/ccw/src/core/auth/token-manager.ts +219 -0
  397. package/ccw/src/core/cache-manager.ts +64 -52
  398. package/ccw/src/core/claude-freshness.ts +26 -6
  399. package/ccw/src/core/core-memory-store.ts +2 -1
  400. package/ccw/src/core/cors.ts +10 -0
  401. package/ccw/src/core/dashboard-generator-patch.ts +47 -48
  402. package/ccw/src/core/dashboard-generator.ts +797 -744
  403. package/ccw/src/core/data-aggregator.ts +667 -667
  404. package/ccw/src/core/lite-scanner.ts +156 -140
  405. package/ccw/src/core/routes/auth-routes.ts +98 -0
  406. package/ccw/src/core/routes/ccw-routes.ts +10 -20
  407. package/ccw/src/core/routes/claude-routes.ts +101 -51
  408. package/ccw/src/core/routes/cli-routes.ts +152 -55
  409. package/ccw/src/core/routes/cli-settings-routes.ts +232 -0
  410. package/ccw/src/core/routes/codexlens/README.md +37 -0
  411. package/ccw/src/core/routes/codexlens/config-handlers.ts +1269 -0
  412. package/ccw/src/core/routes/codexlens/index-handlers.ts +354 -0
  413. package/ccw/src/core/routes/codexlens/semantic-handlers.ts +931 -0
  414. package/ccw/src/core/routes/codexlens/utils.ts +96 -0
  415. package/ccw/src/core/routes/codexlens/watcher-handlers.ts +265 -0
  416. package/ccw/src/core/routes/codexlens-routes.ts +11 -1044
  417. package/ccw/src/core/routes/discovery-routes.ts +1 -12
  418. package/ccw/src/core/routes/files-routes.ts +112 -40
  419. package/ccw/src/core/routes/graph-routes.ts +39 -46
  420. package/ccw/src/core/routes/help-routes.ts +2 -12
  421. package/ccw/src/core/routes/hooks-routes.ts +83 -44
  422. package/ccw/src/core/routes/issue-routes.ts +1 -12
  423. package/ccw/src/core/routes/litellm-api-routes.ts +566 -60
  424. package/ccw/src/core/routes/litellm-routes.ts +35 -27
  425. package/ccw/src/core/routes/mcp-routes.ts +157 -60
  426. package/ccw/src/core/routes/mcp-routes.ts.backup +549 -550
  427. package/ccw/src/core/routes/mcp-templates-db.ts +267 -268
  428. package/ccw/src/core/routes/memory-routes.ts +76 -22
  429. package/ccw/src/core/routes/nav-status-routes.ts +231 -0
  430. package/ccw/src/core/routes/rules-routes.ts +600 -81
  431. package/ccw/src/core/routes/session-routes.ts +28 -22
  432. package/ccw/src/core/routes/skills-routes.ts +452 -132
  433. package/ccw/src/core/routes/status-routes.ts +1 -12
  434. package/ccw/src/core/routes/system-routes.ts +15 -22
  435. package/ccw/src/core/routes/types.ts +25 -0
  436. package/ccw/src/core/server.ts +651 -468
  437. package/ccw/src/core/services/api-key-tester.ts +137 -0
  438. package/ccw/src/core/services/health-check-service.ts +340 -0
  439. package/ccw/src/core/websocket.ts +20 -12
  440. package/ccw/src/templates/dashboard-css/01-base.css +109 -0
  441. package/ccw/src/templates/dashboard-css/10-cli-status.css +202 -0
  442. package/ccw/src/templates/dashboard-css/21-cli-toolmgmt.css +308 -0
  443. package/ccw/src/templates/dashboard-css/30-core-memory.css +20 -0
  444. package/ccw/src/templates/dashboard-css/31-api-settings.css +751 -14
  445. package/ccw/src/templates/dashboard-css/33-cli-stream-viewer.css +230 -2
  446. package/ccw/src/templates/dashboard-js/api.js +5 -0
  447. package/ccw/src/templates/dashboard-js/components/cli-status.js +279 -107
  448. package/ccw/src/templates/dashboard-js/components/cli-stream-viewer.js +262 -20
  449. package/ccw/src/templates/dashboard-js/components/hook-manager.js +105 -5
  450. package/ccw/src/templates/dashboard-js/components/mcp-manager.js +317 -0
  451. package/ccw/src/templates/dashboard-js/components/navigation.js +45 -0
  452. package/ccw/src/templates/dashboard-js/components/notifications.js +128 -0
  453. package/ccw/src/templates/dashboard-js/i18n.js +4438 -3983
  454. package/ccw/src/templates/dashboard-js/main.js +71 -0
  455. package/ccw/src/templates/dashboard-js/services.js +289 -0
  456. package/ccw/src/templates/dashboard-js/views/api-settings.js +5613 -3361
  457. package/ccw/src/templates/dashboard-js/views/claude-manager.js +1 -7
  458. package/ccw/src/templates/dashboard-js/views/cli-manager.js +581 -87
  459. package/ccw/src/templates/dashboard-js/views/codexlens-manager.js +6091 -1965
  460. package/ccw/src/templates/dashboard-js/views/core-memory.js +129 -20
  461. package/ccw/src/templates/dashboard-js/views/hook-manager.js +17 -3
  462. package/ccw/src/templates/dashboard-js/views/mcp-manager.js +63 -0
  463. package/ccw/src/templates/dashboard-js/views/project-overview.js +182 -37
  464. package/ccw/src/templates/dashboard-js/views/rules-manager.js +26 -3
  465. package/ccw/src/templates/dashboard-js/views/skills-manager.js +2 -42
  466. package/ccw/src/templates/dashboard.html +6 -0
  467. package/ccw/src/tools/README.md +29 -0
  468. package/ccw/src/tools/claude-cli-tools.ts +640 -125
  469. package/ccw/src/tools/cli-config-manager.ts +102 -172
  470. package/ccw/src/tools/cli-executor-core.ts +1533 -0
  471. package/ccw/src/tools/cli-executor-state.ts +560 -0
  472. package/ccw/src/tools/cli-executor-utils.ts +349 -0
  473. package/ccw/src/tools/cli-executor.ts +3 -2309
  474. package/ccw/src/tools/cli-history-store.ts +2 -0
  475. package/ccw/src/tools/cli-output-converter.ts +1237 -0
  476. package/ccw/src/tools/cli-prompt-builder.ts +487 -0
  477. package/ccw/src/tools/codex-lens.ts +324 -59
  478. package/ccw/src/tools/detect-changed-modules.ts +24 -6
  479. package/ccw/src/tools/index.ts +2 -0
  480. package/ccw/src/tools/litellm-client.ts +10 -4
  481. package/ccw/src/tools/litellm-executor.ts +146 -114
  482. package/ccw/src/tools/native-session-discovery.ts +209 -1
  483. package/ccw/src/tools/session-manager.ts +88 -0
  484. package/ccw/src/tools/skill-context-loader.ts +213 -0
  485. package/ccw/src/tools/smart-search.ts +427 -76
  486. package/ccw/src/types/cli-settings.ts +137 -0
  487. package/ccw/src/types/litellm-api-config.ts +55 -1
  488. package/ccw/src/utils/exec-constants.ts +24 -0
  489. package/ccw/src/utils/path-resolver.ts +49 -3
  490. package/ccw/src/utils/path-validator.ts +28 -6
  491. package/ccw/src/utils/python-utils.ts +140 -121
  492. package/ccw/src/utils/shell-escape.ts +30 -0
  493. package/ccw/src/utils/uv-manager.ts +796 -0
  494. package/ccw-litellm/src/ccw_litellm/__pycache__/__init__.cpython-310.pyc +0 -0
  495. package/ccw-litellm/src/ccw_litellm/__pycache__/__init__.cpython-312.pyc +0 -0
  496. package/ccw-litellm/src/ccw_litellm/clients/__pycache__/__init__.cpython-310.pyc +0 -0
  497. package/ccw-litellm/src/ccw_litellm/clients/__pycache__/__init__.cpython-312.pyc +0 -0
  498. package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_embedder.cpython-310.pyc +0 -0
  499. package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_embedder.cpython-312.pyc +0 -0
  500. package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_embedder.cpython-313.pyc +0 -0
  501. package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_llm.cpython-310.pyc +0 -0
  502. package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_llm.cpython-312.pyc +0 -0
  503. package/ccw-litellm/src/ccw_litellm/clients/__pycache__/litellm_llm.cpython-313.pyc +0 -0
  504. package/ccw-litellm/src/ccw_litellm/clients/litellm_embedder.py +270 -251
  505. package/ccw-litellm/src/ccw_litellm/clients/litellm_llm.py +33 -0
  506. package/ccw-litellm/src/ccw_litellm/config/__pycache__/__init__.cpython-310.pyc +0 -0
  507. package/ccw-litellm/src/ccw_litellm/config/__pycache__/__init__.cpython-312.pyc +0 -0
  508. package/ccw-litellm/src/ccw_litellm/config/__pycache__/loader.cpython-310.pyc +0 -0
  509. package/ccw-litellm/src/ccw_litellm/config/__pycache__/loader.cpython-312.pyc +0 -0
  510. package/ccw-litellm/src/ccw_litellm/config/__pycache__/loader.cpython-313.pyc +0 -0
  511. package/ccw-litellm/src/ccw_litellm/config/__pycache__/models.cpython-310.pyc +0 -0
  512. package/ccw-litellm/src/ccw_litellm/config/__pycache__/models.cpython-312.pyc +0 -0
  513. package/ccw-litellm/src/ccw_litellm/config/__pycache__/models.cpython-313.pyc +0 -0
  514. package/ccw-litellm/src/ccw_litellm/config/loader.py +343 -316
  515. package/ccw-litellm/src/ccw_litellm/config/models.py +162 -130
  516. package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/__init__.cpython-310.pyc +0 -0
  517. package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/__init__.cpython-312.pyc +0 -0
  518. package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/embedder.cpython-310.pyc +0 -0
  519. package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/embedder.cpython-312.pyc +0 -0
  520. package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/llm.cpython-310.pyc +0 -0
  521. package/ccw-litellm/src/ccw_litellm/interfaces/__pycache__/llm.cpython-312.pyc +0 -0
  522. package/codex-lens/pyproject.toml +43 -0
  523. package/codex-lens/src/codexlens/__pycache__/__init__.cpython-310.pyc +0 -0
  524. package/codex-lens/src/codexlens/__pycache__/__init__.cpython-312.pyc +0 -0
  525. package/codex-lens/src/codexlens/__pycache__/__main__.cpython-310.pyc +0 -0
  526. package/codex-lens/src/codexlens/__pycache__/__main__.cpython-312.pyc +0 -0
  527. package/codex-lens/src/codexlens/__pycache__/config.cpython-310.pyc +0 -0
  528. package/codex-lens/src/codexlens/__pycache__/config.cpython-312.pyc +0 -0
  529. package/codex-lens/src/codexlens/__pycache__/config.cpython-313.pyc +0 -0
  530. package/codex-lens/src/codexlens/__pycache__/entities.cpython-310.pyc +0 -0
  531. package/codex-lens/src/codexlens/__pycache__/entities.cpython-312.pyc +0 -0
  532. package/codex-lens/src/codexlens/__pycache__/entities.cpython-313.pyc +0 -0
  533. package/codex-lens/src/codexlens/__pycache__/env_config.cpython-310.pyc +0 -0
  534. package/codex-lens/src/codexlens/__pycache__/env_config.cpython-312.pyc +0 -0
  535. package/codex-lens/src/codexlens/__pycache__/env_config.cpython-313.pyc +0 -0
  536. package/codex-lens/src/codexlens/__pycache__/errors.cpython-310.pyc +0 -0
  537. package/codex-lens/src/codexlens/__pycache__/errors.cpython-312.pyc +0 -0
  538. package/codex-lens/src/codexlens/cli/__pycache__/__init__.cpython-310.pyc +0 -0
  539. package/codex-lens/src/codexlens/cli/__pycache__/__init__.cpython-312.pyc +0 -0
  540. package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-310.pyc +0 -0
  541. package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-312.pyc +0 -0
  542. package/codex-lens/src/codexlens/cli/__pycache__/commands.cpython-313.pyc +0 -0
  543. package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-310.pyc +0 -0
  544. package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-312.pyc +0 -0
  545. package/codex-lens/src/codexlens/cli/__pycache__/embedding_manager.cpython-313.pyc +0 -0
  546. package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-310.pyc +0 -0
  547. package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-312.pyc +0 -0
  548. package/codex-lens/src/codexlens/cli/__pycache__/model_manager.cpython-313.pyc +0 -0
  549. package/codex-lens/src/codexlens/cli/__pycache__/output.cpython-310.pyc +0 -0
  550. package/codex-lens/src/codexlens/cli/__pycache__/output.cpython-312.pyc +0 -0
  551. package/codex-lens/src/codexlens/cli/commands.py +4416 -2295
  552. package/codex-lens/src/codexlens/cli/embedding_manager.py +767 -14
  553. package/codex-lens/src/codexlens/cli/model_manager.py +676 -0
  554. package/codex-lens/src/codexlens/config.py +321 -12
  555. package/codex-lens/src/codexlens/entities.py +4 -1
  556. package/codex-lens/src/codexlens/env_config.py +298 -0
  557. package/codex-lens/src/codexlens/indexing/__init__.py +23 -1
  558. package/codex-lens/src/codexlens/indexing/__pycache__/__init__.cpython-313.pyc +0 -0
  559. package/codex-lens/src/codexlens/indexing/__pycache__/embedding.cpython-313.pyc +0 -0
  560. package/codex-lens/src/codexlens/indexing/__pycache__/symbol_extractor.cpython-313.pyc +0 -0
  561. package/codex-lens/src/codexlens/indexing/embedding.py +582 -0
  562. package/codex-lens/src/codexlens/indexing/symbol_extractor.py +62 -28
  563. package/codex-lens/src/codexlens/parsers/__pycache__/__init__.cpython-310.pyc +0 -0
  564. package/codex-lens/src/codexlens/parsers/__pycache__/__init__.cpython-312.pyc +0 -0
  565. package/codex-lens/src/codexlens/parsers/__pycache__/factory.cpython-310.pyc +0 -0
  566. package/codex-lens/src/codexlens/parsers/__pycache__/factory.cpython-312.pyc +0 -0
  567. package/codex-lens/src/codexlens/parsers/__pycache__/factory.cpython-313.pyc +0 -0
  568. package/codex-lens/src/codexlens/parsers/__pycache__/tokenizer.cpython-310.pyc +0 -0
  569. package/codex-lens/src/codexlens/parsers/__pycache__/tokenizer.cpython-312.pyc +0 -0
  570. package/codex-lens/src/codexlens/parsers/__pycache__/treesitter_parser.cpython-310.pyc +0 -0
  571. package/codex-lens/src/codexlens/parsers/__pycache__/treesitter_parser.cpython-312.pyc +0 -0
  572. package/codex-lens/src/codexlens/parsers/__pycache__/treesitter_parser.cpython-313.pyc +0 -0
  573. package/codex-lens/src/codexlens/parsers/factory.py +139 -10
  574. package/codex-lens/src/codexlens/parsers/treesitter_parser.py +487 -13
  575. package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-310.pyc +0 -0
  576. package/codex-lens/src/codexlens/search/__pycache__/__init__.cpython-312.pyc +0 -0
  577. package/codex-lens/src/codexlens/search/__pycache__/binary_searcher.cpython-313.pyc +0 -0
  578. package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-310.pyc +0 -0
  579. package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-312.pyc +0 -0
  580. package/codex-lens/src/codexlens/search/__pycache__/chain_search.cpython-313.pyc +0 -0
  581. package/codex-lens/src/codexlens/search/__pycache__/enrichment.cpython-313.pyc +0 -0
  582. package/codex-lens/src/codexlens/search/__pycache__/graph_expander.cpython-313.pyc +0 -0
  583. package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-310.pyc +0 -0
  584. package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-312.pyc +0 -0
  585. package/codex-lens/src/codexlens/search/__pycache__/hybrid_search.cpython-313.pyc +0 -0
  586. package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-310.pyc +0 -0
  587. package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-312.pyc +0 -0
  588. package/codex-lens/src/codexlens/search/__pycache__/ranking.cpython-313.pyc +0 -0
  589. package/codex-lens/src/codexlens/search/binary_searcher.py +277 -0
  590. package/codex-lens/src/codexlens/search/chain_search.py +1642 -8
  591. package/codex-lens/src/codexlens/search/enrichment.py +21 -0
  592. package/codex-lens/src/codexlens/search/graph_expander.py +264 -0
  593. package/codex-lens/src/codexlens/search/hybrid_search.py +772 -37
  594. package/codex-lens/src/codexlens/search/ranking.py +347 -8
  595. package/codex-lens/src/codexlens/semantic/SPLADE_IMPLEMENTATION.md +225 -0
  596. package/codex-lens/src/codexlens/semantic/__pycache__/__init__.cpython-310.pyc +0 -0
  597. package/codex-lens/src/codexlens/semantic/__pycache__/__init__.cpython-312.pyc +0 -0
  598. package/codex-lens/src/codexlens/semantic/__pycache__/ann_index.cpython-310.pyc +0 -0
  599. package/codex-lens/src/codexlens/semantic/__pycache__/ann_index.cpython-312.pyc +0 -0
  600. package/codex-lens/src/codexlens/semantic/__pycache__/ann_index.cpython-313.pyc +0 -0
  601. package/codex-lens/src/codexlens/semantic/__pycache__/base.cpython-310.pyc +0 -0
  602. package/codex-lens/src/codexlens/semantic/__pycache__/base.cpython-312.pyc +0 -0
  603. package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-310.pyc +0 -0
  604. package/codex-lens/src/codexlens/semantic/__pycache__/chunker.cpython-312.pyc +0 -0
  605. package/codex-lens/src/codexlens/semantic/__pycache__/embedder.cpython-310.pyc +0 -0
  606. package/codex-lens/src/codexlens/semantic/__pycache__/embedder.cpython-312.pyc +0 -0
  607. package/codex-lens/src/codexlens/semantic/__pycache__/factory.cpython-310.pyc +0 -0
  608. package/codex-lens/src/codexlens/semantic/__pycache__/factory.cpython-312.pyc +0 -0
  609. package/codex-lens/src/codexlens/semantic/__pycache__/factory.cpython-313.pyc +0 -0
  610. package/codex-lens/src/codexlens/semantic/__pycache__/gpu_support.cpython-310.pyc +0 -0
  611. package/codex-lens/src/codexlens/semantic/__pycache__/gpu_support.cpython-312.pyc +0 -0
  612. package/codex-lens/src/codexlens/semantic/__pycache__/gpu_support.cpython-313.pyc +0 -0
  613. package/codex-lens/src/codexlens/semantic/__pycache__/litellm_embedder.cpython-310.pyc +0 -0
  614. package/codex-lens/src/codexlens/semantic/__pycache__/litellm_embedder.cpython-312.pyc +0 -0
  615. package/codex-lens/src/codexlens/semantic/__pycache__/litellm_embedder.cpython-313.pyc +0 -0
  616. package/codex-lens/src/codexlens/semantic/__pycache__/reranker.cpython-313.pyc +0 -0
  617. package/codex-lens/src/codexlens/semantic/__pycache__/splade_encoder.cpython-310.pyc +0 -0
  618. package/codex-lens/src/codexlens/semantic/__pycache__/splade_encoder.cpython-312.pyc +0 -0
  619. package/codex-lens/src/codexlens/semantic/__pycache__/splade_encoder.cpython-313.pyc +0 -0
  620. package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-310.pyc +0 -0
  621. package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-312.pyc +0 -0
  622. package/codex-lens/src/codexlens/semantic/__pycache__/vector_store.cpython-313.pyc +0 -0
  623. package/codex-lens/src/codexlens/semantic/ann_index.py +654 -0
  624. package/codex-lens/src/codexlens/semantic/factory.py +63 -3
  625. package/codex-lens/src/codexlens/semantic/gpu_support.py +19 -2
  626. package/codex-lens/src/codexlens/semantic/litellm_embedder.py +144 -144
  627. package/codex-lens/src/codexlens/semantic/reranker/__init__.py +25 -0
  628. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/__init__.cpython-310.pyc +0 -0
  629. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/__init__.cpython-313.pyc +0 -0
  630. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/api_reranker.cpython-310.pyc +0 -0
  631. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/api_reranker.cpython-313.pyc +0 -0
  632. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/base.cpython-310.pyc +0 -0
  633. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/base.cpython-313.pyc +0 -0
  634. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/factory.cpython-310.pyc +0 -0
  635. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/factory.cpython-313.pyc +0 -0
  636. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/fastembed_reranker.cpython-310.pyc +0 -0
  637. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/fastembed_reranker.cpython-313.pyc +0 -0
  638. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/legacy.cpython-310.pyc +0 -0
  639. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/legacy.cpython-313.pyc +0 -0
  640. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/litellm_reranker.cpython-313.pyc +0 -0
  641. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/onnx_reranker.cpython-310.pyc +0 -0
  642. package/codex-lens/src/codexlens/semantic/reranker/__pycache__/onnx_reranker.cpython-313.pyc +0 -0
  643. package/codex-lens/src/codexlens/semantic/reranker/api_reranker.py +403 -0
  644. package/codex-lens/src/codexlens/semantic/reranker/base.py +46 -0
  645. package/codex-lens/src/codexlens/semantic/reranker/factory.py +159 -0
  646. package/codex-lens/src/codexlens/semantic/reranker/fastembed_reranker.py +257 -0
  647. package/codex-lens/src/codexlens/semantic/reranker/legacy.py +91 -0
  648. package/codex-lens/src/codexlens/semantic/reranker/litellm_reranker.py +214 -0
  649. package/codex-lens/src/codexlens/semantic/reranker/onnx_reranker.py +268 -0
  650. package/codex-lens/src/codexlens/semantic/splade_encoder.py +567 -0
  651. package/codex-lens/src/codexlens/semantic/vector_store.py +472 -352
  652. package/codex-lens/src/codexlens/storage/__init__.py +3 -0
  653. package/codex-lens/src/codexlens/storage/__pycache__/__init__.cpython-310.pyc +0 -0
  654. package/codex-lens/src/codexlens/storage/__pycache__/__init__.cpython-312.pyc +0 -0
  655. package/codex-lens/src/codexlens/storage/__pycache__/__init__.cpython-313.pyc +0 -0
  656. package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-310.pyc +0 -0
  657. package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-312.pyc +0 -0
  658. package/codex-lens/src/codexlens/storage/__pycache__/dir_index.cpython-313.pyc +0 -0
  659. package/codex-lens/src/codexlens/storage/__pycache__/global_index.cpython-310.pyc +0 -0
  660. package/codex-lens/src/codexlens/storage/__pycache__/global_index.cpython-312.pyc +0 -0
  661. package/codex-lens/src/codexlens/storage/__pycache__/index_tree.cpython-310.pyc +0 -0
  662. package/codex-lens/src/codexlens/storage/__pycache__/index_tree.cpython-312.pyc +0 -0
  663. package/codex-lens/src/codexlens/storage/__pycache__/index_tree.cpython-313.pyc +0 -0
  664. package/codex-lens/src/codexlens/storage/__pycache__/merkle_tree.cpython-313.pyc +0 -0
  665. package/codex-lens/src/codexlens/storage/__pycache__/path_mapper.cpython-310.pyc +0 -0
  666. package/codex-lens/src/codexlens/storage/__pycache__/path_mapper.cpython-312.pyc +0 -0
  667. package/codex-lens/src/codexlens/storage/__pycache__/registry.cpython-310.pyc +0 -0
  668. package/codex-lens/src/codexlens/storage/__pycache__/registry.cpython-312.pyc +0 -0
  669. package/codex-lens/src/codexlens/storage/__pycache__/splade_index.cpython-310.pyc +0 -0
  670. package/codex-lens/src/codexlens/storage/__pycache__/splade_index.cpython-312.pyc +0 -0
  671. package/codex-lens/src/codexlens/storage/__pycache__/splade_index.cpython-313.pyc +0 -0
  672. package/codex-lens/src/codexlens/storage/__pycache__/sqlite_store.cpython-310.pyc +0 -0
  673. package/codex-lens/src/codexlens/storage/__pycache__/sqlite_store.cpython-312.pyc +0 -0
  674. package/codex-lens/src/codexlens/storage/__pycache__/sqlite_store.cpython-313.pyc +0 -0
  675. package/codex-lens/src/codexlens/storage/__pycache__/sqlite_utils.cpython-310.pyc +0 -0
  676. package/codex-lens/src/codexlens/storage/__pycache__/sqlite_utils.cpython-312.pyc +0 -0
  677. package/codex-lens/src/codexlens/storage/__pycache__/vector_meta_store.cpython-310.pyc +0 -0
  678. package/codex-lens/src/codexlens/storage/__pycache__/vector_meta_store.cpython-312.pyc +0 -0
  679. package/codex-lens/src/codexlens/storage/__pycache__/vector_meta_store.cpython-313.pyc +0 -0
  680. package/codex-lens/src/codexlens/storage/dir_index.py +310 -12
  681. package/codex-lens/src/codexlens/storage/index_tree.py +194 -23
  682. package/codex-lens/src/codexlens/storage/merkle_tree.py +136 -0
  683. package/codex-lens/src/codexlens/storage/migrations/__pycache__/__init__.cpython-310.pyc +0 -0
  684. package/codex-lens/src/codexlens/storage/migrations/__pycache__/__init__.cpython-312.pyc +0 -0
  685. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_006_enhance_relationships.cpython-313.pyc +0 -0
  686. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_007_add_graph_neighbors.cpython-310.pyc +0 -0
  687. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_007_add_graph_neighbors.cpython-312.pyc +0 -0
  688. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_007_add_graph_neighbors.cpython-313.pyc +0 -0
  689. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_008_add_merkle_hashes.cpython-313.pyc +0 -0
  690. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_009_add_splade.cpython-313.pyc +0 -0
  691. package/codex-lens/src/codexlens/storage/migrations/__pycache__/migration_010_add_multi_vector_chunks.cpython-313.pyc +0 -0
  692. package/codex-lens/src/codexlens/storage/migrations/migration_006_enhance_relationships.py +37 -0
  693. package/codex-lens/src/codexlens/storage/migrations/migration_007_add_graph_neighbors.py +47 -0
  694. package/codex-lens/src/codexlens/storage/migrations/migration_008_add_merkle_hashes.py +81 -0
  695. package/codex-lens/src/codexlens/storage/migrations/migration_009_add_splade.py +103 -0
  696. package/codex-lens/src/codexlens/storage/migrations/migration_010_add_multi_vector_chunks.py +162 -0
  697. package/codex-lens/src/codexlens/storage/splade_index.py +578 -0
  698. package/codex-lens/src/codexlens/storage/sqlite_store.py +508 -184
  699. package/codex-lens/src/codexlens/storage/vector_meta_store.py +415 -0
  700. package/codex-lens/src/codexlens/watcher/__init__.py +17 -0
  701. package/codex-lens/src/codexlens/watcher/__pycache__/__init__.cpython-310.pyc +0 -0
  702. package/codex-lens/src/codexlens/watcher/__pycache__/__init__.cpython-312.pyc +0 -0
  703. package/codex-lens/src/codexlens/watcher/__pycache__/__init__.cpython-313.pyc +0 -0
  704. package/codex-lens/src/codexlens/watcher/__pycache__/events.cpython-310.pyc +0 -0
  705. package/codex-lens/src/codexlens/watcher/__pycache__/events.cpython-312.pyc +0 -0
  706. package/codex-lens/src/codexlens/watcher/__pycache__/events.cpython-313.pyc +0 -0
  707. package/codex-lens/src/codexlens/watcher/__pycache__/file_watcher.cpython-310.pyc +0 -0
  708. package/codex-lens/src/codexlens/watcher/__pycache__/file_watcher.cpython-312.pyc +0 -0
  709. package/codex-lens/src/codexlens/watcher/__pycache__/file_watcher.cpython-313.pyc +0 -0
  710. package/codex-lens/src/codexlens/watcher/__pycache__/incremental_indexer.cpython-310.pyc +0 -0
  711. package/codex-lens/src/codexlens/watcher/__pycache__/incremental_indexer.cpython-312.pyc +0 -0
  712. package/codex-lens/src/codexlens/watcher/__pycache__/incremental_indexer.cpython-313.pyc +0 -0
  713. package/codex-lens/src/codexlens/watcher/__pycache__/manager.cpython-310.pyc +0 -0
  714. package/codex-lens/src/codexlens/watcher/__pycache__/manager.cpython-312.pyc +0 -0
  715. package/codex-lens/src/codexlens/watcher/__pycache__/manager.cpython-313.pyc +0 -0
  716. package/codex-lens/src/codexlens/watcher/events.py +82 -0
  717. package/codex-lens/src/codexlens/watcher/file_watcher.py +347 -0
  718. package/codex-lens/src/codexlens/watcher/incremental_indexer.py +369 -0
  719. package/codex-lens/src/codexlens/watcher/manager.py +255 -0
  720. package/package.json +4 -1
  721. package/.claude/commands/workflow/docs/analyze.md +0 -1467
  722. package/.claude/commands/workflow/docs/copyright.md +0 -1265
  723. package/.claude/skills/command-guide/SKILL.md +0 -388
  724. package/.claude/skills/command-guide/UPDATE-GUIDELINE.md +0 -592
  725. package/.claude/skills/command-guide/guides/cli-tools-guide.md +0 -410
  726. package/.claude/skills/command-guide/guides/examples.md +0 -537
  727. package/.claude/skills/command-guide/guides/getting-started.md +0 -242
  728. package/.claude/skills/command-guide/guides/implementation-details.md +0 -1010
  729. package/.claude/skills/command-guide/guides/index-structure.md +0 -326
  730. package/.claude/skills/command-guide/guides/troubleshooting.md +0 -92
  731. package/.claude/skills/command-guide/guides/ui-design-workflow-guide.md +0 -316
  732. package/.claude/skills/command-guide/guides/workflow-patterns.md +0 -662
  733. package/.claude/skills/command-guide/reference/agents/action-planning-agent.md +0 -855
  734. package/.claude/skills/command-guide/reference/agents/cli-execution-agent.md +0 -267
  735. package/.claude/skills/command-guide/reference/agents/cli-explore-agent.md +0 -182
  736. package/.claude/skills/command-guide/reference/agents/cli-lite-planning-agent.md +0 -446
  737. package/.claude/skills/command-guide/reference/agents/cli-planning-agent.md +0 -558
  738. package/.claude/skills/command-guide/reference/agents/code-developer.md +0 -311
  739. package/.claude/skills/command-guide/reference/agents/conceptual-planning-agent.md +0 -308
  740. package/.claude/skills/command-guide/reference/agents/context-search-agent.md +0 -581
  741. package/.claude/skills/command-guide/reference/agents/doc-generator.md +0 -330
  742. package/.claude/skills/command-guide/reference/agents/memory-bridge.md +0 -94
  743. package/.claude/skills/command-guide/reference/agents/test-context-search-agent.md +0 -400
  744. package/.claude/skills/command-guide/reference/agents/test-fix-agent.md +0 -344
  745. package/.claude/skills/command-guide/reference/agents/ui-design-agent.md +0 -593
  746. package/.claude/skills/command-guide/reference/agents/universal-executor.md +0 -131
  747. package/.claude/skills/command-guide/reference/commands/cli/cli-init.md +0 -440
  748. package/.claude/skills/command-guide/reference/commands/enhance-prompt.md +0 -93
  749. package/.claude/skills/command-guide/reference/commands/memory/code-map-memory.md +0 -687
  750. package/.claude/skills/command-guide/reference/commands/memory/docs-full-cli.md +0 -471
  751. package/.claude/skills/command-guide/reference/commands/memory/docs-related-cli.md +0 -386
  752. package/.claude/skills/command-guide/reference/commands/memory/docs.md +0 -616
  753. package/.claude/skills/command-guide/reference/commands/memory/load-skill-memory.md +0 -182
  754. package/.claude/skills/command-guide/reference/commands/memory/load.md +0 -240
  755. package/.claude/skills/command-guide/reference/commands/memory/skill-memory.md +0 -525
  756. package/.claude/skills/command-guide/reference/commands/memory/style-skill-memory.md +0 -396
  757. package/.claude/skills/command-guide/reference/commands/memory/tech-research.md +0 -314
  758. package/.claude/skills/command-guide/reference/commands/memory/update-full.md +0 -332
  759. package/.claude/skills/command-guide/reference/commands/memory/update-related.md +0 -332
  760. package/.claude/skills/command-guide/reference/commands/memory/workflow-skill-memory.md +0 -517
  761. package/.claude/skills/command-guide/reference/commands/task/breakdown.md +0 -204
  762. package/.claude/skills/command-guide/reference/commands/task/create.md +0 -152
  763. package/.claude/skills/command-guide/reference/commands/task/execute.md +0 -270
  764. package/.claude/skills/command-guide/reference/commands/task/replan.md +0 -437
  765. package/.claude/skills/command-guide/reference/commands/version.md +0 -254
  766. package/.claude/skills/command-guide/reference/commands/workflow/action-plan-verify.md +0 -447
  767. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/api-designer.md +0 -585
  768. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/artifacts.md +0 -452
  769. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/auto-parallel.md +0 -443
  770. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/data-architect.md +0 -220
  771. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-manager.md +0 -200
  772. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-owner.md +0 -200
  773. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/scrum-master.md +0 -200
  774. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/subject-matter-expert.md +0 -200
  775. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/synthesis.md +0 -398
  776. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/system-architect.md +0 -387
  777. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ui-designer.md +0 -221
  778. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ux-expert.md +0 -221
  779. package/.claude/skills/command-guide/reference/commands/workflow/execute.md +0 -465
  780. package/.claude/skills/command-guide/reference/commands/workflow/init.md +0 -164
  781. package/.claude/skills/command-guide/reference/commands/workflow/lite-execute.md +0 -748
  782. package/.claude/skills/command-guide/reference/commands/workflow/lite-fix.md +0 -664
  783. package/.claude/skills/command-guide/reference/commands/workflow/lite-plan.md +0 -645
  784. package/.claude/skills/command-guide/reference/commands/workflow/plan.md +0 -551
  785. package/.claude/skills/command-guide/reference/commands/workflow/replan.md +0 -515
  786. package/.claude/skills/command-guide/reference/commands/workflow/review-fix.md +0 -606
  787. package/.claude/skills/command-guide/reference/commands/workflow/review-module-cycle.md +0 -765
  788. package/.claude/skills/command-guide/reference/commands/workflow/review-session-cycle.md +0 -776
  789. package/.claude/skills/command-guide/reference/commands/workflow/review.md +0 -298
  790. package/.claude/skills/command-guide/reference/commands/workflow/session/complete.md +0 -547
  791. package/.claude/skills/command-guide/reference/commands/workflow/session/list.md +0 -114
  792. package/.claude/skills/command-guide/reference/commands/workflow/session/resume.md +0 -77
  793. package/.claude/skills/command-guide/reference/commands/workflow/session/start.md +0 -257
  794. package/.claude/skills/command-guide/reference/commands/workflow/tdd-plan.md +0 -460
  795. package/.claude/skills/command-guide/reference/commands/workflow/tdd-verify.md +0 -400
  796. package/.claude/skills/command-guide/reference/commands/workflow/test-cycle-execute.md +0 -498
  797. package/.claude/skills/command-guide/reference/commands/workflow/test-fix-gen.md +0 -699
  798. package/.claude/skills/command-guide/reference/commands/workflow/test-gen.md +0 -529
  799. package/.claude/skills/command-guide/reference/commands/workflow/tools/conflict-resolution.md +0 -766
  800. package/.claude/skills/command-guide/reference/commands/workflow/tools/context-gather.md +0 -433
  801. package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-agent.md +0 -487
  802. package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-tdd.md +0 -518
  803. package/.claude/skills/command-guide/reference/commands/workflow/tools/tdd-coverage-analysis.md +0 -309
  804. package/.claude/skills/command-guide/reference/commands/workflow/tools/test-concept-enhanced.md +0 -163
  805. package/.claude/skills/command-guide/reference/commands/workflow/tools/test-context-gather.md +0 -232
  806. package/.claude/skills/command-guide/reference/commands/workflow/tools/test-task-generate.md +0 -254
  807. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/animation-extract.md +0 -1150
  808. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/codify-style.md +0 -652
  809. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/design-sync.md +0 -454
  810. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/explore-auto.md +0 -678
  811. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/generate.md +0 -504
  812. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/imitate-auto.md +0 -745
  813. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/import-from-code.md +0 -537
  814. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/layout-extract.md +0 -788
  815. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/reference-page-generator.md +0 -356
  816. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/style-extract.md +0 -773
  817. package/.claude/skills/command-guide/scripts/analyze_commands.py +0 -502
  818. package/.claude/skills/command-guide/scripts/update-index.sh +0 -130
  819. package/.claude/skills/command-guide/templates/issue-bug.md +0 -104
  820. package/.claude/skills/command-guide/templates/issue-diagnosis.md +0 -275
  821. package/.claude/skills/command-guide/templates/issue-feature.md +0 -97
  822. package/.claude/skills/command-guide/templates/issue-question.md +0 -141
@@ -1,1265 +0,0 @@
1
- ---
2
- name: copyright
3
- description: Multi-phase iterative software copyright documentation generator for CPCC compliance, produces design specification with Mermaid diagrams through code analysis
4
- argument-hint: "[scope|path] [--name=软件名称] [--version=版本号]"
5
- allowed-tools: Task(*), AskUserQuestion(*), Read(*), Bash(*), Glob(*), Grep(*), TodoWrite(*), Write(*)
6
- ---
7
-
8
- # Workflow Copyright Command (/workflow:docs:copyright)
9
-
10
- ## Overview
11
-
12
- **软件著作权设计说明书生成器** - 基于源代码深度分析,生成符合中国版权保护中心(CPCC)规范的无界面软件设计说明书。通过多阶段迭代和用户交互,确保文档内容准确、完整、合规。
13
-
14
- **核心原则**:
15
- - **基于代码分析**:所有内容严格来源于代码分析,杜绝臆测
16
- - **Mermaid 规范**:所有图表使用正确的 Mermaid 语法,特殊字符正确转义
17
- - **CPCC 合规**:严格遵循鉴别材料必备组成部分要求
18
- - **迭代优化**:通过多轮交互确保文档质量
19
-
20
- ## 文档结构(鉴别材料必备组成部分)
21
-
22
- | 章节 | 内容 | 图表类型 |
23
- |------|------|----------|
24
- | 1. 软件概述 | 背景、目标、运行环境、技术架构 | - |
25
- | 2. 系统架构图 | 整体架构、模块关系、数据流 | `graph TD` |
26
- | 3. 功能模块设计 | 功能分解、模块职责、交互关系 | `flowchart TD` |
27
- | 4. 核心算法与流程 | 关键业务逻辑、算法实现、处理流程 | `flowchart TD` |
28
- | 5. 数据结构设计 | 数据实体、关系、约束 | `classDiagram` |
29
- | 6. 接口设计 | API 定义、参数、返回值 | `sequenceDiagram` |
30
- | 7. 异常处理设计 | 错误处理、异常流程、恢复机制 | `flowchart TD` |
31
-
32
- ## Execution Process
33
-
34
- ```
35
- Input Parsing:
36
- ├─ Parse: scope/path (required, source code location)
37
- ├─ Parse: --name (software name, will prompt if not provided)
38
- └─ Parse: --version (version number, will prompt if not provided)
39
-
40
- Phase 1: Project Discovery & Metadata Collection
41
- ├─ Ask: Software name and version (if not specified)
42
- ├─ Ask: Software category and primary function
43
- ├─ Explore: Project structure and tech stack
44
- └─ Output: project-metadata.json
45
-
46
- Phase 2: Deep Code Analysis (Parallel Agents)
47
- ├─ Agent 1: Architecture analysis (modules, layers, dependencies)
48
- ├─ Agent 2: Function analysis (features, workflows, algorithms)
49
- ├─ Agent 3: Data structure analysis (entities, relationships)
50
- ├─ Agent 4: Interface analysis (APIs, protocols)
51
- └─ Output: analysis-{dimension}.json files
52
-
53
- Phase 3: Mermaid Diagram Generation
54
- ├─ Generate: System architecture diagram (graph TD)
55
- ├─ Generate: Function module diagrams (flowchart TD)
56
- ├─ Generate: Core algorithm flowcharts (flowchart TD)
57
- ├─ Generate: Class diagrams (classDiagram)
58
- ├─ Generate: Sequence diagrams (sequenceDiagram)
59
- └─ Output: diagrams/*.mmd + validation
60
-
61
- Phase 4: Document Assembly
62
- ├─ Synthesize: Merge all analysis results
63
- ├─ Generate: 软件设计说明书.md (draft)
64
- ├─ Validate: CPCC compliance check
65
- └─ Output: Present document to user
66
-
67
- Phase 5: Iterative Refinement (Discovery-Driven)
68
- ├─ Extract: Gaps and ambiguities from analysis
69
- ├─ Ask: Targeted questions based on findings
70
- ├─ Update: Incremental document modification
71
- └─ Loop: Until user satisfied or no more discoveries
72
-
73
- Finalize:
74
- └─ Output: Final 软件设计说明书.md
75
- ```
76
-
77
- ## 5-Phase Execution
78
-
79
- ### Phase 1: Project Discovery & Metadata Collection
80
-
81
- **Purpose**: Collect essential metadata and understand project structure
82
-
83
- **Step 1.1: Initialize TodoWrite**
84
-
85
- ```javascript
86
- TodoWrite([
87
- {content: "Phase 1: Project Discovery", status: "in_progress", activeForm: "Discovering project structure"},
88
- {content: "Phase 2: Deep Code Analysis", status: "pending", activeForm: "Analyzing source code"},
89
- {content: "Phase 3: Diagram Generation", status: "pending", activeForm: "Generating Mermaid diagrams"},
90
- {content: "Phase 4: Document Assembly", status: "pending", activeForm: "Assembling design document"},
91
- {content: "Phase 5: Iterative Refinement", status: "pending", activeForm: "Refining based on feedback"}
92
- ])
93
- ```
94
-
95
- **Step 1.2: Collect Software Metadata (if not specified)**
96
-
97
- ```javascript
98
- if (!name_specified || !version_specified) {
99
- AskUserQuestion({
100
- questions: [
101
- {
102
- question: "请提供软件的正式名称(将显示在页眉和文档标题中)",
103
- header: "软件名称",
104
- multiSelect: false,
105
- options: [
106
- {label: "使用项目名称", description: `自动检测: ${detected_project_name}`},
107
- {label: "自定义名称", description: "输入自定义的软件名称"}
108
- ]
109
- },
110
- {
111
- question: "请提供软件版本号(格式如 V1.0.0)",
112
- header: "版本号",
113
- multiSelect: false,
114
- options: [
115
- {label: "V1.0.0", description: "初始版本"},
116
- {label: "使用 package.json 版本", description: `自动检测: ${detected_version}`},
117
- {label: "自定义版本", description: "输入自定义版本号"}
118
- ]
119
- }
120
- ]
121
- });
122
- }
123
- ```
124
-
125
- **Step 1.3: Software Category Selection**
126
-
127
- ```javascript
128
- AskUserQuestion({
129
- questions: [{
130
- question: "请选择软件的主要类型(影响文档描述风格)",
131
- header: "软件类型",
132
- multiSelect: false,
133
- options: [
134
- {label: "命令行工具 (CLI)", description: "无图形界面的命令行应用程序"},
135
- {label: "后端服务/API", description: "Web API、微服务、后台服务"},
136
- {label: "SDK/库", description: "供其他程序调用的开发工具包"},
137
- {label: "数据处理系统", description: "ETL、数据分析、批处理系统"},
138
- {label: "自动化脚本", description: "运维自动化、构建工具、脚本集合"}
139
- ]
140
- }]
141
- });
142
- ```
143
-
144
- **Step 1.4: Explore Project Structure**
145
-
146
- ```javascript
147
- Task({
148
- subagent_type: "cli-explore-agent",
149
- run_in_background: false,
150
- description: "Explore project structure",
151
- prompt: `
152
- ## Exploration Objective
153
- 分析项目结构,提取软件著作权文档所需的基础信息。
154
-
155
- ## Target Path
156
- ${scope_path}
157
-
158
- ## Required Analysis
159
- 1. **技术栈识别**:编程语言、框架、主要依赖
160
- 2. **目录结构**:源代码组织方式、模块划分
161
- 3. **入口点识别**:主程序入口、命令行入口
162
- 4. **配置文件**:环境配置、构建配置
163
- 5. **文档线索**:README、注释中的功能描述
164
-
165
- ## Output
166
- Write to: ${outputDir}/project-discovery.json
167
- {
168
- "tech_stack": {...},
169
- "directory_structure": {...},
170
- "entry_points": [...],
171
- "main_modules": [...],
172
- "detected_features": [...]
173
- }
174
- `
175
- });
176
- ```
177
-
178
- **Step 1.5: Store Project Metadata**
179
-
180
- ```javascript
181
- const projectMetadata = {
182
- software_name: selected_name,
183
- version: selected_version,
184
- category: selected_category,
185
- scope_path: scope_path,
186
- tech_stack: discovery.tech_stack,
187
- entry_points: discovery.entry_points,
188
- main_modules: discovery.main_modules,
189
- timestamp: new Date().toISOString()
190
- };
191
-
192
- Write(`${outputDir}/project-metadata.json`, JSON.stringify(projectMetadata, null, 2));
193
- ```
194
-
195
- **TodoWrite**: Mark Phase 1 completed, Phase 2 in_progress
196
-
197
- ---
198
-
199
- ### Phase 2: Deep Code Analysis (Parallel Agents)
200
-
201
- **Purpose**: Multi-dimensional code analysis for comprehensive understanding
202
-
203
- **Step 2.1: Launch Parallel Analysis Agents**
204
-
205
- ```javascript
206
- const analysisAgents = [
207
- {
208
- dimension: "architecture",
209
- focus: "系统架构分析",
210
- prompt: `
211
- ## 分析目标
212
- 分析项目的系统架构,为"系统架构图"章节提供数据。
213
-
214
- ## 分析内容
215
- 1. **分层结构**:识别代码的分层(如 Controller/Service/Repository)
216
- 2. **模块边界**:各模块的职责范围和边界
217
- 3. **依赖关系**:模块间的依赖方向和类型
218
- 4. **核心组件**:系统的核心组件及其作用
219
- 5. **数据流向**:数据在各层之间的流动路径
220
-
221
- ## 输出格式
222
- {
223
- "layers": [{name, components, responsibility}],
224
- "modules": [{name, path, responsibility, dependencies}],
225
- "data_flow": [{from, to, data_type, description}],
226
- "core_components": [{name, type, responsibility}],
227
- "mermaid_hints": {nodes: [], edges: []}
228
- }
229
- `
230
- },
231
- {
232
- dimension: "functions",
233
- focus: "功能模块分析",
234
- prompt: `
235
- ## 分析目标
236
- 分析项目的功能模块,为"功能模块设计"章节提供数据。
237
-
238
- ## 分析内容
239
- 1. **功能清单**:从代码中提取的所有功能点
240
- 2. **功能分组**:按业务逻辑分组的功能模块
241
- 3. **功能层级**:功能的父子关系和层级结构
242
- 4. **模块交互**:功能模块之间的调用关系
243
- 5. **关键流程**:主要业务流程的步骤分解
244
-
245
- ## 输出格式
246
- {
247
- "feature_list": [{id, name, description, module, entry_file}],
248
- "feature_groups": [{group_name, features: []}],
249
- "feature_hierarchy": {root: {children: [...]}},
250
- "interactions": [{caller, callee, trigger, description}],
251
- "key_workflows": [{name, steps: [], files_involved}]
252
- }
253
- `
254
- },
255
- {
256
- dimension: "algorithms",
257
- focus: "核心算法分析",
258
- prompt: `
259
- ## 分析目标
260
- 分析项目的核心算法和业务逻辑,为"核心算法与流程"章节提供数据。
261
-
262
- ## 分析内容
263
- 1. **核心算法**:识别关键算法(排序、搜索、加密、业务规则等)
264
- 2. **复杂逻辑**:圈复杂度高的函数/方法
265
- 3. **处理流程**:核心业务的处理步骤
266
- 4. **输入输出**:算法的输入参数和输出结果
267
- 5. **边界条件**:特殊情况的处理逻辑
268
-
269
- ## 输出格式
270
- {
271
- "algorithms": [{
272
- name, file, line,
273
- description,
274
- complexity,
275
- inputs: [{name, type, description}],
276
- outputs: [{name, type, description}],
277
- steps: [{step_num, description, code_ref}]
278
- }],
279
- "complex_functions": [{name, file, cyclomatic_complexity, description}],
280
- "flowchart_hints": [{algorithm_name, nodes: [], edges: []}]
281
- }
282
- `
283
- },
284
- {
285
- dimension: "data_structures",
286
- focus: "数据结构分析",
287
- prompt: `
288
- ## 分析目标
289
- 分析项目的数据结构,为"数据结构设计"章节提供数据。
290
-
291
- ## 分析内容
292
- 1. **数据实体**:类、接口、类型定义
293
- 2. **属性字段**:实体的属性及其类型
294
- 3. **实体关系**:继承、组合、关联关系
295
- 4. **约束规则**:数据验证、业务约束
296
- 5. **枚举常量**:枚举类型和常量定义
297
-
298
- ## 输出格式
299
- {
300
- "entities": [{
301
- name, file, type, // class/interface/type
302
- properties: [{name, type, visibility, description}],
303
- methods: [{name, params, return_type, visibility}]
304
- }],
305
- "relationships": [{
306
- from, to,
307
- type, // inheritance/composition/association/dependency
308
- cardinality, description
309
- }],
310
- "enums": [{name, values: [{name, value, description}]}],
311
- "class_diagram_hints": {classes: [], relationships: []}
312
- }
313
- `
314
- },
315
- {
316
- dimension: "interfaces",
317
- focus: "接口设计分析",
318
- prompt: `
319
- ## 分析目标
320
- 分析项目的接口设计,为"接口设计"章节提供数据。
321
-
322
- ## 分析内容
323
- 1. **API 端点**:HTTP API、RPC 接口、CLI 命令
324
- 2. **参数定义**:输入参数的名称、类型、约束
325
- 3. **返回值**:输出结果的格式和类型
326
- 4. **调用协议**:同步/异步、请求/响应模式
327
- 5. **接口分组**:按功能或资源分组
328
-
329
- ## 输出格式
330
- {
331
- "apis": [{
332
- name, path, method, // GET/POST/CLI/RPC
333
- description,
334
- parameters: [{name, type, required, description}],
335
- response: {type, schema, description},
336
- category
337
- }],
338
- "protocols": [{name, type, description}],
339
- "sequence_hints": [{scenario, actors: [], messages: []}]
340
- }
341
- `
342
- },
343
- {
344
- dimension: "exceptions",
345
- focus: "异常处理分析",
346
- prompt: `
347
- ## 分析目标
348
- 分析项目的异常处理机制,为"异常处理设计"章节提供数据。
349
-
350
- ## 分析内容
351
- 1. **异常类型**:自定义异常类、错误码定义
352
- 2. **捕获策略**:try-catch 的使用模式
353
- 3. **错误传播**:异常的传播和转换链
354
- 4. **恢复机制**:重试、降级、回滚策略
355
- 5. **日志记录**:错误日志的记录方式
356
-
357
- ## 输出格式
358
- {
359
- "exception_types": [{name, parent, code, message, file}],
360
- "error_codes": [{code, message, severity, category}],
361
- "handling_patterns": [{pattern, locations: [], description}],
362
- "recovery_strategies": [{strategy, trigger, action, files}],
363
- "logging_approach": {framework, levels, format}
364
- }
365
- `
366
- }
367
- ];
368
-
369
- // Launch all agents in parallel
370
- const analysisTasks = analysisAgents.map(agent =>
371
- Task({
372
- subagent_type: "cli-explore-agent",
373
- run_in_background: false,
374
- description: agent.focus,
375
- prompt: `
376
- ${agent.prompt}
377
-
378
- ## Context
379
- - **Scope Path**: ${scope_path}
380
- - **Tech Stack**: ${projectMetadata.tech_stack}
381
- - **Main Modules**: ${projectMetadata.main_modules.join(', ')}
382
-
383
- ## Output File
384
- Write to: ${outputDir}/analysis-${agent.dimension}.json
385
- `
386
- })
387
- );
388
- ```
389
-
390
- **Step 2.2: Validate Analysis Results**
391
-
392
- ```javascript
393
- // Verify all analysis files created
394
- const requiredAnalyses = ['architecture', 'functions', 'algorithms', 'data_structures', 'interfaces', 'exceptions'];
395
- for (const dimension of requiredAnalyses) {
396
- const filePath = `${outputDir}/analysis-${dimension}.json`;
397
- if (!file_exists(filePath)) {
398
- throw new Error(`Missing analysis: ${dimension}`);
399
- }
400
- }
401
- ```
402
-
403
- **TodoWrite**: Mark Phase 2 completed, Phase 3 in_progress
404
-
405
- ---
406
-
407
- ### Phase 3: Mermaid Diagram Generation
408
-
409
- **Purpose**: Generate all required diagrams with correct Mermaid syntax
410
-
411
- **Step 3.1: System Architecture Diagram**
412
-
413
- ```javascript
414
- const archAnalysis = JSON.parse(Read(`${outputDir}/analysis-architecture.json`));
415
-
416
- // Generate Mermaid graph TD
417
- function generateArchitectureDiagram(analysis) {
418
- let mermaid = 'graph TD\n';
419
-
420
- // Add subgraphs for layers
421
- for (const layer of analysis.layers) {
422
- mermaid += ` subgraph ${sanitizeId(layer.name)}["${escapeLabel(layer.name)}"]\n`;
423
- for (const comp of layer.components) {
424
- mermaid += ` ${sanitizeId(comp)}["${escapeLabel(comp)}"]\n`;
425
- }
426
- mermaid += ' end\n';
427
- }
428
-
429
- // Add edges for data flow
430
- for (const flow of analysis.data_flow) {
431
- mermaid += ` ${sanitizeId(flow.from)} -->|"${escapeLabel(flow.description)}"| ${sanitizeId(flow.to)}\n`;
432
- }
433
-
434
- return mermaid;
435
- }
436
-
437
- // Helper: Escape special characters in labels
438
- function escapeLabel(text) {
439
- return text.replace(/["(){}[\]<>]/g, char => `#${char.charCodeAt(0)};`);
440
- }
441
-
442
- const archDiagram = generateArchitectureDiagram(archAnalysis);
443
- Write(`${outputDir}/diagrams/architecture.mmd`, archDiagram);
444
- ```
445
-
446
- **Step 3.2: Function Module Diagrams**
447
-
448
- ```javascript
449
- const funcAnalysis = JSON.parse(Read(`${outputDir}/analysis-functions.json`));
450
-
451
- function generateFunctionDiagram(analysis) {
452
- let mermaid = 'flowchart TD\n';
453
-
454
- // Root node
455
- mermaid += ` ROOT["${escapeLabel(projectMetadata.software_name)}"]\n`;
456
-
457
- // Feature groups as subgraphs
458
- for (const group of analysis.feature_groups) {
459
- mermaid += ` subgraph ${sanitizeId(group.group_name)}["${escapeLabel(group.group_name)}"]\n`;
460
- for (const feature of group.features) {
461
- mermaid += ` ${sanitizeId(feature.id)}["${escapeLabel(feature.name)}"]\n`;
462
- }
463
- mermaid += ' end\n';
464
- mermaid += ` ROOT --> ${sanitizeId(group.group_name)}\n`;
465
- }
466
-
467
- return mermaid;
468
- }
469
-
470
- const funcDiagram = generateFunctionDiagram(funcAnalysis);
471
- Write(`${outputDir}/diagrams/functions.mmd`, funcDiagram);
472
- ```
473
-
474
- **Step 3.3: Algorithm Flowcharts**
475
-
476
- ```javascript
477
- const algoAnalysis = JSON.parse(Read(`${outputDir}/analysis-algorithms.json`));
478
-
479
- function generateAlgorithmFlowchart(algorithm) {
480
- let mermaid = 'flowchart TD\n';
481
-
482
- // Start node
483
- mermaid += ` START(["开始"])\n`;
484
-
485
- // Input nodes
486
- for (const input of algorithm.inputs) {
487
- mermaid += ` INPUT_${sanitizeId(input.name)}[/"${escapeLabel(input.name)}: ${escapeLabel(input.type)}"/]\n`;
488
- }
489
-
490
- // Process steps
491
- let prevNode = 'START';
492
- for (const step of algorithm.steps) {
493
- const nodeId = `STEP_${step.step_num}`;
494
- mermaid += ` ${nodeId}["${escapeLabel(step.description)}"]\n`;
495
- mermaid += ` ${prevNode} --> ${nodeId}\n`;
496
- prevNode = nodeId;
497
- }
498
-
499
- // Output and end
500
- mermaid += ` OUTPUT[/"输出结果"/]\n`;
501
- mermaid += ` ${prevNode} --> OUTPUT\n`;
502
- mermaid += ` END_(["结束"])\n`;
503
- mermaid += ` OUTPUT --> END_\n`;
504
-
505
- return mermaid;
506
- }
507
-
508
- // Generate flowchart for each core algorithm
509
- for (const algo of algoAnalysis.algorithms.slice(0, 5)) { // Top 5 algorithms
510
- const flowchart = generateAlgorithmFlowchart(algo);
511
- Write(`${outputDir}/diagrams/algorithm-${sanitizeId(algo.name)}.mmd`, flowchart);
512
- }
513
- ```
514
-
515
- **Step 3.4: Class Diagrams**
516
-
517
- ```javascript
518
- const dataAnalysis = JSON.parse(Read(`${outputDir}/analysis-data_structures.json`));
519
-
520
- function generateClassDiagram(analysis) {
521
- let mermaid = 'classDiagram\n';
522
-
523
- // Classes
524
- for (const entity of analysis.entities) {
525
- mermaid += ` class ${sanitizeId(entity.name)} {\n`;
526
-
527
- // Properties
528
- for (const prop of entity.properties) {
529
- const visibility = {public: '+', private: '-', protected: '#'}[prop.visibility] || '+';
530
- mermaid += ` ${visibility}${prop.type} ${prop.name}\n`;
531
- }
532
-
533
- // Methods
534
- for (const method of entity.methods) {
535
- const visibility = {public: '+', private: '-', protected: '#'}[method.visibility] || '+';
536
- mermaid += ` ${visibility}${method.name}(${method.params}) ${method.return_type}\n`;
537
- }
538
-
539
- mermaid += ' }\n';
540
- }
541
-
542
- // Relationships
543
- for (const rel of analysis.relationships) {
544
- const arrows = {
545
- inheritance: '--|>',
546
- composition: '*--',
547
- aggregation: 'o--',
548
- association: '-->',
549
- dependency: '..>'
550
- };
551
- const arrow = arrows[rel.type] || '-->';
552
- mermaid += ` ${sanitizeId(rel.from)} ${arrow} ${sanitizeId(rel.to)} : ${escapeLabel(rel.description || rel.type)}\n`;
553
- }
554
-
555
- return mermaid;
556
- }
557
-
558
- const classDiagram = generateClassDiagram(dataAnalysis);
559
- Write(`${outputDir}/diagrams/class-diagram.mmd`, classDiagram);
560
- ```
561
-
562
- **Step 3.5: Sequence Diagrams**
563
-
564
- ```javascript
565
- const interfaceAnalysis = JSON.parse(Read(`${outputDir}/analysis-interfaces.json`));
566
-
567
- function generateSequenceDiagram(scenario) {
568
- let mermaid = 'sequenceDiagram\n';
569
-
570
- // Participants
571
- for (const actor of scenario.actors) {
572
- mermaid += ` participant ${sanitizeId(actor.id)} as ${escapeLabel(actor.name)}\n`;
573
- }
574
-
575
- // Messages
576
- for (const msg of scenario.messages) {
577
- const arrow = msg.type === 'async' ? '-)' : '->>';
578
- mermaid += ` ${sanitizeId(msg.from)}${arrow}${sanitizeId(msg.to)}: ${escapeLabel(msg.description)}\n`;
579
- }
580
-
581
- return mermaid;
582
- }
583
-
584
- // Generate sequence diagram for each key scenario
585
- for (const scenario of interfaceAnalysis.sequence_hints || []) {
586
- const seqDiagram = generateSequenceDiagram(scenario);
587
- Write(`${outputDir}/diagrams/sequence-${sanitizeId(scenario.scenario)}.mmd`, seqDiagram);
588
- }
589
- ```
590
-
591
- **Step 3.6: Validate Mermaid Syntax**
592
-
593
- ```javascript
594
- // Validate all generated diagrams
595
- const diagramFiles = Glob(`${outputDir}/diagrams/*.mmd`);
596
- const validationResults = [];
597
-
598
- for (const file of diagramFiles) {
599
- const content = Read(file);
600
- const issues = validateMermaidSyntax(content);
601
- validationResults.push({
602
- file: file,
603
- valid: issues.length === 0,
604
- issues: issues
605
- });
606
- }
607
-
608
- Write(`${outputDir}/diagrams/validation-report.json`, JSON.stringify(validationResults, null, 2));
609
- ```
610
-
611
- **TodoWrite**: Mark Phase 3 completed, Phase 4 in_progress
612
-
613
- ---
614
-
615
- ### Phase 4: Document Assembly
616
-
617
- **Purpose**: Assemble all analysis and diagrams into final document
618
-
619
- **Step 4.1: Load All Analysis Data**
620
-
621
- ```javascript
622
- const metadata = JSON.parse(Read(`${outputDir}/project-metadata.json`));
623
- const analyses = {
624
- architecture: JSON.parse(Read(`${outputDir}/analysis-architecture.json`)),
625
- functions: JSON.parse(Read(`${outputDir}/analysis-functions.json`)),
626
- algorithms: JSON.parse(Read(`${outputDir}/analysis-algorithms.json`)),
627
- data_structures: JSON.parse(Read(`${outputDir}/analysis-data_structures.json`)),
628
- interfaces: JSON.parse(Read(`${outputDir}/analysis-interfaces.json`)),
629
- exceptions: JSON.parse(Read(`${outputDir}/analysis-exceptions.json`))
630
- };
631
- const diagrams = loadAllDiagrams(`${outputDir}/diagrams/`);
632
- ```
633
-
634
- **Step 4.2: Generate Document Header**
635
-
636
- ```javascript
637
- const header = `
638
- <!-- 页眉:${metadata.software_name} - 版本号:${metadata.version} -->
639
- <!-- 注:最终文档页码位于每页右上角 -->
640
-
641
- # ${metadata.software_name} 软件设计说明书
642
-
643
- **版本号**:${metadata.version}
644
- **生成日期**:${new Date().toLocaleDateString('zh-CN')}
645
- **文档性质**:软件著作权鉴别材料
646
-
647
- ---
648
-
649
- `;
650
- ```
651
-
652
- **Step 4.3: Generate Each Section**
653
-
654
- ```javascript
655
- function generateSection1_Overview(metadata, analyses) {
656
- return `
657
- ## 1. 软件概述
658
-
659
- ### 1.1 软件背景与用途
660
-
661
- ${metadata.software_name}是一款${metadata.category}软件,主要用于${inferPurpose(analyses)}。
662
-
663
- 本软件基于${metadata.tech_stack.language}语言开发,采用${metadata.tech_stack.framework || '自研架构'}实现核心功能。
664
-
665
- ### 1.2 开发目标与特点
666
-
667
- **开发目标**:
668
- ${generateObjectives(analyses.functions)}
669
-
670
- **技术特点**:
671
- ${generateFeatures(analyses.architecture)}
672
-
673
- ### 1.3 运行环境与技术架构
674
-
675
- **运行环境**:
676
- - 操作系统:${metadata.tech_stack.os || '跨平台'}
677
- - 运行时:${metadata.tech_stack.runtime}
678
- - 依赖环境:${metadata.tech_stack.dependencies?.join('、') || '无特殊依赖'}
679
-
680
- **技术架构**:
681
- - 架构模式:${analyses.architecture.pattern || '模块化架构'}
682
- - 核心框架:${metadata.tech_stack.framework || '无'}
683
- - 主要技术栈:${metadata.tech_stack.main_technologies?.join('、') || metadata.tech_stack.language}
684
-
685
- `;
686
- }
687
-
688
- function generateSection2_Architecture(analyses, diagrams) {
689
- return `
690
- ## 2. 系统架构图
691
-
692
- 本章节展示${metadata.software_name}的整体系统架构,包括各主要模块之间的关系与核心数据流。
693
-
694
- \`\`\`mermaid
695
- ${diagrams.architecture}
696
- \`\`\`
697
-
698
- **图2-1 系统架构图**
699
-
700
- ### 架构说明
701
-
702
- ${generateArchitectureDescription(analyses.architecture)}
703
-
704
- **核心模块说明**:
705
-
706
- ${analyses.architecture.modules.map((m, i) =>
707
- `${i + 1}. **${m.name}**:${m.responsibility}`
708
- ).join('\n')}
709
-
710
- `;
711
- }
712
-
713
- function generateSection3_FunctionModules(analyses, diagrams) {
714
- return `
715
- ## 3. 功能模块设计
716
-
717
- 本章节详细描述各功能模块的设计与职责划分。
718
-
719
- \`\`\`mermaid
720
- ${diagrams.functions}
721
- \`\`\`
722
-
723
- **图3-1 功能模块结构图**
724
-
725
- ### 3.1 功能模块列表
726
-
727
- ${analyses.functions.feature_groups.map((group, gi) => `
728
- #### 3.1.${gi + 1} ${group.group_name}
729
-
730
- ${group.features.map((f, fi) =>
731
- `- **${f.name}**:${f.description}`
732
- ).join('\n')}
733
- `).join('\n')}
734
-
735
- ### 3.2 模块交互关系
736
-
737
- ${generateInteractionDescription(analyses.functions.interactions)}
738
-
739
- `;
740
- }
741
-
742
- function generateSection4_Algorithms(analyses, diagrams) {
743
- return `
744
- ## 4. 核心算法与流程
745
-
746
- 本章节描述软件中的核心算法实现与关键业务处理流程。
747
-
748
- ${analyses.algorithms.algorithms.slice(0, 5).map((algo, i) => `
749
- ### 4.${i + 1} ${algo.name}
750
-
751
- **功能描述**:${algo.description}
752
-
753
- **输入参数**:
754
- ${algo.inputs.map(input => `- \`${input.name}\`(${input.type}):${input.description}`).join('\n')}
755
-
756
- **输出结果**:
757
- ${algo.outputs.map(output => `- \`${output.name}\`(${output.type}):${output.description}`).join('\n')}
758
-
759
- **处理流程**:
760
-
761
- \`\`\`mermaid
762
- ${diagrams[`algorithm-${sanitizeId(algo.name)}`] || generateSimpleFlowchart(algo)}
763
- \`\`\`
764
-
765
- **图4-${i + 1} ${algo.name}流程图**
766
-
767
- **算法步骤说明**:
768
-
769
- ${algo.steps.map((step, si) =>
770
- `${si + 1}. ${step.description}`
771
- ).join('\n')}
772
-
773
- `).join('\n')}
774
- `;
775
- }
776
-
777
- function generateSection5_DataStructures(analyses, diagrams) {
778
- return `
779
- ## 5. 数据结构设计
780
-
781
- 本章节描述软件中使用的主要数据实体及其关系。
782
-
783
- \`\`\`mermaid
784
- ${diagrams['class-diagram']}
785
- \`\`\`
786
-
787
- **图5-1 数据结构类图**
788
-
789
- ### 5.1 主要数据实体
790
-
791
- ${analyses.data_structures.entities.map((entity, i) => `
792
- #### 5.1.${i + 1} ${entity.name}
793
-
794
- **类型**:${entity.type}
795
- **文件位置**:\`${entity.file}\`
796
-
797
- **属性列表**:
798
-
799
- | 属性名 | 类型 | 可见性 | 说明 |
800
- |--------|------|--------|------|
801
- ${entity.properties.map(p =>
802
- `| ${p.name} | ${p.type} | ${p.visibility} | ${p.description || '-'} |`
803
- ).join('\n')}
804
-
805
- `).join('\n')}
806
-
807
- ### 5.2 实体关系说明
808
-
809
- ${analyses.data_structures.relationships.map((rel, i) =>
810
- `${i + 1}. **${rel.from}** ${rel.type} **${rel.to}**:${rel.description || '关联关系'}`
811
- ).join('\n')}
812
-
813
- `;
814
- }
815
-
816
- function generateSection6_Interfaces(analyses, diagrams) {
817
- return `
818
- ## 6. 接口设计
819
-
820
- 本章节描述软件对外提供的接口定义。
821
-
822
- ${diagrams.sequence ? `
823
- \`\`\`mermaid
824
- ${diagrams.sequence}
825
- \`\`\`
826
-
827
- **图6-1 接口调用时序图**
828
- ` : ''}
829
-
830
- ### 6.1 接口列表
831
-
832
- ${analyses.interfaces.apis.map((api, i) => `
833
- #### 6.1.${i + 1} ${api.name}
834
-
835
- - **路径/命令**:\`${api.path}\`
836
- - **方法类型**:${api.method}
837
- - **功能描述**:${api.description}
838
-
839
- **请求参数**:
840
-
841
- | 参数名 | 类型 | 必填 | 说明 |
842
- |--------|------|------|------|
843
- ${api.parameters.map(p =>
844
- `| ${p.name} | ${p.type} | ${p.required ? '是' : '否'} | ${p.description} |`
845
- ).join('\n')}
846
-
847
- **返回结果**:
848
- - 类型:${api.response.type}
849
- - 说明:${api.response.description}
850
-
851
- `).join('\n')}
852
- `;
853
- }
854
-
855
- function generateSection7_Exceptions(analyses) {
856
- return `
857
- ## 7. 异常处理设计
858
-
859
- 本章节描述软件的异常处理机制与错误恢复策略。
860
-
861
- ### 7.1 异常类型定义
862
-
863
- ${analyses.exceptions.exception_types.map((ex, i) => `
864
- #### 7.1.${i + 1} ${ex.name}
865
-
866
- - **错误码**:\`${ex.code || 'N/A'}\`
867
- - **错误信息**:${ex.message}
868
- - **父类**:${ex.parent || '基础异常类'}
869
- - **定义位置**:\`${ex.file}\`
870
- `).join('\n')}
871
-
872
- ### 7.2 错误码说明
873
-
874
- | 错误码 | 错误信息 | 严重程度 | 类别 |
875
- |--------|----------|----------|------|
876
- ${analyses.exceptions.error_codes.map(e =>
877
- `| ${e.code} | ${e.message} | ${e.severity} | ${e.category} |`
878
- ).join('\n')}
879
-
880
- ### 7.3 异常处理策略
881
-
882
- ${analyses.exceptions.handling_patterns.map((pattern, i) => `
883
- **${i + 1}. ${pattern.pattern}**
884
-
885
- ${pattern.description}
886
-
887
- 应用位置:${pattern.locations.join('、')}
888
- `).join('\n')}
889
-
890
- ### 7.4 恢复机制
891
-
892
- ${analyses.exceptions.recovery_strategies.map((strategy, i) =>
893
- `${i + 1}. **${strategy.strategy}**:${strategy.action}(触发条件:${strategy.trigger})`
894
- ).join('\n')}
895
-
896
- `;
897
- }
898
- ```
899
-
900
- **Step 4.4: Assemble Final Document**
901
-
902
- ```javascript
903
- const documentContent = [
904
- header,
905
- generateSection1_Overview(metadata, analyses),
906
- generateSection2_Architecture(analyses, diagrams),
907
- generateSection3_FunctionModules(analyses, diagrams),
908
- generateSection4_Algorithms(analyses, diagrams),
909
- generateSection5_DataStructures(analyses, diagrams),
910
- generateSection6_Interfaces(analyses, diagrams),
911
- generateSection7_Exceptions(analyses)
912
- ].join('\n');
913
-
914
- const documentPath = `${outputDir}/${metadata.software_name}-软件设计说明书.md`;
915
- Write(documentPath, documentContent);
916
- ```
917
-
918
- **Step 4.5: CPCC Compliance Check**
919
-
920
- ```javascript
921
- function validateCPCCCompliance(document, analyses) {
922
- const checks = [
923
- {name: "软件概述完整性", pass: document.includes("## 1. 软件概述")},
924
- {name: "系统架构图存在", pass: document.includes("图2-1 系统架构图")},
925
- {name: "功能模块设计完整", pass: document.includes("## 3. 功能模块设计")},
926
- {name: "核心算法描述", pass: document.includes("## 4. 核心算法与流程")},
927
- {name: "数据结构设计", pass: document.includes("## 5. 数据结构设计")},
928
- {name: "接口设计说明", pass: document.includes("## 6. 接口设计")},
929
- {name: "异常处理设计", pass: document.includes("## 7. 异常处理设计")},
930
- {name: "Mermaid图表语法", pass: !document.includes("mermaid error")},
931
- {name: "页眉信息", pass: document.includes("页眉")},
932
- {name: "页码说明", pass: document.includes("页码")}
933
- ];
934
-
935
- return {
936
- passed: checks.filter(c => c.pass).length,
937
- total: checks.length,
938
- details: checks
939
- };
940
- }
941
-
942
- const compliance = validateCPCCCompliance(documentContent, analyses);
943
- console.log(`CPCC 合规检查: ${compliance.passed}/${compliance.total} 项通过`);
944
- ```
945
-
946
- **TodoWrite**: Mark Phase 4 completed, Phase 5 in_progress
947
-
948
- ---
949
-
950
- ### Phase 5: Iterative Refinement (Discovery-Driven)
951
-
952
- **Purpose**: Refine document based on analysis gaps and user feedback
953
-
954
- **Step 5.1: Extract Document Gaps**
955
-
956
- ```javascript
957
- function extractDocumentGaps(analyses, document) {
958
- return {
959
- // Missing descriptions
960
- missingDescriptions: analyses.functions.features
961
- .filter(f => !f.description || f.description.length < 20),
962
-
963
- // Low confidence analyses
964
- lowConfidenceAreas: Object.entries(analyses)
965
- .flatMap(([dim, data]) =>
966
- (data.confidence_scores || []).filter(s => s.score < 0.7)
967
- ),
968
-
969
- // Complex areas needing clarification
970
- complexAreas: analyses.algorithms.algorithms
971
- .filter(a => a.complexity === 'high' && a.steps.length < 3),
972
-
973
- // Incomplete relationships
974
- incompleteRelationships: analyses.data_structures.relationships
975
- .filter(r => !r.description),
976
-
977
- // Missing exception handling
978
- missingExceptionHandling: analyses.exceptions.exception_types
979
- .filter(e => !e.message || e.message === 'Unknown')
980
- };
981
- }
982
-
983
- const gaps = extractDocumentGaps(analyses, documentContent);
984
- ```
985
-
986
- **Step 5.2: Generate Targeted Questions**
987
-
988
- ```javascript
989
- function buildRefinementQuestions(gaps, metadata) {
990
- const questions = [];
991
-
992
- // Question about missing feature descriptions
993
- if (gaps.missingDescriptions.length > 0) {
994
- questions.push({
995
- question: `以下功能缺少详细描述,请选择需要补充说明的功能:`,
996
- header: "功能描述",
997
- multiSelect: true,
998
- options: gaps.missingDescriptions.slice(0, 4).map(f => ({
999
- label: f.name,
1000
- description: `文件: ${f.entry_file} - 当前描述不完整`
1001
- }))
1002
- });
1003
- }
1004
-
1005
- // Question about complex algorithms
1006
- if (gaps.complexAreas.length > 0) {
1007
- questions.push({
1008
- question: `发现 ${gaps.complexAreas.length} 个复杂算法的流程描述不够详细,是否需要深入分析?`,
1009
- header: "算法详解",
1010
- multiSelect: false,
1011
- options: [
1012
- {label: "是,详细分析所有", description: "为所有复杂算法生成详细流程图"},
1013
- {label: "选择性分析", description: "仅分析最核心的算法"},
1014
- {label: "保持现状", description: "当前描述已足够"}
1015
- ]
1016
- });
1017
- }
1018
-
1019
- // Question about data relationships
1020
- if (gaps.incompleteRelationships.length > 0) {
1021
- questions.push({
1022
- question: `发现 ${gaps.incompleteRelationships.length} 个数据实体关系缺少说明,是否补充?`,
1023
- header: "数据关系",
1024
- multiSelect: false,
1025
- options: [
1026
- {label: "自动推断并补充", description: "基于代码分析自动补充关系说明"},
1027
- {label: "跳过", description: "保持当前状态"}
1028
- ]
1029
- });
1030
- }
1031
-
1032
- // Final action question
1033
- questions.push({
1034
- question: "如何处理当前文档?",
1035
- header: "操作",
1036
- multiSelect: false,
1037
- options: [
1038
- {label: "继续优化", description: "应用上述选择并继续检查"},
1039
- {label: "完成文档", description: "当前文档已满足需求,生成最终版本"},
1040
- {label: "调整范围", description: "修改分析范围或重点"}
1041
- ]
1042
- });
1043
-
1044
- return questions.slice(0, 4);
1045
- }
1046
-
1047
- const refinementQuestions = buildRefinementQuestions(gaps, metadata);
1048
- AskUserQuestion({questions: refinementQuestions});
1049
- ```
1050
-
1051
- **Step 5.3: Apply Refinements**
1052
-
1053
- ```javascript
1054
- async function applyRefinements(responses, gaps, outputDir) {
1055
- const updates = [];
1056
-
1057
- if (responses.功能描述) {
1058
- // Re-analyze selected features with deeper exploration
1059
- for (const feature of responses.功能描述) {
1060
- const deepAnalysis = await Task({
1061
- subagent_type: "cli-explore-agent",
1062
- prompt: `深入分析功能 ${feature.name},提供详细描述...`
1063
- });
1064
- updates.push({type: 'feature_description', data: deepAnalysis});
1065
- }
1066
- }
1067
-
1068
- if (responses.算法详解 === "是,详细分析所有") {
1069
- // Generate detailed flowcharts for complex algorithms
1070
- for (const algo of gaps.complexAreas) {
1071
- const detailedFlow = await analyzeAlgorithmInDepth(algo);
1072
- updates.push({type: 'algorithm_flowchart', data: detailedFlow});
1073
- }
1074
- }
1075
-
1076
- if (responses.数据关系 === "自动推断并补充") {
1077
- // Infer relationship descriptions from code
1078
- const inferences = await inferRelationshipDescriptions(gaps.incompleteRelationships);
1079
- updates.push({type: 'relationship_descriptions', data: inferences});
1080
- }
1081
-
1082
- return updates;
1083
- }
1084
-
1085
- const updates = await applyRefinements(user_responses, gaps, outputDir);
1086
- ```
1087
-
1088
- **Step 5.4: Regenerate Affected Sections**
1089
-
1090
- ```javascript
1091
- // Update document with refinements
1092
- for (const update of updates) {
1093
- switch (update.type) {
1094
- case 'feature_description':
1095
- analyses.functions = mergeFeatureDescriptions(analyses.functions, update.data);
1096
- break;
1097
- case 'algorithm_flowchart':
1098
- diagrams[`algorithm-${update.data.name}`] = update.data.flowchart;
1099
- break;
1100
- case 'relationship_descriptions':
1101
- analyses.data_structures.relationships = update.data;
1102
- break;
1103
- }
1104
- }
1105
-
1106
- // Regenerate document
1107
- const updatedDocument = regenerateDocument(metadata, analyses, diagrams);
1108
- Write(documentPath, updatedDocument);
1109
- Write(`${outputDir}/iterations/v${iteration_count}.md`, documentContent); // Archive
1110
- ```
1111
-
1112
- **Step 5.5: Loop or Finalize**
1113
-
1114
- ```javascript
1115
- if (user_responses.操作 === "完成文档") {
1116
- finalized = true;
1117
- } else if (user_responses.操作 === "调整范围") {
1118
- goto Phase1_Step1_3;
1119
- } else {
1120
- iteration_count++;
1121
- if (iteration_count > 5) {
1122
- console.log("已达到最大迭代次数,建议完成文档");
1123
- }
1124
- goto Step5.1;
1125
- }
1126
- ```
1127
-
1128
- ---
1129
-
1130
- ### Finalization
1131
-
1132
- **Step 6.1: Generate Final Document**
1133
-
1134
- ```javascript
1135
- const finalDocument = `
1136
- ${header}
1137
-
1138
- ${documentContent}
1139
-
1140
- ---
1141
-
1142
- **文档生成信息**
1143
-
1144
- - 生成工具:/workflow:docs:copyright
1145
- - 分析范围:${metadata.scope_path}
1146
- - 迭代次数:${iteration_count}
1147
- - 生成时间:${new Date().toISOString()}
1148
-
1149
- ---
1150
-
1151
- *本文档基于源代码自动分析生成,所有描述均来源于代码实现。*
1152
- `;
1153
-
1154
- Write(documentPath, finalDocument);
1155
- ```
1156
-
1157
- **Step 6.2: Output Summary**
1158
-
1159
- ```markdown
1160
- ## 软件著作权设计说明书生成完成
1161
-
1162
- **软件名称**:${metadata.software_name}
1163
- **版本号**:${metadata.version}
1164
- **文档路径**:${documentPath}
1165
-
1166
- ### 文档统计
1167
- - 总章节数:7
1168
- - Mermaid 图表数:${Object.keys(diagrams).length}
1169
- - 功能模块数:${analyses.functions.feature_list.length}
1170
- - 数据实体数:${analyses.data_structures.entities.length}
1171
- - 接口数量:${analyses.interfaces.apis.length}
1172
-
1173
- ### CPCC 合规检查
1174
- ${compliance.details.map(c => `- [${c.pass ? '✓' : '✗'}] ${c.name}`).join('\n')}
1175
-
1176
- ### 后续步骤
1177
- 1. 检查生成的 Mermaid 图表是否正确渲染
1178
- 2. 补充任何需要人工说明的细节
1179
- 3. 将文档转换为 PDF 格式(A4 纵向)
1180
- 4. 确认页眉、页码格式符合要求
1181
- ```
1182
-
1183
- **TodoWrite**: Mark all phases completed
1184
-
1185
- ---
1186
-
1187
- ## Mermaid 语法规范
1188
-
1189
- **关键规则**(确保图表正确渲染):
1190
-
1191
- ```javascript
1192
- // 1. 特殊字符转义 - 使用双引号包裹
1193
- // 正确
1194
- A["处理(数据)"] --> B["验证{结果}"]
1195
-
1196
- // 错误
1197
- A[处理(数据)] --> B[验证{结果}]
1198
-
1199
- // 2. 边标签转义
1200
- // 正确
1201
- A -->|"调用(参数)"| B
1202
-
1203
- // 错误
1204
- A -->|调用(参数)| B
1205
-
1206
- // 3. 节点 ID 规范 - 仅使用字母数字下划线
1207
- // 正确
1208
- UserService --> AuthModule
1209
-
1210
- // 错误
1211
- User-Service --> Auth.Module
1212
-
1213
- // 4. 子图标题
1214
- // 正确
1215
- subgraph ServiceLayer["服务层(核心)"]
1216
-
1217
- // 错误
1218
- subgraph ServiceLayer[服务层(核心)]
1219
- ```
1220
-
1221
- ## Usage Examples
1222
-
1223
- ```bash
1224
- # 交互式生成(引导输入所有信息)
1225
- /workflow:docs:copyright src/
1226
-
1227
- # 指定软件名称和版本
1228
- /workflow:docs:copyright src/ --name="智能数据分析系统" --version="V1.0.0"
1229
-
1230
- # 分析特定模块
1231
- /workflow:docs:copyright src/core --name="核心处理引擎" --version="V2.1.0"
1232
- ```
1233
-
1234
- ## Output Structure
1235
-
1236
- ```
1237
- .workflow/.scratchpad/copyright-{timestamp}/
1238
- ├── project-metadata.json # 软件元数据
1239
- ├── project-discovery.json # 项目发现结果
1240
- ├── analysis-architecture.json # 架构分析
1241
- ├── analysis-functions.json # 功能分析
1242
- ├── analysis-algorithms.json # 算法分析
1243
- ├── analysis-data_structures.json # 数据结构分析
1244
- ├── analysis-interfaces.json # 接口分析
1245
- ├── analysis-exceptions.json # 异常处理分析
1246
- ├── diagrams/ # Mermaid 图表
1247
- │ ├── architecture.mmd
1248
- │ ├── functions.mmd
1249
- │ ├── class-diagram.mmd
1250
- │ ├── algorithm-*.mmd
1251
- │ └── sequence-*.mmd
1252
- ├── iterations/ # 迭代版本
1253
- │ ├── v1.md
1254
- │ └── ...
1255
- └── {软件名称}-软件设计说明书.md # 最终文档
1256
- ```
1257
-
1258
- ## Related Commands
1259
-
1260
- **Follow-up Commands**:
1261
- - `/workflow:analyze` - 更深入的项目分析
1262
- - `/memory:docs` - 生成技术文档
1263
-
1264
- **Alternative Commands**:
1265
- - `/workflow:docs:copyright --lite` - 简化版(仅生成必要章节)