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
@@ -40,6 +40,8 @@ Multi-dimensional code review skill that analyzes code across 6 key dimensions a
40
40
  └─────────────────────────────────────────────────────────────────┘
41
41
  ```
42
42
 
43
+ **Project Context**: Run `ccw spec load --category review` for review standards, checklists, and approval gates.
44
+
43
45
  ## Key Design Principles
44
46
 
45
47
  1. **多维度审查**: 覆盖正确性、可读性、性能、安全性、测试覆盖、架构一致性六大维度
@@ -98,6 +98,10 @@ Skill(skill="review-cycle", args="-y src/auth/**")
98
98
  | module | [phases/review-module.md](phases/review-module.md) | review-module-cycle.md | Module-based review: path patterns → 7-dimension parallel analysis → aggregation → deep-dive → completion |
99
99
  | fix | [phases/review-fix.md](phases/review-fix.md) | review-cycle-fix.md | Automated fix: export file → intelligent batching → parallel planning → execution → completion |
100
100
 
101
+ ## Project Context
102
+
103
+ Run `ccw spec load --category review` for review standards, checklists, and approval gates.
104
+
101
105
  ## Core Rules
102
106
 
103
107
  1. **Mode Detection First**: Parse input to determine session/module/fix mode before anything else
@@ -9,6 +9,10 @@ Apply simplification rules from analysisResult to produce optimized content. Wri
9
9
  - Fix pseudo-code format issues
10
10
  - Write optimized content back to target file
11
11
 
12
+ ## Pre-Step: Load Context
13
+
14
+ Run `ccw spec load --category validation` for verification rules and acceptance criteria to validate optimization preserves functional integrity.
15
+
12
16
  ## Execution
13
17
 
14
18
  ### Step 2.1: Apply Operations in Order
@@ -19,6 +19,10 @@ Decompose the specification into executable Epics and Stories with dependency ma
19
19
 
20
20
  ## Execution Steps
21
21
 
22
+ ### Step 0: Load Validation Context
23
+
24
+ Run `ccw spec load --category validation` for verification rules and acceptance criteria to validate epic decomposition.
25
+
22
26
  ### Step 1: Load Phase 2-4 Context
23
27
 
24
28
  ```javascript
@@ -23,7 +23,7 @@
23
23
  "name": "analyzer",
24
24
  "type": "orchestration",
25
25
  "description": "Analyzes architecture: dependency graphs, coupling/cohesion, layering violations, God Classes, dead code",
26
- "role_spec": "role-specs/analyzer.md",
26
+ "role_spec": "roles/analyzer/role.md",
27
27
  "inner_loop": false,
