claude-code-workflow 7.2.28 → 7.2.30

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 (348) hide show
  1. package/.ccw/workflows/cli-templates/schemas/plan-overview-base-schema.json +2 -2
  2. package/.ccw/workflows/cli-templates/schemas/task-schema.json +14 -7
  3. package/.claude/agents/action-planning-agent.md +7 -4
  4. package/.claude/agents/cli-explore-agent.md +77 -63
  5. package/.claude/agents/cli-lite-planning-agent.md +11 -10
  6. package/.claude/agents/issue-plan-agent.md +421 -426
  7. package/.claude/commands/workflow/spec/setup.md +1 -1
  8. package/.claude/skills/ccw-chain/SKILL.md +119 -0
  9. package/.claude/skills/ccw-chain/chains/ccw-cycle.json +21 -0
  10. package/.claude/skills/ccw-chain/chains/ccw-exploration.json +47 -0
  11. package/.claude/skills/ccw-chain/chains/ccw-issue.json +33 -0
  12. package/.claude/skills/ccw-chain/chains/ccw-lightweight.json +57 -0
  13. package/.claude/skills/ccw-chain/chains/ccw-main.json +52 -0
  14. package/.claude/skills/ccw-chain/chains/ccw-standard.json +39 -0
  15. package/.claude/skills/ccw-chain/chains/ccw-team.json +10 -0
  16. package/.claude/skills/ccw-chain/chains/ccw-with-file.json +31 -0
  17. package/.claude/skills/ccw-chain/phases/analyze-with-file.md +788 -0
  18. package/.claude/skills/ccw-chain/phases/brainstorm/SKILL.md +408 -0
  19. package/.claude/skills/ccw-chain/phases/brainstorm/phases/01-mode-routing.md +207 -0
  20. package/.claude/skills/ccw-chain/phases/brainstorm/phases/02-artifacts.md +567 -0
  21. package/.claude/skills/ccw-chain/phases/brainstorm/phases/03-role-analysis.md +748 -0
  22. package/.claude/skills/ccw-chain/phases/brainstorm/phases/04-synthesis.md +827 -0
  23. package/.claude/skills/ccw-chain/phases/brainstorm-with-file.md +482 -0
  24. package/.claude/skills/ccw-chain/phases/collaborative-plan-with-file.md +639 -0
  25. package/.claude/skills/ccw-chain/phases/debug-with-file.md +656 -0
  26. package/.claude/skills/ccw-chain/phases/integration-test-cycle.md +936 -0
  27. package/.claude/skills/ccw-chain/phases/issue-convert-to-plan.md +720 -0
  28. package/.claude/skills/ccw-chain/phases/issue-discover.md +483 -0
  29. package/.claude/skills/ccw-chain/phases/issue-execute.md +629 -0
  30. package/.claude/skills/ccw-chain/phases/issue-from-brainstorm.md +382 -0
  31. package/.claude/skills/ccw-chain/phases/issue-plan.md +343 -0
  32. package/.claude/skills/ccw-chain/phases/issue-queue.md +464 -0
  33. package/.claude/skills/ccw-chain/phases/refactor-cycle.md +852 -0
  34. package/.claude/skills/ccw-chain/phases/review-cycle/SKILL.md +132 -0
  35. package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-fix.md +760 -0
  36. package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-module.md +764 -0
  37. package/.claude/skills/ccw-chain/phases/review-cycle/phases/review-session.md +775 -0
  38. package/.claude/skills/ccw-chain/phases/roadmap-with-file.md +544 -0
  39. package/.claude/skills/ccw-chain/phases/spec-generator/SKILL.md +338 -0
  40. package/.claude/skills/ccw-chain/phases/spec-generator/phases/01-5-requirement-clarification.md +404 -0
  41. package/.claude/skills/ccw-chain/phases/spec-generator/phases/01-discovery.md +257 -0
  42. package/.claude/skills/ccw-chain/phases/spec-generator/phases/02-product-brief.md +274 -0
  43. package/.claude/skills/ccw-chain/phases/spec-generator/phases/03-requirements.md +184 -0
  44. package/.claude/skills/ccw-chain/phases/spec-generator/phases/04-architecture.md +248 -0
  45. package/.claude/skills/ccw-chain/phases/spec-generator/phases/05-epics-stories.md +178 -0
  46. package/.claude/skills/ccw-chain/phases/spec-generator/phases/06-5-auto-fix.md +144 -0
  47. package/.claude/skills/ccw-chain/phases/spec-generator/phases/06-readiness-check.md +480 -0
  48. package/.claude/skills/ccw-chain/phases/team-planex.md +123 -0
  49. package/.claude/skills/ccw-chain/phases/ui-design-explore-auto.md +678 -0
  50. package/.claude/skills/ccw-chain/phases/unified-execute-with-file.md +870 -0
  51. package/.claude/skills/ccw-chain/phases/workflow-execute/SKILL.md +625 -0
  52. package/.claude/skills/ccw-chain/phases/workflow-execute/phases/06-review.md +215 -0
  53. package/.claude/skills/ccw-chain/phases/workflow-lite-plan.md +616 -0
  54. package/.claude/skills/ccw-chain/phases/workflow-multi-cli-plan.md +424 -0
  55. package/.claude/skills/ccw-chain/phases/workflow-plan/SKILL.md +466 -0
  56. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/01-session-discovery.md +99 -0
  57. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/02-context-gathering.md +338 -0
  58. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/03-conflict-resolution.md +422 -0
  59. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/04-task-generation.md +440 -0
  60. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/05-plan-verify.md +395 -0
  61. package/.claude/skills/ccw-chain/phases/workflow-plan/phases/06-replan.md +594 -0
  62. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/SKILL.md +527 -0
  63. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/01-session-discovery.md +57 -0
  64. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/02-context-gathering.md +407 -0
  65. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/03-test-coverage-analysis.md +172 -0
  66. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/04-conflict-resolution.md +426 -0
  67. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/05-tdd-task-generation.md +473 -0
  68. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/06-tdd-structure-validation.md +189 -0
  69. package/.claude/skills/ccw-chain/phases/workflow-tdd-plan/phases/07-tdd-verify.md +635 -0
  70. package/.claude/skills/ccw-chain/phases/workflow-test-fix/SKILL.md +482 -0
  71. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/01-session-start.md +60 -0
  72. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/02-test-context-gather.md +493 -0
  73. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/03-test-concept-enhanced.md +150 -0
  74. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/04-test-task-generate.md +346 -0
  75. package/.claude/skills/ccw-chain/phases/workflow-test-fix/phases/05-test-cycle-execute.md +538 -0
  76. package/.claude/skills/ccw-chain/specs/auto-mode.md +47 -0
  77. package/.claude/skills/ccw-chain/specs/intent-patterns.md +60 -0
  78. package/.claude/skills/chain-loader/SKILL.md +78 -0
  79. package/.claude/skills/chain-loader/phases/01-analyze-skill.md +53 -0
  80. package/.claude/skills/chain-loader/phases/02-design-graph.md +73 -0
  81. package/.claude/skills/chain-loader/phases/03-generate-validate.md +75 -0
  82. package/.claude/skills/chain-loader/specs/chain-schema.md +99 -0
  83. package/.claude/skills/chain-loader/specs/design-patterns.md +99 -0
  84. package/.claude/skills/chain-loader/templates/chain-json.md +63 -0
  85. package/.claude/skills/review-cycle/phases/review-module.md +764 -764
  86. package/.claude/skills/review-cycle/phases/review-session.md +775 -775
  87. package/.claude/skills/workflow-multi-cli-plan/SKILL.md +2 -2
  88. package/.claude/skills/workflow-plan/phases/03-conflict-resolution.md +422 -422
  89. package/.claude/skills/workflow-plan/phases/05-plan-verify.md +395 -395
  90. package/.claude/skills/workflow-tdd-plan/phases/02-context-gathering.md +407 -407
  91. package/.claude/skills/workflow-tdd-plan/phases/04-conflict-resolution.md +426 -426
  92. package/.claude/skills/workflow-test-fix/phases/02-test-context-gather.md +493 -493
  93. package/.codex/skills/brainstorm/SKILL.md +3 -3
  94. package/.codex/skills/clean/SKILL.md +3 -3
  95. package/.codex/skills/issue-discover/SKILL.md +13 -13
  96. package/.codex/skills/issue-discover/phases/02-discover.md +4 -4
  97. package/.codex/skills/issue-discover/phases/03-discover-by-prompt.md +3 -3
  98. package/.codex/skills/parallel-dev-cycle/SKILL.md +4 -4
  99. package/.codex/skills/parallel-dev-cycle/phases/02-agent-execution.md +6 -6
  100. package/.codex/skills/parallel-dev-cycle/phases/03-result-aggregation.md +10 -10
  101. package/.codex/skills/review-cycle/SKILL.md +10 -10
  102. package/.codex/skills/review-cycle/phases/02-parallel-review.md +6 -6
  103. package/.codex/skills/review-cycle/phases/04-iterative-deep-dive.md +4 -4
  104. package/.codex/skills/review-cycle/phases/07-fix-parallel-planning.md +4 -4
  105. package/.codex/skills/review-cycle/phases/08-fix-execution.md +2 -2
  106. package/.codex/skills/roadmap-with-file/SKILL.md +14 -14
  107. package/.codex/skills/spec-generator/README.md +1 -1
  108. package/.codex/skills/spec-generator/SKILL.md +184 -88
  109. package/.codex/skills/spec-generator/phases/01-5-requirement-clarification.md +4 -7
  110. package/.codex/skills/spec-generator/phases/01-discovery.md +30 -11
  111. package/.codex/skills/spec-generator/phases/02-product-brief.md +2 -5
  112. package/.codex/skills/spec-generator/phases/03-requirements.md +4 -6
  113. package/.codex/skills/spec-generator/phases/04-architecture.md +4 -6
  114. package/.codex/skills/spec-generator/phases/05-epics-stories.md +4 -6
  115. package/.codex/skills/spec-generator/phases/06-5-auto-fix.md +4 -5
  116. package/.codex/skills/spec-generator/phases/06-readiness-check.md +8 -8
  117. package/.codex/skills/spec-generator/phases/07-issue-export.md +2 -2
  118. package/.codex/skills/spec-setup/SKILL.md +4 -4
  119. package/.codex/skills/workflow-plan/SKILL.md +6 -6
  120. package/.codex/skills/workflow-tdd-plan/SKILL.md +5 -5
  121. package/.codex/skills/workflow-test-fix-cycle/SKILL.md +19 -19
  122. package/.codex/skills/workflow-test-fix-cycle/phases/01-test-fix-gen.md +5 -5
  123. package/.codex/skills/workflow-test-fix-cycle/phases/02-test-cycle-execute.md +5 -5
  124. package/README.md +14 -0
  125. package/ccw/dist/core/routes/litellm-api-routes.d.ts.map +1 -1
  126. package/ccw/dist/core/routes/litellm-api-routes.js +0 -23
  127. package/ccw/dist/core/routes/litellm-api-routes.js.map +1 -1
  128. package/ccw/dist/tools/chain-loader.d.ts +10 -0
  129. package/ccw/dist/tools/chain-loader.d.ts.map +1 -0
  130. package/ccw/dist/tools/chain-loader.js +642 -0
  131. package/ccw/dist/tools/chain-loader.js.map +1 -0
  132. package/ccw/dist/tools/index.d.ts.map +1 -1
  133. package/ccw/dist/tools/index.js +2 -0
  134. package/ccw/dist/tools/index.js.map +1 -1
  135. package/ccw/dist/tools/json-builder.js +20 -0
  136. package/ccw/dist/tools/json-builder.js.map +1 -1
  137. package/ccw/dist/types/chain-types.d.ts +72 -0
  138. package/ccw/dist/types/chain-types.d.ts.map +1 -0
  139. package/ccw/dist/types/chain-types.js +5 -0
  140. package/ccw/dist/types/chain-types.js.map +1 -0
  141. package/ccw/frontend/dist/assets/{AlertDialog-BjP1ydDR.js → AlertDialog-exlTDW81.js} +3 -3
  142. package/ccw/frontend/dist/assets/{AlertDialog-BjP1ydDR.js.map → AlertDialog-exlTDW81.js.map} +1 -1
  143. package/ccw/frontend/dist/assets/{AnalysisPage-CAX3xqMf.js → AnalysisPage-cgV9LfAI.js} +2 -2
  144. package/ccw/frontend/dist/assets/{AnalysisPage-CAX3xqMf.js.map → AnalysisPage-cgV9LfAI.js.map} +1 -1
  145. package/ccw/frontend/dist/assets/{ApiSettingsPage-CtWlmztq.js → ApiSettingsPage-Dk5jJdWt.js} +2 -2
  146. package/ccw/frontend/dist/assets/{ApiSettingsPage-CtWlmztq.js.map → ApiSettingsPage-Dk5jJdWt.js.map} +1 -1
  147. package/ccw/frontend/dist/assets/{CliModeToggle-hR4a-eLX.js → CliModeToggle-Be9xsPiv.js} +2 -2
  148. package/ccw/frontend/dist/assets/{CliModeToggle-hR4a-eLX.js.map → CliModeToggle-Be9xsPiv.js.map} +1 -1
  149. package/ccw/frontend/dist/assets/{CliSessionSharePage-DzNPkFN9.js → CliSessionSharePage-Bh9jBtPI.js} +2 -2
  150. package/ccw/frontend/dist/assets/{CliSessionSharePage-DzNPkFN9.js.map → CliSessionSharePage-Bh9jBtPI.js.map} +1 -1
  151. package/ccw/frontend/dist/assets/{CliViewerPage-BPEGN4TT.js → CliViewerPage-BrE-oyEq.js} +2 -2
  152. package/ccw/frontend/dist/assets/{CliViewerPage-BPEGN4TT.js.map → CliViewerPage-BrE-oyEq.js.map} +1 -1
  153. package/ccw/frontend/dist/assets/{CodexLensPage-Cf0r2RHY.js → CodexLensPage-Cd3nrC93.js} +2 -2
  154. package/ccw/frontend/dist/assets/{CodexLensPage-Cf0r2RHY.js.map → CodexLensPage-Cd3nrC93.js.map} +1 -1
  155. package/ccw/frontend/dist/assets/{Collapsible-DEm1rJ4h.js → Collapsible-DXFl3VKF.js} +2 -2
  156. package/ccw/frontend/dist/assets/{Collapsible-DEm1rJ4h.js.map → Collapsible-DXFl3VKF.js.map} +1 -1
  157. package/ccw/frontend/dist/assets/{CommandsManagerPage-BpeWw8HO.js → CommandsManagerPage-IV8zpjgX.js} +2 -2
  158. package/ccw/frontend/dist/assets/{CommandsManagerPage-BpeWw8HO.js.map → CommandsManagerPage-IV8zpjgX.js.map} +1 -1
  159. package/ccw/frontend/dist/assets/{DeepWikiPage-BEsmh2vF.js → DeepWikiPage-CpDxtmRX.js} +2 -2
  160. package/ccw/frontend/dist/assets/{DeepWikiPage-BEsmh2vF.js.map → DeepWikiPage-CpDxtmRX.js.map} +1 -1
  161. package/ccw/frontend/dist/assets/{EndpointsPage-B30SFdtU.js → EndpointsPage-BchjWe7s.js} +2 -2
  162. package/ccw/frontend/dist/assets/{EndpointsPage-B30SFdtU.js.map → EndpointsPage-BchjWe7s.js.map} +1 -1
  163. package/ccw/frontend/dist/assets/{ExplorerPage-BVvMpg1O.js → ExplorerPage-CbWvaJ0y.js} +2 -2
  164. package/ccw/frontend/dist/assets/{ExplorerPage-BVvMpg1O.js.map → ExplorerPage-CbWvaJ0y.js.map} +1 -1
  165. package/ccw/frontend/dist/assets/{FixSessionPage-CL73dHbh.js → FixSessionPage-YMjVRiCk.js} +2 -2
  166. package/ccw/frontend/dist/assets/{FixSessionPage-CL73dHbh.js.map → FixSessionPage-YMjVRiCk.js.map} +1 -1
  167. package/ccw/frontend/dist/assets/{FloatingFileBrowser-BL-28lMZ.js → FloatingFileBrowser-JW2ehYY_.js} +2 -2
  168. package/ccw/frontend/dist/assets/{FloatingFileBrowser-BL-28lMZ.js.map → FloatingFileBrowser-JW2ehYY_.js.map} +1 -1
  169. package/ccw/frontend/dist/assets/{FloatingPanel-BzZDciHZ.js → FloatingPanel-BtqzqDVq.js} +2 -2
  170. package/ccw/frontend/dist/assets/{FloatingPanel-BzZDciHZ.js.map → FloatingPanel-BtqzqDVq.js.map} +1 -1
  171. package/ccw/frontend/dist/assets/{GraphExplorerPage-CDp6-d8P.js → GraphExplorerPage-BsJL_W4d.js} +3 -3
  172. package/ccw/frontend/dist/assets/{GraphExplorerPage-CDp6-d8P.js.map → GraphExplorerPage-BsJL_W4d.js.map} +1 -1
  173. package/ccw/frontend/dist/assets/{HistoryPage-fZY_7O9n.js → HistoryPage-BuWpQ7k5.js} +2 -2
  174. package/ccw/frontend/dist/assets/{HistoryPage-fZY_7O9n.js.map → HistoryPage-BuWpQ7k5.js.map} +1 -1
  175. package/ccw/frontend/dist/assets/{HookManagerPage-4LJeC9bq.js → HookManagerPage-D0BtMIWy.js} +2 -2
  176. package/ccw/frontend/dist/assets/{HookManagerPage-4LJeC9bq.js.map → HookManagerPage-D0BtMIWy.js.map} +1 -1
  177. package/ccw/frontend/dist/assets/{InstallationsPage-Bpigrbhw.js → InstallationsPage-C7dwsAKG.js} +2 -2
  178. package/ccw/frontend/dist/assets/{InstallationsPage-Bpigrbhw.js.map → InstallationsPage-C7dwsAKG.js.map} +1 -1
  179. package/ccw/frontend/dist/assets/{IssueHubPage-BP0zJc1R.js → IssueHubPage-D0nCNaeB.js} +2 -2
  180. package/ccw/frontend/dist/assets/{IssueHubPage-BP0zJc1R.js.map → IssueHubPage-D0nCNaeB.js.map} +1 -1
  181. package/ccw/frontend/dist/assets/{LiteTasksPage-CSt2oVKQ.js → LiteTasksPage-B5c2Kb9r.js} +3 -3
  182. package/ccw/frontend/dist/assets/{LiteTasksPage-CSt2oVKQ.js.map → LiteTasksPage-B5c2Kb9r.js.map} +1 -1
  183. package/ccw/frontend/dist/assets/{McpManagerPage-B-xaMA0w.js → McpManagerPage-C-S5CehM.js} +2 -2
  184. package/ccw/frontend/dist/assets/{McpManagerPage-B-xaMA0w.js.map → McpManagerPage-C-S5CehM.js.map} +1 -1
  185. package/ccw/frontend/dist/assets/{MemoryPage-CJqo_7DY.js → MemoryPage-P_B0JVUQ.js} +2 -2
  186. package/ccw/frontend/dist/assets/{MemoryPage-CJqo_7DY.js.map → MemoryPage-P_B0JVUQ.js.map} +1 -1
  187. package/ccw/frontend/dist/assets/{NotFoundPage-ibZeQA-Y.js → NotFoundPage-S4Jn9LUE.js} +2 -2
  188. package/ccw/frontend/dist/assets/{NotFoundPage-ibZeQA-Y.js.map → NotFoundPage-S4Jn9LUE.js.map} +1 -1
  189. package/ccw/frontend/dist/assets/{OrchestratorPage-DgJ4ctPQ.js → OrchestratorPage-C2Zlr7AC.js} +2 -2
  190. package/ccw/frontend/dist/assets/{OrchestratorPage-DgJ4ctPQ.js.map → OrchestratorPage-C2Zlr7AC.js.map} +1 -1
  191. package/ccw/frontend/dist/assets/{ProjectOverviewPage-Cit0Yq0D.js → ProjectOverviewPage-CMVfz8s5.js} +2 -2
  192. package/ccw/frontend/dist/assets/{ProjectOverviewPage-Cit0Yq0D.js.map → ProjectOverviewPage-CMVfz8s5.js.map} +1 -1
  193. package/ccw/frontend/dist/assets/{PromptHistoryPage-Ce1HDIK0.js → PromptHistoryPage-YEMjFARX.js} +3 -3
  194. package/ccw/frontend/dist/assets/{PromptHistoryPage-Ce1HDIK0.js.map → PromptHistoryPage-YEMjFARX.js.map} +1 -1
  195. package/ccw/frontend/dist/assets/{ReviewSessionPage-J1KikNrk.js → ReviewSessionPage-DnTm55nG.js} +2 -2
  196. package/ccw/frontend/dist/assets/{ReviewSessionPage-J1KikNrk.js.map → ReviewSessionPage-DnTm55nG.js.map} +1 -1
  197. package/ccw/frontend/dist/assets/{RulesManagerPage-CdBjTmth.js → RulesManagerPage-CUwebtO2.js} +2 -2
  198. package/ccw/frontend/dist/assets/{RulesManagerPage-CdBjTmth.js.map → RulesManagerPage-CUwebtO2.js.map} +1 -1
  199. package/ccw/frontend/dist/assets/{SessionDetailPage-B9ZK7LvX.js → SessionDetailPage-0qyH1Z5P.js} +2 -2
  200. package/ccw/frontend/dist/assets/{SessionDetailPage-B9ZK7LvX.js.map → SessionDetailPage-0qyH1Z5P.js.map} +1 -1
  201. package/ccw/frontend/dist/assets/{SessionsPage-CW_nS5UR.js → SessionsPage-BpgP4087.js} +2 -2
  202. package/ccw/frontend/dist/assets/{SessionsPage-CW_nS5UR.js.map → SessionsPage-BpgP4087.js.map} +1 -1
  203. package/ccw/frontend/dist/assets/SettingsPage-C3SJajeT.js +150 -0
  204. package/ccw/frontend/dist/assets/SettingsPage-C3SJajeT.js.map +1 -0
  205. package/ccw/frontend/dist/assets/SkillsManagerPage-vD9PTsmy.js +7 -0
  206. package/ccw/frontend/dist/assets/SkillsManagerPage-vD9PTsmy.js.map +1 -0
  207. package/ccw/frontend/dist/assets/{SpecsSettingsPage-DJpi9XQL.js → SpecsSettingsPage-DT-yTVkD.js} +4 -4
  208. package/ccw/frontend/dist/assets/{SpecsSettingsPage-DJpi9XQL.js.map → SpecsSettingsPage-DT-yTVkD.js.map} +1 -1
  209. package/ccw/frontend/dist/assets/{Switch-Ac6Ov7uy.js → Switch-CYSPdqWk.js} +2 -2
  210. package/ccw/frontend/dist/assets/{Switch-Ac6Ov7uy.js.map → Switch-CYSPdqWk.js.map} +1 -1
  211. package/ccw/frontend/dist/assets/{TabsNavigation-DZAAspqR.js → TabsNavigation-CPh6Zor1.js} +2 -2
  212. package/ccw/frontend/dist/assets/{TabsNavigation-DZAAspqR.js.map → TabsNavigation-CPh6Zor1.js.map} +1 -1
  213. package/ccw/frontend/dist/assets/{TaskDrawer-BJkwfhIZ.js → TaskDrawer-Ds-8830B.js} +2 -2
  214. package/ccw/frontend/dist/assets/{TaskDrawer-BJkwfhIZ.js.map → TaskDrawer-Ds-8830B.js.map} +1 -1
  215. package/ccw/frontend/dist/assets/{TeamPage-BJgjxBgb.js → TeamPage-CJODUxBk.js} +2 -2
  216. package/ccw/frontend/dist/assets/{TeamPage-BJgjxBgb.js.map → TeamPage-CJODUxBk.js.map} +1 -1
  217. package/ccw/frontend/dist/assets/{TerminalDashboardPage-D1WekoOy.js → TerminalDashboardPage-Cn3fGUuO.js} +3 -3
  218. package/ccw/frontend/dist/assets/{TerminalDashboardPage-D1WekoOy.js.map → TerminalDashboardPage-Cn3fGUuO.js.map} +1 -1
  219. package/ccw/frontend/dist/assets/{archive-DxemgIhF.js → archive-CjwVpw6k.js} +2 -2
  220. package/ccw/frontend/dist/assets/{archive-DxemgIhF.js.map → archive-CjwVpw6k.js.map} +1 -1
  221. package/ccw/frontend/dist/assets/{archive-restore-CjS83f1V.js → archive-restore-2vZa9Ic3.js} +2 -2
  222. package/ccw/frontend/dist/assets/{archive-restore-CjS83f1V.js.map → archive-restore-2vZa9Ic3.js.map} +1 -1
  223. package/ccw/frontend/dist/assets/{arrow-right-B5PUcn8I.js → arrow-right-CUU5XDgT.js} +2 -2
  224. package/ccw/frontend/dist/assets/{arrow-right-B5PUcn8I.js.map → arrow-right-CUU5XDgT.js.map} +1 -1
  225. package/ccw/frontend/dist/assets/{bookmark-plus-DCc9aPbb.js → bookmark-plus-Cc3nKRZ5.js} +2 -2
  226. package/ccw/frontend/dist/assets/{bookmark-plus-DCc9aPbb.js.map → bookmark-plus-Cc3nKRZ5.js.map} +1 -1
  227. package/ccw/frontend/dist/assets/{bot-DOwFtzak.js → bot-BwpSRDUa.js} +2 -2
  228. package/ccw/frontend/dist/assets/{bot-DOwFtzak.js.map → bot-BwpSRDUa.js.map} +1 -1
  229. package/ccw/frontend/dist/assets/{braces-96qH3aFh.js → braces-DBzUW1XC.js} +2 -2
  230. package/ccw/frontend/dist/assets/{braces-96qH3aFh.js.map → braces-DBzUW1XC.js.map} +1 -1
  231. package/ccw/frontend/dist/assets/{circle-stop-CCxSuil1.js → circle-stop-CGNNsjvE.js} +2 -2
  232. package/ccw/frontend/dist/assets/{circle-stop-CCxSuil1.js.map → circle-stop-CGNNsjvE.js.map} +1 -1
  233. package/ccw/frontend/dist/assets/{cpu-CZNSJFdq.js → cpu-D27G86Ul.js} +2 -2
  234. package/ccw/frontend/dist/assets/{cpu-CZNSJFdq.js.map → cpu-D27G86Ul.js.map} +1 -1
  235. package/ccw/frontend/dist/assets/{ellipsis-vertical-h8xtvw2_.js → ellipsis-vertical-C1Ij47Yz.js} +2 -2
  236. package/ccw/frontend/dist/assets/{ellipsis-vertical-h8xtvw2_.js.map → ellipsis-vertical-C1Ij47Yz.js.map} +1 -1
  237. package/ccw/frontend/dist/assets/{eye-D3NY0bm6.js → eye-C6MOB7Au.js} +2 -2
  238. package/ccw/frontend/dist/assets/{eye-D3NY0bm6.js.map → eye-C6MOB7Au.js.map} +1 -1
  239. package/ccw/frontend/dist/assets/{eye-off-Cy2vkc8p.js → eye-off-BxfBlZ26.js} +2 -2
  240. package/ccw/frontend/dist/assets/{eye-off-Cy2vkc8p.js.map → eye-off-BxfBlZ26.js.map} +1 -1
  241. package/ccw/frontend/dist/assets/{file-json-Bzq3U1Mx.js → file-json-NI237wA-.js} +2 -2
  242. package/ccw/frontend/dist/assets/{file-json-Bzq3U1Mx.js.map → file-json-NI237wA-.js.map} +1 -1
  243. package/ccw/frontend/dist/assets/{file-text-DwuwPDPi.js → file-text-Byn2_2v6.js} +2 -2
  244. package/ccw/frontend/dist/assets/{file-text-DwuwPDPi.js.map → file-text-Byn2_2v6.js.map} +1 -1
  245. package/ccw/frontend/dist/assets/{filter-q9g-bknU.js → filter-D-7PhZjx.js} +2 -2
  246. package/ccw/frontend/dist/assets/{filter-q9g-bknU.js.map → filter-D-7PhZjx.js.map} +1 -1
  247. package/ccw/frontend/dist/assets/{folder-CL6vb42J.js → folder-BoAsK_FL.js} +2 -2
  248. package/ccw/frontend/dist/assets/{folder-CL6vb42J.js.map → folder-BoAsK_FL.js.map} +1 -1
  249. package/ccw/frontend/dist/assets/{gauge-BkrcQBly.js → gauge-DCSxJIS4.js} +2 -2
  250. package/ccw/frontend/dist/assets/{gauge-BkrcQBly.js.map → gauge-DCSxJIS4.js.map} +1 -1
  251. package/ccw/frontend/dist/assets/{globe-BQbwyNeV.js → globe-CHS3prza.js} +2 -2
  252. package/ccw/frontend/dist/assets/{globe-BQbwyNeV.js.map → globe-CHS3prza.js.map} +1 -1
  253. package/ccw/frontend/dist/assets/{grid-3x3-x5_7DrN7.js → grid-3x3-D7K35U7S.js} +2 -2
  254. package/ccw/frontend/dist/assets/{grid-3x3-x5_7DrN7.js.map → grid-3x3-D7K35U7S.js.map} +1 -1
  255. package/ccw/frontend/dist/assets/{hard-drive-DTyWXwzf.js → hard-drive-eq9xE07G.js} +2 -2
  256. package/ccw/frontend/dist/assets/{hard-drive-DTyWXwzf.js.map → hard-drive-eq9xE07G.js.map} +1 -1
  257. package/ccw/frontend/dist/assets/{hash-80O0kJO7.js → hash-C1DMpBua.js} +2 -2
  258. package/ccw/frontend/dist/assets/{hash-80O0kJO7.js.map → hash-C1DMpBua.js.map} +1 -1
  259. package/ccw/frontend/dist/assets/{history-DDlN2Bwa.js → history-Di5SBCY-.js} +2 -2
  260. package/ccw/frontend/dist/assets/{history-DDlN2Bwa.js.map → history-Di5SBCY-.js.map} +1 -1
  261. package/ccw/frontend/dist/assets/{index-mbeo62f8.js → index--_R7COnA.js} +2 -2
  262. package/ccw/frontend/dist/assets/{index-mbeo62f8.js.map → index--_R7COnA.js.map} +1 -1
  263. package/ccw/frontend/dist/assets/{index-rLgoBCfV.js → index-BUol9HDD.js} +3 -3
  264. package/ccw/frontend/dist/assets/{index-rLgoBCfV.js.map → index-BUol9HDD.js.map} +1 -1
  265. package/ccw/frontend/dist/assets/{index-Bs80iCX0.js → index-CT9oykfw.js} +2 -2
  266. package/ccw/frontend/dist/assets/{index-Bs80iCX0.js.map → index-CT9oykfw.js.map} +1 -1
  267. package/ccw/frontend/dist/assets/{index-B9A3Hnrk.js → index-Ddwvf87H.js} +2 -2
  268. package/ccw/frontend/dist/assets/{index-B9A3Hnrk.js.map → index-Ddwvf87H.js.map} +1 -1
  269. package/ccw/frontend/dist/assets/{layout-grid-C1niOWJx.js → layout-grid-LiX0qZbN.js} +2 -2
  270. package/ccw/frontend/dist/assets/{layout-grid-C1niOWJx.js.map → layout-grid-LiX0qZbN.js.map} +1 -1
  271. package/ccw/frontend/dist/assets/{lightbulb-BTmI7SUg.js → lightbulb-CL3DVEwb.js} +2 -2
  272. package/ccw/frontend/dist/assets/{lightbulb-BTmI7SUg.js.map → lightbulb-CL3DVEwb.js.map} +1 -1
  273. package/ccw/frontend/dist/assets/{link-2-CB9HKeuZ.js → link-2-CC5cFeq6.js} +2 -2
  274. package/ccw/frontend/dist/assets/{link-2-CB9HKeuZ.js.map → link-2-CC5cFeq6.js.map} +1 -1
  275. package/ccw/frontend/dist/assets/{link-koEYiemK.js → link-ngFQ9bs0.js} +2 -2
  276. package/ccw/frontend/dist/assets/{link-koEYiemK.js.map → link-ngFQ9bs0.js.map} +1 -1
  277. package/ccw/frontend/dist/assets/{list-v2_GaLdC.js → list-BEU6I0KK.js} +2 -2
  278. package/ccw/frontend/dist/assets/{list-v2_GaLdC.js.map → list-BEU6I0KK.js.map} +1 -1
  279. package/ccw/frontend/dist/assets/{map-pin-BQNfAqG_.js → map-pin-BWZdLA6y.js} +2 -2
  280. package/ccw/frontend/dist/assets/{map-pin-BQNfAqG_.js.map → map-pin-BWZdLA6y.js.map} +1 -1
  281. package/ccw/frontend/dist/assets/{messages-square-Dzq5LGg9.js → messages-square-K6_Chm7n.js} +2 -2
  282. package/ccw/frontend/dist/assets/{messages-square-Dzq5LGg9.js.map → messages-square-K6_Chm7n.js.map} +1 -1
  283. package/ccw/frontend/dist/assets/{minimize-2-CtkoJXcz.js → minimize-2-CWkphauf.js} +2 -2
  284. package/ccw/frontend/dist/assets/{minimize-2-CtkoJXcz.js.map → minimize-2-CWkphauf.js.map} +1 -1
  285. package/ccw/frontend/dist/assets/{package-CH3smL37.js → package-DrNgkamn.js} +2 -2
  286. package/ccw/frontend/dist/assets/{package-CH3smL37.js.map → package-DrNgkamn.js.map} +1 -1
  287. package/ccw/frontend/dist/assets/{plug-CZ0aL_yF.js → plug-CMo3sw5_.js} +2 -2
  288. package/ccw/frontend/dist/assets/{plug-CZ0aL_yF.js.map → plug-CMo3sw5_.js.map} +1 -1
  289. package/ccw/frontend/dist/assets/{power-F2A_J4l6.js → power-DppNTW5e.js} +2 -2
  290. package/ccw/frontend/dist/assets/{power-F2A_J4l6.js.map → power-DppNTW5e.js.map} +1 -1
  291. package/ccw/frontend/dist/assets/{save-Byxot0YU.js → save-CD8aPMbZ.js} +2 -2
  292. package/ccw/frontend/dist/assets/{save-Byxot0YU.js.map → save-CD8aPMbZ.js.map} +1 -1
  293. package/ccw/frontend/dist/assets/{send-JjqhUkpw.js → send-B4z90fQD.js} +2 -2
  294. package/ccw/frontend/dist/assets/{send-JjqhUkpw.js.map → send-B4z90fQD.js.map} +1 -1
  295. package/ccw/frontend/dist/assets/{settings-2--SuN9rAt.js → settings-2-CAKRU_QC.js} +2 -2
  296. package/ccw/frontend/dist/assets/{settings-2--SuN9rAt.js.map → settings-2-CAKRU_QC.js.map} +1 -1
  297. package/ccw/frontend/dist/assets/{square-check-big-BbngGB2h.js → square-check-big-KhI3HrzX.js} +2 -2
  298. package/ccw/frontend/dist/assets/{square-check-big-BbngGB2h.js.map → square-check-big-KhI3HrzX.js.map} +1 -1
  299. package/ccw/frontend/dist/assets/{square-pen-CgrHgZSl.js → square-pen-BtdGIpuq.js} +2 -2
  300. package/ccw/frontend/dist/assets/{square-pen-CgrHgZSl.js.map → square-pen-BtdGIpuq.js.map} +1 -1
  301. package/ccw/frontend/dist/assets/{star-BU3TQr7Z.js → star-ZoBUkXoD.js} +2 -2
  302. package/ccw/frontend/dist/assets/{star-BU3TQr7Z.js.map → star-ZoBUkXoD.js.map} +1 -1
  303. package/ccw/frontend/dist/assets/{style-CKs7nnn3.js → style-CltxQP-P.js} +2 -2
  304. package/ccw/frontend/dist/assets/{style-CKs7nnn3.js.map → style-CltxQP-P.js.map} +1 -1
  305. package/ccw/frontend/dist/assets/{target-DW5tsDW6.js → target-C32OUSGf.js} +2 -2
  306. package/ccw/frontend/dist/assets/{target-DW5tsDW6.js.map → target-C32OUSGf.js.map} +1 -1
  307. package/ccw/frontend/dist/assets/{test-tube-BHm7w3ON.js → test-tube-0IxoyAVZ.js} +2 -2
  308. package/ccw/frontend/dist/assets/{test-tube-BHm7w3ON.js.map → test-tube-0IxoyAVZ.js.map} +1 -1
  309. package/ccw/frontend/dist/assets/{upload-DYR7PWwt.js → upload-4eKCkyBn.js} +2 -2
  310. package/ccw/frontend/dist/assets/{upload-DYR7PWwt.js.map → upload-4eKCkyBn.js.map} +1 -1
  311. package/ccw/frontend/dist/assets/{useApiSettings-D0TVgQD_.js → useApiSettings-zLTUWqhi.js} +2 -2
  312. package/ccw/frontend/dist/assets/{useApiSettings-D0TVgQD_.js.map → useApiSettings-zLTUWqhi.js.map} +1 -1
  313. package/ccw/frontend/dist/assets/{useCli-DfY8mAP8.js → useCli-BtN2vpOX.js} +2 -2
  314. package/ccw/frontend/dist/assets/{useCli-DfY8mAP8.js.map → useCli-BtN2vpOX.js.map} +1 -1
  315. package/ccw/frontend/dist/assets/{useCommands-CGusDp0F.js → useCommands-_spj49qL.js} +2 -2
  316. package/ccw/frontend/dist/assets/{useCommands-CGusDp0F.js.map → useCommands-_spj49qL.js.map} +1 -1
  317. package/ccw/frontend/dist/assets/{useDebounce-CIwh0fF1.js → useDebounce-Bm9KFZvd.js} +2 -2
  318. package/ccw/frontend/dist/assets/{useDebounce-CIwh0fF1.js.map → useDebounce-Bm9KFZvd.js.map} +1 -1
  319. package/ccw/frontend/dist/assets/{useFileExplorer-FMyFv39K.js → useFileExplorer-DOmpm6v9.js} +2 -2
  320. package/ccw/frontend/dist/assets/{useFileExplorer-FMyFv39K.js.map → useFileExplorer-DOmpm6v9.js.map} +1 -1
  321. package/ccw/frontend/dist/assets/{useLocale-B2qhsoTb.js → useLocale-D2rj4rea.js} +2 -2
  322. package/ccw/frontend/dist/assets/{useLocale-B2qhsoTb.js.map → useLocale-D2rj4rea.js.map} +1 -1
  323. package/ccw/frontend/dist/assets/{useSkills-cxKXMBm3.js → useSkills-OskEpomF.js} +3 -3
  324. package/ccw/frontend/dist/assets/{useSkills-cxKXMBm3.js.map → useSkills-OskEpomF.js.map} +1 -1
  325. package/ccw/frontend/dist/assets/{useSystemSettings-B-xUT_z-.js → useSystemSettings-BjMgsNSF.js} +2 -2
  326. package/ccw/frontend/dist/assets/{useSystemSettings-B-xUT_z-.js.map → useSystemSettings-BjMgsNSF.js.map} +1 -1
  327. package/ccw/frontend/dist/assets/{wand-sparkles-DZV_3lPr.js → wand-sparkles-CLhyYWa7.js} +2 -2
  328. package/ccw/frontend/dist/assets/{wand-sparkles-DZV_3lPr.js.map → wand-sparkles-CLhyYWa7.js.map} +1 -1
  329. package/ccw/frontend/dist/index.html +1 -1
  330. package/ccw/scripts/prepublish-clean.mjs +0 -1
  331. package/package.json +1 -3
  332. package/ccw/frontend/dist/assets/SettingsPage-B2PYzSoO.js +0 -150
  333. package/ccw/frontend/dist/assets/SettingsPage-B2PYzSoO.js.map +0 -1
  334. package/ccw/frontend/dist/assets/SkillsManagerPage-CTnWrrwp.js +0 -7
  335. package/ccw/frontend/dist/assets/SkillsManagerPage-CTnWrrwp.js.map +0 -1
  336. package/ccw-litellm/README.md +0 -180
  337. package/ccw-litellm/pyproject.toml +0 -35
  338. package/ccw-litellm/src/ccw_litellm/__init__.py +0 -47
  339. package/ccw-litellm/src/ccw_litellm/cli.py +0 -108
  340. package/ccw-litellm/src/ccw_litellm/clients/__init__.py +0 -12
  341. package/ccw-litellm/src/ccw_litellm/clients/litellm_embedder.py +0 -270
  342. package/ccw-litellm/src/ccw_litellm/clients/litellm_llm.py +0 -198
  343. package/ccw-litellm/src/ccw_litellm/config/__init__.py +0 -22
  344. package/ccw-litellm/src/ccw_litellm/config/loader.py +0 -343
  345. package/ccw-litellm/src/ccw_litellm/config/models.py +0 -162
  346. package/ccw-litellm/src/ccw_litellm/interfaces/__init__.py +0 -14
  347. package/ccw-litellm/src/ccw_litellm/interfaces/embedder.py +0 -52
  348. package/ccw-litellm/src/ccw_litellm/interfaces/llm.py +0 -45
