claude-code-workflow 6.0.0

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 (350) hide show
  1. package/.claude/agents/action-planning-agent.md +778 -0
  2. package/.claude/agents/cli-execution-agent.md +270 -0
  3. package/.claude/agents/cli-explore-agent.md +182 -0
  4. package/.claude/agents/cli-lite-planning-agent.md +396 -0
  5. package/.claude/agents/cli-planning-agent.md +558 -0
  6. package/.claude/agents/code-developer.md +310 -0
  7. package/.claude/agents/conceptual-planning-agent.md +308 -0
  8. package/.claude/agents/context-search-agent.md +582 -0
  9. package/.claude/agents/doc-generator.md +330 -0
  10. package/.claude/agents/memory-bridge.md +94 -0
  11. package/.claude/agents/test-context-search-agent.md +399 -0
  12. package/.claude/agents/test-fix-agent.md +343 -0
  13. package/.claude/agents/ui-design-agent.md +593 -0
  14. package/.claude/agents/universal-executor.md +131 -0
  15. package/.claude/commands/cli/cli-init.md +440 -0
  16. package/.claude/commands/enhance-prompt.md +93 -0
  17. package/.claude/commands/memory/code-map-memory.md +687 -0
  18. package/.claude/commands/memory/docs-full-cli.md +471 -0
  19. package/.claude/commands/memory/docs-related-cli.md +386 -0
  20. package/.claude/commands/memory/docs.md +615 -0
  21. package/.claude/commands/memory/load-skill-memory.md +182 -0
  22. package/.claude/commands/memory/load.md +240 -0
  23. package/.claude/commands/memory/skill-memory.md +525 -0
  24. package/.claude/commands/memory/style-skill-memory.md +396 -0
  25. package/.claude/commands/memory/tech-research.md +477 -0
  26. package/.claude/commands/memory/update-full.md +332 -0
  27. package/.claude/commands/memory/update-related.md +332 -0
  28. package/.claude/commands/memory/workflow-skill-memory.md +517 -0
  29. package/.claude/commands/task/breakdown.md +204 -0
  30. package/.claude/commands/task/create.md +152 -0
  31. package/.claude/commands/task/execute.md +270 -0
  32. package/.claude/commands/task/replan.md +437 -0
  33. package/.claude/commands/version.md +254 -0
  34. package/.claude/commands/workflow/action-plan-verify.md +447 -0
  35. package/.claude/commands/workflow/brainstorm/api-designer.md +585 -0
  36. package/.claude/commands/workflow/brainstorm/artifacts.md +452 -0
  37. package/.claude/commands/workflow/brainstorm/auto-parallel.md +443 -0
  38. package/.claude/commands/workflow/brainstorm/data-architect.md +220 -0
  39. package/.claude/commands/workflow/brainstorm/product-manager.md +200 -0
  40. package/.claude/commands/workflow/brainstorm/product-owner.md +200 -0
  41. package/.claude/commands/workflow/brainstorm/scrum-master.md +200 -0
  42. package/.claude/commands/workflow/brainstorm/subject-matter-expert.md +200 -0
  43. package/.claude/commands/workflow/brainstorm/synthesis.md +398 -0
  44. package/.claude/commands/workflow/brainstorm/system-architect.md +387 -0
  45. package/.claude/commands/workflow/brainstorm/ui-designer.md +221 -0
  46. package/.claude/commands/workflow/brainstorm/ux-expert.md +221 -0
  47. package/.claude/commands/workflow/execute.md +460 -0
  48. package/.claude/commands/workflow/init.md +164 -0
  49. package/.claude/commands/workflow/lite-execute.md +686 -0
  50. package/.claude/commands/workflow/lite-fix.md +621 -0
  51. package/.claude/commands/workflow/lite-plan.md +592 -0
  52. package/.claude/commands/workflow/plan.md +551 -0
  53. package/.claude/commands/workflow/replan.md +515 -0
  54. package/.claude/commands/workflow/review-fix.md +646 -0
  55. package/.claude/commands/workflow/review-module-cycle.md +795 -0
  56. package/.claude/commands/workflow/review-session-cycle.md +805 -0
  57. package/.claude/commands/workflow/review.md +291 -0
  58. package/.claude/commands/workflow/session/complete.md +500 -0
  59. package/.claude/commands/workflow/session/list.md +96 -0
  60. package/.claude/commands/workflow/session/resume.md +61 -0
  61. package/.claude/commands/workflow/session/start.md +200 -0
  62. package/.claude/commands/workflow/status.md +352 -0
  63. package/.claude/commands/workflow/tdd-plan.md +460 -0
  64. package/.claude/commands/workflow/tdd-verify.md +386 -0
  65. package/.claude/commands/workflow/test-cycle-execute.md +498 -0
  66. package/.claude/commands/workflow/test-fix-gen.md +699 -0
  67. package/.claude/commands/workflow/test-gen.md +529 -0
  68. package/.claude/commands/workflow/tools/conflict-resolution.md +680 -0
  69. package/.claude/commands/workflow/tools/context-gather.md +434 -0
  70. package/.claude/commands/workflow/tools/task-generate-agent.md +291 -0
  71. package/.claude/commands/workflow/tools/task-generate-tdd.md +518 -0
  72. package/.claude/commands/workflow/tools/tdd-coverage-analysis.md +309 -0
  73. package/.claude/commands/workflow/tools/test-concept-enhanced.md +163 -0
  74. package/.claude/commands/workflow/tools/test-context-gather.md +235 -0
  75. package/.claude/commands/workflow/tools/test-task-generate.md +256 -0
  76. package/.claude/commands/workflow/ui-design/animation-extract.md +1150 -0
  77. package/.claude/commands/workflow/ui-design/codify-style.md +652 -0
  78. package/.claude/commands/workflow/ui-design/design-sync.md +454 -0
  79. package/.claude/commands/workflow/ui-design/explore-auto.md +678 -0
  80. package/.claude/commands/workflow/ui-design/generate.md +504 -0
  81. package/.claude/commands/workflow/ui-design/imitate-auto.md +745 -0
  82. package/.claude/commands/workflow/ui-design/import-from-code.md +537 -0
  83. package/.claude/commands/workflow/ui-design/layout-extract.md +788 -0
  84. package/.claude/commands/workflow/ui-design/reference-page-generator.md +356 -0
  85. package/.claude/commands/workflow/ui-design/style-extract.md +773 -0
  86. package/.claude/scripts/classify-folders.sh +35 -0
  87. package/.claude/scripts/convert_tokens_to_css.sh +225 -0
  88. package/.claude/scripts/detect_changed_modules.sh +157 -0
  89. package/.claude/scripts/discover-design-files.sh +83 -0
  90. package/.claude/scripts/extract-animations.js +243 -0
  91. package/.claude/scripts/extract-computed-styles.js +118 -0
  92. package/.claude/scripts/extract-layout-structure.js +411 -0
  93. package/.claude/scripts/generate_module_docs.sh +713 -0
  94. package/.claude/scripts/get_modules_by_depth.sh +166 -0
  95. package/.claude/scripts/ui-generate-preview.sh +391 -0
  96. package/.claude/scripts/ui-instantiate-prototypes.sh +811 -0
  97. package/.claude/scripts/update_module_claude.sh +333 -0
  98. package/.claude/skills/command-guide/SKILL.md +388 -0
  99. package/.claude/skills/command-guide/UPDATE-GUIDELINE.md +592 -0
  100. package/.claude/skills/command-guide/guides/cli-tools-guide.md +410 -0
  101. package/.claude/skills/command-guide/guides/examples.md +537 -0
  102. package/.claude/skills/command-guide/guides/getting-started.md +242 -0
  103. package/.claude/skills/command-guide/guides/implementation-details.md +1010 -0
  104. package/.claude/skills/command-guide/guides/index-structure.md +326 -0
  105. package/.claude/skills/command-guide/guides/troubleshooting.md +92 -0
  106. package/.claude/skills/command-guide/guides/ui-design-workflow-guide.md +316 -0
  107. package/.claude/skills/command-guide/guides/workflow-patterns.md +662 -0
  108. package/.claude/skills/command-guide/index/all-commands.json +783 -0
  109. package/.claude/skills/command-guide/index/by-category.json +811 -0
  110. package/.claude/skills/command-guide/index/by-use-case.json +797 -0
  111. package/.claude/skills/command-guide/index/command-relationships.json +307 -0
  112. package/.claude/skills/command-guide/index/essential-commands.json +123 -0
  113. package/.claude/skills/command-guide/reference/agents/action-planning-agent.md +722 -0
  114. package/.claude/skills/command-guide/reference/agents/cli-execution-agent.md +270 -0
  115. package/.claude/skills/command-guide/reference/agents/cli-explore-agent.md +182 -0
  116. package/.claude/skills/command-guide/reference/agents/cli-lite-planning-agent.md +396 -0
  117. package/.claude/skills/command-guide/reference/agents/cli-planning-agent.md +558 -0
  118. package/.claude/skills/command-guide/reference/agents/code-developer.md +310 -0
  119. package/.claude/skills/command-guide/reference/agents/conceptual-planning-agent.md +328 -0
  120. package/.claude/skills/command-guide/reference/agents/context-search-agent.md +577 -0
  121. package/.claude/skills/command-guide/reference/agents/doc-generator.md +330 -0
  122. package/.claude/skills/command-guide/reference/agents/memory-bridge.md +94 -0
  123. package/.claude/skills/command-guide/reference/agents/test-context-search-agent.md +399 -0
  124. package/.claude/skills/command-guide/reference/agents/test-fix-agent.md +343 -0
  125. package/.claude/skills/command-guide/reference/agents/ui-design-agent.md +593 -0
  126. package/.claude/skills/command-guide/reference/agents/universal-executor.md +131 -0
  127. package/.claude/skills/command-guide/reference/commands/cli/cli-init.md +440 -0
  128. package/.claude/skills/command-guide/reference/commands/enhance-prompt.md +93 -0
  129. package/.claude/skills/command-guide/reference/commands/memory/code-map-memory.md +687 -0
  130. package/.claude/skills/command-guide/reference/commands/memory/docs-full-cli.md +471 -0
  131. package/.claude/skills/command-guide/reference/commands/memory/docs-related-cli.md +386 -0
  132. package/.claude/skills/command-guide/reference/commands/memory/docs.md +610 -0
  133. package/.claude/skills/command-guide/reference/commands/memory/load-skill-memory.md +182 -0
  134. package/.claude/skills/command-guide/reference/commands/memory/load.md +240 -0
  135. package/.claude/skills/command-guide/reference/commands/memory/skill-memory.md +525 -0
  136. package/.claude/skills/command-guide/reference/commands/memory/style-skill-memory.md +396 -0
  137. package/.claude/skills/command-guide/reference/commands/memory/tech-research.md +477 -0
  138. package/.claude/skills/command-guide/reference/commands/memory/update-full.md +332 -0
  139. package/.claude/skills/command-guide/reference/commands/memory/update-related.md +332 -0
  140. package/.claude/skills/command-guide/reference/commands/memory/workflow-skill-memory.md +517 -0
  141. package/.claude/skills/command-guide/reference/commands/task/breakdown.md +204 -0
  142. package/.claude/skills/command-guide/reference/commands/task/create.md +152 -0
  143. package/.claude/skills/command-guide/reference/commands/task/execute.md +270 -0
  144. package/.claude/skills/command-guide/reference/commands/task/replan.md +437 -0
  145. package/.claude/skills/command-guide/reference/commands/version.md +254 -0
  146. package/.claude/skills/command-guide/reference/commands/workflow/action-plan-verify.md +447 -0
  147. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/api-designer.md +585 -0
  148. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/artifacts.md +604 -0
  149. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/auto-parallel.md +466 -0
  150. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/data-architect.md +220 -0
  151. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-manager.md +200 -0
  152. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/product-owner.md +200 -0
  153. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/scrum-master.md +200 -0
  154. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/subject-matter-expert.md +200 -0
  155. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/synthesis.md +496 -0
  156. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/system-architect.md +387 -0
  157. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ui-designer.md +221 -0
  158. package/.claude/skills/command-guide/reference/commands/workflow/brainstorm/ux-expert.md +221 -0
  159. package/.claude/skills/command-guide/reference/commands/workflow/execute.md +460 -0
  160. package/.claude/skills/command-guide/reference/commands/workflow/init.md +164 -0
  161. package/.claude/skills/command-guide/reference/commands/workflow/lite-execute.md +634 -0
  162. package/.claude/skills/command-guide/reference/commands/workflow/lite-fix.md +602 -0
  163. package/.claude/skills/command-guide/reference/commands/workflow/lite-plan.md +582 -0
  164. package/.claude/skills/command-guide/reference/commands/workflow/plan.md +551 -0
  165. package/.claude/skills/command-guide/reference/commands/workflow/replan.md +515 -0
  166. package/.claude/skills/command-guide/reference/commands/workflow/review-fix.md +646 -0
  167. package/.claude/skills/command-guide/reference/commands/workflow/review-module-cycle.md +795 -0
  168. package/.claude/skills/command-guide/reference/commands/workflow/review-session-cycle.md +805 -0
  169. package/.claude/skills/command-guide/reference/commands/workflow/review.md +291 -0
  170. package/.claude/skills/command-guide/reference/commands/workflow/session/complete.md +500 -0
  171. package/.claude/skills/command-guide/reference/commands/workflow/session/list.md +96 -0
  172. package/.claude/skills/command-guide/reference/commands/workflow/session/resume.md +61 -0
  173. package/.claude/skills/command-guide/reference/commands/workflow/session/start.md +180 -0
  174. package/.claude/skills/command-guide/reference/commands/workflow/status.md +352 -0
  175. package/.claude/skills/command-guide/reference/commands/workflow/tdd-plan.md +460 -0
  176. package/.claude/skills/command-guide/reference/commands/workflow/tdd-verify.md +386 -0
  177. package/.claude/skills/command-guide/reference/commands/workflow/test-cycle-execute.md +498 -0
  178. package/.claude/skills/command-guide/reference/commands/workflow/test-fix-gen.md +699 -0
  179. package/.claude/skills/command-guide/reference/commands/workflow/test-gen.md +529 -0
  180. package/.claude/skills/command-guide/reference/commands/workflow/tools/conflict-resolution.md +680 -0
  181. package/.claude/skills/command-guide/reference/commands/workflow/tools/context-gather.md +434 -0
  182. package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-agent.md +151 -0
  183. package/.claude/skills/command-guide/reference/commands/workflow/tools/task-generate-tdd.md +518 -0
  184. package/.claude/skills/command-guide/reference/commands/workflow/tools/tdd-coverage-analysis.md +309 -0
  185. package/.claude/skills/command-guide/reference/commands/workflow/tools/test-concept-enhanced.md +163 -0
  186. package/.claude/skills/command-guide/reference/commands/workflow/tools/test-context-gather.md +235 -0
  187. package/.claude/skills/command-guide/reference/commands/workflow/tools/test-task-generate.md +256 -0
  188. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/animation-extract.md +1150 -0
  189. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/codify-style.md +652 -0
  190. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/design-sync.md +454 -0
  191. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/explore-auto.md +678 -0
  192. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/generate.md +504 -0
  193. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/imitate-auto.md +745 -0
  194. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/import-from-code.md +537 -0
  195. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/layout-extract.md +788 -0
  196. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/reference-page-generator.md +356 -0
  197. package/.claude/skills/command-guide/reference/commands/workflow/ui-design/style-extract.md +773 -0
  198. package/.claude/skills/command-guide/scripts/analyze_commands.py +502 -0
  199. package/.claude/skills/command-guide/scripts/update-index.sh +130 -0
  200. package/.claude/skills/command-guide/templates/issue-bug.md +104 -0
  201. package/.claude/skills/command-guide/templates/issue-diagnosis.md +275 -0
  202. package/.claude/skills/command-guide/templates/issue-feature.md +97 -0
  203. package/.claude/skills/command-guide/templates/issue-question.md +141 -0
  204. package/.claude/skills/prompt-enhancer/SKILL.md +124 -0
  205. package/.claude/workflows/_template-compare-matrix.html +692 -0
  206. package/.claude/workflows/cli-templates/fix-plan-template.json +75 -0
  207. package/.claude/workflows/cli-templates/fix-progress-template.json +48 -0
  208. package/.claude/workflows/cli-templates/memory/style-skill-memory/skill-md-template.md +299 -0
  209. package/.claude/workflows/cli-templates/planning-roles/data-architect.md +120 -0
  210. package/.claude/workflows/cli-templates/planning-roles/product-manager.md +119 -0
  211. package/.claude/workflows/cli-templates/planning-roles/product-owner.md +261 -0
  212. package/.claude/workflows/cli-templates/planning-roles/scrum-master.md +186 -0
  213. package/.claude/workflows/cli-templates/planning-roles/subject-matter-expert.md +281 -0
  214. package/.claude/workflows/cli-templates/planning-roles/synthesis-role.md +414 -0
  215. package/.claude/workflows/cli-templates/planning-roles/system-architect.md +106 -0
  216. package/.claude/workflows/cli-templates/planning-roles/test-strategist.md +124 -0
  217. package/.claude/workflows/cli-templates/planning-roles/ui-designer.md +379 -0
  218. package/.claude/workflows/cli-templates/planning-roles/ux-expert.md +240 -0
  219. package/.claude/workflows/cli-templates/prompts/analysis/01-diagnose-bug-root-cause.txt +127 -0
  220. package/.claude/workflows/cli-templates/prompts/analysis/01-trace-code-execution.txt +115 -0
  221. package/.claude/workflows/cli-templates/prompts/analysis/02-analyze-code-patterns.txt +37 -0
  222. package/.claude/workflows/cli-templates/prompts/analysis/02-analyze-technical-document.txt +33 -0
  223. package/.claude/workflows/cli-templates/prompts/analysis/02-review-architecture.txt +29 -0
  224. package/.claude/workflows/cli-templates/prompts/analysis/02-review-code-quality.txt +28 -0
  225. package/.claude/workflows/cli-templates/prompts/analysis/03-analyze-performance.txt +29 -0
  226. package/.claude/workflows/cli-templates/prompts/analysis/03-assess-security-risks.txt +29 -0
  227. package/.claude/workflows/cli-templates/prompts/analysis/03-review-quality-standards.txt +29 -0
  228. package/.claude/workflows/cli-templates/prompts/development/02-generate-tests.txt +70 -0
  229. package/.claude/workflows/cli-templates/prompts/development/02-implement-component-ui.txt +55 -0
  230. package/.claude/workflows/cli-templates/prompts/development/02-implement-feature.txt +58 -0
  231. package/.claude/workflows/cli-templates/prompts/development/02-refactor-codebase.txt +55 -0
  232. package/.claude/workflows/cli-templates/prompts/development/03-debug-runtime-issues.txt +55 -0
  233. package/.claude/workflows/cli-templates/prompts/documentation/api.txt +15 -0
  234. package/.claude/workflows/cli-templates/prompts/documentation/folder-navigation.txt +27 -0
  235. package/.claude/workflows/cli-templates/prompts/documentation/module-readme.txt +49 -0
  236. package/.claude/workflows/cli-templates/prompts/documentation/project-architecture.txt +41 -0
  237. package/.claude/workflows/cli-templates/prompts/documentation/project-examples.txt +35 -0
  238. package/.claude/workflows/cli-templates/prompts/documentation/project-readme.txt +35 -0
  239. package/.claude/workflows/cli-templates/prompts/memory/02-document-module-structure.txt +165 -0
  240. package/.claude/workflows/cli-templates/prompts/planning/01-plan-architecture-design.txt +109 -0
  241. package/.claude/workflows/cli-templates/prompts/planning/02-breakdown-task-steps.txt +30 -0
  242. package/.claude/workflows/cli-templates/prompts/planning/02-design-component-spec.txt +28 -0
  243. package/.claude/workflows/cli-templates/prompts/planning/03-evaluate-concept-feasibility.txt +127 -0
  244. package/.claude/workflows/cli-templates/prompts/planning/03-plan-migration-strategy.txt +30 -0
  245. package/.claude/workflows/cli-templates/prompts/tech/tech-module-format.txt +359 -0
  246. package/.claude/workflows/cli-templates/prompts/tech/tech-skill-index.txt +185 -0
  247. package/.claude/workflows/cli-templates/prompts/test/test-concept-analysis.txt +179 -0
  248. package/.claude/workflows/cli-templates/prompts/universal/00-universal-creative-style.txt +95 -0
  249. package/.claude/workflows/cli-templates/prompts/universal/00-universal-rigorous-style.txt +92 -0
  250. package/.claude/workflows/cli-templates/prompts/verification/codex-technical.txt +28 -0
  251. package/.claude/workflows/cli-templates/prompts/verification/cross-validation.txt +28 -0
  252. package/.claude/workflows/cli-templates/prompts/verification/gemini-strategic.txt +27 -0
  253. package/.claude/workflows/cli-templates/prompts/workflow/analysis-results-structure.txt +224 -0
  254. package/.claude/workflows/cli-templates/prompts/workflow/codex-feasibility-validation.txt +176 -0
  255. package/.claude/workflows/cli-templates/prompts/workflow/gemini-solution-design.txt +131 -0
  256. package/.claude/workflows/cli-templates/prompts/workflow/impl-plan-template.txt +286 -0
  257. package/.claude/workflows/cli-templates/prompts/workflow/skill-aggregation.txt +172 -0
  258. package/.claude/workflows/cli-templates/prompts/workflow/skill-conflict-patterns.txt +98 -0
  259. package/.claude/workflows/cli-templates/prompts/workflow/skill-index.txt +224 -0
  260. package/.claude/workflows/cli-templates/prompts/workflow/skill-lessons-learned.txt +98 -0
  261. package/.claude/workflows/cli-templates/prompts/workflow/skill-sessions-timeline.txt +53 -0
  262. package/.claude/workflows/cli-templates/prompts/workflow/task-json-agent-mode.txt +123 -0
  263. package/.claude/workflows/cli-templates/prompts/workflow/task-json-cli-mode.txt +182 -0
  264. package/.claude/workflows/cli-templates/schemas/diagnosis-json-schema.json +234 -0
  265. package/.claude/workflows/cli-templates/schemas/explore-json-schema.json +124 -0
  266. package/.claude/workflows/cli-templates/schemas/fix-plan-json-schema.json +273 -0
  267. package/.claude/workflows/cli-templates/schemas/plan-json-schema.json +219 -0
  268. package/.claude/workflows/cli-templates/schemas/project-json-schema.json +221 -0
  269. package/.claude/workflows/cli-templates/schemas/review-deep-dive-results-schema.json +82 -0
  270. package/.claude/workflows/cli-templates/schemas/review-dimension-results-schema.json +51 -0
  271. package/.claude/workflows/cli-templates/tech-stacks/go-dev.md +91 -0
  272. package/.claude/workflows/cli-templates/tech-stacks/java-dev.md +107 -0
  273. package/.claude/workflows/cli-templates/tech-stacks/javascript-dev.md +58 -0
  274. package/.claude/workflows/cli-templates/tech-stacks/python-dev.md +79 -0
  275. package/.claude/workflows/cli-templates/tech-stacks/react-dev.md +103 -0
  276. package/.claude/workflows/cli-templates/tech-stacks/typescript-dev.md +83 -0
  277. package/.claude/workflows/cli-templates/ui-design/systems/animation-tokens.json +247 -0
  278. package/.claude/workflows/cli-templates/ui-design/systems/design-tokens.json +342 -0
  279. package/.claude/workflows/cli-templates/ui-design/systems/layout-templates.json +145 -0
  280. package/.claude/workflows/context-search-strategy.md +77 -0
  281. package/.claude/workflows/intelligent-tools-strategy.md +662 -0
  282. package/.claude/workflows/review-directory-specification.md +336 -0
  283. package/.claude/workflows/task-core.md +214 -0
  284. package/.claude/workflows/tool-strategy.md +71 -0
  285. package/.claude/workflows/workflow-architecture.md +942 -0
  286. package/.codex/AGENTS.md +330 -0
  287. package/.gemini/GEMINI.md +164 -0
  288. package/.qwen/QWEN.md +164 -0
  289. package/CLAUDE.md +91 -0
  290. package/LICENSE +21 -0
  291. package/README.md +219 -0
  292. package/ccw/README.md +121 -0
  293. package/ccw/bin/ccw.js +10 -0
  294. package/ccw/src/cli.js +100 -0
  295. package/ccw/src/commands/install.js +324 -0
  296. package/ccw/src/commands/list.js +37 -0
  297. package/ccw/src/commands/serve.js +67 -0
  298. package/ccw/src/commands/uninstall.js +238 -0
  299. package/ccw/src/commands/upgrade.js +307 -0
  300. package/ccw/src/commands/view.js +14 -0
  301. package/ccw/src/core/dashboard-generator-patch.js +29 -0
  302. package/ccw/src/core/dashboard-generator.js +667 -0
  303. package/ccw/src/core/data-aggregator.js +409 -0
  304. package/ccw/src/core/lite-scanner.js +290 -0
  305. package/ccw/src/core/manifest.js +201 -0
  306. package/ccw/src/core/server.js +1327 -0
  307. package/ccw/src/core/server.js.bak +385 -0
  308. package/ccw/src/core/server_original.bak +385 -0
  309. package/ccw/src/core/session-scanner.js +235 -0
  310. package/ccw/src/index.js +9 -0
  311. package/ccw/src/templates/dashboard-js/api.js +200 -0
  312. package/ccw/src/templates/dashboard-js/components/_conflict_tab.js +112 -0
  313. package/ccw/src/templates/dashboard-js/components/_exp_helpers.js +54 -0
  314. package/ccw/src/templates/dashboard-js/components/_review_tab.js +640 -0
  315. package/ccw/src/templates/dashboard-js/components/carousel.js +398 -0
  316. package/ccw/src/templates/dashboard-js/components/flowchart.js +493 -0
  317. package/ccw/src/templates/dashboard-js/components/hook-manager.js +273 -0
  318. package/ccw/src/templates/dashboard-js/components/mcp-manager.js +506 -0
  319. package/ccw/src/templates/dashboard-js/components/modals.js +260 -0
  320. package/ccw/src/templates/dashboard-js/components/navigation.js +239 -0
  321. package/ccw/src/templates/dashboard-js/components/notifications.js +194 -0
  322. package/ccw/src/templates/dashboard-js/components/sidebar.js +31 -0
  323. package/ccw/src/templates/dashboard-js/components/tabs-context.js +1093 -0
  324. package/ccw/src/templates/dashboard-js/components/tabs-other.js +273 -0
  325. package/ccw/src/templates/dashboard-js/components/task-drawer-core.js +477 -0
  326. package/ccw/src/templates/dashboard-js/components/task-drawer-renderers.js +447 -0
  327. package/ccw/src/templates/dashboard-js/components/theme.js +21 -0
  328. package/ccw/src/templates/dashboard-js/main.js +57 -0
  329. package/ccw/src/templates/dashboard-js/state.js +37 -0
  330. package/ccw/src/templates/dashboard-js/utils.js +153 -0
  331. package/ccw/src/templates/dashboard-js/views/fix-session.js +180 -0
  332. package/ccw/src/templates/dashboard-js/views/home.js +193 -0
  333. package/ccw/src/templates/dashboard-js/views/hook-manager.js +387 -0
  334. package/ccw/src/templates/dashboard-js/views/lite-tasks.js +390 -0
  335. package/ccw/src/templates/dashboard-js/views/mcp-manager.js +271 -0
  336. package/ccw/src/templates/dashboard-js/views/project-overview.js +246 -0
  337. package/ccw/src/templates/dashboard-js/views/review-session.js +711 -0
  338. package/ccw/src/templates/dashboard-js/views/session-detail.js +770 -0
  339. package/ccw/src/templates/dashboard.css +7660 -0
  340. package/ccw/src/templates/dashboard.html +630 -0
  341. package/ccw/src/templates/dashboard_tailwind.html +42 -0
  342. package/ccw/src/templates/dashboard_test.html +37 -0
  343. package/ccw/src/templates/review-cycle-dashboard.html +1930 -0
  344. package/ccw/src/templates/tailwind-base.css +212 -0
  345. package/ccw/src/templates/workflow-dashboard.html +401 -0
  346. package/ccw/src/utils/browser-launcher.js +49 -0
  347. package/ccw/src/utils/file-utils.js +48 -0
  348. package/ccw/src/utils/path-resolver.js +279 -0
  349. package/ccw/src/utils/ui.js +148 -0
  350. package/package.json +66 -0
