claude-code-workflow 7.2.10 → 7.2.12

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 (331) hide show
  1. package/.claude/agents/cli-planning-agent.md +3 -0
  2. package/.claude/agents/debug-explore-agent.md +1 -0
  3. package/.claude/agents/tdd-developer.md +1 -0
  4. package/.claude/agents/team-worker.md +1 -1
  5. package/.claude/agents/test-action-planning-agent.md +3 -0
  6. package/.claude/agents/test-context-search-agent.md +1 -0
  7. package/.claude/agents/test-fix-agent.md +3 -0
  8. package/.claude/commands/workflow/analyze-with-file.md +108 -54
  9. package/.claude/commands/workflow-tune.md +811 -0
  10. package/.claude/skills/review-code/SKILL.md +2 -0
  11. package/.claude/skills/review-cycle/SKILL.md +4 -0
  12. package/.claude/skills/skill-simplify/phases/02-optimize.md +4 -0
  13. package/.claude/skills/spec-generator/phases/05-epics-stories.md +4 -0
  14. package/.claude/skills/team-arch-opt/specs/team-config.json +5 -5
  15. package/.claude/skills/team-frontend-debug/roles/analyzer/role.md +3 -2
  16. package/.claude/skills/team-perf-opt/roles/coordinator/commands/monitor.md +1 -1
  17. package/.claude/skills/team-perf-opt/specs/team-config.json +5 -5
  18. package/.claude/skills/team-quality-assurance/roles/executor/role.md +2 -1
  19. package/.claude/skills/team-review/roles/reviewer/role.md +2 -1
  20. package/.claude/skills/team-tech-debt/roles/scanner/role.md +2 -1
  21. package/.claude/skills/team-testing/roles/executor/role.md +2 -1
  22. package/.claude/skills/team-testing/roles/generator/role.md +2 -1
  23. package/.claude/skills/team-ultra-analyze/roles/explorer/role.md +2 -1
  24. package/.claude/skills/team-ux-improve/specs/team-config.json +6 -6
  25. package/.claude/skills/workflow-execute/phases/06-review.md +4 -4
  26. package/.claude/skills/workflow-lite-execute/SKILL.md +106 -14
  27. package/.claude/skills/workflow-lite-plan/SKILL.md +34 -72
  28. package/.claude/skills/workflow-lite-test-review/SKILL.md +41 -26
  29. package/.claude/skills/workflow-plan/phases/05-plan-verify.md +4 -0
  30. package/.claude/skills/workflow-tdd-plan/phases/02-context-gathering.md +1 -0
  31. package/.claude/skills/workflow-tdd-plan/phases/05-tdd-task-generation.md +2 -1
  32. package/.claude/skills/workflow-test-fix/phases/02-test-context-gather.md +1 -0
  33. package/.claude/skills/workflow-test-fix/phases/05-test-cycle-execute.md +2 -1
  34. package/.codex/skills/analyze-with-file/SKILL.md +2 -0
  35. package/.codex/skills/debug-with-file/SKILL.md +4 -0
  36. package/.codex/skills/issue-discover/SKILL.md +1 -0
  37. package/.codex/skills/review-cycle/phases/02-parallel-review.md +3 -0
  38. package/.codex/skills/team-designer/agents/validation-reporter.md +186 -0
  39. package/.codex/skills/team-iterdev/agents/gc-controller.md +193 -0
  40. package/.codex/skills/team-iterdev/agents/task-analyzer.md +206 -0
  41. package/.codex/skills/team-lifecycle-v4/agents/quality-gate.md +165 -0
  42. package/.codex/skills/team-lifecycle-v4/agents/requirement-clarifier.md +163 -0
  43. package/.codex/skills/team-lifecycle-v4/agents/supervisor.md +182 -0
  44. package/.codex/skills/team-uidesign/agents/completion-handler.md +177 -0
  45. package/.codex/skills/team-uidesign/agents/gc-loop-handler.md +162 -0
  46. package/.codex/skills/workflow-test-fix-cycle/phases/01-test-fix-gen.md +4 -0
  47. package/.codex/skills/workflow-test-fix-cycle/phases/02-test-cycle-execute.md +2 -0
  48. package/ccw/dist/commands/spec.d.ts.map +1 -1
  49. package/ccw/dist/commands/spec.js +9 -4
  50. package/ccw/dist/commands/spec.js.map +1 -1
  51. package/ccw/dist/core/routes/codexlens-routes.d.ts.map +1 -1
  52. package/ccw/dist/core/routes/codexlens-routes.js +3 -1
  53. package/ccw/dist/core/routes/codexlens-routes.js.map +1 -1
  54. package/ccw/dist/tools/spec-index-builder.d.ts +8 -4
  55. package/ccw/dist/tools/spec-index-builder.d.ts.map +1 -1
  56. package/ccw/dist/tools/spec-index-builder.js +8 -4
  57. package/ccw/dist/tools/spec-index-builder.js.map +1 -1
  58. package/ccw/dist/tools/spec-init.d.ts +1 -1
  59. package/ccw/dist/tools/spec-init.d.ts.map +1 -1
  60. package/ccw/dist/tools/spec-init.js +127 -0
  61. package/ccw/dist/tools/spec-init.js.map +1 -1
  62. package/ccw/dist/tools/spec-loader.d.ts.map +1 -1
  63. package/ccw/dist/tools/spec-loader.js +2 -1
  64. package/ccw/dist/tools/spec-loader.js.map +1 -1
  65. package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js → AlertDialog-BW9jiZ-p.js} +2 -2
  66. package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js.map → AlertDialog-BW9jiZ-p.js.map} +1 -1
  67. package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js → AnalysisPage-ds-w_nVO.js} +2 -2
  68. package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js.map → AnalysisPage-ds-w_nVO.js.map} +1 -1
  69. package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js → ApiSettingsPage-DlCbXxTz.js} +2 -2
  70. package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js.map → ApiSettingsPage-DlCbXxTz.js.map} +1 -1
  71. package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js → CliModeToggle-Dq3nL4fF.js} +2 -2
  72. package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js.map → CliModeToggle-Dq3nL4fF.js.map} +1 -1
  73. package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js → CliSessionSharePage-BNDkEE4u.js} +2 -2
  74. package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js.map → CliSessionSharePage-BNDkEE4u.js.map} +1 -1
  75. package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js → CliViewerPage-ChM-uNx_.js} +2 -2
  76. package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js.map → CliViewerPage-ChM-uNx_.js.map} +1 -1
  77. package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js +2 -0
  78. package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js.map +1 -0
  79. package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js → Collapsible-CRNbykXN.js} +2 -2
  80. package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js.map → Collapsible-CRNbykXN.js.map} +1 -1
  81. package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js → CommandsManagerPage-C2JWcemF.js} +2 -2
  82. package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js.map → CommandsManagerPage-C2JWcemF.js.map} +1 -1
  83. package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js → DeepWikiPage-CvleOtJy.js} +2 -2
  84. package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js.map → DeepWikiPage-CvleOtJy.js.map} +1 -1
  85. package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js → EndpointsPage-CMOWQG64.js} +2 -2
  86. package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js.map → EndpointsPage-CMOWQG64.js.map} +1 -1
  87. package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js → ExplorerPage-DaFPRlNo.js} +2 -2
  88. package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js.map → ExplorerPage-DaFPRlNo.js.map} +1 -1
  89. package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js → FixSessionPage-CC4p04Az.js} +2 -2
  90. package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js.map → FixSessionPage-CC4p04Az.js.map} +1 -1
  91. package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js → FloatingFileBrowser-DROn1xZ5.js} +2 -2
  92. package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js.map → FloatingFileBrowser-DROn1xZ5.js.map} +1 -1
  93. package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js → FloatingPanel-CmL_yhDv.js} +2 -2
  94. package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js.map → FloatingPanel-CmL_yhDv.js.map} +1 -1
  95. package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js → GraphExplorerPage-DCV5ybKE.js} +2 -2
  96. package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js.map → GraphExplorerPage-DCV5ybKE.js.map} +1 -1
  97. package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js → HistoryPage-D0fYQZgc.js} +2 -2
  98. package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js.map → HistoryPage-D0fYQZgc.js.map} +1 -1
  99. package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js → HookManagerPage-D2FuJfsM.js} +2 -2
  100. package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js.map → HookManagerPage-D2FuJfsM.js.map} +1 -1
  101. package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js → InstallationsPage-tjklillZ.js} +2 -2
  102. package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js.map → InstallationsPage-tjklillZ.js.map} +1 -1
  103. package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js → IssueHubPage-E4JVrhO1.js} +2 -2
  104. package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js.map → IssueHubPage-E4JVrhO1.js.map} +1 -1
  105. package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js → LiteTasksPage-aJuRoyLt.js} +2 -2
  106. package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js.map → LiteTasksPage-aJuRoyLt.js.map} +1 -1
  107. package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js → McpManagerPage-BJeuWJv1.js} +2 -2
  108. package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js.map → McpManagerPage-BJeuWJv1.js.map} +1 -1
  109. package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js → MemoryPage-BI4FAXhs.js} +2 -2
  110. package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js.map → MemoryPage-BI4FAXhs.js.map} +1 -1
  111. package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js → NotFoundPage-DD2svchp.js} +2 -2
  112. package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js.map → NotFoundPage-DD2svchp.js.map} +1 -1
  113. package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js → OrchestratorPage-FC__7yYa.js} +2 -2
  114. package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js.map → OrchestratorPage-FC__7yYa.js.map} +1 -1
  115. package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js → ProjectOverviewPage-DBB_-FzV.js} +2 -2
  116. package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js.map → ProjectOverviewPage-DBB_-FzV.js.map} +1 -1
  117. package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js → PromptHistoryPage-BwOAvCH8.js} +2 -2
  118. package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js.map → PromptHistoryPage-BwOAvCH8.js.map} +1 -1
  119. package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js → ReviewSessionPage-Dd1-g_gp.js} +2 -2
  120. package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js.map → ReviewSessionPage-Dd1-g_gp.js.map} +1 -1
  121. package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js → RulesManagerPage-B3RGdsKD.js} +2 -2
  122. package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js.map → RulesManagerPage-B3RGdsKD.js.map} +1 -1
  123. package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js → SessionDetailPage-DM-W5R8K.js} +2 -2
  124. package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js.map → SessionDetailPage-DM-W5R8K.js.map} +1 -1
  125. package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js → SessionsPage-BVz1KCc7.js} +2 -2
  126. package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js.map → SessionsPage-BVz1KCc7.js.map} +1 -1
  127. package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js → SettingsPage-ComW7EZS.js} +4 -4
  128. package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js.map → SettingsPage-ComW7EZS.js.map} +1 -1
  129. package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js → SkillsManagerPage-CKom9XwV.js} +2 -2
  130. package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js.map → SkillsManagerPage-CKom9XwV.js.map} +1 -1
  131. package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js → SpecsSettingsPage-DQz7WP2s.js} +2 -2
  132. package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js.map → SpecsSettingsPage-DQz7WP2s.js.map} +1 -1
  133. package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js → Switch-BPMdND9H.js} +2 -2
  134. package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js.map → Switch-BPMdND9H.js.map} +1 -1
  135. package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js → TabsNavigation-qqt70VYL.js} +2 -2
  136. package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js.map → TabsNavigation-qqt70VYL.js.map} +1 -1
  137. package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js → TaskDrawer-BqK_qiHX.js} +2 -2
  138. package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js.map → TaskDrawer-BqK_qiHX.js.map} +1 -1
  139. package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js → TeamPage-u5_i0Rgh.js} +2 -2
  140. package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js.map → TeamPage-u5_i0Rgh.js.map} +1 -1
  141. package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js → TerminalDashboardPage-rUtC9e40.js} +2 -2
  142. package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js.map → TerminalDashboardPage-rUtC9e40.js.map} +1 -1
  143. package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js → archive-C3u8YNQF.js} +2 -2
  144. package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js.map → archive-C3u8YNQF.js.map} +1 -1
  145. package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js → archive-restore-DfQ998g5.js} +2 -2
  146. package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js.map → archive-restore-DfQ998g5.js.map} +1 -1
  147. package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js → arrow-right-BshJM9Po.js} +2 -2
  148. package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js.map → arrow-right-BshJM9Po.js.map} +1 -1
  149. package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js → bookmark-plus-D03qJyOZ.js} +2 -2
  150. package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js.map → bookmark-plus-D03qJyOZ.js.map} +1 -1
  151. package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js → bot-CyzWuwq0.js} +2 -2
  152. package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js.map → bot-CyzWuwq0.js.map} +1 -1
  153. package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js → braces-BPgtyjsG.js} +2 -2
  154. package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js.map → braces-BPgtyjsG.js.map} +1 -1
  155. package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js → circle-stop-Dix1AOmw.js} +2 -2
  156. package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js.map → circle-stop-Dix1AOmw.js.map} +1 -1
  157. package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js → cpu-CCQ4Q0Zh.js} +2 -2
  158. package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js.map → cpu-CCQ4Q0Zh.js.map} +1 -1
  159. package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js → ellipsis-vertical-BpTysg-Y.js} +2 -2
  160. package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js.map → ellipsis-vertical-BpTysg-Y.js.map} +1 -1
  161. package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js → eye-DGY1rAZs.js} +2 -2
  162. package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js.map → eye-DGY1rAZs.js.map} +1 -1
  163. package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js → eye-off-D8t3JfWG.js} +2 -2
  164. package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js.map → eye-off-D8t3JfWG.js.map} +1 -1
  165. package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js → file-json-BAdJb0n8.js} +2 -2
  166. package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js.map → file-json-BAdJb0n8.js.map} +1 -1
  167. package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js → file-text-DrJFiOUB.js} +2 -2
  168. package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js.map → file-text-DrJFiOUB.js.map} +1 -1
  169. package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js → filter-CKqzYbz7.js} +2 -2
  170. package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js.map → filter-CKqzYbz7.js.map} +1 -1
  171. package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js → folder-CV8511y9.js} +2 -2
  172. package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js.map → folder-CV8511y9.js.map} +1 -1
  173. package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js → gauge-XKvmu_uU.js} +2 -2
  174. package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js.map → gauge-XKvmu_uU.js.map} +1 -1
  175. package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js → globe-C56cDUzX.js} +2 -2
  176. package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js.map → globe-C56cDUzX.js.map} +1 -1
  177. package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js → grid-3x3-Bya-suFW.js} +2 -2
  178. package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js.map → grid-3x3-Bya-suFW.js.map} +1 -1
  179. package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js → hard-drive-CmuTZpsB.js} +2 -2
  180. package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js.map → hard-drive-CmuTZpsB.js.map} +1 -1
  181. package/ccw/frontend/dist/assets/{hash-Bd1RD285.js → hash-CRPT_tJQ.js} +2 -2
  182. package/ccw/frontend/dist/assets/{hash-Bd1RD285.js.map → hash-CRPT_tJQ.js.map} +1 -1
  183. package/ccw/frontend/dist/assets/{history-eyyCQA6b.js → history-C1pJZQCL.js} +2 -2
  184. package/ccw/frontend/dist/assets/{history-eyyCQA6b.js.map → history-C1pJZQCL.js.map} +1 -1
  185. package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js → index-B6TpijCe.js} +2 -2
  186. package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js.map → index-B6TpijCe.js.map} +1 -1
  187. package/ccw/frontend/dist/assets/{index-b2C0iFd1.js → index-Bcq-7r6F.js} +2 -2
  188. package/ccw/frontend/dist/assets/{index-b2C0iFd1.js.map → index-Bcq-7r6F.js.map} +1 -1
  189. package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js → index-CI8-rBff.js} +2 -2
  190. package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js.map → index-CI8-rBff.js.map} +1 -1
  191. package/ccw/frontend/dist/assets/{index-CY6Lueph.js → index-Dmt9OiEf.js} +2 -2
  192. package/ccw/frontend/dist/assets/{index-CY6Lueph.js.map → index-Dmt9OiEf.js.map} +1 -1
  193. package/ccw/frontend/dist/assets/{index-DfeBbFXo.js → index-anSMmEF8.js} +2 -2
  194. package/ccw/frontend/dist/assets/{index-DfeBbFXo.js.map → index-anSMmEF8.js.map} +1 -1
  195. package/ccw/frontend/dist/assets/{index-B6I7GQC5.js → index-dWT2M6Ef.js} +4 -4
  196. package/ccw/frontend/dist/assets/{index-B6I7GQC5.js.map → index-dWT2M6Ef.js.map} +1 -1
  197. package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js → layout-grid-TSO0BFQE.js} +2 -2
  198. package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js.map → layout-grid-TSO0BFQE.js.map} +1 -1
  199. package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js → lightbulb-Caj6fIQD.js} +2 -2
  200. package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js.map → lightbulb-Caj6fIQD.js.map} +1 -1
  201. package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js → link-2-DE9lMxa-.js} +2 -2
  202. package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js.map → link-2-DE9lMxa-.js.map} +1 -1
  203. package/ccw/frontend/dist/assets/{link-CL4JmoHb.js → link-BZtPgLW0.js} +2 -2
  204. package/ccw/frontend/dist/assets/{link-CL4JmoHb.js.map → link-BZtPgLW0.js.map} +1 -1
  205. package/ccw/frontend/dist/assets/{list-CDmYFcio.js → list-DubWyY-U.js} +2 -2
  206. package/ccw/frontend/dist/assets/{list-CDmYFcio.js.map → list-DubWyY-U.js.map} +1 -1
  207. package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js → map-pin-DwN_48AF.js} +2 -2
  208. package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js.map → map-pin-DwN_48AF.js.map} +1 -1
  209. package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js → messages-square-bjxvaiM9.js} +2 -2
  210. package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js.map → messages-square-bjxvaiM9.js.map} +1 -1
  211. package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js → minimize-2-CGfBKD_V.js} +2 -2
  212. package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js.map → minimize-2-CGfBKD_V.js.map} +1 -1
  213. package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js → package-nzWY6ilt.js} +2 -2
  214. package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js.map → package-nzWY6ilt.js.map} +1 -1
  215. package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js → plug-CiLce49C.js} +2 -2
  216. package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js.map → plug-CiLce49C.js.map} +1 -1
  217. package/ccw/frontend/dist/assets/{power-DmIojFl-.js → power-CFLmB-U9.js} +2 -2
  218. package/ccw/frontend/dist/assets/{power-DmIojFl-.js.map → power-CFLmB-U9.js.map} +1 -1
  219. package/ccw/frontend/dist/assets/{save-BFa03OnG.js → save-DuO6OF0C.js} +2 -2
  220. package/ccw/frontend/dist/assets/{save-BFa03OnG.js.map → save-DuO6OF0C.js.map} +1 -1
  221. package/ccw/frontend/dist/assets/{send-Vet3sN4J.js → send-CZk9p0mM.js} +2 -2
  222. package/ccw/frontend/dist/assets/{send-Vet3sN4J.js.map → send-CZk9p0mM.js.map} +1 -1
  223. package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js → square-check-big-BY_1YQQg.js} +2 -2
  224. package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js.map → square-check-big-BY_1YQQg.js.map} +1 -1
  225. package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js → square-pen-CnZgm6g-.js} +2 -2
  226. package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js.map → square-pen-CnZgm6g-.js.map} +1 -1
  227. package/ccw/frontend/dist/assets/{star-BCQHcnSe.js → star-Cn1F0qy7.js} +2 -2
  228. package/ccw/frontend/dist/assets/{star-BCQHcnSe.js.map → star-Cn1F0qy7.js.map} +1 -1
  229. package/ccw/frontend/dist/assets/{style-CJsrp48L.js → style-Dxs1iXCV.js} +2 -2
  230. package/ccw/frontend/dist/assets/{style-CJsrp48L.js.map → style-Dxs1iXCV.js.map} +1 -1
  231. package/ccw/frontend/dist/assets/{target-CBzCJCB1.js → target-Bz1fLRKH.js} +2 -2
  232. package/ccw/frontend/dist/assets/{target-CBzCJCB1.js.map → target-Bz1fLRKH.js.map} +1 -1
  233. package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js → test-tube-C6qCYlDr.js} +2 -2
  234. package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js.map → test-tube-C6qCYlDr.js.map} +1 -1
  235. package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js → upload-C71kd4Qs.js} +2 -2
  236. package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js.map → upload-C71kd4Qs.js.map} +1 -1
  237. package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js → useApiSettings-CqP2BAJ7.js} +2 -2
  238. package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js.map → useApiSettings-CqP2BAJ7.js.map} +1 -1
  239. package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js → useCli-PCoPoVeM.js} +2 -2
  240. package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js.map → useCli-PCoPoVeM.js.map} +1 -1
  241. package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js → useCommands-3OfPQPw4.js} +2 -2
  242. package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js.map → useCommands-3OfPQPw4.js.map} +1 -1
  243. package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js → useDebounce-bXiFhQx9.js} +2 -2
  244. package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js.map → useDebounce-bXiFhQx9.js.map} +1 -1
  245. package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js → useFileExplorer-DEyUm46_.js} +2 -2
  246. package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js.map → useFileExplorer-DEyUm46_.js.map} +1 -1
  247. package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js → useLocale-sXTrdxcJ.js} +2 -2
  248. package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js.map → useLocale-sXTrdxcJ.js.map} +1 -1
  249. package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js → useSkills-D0W0kXYm.js} +3 -3
  250. package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js.map → useSkills-D0W0kXYm.js.map} +1 -1
  251. package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js → useSystemSettings-DZ-8lZsG.js} +2 -2
  252. package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js.map → useSystemSettings-DZ-8lZsG.js.map} +1 -1
  253. package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js → wand-sparkles-83GmAYuw.js} +2 -2
  254. package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js.map → wand-sparkles-83GmAYuw.js.map} +1 -1
  255. package/ccw/frontend/dist/index.html +1 -1
  256. package/package.json +1 -1
  257. package/.claude/commands/ddd/auto.md +0 -359
  258. package/.claude/commands/ddd/doc-generate.md +0 -222
  259. package/.claude/commands/ddd/doc-refresh.md +0 -218
  260. package/.claude/commands/ddd/execute.md +0 -416
  261. package/.claude/commands/ddd/index-build.md +0 -212
  262. package/.claude/commands/ddd/plan.md +0 -611
  263. package/.claude/commands/ddd/scan.md +0 -365
  264. package/.claude/commands/ddd/sync.md +0 -353
  265. package/.claude/commands/ddd/update.md +0 -160
  266. package/.claude/commands/idaw/add.md +0 -287
  267. package/.claude/commands/idaw/resume.md +0 -442
  268. package/.claude/commands/idaw/run-coordinate.md +0 -648
  269. package/.claude/commands/idaw/run.md +0 -539
  270. package/.claude/commands/idaw/status.md +0 -182
  271. package/.claude/skills/team-arch-opt/role-specs/analyzer.md +0 -80
  272. package/.claude/skills/team-arch-opt/role-specs/designer.md +0 -118
  273. package/.claude/skills/team-arch-opt/role-specs/refactorer.md +0 -106
  274. package/.claude/skills/team-arch-opt/role-specs/reviewer.md +0 -116
  275. package/.claude/skills/team-arch-opt/role-specs/validator.md +0 -117
  276. package/.claude/skills/team-brainstorm/role-specs/challenger.md +0 -63
  277. package/.claude/skills/team-brainstorm/role-specs/evaluator.md +0 -58
  278. package/.claude/skills/team-brainstorm/role-specs/ideator.md +0 -71
  279. package/.claude/skills/team-brainstorm/role-specs/synthesizer.md +0 -59
  280. package/.claude/skills/team-frontend/role-specs/analyst.md +0 -91
  281. package/.claude/skills/team-frontend/role-specs/architect.md +0 -85
  282. package/.claude/skills/team-frontend/role-specs/developer.md +0 -92
  283. package/.claude/skills/team-frontend/role-specs/qa.md +0 -78
  284. package/.claude/skills/team-issue/role-specs/explorer.md +0 -95
  285. package/.claude/skills/team-issue/role-specs/implementer.md +0 -89
  286. package/.claude/skills/team-issue/role-specs/integrator.md +0 -86
  287. package/.claude/skills/team-issue/role-specs/planner.md +0 -83
  288. package/.claude/skills/team-issue/role-specs/reviewer.md +0 -89
  289. package/.claude/skills/team-iterdev/role-specs/architect.md +0 -64
  290. package/.claude/skills/team-iterdev/role-specs/developer.md +0 -73
  291. package/.claude/skills/team-iterdev/role-specs/reviewer.md +0 -65
  292. package/.claude/skills/team-iterdev/role-specs/tester.md +0 -87
  293. package/.claude/skills/team-perf-opt/role-specs/benchmarker.md +0 -110
  294. package/.claude/skills/team-perf-opt/role-specs/optimizer.md +0 -102
  295. package/.claude/skills/team-perf-opt/role-specs/profiler.md +0 -73
  296. package/.claude/skills/team-perf-opt/role-specs/reviewer.md +0 -91
  297. package/.claude/skills/team-perf-opt/role-specs/strategist.md +0 -114
  298. package/.claude/skills/team-planex/role-specs/executor.md +0 -90
  299. package/.claude/skills/team-planex/role-specs/planner.md +0 -110
  300. package/.claude/skills/team-quality-assurance/role-specs/analyst.md +0 -79
  301. package/.claude/skills/team-quality-assurance/role-specs/executor.md +0 -64
  302. package/.claude/skills/team-quality-assurance/role-specs/generator.md +0 -67
  303. package/.claude/skills/team-quality-assurance/role-specs/scout.md +0 -66
  304. package/.claude/skills/team-quality-assurance/role-specs/strategist.md +0 -70
  305. package/.claude/skills/team-review/role-specs/fixer.md +0 -75
  306. package/.claude/skills/team-review/role-specs/reviewer.md +0 -66
  307. package/.claude/skills/team-review/role-specs/scanner.md +0 -70
  308. package/.claude/skills/team-roadmap-dev/role-specs/executor.md +0 -71
  309. package/.claude/skills/team-roadmap-dev/role-specs/planner.md +0 -77
  310. package/.claude/skills/team-roadmap-dev/role-specs/verifier.md +0 -73
  311. package/.claude/skills/team-tech-debt/role-specs/assessor.md +0 -70
  312. package/.claude/skills/team-tech-debt/role-specs/executor.md +0 -80
  313. package/.claude/skills/team-tech-debt/role-specs/planner.md +0 -71
  314. package/.claude/skills/team-tech-debt/role-specs/scanner.md +0 -85
  315. package/.claude/skills/team-tech-debt/role-specs/validator.md +0 -83
  316. package/.claude/skills/team-testing/role-specs/analyst.md +0 -94
  317. package/.claude/skills/team-testing/role-specs/executor.md +0 -97
  318. package/.claude/skills/team-testing/role-specs/generator.md +0 -96
  319. package/.claude/skills/team-testing/role-specs/strategist.md +0 -82
  320. package/.claude/skills/team-uidesign/role-specs/designer.md +0 -72
  321. package/.claude/skills/team-uidesign/role-specs/implementer.md +0 -74
  322. package/.claude/skills/team-uidesign/role-specs/researcher.md +0 -84
  323. package/.claude/skills/team-uidesign/role-specs/reviewer.md +0 -70
  324. package/.claude/skills/team-ux-improve/role-specs/designer.md +0 -191
  325. package/.claude/skills/team-ux-improve/role-specs/diagnoser.md +0 -110
  326. package/.claude/skills/team-ux-improve/role-specs/explorer.md +0 -109
  327. package/.claude/skills/team-ux-improve/role-specs/implementer.md +0 -164
  328. package/.claude/skills/team-ux-improve/role-specs/scanner.md +0 -117
  329. package/.claude/skills/team-ux-improve/role-specs/tester.md +0 -163
  330. package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js +0 -2
  331. package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js.map +0 -1