@@ -0,0 +1,408 @@
1
+ ---
2
+ name: brainstorm
3
+ description: Unified brainstorming skill with dual-mode operation — auto mode (framework generation, parallel multi-role analysis, cross-role synthesis) and single role analysis. Triggers on "brainstorm", "头脑风暴".
4
+ allowed-tools: Skill(*), Agent(conceptual-planning-agent, context-search-agent), AskUserQuestion(*), TodoWrite(*), Read(*), Write(*), Edit(*), Glob(*), Bash(*)
5
+ ---
6
+
7
+ # Brainstorm
8
+
9
+ Unified brainstorming skill combining interactive framework generation, multi-role parallel analysis, and cross-role synthesis into a single entry point with two operational modes.
10
+
11
+ ## Architecture Overview
12
+
13
+ ```
14
+ ┌─────────────────────────────────────────────────────────────┐
15
+ │ /brainstorm │
16
+ │ Unified Entry Point + Interactive Routing │
17
+ └───────────────────────┬─────────────────────────────────────┘
18
+
19
+ ┌─────────┴─────────┐
20
+ ↓ ↓
21
+ ┌─────────────────┐ ┌──────────────────┐
22
+ │ Auto Mode │ │ Single Role Mode │
23
+ │ (自动模式) │ │ (单角色分析模式) │
24
+ └────────┬────────┘ └────────┬─────────┘
25
+ │ │
26
+ ┌────────┼────────┐ │
27
+ ↓ ↓ ↓ ↓
28
+ Phase 2 Phase 3 Phase 4 Phase 3
29
+ Artifacts N×Role Synthesis 1×Role
30
+ (7步) Analysis (8步) Analysis
31
+ 并行 (4步)
32
+ ```
33
+
34
+ **Data Flow**:
35
+ ```
36
+ Auto Mode:
37
+ Phase 2 (artifacts) → guidance-specification.md + selected_roles[]
38
+ → Phase 3 (N × role-analysis) → {role}/analysis*.md (immutable)
39
+ → Phase 4 (synthesis) → feature-specs/ + feature-index.json + synthesis-changelog.md
40
+
41
+ Single Role Mode:
42
+ Phase 3 (1 × role-analysis) → {role}/analysis*.md
43
+ ```
44
+
45
+ ## Key Design Principles
46
+
47
+ 1. **Dual-Mode Routing**: Interactive mode selection via AskUserQuestion, with parameter-based auto-detection
48
+ 2. **Progressive Phase Loading**: Phase files loaded on-demand via `Ref:` markers, not all at once
49
+ 3. **Task Attachment/Collapse**: Sub-tasks attached during phase execution, collapsed after completion
50
+ 4. **Session Continuity**: All phases share session state via workflow-session.json
51
+ 5. **Auto-Continue Execution**: Phases chain automatically without user intervention between them
52
+ 6. **SPEC.md Quality Alignment**: Guidance specification and role analysis follow SPEC.md standards (Concepts & Terminology, Non-Goals, Data Model, State Machine, RFC 2119 constraints)
53
+ 7. **Template-Driven Analysis**: Role-specific templates (e.g., system-architect) ensure consistent, high-quality outputs
54
+ 8. **Quality Gates**: Automated validation of guidance specification and role analysis against quality standards
55
+
56
+ ## Auto Mode
57
+
58
+ When `--yes` or `-y`: Auto-select auto mode, skip interactive routing question, auto-select recommended roles, skip all clarification questions, use default answers.
59
+
60
+ ## Execution Flow
61
+
62
+ ### Phase 1: Mode Detection & Interactive Routing
63
+ Ref: phases/01-mode-routing.md
64
+
65
+ Parse arguments, detect mode from flags/parameters, or ask user via AskUserQuestion.
66
+
67
+ **Mode Detection Rules**:
68
+ 1. If `--yes` or `-y` flag present → **Auto Mode** (no question asked)
69
+ 2. If first arg matches a known role name → **Single Role Mode** (no question asked)
70
+ 3. If `--session` flag present without role name → **Ask user**
71
+ 4. Otherwise → **Ask user via AskUserQuestion**
72
+
73
+ **Output**: `execution_mode` ("auto" | "single-role"), parsed parameters
74
+
75
+ ---
76
+
77
+ ### Auto Mode Execution (execution_mode = "auto")
78
+
79
+ **Phase 1.5: Terminology & Boundary Definition**
80
+ - Extract 5-10 core domain terms from user input and Phase 1 context
81
+ - Generate terminology table (term, definition, aliases, category)
82
+ - Collect Non-Goals via AskUserQuestion (明确排除的范围)
83
+ - Store to `session.terminology` and `session.non_goals`
84
+
85
+ #### Phase 2: Interactive Framework Generation
86
+ Ref: phases/02-artifacts.md
87
+
88
+ Seven-phase interactive workflow: Context collection → Topic analysis → Role selection → Role questions → Conflict resolution → Final check → Generate specification.
89
+
90
+ **Input**: topic description, --count N, --yes flag
91
+ **Output**: guidance-specification.md (with Concepts & Terminology, Non-Goals, RFC 2119 constraints), workflow-session.json (selected_roles[], session_id)
92
+
93
+ **TodoWrite**: Attach 7 sub-tasks (Phase 0-5), execute sequentially, collapse on completion.
94
+
95
+ #### Phase 3: Parallel Role Analysis
96
+ Ref: phases/03-role-analysis.md
97
+
98
+ Execute role analysis for EACH selected role in parallel.
99
+
100
+ **Input**: selected_roles[] from Phase 2, session_id, guidance-specification.md
101
+ **Output**: {role}/analysis*.md for each role
102
+
103
+ **Parallel Execution**: Launch N role-analysis calls simultaneously (one message with multiple Skill invokes). Each role with `--skip-questions` flag.
104
+
105
+ For ui-designer: append `--style-skill {package}` if provided.
106
+
107
+ **Template-Driven Analysis**:
108
+ - Load role-specific template if exists (e.g., `templates/role-templates/system-architect-template.md`)
109
+ - Inject template into agent prompt as required structure
110
+ - For system-architect: MUST include Data Model, State Machine, Error Handling, Observability, Configuration Model, Boundary Scenarios
111
+
112
+ **Quality Validation**:
113
+ - After analysis generation, invoke `role-analysis-reviewer-agent` to validate against template
114
+ - Check MUST have sections (blocking), SHOULD have sections (warning), quality checks (RFC keywords, valid diagrams)
115
+ - Output validation report with score and recommendations
116
+
117
+ **TodoWrite**: Attach N parallel sub-tasks, execute concurrently, collapse on completion.
118
+
119
+ #### Phase 4: Synthesis Integration
120
+ Ref: phases/04-synthesis.md
121
+
122
+ Six-phase synthesis: Discovery → File discovery → Cross-role analysis → User interaction → Spec generation (single agent, sequential) + Conditional review → Finalization. Role analysis files are read-only (never modified). Spec is the final synthesis artifact.
123
+
124
+ **Input**: session_id from Phase 2, all role analysis files from Phase 3 (read-only)
125
+ **Output**: feature-specs/, feature-index.json, synthesis-changelog.md
126
+
127
+ **TodoWrite**: Attach synthesis sub-tasks, execute sequentially, collapse on completion.
128
+
129
+ ---
130
+
131
+ ### Single Role Mode Execution (execution_mode = "single-role")
132
+
133
+ #### Phase 3: Single Role Analysis
134
+ Ref: phases/03-role-analysis.md
135
+
136
+ Execute role analysis for ONE specified role with optional interactive context gathering.
137
+
138
+ **Input**: role_name, --session, --update, --include-questions, --skip-questions, --style-skill
139
+ **Output**: {role}/analysis*.md
140
+
141
+ **TodoWrite**: Attach 4 sub-tasks (Detection → Context → Agent → Validation), execute sequentially.
142
+
143
+ ---
144
+
145
+ **Phase Reference Documents** (read on-demand when phase executes):
146
+
147
+ | Phase | Document | Purpose | Used By |
148
+ |-------|----------|---------|---------|
149
+ | 1 | [phases/01-mode-routing.md](phases/01-mode-routing.md) | Parameter parsing, mode detection, interactive routing | Both modes |
150
+ | 2 | [phases/02-artifacts.md](phases/02-artifacts.md) | Interactive framework generation (7 phases) | Auto mode only |
151
+ | 3 | [phases/03-role-analysis.md](phases/03-role-analysis.md) | Role-specific analysis generation | Both modes |
152
+ | 4 | [phases/04-synthesis.md](phases/04-synthesis.md) | Cross-role synthesis and feature specs | Auto mode only |
153
+
154
+ ## Core Rules
155
+
156
+ 1. **Start with Mode Detection**: First action is Phase 1 (parse args + detect mode)
157
+ 2. **Interactive Routing**: If mode cannot be determined from args, ASK user via AskUserQuestion
158
+ 3. **No Preliminary Analysis**: Do not analyze topic before Phase 2 - artifacts handles all analysis
159
+ 4. **Parse Every Output**: Extract selected_roles from workflow-session.json after Phase 2
160
+ 5. **Auto-Continue via TodoList**: Check TodoList status to execute next pending phase automatically
161
+ 6. **Task Attachment Model**: Skill and Task executes attach sub-tasks to current workflow
162
+ 7. **⚠️ CRITICAL: DO NOT STOP**: Continuous multi-phase workflow in auto mode. After executing all attached tasks, immediately collapse them and execute next phase
163
+ 8. **Parallel Execution**: Auto mode Phase 3 attaches multiple agent tasks simultaneously for concurrent execution
164
+ 9. **Single Role Independence**: Single role mode operates independently without requiring artifacts or synthesis
165
+
166
+ ## Input Processing
167
+
168
+ ### Parameter Parsing
169
+
170
+ ```javascript
171
+ // Parse from user input (argument string)
172
+ const args = parseArguments(user_input);
173
+
174
+ // Flags
175
+ const auto_yes = args.includes('--yes') || args.includes('-y');
176
+ const count = extractFlag(args, '--count', 3); // default 3, max 9
177
+ const session_id = extractFlag(args, '--session', null);
178
+ const update_mode = args.includes('--update');
179
+ const include_questions = args.includes('--include-questions');
180
+ const skip_questions = args.includes('--skip-questions');
181
+ const style_skill = extractFlag(args, '--style-skill', null);
182
+
183
+ // Role detection
184
+ const VALID_ROLES = [
185
+ 'data-architect', 'product-manager', 'product-owner', 'scrum-master',
186
+ 'subject-matter-expert', 'system-architect', 'test-strategist',
187
+ 'ui-designer', 'ux-expert'
188
+ ];
189
+ const first_arg = args[0]; // first non-flag argument
190
+ const is_role = VALID_ROLES.includes(first_arg);
191
+
192
+ // Mode detection
193
+ if (auto_yes) {
194
+ execution_mode = 'auto';
195
+ topic = extractTopic(args);
196
+ } else if (is_role) {
197
+ execution_mode = 'single-role';
198
+ role_name = first_arg;
199
+ } else {
200
+ execution_mode = null; // Ask user
201
+ topic = extractTopic(args);
202
+ }
203
+ ```
204
+
205
+ ### Usage Examples
206
+
207
+ ```bash
208
+ # Auto mode - full pipeline
209
+ /brainstorm "Build real-time collaboration platform" --count 3
210
+ /brainstorm -y "GOAL: Build platform SCOPE: 100 users" --count 5
211
+ /brainstorm "Design payment system" --style-skill material-design
212
+
213
+ # Single role mode - individual analysis
214
+ /brainstorm system-architect --session WFS-xxx
215
+ /brainstorm ux-expert --include-questions
216
+ /brainstorm ui-designer --session WFS-xxx --update --style-skill material-design
217
+ /brainstorm product-manager --skip-questions
218
+
219
+ # Ambiguous - will ask interactively
220
+ /brainstorm --session WFS-xxx
221
+ /brainstorm
222
+ ```
223
+
224
+ ## Data Flow
225
+
226
+ ```
227
+ Phase 1 (Mode Routing):
228
+ Input: user arguments
229
+ Output: execution_mode, parsed_params
230
+
231
+ ┌───────┴───────┐
232
+ Auto Single Role
233
+ ↓ ↓
234
+ Phase 2: Phase 3:
235
+ Input: topic, count, auto_yes
236
+ Output: session_id ─────────────→ Input: role_name, session_id
237
+ selected_roles[] skip/include questions
238
+ guidance-specification.md style_skill
239
+ ↓ Output: {role}/analysis*.md
240
+ Phase 3:
241
+ Input: selected_roles[], session_id
242
+ guidance-specification.md
243
+ style_skill (for ui-designer)
244
+ Output: {role}/analysis*.md (N files, immutable after this point)
245
+
246
+ Phase 4:
247
+ Input: session_id, all analysis files (read-only)
248
+ Output: feature-specs/F-{id}-{slug}.md
249
+ feature-index.json
250
+ synthesis-changelog.md
251
+ ```
252
+
253
+ ## TodoWrite Pattern
254
+
255
+ ### Auto Mode Lifecycle
256
+
257
+ ```
258
+ Initial → Phase 1 Mode Routing (completed)
259
+ → Phase 2 Artifacts (in_progress)
260
+ → 7 sub-tasks ATTACHED (Phase 0-5)
261
+ → Execute sequentially
262
+ → Sub-tasks COLLAPSED
263
+ → Phase 3 Parallel Role Analysis (in_progress)
264
+ → N role sub-tasks ATTACHED simultaneously
265
+ → Execute concurrently
266
+ → Sub-tasks COLLAPSED
267
+ → Phase 4 Synthesis (in_progress)
268
+ → 8 sub-tasks ATTACHED
269
+ → Execute sequentially
270
+ → Sub-tasks COLLAPSED
271
+ → All completed
272
+ ```
273
+
274
+ ### Single Role Mode Lifecycle
275
+
276
+ ```
277
+ Initial → Phase 1 Mode Routing (completed)
278
+ → Phase 3 Role Analysis (in_progress)
279
+ → 4 sub-tasks ATTACHED (Detection → Context → Agent → Validation)
280
+ → Execute sequentially
281
+ → Sub-tasks COLLAPSED
282
+ → Completed
283
+ ```
284
+
285
+ ### Initial TodoWrite (Auto Mode)
286
+
287
+ ```json
288
+ [
289
+ {"content": "Phase 1: Mode detection and parameter parsing", "status": "in_progress", "activeForm": "Detecting mode"},
290
+ {"content": "Phase 2: Interactive Framework Generation", "status": "pending", "activeForm": "Generating framework"},
291
+ {"content": "Phase 3: Parallel Role Analysis", "status": "pending", "activeForm": "Executing parallel analysis"},
292
+ {"content": "Phase 4: Synthesis Integration", "status": "pending", "activeForm": "Executing synthesis"}
293
+ ]
294
+ ```
295
+
296
+ ### Initial TodoWrite (Single Role Mode)
297
+
298
+ ```json
299
+ [
300
+ {"content": "Phase 1: Mode detection and parameter parsing", "status": "in_progress", "activeForm": "Detecting mode"},
301
+ {"content": "Phase 3: Single role analysis for {role_name}", "status": "pending", "activeForm": "Executing role analysis"}
302
+ ]
303
+ ```
304
+
305
+ ## Session Management
306
+
307
+ **⚡ FIRST ACTION**: Check `.workflow/active/` for existing sessions
308
+
309
+ **Multiple Sessions Support**:
310
+ - Different Claude instances can have different brainstorming sessions
311
+ - If multiple sessions found, prompt user to select
312
+ - If single session found, use it
313
+ - If no session exists:
314
+ - Auto mode: Create `WFS-[topic-slug]`
315
+ - Single role mode: ERROR if no session (must run auto mode first)
316
+
317
+ **Session Continuity**: All phases share session state via `workflow-session.json`
318
+
319
+ ## Available Roles
320
+
321
+ | Role ID | Title | Focus Area |
322
+ |---------|-------|------------|
323
+ | `data-architect` | 数据架构师 | Data models, storage strategies, data flow |
324
+ | `product-manager` | 产品经理 | Product strategy, roadmap, prioritization |
325
+ | `product-owner` | 产品负责人 | Backlog management, user stories, acceptance criteria |
326
+ | `scrum-master` | 敏捷教练 | Process facilitation, impediment removal |
327
+ | `subject-matter-expert` | 领域专家 | Domain knowledge, business rules, compliance |
328
+ | `system-architect` | 系统架构师 | Technical architecture, scalability, integration |
329
+ | `test-strategist` | 测试策略师 | Test strategy, quality assurance |
330
+ | `ui-designer` | UI设计师 | Visual design, mockups, design systems |
331
+ | `ux-expert` | UX专家 | User research, information architecture, journey |
332
+
333
+ **Role Selection**: Auto mode → handled by artifacts (Phase 2). Single role mode → user specifies directly.
334
+
335
+ ## Output Structure
336
+
337
+ ```
338
+ .workflow/active/WFS-{topic}/
339
+ ├── workflow-session.json # Session metadata ONLY
340
+ ├── .process/
341
+ │ └── context-package.json # Phase 0 output (auto mode)
342
+ └── .brainstorming/
343
+ ├── guidance-specification.md # Framework (Phase 2, auto mode)
344
+ ├── feature-index.json # Feature index (Phase 4, auto mode, feature_mode)
345
+ ├── synthesis-changelog.md # Synthesis decisions audit trail (Phase 4, auto mode)
346
+ ├── feature-specs/ # Feature specs (Phase 4, auto mode, feature_mode)
347
+ │ ├── F-001-{slug}.md
348
+ │ └── F-00N-{slug}.md
349
+ ├── specs/
350
+ │ └── terminology-template.json # Terminology schema
351
+ ├── templates/
352
+ │ └── role-templates/
353
+ │ └── system-architect-template.md # System architect analysis template
354
+ ├── agents/
355
+ │ └── role-analysis-reviewer-agent.md # Role analysis validation agent
356
+ ├── {role}/ # Role analyses (IMMUTABLE after Phase 3)
357
+ │ ├── {role}-context.md # Interactive Q&A responses
358
+ │ ├── analysis.md # Main/index document
359
+ │ ├── analysis-cross-cutting.md # Cross-feature (feature_mode)
360
+ │ └── analysis-F-{id}-{slug}.md # Per-feature (feature_mode)
361
+ └── synthesis-specification.md # Integration (Phase 4, non-feature_mode only)
362
+ ```
363
+
364
+ ## Error Handling
365
+
366
+ | Error | Recovery | Mode |
367
+ |-------|----------|------|
368
+ | Invalid role name | Show valid roles list, ask again | Single Role |
369
+ | No active session | Auto mode: create new. Single role: error with guidance | Both |
370
+ | Role selection failure | Default to product-manager | Auto |
371
+ | Agent execution failure | Agent-specific retry with minimal dependencies | Both |
372
+ | Template loading issues | Graceful degradation | Both |
373
+ | Synthesis conflicts | Highlight disagreements without forced resolution | Auto |
374
+ | Context overflow (>100KB) | Read only analysis.md index files | Auto |
375
+
376
+ **Context Overflow Protection**:
377
+ - Per-role limits: < 3000 words main, < 2000 words sub-docs, max 5 sub-docs
378
+ - Synthesis protection: If total > 100KB, read only `analysis.md` (not sub-documents)
379
+ - Recovery: reduce scope (--count 2) → use --summary-only → manual synthesis
380
+
381
+ ## Coordinator Checklist
382
+
383
+ **Pre-Phase Actions**:
384
+ - [ ] Read Phase document via `Ref:` marker
385
+ - [ ] Verify prerequisites (session exists, required files present)
386
+ - [ ] Mark phase as `in_progress` in TodoWrite
387
+ - [ ] Attach sub-tasks if applicable
388
+
389
+ **Post-Phase Actions**:
390
+ - [ ] Validate phase outputs exist
391
+ - [ ] Collapse sub-tasks to phase summary
392
+ - [ ] Mark phase as `completed` in TodoWrite
393
+ - [ ] Auto-continue to next pending phase (auto mode)
394
+ - [ ] Report completion (single role mode)
395
+
396
+ ## Related Commands
397
+
398
+ **Prerequisites**:
399
+ - `/workflow:session:start` - Start a new workflow session (optional, brainstorm creates its own)
400
+
401
+ **Follow-ups** (after brainstorm completes):
402
+ - `/workflow-plan --session {sessionId}` - Generate implementation plan
403
+ - `/workflow:brainstorm:synthesis --session {sessionId}` - Run synthesis standalone (if skipped)
404
+
405
+ ## Reference Information
406
+
407
+ **Template Source**: `~/.ccw/workflows/cli-templates/planning-roles/`
408
+ **Style SKILL Packages**: `.claude/skills/style-{package-name}/`
@@ -0,0 +1,207 @@
1
+ # Phase 1: Mode Detection & Interactive Routing
2
+
3
+ Parse user arguments, detect execution mode from flags/parameters, or interactively ask the user which mode to use via AskUserQuestion.
4
+
5
+ ## Objective
6
+
7
+ - Parse all command arguments and flags
8
+ - Detect execution mode automatically when possible
9
+ - Ask user via AskUserQuestion when mode is ambiguous
10
+ - Initialize TodoWrite with mode-appropriate task list
11
+ - Route to correct execution path
12
+
13
+ ## Execution
14
+
15
+ ### Step 1.1: Parameter Parsing
16
+
17
+ ```javascript
18
+ // Parse from user input (argument string)
19
+ const args = parseArguments(user_input);
20
+
21
+ // Flags
22
+ const auto_yes = args.includes('--yes') || args.includes('-y');
23
+ const count = extractFlag(args, '--count', 3); // default 3, max 9
24
+ if (count > 9) count = 9; // Cap at maximum
25
+ const session_id = extractFlag(args, '--session', null);
26
+ const update_mode = args.includes('--update');
27
+ const include_questions = args.includes('--include-questions');
28
+ const skip_questions = args.includes('--skip-questions');
29
+ const style_skill = extractFlag(args, '--style-skill', null);
30
+
31
+ // Role detection
32
+ const VALID_ROLES = [
33
+ 'data-architect', 'product-manager', 'product-owner', 'scrum-master',
34
+ 'subject-matter-expert', 'system-architect', 'test-strategist',
35
+ 'ui-designer', 'ux-expert'
36
+ ];
37
+ const first_arg = getFirstNonFlagArg(args);
38
+ const is_role = VALID_ROLES.includes(first_arg);
39
+
40
+ // Topic extraction (everything that's not a flag or role)
41
+ const topic = is_role ? null : extractTopic(args);
42
+ ```
43
+
44
+ ### Step 1.2: Style-Skill Validation
45
+
46
+ ```javascript
47
+ if (style_skill) {
48
+ const skill_path = `.claude/skills/style-${style_skill}/SKILL.md`;
49
+ if (fileExists(skill_path)) {
50
+ style_skill_package = style_skill;
51
+ style_reference_path = `.workflow/reference_style/${style_skill}`;
52
+ // "✓ Style SKILL package found: style-{style_skill}"
53
+ } else {
54
+ // "⚠ WARNING: Style SKILL package not found: {style_skill}"
55
+ style_skill_package = null;
56
+ }
57
+ } else {
58
+ style_skill_package = null;
59
+ }
60
+ ```
61
+
62
+ ### Step 1.3: Mode Detection
63
+
64
+ ```javascript
65
+ // Auto-detection rules (ordered by priority)
66
+ if (auto_yes) {
67
+ // --yes flag explicitly requests auto mode
68
+ execution_mode = 'auto';
69
+ } else if (is_role) {
70
+ // First arg is a valid role name → single role mode
71
+ execution_mode = 'single-role';
72
+ role_name = first_arg;
73
+ } else if (topic && !session_id) {
74
+ // Topic provided without session → likely auto mode, but ask
75
+ execution_mode = null; // Ask user
76
+ } else {
77
+ // Ambiguous → ask user
78
+ execution_mode = null;
79
+ }
80
+ ```
81
+
82
+ ### Step 1.4: Interactive Mode Selection (when mode is null)
83
+
84
+ ```javascript
85
+ if (execution_mode === null) {
86
+ AskUserQuestion({
87
+ questions: [{
88
+ question: "请选择头脑风暴模式",
89
+ header: "模式选择",
90
+ multiSelect: false,
91
+ options: [
92
+ {
93
+ label: "自动模式 (推荐)",
94
+ description: "完整流程:框架生成 → 多角色并行分析 → 跨角色综合。适合新主题的全面分析"
95
+ },
96
+ {
97
+ label: "单角色分析",
98
+ description: "为单个角色生成分析文档。适合补充已有会话的角色视角或迭代更新"
99
+ }
100
+ ]
101
+ }]
102
+ });
103
+
104
+ // Route based on user selection
105
+ if (user_selected === "自动模式 (推荐)") {
106
+ execution_mode = 'auto';
107
+ } else {
108
+ execution_mode = 'single-role';
109
+ }
110
+ }
111
+ ```
112
+
113
+ ### Step 1.5: Single Role Mode - Role Selection (if needed)
114
+
115
+ When entering single-role mode without a role name specified:
116
+
117
+ ```javascript
118
+ if (execution_mode === 'single-role' && !role_name) {
119
+ // Need to ask which role
120
+ AskUserQuestion({
121
+ questions: [{
122
+ question: "请选择要执行分析的角色",
123
+ header: "角色选择",
124
+ multiSelect: false,
125
+ options: [
126
+ { label: "system-architect", description: "系统架构师 - 技术架构、可扩展性、集成模式" },
127
+ { label: "ux-expert", description: "UX专家 - 用户研究、信息架构、用户旅程" },
128
+ { label: "product-manager", description: "产品经理 - 产品策略、路线图、优先级" },
129
+ { label: "ui-designer", description: "UI设计师 - 视觉设计、高保真原型、设计系统" }
130
+ ]
131
+ }]
132
+ });
133
+ // Note: If user needs a role not in top 4, they select "Other" and type it
134
+ role_name = user_selected;
135
+
136
+ // Validate role name
137
+ if (!VALID_ROLES.includes(role_name)) {
138
+ // ERROR with valid roles list
139
+ // EXIT
140
+ }
141
+ }
142
+ ```
143
+
144
+ ### Step 1.6: Session Detection
145
+
146
+ ```javascript
147
+ if (!session_id) {
148
+ // Find active sessions
149
+ const sessions = Glob('.workflow/active/WFS-*/');
150
+
151
+ if (sessions.length > 1) {
152
+ // Multiple sessions → ask user to select
153
+ // Use AskUserQuestion with session list
154
+ } else if (sessions.length === 1) {
155
+ session_id = extractSessionId(sessions[0]);
156
+ } else {
157
+ if (execution_mode === 'auto') {
158
+ // Will be created by artifacts phase
159
+ session_id = null; // artifacts handles creation
160
+ } else {
161
+ // Single role mode requires existing session
162
+ // ERROR: "No active session. Run /brainstorm 'topic' first"
163
+ // EXIT
164
+ }
165
+ }
166
+ }
167
+ ```
168
+
169
+ ### Step 1.7: Initialize TodoWrite
170
+
171
+ ```javascript
172
+ if (execution_mode === 'auto') {
173
+ TodoWrite({
174
+ todos: [
175
+ { content: "Phase 1: Mode detection and parameter parsing", status: "completed", activeForm: "Detecting mode" },
176
+ { content: "Phase 2: Interactive Framework Generation", status: "pending", activeForm: "Generating framework" },
177
+ { content: "Phase 3: Parallel Role Analysis", status: "pending", activeForm: "Executing parallel analysis" },
178
+ { content: "Phase 4: Synthesis Integration", status: "pending", activeForm: "Executing synthesis" }
179
+ ]
180
+ });
181
+ } else {
182
+ TodoWrite({
183
+ todos: [
184
+ { content: "Phase 1: Mode detection and parameter parsing", status: "completed", activeForm: "Detecting mode" },
185
+ { content: `Phase 3: ${role_name} analysis`, status: "pending", activeForm: `Executing ${role_name} analysis` }
186
+ ]
187
+ });
188
+ }
189
+ ```
190
+
191
+ ## Output
192
+
193
+ - **Variable**: `execution_mode` ("auto" | "single-role")
194
+ - **Variable**: `role_name` (single-role mode only)
195
+ - **Variable**: `topic` (auto mode only)
196
+ - **Variable**: `session_id` (may be null for auto mode - artifacts creates it)
197
+ - **Variable**: `count` (auto mode, default 3)
198
+ - **Variable**: `auto_yes` (boolean)
199
+ - **Variable**: `style_skill_package` (optional)
200
+ - **Variable**: `update_mode`, `include_questions`, `skip_questions` (single-role flags)
201
+ - **TodoWrite**: Phase 1 completed, subsequent phases pending
202
+
203
+ ## Next Phase
204
+
205
+ Return to orchestrator:
206
+ - If `execution_mode === 'auto'` → Continue to [Phase 2: Artifacts](02-artifacts.md)
207
+ - If `execution_mode === 'single-role'` → Continue to [Phase 3: Role Analysis](03-role-analysis.md)