claude-code-workflow 7.2.10 → 7.2.11

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 (322) 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/skills/review-code/SKILL.md +2 -0
  9. package/.claude/skills/review-cycle/SKILL.md +4 -0
  10. package/.claude/skills/skill-simplify/phases/02-optimize.md +4 -0
  11. package/.claude/skills/spec-generator/phases/05-epics-stories.md +4 -0
  12. package/.claude/skills/team-arch-opt/specs/team-config.json +5 -5
  13. package/.claude/skills/team-frontend-debug/roles/analyzer/role.md +3 -2
  14. package/.claude/skills/team-perf-opt/roles/coordinator/commands/monitor.md +1 -1
  15. package/.claude/skills/team-perf-opt/specs/team-config.json +5 -5
  16. package/.claude/skills/team-quality-assurance/roles/executor/role.md +2 -1
  17. package/.claude/skills/team-review/roles/reviewer/role.md +2 -1
  18. package/.claude/skills/team-tech-debt/roles/scanner/role.md +2 -1
  19. package/.claude/skills/team-testing/roles/executor/role.md +2 -1
  20. package/.claude/skills/team-testing/roles/generator/role.md +2 -1
  21. package/.claude/skills/team-ultra-analyze/roles/explorer/role.md +2 -1
  22. package/.claude/skills/team-ux-improve/specs/team-config.json +6 -6
  23. package/.claude/skills/workflow-execute/phases/06-review.md +4 -4
  24. package/.claude/skills/workflow-lite-test-review/SKILL.md +2 -0
  25. package/.claude/skills/workflow-plan/phases/05-plan-verify.md +4 -0
  26. package/.claude/skills/workflow-tdd-plan/phases/02-context-gathering.md +1 -0
  27. package/.claude/skills/workflow-tdd-plan/phases/05-tdd-task-generation.md +2 -1
  28. package/.claude/skills/workflow-test-fix/phases/02-test-context-gather.md +1 -0
  29. package/.claude/skills/workflow-test-fix/phases/05-test-cycle-execute.md +2 -1
  30. package/.claude/skills/workflow-tune/SKILL.md +487 -0
  31. package/.claude/skills/workflow-tune/phases/01-setup.md +548 -0
  32. package/.claude/skills/workflow-tune/phases/02-step-execute.md +197 -0
  33. package/.claude/skills/workflow-tune/phases/03-step-analyze.md +386 -0
  34. package/.claude/skills/workflow-tune/phases/04-synthesize.md +257 -0
  35. package/.claude/skills/workflow-tune/phases/05-optimize-report.md +246 -0
  36. package/.claude/skills/workflow-tune/specs/workflow-eval-criteria.md +57 -0
  37. package/.claude/skills/workflow-tune/templates/step-analysis-prompt.md +88 -0
  38. package/.claude/skills/workflow-tune/templates/synthesis-prompt.md +90 -0
  39. package/.codex/skills/analyze-with-file/SKILL.md +2 -0
  40. package/.codex/skills/debug-with-file/SKILL.md +4 -0
  41. package/.codex/skills/issue-discover/SKILL.md +1 -0
  42. package/.codex/skills/review-cycle/phases/02-parallel-review.md +3 -0
  43. package/.codex/skills/team-designer/agents/validation-reporter.md +186 -0
  44. package/.codex/skills/team-iterdev/agents/gc-controller.md +193 -0
  45. package/.codex/skills/team-iterdev/agents/task-analyzer.md +206 -0
  46. package/.codex/skills/team-lifecycle-v4/agents/quality-gate.md +165 -0
  47. package/.codex/skills/team-lifecycle-v4/agents/requirement-clarifier.md +163 -0
  48. package/.codex/skills/team-lifecycle-v4/agents/supervisor.md +182 -0
  49. package/.codex/skills/team-uidesign/agents/completion-handler.md +177 -0
  50. package/.codex/skills/team-uidesign/agents/gc-loop-handler.md +162 -0
  51. package/.codex/skills/workflow-test-fix-cycle/phases/01-test-fix-gen.md +4 -0
  52. package/.codex/skills/workflow-test-fix-cycle/phases/02-test-cycle-execute.md +2 -0
  53. package/ccw/dist/commands/spec.d.ts.map +1 -1
  54. package/ccw/dist/commands/spec.js +9 -4
  55. package/ccw/dist/commands/spec.js.map +1 -1
  56. package/ccw/dist/core/routes/codexlens-routes.d.ts.map +1 -1
  57. package/ccw/dist/core/routes/codexlens-routes.js +3 -1
  58. package/ccw/dist/core/routes/codexlens-routes.js.map +1 -1
  59. package/ccw/dist/tools/spec-index-builder.d.ts +8 -4
  60. package/ccw/dist/tools/spec-index-builder.d.ts.map +1 -1
  61. package/ccw/dist/tools/spec-index-builder.js +8 -4
  62. package/ccw/dist/tools/spec-index-builder.js.map +1 -1
  63. package/ccw/dist/tools/spec-init.d.ts +1 -1
  64. package/ccw/dist/tools/spec-init.d.ts.map +1 -1
  65. package/ccw/dist/tools/spec-init.js +127 -0
  66. package/ccw/dist/tools/spec-init.js.map +1 -1
  67. package/ccw/dist/tools/spec-loader.d.ts.map +1 -1
  68. package/ccw/dist/tools/spec-loader.js +2 -1
  69. package/ccw/dist/tools/spec-loader.js.map +1 -1
  70. package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js → AlertDialog-BW9jiZ-p.js} +2 -2
  71. package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js.map → AlertDialog-BW9jiZ-p.js.map} +1 -1
  72. package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js → AnalysisPage-ds-w_nVO.js} +2 -2
  73. package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js.map → AnalysisPage-ds-w_nVO.js.map} +1 -1
  74. package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js → ApiSettingsPage-DlCbXxTz.js} +2 -2
  75. package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js.map → ApiSettingsPage-DlCbXxTz.js.map} +1 -1
  76. package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js → CliModeToggle-Dq3nL4fF.js} +2 -2
  77. package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js.map → CliModeToggle-Dq3nL4fF.js.map} +1 -1
  78. package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js → CliSessionSharePage-BNDkEE4u.js} +2 -2
  79. package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js.map → CliSessionSharePage-BNDkEE4u.js.map} +1 -1
  80. package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js → CliViewerPage-ChM-uNx_.js} +2 -2
  81. package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js.map → CliViewerPage-ChM-uNx_.js.map} +1 -1
  82. package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js +2 -0
  83. package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js.map +1 -0
  84. package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js → Collapsible-CRNbykXN.js} +2 -2
  85. package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js.map → Collapsible-CRNbykXN.js.map} +1 -1
  86. package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js → CommandsManagerPage-C2JWcemF.js} +2 -2
  87. package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js.map → CommandsManagerPage-C2JWcemF.js.map} +1 -1
  88. package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js → DeepWikiPage-CvleOtJy.js} +2 -2
  89. package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js.map → DeepWikiPage-CvleOtJy.js.map} +1 -1
  90. package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js → EndpointsPage-CMOWQG64.js} +2 -2
  91. package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js.map → EndpointsPage-CMOWQG64.js.map} +1 -1
  92. package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js → ExplorerPage-DaFPRlNo.js} +2 -2
  93. package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js.map → ExplorerPage-DaFPRlNo.js.map} +1 -1
  94. package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js → FixSessionPage-CC4p04Az.js} +2 -2
  95. package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js.map → FixSessionPage-CC4p04Az.js.map} +1 -1
  96. package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js → FloatingFileBrowser-DROn1xZ5.js} +2 -2
  97. package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js.map → FloatingFileBrowser-DROn1xZ5.js.map} +1 -1
  98. package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js → FloatingPanel-CmL_yhDv.js} +2 -2
  99. package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js.map → FloatingPanel-CmL_yhDv.js.map} +1 -1
  100. package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js → GraphExplorerPage-DCV5ybKE.js} +2 -2
  101. package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js.map → GraphExplorerPage-DCV5ybKE.js.map} +1 -1
  102. package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js → HistoryPage-D0fYQZgc.js} +2 -2
  103. package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js.map → HistoryPage-D0fYQZgc.js.map} +1 -1
  104. package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js → HookManagerPage-D2FuJfsM.js} +2 -2
  105. package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js.map → HookManagerPage-D2FuJfsM.js.map} +1 -1
  106. package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js → InstallationsPage-tjklillZ.js} +2 -2
  107. package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js.map → InstallationsPage-tjklillZ.js.map} +1 -1
  108. package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js → IssueHubPage-E4JVrhO1.js} +2 -2
  109. package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js.map → IssueHubPage-E4JVrhO1.js.map} +1 -1
  110. package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js → LiteTasksPage-aJuRoyLt.js} +2 -2
  111. package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js.map → LiteTasksPage-aJuRoyLt.js.map} +1 -1
  112. package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js → McpManagerPage-BJeuWJv1.js} +2 -2
  113. package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js.map → McpManagerPage-BJeuWJv1.js.map} +1 -1
  114. package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js → MemoryPage-BI4FAXhs.js} +2 -2
  115. package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js.map → MemoryPage-BI4FAXhs.js.map} +1 -1
  116. package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js → NotFoundPage-DD2svchp.js} +2 -2
  117. package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js.map → NotFoundPage-DD2svchp.js.map} +1 -1
  118. package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js → OrchestratorPage-FC__7yYa.js} +2 -2
  119. package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js.map → OrchestratorPage-FC__7yYa.js.map} +1 -1
  120. package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js → ProjectOverviewPage-DBB_-FzV.js} +2 -2
  121. package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js.map → ProjectOverviewPage-DBB_-FzV.js.map} +1 -1
  122. package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js → PromptHistoryPage-BwOAvCH8.js} +2 -2
  123. package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js.map → PromptHistoryPage-BwOAvCH8.js.map} +1 -1
  124. package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js → ReviewSessionPage-Dd1-g_gp.js} +2 -2
  125. package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js.map → ReviewSessionPage-Dd1-g_gp.js.map} +1 -1
  126. package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js → RulesManagerPage-B3RGdsKD.js} +2 -2
  127. package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js.map → RulesManagerPage-B3RGdsKD.js.map} +1 -1
  128. package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js → SessionDetailPage-DM-W5R8K.js} +2 -2
  129. package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js.map → SessionDetailPage-DM-W5R8K.js.map} +1 -1
  130. package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js → SessionsPage-BVz1KCc7.js} +2 -2
  131. package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js.map → SessionsPage-BVz1KCc7.js.map} +1 -1
  132. package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js → SettingsPage-ComW7EZS.js} +4 -4
  133. package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js.map → SettingsPage-ComW7EZS.js.map} +1 -1
  134. package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js → SkillsManagerPage-CKom9XwV.js} +2 -2
  135. package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js.map → SkillsManagerPage-CKom9XwV.js.map} +1 -1
  136. package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js → SpecsSettingsPage-DQz7WP2s.js} +2 -2
  137. package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js.map → SpecsSettingsPage-DQz7WP2s.js.map} +1 -1
  138. package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js → Switch-BPMdND9H.js} +2 -2
  139. package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js.map → Switch-BPMdND9H.js.map} +1 -1
  140. package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js → TabsNavigation-qqt70VYL.js} +2 -2
  141. package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js.map → TabsNavigation-qqt70VYL.js.map} +1 -1
  142. package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js → TaskDrawer-BqK_qiHX.js} +2 -2
  143. package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js.map → TaskDrawer-BqK_qiHX.js.map} +1 -1
  144. package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js → TeamPage-u5_i0Rgh.js} +2 -2
  145. package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js.map → TeamPage-u5_i0Rgh.js.map} +1 -1
  146. package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js → TerminalDashboardPage-rUtC9e40.js} +2 -2
  147. package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js.map → TerminalDashboardPage-rUtC9e40.js.map} +1 -1
  148. package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js → archive-C3u8YNQF.js} +2 -2
  149. package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js.map → archive-C3u8YNQF.js.map} +1 -1
  150. package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js → archive-restore-DfQ998g5.js} +2 -2
  151. package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js.map → archive-restore-DfQ998g5.js.map} +1 -1
  152. package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js → arrow-right-BshJM9Po.js} +2 -2
  153. package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js.map → arrow-right-BshJM9Po.js.map} +1 -1
  154. package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js → bookmark-plus-D03qJyOZ.js} +2 -2
  155. package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js.map → bookmark-plus-D03qJyOZ.js.map} +1 -1
  156. package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js → bot-CyzWuwq0.js} +2 -2
  157. package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js.map → bot-CyzWuwq0.js.map} +1 -1
  158. package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js → braces-BPgtyjsG.js} +2 -2
  159. package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js.map → braces-BPgtyjsG.js.map} +1 -1
  160. package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js → circle-stop-Dix1AOmw.js} +2 -2
  161. package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js.map → circle-stop-Dix1AOmw.js.map} +1 -1
  162. package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js → cpu-CCQ4Q0Zh.js} +2 -2
  163. package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js.map → cpu-CCQ4Q0Zh.js.map} +1 -1
  164. package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js → ellipsis-vertical-BpTysg-Y.js} +2 -2
  165. package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js.map → ellipsis-vertical-BpTysg-Y.js.map} +1 -1
  166. package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js → eye-DGY1rAZs.js} +2 -2
  167. package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js.map → eye-DGY1rAZs.js.map} +1 -1
  168. package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js → eye-off-D8t3JfWG.js} +2 -2
  169. package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js.map → eye-off-D8t3JfWG.js.map} +1 -1
  170. package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js → file-json-BAdJb0n8.js} +2 -2
  171. package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js.map → file-json-BAdJb0n8.js.map} +1 -1
  172. package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js → file-text-DrJFiOUB.js} +2 -2
  173. package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js.map → file-text-DrJFiOUB.js.map} +1 -1
  174. package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js → filter-CKqzYbz7.js} +2 -2
  175. package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js.map → filter-CKqzYbz7.js.map} +1 -1
  176. package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js → folder-CV8511y9.js} +2 -2
  177. package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js.map → folder-CV8511y9.js.map} +1 -1
  178. package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js → gauge-XKvmu_uU.js} +2 -2
  179. package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js.map → gauge-XKvmu_uU.js.map} +1 -1
  180. package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js → globe-C56cDUzX.js} +2 -2
  181. package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js.map → globe-C56cDUzX.js.map} +1 -1
  182. package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js → grid-3x3-Bya-suFW.js} +2 -2
  183. package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js.map → grid-3x3-Bya-suFW.js.map} +1 -1
  184. package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js → hard-drive-CmuTZpsB.js} +2 -2
  185. package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js.map → hard-drive-CmuTZpsB.js.map} +1 -1
  186. package/ccw/frontend/dist/assets/{hash-Bd1RD285.js → hash-CRPT_tJQ.js} +2 -2
  187. package/ccw/frontend/dist/assets/{hash-Bd1RD285.js.map → hash-CRPT_tJQ.js.map} +1 -1
  188. package/ccw/frontend/dist/assets/{history-eyyCQA6b.js → history-C1pJZQCL.js} +2 -2
  189. package/ccw/frontend/dist/assets/{history-eyyCQA6b.js.map → history-C1pJZQCL.js.map} +1 -1
  190. package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js → index-B6TpijCe.js} +2 -2
  191. package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js.map → index-B6TpijCe.js.map} +1 -1
  192. package/ccw/frontend/dist/assets/{index-b2C0iFd1.js → index-Bcq-7r6F.js} +2 -2
  193. package/ccw/frontend/dist/assets/{index-b2C0iFd1.js.map → index-Bcq-7r6F.js.map} +1 -1
  194. package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js → index-CI8-rBff.js} +2 -2
  195. package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js.map → index-CI8-rBff.js.map} +1 -1
  196. package/ccw/frontend/dist/assets/{index-CY6Lueph.js → index-Dmt9OiEf.js} +2 -2
  197. package/ccw/frontend/dist/assets/{index-CY6Lueph.js.map → index-Dmt9OiEf.js.map} +1 -1
  198. package/ccw/frontend/dist/assets/{index-DfeBbFXo.js → index-anSMmEF8.js} +2 -2
  199. package/ccw/frontend/dist/assets/{index-DfeBbFXo.js.map → index-anSMmEF8.js.map} +1 -1
  200. package/ccw/frontend/dist/assets/{index-B6I7GQC5.js → index-dWT2M6Ef.js} +4 -4
  201. package/ccw/frontend/dist/assets/{index-B6I7GQC5.js.map → index-dWT2M6Ef.js.map} +1 -1
  202. package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js → layout-grid-TSO0BFQE.js} +2 -2
  203. package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js.map → layout-grid-TSO0BFQE.js.map} +1 -1
  204. package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js → lightbulb-Caj6fIQD.js} +2 -2
  205. package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js.map → lightbulb-Caj6fIQD.js.map} +1 -1
  206. package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js → link-2-DE9lMxa-.js} +2 -2
  207. package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js.map → link-2-DE9lMxa-.js.map} +1 -1
  208. package/ccw/frontend/dist/assets/{link-CL4JmoHb.js → link-BZtPgLW0.js} +2 -2
  209. package/ccw/frontend/dist/assets/{link-CL4JmoHb.js.map → link-BZtPgLW0.js.map} +1 -1
  210. package/ccw/frontend/dist/assets/{list-CDmYFcio.js → list-DubWyY-U.js} +2 -2
  211. package/ccw/frontend/dist/assets/{list-CDmYFcio.js.map → list-DubWyY-U.js.map} +1 -1
  212. package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js → map-pin-DwN_48AF.js} +2 -2
  213. package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js.map → map-pin-DwN_48AF.js.map} +1 -1
  214. package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js → messages-square-bjxvaiM9.js} +2 -2
  215. package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js.map → messages-square-bjxvaiM9.js.map} +1 -1
  216. package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js → minimize-2-CGfBKD_V.js} +2 -2
  217. package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js.map → minimize-2-CGfBKD_V.js.map} +1 -1
  218. package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js → package-nzWY6ilt.js} +2 -2
  219. package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js.map → package-nzWY6ilt.js.map} +1 -1
  220. package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js → plug-CiLce49C.js} +2 -2
  221. package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js.map → plug-CiLce49C.js.map} +1 -1
  222. package/ccw/frontend/dist/assets/{power-DmIojFl-.js → power-CFLmB-U9.js} +2 -2
  223. package/ccw/frontend/dist/assets/{power-DmIojFl-.js.map → power-CFLmB-U9.js.map} +1 -1
  224. package/ccw/frontend/dist/assets/{save-BFa03OnG.js → save-DuO6OF0C.js} +2 -2
  225. package/ccw/frontend/dist/assets/{save-BFa03OnG.js.map → save-DuO6OF0C.js.map} +1 -1
  226. package/ccw/frontend/dist/assets/{send-Vet3sN4J.js → send-CZk9p0mM.js} +2 -2
  227. package/ccw/frontend/dist/assets/{send-Vet3sN4J.js.map → send-CZk9p0mM.js.map} +1 -1
  228. package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js → square-check-big-BY_1YQQg.js} +2 -2
  229. package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js.map → square-check-big-BY_1YQQg.js.map} +1 -1
  230. package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js → square-pen-CnZgm6g-.js} +2 -2
  231. package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js.map → square-pen-CnZgm6g-.js.map} +1 -1
  232. package/ccw/frontend/dist/assets/{star-BCQHcnSe.js → star-Cn1F0qy7.js} +2 -2
  233. package/ccw/frontend/dist/assets/{star-BCQHcnSe.js.map → star-Cn1F0qy7.js.map} +1 -1
  234. package/ccw/frontend/dist/assets/{style-CJsrp48L.js → style-Dxs1iXCV.js} +2 -2
  235. package/ccw/frontend/dist/assets/{style-CJsrp48L.js.map → style-Dxs1iXCV.js.map} +1 -1
  236. package/ccw/frontend/dist/assets/{target-CBzCJCB1.js → target-Bz1fLRKH.js} +2 -2
  237. package/ccw/frontend/dist/assets/{target-CBzCJCB1.js.map → target-Bz1fLRKH.js.map} +1 -1
  238. package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js → test-tube-C6qCYlDr.js} +2 -2
  239. package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js.map → test-tube-C6qCYlDr.js.map} +1 -1
  240. package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js → upload-C71kd4Qs.js} +2 -2
  241. package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js.map → upload-C71kd4Qs.js.map} +1 -1
  242. package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js → useApiSettings-CqP2BAJ7.js} +2 -2
  243. package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js.map → useApiSettings-CqP2BAJ7.js.map} +1 -1
  244. package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js → useCli-PCoPoVeM.js} +2 -2
  245. package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js.map → useCli-PCoPoVeM.js.map} +1 -1
  246. package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js → useCommands-3OfPQPw4.js} +2 -2
  247. package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js.map → useCommands-3OfPQPw4.js.map} +1 -1
  248. package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js → useDebounce-bXiFhQx9.js} +2 -2
  249. package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js.map → useDebounce-bXiFhQx9.js.map} +1 -1
  250. package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js → useFileExplorer-DEyUm46_.js} +2 -2
  251. package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js.map → useFileExplorer-DEyUm46_.js.map} +1 -1
  252. package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js → useLocale-sXTrdxcJ.js} +2 -2
  253. package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js.map → useLocale-sXTrdxcJ.js.map} +1 -1
  254. package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js → useSkills-D0W0kXYm.js} +3 -3
  255. package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js.map → useSkills-D0W0kXYm.js.map} +1 -1
  256. package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js → useSystemSettings-DZ-8lZsG.js} +2 -2
  257. package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js.map → useSystemSettings-DZ-8lZsG.js.map} +1 -1
  258. package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js → wand-sparkles-83GmAYuw.js} +2 -2
  259. package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js.map → wand-sparkles-83GmAYuw.js.map} +1 -1
  260. package/ccw/frontend/dist/index.html +1 -1
  261. package/package.json +1 -1
  262. package/.claude/skills/team-arch-opt/role-specs/analyzer.md +0 -80
  263. package/.claude/skills/team-arch-opt/role-specs/designer.md +0 -118
  264. package/.claude/skills/team-arch-opt/role-specs/refactorer.md +0 -106
  265. package/.claude/skills/team-arch-opt/role-specs/reviewer.md +0 -116
  266. package/.claude/skills/team-arch-opt/role-specs/validator.md +0 -117
  267. package/.claude/skills/team-brainstorm/role-specs/challenger.md +0 -63
  268. package/.claude/skills/team-brainstorm/role-specs/evaluator.md +0 -58
  269. package/.claude/skills/team-brainstorm/role-specs/ideator.md +0 -71
  270. package/.claude/skills/team-brainstorm/role-specs/synthesizer.md +0 -59
  271. package/.claude/skills/team-frontend/role-specs/analyst.md +0 -91
  272. package/.claude/skills/team-frontend/role-specs/architect.md +0 -85
  273. package/.claude/skills/team-frontend/role-specs/developer.md +0 -92
  274. package/.claude/skills/team-frontend/role-specs/qa.md +0 -78
  275. package/.claude/skills/team-issue/role-specs/explorer.md +0 -95
  276. package/.claude/skills/team-issue/role-specs/implementer.md +0 -89
  277. package/.claude/skills/team-issue/role-specs/integrator.md +0 -86
  278. package/.claude/skills/team-issue/role-specs/planner.md +0 -83
  279. package/.claude/skills/team-issue/role-specs/reviewer.md +0 -89
  280. package/.claude/skills/team-iterdev/role-specs/architect.md +0 -64
  281. package/.claude/skills/team-iterdev/role-specs/developer.md +0 -73
  282. package/.claude/skills/team-iterdev/role-specs/reviewer.md +0 -65
  283. package/.claude/skills/team-iterdev/role-specs/tester.md +0 -87
  284. package/.claude/skills/team-perf-opt/role-specs/benchmarker.md +0 -110
  285. package/.claude/skills/team-perf-opt/role-specs/optimizer.md +0 -102
  286. package/.claude/skills/team-perf-opt/role-specs/profiler.md +0 -73
  287. package/.claude/skills/team-perf-opt/role-specs/reviewer.md +0 -91
  288. package/.claude/skills/team-perf-opt/role-specs/strategist.md +0 -114
  289. package/.claude/skills/team-planex/role-specs/executor.md +0 -90
  290. package/.claude/skills/team-planex/role-specs/planner.md +0 -110
  291. package/.claude/skills/team-quality-assurance/role-specs/analyst.md +0 -79
  292. package/.claude/skills/team-quality-assurance/role-specs/executor.md +0 -64
  293. package/.claude/skills/team-quality-assurance/role-specs/generator.md +0 -67
  294. package/.claude/skills/team-quality-assurance/role-specs/scout.md +0 -66
  295. package/.claude/skills/team-quality-assurance/role-specs/strategist.md +0 -70
  296. package/.claude/skills/team-review/role-specs/fixer.md +0 -75
  297. package/.claude/skills/team-review/role-specs/reviewer.md +0 -66
  298. package/.claude/skills/team-review/role-specs/scanner.md +0 -70
  299. package/.claude/skills/team-roadmap-dev/role-specs/executor.md +0 -71
  300. package/.claude/skills/team-roadmap-dev/role-specs/planner.md +0 -77
  301. package/.claude/skills/team-roadmap-dev/role-specs/verifier.md +0 -73
  302. package/.claude/skills/team-tech-debt/role-specs/assessor.md +0 -70
  303. package/.claude/skills/team-tech-debt/role-specs/executor.md +0 -80
  304. package/.claude/skills/team-tech-debt/role-specs/planner.md +0 -71
  305. package/.claude/skills/team-tech-debt/role-specs/scanner.md +0 -85
  306. package/.claude/skills/team-tech-debt/role-specs/validator.md +0 -83
  307. package/.claude/skills/team-testing/role-specs/analyst.md +0 -94
  308. package/.claude/skills/team-testing/role-specs/executor.md +0 -97
  309. package/.claude/skills/team-testing/role-specs/generator.md +0 -96
  310. package/.claude/skills/team-testing/role-specs/strategist.md +0 -82
  311. package/.claude/skills/team-uidesign/role-specs/designer.md +0 -72
  312. package/.claude/skills/team-uidesign/role-specs/implementer.md +0 -74
  313. package/.claude/skills/team-uidesign/role-specs/researcher.md +0 -84
  314. package/.claude/skills/team-uidesign/role-specs/reviewer.md +0 -70
  315. package/.claude/skills/team-ux-improve/role-specs/designer.md +0 -191
  316. package/.claude/skills/team-ux-improve/role-specs/diagnoser.md +0 -110
  317. package/.claude/skills/team-ux-improve/role-specs/explorer.md +0 -109
  318. package/.claude/skills/team-ux-improve/role-specs/implementer.md +0 -164
  319. package/.claude/skills/team-ux-improve/role-specs/scanner.md +0 -117
  320. package/.claude/skills/team-ux-improve/role-specs/tester.md +0 -163
  321. package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js +0 -2
  322. package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js.map +0 -1
