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.
- package/.claude/agents/cli-planning-agent.md +3 -0
- package/.claude/agents/debug-explore-agent.md +1 -0
- package/.claude/agents/tdd-developer.md +1 -0
- package/.claude/agents/team-worker.md +1 -1
- package/.claude/agents/test-action-planning-agent.md +3 -0
- package/.claude/agents/test-context-search-agent.md +1 -0
- package/.claude/agents/test-fix-agent.md +3 -0
- package/.claude/commands/workflow/analyze-with-file.md +108 -54
- package/.claude/commands/workflow-tune.md +811 -0
- package/.claude/skills/review-code/SKILL.md +2 -0
- package/.claude/skills/review-cycle/SKILL.md +4 -0
- package/.claude/skills/skill-simplify/phases/02-optimize.md +4 -0
- package/.claude/skills/spec-generator/phases/05-epics-stories.md +4 -0
- package/.claude/skills/team-arch-opt/specs/team-config.json +5 -5
- package/.claude/skills/team-frontend-debug/roles/analyzer/role.md +3 -2
- package/.claude/skills/team-perf-opt/roles/coordinator/commands/monitor.md +1 -1
- package/.claude/skills/team-perf-opt/specs/team-config.json +5 -5
- package/.claude/skills/team-quality-assurance/roles/executor/role.md +2 -1
- package/.claude/skills/team-review/roles/reviewer/role.md +2 -1
- package/.claude/skills/team-tech-debt/roles/scanner/role.md +2 -1
- package/.claude/skills/team-testing/roles/executor/role.md +2 -1
- package/.claude/skills/team-testing/roles/generator/role.md +2 -1
- package/.claude/skills/team-ultra-analyze/roles/explorer/role.md +2 -1
- package/.claude/skills/team-ux-improve/specs/team-config.json +6 -6
- package/.claude/skills/workflow-execute/phases/06-review.md +4 -4
- package/.claude/skills/workflow-lite-execute/SKILL.md +106 -14
- package/.claude/skills/workflow-lite-plan/SKILL.md +34 -72
- package/.claude/skills/workflow-lite-test-review/SKILL.md +41 -26
- package/.claude/skills/workflow-plan/phases/05-plan-verify.md +4 -0
- package/.claude/skills/workflow-tdd-plan/phases/02-context-gathering.md +1 -0
- package/.claude/skills/workflow-tdd-plan/phases/05-tdd-task-generation.md +2 -1
- package/.claude/skills/workflow-test-fix/phases/02-test-context-gather.md +1 -0
- package/.claude/skills/workflow-test-fix/phases/05-test-cycle-execute.md +2 -1
- package/.codex/skills/analyze-with-file/SKILL.md +2 -0
- package/.codex/skills/debug-with-file/SKILL.md +4 -0
- package/.codex/skills/issue-discover/SKILL.md +1 -0
- package/.codex/skills/review-cycle/phases/02-parallel-review.md +3 -0
- package/.codex/skills/team-designer/agents/validation-reporter.md +186 -0
- package/.codex/skills/team-iterdev/agents/gc-controller.md +193 -0
- package/.codex/skills/team-iterdev/agents/task-analyzer.md +206 -0
- package/.codex/skills/team-lifecycle-v4/agents/quality-gate.md +165 -0
- package/.codex/skills/team-lifecycle-v4/agents/requirement-clarifier.md +163 -0
- package/.codex/skills/team-lifecycle-v4/agents/supervisor.md +182 -0
- package/.codex/skills/team-uidesign/agents/completion-handler.md +177 -0
- package/.codex/skills/team-uidesign/agents/gc-loop-handler.md +162 -0
- package/.codex/skills/workflow-test-fix-cycle/phases/01-test-fix-gen.md +4 -0
- package/.codex/skills/workflow-test-fix-cycle/phases/02-test-cycle-execute.md +2 -0
- package/ccw/dist/commands/spec.d.ts.map +1 -1
- package/ccw/dist/commands/spec.js +9 -4
- package/ccw/dist/commands/spec.js.map +1 -1
- package/ccw/dist/core/routes/codexlens-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/codexlens-routes.js +3 -1
- package/ccw/dist/core/routes/codexlens-routes.js.map +1 -1
- package/ccw/dist/tools/spec-index-builder.d.ts +8 -4
- package/ccw/dist/tools/spec-index-builder.d.ts.map +1 -1
- package/ccw/dist/tools/spec-index-builder.js +8 -4
- package/ccw/dist/tools/spec-index-builder.js.map +1 -1
- package/ccw/dist/tools/spec-init.d.ts +1 -1
- package/ccw/dist/tools/spec-init.d.ts.map +1 -1
- package/ccw/dist/tools/spec-init.js +127 -0
- package/ccw/dist/tools/spec-init.js.map +1 -1
- package/ccw/dist/tools/spec-loader.d.ts.map +1 -1
- package/ccw/dist/tools/spec-loader.js +2 -1
- package/ccw/dist/tools/spec-loader.js.map +1 -1
- package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js → AlertDialog-BW9jiZ-p.js} +2 -2
- package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js.map → AlertDialog-BW9jiZ-p.js.map} +1 -1
- package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js → AnalysisPage-ds-w_nVO.js} +2 -2
- package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js.map → AnalysisPage-ds-w_nVO.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js → ApiSettingsPage-DlCbXxTz.js} +2 -2
- package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js.map → ApiSettingsPage-DlCbXxTz.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js → CliModeToggle-Dq3nL4fF.js} +2 -2
- package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js.map → CliModeToggle-Dq3nL4fF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js → CliSessionSharePage-BNDkEE4u.js} +2 -2
- package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js.map → CliSessionSharePage-BNDkEE4u.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js → CliViewerPage-ChM-uNx_.js} +2 -2
- package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js.map → CliViewerPage-ChM-uNx_.js.map} +1 -1
- package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js +2 -0
- package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js.map +1 -0
- package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js → Collapsible-CRNbykXN.js} +2 -2
- package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js.map → Collapsible-CRNbykXN.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js → CommandsManagerPage-C2JWcemF.js} +2 -2
- package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js.map → CommandsManagerPage-C2JWcemF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js → DeepWikiPage-CvleOtJy.js} +2 -2
- package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js.map → DeepWikiPage-CvleOtJy.js.map} +1 -1
- package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js → EndpointsPage-CMOWQG64.js} +2 -2
- package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js.map → EndpointsPage-CMOWQG64.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js → ExplorerPage-DaFPRlNo.js} +2 -2
- package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js.map → ExplorerPage-DaFPRlNo.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js → FixSessionPage-CC4p04Az.js} +2 -2
- package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js.map → FixSessionPage-CC4p04Az.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js → FloatingFileBrowser-DROn1xZ5.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js.map → FloatingFileBrowser-DROn1xZ5.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js → FloatingPanel-CmL_yhDv.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js.map → FloatingPanel-CmL_yhDv.js.map} +1 -1
- package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js → GraphExplorerPage-DCV5ybKE.js} +2 -2
- package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js.map → GraphExplorerPage-DCV5ybKE.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js → HistoryPage-D0fYQZgc.js} +2 -2
- package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js.map → HistoryPage-D0fYQZgc.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js → HookManagerPage-D2FuJfsM.js} +2 -2
- package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js.map → HookManagerPage-D2FuJfsM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js → InstallationsPage-tjklillZ.js} +2 -2
- package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js.map → InstallationsPage-tjklillZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js → IssueHubPage-E4JVrhO1.js} +2 -2
- package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js.map → IssueHubPage-E4JVrhO1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js → LiteTasksPage-aJuRoyLt.js} +2 -2
- package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js.map → LiteTasksPage-aJuRoyLt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js → McpManagerPage-BJeuWJv1.js} +2 -2
- package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js.map → McpManagerPage-BJeuWJv1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js → MemoryPage-BI4FAXhs.js} +2 -2
- package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js.map → MemoryPage-BI4FAXhs.js.map} +1 -1
- package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js → NotFoundPage-DD2svchp.js} +2 -2
- package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js.map → NotFoundPage-DD2svchp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js → OrchestratorPage-FC__7yYa.js} +2 -2
- package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js.map → OrchestratorPage-FC__7yYa.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js → ProjectOverviewPage-DBB_-FzV.js} +2 -2
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js.map → ProjectOverviewPage-DBB_-FzV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js → PromptHistoryPage-BwOAvCH8.js} +2 -2
- package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js.map → PromptHistoryPage-BwOAvCH8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js → ReviewSessionPage-Dd1-g_gp.js} +2 -2
- package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js.map → ReviewSessionPage-Dd1-g_gp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js → RulesManagerPage-B3RGdsKD.js} +2 -2
- package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js.map → RulesManagerPage-B3RGdsKD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js → SessionDetailPage-DM-W5R8K.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js.map → SessionDetailPage-DM-W5R8K.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js → SessionsPage-BVz1KCc7.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js.map → SessionsPage-BVz1KCc7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js → SettingsPage-ComW7EZS.js} +4 -4
- package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js.map → SettingsPage-ComW7EZS.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js → SkillsManagerPage-CKom9XwV.js} +2 -2
- package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js.map → SkillsManagerPage-CKom9XwV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js → SpecsSettingsPage-DQz7WP2s.js} +2 -2
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js.map → SpecsSettingsPage-DQz7WP2s.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js → Switch-BPMdND9H.js} +2 -2
- package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js.map → Switch-BPMdND9H.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js → TabsNavigation-qqt70VYL.js} +2 -2
- package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js.map → TabsNavigation-qqt70VYL.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js → TaskDrawer-BqK_qiHX.js} +2 -2
- package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js.map → TaskDrawer-BqK_qiHX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js → TeamPage-u5_i0Rgh.js} +2 -2
- package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js.map → TeamPage-u5_i0Rgh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js → TerminalDashboardPage-rUtC9e40.js} +2 -2
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js.map → TerminalDashboardPage-rUtC9e40.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js → archive-C3u8YNQF.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js.map → archive-C3u8YNQF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js → archive-restore-DfQ998g5.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js.map → archive-restore-DfQ998g5.js.map} +1 -1
- package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js → arrow-right-BshJM9Po.js} +2 -2
- package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js.map → arrow-right-BshJM9Po.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js → bookmark-plus-D03qJyOZ.js} +2 -2
- package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js.map → bookmark-plus-D03qJyOZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js → bot-CyzWuwq0.js} +2 -2
- package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js.map → bot-CyzWuwq0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js → braces-BPgtyjsG.js} +2 -2
- package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js.map → braces-BPgtyjsG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js → circle-stop-Dix1AOmw.js} +2 -2
- package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js.map → circle-stop-Dix1AOmw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js → cpu-CCQ4Q0Zh.js} +2 -2
- package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js.map → cpu-CCQ4Q0Zh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js → ellipsis-vertical-BpTysg-Y.js} +2 -2
- package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js.map → ellipsis-vertical-BpTysg-Y.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js → eye-DGY1rAZs.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js.map → eye-DGY1rAZs.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js → eye-off-D8t3JfWG.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js.map → eye-off-D8t3JfWG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js → file-json-BAdJb0n8.js} +2 -2
- package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js.map → file-json-BAdJb0n8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js → file-text-DrJFiOUB.js} +2 -2
- package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js.map → file-text-DrJFiOUB.js.map} +1 -1
- package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js → filter-CKqzYbz7.js} +2 -2
- package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js.map → filter-CKqzYbz7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js → folder-CV8511y9.js} +2 -2
- package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js.map → folder-CV8511y9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js → gauge-XKvmu_uU.js} +2 -2
- package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js.map → gauge-XKvmu_uU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js → globe-C56cDUzX.js} +2 -2
- package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js.map → globe-C56cDUzX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js → grid-3x3-Bya-suFW.js} +2 -2
- package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js.map → grid-3x3-Bya-suFW.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js → hard-drive-CmuTZpsB.js} +2 -2
- package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js.map → hard-drive-CmuTZpsB.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hash-Bd1RD285.js → hash-CRPT_tJQ.js} +2 -2
- package/ccw/frontend/dist/assets/{hash-Bd1RD285.js.map → hash-CRPT_tJQ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{history-eyyCQA6b.js → history-C1pJZQCL.js} +2 -2
- package/ccw/frontend/dist/assets/{history-eyyCQA6b.js.map → history-C1pJZQCL.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js → index-B6TpijCe.js} +2 -2
- package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js.map → index-B6TpijCe.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-b2C0iFd1.js → index-Bcq-7r6F.js} +2 -2
- package/ccw/frontend/dist/assets/{index-b2C0iFd1.js.map → index-Bcq-7r6F.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js → index-CI8-rBff.js} +2 -2
- package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js.map → index-CI8-rBff.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-CY6Lueph.js → index-Dmt9OiEf.js} +2 -2
- package/ccw/frontend/dist/assets/{index-CY6Lueph.js.map → index-Dmt9OiEf.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-DfeBbFXo.js → index-anSMmEF8.js} +2 -2
- package/ccw/frontend/dist/assets/{index-DfeBbFXo.js.map → index-anSMmEF8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-B6I7GQC5.js → index-dWT2M6Ef.js} +4 -4
- package/ccw/frontend/dist/assets/{index-B6I7GQC5.js.map → index-dWT2M6Ef.js.map} +1 -1
- package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js → layout-grid-TSO0BFQE.js} +2 -2
- package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js.map → layout-grid-TSO0BFQE.js.map} +1 -1
- package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js → lightbulb-Caj6fIQD.js} +2 -2
- package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js.map → lightbulb-Caj6fIQD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js → link-2-DE9lMxa-.js} +2 -2
- package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js.map → link-2-DE9lMxa-.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-CL4JmoHb.js → link-BZtPgLW0.js} +2 -2
- package/ccw/frontend/dist/assets/{link-CL4JmoHb.js.map → link-BZtPgLW0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{list-CDmYFcio.js → list-DubWyY-U.js} +2 -2
- package/ccw/frontend/dist/assets/{list-CDmYFcio.js.map → list-DubWyY-U.js.map} +1 -1
- package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js → map-pin-DwN_48AF.js} +2 -2
- package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js.map → map-pin-DwN_48AF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js → messages-square-bjxvaiM9.js} +2 -2
- package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js.map → messages-square-bjxvaiM9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js → minimize-2-CGfBKD_V.js} +2 -2
- package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js.map → minimize-2-CGfBKD_V.js.map} +1 -1
- package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js → package-nzWY6ilt.js} +2 -2
- package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js.map → package-nzWY6ilt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js → plug-CiLce49C.js} +2 -2
- package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js.map → plug-CiLce49C.js.map} +1 -1
- package/ccw/frontend/dist/assets/{power-DmIojFl-.js → power-CFLmB-U9.js} +2 -2
- package/ccw/frontend/dist/assets/{power-DmIojFl-.js.map → power-CFLmB-U9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{save-BFa03OnG.js → save-DuO6OF0C.js} +2 -2
- package/ccw/frontend/dist/assets/{save-BFa03OnG.js.map → save-DuO6OF0C.js.map} +1 -1
- package/ccw/frontend/dist/assets/{send-Vet3sN4J.js → send-CZk9p0mM.js} +2 -2
- package/ccw/frontend/dist/assets/{send-Vet3sN4J.js.map → send-CZk9p0mM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js → square-check-big-BY_1YQQg.js} +2 -2
- package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js.map → square-check-big-BY_1YQQg.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js → square-pen-CnZgm6g-.js} +2 -2
- package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js.map → square-pen-CnZgm6g-.js.map} +1 -1
- package/ccw/frontend/dist/assets/{star-BCQHcnSe.js → star-Cn1F0qy7.js} +2 -2
- package/ccw/frontend/dist/assets/{star-BCQHcnSe.js.map → star-Cn1F0qy7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{style-CJsrp48L.js → style-Dxs1iXCV.js} +2 -2
- package/ccw/frontend/dist/assets/{style-CJsrp48L.js.map → style-Dxs1iXCV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{target-CBzCJCB1.js → target-Bz1fLRKH.js} +2 -2
- package/ccw/frontend/dist/assets/{target-CBzCJCB1.js.map → target-Bz1fLRKH.js.map} +1 -1
- package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js → test-tube-C6qCYlDr.js} +2 -2
- package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js.map → test-tube-C6qCYlDr.js.map} +1 -1
- package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js → upload-C71kd4Qs.js} +2 -2
- package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js.map → upload-C71kd4Qs.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js → useApiSettings-CqP2BAJ7.js} +2 -2
- package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js.map → useApiSettings-CqP2BAJ7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js → useCli-PCoPoVeM.js} +2 -2
- package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js.map → useCli-PCoPoVeM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js → useCommands-3OfPQPw4.js} +2 -2
- package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js.map → useCommands-3OfPQPw4.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js → useDebounce-bXiFhQx9.js} +2 -2
- package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js.map → useDebounce-bXiFhQx9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js → useFileExplorer-DEyUm46_.js} +2 -2
- package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js.map → useFileExplorer-DEyUm46_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js → useLocale-sXTrdxcJ.js} +2 -2
- package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js.map → useLocale-sXTrdxcJ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js → useSkills-D0W0kXYm.js} +3 -3
- package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js.map → useSkills-D0W0kXYm.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js → useSystemSettings-DZ-8lZsG.js} +2 -2
- package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js.map → useSystemSettings-DZ-8lZsG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js → wand-sparkles-83GmAYuw.js} +2 -2
- package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js.map → wand-sparkles-83GmAYuw.js.map} +1 -1
- package/ccw/frontend/dist/index.html +1 -1
- package/package.json +1 -1
- package/.claude/commands/ddd/auto.md +0 -359
- package/.claude/commands/ddd/doc-generate.md +0 -222
- package/.claude/commands/ddd/doc-refresh.md +0 -218
- package/.claude/commands/ddd/execute.md +0 -416
- package/.claude/commands/ddd/index-build.md +0 -212
- package/.claude/commands/ddd/plan.md +0 -611
- package/.claude/commands/ddd/scan.md +0 -365
- package/.claude/commands/ddd/sync.md +0 -353
- package/.claude/commands/ddd/update.md +0 -160
- package/.claude/commands/idaw/add.md +0 -287
- package/.claude/commands/idaw/resume.md +0 -442
- package/.claude/commands/idaw/run-coordinate.md +0 -648
- package/.claude/commands/idaw/run.md +0 -539
- package/.claude/commands/idaw/status.md +0 -182
- package/.claude/skills/team-arch-opt/role-specs/analyzer.md +0 -80
- package/.claude/skills/team-arch-opt/role-specs/designer.md +0 -118
- package/.claude/skills/team-arch-opt/role-specs/refactorer.md +0 -106
- package/.claude/skills/team-arch-opt/role-specs/reviewer.md +0 -116
- package/.claude/skills/team-arch-opt/role-specs/validator.md +0 -117
- package/.claude/skills/team-brainstorm/role-specs/challenger.md +0 -63
- package/.claude/skills/team-brainstorm/role-specs/evaluator.md +0 -58
- package/.claude/skills/team-brainstorm/role-specs/ideator.md +0 -71
- package/.claude/skills/team-brainstorm/role-specs/synthesizer.md +0 -59
- package/.claude/skills/team-frontend/role-specs/analyst.md +0 -91
- package/.claude/skills/team-frontend/role-specs/architect.md +0 -85
- package/.claude/skills/team-frontend/role-specs/developer.md +0 -92
- package/.claude/skills/team-frontend/role-specs/qa.md +0 -78
- package/.claude/skills/team-issue/role-specs/explorer.md +0 -95
- package/.claude/skills/team-issue/role-specs/implementer.md +0 -89
- package/.claude/skills/team-issue/role-specs/integrator.md +0 -86
- package/.claude/skills/team-issue/role-specs/planner.md +0 -83
- package/.claude/skills/team-issue/role-specs/reviewer.md +0 -89
- package/.claude/skills/team-iterdev/role-specs/architect.md +0 -64
- package/.claude/skills/team-iterdev/role-specs/developer.md +0 -73
- package/.claude/skills/team-iterdev/role-specs/reviewer.md +0 -65
- package/.claude/skills/team-iterdev/role-specs/tester.md +0 -87
- package/.claude/skills/team-perf-opt/role-specs/benchmarker.md +0 -110
- package/.claude/skills/team-perf-opt/role-specs/optimizer.md +0 -102
- package/.claude/skills/team-perf-opt/role-specs/profiler.md +0 -73
- package/.claude/skills/team-perf-opt/role-specs/reviewer.md +0 -91
- package/.claude/skills/team-perf-opt/role-specs/strategist.md +0 -114
- package/.claude/skills/team-planex/role-specs/executor.md +0 -90
- package/.claude/skills/team-planex/role-specs/planner.md +0 -110
- package/.claude/skills/team-quality-assurance/role-specs/analyst.md +0 -79
- package/.claude/skills/team-quality-assurance/role-specs/executor.md +0 -64
- package/.claude/skills/team-quality-assurance/role-specs/generator.md +0 -67
- package/.claude/skills/team-quality-assurance/role-specs/scout.md +0 -66
- package/.claude/skills/team-quality-assurance/role-specs/strategist.md +0 -70
- package/.claude/skills/team-review/role-specs/fixer.md +0 -75
- package/.claude/skills/team-review/role-specs/reviewer.md +0 -66
- package/.claude/skills/team-review/role-specs/scanner.md +0 -70
- package/.claude/skills/team-roadmap-dev/role-specs/executor.md +0 -71
- package/.claude/skills/team-roadmap-dev/role-specs/planner.md +0 -77
- package/.claude/skills/team-roadmap-dev/role-specs/verifier.md +0 -73
- package/.claude/skills/team-tech-debt/role-specs/assessor.md +0 -70
- package/.claude/skills/team-tech-debt/role-specs/executor.md +0 -80
- package/.claude/skills/team-tech-debt/role-specs/planner.md +0 -71
- package/.claude/skills/team-tech-debt/role-specs/scanner.md +0 -85
- package/.claude/skills/team-tech-debt/role-specs/validator.md +0 -83
- package/.claude/skills/team-testing/role-specs/analyst.md +0 -94
- package/.claude/skills/team-testing/role-specs/executor.md +0 -97
- package/.claude/skills/team-testing/role-specs/generator.md +0 -96
- package/.claude/skills/team-testing/role-specs/strategist.md +0 -82
- package/.claude/skills/team-uidesign/role-specs/designer.md +0 -72
- package/.claude/skills/team-uidesign/role-specs/implementer.md +0 -74
- package/.claude/skills/team-uidesign/role-specs/researcher.md +0 -84
- package/.claude/skills/team-uidesign/role-specs/reviewer.md +0 -70
- package/.claude/skills/team-ux-improve/role-specs/designer.md +0 -191
- package/.claude/skills/team-ux-improve/role-specs/diagnoser.md +0 -110
- package/.claude/skills/team-ux-improve/role-specs/explorer.md +0 -109
- package/.claude/skills/team-ux-improve/role-specs/implementer.md +0 -164
- package/.claude/skills/team-ux-improve/role-specs/scanner.md +0 -117
- package/.claude/skills/team-ux-improve/role-specs/tester.md +0 -163
- package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js +0 -2
- 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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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.
|
|
35
|
-
2.
|
|
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/
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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.
|
|
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
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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: "
|
|
94
|
-
header: "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: "
|
|
98
|
-
{ label: "
|
|
99
|
-
{ label: "
|
|
100
|
-
{ label: "Skip", description: "
|
|
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:
|
|
382
|
+
### Step 4: Code Review
|
|
371
383
|
|
|
372
|
-
|
|
384
|
+
**Skip if**: `codeReviewTool === 'Skip'`
|
|
373
385
|
|
|
374
|
-
**
|
|
386
|
+
**Resolve review tool**: From `executionContext.codeReviewTool` (Mode 1) or `userSelection.code_review_tool` (Mode 2/3).
|
|
375
387
|
|
|
376
388
|
```javascript
|
|
377
|
-
|
|
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
|
-
|
|
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" | "
|
|
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 }
|