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
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: REV
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: review_complete
|
|
6
|
-
error: error
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Finding Reviewer
|
|
10
|
-
|
|
11
|
-
Deep analysis on scan findings: triage, root cause / impact / optimization enrichment via CLI fan-out, cross-correlation, and structured review report generation. Read-only -- never modifies source code.
|
|
12
|
-
|
|
13
|
-
## Phase 2: Context & Triage
|
|
14
|
-
|
|
15
|
-
| Input | Source | Required |
|
|
16
|
-
|-------|--------|----------|
|
|
17
|
-
| Task description | From task subject/description | Yes |
|
|
18
|
-
| Session path | Extracted from task description | Yes |
|
|
19
|
-
| Scan results | <session>/scan/scan-results.json | Yes |
|
|
20
|
-
| .msg/meta.json | <session>/.msg/meta.json | No |
|
|
21
|
-
|
|
22
|
-
1. Extract session path, input path, dimensions from task description
|
|
23
|
-
2. Load scan results. If missing or empty -> report clean, complete immediately
|
|
24
|
-
3. Load wisdom files from `<session>/wisdom/`
|
|
25
|
-
4. Triage findings into two buckets:
|
|
26
|
-
|
|
27
|
-
| Bucket | Criteria | Action |
|
|
28
|
-
|--------|----------|--------|
|
|
29
|
-
| deep_analysis | severity in [critical, high, medium], max 15, sorted critical-first | Enrich with root cause, impact, optimization |
|
|
30
|
-
| pass_through | remaining (low, info, or overflow) | Include in report without enrichment |
|
|
31
|
-
|
|
32
|
-
If deep_analysis empty -> skip Phase 3, go to Phase 4.
|
|
33
|
-
|
|
34
|
-
## Phase 3: Deep Analysis (CLI Fan-out)
|
|
35
|
-
|
|
36
|
-
Split deep_analysis into two domain groups, run parallel CLI agents:
|
|
37
|
-
|
|
38
|
-
| Group | Dimensions | Focus |
|
|
39
|
-
|-------|-----------|-------|
|
|
40
|
-
| A | Security + Correctness | Root cause tracing, fix dependencies, blast radius |
|
|
41
|
-
| B | Performance + Maintainability | Optimization approaches, refactor tradeoffs |
|
|
42
|
-
|
|
43
|
-
If either group empty -> skip that agent.
|
|
44
|
-
|
|
45
|
-
Build prompt per group requesting 6 enrichment fields per finding:
|
|
46
|
-
- `root_cause`: `{description, related_findings[], is_symptom}`
|
|
47
|
-
- `impact`: `{scope: low/medium/high, affected_files[], blast_radius}`
|
|
48
|
-
- `optimization`: `{approach, alternative, tradeoff}`
|
|
49
|
-
- `fix_strategy`: minimal / refactor / skip
|
|
50
|
-
- `fix_complexity`: low / medium / high
|
|
51
|
-
- `fix_dependencies`: finding IDs that must be fixed first
|
|
52
|
-
|
|
53
|
-
Execute via `ccw cli --tool gemini --mode analysis --rule analysis-diagnose-bug-root-cause` (fallback: qwen -> codex). Parse JSON array responses, merge with originals (CLI-enriched replace originals, unenriched get defaults). Write `<session>/review/enriched-findings.json`.
|
|
54
|
-
|
|
55
|
-
## Phase 4: Report Generation
|
|
56
|
-
|
|
57
|
-
1. Combine enriched + pass_through findings
|
|
58
|
-
2. Cross-correlate:
|
|
59
|
-
- **Critical files**: file appears in >=2 dimensions -> list with finding_count, severities
|
|
60
|
-
- **Root cause groups**: cluster findings sharing related_findings -> identify primary
|
|
61
|
-
- **Optimization suggestions**: from root cause groups + standalone enriched findings
|
|
62
|
-
3. Compute metrics: by_dimension, by_severity, dimension_severity_matrix, fixable_count, auto_fixable_count
|
|
63
|
-
4. Write `<session>/review/review-report.json`: `{review_id, review_date, findings[], critical_files[], optimization_suggestions[], root_cause_groups[], summary}`
|
|
64
|
-
5. Write `<session>/review/review-report.md`: Executive summary, metrics matrix (dimension x severity), critical/high findings table, critical files list, optimization suggestions, recommended fix scope
|
|
65
|
-
6. Update `<session>/.msg/meta.json` with review summary
|
|
66
|
-
7. Contribute discoveries to `<session>/wisdom/` files
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: SCAN
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: scan_complete
|
|
6
|
-
error: error
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Code Scanner
|
|
10
|
-
|
|
11
|
-
Toolchain + LLM semantic scan producing structured findings. Static analysis tools in parallel, then LLM for issues tools miss. Read-only -- never modifies source code. 4-dimension system: security (SEC), correctness (COR), performance (PRF), maintainability (MNT).
|
|
12
|
-
|
|
13
|
-
## Phase 2: Context & Toolchain Detection
|
|
14
|
-
|
|
15
|
-
| Input | Source | Required |
|
|
16
|
-
|-------|--------|----------|
|
|
17
|
-
| Task description | From task subject/description | Yes |
|
|
18
|
-
| Session path | Extracted from task description | Yes |
|
|
19
|
-
| .msg/meta.json | <session>/.msg/meta.json | No |
|
|
20
|
-
|
|
21
|
-
1. Extract session path, target, dimensions, quick flag from task description
|
|
22
|
-
2. Resolve target files (glob pattern or directory -> `**/*.{ts,tsx,js,jsx,py,go,java,rs}`)
|
|
23
|
-
3. If no source files found -> report empty, complete task cleanly
|
|
24
|
-
4. Detect toolchain availability:
|
|
25
|
-
|
|
26
|
-
| Tool | Detection | Dimension |
|
|
27
|
-
|------|-----------|-----------|
|
|
28
|
-
| tsc | `tsconfig.json` exists | COR |
|
|
29
|
-
| eslint | `.eslintrc*` or `eslint` in package.json | COR/MNT |
|
|
30
|
-
| semgrep | `.semgrep.yml` exists | SEC |
|
|
31
|
-
| ruff | `pyproject.toml` + ruff available | SEC/COR/MNT |
|
|
32
|
-
| mypy | mypy available + `pyproject.toml` | COR |
|
|
33
|
-
| npmAudit | `package-lock.json` exists | SEC |
|
|
34
|
-
|
|
35
|
-
5. Load wisdom files from `<session>/wisdom/` if they exist
|
|
36
|
-
|
|
37
|
-
## Phase 3: Scan Execution
|
|
38
|
-
|
|
39
|
-
**Quick mode**: Single CLI call with analysis mode, max 20 findings, skip toolchain.
|
|
40
|
-
|
|
41
|
-
**Standard mode** (sequential):
|
|
42
|
-
|
|
43
|
-
### 3A: Toolchain Scan
|
|
44
|
-
Run detected tools in parallel via Bash backgrounding. Each tool writes to `<session>/scan/tmp/<tool>.{json|txt}`. After `wait`, parse each output into normalized findings:
|
|
45
|
-
- tsc: `file(line,col): error TSxxxx: msg` -> dimension=correctness, source=tool:tsc
|
|
46
|
-
- eslint: JSON array -> severity 2=correctness/high, else=maintainability/medium
|
|
47
|
-
- semgrep: `{results[]}` -> dimension=security, severity from extra.severity
|
|
48
|
-
- ruff: `[{code,message,filename}]` -> S*=security, F*/B*=correctness, else=maintainability
|
|
49
|
-
- mypy: `file:line: error: msg [code]` -> dimension=correctness
|
|
50
|
-
- npm audit: `{vulnerabilities:{}}` -> dimension=security, category=dependency
|
|
51
|
-
|
|
52
|
-
Write `<session>/scan/toolchain-findings.json`.
|
|
53
|
-
|
|
54
|
-
### 3B: Semantic Scan (LLM via CLI)
|
|
55
|
-
Build prompt with target file patterns, toolchain dedup summary, and per-dimension focus areas:
|
|
56
|
-
- SEC: Business logic vulnerabilities, privilege escalation, sensitive data flow, auth bypass
|
|
57
|
-
- COR: Logic errors, unhandled exception paths, state management bugs, race conditions
|
|
58
|
-
- PRF: Algorithm complexity, N+1 queries, unnecessary sync, memory leaks, missing caching
|
|
59
|
-
- MNT: Architectural coupling, abstraction leaks, convention violations, dead code
|
|
60
|
-
|
|
61
|
-
Execute via `ccw cli --tool gemini --mode analysis --rule analysis-review-code-quality` (fallback: qwen -> codex). Parse JSON array response, validate required fields (dimension, title, location.file), enforce per-dimension limit (max 5 each), filter minimum severity (medium+). Write `<session>/scan/semantic-findings.json`.
|
|
62
|
-
|
|
63
|
-
## Phase 4: Aggregate & Output
|
|
64
|
-
|
|
65
|
-
1. Merge toolchain + semantic findings, deduplicate (same file + line + dimension = duplicate)
|
|
66
|
-
2. Assign dimension-prefixed IDs: SEC-001, COR-001, PRF-001, MNT-001
|
|
67
|
-
3. Write `<session>/scan/scan-results.json` with schema: `{scan_date, target, dimensions, quick_mode, total_findings, by_severity, by_dimension, findings[]}`
|
|
68
|
-
4. Each finding: `{id, dimension, category, severity, title, description, location:{file,line}, source, suggested_fix, effort, confidence}`
|
|
69
|
-
5. Update `<session>/.msg/meta.json` with scan summary (findings_count, by_severity, by_dimension)
|
|
70
|
-
6. Contribute discoveries to `<session>/wisdom/` files
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: EXEC
|
|
3
|
-
inner_loop: true
|
|
4
|
-
cli_tools:
|
|
5
|
-
- gemini --mode write
|
|
6
|
-
message_types:
|
|
7
|
-
success: exec_complete
|
|
8
|
-
progress: exec_progress
|
|
9
|
-
error: error
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Executor
|
|
13
|
-
|
|
14
|
-
Wave-based code implementation per phase. Reads IMPL-*.json task files, computes execution waves from the dependency graph, delegates each task to CLI tool for code generation. Produces summary-{IMPL-ID}.md per task.
|
|
15
|
-
|
|
16
|
-
## Phase 2: Context Loading
|
|
17
|
-
|
|
18
|
-
| Input | Source | Required |
|
|
19
|
-
|-------|--------|----------|
|
|
20
|
-
| Task JSONs | <session>/phase-{N}/.task/IMPL-*.json | Yes |
|
|
21
|
-
| Prior summaries | <session>/phase-{1..N-1}/summary-*.md | No |
|
|
22
|
-
| Wisdom | <session>/wisdom/ | No |
|
|
23
|
-
|
|
24
|
-
1. Glob `<session>/phase-{N}/.task/IMPL-*.json`, error if none found
|
|
25
|
-
2. Parse each task JSON: extract id, description, depends_on, files, convergence, implementation
|
|
26
|
-
3. Compute execution waves from dependency graph:
|
|
27
|
-
- Wave 1: tasks with no dependencies
|
|
28
|
-
- Wave N: tasks whose all deps are in waves 1..N-1
|
|
29
|
-
- Force-assign if circular (break at lowest-numbered task)
|
|
30
|
-
4. Load prior phase summaries for cross-task context
|
|
31
|
-
|
|
32
|
-
## Phase 3: Wave-Based Implementation
|
|
33
|
-
|
|
34
|
-
Execute waves sequentially, tasks within each wave can be parallel.
|
|
35
|
-
|
|
36
|
-
**Strategy selection**:
|
|
37
|
-
|
|
38
|
-
| Task Count | Strategy |
|
|
39
|
-
|------------|----------|
|
|
40
|
-
| <= 2 | Direct: inline Edit/Write |
|
|
41
|
-
| 3-5 | Single CLI tool call for all |
|
|
42
|
-
| > 5 | Batch: one CLI tool call per module group |
|
|
43
|
-
|
|
44
|
-
**Per task**:
|
|
45
|
-
1. Build prompt from task JSON: description, files, implementation steps, convergence criteria
|
|
46
|
-
2. Include prior summaries and wisdom as context
|
|
47
|
-
3. Delegate to CLI tool (`run_in_background: false`):
|
|
48
|
-
```
|
|
49
|
-
Bash({
|
|
50
|
-
command: `ccw cli -p "PURPOSE: Implement task ${taskId}: ${description}
|
|
51
|
-
TASK: ${implementationSteps}
|
|
52
|
-
MODE: write
|
|
53
|
-
CONTEXT: @${files.join(' @')} | Memory: ${priorSummaries}
|
|
54
|
-
EXPECTED: Working code changes matching convergence criteria
|
|
55
|
-
CONSTRAINTS: ${convergenceCriteria}" --tool gemini --mode write`,
|
|
56
|
-
run_in_background: false
|
|
57
|
-
})
|
|
58
|
-
```
|
|
59
|
-
4. Write `<session>/phase-{N}/summary-{IMPL-ID}.md` with: task ID, affected files, changes made, status
|
|
60
|
-
|
|
61
|
-
**Between waves**: report wave progress via team_msg (type: exec_progress)
|
|
62
|
-
|
|
63
|
-
## Phase 4: Self-Validation
|
|
64
|
-
|
|
65
|
-
| Check | Method | Pass Criteria |
|
|
66
|
-
|-------|--------|---------------|
|
|
67
|
-
| Affected files exist | `test -f <path>` for each file in summary | All present |
|
|
68
|
-
| TypeScript syntax | `npx tsc --noEmit` (if tsconfig.json exists) | No errors |
|
|
69
|
-
| Lint | `npm run lint` (best-effort) | No critical errors |
|
|
70
|
-
|
|
71
|
-
Log errors via team_msg but do NOT fix — verifier handles gap detection.
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: PLAN
|
|
3
|
-
inner_loop: true
|
|
4
|
-
cli_tools:
|
|
5
|
-
- gemini --mode analysis
|
|
6
|
-
message_types:
|
|
7
|
-
success: plan_ready
|
|
8
|
-
progress: plan_progress
|
|
9
|
-
error: error
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Planner
|
|
13
|
-
|
|
14
|
-
Research and plan creation per roadmap phase. Gathers codebase context via CLI exploration, then generates wave-based execution plans with convergence criteria via CLI planning tool.
|
|
15
|
-
|
|
16
|
-
## Phase 2: Context Loading + Research
|
|
17
|
-
|
|
18
|
-
| Input | Source | Required |
|
|
19
|
-
|-------|--------|----------|
|
|
20
|
-
| roadmap.md | <session>/roadmap.md | Yes |
|
|
21
|
-
| config.json | <session>/config.json | Yes |
|
|
22
|
-
| Prior summaries | <session>/phase-{1..N-1}/summary-*.md | No |
|
|
23
|
-
| Wisdom | <session>/wisdom/ | No |
|
|
24
|
-
|
|
25
|
-
1. Read roadmap.md, extract phase goal, requirements (REQ-IDs), success criteria
|
|
26
|
-
2. Read config.json for depth setting (quick/standard/comprehensive)
|
|
27
|
-
3. Load prior phase summaries for dependency context
|
|
28
|
-
4. Detect gap closure mode (task description contains "Gap closure")
|
|
29
|
-
5. Launch CLI exploration with phase requirements as exploration query:
|
|
30
|
-
```
|
|
31
|
-
Bash({
|
|
32
|
-
command: `ccw cli -p "PURPOSE: Explore codebase for phase requirements
|
|
33
|
-
TASK: • Identify files needing modification • Map patterns and dependencies • Assess test infrastructure • Identify risks
|
|
34
|
-
MODE: analysis
|
|
35
|
-
CONTEXT: @**/* | Memory: Phase goal: ${phaseGoal}
|
|
36
|
-
EXPECTED: Structured exploration results with file lists, patterns, risks
|
|
37
|
-
CONSTRAINTS: Read-only analysis" --tool gemini --mode analysis`,
|
|
38
|
-
run_in_background: false
|
|
39
|
-
})
|
|
40
|
-
```
|
|
41
|
-
- Target: files needing modification, patterns, dependencies, test infrastructure, risks
|
|
42
|
-
6. If depth=comprehensive: run Gemini CLI analysis (`--mode analysis --rule analysis-analyze-code-patterns`)
|
|
43
|
-
7. Write `<session>/phase-{N}/context.md` combining roadmap requirements + exploration results
|
|
44
|
-
|
|
45
|
-
## Phase 3: Plan Creation
|
|
46
|
-
|
|
47
|
-
1. Load context.md from Phase 2
|
|
48
|
-
2. Create output directory: `<session>/phase-{N}/.task/`
|
|
49
|
-
3. Delegate to CLI planning tool with:
|
|
50
|
-
```
|
|
51
|
-
Bash({
|
|
52
|
-
command: `ccw cli -p "PURPOSE: Generate wave-based execution plan for phase ${phaseNum}
|
|
53
|
-
TASK: • Break down requirements into tasks • Define convergence criteria • Build dependency graph • Assign waves
|
|
54
|
-
MODE: write
|
|
55
|
-
CONTEXT: @${contextMd} | Memory: ${priorSummaries}
|
|
56
|
-
EXPECTED: IMPL_PLAN.md + IMPL-*.json files + TODO_LIST.md
|
|
57
|
-
CONSTRAINTS: <= 10 tasks | Valid DAG | Measurable convergence criteria" --tool gemini --mode write`,
|
|
58
|
-
run_in_background: false
|
|
59
|
-
})
|
|
60
|
-
```
|
|
61
|
-
4. CLI tool produces: `IMPL_PLAN.md`, `.task/IMPL-*.json`, `TODO_LIST.md`
|
|
62
|
-
5. If gap closure: only create tasks for gaps, starting from next available ID
|
|
63
|
-
|
|
64
|
-
## Phase 4: Self-Validation
|
|
65
|
-
|
|
66
|
-
| Check | Pass Criteria | Action on Failure |
|
|
67
|
-
|-------|---------------|-------------------|
|
|
68
|
-
| Task JSON files exist | >= 1 IMPL-*.json found | Error to coordinator |
|
|
69
|
-
| Required fields | id, title, description, files, implementation, convergence | Log warning |
|
|
70
|
-
| Convergence criteria | Each task has >= 1 criterion | Log warning |
|
|
71
|
-
| No self-dependency | task.id not in task.depends_on | Log error, remove cycle |
|
|
72
|
-
| All deps valid | Every depends_on ID exists | Log warning |
|
|
73
|
-
| IMPL_PLAN.md exists | File present | Generate minimal version from task JSONs |
|
|
74
|
-
|
|
75
|
-
After validation, compute wave structure from dependency graph for reporting:
|
|
76
|
-
- Wave count = topological layers of DAG
|
|
77
|
-
- Report: task count, wave count, file list
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: VERIFY
|
|
3
|
-
inner_loop: true
|
|
4
|
-
cli_tools:
|
|
5
|
-
- gemini --mode analysis
|
|
6
|
-
message_types:
|
|
7
|
-
success: verify_passed
|
|
8
|
-
failure: gaps_found
|
|
9
|
-
error: error
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Verifier
|
|
13
|
-
|
|
14
|
-
Goal-backward verification per phase. Reads convergence criteria from IMPL-*.json task files and checks against actual codebase state. Read-only — never modifies code. Produces verification.md with pass/fail and structured gap lists.
|
|
15
|
-
|
|
16
|
-
## Phase 2: Context Loading
|
|
17
|
-
|
|
18
|
-
| Input | Source | Required |
|
|
19
|
-
|-------|--------|----------|
|
|
20
|
-
| Task JSONs | <session>/phase-{N}/.task/IMPL-*.json | Yes |
|
|
21
|
-
| Summaries | <session>/phase-{N}/summary-*.md | Yes |
|
|
22
|
-
| Wisdom | <session>/wisdom/ | No |
|
|
23
|
-
|
|
24
|
-
1. Glob IMPL-*.json files, extract convergence criteria from each task
|
|
25
|
-
2. Glob summary-*.md files, parse frontmatter (task, affects, provides)
|
|
26
|
-
3. If no task JSONs or summaries found → error to coordinator
|
|
27
|
-
|
|
28
|
-
## Phase 3: Goal-Backward Verification
|
|
29
|
-
|
|
30
|
-
For each task's convergence criteria, execute appropriate check:
|
|
31
|
-
|
|
32
|
-
| Criteria Type | Method |
|
|
33
|
-
|---------------|--------|
|
|
34
|
-
| File existence | `test -f <path>` |
|
|
35
|
-
| Command execution | Run command, check exit code |
|
|
36
|
-
| Pattern match | Grep for pattern in specified files |
|
|
37
|
-
| Semantic check | Optional: Gemini CLI (`--mode analysis --rule analysis-review-code-quality`) |
|
|
38
|
-
|
|
39
|
-
**Per task scoring**:
|
|
40
|
-
|
|
41
|
-
| Result | Condition |
|
|
42
|
-
|--------|-----------|
|
|
43
|
-
| pass | All criteria met |
|
|
44
|
-
| partial | Some criteria met |
|
|
45
|
-
| fail | No criteria met or critical check failed |
|
|
46
|
-
|
|
47
|
-
Collect all gaps from partial/failed tasks with structured format:
|
|
48
|
-
- task ID, criteria type, expected value, actual value
|
|
49
|
-
|
|
50
|
-
## Phase 4: Compile Results
|
|
51
|
-
|
|
52
|
-
1. Aggregate per-task results: count passed, partial, failed
|
|
53
|
-
2. Determine overall status:
|
|
54
|
-
- `passed` if gaps.length === 0
|
|
55
|
-
- `gaps_found` otherwise
|
|
56
|
-
3. Write `<session>/phase-{N}/verification.md`:
|
|
57
|
-
|
|
58
|
-
```yaml
|
|
59
|
-
---
|
|
60
|
-
phase: <N>
|
|
61
|
-
status: passed | gaps_found
|
|
62
|
-
tasks_checked: <count>
|
|
63
|
-
tasks_passed: <count>
|
|
64
|
-
gaps:
|
|
65
|
-
- task: "<task-id>"
|
|
66
|
-
type: "<criteria-type>"
|
|
67
|
-
item: "<description>"
|
|
68
|
-
expected: "<expected>"
|
|
69
|
-
actual: "<actual>"
|
|
70
|
-
---
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
4. Update .msg/meta.json with verification summary
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: TDEVAL
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: assessment_complete
|
|
6
|
-
error: error
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Tech Debt Assessor
|
|
10
|
-
|
|
11
|
-
Quantitative evaluator for tech debt items. Score each debt item on business impact (1-5) and fix cost (1-5), classify into priority quadrants, produce priority-matrix.json.
|
|
12
|
-
|
|
13
|
-
## Phase 2: Load Debt Inventory
|
|
14
|
-
|
|
15
|
-
| Input | Source | Required |
|
|
16
|
-
|-------|--------|----------|
|
|
17
|
-
| Session path | task description (regex: `session:\s*(.+)`) | Yes |
|
|
18
|
-
| .msg/meta.json | <session>/.msg/meta.json | Yes |
|
|
19
|
-
| Debt inventory | meta.json:debt_inventory OR <session>/scan/debt-inventory.json | Yes |
|
|
20
|
-
|
|
21
|
-
1. Extract session path from task description
|
|
22
|
-
2. Read .msg/meta.json for team context
|
|
23
|
-
3. Load debt_inventory from shared memory or fallback to debt-inventory.json file
|
|
24
|
-
4. If debt_inventory is empty -> report empty assessment and exit
|
|
25
|
-
|
|
26
|
-
## Phase 3: Evaluate Each Item
|
|
27
|
-
|
|
28
|
-
**Strategy selection**:
|
|
29
|
-
|
|
30
|
-
| Item Count | Strategy |
|
|
31
|
-
|------------|----------|
|
|
32
|
-
| <= 10 | Heuristic: severity-based impact + effort-based cost |
|
|
33
|
-
| 11-50 | CLI batch: single gemini analysis call |
|
|
34
|
-
| > 50 | CLI chunked: batches of 25 items |
|
|
35
|
-
|
|
36
|
-
**Impact Score Mapping** (heuristic):
|
|
37
|
-
|
|
38
|
-
| Severity | Impact Score |
|
|
39
|
-
|----------|-------------|
|
|
40
|
-
| critical | 5 |
|
|
41
|
-
| high | 4 |
|
|
42
|
-
| medium | 3 |
|
|
43
|
-
| low | 1 |
|
|
44
|
-
|
|
45
|
-
**Cost Score Mapping** (heuristic):
|
|
46
|
-
|
|
47
|
-
| Estimated Effort | Cost Score |
|
|
48
|
-
|------------------|------------|
|
|
49
|
-
| small | 1 |
|
|
50
|
-
| medium | 3 |
|
|
51
|
-
| large | 5 |
|
|
52
|
-
| unknown | 3 |
|
|
53
|
-
|
|
54
|
-
**Priority Quadrant Classification**:
|
|
55
|
-
|
|
56
|
-
| Impact | Cost | Quadrant |
|
|
57
|
-
|--------|------|----------|
|
|
58
|
-
| >= 4 | <= 2 | quick-win |
|
|
59
|
-
| >= 4 | >= 3 | strategic |
|
|
60
|
-
| <= 3 | <= 2 | backlog |
|
|
61
|
-
| <= 3 | >= 3 | defer |
|
|
62
|
-
|
|
63
|
-
For CLI mode, prompt gemini with full debt summary requesting JSON array of `{id, impact_score, cost_score, risk_if_unfixed, priority_quadrant}`. Unevaluated items fall back to heuristic scoring.
|
|
64
|
-
|
|
65
|
-
## Phase 4: Generate Priority Matrix
|
|
66
|
-
|
|
67
|
-
1. Build matrix structure: evaluation_date, total_items, by_quadrant (grouped), summary (counts per quadrant)
|
|
68
|
-
2. Sort within each quadrant by impact_score descending
|
|
69
|
-
3. Write `<session>/assessment/priority-matrix.json`
|
|
70
|
-
4. Update .msg/meta.json with `priority_matrix` summary and evaluated `debt_inventory`
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: TDFIX
|
|
3
|
-
inner_loop: true
|
|
4
|
-
cli_tools:
|
|
5
|
-
- gemini --mode write
|
|
6
|
-
message_types:
|
|
7
|
-
success: fix_complete
|
|
8
|
-
progress: fix_progress
|
|
9
|
-
error: error
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Tech Debt Executor
|
|
13
|
-
|
|
14
|
-
Debt cleanup executor. Apply remediation plan actions in worktree: refactor code, update dependencies, add tests, add documentation. Batch-delegate to CLI tools, self-validate after each batch.
|
|
15
|
-
|
|
16
|
-
## Phase 2: Load Remediation Plan
|
|
17
|
-
|
|
18
|
-
| Input | Source | Required |
|
|
19
|
-
|-------|--------|----------|
|
|
20
|
-
| Session path | task description (regex: `session:\s*(.+)`) | Yes |
|
|
21
|
-
| .msg/meta.json | <session>/.msg/meta.json | Yes |
|
|
22
|
-
| Remediation plan | <session>/plan/remediation-plan.json | Yes |
|
|
23
|
-
| Worktree info | meta.json:worktree.path, worktree.branch | Yes |
|
|
24
|
-
| Context accumulator | From prior TDFIX tasks (inner loop) | Yes (inner loop) |
|
|
25
|
-
|
|
26
|
-
1. Extract session path from task description
|
|
27
|
-
2. Read .msg/meta.json for worktree path and branch
|
|
28
|
-
3. Read remediation-plan.json, extract all actions from plan phases
|
|
29
|
-
4. Group actions by type: refactor, restructure, add-tests, update-deps, add-docs
|
|
30
|
-
5. Split large groups (> 10 items) into sub-batches of 10
|
|
31
|
-
6. For inner loop (fix-verify cycle): load context_accumulator from prior TDFIX tasks, parse review/validation feedback for specific issues
|
|
32
|
-
|
|
33
|
-
**Batch order**: refactor -> update-deps -> add-tests -> add-docs -> restructure
|
|
34
|
-
|
|
35
|
-
## Phase 3: Execute Fixes
|
|
36
|
-
|
|
37
|
-
For each batch, use CLI tool for implementation:
|
|
38
|
-
|
|
39
|
-
**Worktree constraint**: ALL file operations and commands must execute within worktree path. Use `cd "<worktree-path>" && ...` prefix for all Bash commands.
|
|
40
|
-
|
|
41
|
-
**Per-batch delegation**:
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
ccw cli -p "PURPOSE: Apply tech debt fixes in batch; success = all items fixed without breaking changes
|
|
45
|
-
TASK: <batch-type-specific-tasks>
|
|
46
|
-
MODE: write
|
|
47
|
-
CONTEXT: @<worktree-path>/**/* | Memory: Remediation plan context
|
|
48
|
-
EXPECTED: Code changes that fix debt items, maintain backward compatibility, pass existing tests
|
|
49
|
-
CONSTRAINTS: Minimal changes only | No new features | No suppressions | Read files before modifying
|
|
50
|
-
Batch type: <refactor|update-deps|add-tests|add-docs|restructure>
|
|
51
|
-
Items: <list-of-items-with-file-paths-and-descriptions>" --tool gemini --mode write --cd "<worktree-path>"
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
Wait for CLI completion before proceeding to next batch.
|
|
55
|
-
|
|
56
|
-
**Fix Results Tracking**:
|
|
57
|
-
|
|
58
|
-
| Field | Description |
|
|
59
|
-
|-------|-------------|
|
|
60
|
-
| items_fixed | Count of successfully fixed items |
|
|
61
|
-
| items_failed | Count of failed items |
|
|
62
|
-
| items_remaining | Remaining items count |
|
|
63
|
-
| batches_completed | Completed batch count |
|
|
64
|
-
| files_modified | Array of modified file paths |
|
|
65
|
-
| errors | Array of error messages |
|
|
66
|
-
|
|
67
|
-
After each batch, verify file modifications via `git diff --name-only` in worktree.
|
|
68
|
-
|
|
69
|
-
## Phase 4: Self-Validation
|
|
70
|
-
|
|
71
|
-
All commands in worktree:
|
|
72
|
-
|
|
73
|
-
| Check | Command | Pass Criteria |
|
|
74
|
-
|-------|---------|---------------|
|
|
75
|
-
| Syntax | `tsc --noEmit` or `python -m py_compile` | No new errors |
|
|
76
|
-
| Lint | `eslint --no-error-on-unmatched-pattern` | No new errors |
|
|
77
|
-
|
|
78
|
-
Write `<session>/fixes/fix-log.json` with fix results. Update .msg/meta.json with `fix_results`.
|
|
79
|
-
|
|
80
|
-
Append to context_accumulator for next TDFIX task (inner loop): files modified, fixes applied, validation results, discovered caveats.
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: TDPLAN
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: plan_ready
|
|
6
|
-
revision: plan_revision
|
|
7
|
-
error: error
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Tech Debt Planner
|
|
11
|
-
|
|
12
|
-
Remediation plan designer. Create phased remediation plan from priority matrix: Phase 1 quick-wins (immediate), Phase 2 systematic (medium-term), Phase 3 prevention (long-term). Produce remediation-plan.md.
|
|
13
|
-
|
|
14
|
-
## Phase 2: Load Assessment Data
|
|
15
|
-
|
|
16
|
-
| Input | Source | Required |
|
|
17
|
-
|-------|--------|----------|
|
|
18
|
-
| Session path | task description (regex: `session:\s*(.+)`) | Yes |
|
|
19
|
-
| .msg/meta.json | <session>/.msg/meta.json | Yes |
|
|
20
|
-
| Priority matrix | <session>/assessment/priority-matrix.json | Yes |
|
|
21
|
-
|
|
22
|
-
1. Extract session path from task description
|
|
23
|
-
2. Read .msg/meta.json for debt_inventory
|
|
24
|
-
3. Read priority-matrix.json for quadrant groupings
|
|
25
|
-
4. Group items: quickWins (quick-win), strategic (strategic), backlog (backlog), deferred (defer)
|
|
26
|
-
|
|
27
|
-
## Phase 3: Create Remediation Plan
|
|
28
|
-
|
|
29
|
-
**Strategy selection**:
|
|
30
|
-
|
|
31
|
-
| Item Count (quick-win + strategic) | Strategy |
|
|
32
|
-
|------------------------------------|----------|
|
|
33
|
-
| <= 5 | Inline: generate steps from item data |
|
|
34
|
-
| > 5 | CLI-assisted: gemini generates detailed remediation steps |
|
|
35
|
-
|
|
36
|
-
**3-Phase Plan Structure**:
|
|
37
|
-
|
|
38
|
-
| Phase | Name | Source Items | Focus |
|
|
39
|
-
|-------|------|-------------|-------|
|
|
40
|
-
| 1 | Quick Wins | quick-win quadrant | High impact, low cost -- immediate execution |
|
|
41
|
-
| 2 | Systematic | strategic quadrant | High impact, high cost -- structured refactoring |
|
|
42
|
-
| 3 | Prevention | Generated from dimension patterns | Long-term prevention mechanisms |
|
|
43
|
-
|
|
44
|
-
**Action Type Mapping**:
|
|
45
|
-
|
|
46
|
-
| Dimension | Action Type |
|
|
47
|
-
|-----------|-------------|
|
|
48
|
-
| code | refactor |
|
|
49
|
-
| architecture | restructure |
|
|
50
|
-
| testing | add-tests |
|
|
51
|
-
| dependency | update-deps |
|
|
52
|
-
| documentation | add-docs |
|
|
53
|
-
|
|
54
|
-
**Prevention Actions** (generated when dimension has >= 3 items):
|
|
55
|
-
|
|
56
|
-
| Dimension | Prevention Action |
|
|
57
|
-
|-----------|-------------------|
|
|
58
|
-
| code | Add linting rules for complexity thresholds and code smell detection |
|
|
59
|
-
| architecture | Introduce module boundary checks in CI pipeline |
|
|
60
|
-
| testing | Set minimum coverage thresholds in CI and add pre-commit test hooks |
|
|
61
|
-
| dependency | Configure automated dependency update bot (Renovate/Dependabot) |
|
|
62
|
-
| documentation | Add JSDoc/docstring enforcement in linting rules |
|
|
63
|
-
|
|
64
|
-
For CLI-assisted mode, prompt gemini with debt summary requesting specific fix steps per item, grouped into phases, with dependencies and estimated time.
|
|
65
|
-
|
|
66
|
-
## Phase 4: Validate & Save
|
|
67
|
-
|
|
68
|
-
1. Calculate validation metrics: total_actions, total_effort, files_affected, has_quick_wins, has_prevention
|
|
69
|
-
2. Write `<session>/plan/remediation-plan.md` (markdown with per-item checklists)
|
|
70
|
-
3. Write `<session>/plan/remediation-plan.json` (machine-readable)
|
|
71
|
-
4. Update .msg/meta.json with `remediation_plan` summary
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: TDSCAN
|
|
3
|
-
inner_loop: false
|
|
4
|
-
cli_tools:
|
|
5
|
-
- gemini --mode analysis
|
|
6
|
-
message_types:
|
|
7
|
-
success: scan_complete
|
|
8
|
-
error: error
|
|
9
|
-
info: debt_items_found
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Tech Debt Scanner
|
|
13
|
-
|
|
14
|
-
Multi-dimension tech debt scanner. Scan codebase across 5 dimensions (code, architecture, testing, dependency, documentation), produce structured debt inventory with severity rankings.
|
|
15
|
-
|
|
16
|
-
## Phase 2: Context & Environment Detection
|
|
17
|
-
|
|
18
|
-
| Input | Source | Required |
|
|
19
|
-
|-------|--------|----------|
|
|
20
|
-
| Scan scope | task description (regex: `scope:\s*(.+)`) | No (default: `**/*`) |
|
|
21
|
-
| Session path | task description (regex: `session:\s*(.+)`) | Yes |
|
|
22
|
-
| .msg/meta.json | <session>/.msg/meta.json | Yes |
|
|
23
|
-
|
|
24
|
-
1. Extract session path and scan scope from task description
|
|
25
|
-
2. Read .msg/meta.json for team context
|
|
26
|
-
3. Detect project type and framework:
|
|
27
|
-
|
|
28
|
-
| Signal File | Project Type |
|
|
29
|
-
|-------------|-------------|
|
|
30
|
-
| package.json + React/Vue/Angular | Frontend Node |
|
|
31
|
-
| package.json + Express/Fastify/NestJS | Backend Node |
|
|
32
|
-
| pyproject.toml / requirements.txt | Python |
|
|
33
|
-
| go.mod | Go |
|
|
34
|
-
| No detection | Generic |
|
|
35
|
-
|
|
36
|
-
4. Determine scan dimensions (default: code, architecture, testing, dependency, documentation)
|
|
37
|
-
5. Detect perspectives from task description:
|
|
38
|
-
|
|
39
|
-
| Condition | Perspective |
|
|
40
|
-
|-----------|-------------|
|
|
41
|
-
| `security\|auth\|inject\|xss` | security |
|
|
42
|
-
| `performance\|speed\|optimize` | performance |
|
|
43
|
-
| `quality\|clean\|maintain\|debt` | code-quality |
|
|
44
|
-
| `architect\|pattern\|structure` | architecture |
|
|
45
|
-
| Default | code-quality + architecture |
|
|
46
|
-
|
|
47
|
-
6. Assess complexity:
|
|
48
|
-
|
|
49
|
-
| Score | Complexity | Strategy |
|
|
50
|
-
|-------|------------|----------|
|
|
51
|
-
| >= 4 | High | Triple Fan-out: CLI explore + CLI 5 dimensions + multi-perspective Gemini |
|
|
52
|
-
| 2-3 | Medium | Dual Fan-out: CLI explore + CLI 3 dimensions |
|
|
53
|
-
| 0-1 | Low | Inline: ACE search + Grep |
|
|
54
|
-
|
|
55
|
-
## Phase 3: Multi-Dimension Scan
|
|
56
|
-
|
|
57
|
-
**Low Complexity** (inline):
|
|
58
|
-
- Use `mcp__ace-tool__search_context` for code smells, TODO/FIXME, deprecated APIs, complex functions, dead code, missing tests
|
|
59
|
-
- Classify findings into dimensions
|
|
60
|
-
|
|
61
|
-
**Medium/High Complexity** (Fan-out):
|
|
62
|
-
- Fan-out A: CLI exploration (structure, patterns, dependencies angles) via `ccw cli --tool gemini --mode analysis`
|
|
63
|
-
- Fan-out B: CLI dimension analysis (parallel gemini per dimension -- code, architecture, testing, dependency, documentation)
|
|
64
|
-
- Fan-out C (High only): Multi-perspective Gemini analysis (security, performance, code-quality, architecture)
|
|
65
|
-
- Fan-in: Merge results, cross-deduplicate by file:line, boost severity for multi-source findings
|
|
66
|
-
|
|
67
|
-
**Standardize each finding**:
|
|
68
|
-
|
|
69
|
-
| Field | Description |
|
|
70
|
-
|-------|-------------|
|
|
71
|
-
| `id` | `TD-NNN` (sequential) |
|
|
72
|
-
| `dimension` | code, architecture, testing, dependency, documentation |
|
|
73
|
-
| `severity` | critical, high, medium, low |
|
|
74
|
-
| `file` | File path |
|
|
75
|
-
| `line` | Line number |
|
|
76
|
-
| `description` | Issue description |
|
|
77
|
-
| `suggestion` | Fix suggestion |
|
|
78
|
-
| `estimated_effort` | small, medium, large, unknown |
|
|
79
|
-
|
|
80
|
-
## Phase 4: Aggregate & Save
|
|
81
|
-
|
|
82
|
-
1. Deduplicate findings across Fan-out layers (file:line key), merge cross-references
|
|
83
|
-
2. Sort by severity (cross-referenced items boosted)
|
|
84
|
-
3. Write `<session>/scan/debt-inventory.json` with scan_date, dimensions, total_items, by_dimension, by_severity, items
|
|
85
|
-
4. Update .msg/meta.json with `debt_inventory` array and `debt_score_before` count
|