@@ -0,0 +1,506 @@
1
+ // MCP Manager Component
2
+ // Manages MCP server configuration from .claude.json
3
+
4
+ // ========== MCP State ==========
5
+ let mcpConfig = null;
6
+ let mcpAllProjects = {};
7
+ let mcpCurrentProjectServers = {};
8
+ let mcpCreateMode = 'form'; // 'form' or 'json'
9
+
10
+ // ========== Initialization ==========
11
+ function initMcpManager() {
12
+ // Initialize MCP navigation
13
+ document.querySelectorAll('.nav-item[data-view="mcp-manager"]').forEach(item => {
14
+ item.addEventListener('click', () => {
15
+ setActiveNavItem(item);
16
+ currentView = 'mcp-manager';
17
+ currentFilter = null;
18
+ currentLiteType = null;
19
+ currentSessionDetailKey = null;
20
+ updateContentTitle();
21
+ renderMcpManager();
22
+ });
23
+ });
24
+ }
25
+
26
+ // ========== Data Loading ==========
27
+ async function loadMcpConfig() {
28
+ try {
29
+ const response = await fetch('/api/mcp-config');
30
+ if (!response.ok) throw new Error('Failed to load MCP config');
31
+ const data = await response.json();
32
+ mcpConfig = data;
33
+ mcpAllProjects = data.projects || {};
34
+
35
+ // Get current project servers
36
+ const currentPath = projectPath.replace(/\//g, '\\');
37
+ mcpCurrentProjectServers = mcpAllProjects[currentPath]?.mcpServers || {};
38
+
39
+ // Update badge count
40
+ updateMcpBadge();
41
+
42
+ return data;
43
+ } catch (err) {
44
+ console.error('Failed to load MCP config:', err);
45
+ return null;
46
+ }
47
+ }
48
+
49
+ async function toggleMcpServer(serverName, enable) {
50
+ try {
51
+ const response = await fetch('/api/mcp-toggle', {
52
+ method: 'POST',
53
+ headers: { 'Content-Type': 'application/json' },
54
+ body: JSON.stringify({
55
+ projectPath: projectPath,
56
+ serverName: serverName,
57
+ enable: enable
58
+ })
59
+ });
60
+
61
+ if (!response.ok) throw new Error('Failed to toggle MCP server');
62
+
63
+ const result = await response.json();
64
+ if (result.success) {
65
+ // Reload config and re-render
66
+ await loadMcpConfig();
67
+ renderMcpManager();
68
+ showRefreshToast(`MCP server "${serverName}" ${enable ? 'enabled' : 'disabled'}`, 'success');
69
+ }
70
+ return result;
71
+ } catch (err) {
72
+ console.error('Failed to toggle MCP server:', err);
73
+ showRefreshToast(`Failed to toggle MCP server: ${err.message}`, 'error');
74
+ return null;
75
+ }
76
+ }
77
+
78
+ async function copyMcpServerToProject(serverName, serverConfig) {
79
+ try {
80
+ const response = await fetch('/api/mcp-copy-server', {
81
+ method: 'POST',
82
+ headers: { 'Content-Type': 'application/json' },
83
+ body: JSON.stringify({
84
+ projectPath: projectPath,
85
+ serverName: serverName,
86
+ serverConfig: serverConfig
87
+ })
88
+ });
89
+
90
+ if (!response.ok) throw new Error('Failed to copy MCP server');
91
+
92
+ const result = await response.json();
93
+ if (result.success) {
94
+ await loadMcpConfig();
95
+ renderMcpManager();
96
+ showRefreshToast(`MCP server "${serverName}" added to project`, 'success');
97
+ }
98
+ return result;
99
+ } catch (err) {
100
+ console.error('Failed to copy MCP server:', err);
101
+ showRefreshToast(`Failed to add MCP server: ${err.message}`, 'error');
102
+ return null;
103
+ }
104
+ }
105
+
106
+ async function removeMcpServerFromProject(serverName) {
107
+ try {
108
+ const response = await fetch('/api/mcp-remove-server', {
109
+ method: 'POST',
110
+ headers: { 'Content-Type': 'application/json' },
111
+ body: JSON.stringify({
112
+ projectPath: projectPath,
113
+ serverName: serverName
114
+ })
115
+ });
116
+
117
+ if (!response.ok) throw new Error('Failed to remove MCP server');
118
+
119
+ const result = await response.json();
120
+ if (result.success) {
121
+ await loadMcpConfig();
122
+ renderMcpManager();
123
+ showRefreshToast(`MCP server "${serverName}" removed from project`, 'success');
124
+ }
125
+ return result;
126
+ } catch (err) {
127
+ console.error('Failed to remove MCP server:', err);
128
+ showRefreshToast(`Failed to remove MCP server: ${err.message}`, 'error');
129
+ return null;
130
+ }
131
+ }
132
+
133
+ // ========== Badge Update ==========
134
+ function updateMcpBadge() {
135
+ const badge = document.getElementById('badgeMcpServers');
136
+ if (badge) {
137
+ const currentPath = projectPath.replace(/\//g, '\\');
138
+ const projectData = mcpAllProjects[currentPath];
139
+ const servers = projectData?.mcpServers || {};
140
+ const disabledServers = projectData?.disabledMcpServers || [];
141
+
142
+ const totalServers = Object.keys(servers).length;
143
+ const enabledServers = totalServers - disabledServers.length;
144
+
145
+ badge.textContent = `${enabledServers}/${totalServers}`;
146
+ }
147
+ }
148
+
149
+ // ========== Helpers ==========
150
+ function getAllAvailableMcpServers() {
151
+ const allServers = {};
152
+
153
+ // Collect servers from all projects
154
+ for (const [path, config] of Object.entries(mcpAllProjects)) {
155
+ const servers = config.mcpServers || {};
156
+ for (const [name, serverConfig] of Object.entries(servers)) {
157
+ if (!allServers[name]) {
158
+ allServers[name] = {
159
+ config: serverConfig,
160
+ usedIn: []
161
+ };
162
+ }
163
+ allServers[name].usedIn.push(path);
164
+ }
165
+ }
166
+
167
+ return allServers;
168
+ }
169
+
170
+ function isServerEnabledInCurrentProject(serverName) {
171
+ const currentPath = projectPath.replace(/\//g, '\\');
172
+ const projectData = mcpAllProjects[currentPath];
173
+ if (!projectData) return false;
174
+
175
+ const disabledServers = projectData.disabledMcpServers || [];
176
+ return !disabledServers.includes(serverName);
177
+ }
178
+
179
+ function isServerInCurrentProject(serverName) {
180
+ const currentPath = projectPath.replace(/\//g, '\\');
181
+ const projectData = mcpAllProjects[currentPath];
182
+ if (!projectData) return false;
183
+
184
+ const servers = projectData.mcpServers || {};
185
+ return serverName in servers;
186
+ }
187
+
188
+ // ========== MCP Create Modal ==========
189
+ function openMcpCreateModal() {
190
+ const modal = document.getElementById('mcpCreateModal');
191
+ if (modal) {
192
+ modal.classList.remove('hidden');
193
+ // Reset to form mode
194
+ mcpCreateMode = 'form';
195
+ switchMcpCreateTab('form');
196
+ // Clear form
197
+ document.getElementById('mcpServerName').value = '';
198
+ document.getElementById('mcpServerCommand').value = '';
199
+ document.getElementById('mcpServerArgs').value = '';
200
+ document.getElementById('mcpServerEnv').value = '';
201
+ // Clear JSON input
202
+ document.getElementById('mcpServerJson').value = '';
203
+ document.getElementById('mcpJsonPreview').classList.add('hidden');
204
+ // Focus on name input
205
+ document.getElementById('mcpServerName').focus();
206
+ // Setup JSON input listener
207
+ setupMcpJsonListener();
208
+ }
209
+ }
210
+
211
+ function closeMcpCreateModal() {
212
+ const modal = document.getElementById('mcpCreateModal');
213
+ if (modal) {
214
+ modal.classList.add('hidden');
215
+ }
216
+ }
217
+
218
+ function switchMcpCreateTab(tab) {
219
+ mcpCreateMode = tab;
220
+ const formMode = document.getElementById('mcpFormMode');
221
+ const jsonMode = document.getElementById('mcpJsonMode');
222
+ const tabForm = document.getElementById('mcpTabForm');
223
+ const tabJson = document.getElementById('mcpTabJson');
224
+
225
+ if (tab === 'form') {
226
+ formMode.classList.remove('hidden');
227
+ jsonMode.classList.add('hidden');
228
+ tabForm.classList.add('active');
229
+ tabJson.classList.remove('active');
230
+ } else {
231
+ formMode.classList.add('hidden');
232
+ jsonMode.classList.remove('hidden');
233
+ tabForm.classList.remove('active');
234
+ tabJson.classList.add('active');
235
+ }
236
+ }
237
+
238
+ function setupMcpJsonListener() {
239
+ const jsonInput = document.getElementById('mcpServerJson');
240
+ if (jsonInput && !jsonInput.hasAttribute('data-listener-attached')) {
241
+ jsonInput.setAttribute('data-listener-attached', 'true');
242
+ jsonInput.addEventListener('input', () => {
243
+ updateMcpJsonPreview();
244
+ });
245
+ }
246
+ }
247
+
248
+ function parseMcpJsonConfig(jsonText) {
249
+ if (!jsonText.trim()) {
250
+ return { servers: {}, error: null };
251
+ }
252
+
253
+ try {
254
+ const parsed = JSON.parse(jsonText);
255
+ let servers = {};
256
+
257
+ // Support multiple formats:
258
+ // 1. {"servers": {...}} format (claude desktop style)
259
+ // 2. {"mcpServers": {...}} format (claude.json style)
260
+ // 3. {"serverName": {command, args}} format (direct server config)
261
+ // 4. {command, args} format (single server without name)
262
+
263
+ if (parsed.servers && typeof parsed.servers === 'object') {
264
+ servers = parsed.servers;
265
+ } else if (parsed.mcpServers && typeof parsed.mcpServers === 'object') {
266
+ servers = parsed.mcpServers;
267
+ } else if (parsed.command && typeof parsed.command === 'string') {
268
+ // Single server without name - will prompt for name
269
+ servers = { '__unnamed__': parsed };
270
+ } else {
271
+ // Check if all values are server configs (have 'command' property)
272
+ const isDirectServerConfig = Object.values(parsed).every(
273
+ v => v && typeof v === 'object' && v.command
274
+ );
275
+ if (isDirectServerConfig && Object.keys(parsed).length > 0) {
276
+ servers = parsed;
277
+ } else {
278
+ return { servers: {}, error: 'Invalid MCP server JSON format' };
279
+ }
280
+ }
281
+
282
+ // Validate each server config
283
+ for (const [name, config] of Object.entries(servers)) {
284
+ if (!config.command || typeof config.command !== 'string') {
285
+ return { servers: {}, error: `Server "${name}" missing required "command" field` };
286
+ }
287
+ if (config.args && !Array.isArray(config.args)) {
288
+ return { servers: {}, error: `Server "${name}" has invalid "args" (must be array)` };
289
+ }
290
+ if (config.env && typeof config.env !== 'object') {
291
+ return { servers: {}, error: `Server "${name}" has invalid "env" (must be object)` };
292
+ }
293
+ }
294
+
295
+ return { servers, error: null };
296
+ } catch (e) {
297
+ return { servers: {}, error: 'Invalid JSON: ' + e.message };
298
+ }
299
+ }
300
+
301
+ function updateMcpJsonPreview() {
302
+ const jsonInput = document.getElementById('mcpServerJson');
303
+ const previewContainer = document.getElementById('mcpJsonPreview');
304
+ const previewContent = document.getElementById('mcpJsonPreviewContent');
305
+
306
+ const jsonText = jsonInput.value;
307
+ const { servers, error } = parseMcpJsonConfig(jsonText);
308
+
309
+ if (!jsonText.trim()) {
310
+ previewContainer.classList.add('hidden');
311
+ return;
312
+ }
313
+
314
+ previewContainer.classList.remove('hidden');
315
+
316
+ if (error) {
317
+ previewContent.innerHTML = `<div class="text-destructive">${escapeHtml(error)}</div>`;
318
+ return;
319
+ }
320
+
321
+ const serverCount = Object.keys(servers).length;
322
+ if (serverCount === 0) {
323
+ previewContent.innerHTML = `<div class="text-muted-foreground">No servers found</div>`;
324
+ return;
325
+ }
326
+
327
+ const previewHtml = Object.entries(servers).map(([name, config]) => {
328
+ const displayName = name === '__unnamed__' ? '(will prompt for name)' : name;
329
+ const argsPreview = config.args ? config.args.slice(0, 2).join(' ') + (config.args.length > 2 ? '...' : '') : '';
330
+ return `
331
+ <div class="flex items-center gap-2 p-2 bg-background rounded">
332
+ <span class="text-success">+</span>
333
+ <span class="font-medium">${escapeHtml(displayName)}</span>
334
+ <span class="text-muted-foreground text-xs">${escapeHtml(config.command)} ${escapeHtml(argsPreview)}</span>
335
+ </div>
336
+ `;
337
+ }).join('');
338
+
339
+ previewContent.innerHTML = previewHtml;
340
+ }
341
+
342
+ async function submitMcpCreate() {
343
+ if (mcpCreateMode === 'json') {
344
+ await submitMcpCreateFromJson();
345
+ } else {
346
+ await submitMcpCreateFromForm();
347
+ }
348
+ }
349
+
350
+ async function submitMcpCreateFromForm() {
351
+ const name = document.getElementById('mcpServerName').value.trim();
352
+ const command = document.getElementById('mcpServerCommand').value.trim();
353
+ const argsText = document.getElementById('mcpServerArgs').value.trim();
354
+ const envText = document.getElementById('mcpServerEnv').value.trim();
355
+
356
+ // Validate required fields
357
+ if (!name) {
358
+ showRefreshToast('Server name is required', 'error');
359
+ document.getElementById('mcpServerName').focus();
360
+ return;
361
+ }
362
+
363
+ if (!command) {
364
+ showRefreshToast('Command is required', 'error');
365
+ document.getElementById('mcpServerCommand').focus();
366
+ return;
367
+ }
368
+
369
+ // Parse args (one per line)
370
+ const args = argsText ? argsText.split('\n').map(a => a.trim()).filter(a => a) : [];
371
+
372
+ // Parse env vars (KEY=VALUE per line)
373
+ const env = {};
374
+ if (envText) {
375
+ envText.split('\n').forEach(line => {
376
+ const trimmed = line.trim();
377
+ if (trimmed && trimmed.includes('=')) {
378
+ const eqIndex = trimmed.indexOf('=');
379
+ const key = trimmed.substring(0, eqIndex).trim();
380
+ const value = trimmed.substring(eqIndex + 1).trim();
381
+ if (key) {
382
+ env[key] = value;
383
+ }
384
+ }
385
+ });
386
+ }
387
+
388
+ // Build server config
389
+ const serverConfig = {
390
+ command: command,
391
+ args: args
392
+ };
393
+
394
+ // Only add env if there are values
395
+ if (Object.keys(env).length > 0) {
396
+ serverConfig.env = env;
397
+ }
398
+
399
+ await createMcpServerWithConfig(name, serverConfig);
400
+ }
401
+
402
+ async function submitMcpCreateFromJson() {
403
+ const jsonText = document.getElementById('mcpServerJson').value.trim();
404
+
405
+ if (!jsonText) {
406
+ showRefreshToast('Please enter JSON configuration', 'error');
407
+ document.getElementById('mcpServerJson').focus();
408
+ return;
409
+ }
410
+
411
+ const { servers, error } = parseMcpJsonConfig(jsonText);
412
+
413
+ if (error) {
414
+ showRefreshToast(error, 'error');
415
+ return;
416
+ }
417
+
418
+ if (Object.keys(servers).length === 0) {
419
+ showRefreshToast('No valid servers found in JSON', 'error');
420
+ return;
421
+ }
422
+
423
+ // Handle unnamed server case
424
+ if (servers['__unnamed__']) {
425
+ const serverName = prompt('Enter a name for this MCP server:');
426
+ if (!serverName || !serverName.trim()) {
427
+ showRefreshToast('Server name is required', 'error');
428
+ return;
429
+ }
430
+ servers[serverName.trim()] = servers['__unnamed__'];
431
+ delete servers['__unnamed__'];
432
+ }
433
+
434
+ // Add all servers
435
+ let successCount = 0;
436
+ let failCount = 0;
437
+ const serverNames = Object.keys(servers);
438
+
439
+ for (const [name, config] of Object.entries(servers)) {
440
+ try {
441
+ const response = await fetch('/api/mcp-copy-server', {
442
+ method: 'POST',
443
+ headers: { 'Content-Type': 'application/json' },
444
+ body: JSON.stringify({
445
+ projectPath: projectPath,
446
+ serverName: name,
447
+ serverConfig: config
448
+ })
449
+ });
450
+
451
+ if (!response.ok) throw new Error('Failed to create MCP server');
452
+
453
+ const result = await response.json();
454
+ if (result.success) {
455
+ successCount++;
456
+ } else {
457
+ failCount++;
458
+ }
459
+ } catch (err) {
460
+ console.error(`Failed to create MCP server "${name}":`, err);
461
+ failCount++;
462
+ }
463
+ }
464
+
465
+ closeMcpCreateModal();
466
+ await loadMcpConfig();
467
+ renderMcpManager();
468
+
469
+ if (failCount === 0) {
470
+ showRefreshToast(`${successCount} MCP server${successCount > 1 ? 's' : ''} created successfully`, 'success');
471
+ } else if (successCount > 0) {
472
+ showRefreshToast(`${successCount} created, ${failCount} failed`, 'warning');
473
+ } else {
474
+ showRefreshToast('Failed to create MCP servers', 'error');
475
+ }
476
+ }
477
+
478
+ async function createMcpServerWithConfig(name, serverConfig) {
479
+ // Submit to API
480
+ try {
481
+ const response = await fetch('/api/mcp-copy-server', {
482
+ method: 'POST',
483
+ headers: { 'Content-Type': 'application/json' },
484
+ body: JSON.stringify({
485
+ projectPath: projectPath,
486
+ serverName: name,
487
+ serverConfig: serverConfig
488
+ })
489
+ });
490
+
491
+ if (!response.ok) throw new Error('Failed to create MCP server');
492
+
493
+ const result = await response.json();
494
+ if (result.success) {
495
+ closeMcpCreateModal();
496
+ await loadMcpConfig();
497
+ renderMcpManager();
498
+ showRefreshToast(`MCP server "${name}" created successfully`, 'success');
499
+ } else {
500
+ showRefreshToast(result.error || 'Failed to create MCP server', 'error');
501
+ }
502
+ } catch (err) {
503
+ console.error('Failed to create MCP server:', err);
504
+ showRefreshToast(`Failed to create MCP server: ${err.message}`, 'error');
505
+ }
506
+ }