28
28
  "frontmatter": {
29
29
  "prefix": "ANALYZE",
@@ -43,7 +43,7 @@
43
43
  "name": "designer",
44
44
  "type": "orchestration",
45
45
  "description": "Designs refactoring strategies from architecture analysis, produces prioritized refactoring plan with discrete REFACTOR-IDs",
46
- "role_spec": "role-specs/designer.md",
46
+ "role_spec": "roles/designer/role.md",
47
47
  "inner_loop": false,
48
48
  "frontmatter": {
49
49
  "prefix": "DESIGN",
@@ -63,7 +63,7 @@
63
63
  "name": "refactorer",
64
64
  "type": "code_generation",
65
65
  "description": "Implements architecture refactoring changes following the design plan",
66
- "role_spec": "role-specs/refactorer.md",
66
+ "role_spec": "roles/refactorer/role.md",
67
67
  "inner_loop": true,
68
68
  "frontmatter": {
69
69
  "prefix": "REFACTOR",
@@ -84,7 +84,7 @@
84
84
  "name": "validator",
85
85
  "type": "validation",
86
86
  "description": "Validates refactoring: build checks, test suites, dependency metrics, API compatibility",
87
- "role_spec": "role-specs/validator.md",
87
+ "role_spec": "roles/validator/role.md",
88
88
  "inner_loop": false,
89
89
  "frontmatter": {
90
90
  "prefix": "VALIDATE",
@@ -105,7 +105,7 @@
105
105
  "name": "reviewer",
106
106
  "type": "read_only_analysis",
107
107
  "description": "Reviews refactoring code for correctness, pattern consistency, completeness, migration safety, and best practices",
108
- "role_spec": "role-specs/reviewer.md",
108
+ "role_spec": "roles/reviewer/role.md",
109
109
  "inner_loop": false,
110
110
  "frontmatter": {
111
111
  "prefix": "REVIEW",
@@ -31,8 +31,9 @@ Root cause analysis from debug evidence.
31
31
 
32
32
  ## Phase 2: Load Evidence
33
33
 
34
- 1. Read upstream artifacts via team_msg(operation="get_state", role="reproducer")
35
- 2. Extract evidence paths from reproducer's state_update ref
34
+ 1. Load debug specs: Run `ccw spec load --category debug` for known issues, workarounds, and root-cause notes
35
+ 2. Read upstream artifacts via team_msg(operation="get_state", role="reproducer")
36
+ 3. Extract evidence paths from reproducer's state_update ref
36
37
  3. Load evidence-summary.json from session evidence/
37
38
  4. Load all evidence files:
38
39
  - Read screenshot files (visual inspection)
@@ -73,7 +73,7 @@ Agent({
73
73
  run_in_background: true,
74
74
  prompt: `## Role Assignment
75
75
  role: <role>
76
- role_spec: ~ or <project>/.claude/skills/team-perf-opt/role-specs/<role>.md
76
+ role_spec: ~ or <project>/.claude/skills/team-perf-opt/roles/<role>/role.md
77
77
  session: <session-folder>
78
78
  session_id: <session-id>
79
79
  team_name: perf-opt
@@ -24,7 +24,7 @@
24
24
  "name": "profiler",
25
25
  "type": "orchestration",
26
26
  "description": "Profiles application performance, identifies CPU/memory/IO/network/rendering bottlenecks",
27
- "role_spec": "role-specs/profiler.md",
27
+ "role_spec": "roles/profiler/role.md",
28
28
  "inner_loop": false,
29
29
  "frontmatter": {
30
30
  "prefix": "PROFILE",
@@ -44,7 +44,7 @@
44
44
  "name": "strategist",
45
45
  "type": "orchestration",
46
46
  "description": "Analyzes bottleneck reports, designs prioritized optimization plans with concrete strategies",
47
- "role_spec": "role-specs/strategist.md",
47
+ "role_spec": "roles/strategist/role.md",
48
48
  "inner_loop": false,
49
49
  "frontmatter": {
50
50
  "prefix": "STRATEGY",
@@ -64,7 +64,7 @@
64
64
  "name": "optimizer",
65
65
  "type": "code_generation",
66
66
  "description": "Implements optimization changes following the strategy plan",
67
- "role_spec": "role-specs/optimizer.md",
67
+ "role_spec": "roles/optimizer/role.md",
68
68
  "inner_loop": true,
69
69
  "frontmatter": {
70
70
  "prefix": "IMPL",
@@ -85,7 +85,7 @@
85
85
  "name": "benchmarker",
86
86
  "type": "validation",
87
87
  "description": "Runs benchmarks, compares before/after metrics, validates performance improvements",
88
- "role_spec": "role-specs/benchmarker.md",
88
+ "role_spec": "roles/benchmarker/role.md",
89
89
  "inner_loop": false,
90
90
  "frontmatter": {
91
91
  "prefix": "BENCH",
@@ -106,7 +106,7 @@
106
106
  "name": "reviewer",
107
107
  "type": "read_only_analysis",
108
108
  "description": "Reviews optimization code for correctness, side effects, and regression risks",
109
- "role_spec": "role-specs/reviewer.md",
109
+ "role_spec": "roles/reviewer/role.md",
110
110
  "inner_loop": false,
111
111
  "frontmatter": {
112
112
  "prefix": "REVIEW",
@@ -26,7 +26,8 @@ Run test suites, collect coverage data, and perform automatic fix cycles when te
26
26
  | Target layer | task description `layer: L1/L2/L3` | Yes |
27
27
 
28
28
  1. Extract session path and target layer from task description
29
- 2. Read .msg/meta.json for strategy and generated test file list
29
+ 2. Load validation specs: Run `ccw spec load --category validation` for verification rules and acceptance criteria
30
+ 3. Read .msg/meta.json for strategy and generated test file list
30
31
  3. Detect test command by framework:
31
32
 
32
33
  | Framework | Command |
@@ -21,7 +21,8 @@ Deep analysis on scan findings: triage, root cause / impact / optimization enric
21
21
  | .msg/meta.json | <session>/.msg/meta.json | No |
22
22
 
23
23
  1. Extract session path, input path, dimensions from task description
24
- 2. Load scan results. If missing or empty -> report clean, complete immediately
24
+ 2. Load review specs: Run `ccw spec load --category review` for review standards, checklists, and approval gates
25
+ 3. Load scan results. If missing or empty -> report clean, complete immediately
25
26
  3. Load wisdom files from `<session>/wisdom/`
26
27
  4. Triage findings into two buckets:
27
28
 
@@ -18,7 +18,8 @@ Multi-dimension tech debt scanner. Scan codebase across 5 dimensions (code, arch
18
18
  | .msg/meta.json | <session>/.msg/meta.json | Yes |
19
19
 
20
20
  1. Extract session path and scan scope from task description
21
- 2. Read .msg/meta.json for team context
21
+ 2. Load debug specs: Run `ccw spec load --category debug` for known issues, workarounds, and root-cause notes
22
+ 3. Read .msg/meta.json for team context
22
23
  3. Detect project type and framework:
23
24
 
24
25
  | Signal File | Project Type |
@@ -24,7 +24,8 @@ Execute tests, collect coverage, attempt auto-fix for failures. Acts as the Crit
24
24
  | .msg/meta.json | <session>/wisdom/.msg/meta.json | No |
25
25
 
26
26
  1. Extract session path and test directory from task description
27
- 2. Extract coverage target (default: 80%)
27
+ 2. Load test specs: Run `ccw spec load --category test` for test framework conventions and coverage targets
28
+ 3. Extract coverage target (default: 80%)
28
29
  3. Read .msg/meta.json for framework info (from strategist namespace)
29
30
  4. Determine test framework:
30
31
 
@@ -22,7 +22,8 @@ Generate test code by layer (L1 unit / L2 integration / L3 E2E). Acts as the Gen
22
22
  | .msg/meta.json | <session>/wisdom/.msg/meta.json | No |
23
23
 
24
24
  1. Extract session path and layer from task description
25
- 2. Read test strategy:
25
+ 2. Load test specs: Run `ccw spec load --category test` for test framework conventions and coverage targets
26
+ 3. Read test strategy:
26
27
 
27
28
  ```
28
29
  Read("<session>/strategy/test-strategy.md")
@@ -18,7 +18,8 @@ Explore codebase structure through cli-explore-agent, collecting structured cont
18
18
  | Task description | From task subject/description | Yes |
19
19
  | Session path | Extracted from task description | Yes |
20
20
 
21
- 1. Extract session path, topic, perspective, dimensions from task description:
21
+ 1. Load debug specs: Run `ccw spec load --category debug` for known issues and root-cause notes
22
+ 2. Extract session path, topic, perspective, dimensions from task description:
22
23
 
23
24
  | Field | Pattern | Default |
24
25
  |-------|---------|---------|
@@ -27,7 +27,7 @@
27
27
  "display_name": "UI Scanner",
28
28
  "type": "worker",
29
29
  "responsibility_type": "read_only_analysis",
30
- "role_spec": "role-specs/scanner.md",
30
+ "role_spec": "roles/scanner/role.md",
31
31
  "task_prefix": "SCAN",
32
32
  "inner_loop": false,
33
33
  "allowed_tools": ["Read", "Grep", "Glob", "Bash", "mcp__ace-tool__search_context", "mcp__ccw-tools__read_file", "mcp__ccw-tools__team_msg", "TaskList", "TaskGet", "TaskUpdate", "SendMessage"],
@@ -46,7 +46,7 @@
46
46
  "display_name": "State Diagnoser",
47
47
  "type": "worker",
48
48
  "responsibility_type": "orchestration",
49
- "role_spec": "role-specs/diagnoser.md",
49
+ "role_spec": "roles/diagnoser/role.md",
50
50
  "task_prefix": "DIAG",
51
51
  "inner_loop": false,
52
52
  "allowed_tools": ["Read", "Grep", "Bash", "mcp__ace-tool__search_context", "mcp__ccw-tools__read_file", "mcp__ccw-tools__team_msg", "TaskList", "TaskGet", "TaskUpdate", "SendMessage"],
@@ -65,7 +65,7 @@
65
65
  "display_name": "UX Designer",
66
66
  "type": "worker",
67
67
  "responsibility_type": "orchestration",
68
- "role_spec": "role-specs/designer.md",
68
+ "role_spec": "roles/designer/role.md",
69
69
  "task_prefix": "DESIGN",
70
70
  "inner_loop": false,
71
71
  "allowed_tools": ["Read", "Write", "Bash", "mcp__ccw-tools__read_file", "mcp__ccw-tools__write_file", "mcp__ccw-tools__team_msg", "TaskList", "TaskGet", "TaskUpdate", "SendMessage"],
@@ -84,7 +84,7 @@
84
84
  "display_name": "Code Implementer",
85
85
  "type": "worker",
86
86
  "responsibility_type": "code_generation",
87
- "role_spec": "role-specs/implementer.md",
87
+ "role_spec": "roles/implementer/role.md",
88
88
  "task_prefix": "IMPL",
89
89
  "inner_loop": true,
90
90
  "allowed_tools": ["Read", "Write", "Edit", "Bash", "mcp__ccw-tools__read_file", "mcp__ccw-tools__write_file", "mcp__ccw-tools__edit_file", "mcp__ccw-tools__team_msg", "TaskList", "TaskGet", "TaskUpdate", "SendMessage"],
@@ -103,7 +103,7 @@
103
103
  "display_name": "Test Engineer",
104
104
  "type": "worker",
105
105
  "responsibility_type": "validation",
106
- "role_spec": "role-specs/tester.md",
106
+ "role_spec": "roles/tester/role.md",
107
107
  "task_prefix": "TEST",
108
108
  "inner_loop": false,
109
109
  "allowed_tools": ["Read", "Write", "Bash", "mcp__ccw-tools__read_file", "mcp__ccw-tools__write_file", "mcp__ccw-tools__team_msg", "TaskList", "TaskGet", "TaskUpdate", "SendMessage"],
@@ -123,7 +123,7 @@
123
123
  {
124
124
  "name": "explorer",
125
125
  "display_name": "Codebase Explorer",
126
- "role_spec": "role-specs/explorer.md",
126
+ "role_spec": "roles/explorer/role.md",
127
127
  "callable_by": "coordinator",
128
128
  "purpose": "Explore codebase for UI component patterns, state management conventions, and framework-specific patterns",
129
129
  "allowed_tools": ["Read", "Grep", "Glob", "Bash", "mcp__ace-tool__search_context", "mcp__ccw-tools__read_file", "mcp__ccw-tools__team_msg"],
@@ -93,7 +93,7 @@ rg "password|token|secret|auth" -g "*.{ts,js,py}"
93
93
  rg "eval|exec|innerHTML|dangerouslySetInnerHTML" -g "*.{ts,js,tsx}"
94
94
 
95
95
  # Gemini security analysis
96
- ccw spec load --category execution
96
+ ccw spec load --category review
97
97
  ccw cli -p "
98
98
  PURPOSE: Security audit of completed implementation
99
99
  TASK: Review code for security vulnerabilities, insecure patterns, auth/authz issues
@@ -105,7 +105,7 @@ RULES: Focus on OWASP Top 10, authentication, authorization, data validation, in
105
105
 
106
106
  **Architecture Review** (`architecture`):
107
107
  ```bash
108
- ccw spec load --category execution
108
+ ccw spec load --category review
109
109
  ccw cli -p "
110
110
  PURPOSE: Architecture compliance review
111
111
  TASK: Evaluate adherence to architectural patterns, identify technical debt, review design decisions
@@ -117,7 +117,7 @@ RULES: Check for patterns, separation of concerns, modularity, scalability
117
117
 
118
118
  **Quality Review** (`quality`):
119
119
  ```bash
120
- ccw spec load --category execution
120
+ ccw spec load --category review
121
121
  ccw cli -p "
122
122
  PURPOSE: Code quality and best practices review
123
123
  TASK: Assess code readability, maintainability, adherence to best practices
@@ -139,7 +139,7 @@ for task_file in ${sessionPath}/.task/*.json; do
139
139
  done
140
140
 
141
141
  # Cross-check implementation against requirements
142
- ccw spec load --category execution
142
+ ccw spec load --category review
143
143
  ccw cli -p "
144
144
  PURPOSE: Verify all requirements and acceptance criteria are met
145
145
  TASK: Cross-check implementation summaries against original requirements
@@ -74,7 +74,7 @@ function selectExecutionOptions() {
74
74
  const autoYes = workflowPreferences?.autoYes ?? false
75
75
 
76
76
  if (autoYes) {
77
- return { execution_method: "Auto", code_review_tool: "Skip" }
77
+ return { execution_method: "Auto", code_review_tool: "Skip", convergence_review_tool: "Skip" }
78
78
  }
79
79
 
80
80
  return AskUserQuestion({
@@ -90,14 +90,25 @@ function selectExecutionOptions() {
90
90
  ]
91
91
  },
92
92
  {
93
- question: "Review tool for test-review phase?",
94
- header: "Review Tool (passed to lite-test-review)",
93
+ question: "Code review after execution? (runs here in lite-execute)",
94
+ header: "Code Review",
95
95
  multiSelect: false,
96
96
  options: [
97
- { label: "Agent Review", description: "Agent review in test-review (default)" },
98
- { label: "Gemini Review", description: "Gemini CLI in test-review" },
99
- { label: "Codex Review", description: "Codex CLI in test-review" },
100
- { label: "Skip", description: "Skip review in test-review" }
97
+ { label: "Gemini Review", description: "Gemini CLI: git diff quality review" },
98
+ { label: "Codex Review", description: "Codex CLI: git-aware code review (--mode review)" },
99
+ { label: "Agent Review", description: "@code-reviewer agent" },
100
+ { label: "Skip", description: "No code review" }
101
+ ]
102
+ },
103
+ {
104
+ question: "Convergence review in test-review phase?",
105
+ header: "Convergence Review",
106
+ multiSelect: false,
107
+ options: [
108
+ { label: "Agent", description: "Agent: verify convergence criteria" },
109
+ { label: "Gemini", description: "Gemini CLI: convergence verification" },
110
+ { label: "Codex", description: "Codex CLI: convergence verification" },
111
+ { label: "Skip", description: "Skip convergence review, run tests only" }
101
112
  ]
102
113
  }
103
114
  ]
@@ -117,7 +128,8 @@ if (executionContext) {
117
128
  console.log(`
118
129
  Execution Strategy (from lite-plan):
119
130
  Method: ${executionContext.executionMethod}
120
- Review: ${executionContext.codeReviewTool}
131
+ Code Review: ${executionContext.codeReviewTool}
132
+ Convergence Review: ${executionContext.convergenceReviewTool}
121
133
  Tasks: ${getTasks(executionContext.planObject).length}
122
134
  Complexity: ${executionContext.planObject.complexity}
123
135
  ${executionContext.executorAssignments ? ` Assignments: ${JSON.stringify(executionContext.executorAssignments)}` : ''}
@@ -367,18 +379,97 @@ ${(t.test?.success_metrics || []).length > 0 ? `**Success metrics**: ${t.test.su
367
379
  }
368
380
  ```
369
381
 
370
- ### Step 4: Chain to Test Review & Post-Completion
382
+ ### Step 4: Code Review
371
383
 
372
- > **Note**: Spec sync (session:sync) is handled by lite-test-review's TR-Phase 5, not here. This avoids duplicate sync and ensures test fix changes are also captured.
384
+ **Skip if**: `codeReviewTool === 'Skip'`
373
385
 
374
- **Map review tool**: Convert lite-execute's `codeReviewTool` to test-review tool name.
386
+ **Resolve review tool**: From `executionContext.codeReviewTool` (Mode 1) or `userSelection.code_review_tool` (Mode 2/3).
375
387
 
376
388
  ```javascript
377
- function mapReviewTool(codeReviewTool) {
389
+ const codeReviewTool = executionContext?.codeReviewTool || userSelection?.code_review_tool || 'Skip'
390
+ const resolvedTool = (() => {
378
391
  if (!codeReviewTool || codeReviewTool === 'Skip') return 'skip'
379
392
  if (/gemini/i.test(codeReviewTool)) return 'gemini'
380
393
  if (/codex/i.test(codeReviewTool)) return 'codex'
381
394
  return 'agent'
395
+ })()
396
+
397
+ if (resolvedTool === 'skip') {
398
+ console.log('[Code Review] Skipped')
399
+ } else {
400
+ // proceed with review
401
+ }
402
+ ```
403
+
404
+ **Agent Code Review** (resolvedTool === 'agent'):
405
+
406
+ ```javascript
407
+ Agent({
408
+ subagent_type: "code-reviewer",
409
+ run_in_background: false,
410
+ description: `Code review: ${planObject.summary}`,
411
+ prompt: `## Code Review — Post-Execution Quality Check
412
+
413
+ **Goal**: ${originalUserInput}
414
+ **Plan Summary**: ${planObject.summary}
415
+
416
+ ### Changed Files
417
+ Run \`git diff --name-only HEAD~${getTasks(planObject).length}..HEAD\` to identify changes.
418
+
419
+ ### Review Focus
420
+ 1. **Code quality**: Readability, naming, structure, dead code
421
+ 2. **Correctness**: Logic errors, off-by-one, null handling, edge cases
422
+ 3. **Patterns**: Consistency with existing codebase conventions
423
+ 4. **Security**: Injection, XSS, auth bypass, secrets exposure
424
+ 5. **Performance**: Unnecessary loops, N+1 queries, missing indexes
425
+
426
+ ### Instructions
427
+ 1. Run git diff to see actual changes
428
+ 2. Read changed files for full context
429
+ 3. For each issue found: severity (Critical/High/Medium/Low) + file:line + description + fix suggestion
430
+ 4. Return structured review: issues[], summary, overall verdict (PASS/WARN/FAIL)`
431
+ })
432
+ ```
433
+
434
+ **CLI Code Review — Codex** (resolvedTool === 'codex'):
435
+
436
+ ```javascript
437
+ const reviewId = `${sessionId}-code-review`
438
+ Bash(`ccw cli -p "Review code changes for quality, correctness, security, and pattern compliance. Focus: ${planObject.summary}" --tool codex --mode review --id ${reviewId}`, { run_in_background: true })
439
+ // STOP - wait for hook callback
440
+ ```
441
+
442
+ **CLI Code Review — Gemini** (resolvedTool === 'gemini'):
443
+
444
+ ```javascript
445
+ const reviewId = `${sessionId}-code-review`
446
+ Bash(`ccw cli -p "PURPOSE: Post-execution code quality review for: ${planObject.summary}
447
+ TASK: • Run git diff to identify all changes • Review each changed file for quality, correctness, security • Check pattern compliance with existing codebase • Identify potential bugs, edge cases, performance issues
448
+ MODE: analysis
449
+ CONTEXT: @**/* | Memory: lite-execute completed, reviewing code quality
450
+ EXPECTED: Per-file review with severity levels (Critical/High/Medium/Low), file:line references, fix suggestions, overall verdict
451
+ CONSTRAINTS: Read-only | Focus on code quality not convergence" --tool gemini --mode analysis --rule analysis-review-code-quality --id ${reviewId}`, { run_in_background: true })
452
+ // STOP - wait for hook callback
453
+ ```
454
+
455
+ **Write review artifact** (if session folder exists):
456
+ ```javascript
457
+ if (executionContext?.session?.folder) {
458
+ Write(`${executionContext.session.folder}/code-review.md`, codeReviewOutput)
459
+ }
460
+ ```
461
+
462
+ ### Step 5: Chain to Test Review & Post-Completion
463
+
464
+ **Resolve convergence review tool**: From `executionContext.convergenceReviewTool` (Mode 1) or `userSelection.convergence_review_tool` (Mode 2/3).
465
+
466
+ ```javascript
467
+ function resolveConvergenceTool(ctx, selection) {
468
+ const raw = ctx?.convergenceReviewTool || selection?.convergence_review_tool || 'skip'
469
+ if (!raw || raw === 'Skip') return 'skip'
470
+ if (/gemini/i.test(raw)) return 'gemini'
471
+ if (/codex/i.test(raw)) return 'codex'
472
+ return 'agent'
382
473
  }
383
474
  ```
384
475
 
@@ -389,7 +480,7 @@ testReviewContext = {
389
480
  planObject: planObject,
390
481
  taskFiles: executionContext?.taskFiles
391
482
  || getTasks(planObject).map(t => ({ id: t.id, path: `${executionContext?.session?.folder}/.task/${t.id}.json` })),
392
- reviewTool: mapReviewTool(executionContext?.codeReviewTool),
483
+ convergenceReviewTool: resolveConvergenceTool(executionContext, userSelection),
393
484
  executionResults: previousExecutionResults,
394
485
  originalUserInput: originalUserInput,
395
486
  session: executionContext?.session || {
@@ -442,7 +533,8 @@ Skill("lite-test-review")
442
533
  explorationManifest: {...} | null,
443
534
  clarificationContext: {...} | null,
444
535
  executionMethod: "Agent" | "Codex" | "Auto",
445
- codeReviewTool: "Skip" | "Gemini Review" | "Agent Review" | string,
536
+ codeReviewTool: "Skip" | "Gemini Review" | "Codex Review" | "Agent Review",
537
+ convergenceReviewTool: "Skip" | "Agent" | "Gemini" | "Codex",
446
538
  originalUserInput: string,
447
539
  executorAssignments: { // per-task override, priority over executionMethod
448
540
  [taskId]: { executor: "gemini" | "codex" | "agent", reason: string }