@@ -1,70 +0,0 @@
1
- ---
2
- prefix: AUDIT
3
- inner_loop: false
4
- message_types:
5
- success: audit_passed
6
- result: audit_result
7
- fix: fix_required
8
- error: error
9
- ---
10
-
11
- # Design Auditor
12
-
13
- Audit design tokens and component specs for consistency, accessibility compliance, completeness, quality, and industry best-practice adherence. Act as Critic in the designer<->reviewer Generator-Critic loop. Serve as sync point gatekeeper in dual-track pipelines.
14
-
15
- ## Phase 2: Context & Artifact Loading
16
-
17
- | Input | Source | Required |
18
- |-------|--------|----------|
19
- | Design artifacts | <session>/design/*.json, <session>/design/component-specs/*.md | Yes |
20
- | Design intelligence | <session>/research/design-intelligence.json | Yes |
21
- | Audit history | .msg/meta.json -> reviewer namespace | No |
22
- | Build artifacts | <session>/build/**/* | Only for final audit |
23
- | .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
24
-
25
- 1. Extract session path from task description
26
- 2. Detect audit type from subject: "token" -> Token audit, "component" -> Component audit, "final" -> Final audit, "sync" -> Sync point audit
27
- 3. Read design intelligence for anti-patterns and ux_guidelines
28
- 4. Read design artifacts: design-tokens.json (token/component audit), component-specs/*.md (component/final audit), build/**/* (final audit only)
29
- 5. Load audit_history from meta.json for trend analysis
30
-
31
- ## Phase 3: Audit Execution
32
-
33
- Score 5 dimensions on 1-10 scale:
34
-
35
- | Dimension | Weight | Focus |
36
- |-----------|--------|-------|
37
- | Consistency | 20% | Token usage, naming conventions, visual uniformity |
38
- | Accessibility | 25% | WCAG AA compliance, ARIA attributes, keyboard nav, contrast |
39
- | Completeness | 20% | All states defined, responsive specs, edge cases |
40
- | Quality | 15% | Token reference integrity, documentation clarity, maintainability |
41
- | Industry Compliance | 20% | Anti-pattern avoidance, UX best practices, design intelligence adherence |
42
-
43
- **Token Audit**: Naming convention (kebab-case, semantic names), value patterns (consistent units), theme completeness (light+dark for all colors), contrast ratios (text on background >= 4.5:1), minimum font sizes (>= 12px), all categories present, W3C $type metadata, no duplicates.
44
-
45
- **Component Audit**: Token references resolve, naming matches convention, ARIA roles defined, keyboard behavior specified, focus indicator defined, all 5 states present, responsive breakpoints specified, variants documented, clear descriptions.
46
-
47
- **Final Audit (cross-cutting)**: Token<->Component consistency (no hardcoded values), Code<->Design consistency (CSS variables match tokens, ARIA implemented as specified), cross-component consistency (spacing, color, interaction patterns).
48
-
49
- **Score calculation**: `overallScore = round(consistency*0.20 + accessibility*0.25 + completeness*0.20 + quality*0.15 + industryCompliance*0.20)`
50
-
51
- **Signal determination**:
52
-
53
- | Condition | Signal |
54
- |-----------|--------|
55
- | Score >= 8 AND critical_count === 0 | `audit_passed` (GC CONVERGED) |
56
- | Score >= 6 AND critical_count === 0 | `audit_result` (GC REVISION NEEDED) |
57
- | Score < 6 OR critical_count > 0 | `fix_required` (CRITICAL FIX NEEDED) |
58
-
59
- ## Phase 4: Report & Output
60
-
61
- 1. Write audit report to `<session>/audit/audit-{NNN}.md`:
62
- - Summary: overall score, signal, critical/high/medium counts
63
- - Sync Point Status (if applicable): PASSED/BLOCKED
64
- - Dimension Scores table (score/weight/weighted per dimension)
65
- - Critical/High/Medium issues with descriptions, locations, fix suggestions
66
- - GC Loop Status: signal, action required
67
- - Trend analysis (if audit_history exists): improving/stable/declining
68
-
69
- 2. Update `<session>/wisdom/.msg/meta.json` under `reviewer` namespace:
70
- - Read existing -> merge `{ "reviewer": { audit_id, score, critical_count, signal, is_sync_point, audit_type, timestamp } }` -> write back
@@ -1,191 +0,0 @@
1
- ---
2
- prefix: DESIGN
3
- inner_loop: false
4
- message_types:
5
- success: design_complete
6
- error: error
7
- ---
8
-
9
- # UX Designer
10
-
11
- Design feedback mechanisms (loading/error/success states) and state management patterns (React/Vue reactive updates).
12
-
13
- ## Phase 2: Context & Pattern Loading
14
-
15
- 1. Load diagnosis report from `<session>/artifacts/diagnosis.md`
16
- 2. Load diagnoser state via `team_msg(operation="get_state", session_id=<session-id>, role="diagnoser")`
17
- 3. Detect framework from project structure
18
- 4. Load framework-specific patterns:
19
-
20
- | Framework | State Pattern | Event Pattern |
21
- |-----------|---------------|---------------|
22
- | React | useState, useRef | onClick, onChange |
23
- | Vue | ref, reactive | @click, @change |
24
-
25
- ### Wisdom Input
26
-
27
- 1. Read `<session>/wisdom/patterns/ui-feedback.md` for established feedback design patterns
28
- 2. Read `<session>/wisdom/patterns/state-management.md` for state handling patterns
29
- 3. Read `<session>/wisdom/principles/general-ux.md` for UX design principles
30
- 4. Apply patterns when designing solutions for identified issues
31
-
32
- ### Complex Design (use CLI)
33
-
34
- For complex multi-component solutions:
35
-
36
- ```
37
- Bash(`ccw cli -p "PURPOSE: Design comprehensive feedback mechanism for multi-step form
38
- CONTEXT: @<component-files>
39
- EXPECTED: Complete design with state flow diagram and code patterns
40
- CONSTRAINTS: Must support React hooks" --tool gemini --mode analysis`)
41
- ```
42
-
43
- ## Phase 3: Solution Design
44
-
45
- For each diagnosed issue, design solution:
46
-
47
- ### Feedback Mechanism Design
48
-
49
- | Issue Type | Solution Design |
50
- |------------|-----------------|
51
- | Missing loading | Add loading state + UI indicator (spinner, disabled button) |
52
- | Missing error | Add error state + error message display |
53
- | Missing success | Add success state + confirmation toast/message |
54
- | No empty state | Add conditional rendering for empty data |
55
-
56
- ### State Management Design
57
-
58
- **React Pattern**:
59
- ```typescript
60
- // Add state variables
61
- const [isLoading, setIsLoading] = useState(false);
62
- const [error, setError] = useState<string | null>(null);
63
-
64
- // Wrap async operation
65
- const handleSubmit = async (event: React.FormEvent) => {
66
- event.preventDefault();
67
- setIsLoading(true);
68
- setError(null);
69
-
70
- try {
71
- const response = await fetch('/api/upload', { method: 'POST', body: formData });
72
- if (!response.ok) throw new Error('Upload failed');
73
- // Success handling
74
- } catch (err: any) {
75
- setError(err.message || 'An error occurred');
76
- } finally {
77
- setIsLoading(false);
78
- }
79
- };
80
-
81
- // UI binding
82
- <button type="submit" disabled={isLoading}>
83
- {isLoading ? 'Uploading...' : 'Upload File'}
84
- </button>
85
- {error && <p style={{ color: 'red' }}>{error}</p>}
86
- ```
87
-
88
- **Vue Pattern**:
89
- ```typescript
90
- // Add reactive state
91
- const isLoading = ref(false);
92
- const error = ref<string | null>(null);
93
-
94
- // Wrap async operation
95
- const handleSubmit = async () => {
96
- isLoading.value = true;
97
- error.value = null;
98
-
99
- try {
100
- const response = await fetch('/api/upload', { method: 'POST', body: formData });
101
- if (!response.ok) throw new Error('Upload failed');
102
- // Success handling
103
- } catch (err: any) {
104
- error.value = err.message || 'An error occurred';
105
- } finally {
106
- isLoading.value = false;
107
- }
108
- };
109
-
110
- // UI binding
111
- <button @click="handleSubmit" :disabled="isLoading">
112
- {{ isLoading ? 'Uploading...' : 'Upload File' }}
113
- </button>
114
- <p v-if="error" style="color: red">{{ error }}</p>
115
- ```
116
-
117
- ### Input Control Design
118
-
119
- | Issue | Solution |
120
- |-------|----------|
121
- | Text input for file path | Add file picker: `<input type="file" />` |
122
- | Text input for folder path | Add directory picker: `<input type="file" webkitdirectory />` |
123
- | No validation | Add validation rules and error messages |
124
-
125
- ## Phase 4: Design Document Generation
126
-
127
- 1. Generate implementation guide for each issue:
128
-
129
- ```markdown
130
- # Design Guide
131
-
132
- ## Issue #1: Upload form no loading state
133
-
134
- ### Solution Design
135
- Add loading state with UI feedback and error handling.
136
-
137
- ### State Variables (React)
138
- ```typescript
139
- const [isLoading, setIsLoading] = useState(false);
140
- const [error, setError] = useState<string | null>(null);
141
- ```
142
-
143
- ### Event Handler
144
- ```typescript
145
- const handleUpload = async (event: React.FormEvent) => {
146
- event.preventDefault();
147
- setIsLoading(true);
148
- setError(null);
149
-
150
- try {
151
- // API call
152
- } catch (err: any) {
153
- setError(err.message);
154
- } finally {
155
- setIsLoading(false);
156
- }
157
- };
158
- ```
159
-
160
- ### UI Binding
161
- ```tsx
162
- <button type="submit" disabled={isLoading}>
163
- {isLoading ? 'Uploading...' : 'Upload File'}
164
- </button>
165
- {error && <p className="error">{error}</p>}
166
- ```
167
-
168
- ### Acceptance Criteria
169
- - Loading state shows during upload
170
- - Button disabled during upload
171
- - Error message displays on failure
172
- - Success confirmation on completion
173
- ```
174
-
175
- 2. Write guide to `<session>/artifacts/design-guide.md`
176
-
177
- ### Wisdom Contribution
178
-
179
- If novel design patterns created:
180
- 1. Write new patterns to `<session>/wisdom/contributions/designer-pattern-<timestamp>.md`
181
- 2. Format: Problem context, solution design, implementation hints, trade-offs
182
-
183
- 3. Share state via team_msg:
184
- ```
185
- team_msg(operation="log", session_id=<session-id>, from="designer",
186
- type="state_update", data={
187
- designed_solutions: <count>,
188
- framework: <framework>,
189
- patterns_used: [<pattern-list>]
190
- })
191
- ```
@@ -1,110 +0,0 @@
1
- ---
2
- prefix: DIAG
3
- inner_loop: false
4
- message_types:
5
- success: diag_complete
6
- error: error
7
- ---
8
-
9
- # State Diagnoser
10
-
11
- Diagnose root causes of UI issues: state management problems, event binding failures, async handling errors.
12
-
13
- ## Phase 2: Context & Complexity Assessment
14
-
15
- 1. Load scan report from `<session>/artifacts/scan-report.md`
16
- 2. Load scanner state via `team_msg(operation="get_state", session_id=<session-id>, role="scanner")`
17
-
18
- ### Wisdom Input
19
-
20
- 1. Read `<session>/wisdom/patterns/ui-feedback.md` and `<session>/wisdom/patterns/state-management.md` if available
21
- 2. Use patterns to identify root causes of UI interaction issues
22
- 3. Reference `<session>/wisdom/anti-patterns/common-ux-pitfalls.md` for common causes
23
-
24
- 3. Assess issue complexity:
25
-
26
- | Complexity | Criteria | Strategy |
27
- |------------|----------|----------|
28
- | High | 5+ issues, cross-component state | CLI delegation |
29
- | Medium | 2-4 issues, single component | CLI for analysis |
30
- | Low | 1 issue, simple pattern | Inline analysis |
31
-
32
- ### Complex Analysis (use CLI)
33
-
34
- For complex multi-file state management issues:
35
-
36
- ```
37
- Bash(`ccw cli -p "PURPOSE: Analyze state management patterns and identify root causes
38
- CONTEXT: @<issue-files>
39
- EXPECTED: Root cause analysis with fix recommendations
40
- CONSTRAINTS: Focus on reactive update patterns" --tool gemini --mode analysis`)
41
- ```
42
-
43
- ## Phase 3: Root Cause Analysis
44
-
45
- For each issue from scan report:
46
-
47
- ### State Management Diagnosis
48
-
49
- | Pattern | Root Cause | Fix Strategy |
50
- |---------|------------|--------------|
51
- | Array.splice/push | Direct mutation, no reactive trigger | Use filter/map/spread for new array |
52
- | Object property change | Direct mutation | Use spread operator or reactive API |
53
- | Missing useState/ref | No state tracking | Add state variable |
54
- | Stale closure | Captured old state value | Use functional setState or ref.current |
55
-
56
- ### Event Binding Diagnosis
57
-
58
- | Pattern | Root Cause | Fix Strategy |
59
- |---------|------------|--------------|
60
- | onClick without handler | Missing event binding | Add event handler function |
61
- | Async without await | Unhandled promise | Add async/await or .then() |
62
- | No error catching | Uncaught exceptions | Wrap in try/catch |
63
- | Event propagation issue | stopPropagation missing | Add event.stopPropagation() |
64
-
65
- ### Async Handling Diagnosis
66
-
67
- | Pattern | Root Cause | Fix Strategy |
68
- |---------|------------|--------------|
69
- | No loading state | Missing async state tracking | Add isLoading state |
70
- | No error handling | Missing catch block | Add try/catch with error state |
71
- | Race condition | Multiple concurrent requests | Add request cancellation or debounce |
72
-
73
- ## Phase 4: Diagnosis Report
74
-
75
- 1. Generate root cause analysis for each issue:
76
-
77
- ```markdown
78
- # Diagnosis Report
79
-
80
- ## Issue #1: Upload form no loading state
81
- - **File**: src/components/Upload.tsx:45
82
- - **Root Cause**: Form submit handler is async but no loading state variable exists
83
- - **Pattern Type**: Missing async state tracking
84
- - **Fix Recommendation**:
85
- - Add `const [isLoading, setIsLoading] = useState(false)` (React)
86
- - Add `const isLoading = ref(false)` (Vue)
87
- - Wrap async call in try/finally with setIsLoading(true/false)
88
- - Disable button when isLoading is true
89
- ```
90
-
91
- 2. Write report to `<session>/artifacts/diagnosis.md`
92
-
93
- ### Wisdom Contribution
94
-
95
- If new root cause patterns discovered:
96
- 1. Write diagnosis patterns to `<session>/wisdom/contributions/diagnoser-patterns-<timestamp>.md`
97
- 2. Format: Symptom, root cause, detection method, fix approach
98
-
99
- 3. Share state via team_msg:
100
- ```
101
- team_msg(operation="log", session_id=<session-id>, from="diagnoser",
102
- type="state_update", data={
103
- diagnosed_issues: <count>,
104
- pattern_types: {
105
- state_management: <count>,
106
- event_binding: <count>,
107
- async_handling: <count>
108
- }
109
- })
110
- ```
@@ -1,109 +0,0 @@
1
- ---
2
- prefix: EXPLORE
3
- inner_loop: false
4
- message_types:
5
- success: explore_complete
6
- error: error
7
- ---
8
-
9
- # Codebase Explorer
10
-
11
- Explore codebase for UI component patterns, state management conventions, and framework-specific patterns. Callable by coordinator only.
12
-
13
- ## Phase 2: Exploration Scope
14
-
15
- 1. Parse exploration request from task description
16
- 2. Determine file patterns based on framework:
17
-
18
- ### Wisdom Input
19
-
20
- 1. Read `<session>/wisdom/patterns/ui-feedback.md` and `<session>/wisdom/patterns/state-management.md` if available
21
- 2. Use known patterns as reference when exploring codebase for component structures
22
- 3. Check `<session>/wisdom/anti-patterns/common-ux-pitfalls.md` to identify problematic patterns during exploration
23
-
24
- | Framework | Patterns |
25
- |-----------|----------|
26
- | React | `**/*.tsx`, `**/*.jsx`, `**/use*.ts`, `**/store*.ts` |
27
- | Vue | `**/*.vue`, `**/composables/*.ts`, `**/stores/*.ts` |
28
-
29
- 3. Check exploration cache: `<session>/explorations/cache-index.json`
30
- - If cache hit and fresh -> return cached results
31
- - If cache miss or stale -> proceed to Phase 3
32
-
33
- ## Phase 3: Codebase Exploration
34
-
35
- Use ACE search for semantic queries:
36
-
37
- ```
38
- mcp__ace-tool__search_context(
39
- project_root_path="<project-path>",
40
- query="<exploration-query>"
41
- )
42
- ```
43
-
44
- Exploration dimensions:
45
-
46
- | Dimension | Query | Purpose |
47
- |-----------|-------|---------|
48
- | Component patterns | "UI components with user interactions" | Find interactive components |
49
- | State management | "State management patterns useState ref reactive" | Identify state conventions |
50
- | Event handling | "Event handlers onClick onChange onSubmit" | Map event patterns |
51
- | Error handling | "Error handling try catch error state" | Find error patterns |
52
- | Feedback mechanisms | "Loading state spinner progress indicator" | Find existing feedback |
53
-
54
- For each dimension, collect:
55
- - File paths
56
- - Pattern examples
57
- - Convention notes
58
-
59
- ## Phase 4: Exploration Summary
60
-
61
- 1. Generate pattern summary:
62
-
63
- ```markdown
64
- # Exploration Summary
65
-
66
- ## Framework: React/Vue
67
-
68
- ## Component Patterns
69
- - Button components use <pattern>
70
- - Form components use <pattern>
71
-
72
- ## State Management Conventions
73
- - Global state: Zustand/Pinia
74
- - Local state: useState/ref
75
- - Async state: custom hooks/composables
76
-
77
- ## Event Handling Patterns
78
- - Form submit: <pattern>
79
- - Button click: <pattern>
80
-
81
- ## Existing Feedback Mechanisms
82
- - Loading: <pattern>
83
- - Error: <pattern>
84
- - Success: <pattern>
85
- ```
86
-
87
- 2. Cache results to `<session>/explorations/cache-index.json`
88
- 3. Write summary to `<session>/explorations/exploration-summary.md`
89
-
90
- ### Wisdom Contribution
91
-
92
- If new component patterns or framework conventions discovered:
93
- 1. Write pattern summaries to `<session>/wisdom/contributions/explorer-patterns-<timestamp>.md`
94
- 2. Format:
95
- - Pattern Name: Descriptive name
96
- - Framework: React/Vue/etc.
97
- - Use Case: When to apply this pattern
98
- - Code Example: Representative snippet
99
- - Adoption: How widely used in codebase
100
-
101
- 4. Share state via team_msg:
102
- ```
103
- team_msg(operation="log", session_id=<session-id>, from="explorer",
104
- type="state_update", data={
105
- framework: <framework>,
106
- components_found: <count>,
107
- patterns_identified: [<pattern-list>]
108
- })
109
- ```
@@ -1,164 +0,0 @@
1
- ---
2
- prefix: IMPL
3
- inner_loop: true
4
- message_types:
5
- success: impl_complete
6
- error: error
7
- ---
8
-
9
- # Code Implementer
10
-
11
- Generate executable fix code with proper state management, event handling, and UI feedback bindings.
12
-
13
- ## Phase 2: Task & Design Loading
14
-
15
- 1. Extract session path from task description
16
- 2. Read design guide: `<session>/artifacts/design-guide.md`
17
- 3. Extract implementation tasks from design guide
18
- 4. **Wisdom Input**:
19
- - Read `<session>/wisdom/patterns/state-management.md` for state handling patterns
20
- - Read `<session>/wisdom/patterns/ui-feedback.md` for UI feedback implementation patterns
21
- - Read `<session>/wisdom/principles/general-ux.md` for implementation principles
22
- - Load framework-specific conventions if available
23
- - Apply these patterns and principles when generating code to ensure consistency and quality
24
- 5. **For inner loop**: Load context_accumulator from prior IMPL tasks
25
-
26
- ### Context Accumulator (Inner Loop)
27
-
28
- ```
29
- context_accumulator = {
30
- completed_fixes: [<fix-1>, <fix-2>],
31
- modified_files: [<file-1>, <file-2>],
32
- patterns_applied: [<pattern-1>]
33
- }
34
- ```
35
-
36
- ## Phase 3: Code Implementation
37
-
38
- Implementation backend selection:
39
-
40
- | Backend | Condition | Method |
41
- |---------|-----------|--------|
42
- | CLI | Complex multi-file changes | `ccw cli --tool gemini --mode write` |
43
- | Direct | Simple single-file changes | Inline Edit/Write |
44
-
45
- ### CLI Implementation (Complex)
46
-
47
- ```
48
- Bash(`ccw cli -p "PURPOSE: Implement loading state and error handling for upload form
49
- TASK:
50
- - Add useState for isLoading and error
51
- - Wrap async call in try/catch/finally
52
- - Update UI bindings for button and error display
53
- CONTEXT: @src/components/Upload.tsx
54
- EXPECTED: Modified Upload.tsx with complete implementation
55
- CONSTRAINTS: Maintain existing code style" --tool gemini --mode write`)
56
- ```
57
-
58
- ### Direct Implementation (Simple)
59
-
60
- For simple state variable additions or UI binding changes:
61
-
62
- ```
63
- Edit({
64
- file_path: "src/components/Upload.tsx",
65
- old_string: "const handleUpload = async () => {",
66
- new_string: "const [isLoading, setIsLoading] = useState(false);\nconst [error, setError] = useState<string | null>(null);\n\nconst handleUpload = async () => {\n setIsLoading(true);\n setError(null);\n try {"
67
- })
68
- ```
69
-
70
- ### Implementation Steps
71
-
72
- For each fix in design guide:
73
- 1. Read target file
74
- 2. Determine complexity (simple vs complex)
75
- 3. Apply fix using appropriate backend
76
- 4. Verify syntax (no compilation errors)
77
- 5. Append to context_accumulator
78
-
79
- ## Phase 4: Self-Validation
80
-
81
- | Check | Method | Pass Criteria |
82
- |-------|--------|---------------|
83
- | Syntax | IDE diagnostics or tsc --noEmit | No errors |
84
- | File existence | Verify planned files exist | All present |
85
- | Acceptance criteria | Match against design guide | All met |
86
-
87
- Validation steps:
88
- 1. Run syntax check on modified files
89
- 2. Verify all files from design guide exist
90
- 3. Check acceptance criteria from design guide
91
- 4. If validation fails -> attempt auto-fix (max 2 attempts)
92
-
93
- ### Context Accumulator Update
94
-
95
- Append to context_accumulator:
96
- ```
97
- {
98
- completed_fixes: [...prev, <current-fix>],
99
- modified_files: [...prev, <current-files>],
100
- patterns_applied: [...prev, <current-patterns>]
101
- }
102
- ```
103
-
104
- Write summary to `<session>/artifacts/fixes/README.md`:
105
- ```markdown
106
- # Implementation Summary
107
-
108
- ## Completed Fixes
109
- - Issue #1: Upload form loading state - DONE
110
- - Issue #2: Error handling - DONE
111
-
112
- ## Modified Files
113
- - src/components/Upload.tsx
114
- - src/components/Form.tsx
115
-
116
- ## Patterns Applied
117
- - React useState for loading/error states
118
- - try/catch/finally for async handling
119
- - Conditional rendering for error messages
120
- ```
121
-
122
- Share state via team_msg:
123
- ```
124
- team_msg(operation="log", session_id=<session-id>, from="implementer",
125
- type="state_update", data={
126
- completed_fixes: <count>,
127
- modified_files: [<file-list>],
128
- validation_passed: true
129
- })
130
- ```
131
-
132
- ### Wisdom Contribution
133
-
134
- If reusable code patterns or snippets created:
135
- 1. Write code snippets to `<session>/wisdom/contributions/implementer-snippets-<timestamp>.md`
136
- 2. Format: Use case, code snippet with comments, framework compatibility notes
137
-
138
- Example contribution format:
139
- ```markdown
140
- # Implementer Snippets - <timestamp>
141
-
142
- ## Loading State Pattern (React)
143
-
144
- ### Use Case
145
- Async operations requiring loading indicator
146
-
147
- ### Code Snippet
148
- ```tsx
149
- const [isLoading, setIsLoading] = useState(false);
150
-
151
- const handleAsyncAction = async () => {
152
- setIsLoading(true);
153
- try {
154
- await performAction();
155
- } finally {
156
- setIsLoading(false);
157
- }
158
- };
159
- ```
160
-
161
- ### Framework Compatibility
162
- - React 16.8+ (hooks)
163
- - Next.js compatible
164
- ```