@@ -1,64 +0,0 @@
1
- ---
2
- prefix: QARUN
3
- inner_loop: true
4
- additional_prefixes: [QARUN-gc]
5
- message_types:
6
- success: tests_passed
7
- failure: tests_failed
8
- coverage: coverage_report
9
- error: error
10
- ---
11
-
12
- # Test Executor
13
-
14
- Run test suites, collect coverage data, and perform automatic fix cycles when tests fail. Implements the execution side of the Generator-Executor (GC) loop.
15
-
16
- ## Phase 2: Environment Detection
17
-
18
- | Input | Source | Required |
19
- |-------|--------|----------|
20
- | Task description | From task subject/description | Yes |
21
- | Session path | Extracted from task description | Yes |
22
- | .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
23
- | Test strategy | meta.json -> test_strategy | Yes |
24
- | Generated tests | meta.json -> generated_tests | Yes |
25
- | Target layer | task description `layer: L1/L2/L3` | Yes |
26
-
27
- 1. Extract session path and target layer from task description
28
- 2. Read .msg/meta.json for strategy and generated test file list
29
- 3. Detect test command by framework:
30
-
31
- | Framework | Command |
32
- |-----------|---------|
33
- | vitest | `npx vitest run --coverage --reporter=json --outputFile=test-results.json` |
34
- | jest | `npx jest --coverage --json --outputFile=test-results.json` |
35
- | pytest | `python -m pytest --cov --cov-report=json -v` |
36
- | mocha | `npx mocha --reporter json > test-results.json` |
37
- | unknown | `npm test -- --coverage` |
38
-
39
- 4. Get test files from `generated_tests[targetLayer].files`
40
-
41
- ## Phase 3: Iterative Test-Fix Cycle
42
-
43
- **Max iterations**: 5. **Pass threshold**: 95% or all tests pass.
44
-
45
- Per iteration:
46
- 1. Run test command, capture output
47
- 2. Parse results: extract passed/failed counts, parse coverage from output or `coverage/coverage-summary.json`
48
- 3. If all pass (0 failures) -> exit loop (success)
49
- 4. If pass rate >= 95% and iteration >= 2 -> exit loop (good enough)
50
- 5. If iteration >= MAX -> exit loop (report current state)
51
- 6. Extract failure details (error lines, assertion failures)
52
- 7. Delegate fix via CLI tool with constraints:
53
- - ONLY modify test files, NEVER modify source code
54
- - Fix: incorrect assertions, missing imports, wrong mocks, setup issues
55
- - Do NOT: skip tests, add `@ts-ignore`, use `as any`
56
- 8. Increment iteration, repeat
57
-
58
- ## Phase 4: Result Analysis & Output
59
-
60
- 1. Build result data: layer, framework, iterations, pass_rate, coverage, tests_passed, tests_failed, all_passed
61
- 2. Save results to `<session>/results/run-<layer>.json`
62
- 3. Save last test output to `<session>/results/output-<layer>.txt`
63
- 4. Update `<session>/wisdom/.msg/meta.json` under `execution_results[layer]` and top-level `execution_results.pass_rate`, `execution_results.coverage`
64
- 5. Message type: `tests_passed` if all_passed, else `tests_failed`
@@ -1,67 +0,0 @@
1
- ---
2
- prefix: QAGEN
3
- inner_loop: false
4
- additional_prefixes: [QAGEN-fix]
5
- message_types:
6
- success: tests_generated
7
- revised: tests_revised
8
- error: error
9
- ---
10
-
11
- # Test Generator
12
-
13
- Generate test code according to strategist's strategy and layers. Support L1 unit tests, L2 integration tests, L3 E2E tests. Follow project's existing test patterns and framework conventions.
14
-
15
- ## Phase 2: Strategy & Pattern Loading
16
-
17
- | Input | Source | Required |
18
- |-------|--------|----------|
19
- | Task description | From task subject/description | Yes |
20
- | Session path | Extracted from task description | Yes |
21
- | .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
22
- | Test strategy | meta.json -> test_strategy | Yes |
23
- | Target layer | task description `layer: L1/L2/L3` | Yes |
24
-
25
- 1. Extract session path and target layer from task description
26
- 2. Read .msg/meta.json for test strategy (layers, coverage targets)
27
- 3. Determine if this is a GC fix task (subject contains "fix")
28
- 4. Load layer config from strategy: level, name, target_coverage, focus_files
29
- 5. Learn existing test patterns -- find 3 similar test files via Glob(`**/*.{test,spec}.{ts,tsx,js,jsx}`)
30
- 6. Detect test conventions: file location (colocated vs __tests__), import style, describe/it nesting, framework (vitest/jest/pytest)
31
-
32
- ## Phase 3: Test Code Generation
33
-
34
- **Mode selection**:
35
-
36
- | Condition | Mode |
37
- |-----------|------|
38
- | GC fix task | Read failure info from `<session>/results/run-<layer>.json`, fix failing tests only |
39
- | <= 3 focus files | Direct: inline Read source -> Write test file |
40
- | > 3 focus files | Batch by module, delegate via CLI tool |
41
-
42
- **Direct generation flow** (per source file):
43
- 1. Read source file content, extract exports
44
- 2. Determine test file path following project conventions
45
- 3. If test exists -> analyze missing cases -> append new tests via Edit
46
- 4. If no test -> generate full test file via Write
47
- 5. Include: happy path, edge cases, error cases per export
48
-
49
- **GC fix flow**:
50
- 1. Read execution results and failure output from results directory
51
- 2. Read each failing test file
52
- 3. Fix assertions, imports, mocks, or test setup
53
- 4. Do NOT modify source code, do NOT skip/ignore tests
54
-
55
- **General rules**:
56
- - Follow existing test patterns exactly (imports, naming, structure)
57
- - Target coverage per layer config
58
- - Do NOT use `any` type assertions or `@ts-ignore`
59
-
60
- ## Phase 4: Self-Validation & Output
61
-
62
- 1. Collect generated/modified test files
63
- 2. Run syntax check (TypeScript: `tsc --noEmit`, or framework-specific)
64
- 3. Auto-fix syntax errors (max 3 attempts)
65
- 4. Write test metadata to `<session>/wisdom/.msg/meta.json` under `generated_tests[layer]`:
66
- - layer, files list, count, syntax_clean, mode, gc_fix flag
67
- 5. Message type: `tests_generated` for new, `tests_revised` for GC fix iterations
@@ -1,66 +0,0 @@
1
- ---
2
- prefix: SCOUT
3
- inner_loop: false
4
- message_types:
5
- success: scan_ready
6
- error: error
7
- issues: issues_found
8
- ---
9
-
10
- # Multi-Perspective Scout
11
-
12
- Scan codebase from multiple perspectives (bug, security, test-coverage, code-quality, UX) to discover potential issues. Produce structured scan results with severity-ranked findings.
13
-
14
- ## Phase 2: Context & Scope Assessment
15
-
16
- | Input | Source | Required |
17
- |-------|--------|----------|
18
- | Task description | From task subject/description | Yes |
19
- | Session path | Extracted from task description | Yes |
20
- | .msg/meta.json | <session>/wisdom/.msg/meta.json | No |
21
-
22
- 1. Extract session path and target scope from task description
23
- 2. Determine scan scope: explicit scope from task or `**/*` default
24
- 3. Get recent changed files: `git diff --name-only HEAD~5 2>/dev/null || echo ""`
25
- 4. Read .msg/meta.json for historical defect patterns (`defect_patterns`)
26
- 5. Select scan perspectives based on task description:
27
- - Default: `["bug", "security", "test-coverage", "code-quality"]`
28
- - Add `"ux"` if task mentions UX/UI
29
- 6. Assess complexity to determine scan strategy:
30
-
31
- | Complexity | Condition | Strategy |
32
- |------------|-----------|----------|
33
- | Low | < 5 changed files, no specific keywords | ACE search + Grep inline |
34
- | Medium | 5-15 files or specific perspective requested | CLI fan-out (3 core perspectives) |
35
- | High | > 15 files or full-project scan | CLI fan-out (all perspectives) |
36
-
37
- ## Phase 3: Multi-Perspective Scan
38
-
39
- **Low complexity**: Use `mcp__ace-tool__search_context` for quick pattern-based scan.
40
-
41
- **Medium/High complexity**: CLI fan-out -- one `ccw cli --mode analysis` per perspective:
42
-
43
- For each active perspective, build prompt:
44
- ```
45
- PURPOSE: Scan code from <perspective> perspective to discover potential issues
46
- TASK: Analyze code patterns for <perspective> problems, identify anti-patterns, check for common issues
47
- MODE: analysis
48
- CONTEXT: @<scan-scope>
49
- EXPECTED: List of findings with severity (critical/high/medium/low), file:line references, description
50
- CONSTRAINTS: Focus on actionable findings only
51
- ```
52
- Execute via: `ccw cli -p "<prompt>" --tool gemini --mode analysis`
53
-
54
- After all perspectives complete:
55
- - Parse CLI outputs into structured findings
56
- - Deduplicate by file:line (merge perspectives for same location)
57
- - Compare against known defect patterns from .msg/meta.json
58
- - Rank by severity: critical > high > medium > low
59
-
60
- ## Phase 4: Result Aggregation
61
-
62
- 1. Build `discoveredIssues` array from critical + high findings (with id, severity, perspective, file, line, description)
63
- 2. Write scan results to `<session>/scan/scan-results.json`:
64
- - scan_date, perspectives scanned, total findings, by_severity counts, findings detail, issues_created count
65
- 3. Update `<session>/wisdom/.msg/meta.json`: merge `discovered_issues` field
66
- 4. Contribute to wisdom/issues.md if new patterns found
@@ -1,70 +0,0 @@
1
- ---
2
- prefix: QASTRAT
3
- inner_loop: false
4
- message_types:
5
- success: strategy_ready
6
- error: error
7
- ---
8
-
9
- # Test Strategist
10
-
11
- Analyze change scope, determine test layers (L1-L3), define coverage targets, and generate test strategy document. Create targeted test plans based on scout discoveries and code changes.
12
-
13
- ## Phase 2: Context & Change Analysis
14
-
15
- | Input | Source | Required |
16
- |-------|--------|----------|
17
- | Task description | From task subject/description | Yes |
18
- | Session path | Extracted from task description | Yes |
19
- | .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
20
- | Discovered issues | meta.json -> discovered_issues | No |
21
- | Defect patterns | meta.json -> defect_patterns | No |
22
-
23
- 1. Extract session path from task description
24
- 2. Read .msg/meta.json for scout discoveries and historical patterns
25
- 3. Analyze change scope: `git diff --name-only HEAD~5`
26
- 4. Categorize changed files:
27
-
28
- | Category | Pattern |
29
- |----------|---------|
30
- | Source | `\.(ts|tsx|js|jsx|py|java|go|rs)$` |
31
- | Test | `\.(test|spec)\.(ts|tsx|js|jsx)$` or `test_` |
32
- | Config | `\.(json|yaml|yml|toml|env)$` |
33
-
34
- 5. Detect test framework from package.json / project files
35
- 6. Check existing coverage baseline from `coverage/coverage-summary.json`
36
- 7. Select analysis mode:
37
-
38
- | Total Scope | Mode |
39
- |-------------|------|
40
- | <= 5 files + issues | Direct inline analysis |
41
- | 6-15 | Single CLI analysis |
42
- | > 15 | Multi-dimension CLI analysis |
43
-
44
- ## Phase 3: Strategy Generation
45
-
46
- **Layer Selection Logic**:
47
-
48
- | Condition | Layer | Target |
49
- |-----------|-------|--------|
50
- | Has source file changes | L1: Unit Tests | 80% |
51
- | >= 3 source files OR critical issues | L2: Integration Tests | 60% |
52
- | >= 3 critical/high severity issues | L3: E2E Tests | 40% |
53
- | No changes but has scout issues | L1 focused on issue files | 80% |
54
-
55
- For CLI-assisted analysis, use:
56
- ```
57
- PURPOSE: Analyze code changes and scout findings to determine optimal test strategy
58
- TASK: Classify changed files by risk, map issues to test requirements, identify integration points, recommend test layers with coverage targets
59
- MODE: analysis
60
- ```
61
-
62
- Build strategy document with: scope analysis, layer configs (level, name, target_coverage, focus_files, rationale), priority issues list.
63
-
64
- **Validation**: Verify strategy has layers, targets > 0, covers discovered issues, and framework detected.
65
-
66
- ## Phase 4: Output & Persistence
67
-
68
- 1. Write strategy to `<session>/strategy/test-strategy.md`
69
- 2. Update `<session>/wisdom/.msg/meta.json`: merge `test_strategy` field with scope, layers, coverage_targets, test_framework
70
- 3. Contribute to wisdom/decisions.md with layer selection rationale
@@ -1,75 +0,0 @@
1
- ---
2
- prefix: FIX
3
- inner_loop: true
4
- message_types:
5
- success: fix_complete
6
- error: fix_failed
7
- ---
8
-
9
- # Code Fixer
10
-
11
- Fix code based on reviewed findings. Load manifest, plan fix groups, apply with rollback-on-failure, verify. Code-generation role -- modifies source files.
12
-
13
- ## Phase 2: Context & Scope Resolution
14
-
15
- | Input | Source | Required |
16
- |-------|--------|----------|
17
- | Task description | From task subject/description | Yes |
18
- | Session path | Extracted from task description | Yes |
19
- | Fix manifest | <session>/fix/fix-manifest.json | Yes |
20
- | Review report | <session>/review/review-report.json | Yes |
21
- | .msg/meta.json | <session>/.msg/meta.json | No |
22
-
23
- 1. Extract session path, input path from task description
24
- 2. Load manifest (scope, source report path) and review report (findings with enrichment)
25
- 3. Filter fixable findings: severity in scope AND fix_strategy !== 'skip'
26
- 4. If 0 fixable -> report complete immediately
27
- 5. Detect quick path: findings <= 5 AND no cross-file dependencies
28
- 6. Detect verification tools: tsc (tsconfig.json), eslint (package.json), jest (package.json), pytest (pyproject.toml), semgrep (semgrep available)
29
- 7. Load wisdom files from `<session>/wisdom/`
30
-
31
- ## Phase 3: Plan + Execute
32
-
33
- ### 3A: Plan Fixes (deterministic, no CLI)
34
- 1. Group findings by primary file
35
- 2. Merge groups with cross-file dependencies (union-find)
36
- 3. Topological sort within each group (respect fix_dependencies, append cycles at end)
37
- 4. Sort groups by max severity (critical first)
38
- 5. Determine execution path: quick_path (<=5 findings, <=1 group) or standard
39
- 6. Write `<session>/fix/fix-plan.json`: `{plan_id, quick_path, groups[{id, files[], findings[], max_severity}], execution_order[], total_findings, total_groups}`
40
-
41
- ### 3B: Execute Fixes
42
- **Quick path**: Single code-developer agent for all findings.
43
- **Standard path**: One code-developer agent per group, in execution_order.
44
-
45
- Agent prompt includes: finding list (dependency-sorted), file contents (truncated 8K), critical rules:
46
- 1. Apply each fix using Edit tool in order
47
- 2. After each fix, run related tests
48
- 3. Tests PASS -> finding is "fixed"
49
- 4. Tests FAIL -> `git checkout -- {file}` -> mark "failed" -> continue
50
- 5. No retry on failure. Rollback and move on
51
- 6. If finding depends on previously failed finding -> mark "skipped"
52
-
53
- Agent returns JSON: `{results:[{id, status: fixed|failed|skipped, file, error?}]}`
54
- Fallback: check git diff per file if no structured output.
55
-
56
- Write `<session>/fix/execution-results.json`: `{fixed[], failed[], skipped[]}`
57
-
58
- ## Phase 4: Post-Fix Verification
59
-
60
- 1. Run available verification tools on modified files:
61
-
62
- | Tool | Command | Pass Criteria |
63
- |------|---------|---------------|
64
- | tsc | `npx tsc --noEmit` | 0 errors |
65
- | eslint | `npx eslint <files>` | 0 errors |
66
- | jest | `npx jest --passWithNoTests` | Tests pass |
67
- | pytest | `pytest --tb=short` | Tests pass |
68
- | semgrep | `semgrep --config auto <files> --json` | 0 results |
69
-
70
- 2. If verification fails critically -> rollback last batch
71
- 3. Write `<session>/fix/verify-results.json`
72
- 4. Generate `<session>/fix/fix-summary.json`: `{fix_id, fix_date, scope, total, fixed, failed, skipped, fix_rate, verification}`
73
- 5. Generate `<session>/fix/fix-summary.md` (human-readable)
74
- 6. Update `<session>/.msg/meta.json` with fix results
75
- 7. Contribute discoveries to `<session>/wisdom/` files
@@ -1,66 +0,0 @@
1
- ---
2
- prefix: REV
3
- inner_loop: false
4
- message_types:
5
- success: review_complete
6
- error: error
7
- ---
8
-
9
- # Finding Reviewer
10
-
11
- Deep analysis on scan findings: triage, root cause / impact / optimization enrichment via CLI fan-out, cross-correlation, and structured review report generation. Read-only -- never modifies source code.
12
-
13
- ## Phase 2: Context & Triage
14
-
15
- | Input | Source | Required |
16
- |-------|--------|----------|
17
- | Task description | From task subject/description | Yes |
18
- | Session path | Extracted from task description | Yes |
19
- | Scan results | <session>/scan/scan-results.json | Yes |
20
- | .msg/meta.json | <session>/.msg/meta.json | No |
21
-
22
- 1. Extract session path, input path, dimensions from task description
23
- 2. Load scan results. If missing or empty -> report clean, complete immediately
24
- 3. Load wisdom files from `<session>/wisdom/`
25
- 4. Triage findings into two buckets:
26
-
27
- | Bucket | Criteria | Action |
28
- |--------|----------|--------|
29
- | deep_analysis | severity in [critical, high, medium], max 15, sorted critical-first | Enrich with root cause, impact, optimization |
30
- | pass_through | remaining (low, info, or overflow) | Include in report without enrichment |
31
-
32
- If deep_analysis empty -> skip Phase 3, go to Phase 4.
33
-
34
- ## Phase 3: Deep Analysis (CLI Fan-out)
35
-
36
- Split deep_analysis into two domain groups, run parallel CLI agents:
37
-
38
- | Group | Dimensions | Focus |
39
- |-------|-----------|-------|
40
- | A | Security + Correctness | Root cause tracing, fix dependencies, blast radius |
41
- | B | Performance + Maintainability | Optimization approaches, refactor tradeoffs |
42
-
43
- If either group empty -> skip that agent.
44
-
45
- Build prompt per group requesting 6 enrichment fields per finding:
46
- - `root_cause`: `{description, related_findings[], is_symptom}`
47
- - `impact`: `{scope: low/medium/high, affected_files[], blast_radius}`
48
- - `optimization`: `{approach, alternative, tradeoff}`
49
- - `fix_strategy`: minimal / refactor / skip
50
- - `fix_complexity`: low / medium / high
51
- - `fix_dependencies`: finding IDs that must be fixed first
52
-
53
- Execute via `ccw cli --tool gemini --mode analysis --rule analysis-diagnose-bug-root-cause` (fallback: qwen -> codex). Parse JSON array responses, merge with originals (CLI-enriched replace originals, unenriched get defaults). Write `<session>/review/enriched-findings.json`.
54
-
55
- ## Phase 4: Report Generation
56
-
57
- 1. Combine enriched + pass_through findings
58
- 2. Cross-correlate:
59
- - **Critical files**: file appears in >=2 dimensions -> list with finding_count, severities
60
- - **Root cause groups**: cluster findings sharing related_findings -> identify primary
61
- - **Optimization suggestions**: from root cause groups + standalone enriched findings
62
- 3. Compute metrics: by_dimension, by_severity, dimension_severity_matrix, fixable_count, auto_fixable_count
63
- 4. Write `<session>/review/review-report.json`: `{review_id, review_date, findings[], critical_files[], optimization_suggestions[], root_cause_groups[], summary}`
64
- 5. Write `<session>/review/review-report.md`: Executive summary, metrics matrix (dimension x severity), critical/high findings table, critical files list, optimization suggestions, recommended fix scope
65
- 6. Update `<session>/.msg/meta.json` with review summary
66
- 7. Contribute discoveries to `<session>/wisdom/` files
@@ -1,70 +0,0 @@
1
- ---
2
- prefix: SCAN
3
- inner_loop: false
4
- message_types:
5
- success: scan_complete
6
- error: error
7
- ---
8
-
9
- # Code Scanner
10
-
11
- Toolchain + LLM semantic scan producing structured findings. Static analysis tools in parallel, then LLM for issues tools miss. Read-only -- never modifies source code. 4-dimension system: security (SEC), correctness (COR), performance (PRF), maintainability (MNT).
12
-
13
- ## Phase 2: Context & Toolchain Detection
14
-
15
- | Input | Source | Required |
16
- |-------|--------|----------|
17
- | Task description | From task subject/description | Yes |
18
- | Session path | Extracted from task description | Yes |
19
- | .msg/meta.json | <session>/.msg/meta.json | No |
20
-
21
- 1. Extract session path, target, dimensions, quick flag from task description
22
- 2. Resolve target files (glob pattern or directory -> `**/*.{ts,tsx,js,jsx,py,go,java,rs}`)
23
- 3. If no source files found -> report empty, complete task cleanly
24
- 4. Detect toolchain availability:
25
-
26
- | Tool | Detection | Dimension |
27
- |------|-----------|-----------|
28
- | tsc | `tsconfig.json` exists | COR |
29
- | eslint | `.eslintrc*` or `eslint` in package.json | COR/MNT |
30
- | semgrep | `.semgrep.yml` exists | SEC |
31
- | ruff | `pyproject.toml` + ruff available | SEC/COR/MNT |
32
- | mypy | mypy available + `pyproject.toml` | COR |
33
- | npmAudit | `package-lock.json` exists | SEC |
34
-
35
- 5. Load wisdom files from `<session>/wisdom/` if they exist
36
-
37
- ## Phase 3: Scan Execution
38
-
39
- **Quick mode**: Single CLI call with analysis mode, max 20 findings, skip toolchain.
40
-
41
- **Standard mode** (sequential):
42
-
43
- ### 3A: Toolchain Scan
44
- Run detected tools in parallel via Bash backgrounding. Each tool writes to `<session>/scan/tmp/<tool>.{json|txt}`. After `wait`, parse each output into normalized findings:
45
- - tsc: `file(line,col): error TSxxxx: msg` -> dimension=correctness, source=tool:tsc
46
- - eslint: JSON array -> severity 2=correctness/high, else=maintainability/medium
47
- - semgrep: `{results[]}` -> dimension=security, severity from extra.severity
48
- - ruff: `[{code,message,filename}]` -> S*=security, F*/B*=correctness, else=maintainability
49
- - mypy: `file:line: error: msg [code]` -> dimension=correctness
50
- - npm audit: `{vulnerabilities:{}}` -> dimension=security, category=dependency
51
-
52
- Write `<session>/scan/toolchain-findings.json`.
53
-
54
- ### 3B: Semantic Scan (LLM via CLI)
55
- Build prompt with target file patterns, toolchain dedup summary, and per-dimension focus areas:
56
- - SEC: Business logic vulnerabilities, privilege escalation, sensitive data flow, auth bypass
57
- - COR: Logic errors, unhandled exception paths, state management bugs, race conditions
58
- - PRF: Algorithm complexity, N+1 queries, unnecessary sync, memory leaks, missing caching
59
- - MNT: Architectural coupling, abstraction leaks, convention violations, dead code
60
-
61
- Execute via `ccw cli --tool gemini --mode analysis --rule analysis-review-code-quality` (fallback: qwen -> codex). Parse JSON array response, validate required fields (dimension, title, location.file), enforce per-dimension limit (max 5 each), filter minimum severity (medium+). Write `<session>/scan/semantic-findings.json`.
62
-
63
- ## Phase 4: Aggregate & Output
64
-
65
- 1. Merge toolchain + semantic findings, deduplicate (same file + line + dimension = duplicate)
66
- 2. Assign dimension-prefixed IDs: SEC-001, COR-001, PRF-001, MNT-001
67
- 3. Write `<session>/scan/scan-results.json` with schema: `{scan_date, target, dimensions, quick_mode, total_findings, by_severity, by_dimension, findings[]}`
68
- 4. Each finding: `{id, dimension, category, severity, title, description, location:{file,line}, source, suggested_fix, effort, confidence}`
69
- 5. Update `<session>/.msg/meta.json` with scan summary (findings_count, by_severity, by_dimension)
70
- 6. Contribute discoveries to `<session>/wisdom/` files
@@ -1,71 +0,0 @@
1
- ---
2
- prefix: EXEC
3
- inner_loop: true
4
- cli_tools:
5
- - gemini --mode write
6
- message_types:
7
- success: exec_complete
8
- progress: exec_progress
9
- error: error
10
- ---
11
-
12
- # Executor
13
-
14
- Wave-based code implementation per phase. Reads IMPL-*.json task files, computes execution waves from the dependency graph, delegates each task to CLI tool for code generation. Produces summary-{IMPL-ID}.md per task.
15
-
16
- ## Phase 2: Context Loading
17
-
18
- | Input | Source | Required |
19
- |-------|--------|----------|
20
- | Task JSONs | <session>/phase-{N}/.task/IMPL-*.json | Yes |
21
- | Prior summaries | <session>/phase-{1..N-1}/summary-*.md | No |
22
- | Wisdom | <session>/wisdom/ | No |
23
-
24
- 1. Glob `<session>/phase-{N}/.task/IMPL-*.json`, error if none found
25
- 2. Parse each task JSON: extract id, description, depends_on, files, convergence, implementation
26
- 3. Compute execution waves from dependency graph:
27
- - Wave 1: tasks with no dependencies
28
- - Wave N: tasks whose all deps are in waves 1..N-1
29
- - Force-assign if circular (break at lowest-numbered task)
30
- 4. Load prior phase summaries for cross-task context
31
-
32
- ## Phase 3: Wave-Based Implementation
33
-
34
- Execute waves sequentially, tasks within each wave can be parallel.
35
-
36
- **Strategy selection**:
37
-
38
- | Task Count | Strategy |
39
- |------------|----------|
40
- | <= 2 | Direct: inline Edit/Write |
41
- | 3-5 | Single CLI tool call for all |
42
- | > 5 | Batch: one CLI tool call per module group |
43
-
44
- **Per task**:
45
- 1. Build prompt from task JSON: description, files, implementation steps, convergence criteria
46
- 2. Include prior summaries and wisdom as context
47
- 3. Delegate to CLI tool (`run_in_background: false`):
48
- ```
49
- Bash({
50
- command: `ccw cli -p "PURPOSE: Implement task ${taskId}: ${description}
51
- TASK: ${implementationSteps}
52
- MODE: write
53
- CONTEXT: @${files.join(' @')} | Memory: ${priorSummaries}
54
- EXPECTED: Working code changes matching convergence criteria
55
- CONSTRAINTS: ${convergenceCriteria}" --tool gemini --mode write`,
56
- run_in_background: false
57
- })
58
- ```
59
- 4. Write `<session>/phase-{N}/summary-{IMPL-ID}.md` with: task ID, affected files, changes made, status
60
-
61
- **Between waves**: report wave progress via team_msg (type: exec_progress)
62
-
63
- ## Phase 4: Self-Validation
64
-
65
- | Check | Method | Pass Criteria |
66
- |-------|--------|---------------|
67
- | Affected files exist | `test -f <path>` for each file in summary | All present |
68
- | TypeScript syntax | `npx tsc --noEmit` (if tsconfig.json exists) | No errors |
69
- | Lint | `npm run lint` (best-effort) | No critical errors |
70
-
71
- Log errors via team_msg but do NOT fix — verifier handles gap detection.
@@ -1,77 +0,0 @@
1
- ---
2
- prefix: PLAN
3
- inner_loop: true
4
- cli_tools:
5
- - gemini --mode analysis
6
- message_types:
7
- success: plan_ready
8
- progress: plan_progress
9
- error: error
10
- ---
11
-
12
- # Planner
13
-
14
- Research and plan creation per roadmap phase. Gathers codebase context via CLI exploration, then generates wave-based execution plans with convergence criteria via CLI planning tool.
15
-
16
- ## Phase 2: Context Loading + Research
17
-
18
- | Input | Source | Required |
19
- |-------|--------|----------|
20
- | roadmap.md | <session>/roadmap.md | Yes |
21
- | config.json | <session>/config.json | Yes |
22
- | Prior summaries | <session>/phase-{1..N-1}/summary-*.md | No |
23
- | Wisdom | <session>/wisdom/ | No |
24
-
25
- 1. Read roadmap.md, extract phase goal, requirements (REQ-IDs), success criteria
26
- 2. Read config.json for depth setting (quick/standard/comprehensive)
27
- 3. Load prior phase summaries for dependency context
28
- 4. Detect gap closure mode (task description contains "Gap closure")
29
- 5. Launch CLI exploration with phase requirements as exploration query:
30
- ```
31
- Bash({
32
- command: `ccw cli -p "PURPOSE: Explore codebase for phase requirements
33
- TASK: • Identify files needing modification • Map patterns and dependencies • Assess test infrastructure • Identify risks
34
- MODE: analysis
35
- CONTEXT: @**/* | Memory: Phase goal: ${phaseGoal}
36
- EXPECTED: Structured exploration results with file lists, patterns, risks
37
- CONSTRAINTS: Read-only analysis" --tool gemini --mode analysis`,
38
- run_in_background: false
39
- })
40
- ```
41
- - Target: files needing modification, patterns, dependencies, test infrastructure, risks
42
- 6. If depth=comprehensive: run Gemini CLI analysis (`--mode analysis --rule analysis-analyze-code-patterns`)
43
- 7. Write `<session>/phase-{N}/context.md` combining roadmap requirements + exploration results
44
-
45
- ## Phase 3: Plan Creation
46
-
47
- 1. Load context.md from Phase 2
48
- 2. Create output directory: `<session>/phase-{N}/.task/`
49
- 3. Delegate to CLI planning tool with:
50
- ```
51
- Bash({
52
- command: `ccw cli -p "PURPOSE: Generate wave-based execution plan for phase ${phaseNum}
53
- TASK: • Break down requirements into tasks • Define convergence criteria • Build dependency graph • Assign waves
54
- MODE: write
55
- CONTEXT: @${contextMd} | Memory: ${priorSummaries}
56
- EXPECTED: IMPL_PLAN.md + IMPL-*.json files + TODO_LIST.md
57
- CONSTRAINTS: <= 10 tasks | Valid DAG | Measurable convergence criteria" --tool gemini --mode write`,
58
- run_in_background: false
59
- })
60
- ```
61
- 4. CLI tool produces: `IMPL_PLAN.md`, `.task/IMPL-*.json`, `TODO_LIST.md`
62
- 5. If gap closure: only create tasks for gaps, starting from next available ID
63
-
64
- ## Phase 4: Self-Validation
65
-
66
- | Check | Pass Criteria | Action on Failure |
67
- |-------|---------------|-------------------|
68
- | Task JSON files exist | >= 1 IMPL-*.json found | Error to coordinator |
69
- | Required fields | id, title, description, files, implementation, convergence | Log warning |
70
- | Convergence criteria | Each task has >= 1 criterion | Log warning |
71
- | No self-dependency | task.id not in task.depends_on | Log error, remove cycle |
72
- | All deps valid | Every depends_on ID exists | Log warning |
73
- | IMPL_PLAN.md exists | File present | Generate minimal version from task JSONs |
74
-
75
- After validation, compute wave structure from dependency graph for reporting:
76
- - Wave count = topological layers of DAG
77
- - Report: task count, wave count, file list