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,90 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: EXEC
|
|
3
|
-
inner_loop: true
|
|
4
|
-
message_types:
|
|
5
|
-
success: impl_complete
|
|
6
|
-
error: impl_failed
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Executor
|
|
10
|
-
|
|
11
|
-
Single-issue implementation agent. Loads solution from artifact file, routes to execution backend (Agent/Codex/Gemini), verifies with tests, commits, and reports completion.
|
|
12
|
-
|
|
13
|
-
## Phase 2: Task & Solution Loading
|
|
14
|
-
|
|
15
|
-
| Input | Source | Required |
|
|
16
|
-
|-------|--------|----------|
|
|
17
|
-
| Issue ID | Task description `Issue ID:` field | Yes |
|
|
18
|
-
| Solution file | Task description `Solution file:` field | Yes |
|
|
19
|
-
| Session folder | Task description `Session:` field | Yes |
|
|
20
|
-
| Execution method | Task description `Execution method:` field | Yes |
|
|
21
|
-
| Wisdom | `<session>/wisdom/` | No |
|
|
22
|
-
|
|
23
|
-
1. Extract issue ID, solution file path, session folder, execution method
|
|
24
|
-
2. Load solution JSON from file (file-first)
|
|
25
|
-
3. If file not found -> fallback: `ccw issue solution <issueId> --json`
|
|
26
|
-
4. Load wisdom files for conventions and patterns
|
|
27
|
-
5. Verify solution has required fields: title, tasks
|
|
28
|
-
|
|
29
|
-
## Phase 3: Implementation
|
|
30
|
-
|
|
31
|
-
### Backend Selection
|
|
32
|
-
|
|
33
|
-
| Method | Backend | CLI Tool |
|
|
34
|
-
|--------|---------|----------|
|
|
35
|
-
| `codex` | `ccw cli --tool codex --mode write` | Background CLI |
|
|
36
|
-
| `gemini` | `ccw cli --tool gemini --mode write` | Background CLI |
|
|
37
|
-
|
|
38
|
-
### CLI Backend (Codex/Gemini)
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
ccw cli -p "PURPOSE: Implement solution for issue <issueId>; success = all tasks completed, tests pass
|
|
42
|
-
TASK: <solution.tasks as bullet points>
|
|
43
|
-
MODE: write
|
|
44
|
-
CONTEXT: @**/* | Memory: Session wisdom from <session>/wisdom/
|
|
45
|
-
EXPECTED: Working implementation with: code changes, test updates, no syntax errors
|
|
46
|
-
CONSTRAINTS: Follow existing patterns | Maintain backward compatibility
|
|
47
|
-
Issue: <issueId>
|
|
48
|
-
Title: <solution.title>
|
|
49
|
-
Solution: <solution JSON>" --tool <codex|gemini> --mode write --rule development-implement-feature
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
Wait for CLI completion before proceeding to verification.
|
|
53
|
-
|
|
54
|
-
## Phase 4: Verification + Commit
|
|
55
|
-
|
|
56
|
-
### Test Verification
|
|
57
|
-
|
|
58
|
-
| Check | Method | Pass Criteria |
|
|
59
|
-
|-------|--------|---------------|
|
|
60
|
-
| Tests | Detect and run project test command | All pass |
|
|
61
|
-
| Syntax | IDE diagnostics or `tsc --noEmit` | No errors |
|
|
62
|
-
|
|
63
|
-
If tests fail: retry implementation once, then report `impl_failed`.
|
|
64
|
-
|
|
65
|
-
### Commit
|
|
66
|
-
|
|
67
|
-
```bash
|
|
68
|
-
git add -A
|
|
69
|
-
git commit -m "feat(<issueId>): <solution.title>"
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### Update Issue Status
|
|
73
|
-
|
|
74
|
-
```bash
|
|
75
|
-
ccw issue update <issueId> --status completed
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### Report
|
|
79
|
-
|
|
80
|
-
Send `impl_complete` message to coordinator via team_msg + SendMessage.
|
|
81
|
-
|
|
82
|
-
## Boundaries
|
|
83
|
-
|
|
84
|
-
| Allowed | Prohibited |
|
|
85
|
-
|---------|-----------|
|
|
86
|
-
| Load solution from file | Create or modify issues |
|
|
87
|
-
| Implement via CLI tools (Codex/Gemini) | Modify solution artifacts |
|
|
88
|
-
| Run tests | Spawn additional agents (use CLI tools instead) |
|
|
89
|
-
| git commit | Direct user interaction |
|
|
90
|
-
| Update issue status | Create tasks for other roles |
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: PLAN
|
|
3
|
-
inner_loop: true
|
|
4
|
-
message_types:
|
|
5
|
-
success: issue_ready
|
|
6
|
-
error: error
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Planner
|
|
10
|
-
|
|
11
|
-
Requirement decomposition → issue creation → solution design → EXEC-* task creation. Processes issues one at a time, creating executor tasks as solutions are completed.
|
|
12
|
-
|
|
13
|
-
## Phase 2: Context Loading
|
|
14
|
-
|
|
15
|
-
| Input | Source | Required |
|
|
16
|
-
|-------|--------|----------|
|
|
17
|
-
| Input type + raw input | Task description | Yes |
|
|
18
|
-
| Session folder | Task description `Session:` field | Yes |
|
|
19
|
-
| Execution method | Task description `Execution method:` field | Yes |
|
|
20
|
-
| Wisdom | `<session>/wisdom/` | No |
|
|
21
|
-
|
|
22
|
-
1. Extract session path, input type, raw input, execution method from task description
|
|
23
|
-
2. Load wisdom files if available
|
|
24
|
-
3. Parse input to determine issue list:
|
|
25
|
-
|
|
26
|
-
| Detection | Condition | Action |
|
|
27
|
-
|-----------|-----------|--------|
|
|
28
|
-
| Issue IDs | `ISS-\d{8}-\d{6}` pattern | Use directly |
|
|
29
|
-
| `--text '...'` | Flag in input | Create issue(s) via `ccw issue create` |
|
|
30
|
-
| `--plan <path>` | Flag in input | Read file, parse phases, batch create issues |
|
|
31
|
-
|
|
32
|
-
## Phase 3: Issue Processing Loop
|
|
33
|
-
|
|
34
|
-
For each issue, execute in sequence:
|
|
35
|
-
|
|
36
|
-
### 3a. Generate Solution
|
|
37
|
-
|
|
38
|
-
Use CLI tool for issue planning:
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
ccw cli -p "PURPOSE: Generate implementation solution for issue <issueId>; success = actionable task breakdown with file paths
|
|
42
|
-
TASK: • Load issue details • Analyze requirements • Design solution approach • Break down into implementation tasks • Identify files to modify/create
|
|
43
|
-
MODE: analysis
|
|
44
|
-
CONTEXT: @**/* | Memory: Session context from <session>/wisdom/
|
|
45
|
-
EXPECTED: JSON solution with: title, description, tasks array (each with description, files_touched), estimated_complexity
|
|
46
|
-
CONSTRAINTS: Follow project patterns | Reference existing implementations
|
|
47
|
-
" --tool gemini --mode analysis --rule planning-breakdown-task-steps
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
Parse CLI output to extract solution JSON. If CLI fails, fallback to `ccw issue solution <issueId> --json`.
|
|
51
|
-
|
|
52
|
-
### 3b. Write Solution Artifact
|
|
53
|
-
|
|
54
|
-
Write solution JSON to: `<session>/artifacts/solutions/<issueId>.json`
|
|
55
|
-
|
|
56
|
-
```json
|
|
57
|
-
{
|
|
58
|
-
"session_id": "<session-id>",
|
|
59
|
-
"issue_id": "<issueId>",
|
|
60
|
-
"solution": <solution-from-agent>,
|
|
61
|
-
"planned_at": "<ISO timestamp>"
|
|
62
|
-
}
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### 3c. Check Conflicts
|
|
66
|
-
|
|
67
|
-
Extract `files_touched` from solution. Compare against prior solutions in session.
|
|
68
|
-
Overlapping files -> log warning to `wisdom/issues.md`, continue.
|
|
69
|
-
|
|
70
|
-
### 3d. Create EXEC-* Task
|
|
71
|
-
|
|
72
|
-
```
|
|
73
|
-
TaskCreate({
|
|
74
|
-
subject: "EXEC-00N: Implement <issue-title>",
|
|
75
|
-
description: `Implement solution for issue <issueId>.
|
|
76
|
-
|
|
77
|
-
Issue ID: <issueId>
|
|
78
|
-
Solution file: <session>/artifacts/solutions/<issueId>.json
|
|
79
|
-
Session: <session>
|
|
80
|
-
Execution method: <method>
|
|
81
|
-
|
|
82
|
-
InnerLoop: true`,
|
|
83
|
-
activeForm: "Implementing <issue-title>"
|
|
84
|
-
})
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
### 3e. Signal issue_ready
|
|
88
|
-
|
|
89
|
-
Send message via team_msg + SendMessage to coordinator:
|
|
90
|
-
- type: `issue_ready`
|
|
91
|
-
|
|
92
|
-
### 3f. Continue Loop
|
|
93
|
-
|
|
94
|
-
Process next issue. Do NOT wait for executor.
|
|
95
|
-
|
|
96
|
-
## Phase 4: Completion Signal
|
|
97
|
-
|
|
98
|
-
After all issues processed:
|
|
99
|
-
1. Send `all_planned` message to coordinator via team_msg + SendMessage
|
|
100
|
-
2. Summary: total issues planned, EXEC-* tasks created
|
|
101
|
-
|
|
102
|
-
## Boundaries
|
|
103
|
-
|
|
104
|
-
| Allowed | Prohibited |
|
|
105
|
-
|---------|-----------|
|
|
106
|
-
| Parse input, create issues | Write/modify business code |
|
|
107
|
-
| Generate solutions (issue-plan-agent) | Run tests |
|
|
108
|
-
| Write solution artifacts | git commit |
|
|
109
|
-
| Create EXEC-* tasks | Call code-developer |
|
|
110
|
-
| Conflict checking | Direct user interaction |
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: QAANA
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: analysis_ready
|
|
6
|
-
report: quality_report
|
|
7
|
-
error: error
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Quality Analyst
|
|
11
|
-
|
|
12
|
-
Analyze defect patterns, coverage gaps, test effectiveness, and generate comprehensive quality reports. Maintain defect pattern database and provide quality scoring.
|
|
13
|
-
|
|
14
|
-
## Phase 2: Context Loading
|
|
15
|
-
|
|
16
|
-
| Input | Source | Required |
|
|
17
|
-
|-------|--------|----------|
|
|
18
|
-
| Task description | From task subject/description | Yes |
|
|
19
|
-
| Session path | Extracted from task description | Yes |
|
|
20
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
|
|
21
|
-
| Discovered issues | meta.json -> discovered_issues | No |
|
|
22
|
-
| Test strategy | meta.json -> test_strategy | No |
|
|
23
|
-
| Generated tests | meta.json -> generated_tests | No |
|
|
24
|
-
| Execution results | meta.json -> execution_results | No |
|
|
25
|
-
| Historical patterns | meta.json -> defect_patterns | No |
|
|
26
|
-
|
|
27
|
-
1. Extract session path from task description
|
|
28
|
-
2. Read .msg/meta.json for all accumulated QA data
|
|
29
|
-
3. Read coverage data from `coverage/coverage-summary.json` if available
|
|
30
|
-
4. Read layer execution results from `<session>/results/run-*.json`
|
|
31
|
-
5. Select analysis mode:
|
|
32
|
-
|
|
33
|
-
| Data Points | Mode |
|
|
34
|
-
|-------------|------|
|
|
35
|
-
| <= 5 issues + results | Direct inline analysis |
|
|
36
|
-
| > 5 | CLI-assisted deep analysis via gemini |
|
|
37
|
-
|
|
38
|
-
## Phase 3: Multi-Dimensional Analysis
|
|
39
|
-
|
|
40
|
-
**Five analysis dimensions**:
|
|
41
|
-
|
|
42
|
-
1. **Defect Pattern Analysis**: Group issues by type/perspective, identify patterns with >= 2 occurrences, record type/count/files/description
|
|
43
|
-
2. **Coverage Gap Analysis**: Compare actual coverage vs layer targets, identify per-file gaps (< 50% coverage), severity: critical (< 20%) / high (< 50%)
|
|
44
|
-
3. **Test Effectiveness**: Per layer -- files generated, pass rate, iterations needed, coverage achieved. Effective = pass_rate >= 95% AND iterations <= 2
|
|
45
|
-
4. **Quality Trend**: Compare against coverage_history. Trend: improving (delta > 5%), declining (delta < -5%), stable
|
|
46
|
-
5. **Quality Score** (0-100 starting from 100):
|
|
47
|
-
|
|
48
|
-
| Factor | Impact |
|
|
49
|
-
|--------|--------|
|
|
50
|
-
| Security issues | -10 per issue |
|
|
51
|
-
| Bug issues | -5 per issue |
|
|
52
|
-
| Coverage gap | -0.5 per gap percentage |
|
|
53
|
-
| Test failures | -(100 - pass_rate) * 0.3 per layer |
|
|
54
|
-
| Effective test layers | +5 per layer |
|
|
55
|
-
| Improving trend | +3 |
|
|
56
|
-
|
|
57
|
-
For CLI-assisted mode:
|
|
58
|
-
```
|
|
59
|
-
PURPOSE: Deep quality analysis on QA results to identify defect patterns and improvement opportunities
|
|
60
|
-
TASK: Classify defects by root cause, identify high-density files, analyze coverage gaps vs risk, generate recommendations
|
|
61
|
-
MODE: analysis
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
## Phase 4: Report Generation & Output
|
|
65
|
-
|
|
66
|
-
1. Generate quality report markdown with: score, defect patterns, coverage analysis, test effectiveness, quality trend, recommendations
|
|
67
|
-
2. Write report to `<session>/analysis/quality-report.md`
|
|
68
|
-
3. Update `<session>/wisdom/.msg/meta.json`:
|
|
69
|
-
- `defect_patterns`: identified patterns array
|
|
70
|
-
- `quality_score`: calculated score
|
|
71
|
-
- `coverage_history`: append new data point (date, coverage, quality_score, issues)
|
|
72
|
-
|
|
73
|
-
**Score-based recommendations**:
|
|
74
|
-
|
|
75
|
-
| Score | Recommendation |
|
|
76
|
-
|-------|----------------|
|
|
77
|
-
| >= 80 | Quality is GOOD. Maintain current testing practices. |
|
|
78
|
-
| 60-79 | Quality needs IMPROVEMENT. Focus on coverage gaps and recurring patterns. |
|
|
79
|
-
| < 60 | Quality is CONCERNING. Recommend comprehensive review and testing effort. |
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: QARUN
|
|
3
|
-
inner_loop: true
|
|
4
|
-
additional_prefixes: [QARUN-gc]
|
|
5
|
-
message_types:
|
|
6
|
-
success: tests_passed
|
|
7
|
-
failure: tests_failed
|
|
8
|
-
coverage: coverage_report
|
|
9
|
-
error: error
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# Test Executor
|
|
13
|
-
|
|
14
|
-
Run test suites, collect coverage data, and perform automatic fix cycles when tests fail. Implements the execution side of the Generator-Executor (GC) loop.
|
|
15
|
-
|
|
16
|
-
## Phase 2: Environment Detection
|
|
17
|
-
|
|
18
|
-
| Input | Source | Required |
|
|
19
|
-
|-------|--------|----------|
|
|
20
|
-
| Task description | From task subject/description | Yes |
|
|
21
|
-
| Session path | Extracted from task description | Yes |
|
|
22
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
|
|
23
|
-
| Test strategy | meta.json -> test_strategy | Yes |
|
|
24
|
-
| Generated tests | meta.json -> generated_tests | Yes |
|
|
25
|
-
| Target layer | task description `layer: L1/L2/L3` | Yes |
|
|
26
|
-
|
|
27
|
-
1. Extract session path and target layer from task description
|
|
28
|
-
2. Read .msg/meta.json for strategy and generated test file list
|
|
29
|
-
3. Detect test command by framework:
|
|
30
|
-
|
|
31
|
-
| Framework | Command |
|
|
32
|
-
|-----------|---------|
|
|
33
|
-
| vitest | `npx vitest run --coverage --reporter=json --outputFile=test-results.json` |
|
|
34
|
-
| jest | `npx jest --coverage --json --outputFile=test-results.json` |
|
|
35
|
-
| pytest | `python -m pytest --cov --cov-report=json -v` |
|
|
36
|
-
| mocha | `npx mocha --reporter json > test-results.json` |
|
|
37
|
-
| unknown | `npm test -- --coverage` |
|
|
38
|
-
|
|
39
|
-
4. Get test files from `generated_tests[targetLayer].files`
|
|
40
|
-
|
|
41
|
-
## Phase 3: Iterative Test-Fix Cycle
|
|
42
|
-
|
|
43
|
-
**Max iterations**: 5. **Pass threshold**: 95% or all tests pass.
|
|
44
|
-
|
|
45
|
-
Per iteration:
|
|
46
|
-
1. Run test command, capture output
|
|
47
|
-
2. Parse results: extract passed/failed counts, parse coverage from output or `coverage/coverage-summary.json`
|
|
48
|
-
3. If all pass (0 failures) -> exit loop (success)
|
|
49
|
-
4. If pass rate >= 95% and iteration >= 2 -> exit loop (good enough)
|
|
50
|
-
5. If iteration >= MAX -> exit loop (report current state)
|
|
51
|
-
6. Extract failure details (error lines, assertion failures)
|
|
52
|
-
7. Delegate fix via CLI tool with constraints:
|
|
53
|
-
- ONLY modify test files, NEVER modify source code
|
|
54
|
-
- Fix: incorrect assertions, missing imports, wrong mocks, setup issues
|
|
55
|
-
- Do NOT: skip tests, add `@ts-ignore`, use `as any`
|
|
56
|
-
8. Increment iteration, repeat
|
|
57
|
-
|
|
58
|
-
## Phase 4: Result Analysis & Output
|
|
59
|
-
|
|
60
|
-
1. Build result data: layer, framework, iterations, pass_rate, coverage, tests_passed, tests_failed, all_passed
|
|
61
|
-
2. Save results to `<session>/results/run-<layer>.json`
|
|
62
|
-
3. Save last test output to `<session>/results/output-<layer>.txt`
|
|
63
|
-
4. Update `<session>/wisdom/.msg/meta.json` under `execution_results[layer]` and top-level `execution_results.pass_rate`, `execution_results.coverage`
|
|
64
|
-
5. Message type: `tests_passed` if all_passed, else `tests_failed`
|
|
@@ -1,67 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: QAGEN
|
|
3
|
-
inner_loop: false
|
|
4
|
-
additional_prefixes: [QAGEN-fix]
|
|
5
|
-
message_types:
|
|
6
|
-
success: tests_generated
|
|
7
|
-
revised: tests_revised
|
|
8
|
-
error: error
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Test Generator
|
|
12
|
-
|
|
13
|
-
Generate test code according to strategist's strategy and layers. Support L1 unit tests, L2 integration tests, L3 E2E tests. Follow project's existing test patterns and framework conventions.
|
|
14
|
-
|
|
15
|
-
## Phase 2: Strategy & Pattern Loading
|
|
16
|
-
|
|
17
|
-
| Input | Source | Required |
|
|
18
|
-
|-------|--------|----------|
|
|
19
|
-
| Task description | From task subject/description | Yes |
|
|
20
|
-
| Session path | Extracted from task description | Yes |
|
|
21
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
|
|
22
|
-
| Test strategy | meta.json -> test_strategy | Yes |
|
|
23
|
-
| Target layer | task description `layer: L1/L2/L3` | Yes |
|
|
24
|
-
|
|
25
|
-
1. Extract session path and target layer from task description
|
|
26
|
-
2. Read .msg/meta.json for test strategy (layers, coverage targets)
|
|
27
|
-
3. Determine if this is a GC fix task (subject contains "fix")
|
|
28
|
-
4. Load layer config from strategy: level, name, target_coverage, focus_files
|
|
29
|
-
5. Learn existing test patterns -- find 3 similar test files via Glob(`**/*.{test,spec}.{ts,tsx,js,jsx}`)
|
|
30
|
-
6. Detect test conventions: file location (colocated vs __tests__), import style, describe/it nesting, framework (vitest/jest/pytest)
|
|
31
|
-
|
|
32
|
-
## Phase 3: Test Code Generation
|
|
33
|
-
|
|
34
|
-
**Mode selection**:
|
|
35
|
-
|
|
36
|
-
| Condition | Mode |
|
|
37
|
-
|-----------|------|
|
|
38
|
-
| GC fix task | Read failure info from `<session>/results/run-<layer>.json`, fix failing tests only |
|
|
39
|
-
| <= 3 focus files | Direct: inline Read source -> Write test file |
|
|
40
|
-
| > 3 focus files | Batch by module, delegate via CLI tool |
|
|
41
|
-
|
|
42
|
-
**Direct generation flow** (per source file):
|
|
43
|
-
1. Read source file content, extract exports
|
|
44
|
-
2. Determine test file path following project conventions
|
|
45
|
-
3. If test exists -> analyze missing cases -> append new tests via Edit
|
|
46
|
-
4. If no test -> generate full test file via Write
|
|
47
|
-
5. Include: happy path, edge cases, error cases per export
|
|
48
|
-
|
|
49
|
-
**GC fix flow**:
|
|
50
|
-
1. Read execution results and failure output from results directory
|
|
51
|
-
2. Read each failing test file
|
|
52
|
-
3. Fix assertions, imports, mocks, or test setup
|
|
53
|
-
4. Do NOT modify source code, do NOT skip/ignore tests
|
|
54
|
-
|
|
55
|
-
**General rules**:
|
|
56
|
-
- Follow existing test patterns exactly (imports, naming, structure)
|
|
57
|
-
- Target coverage per layer config
|
|
58
|
-
- Do NOT use `any` type assertions or `@ts-ignore`
|
|
59
|
-
|
|
60
|
-
## Phase 4: Self-Validation & Output
|
|
61
|
-
|
|
62
|
-
1. Collect generated/modified test files
|
|
63
|
-
2. Run syntax check (TypeScript: `tsc --noEmit`, or framework-specific)
|
|
64
|
-
3. Auto-fix syntax errors (max 3 attempts)
|
|
65
|
-
4. Write test metadata to `<session>/wisdom/.msg/meta.json` under `generated_tests[layer]`:
|
|
66
|
-
- layer, files list, count, syntax_clean, mode, gc_fix flag
|
|
67
|
-
5. Message type: `tests_generated` for new, `tests_revised` for GC fix iterations
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: SCOUT
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: scan_ready
|
|
6
|
-
error: error
|
|
7
|
-
issues: issues_found
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Multi-Perspective Scout
|
|
11
|
-
|
|
12
|
-
Scan codebase from multiple perspectives (bug, security, test-coverage, code-quality, UX) to discover potential issues. Produce structured scan results with severity-ranked findings.
|
|
13
|
-
|
|
14
|
-
## Phase 2: Context & Scope Assessment
|
|
15
|
-
|
|
16
|
-
| Input | Source | Required |
|
|
17
|
-
|-------|--------|----------|
|
|
18
|
-
| Task description | From task subject/description | Yes |
|
|
19
|
-
| Session path | Extracted from task description | Yes |
|
|
20
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | No |
|
|
21
|
-
|
|
22
|
-
1. Extract session path and target scope from task description
|
|
23
|
-
2. Determine scan scope: explicit scope from task or `**/*` default
|
|
24
|
-
3. Get recent changed files: `git diff --name-only HEAD~5 2>/dev/null || echo ""`
|
|
25
|
-
4. Read .msg/meta.json for historical defect patterns (`defect_patterns`)
|
|
26
|
-
5. Select scan perspectives based on task description:
|
|
27
|
-
- Default: `["bug", "security", "test-coverage", "code-quality"]`
|
|
28
|
-
- Add `"ux"` if task mentions UX/UI
|
|
29
|
-
6. Assess complexity to determine scan strategy:
|
|
30
|
-
|
|
31
|
-
| Complexity | Condition | Strategy |
|
|
32
|
-
|------------|-----------|----------|
|
|
33
|
-
| Low | < 5 changed files, no specific keywords | ACE search + Grep inline |
|
|
34
|
-
| Medium | 5-15 files or specific perspective requested | CLI fan-out (3 core perspectives) |
|
|
35
|
-
| High | > 15 files or full-project scan | CLI fan-out (all perspectives) |
|
|
36
|
-
|
|
37
|
-
## Phase 3: Multi-Perspective Scan
|
|
38
|
-
|
|
39
|
-
**Low complexity**: Use `mcp__ace-tool__search_context` for quick pattern-based scan.
|
|
40
|
-
|
|
41
|
-
**Medium/High complexity**: CLI fan-out -- one `ccw cli --mode analysis` per perspective:
|
|
42
|
-
|
|
43
|
-
For each active perspective, build prompt:
|
|
44
|
-
```
|
|
45
|
-
PURPOSE: Scan code from <perspective> perspective to discover potential issues
|
|
46
|
-
TASK: Analyze code patterns for <perspective> problems, identify anti-patterns, check for common issues
|
|
47
|
-
MODE: analysis
|
|
48
|
-
CONTEXT: @<scan-scope>
|
|
49
|
-
EXPECTED: List of findings with severity (critical/high/medium/low), file:line references, description
|
|
50
|
-
CONSTRAINTS: Focus on actionable findings only
|
|
51
|
-
```
|
|
52
|
-
Execute via: `ccw cli -p "<prompt>" --tool gemini --mode analysis`
|
|
53
|
-
|
|
54
|
-
After all perspectives complete:
|
|
55
|
-
- Parse CLI outputs into structured findings
|
|
56
|
-
- Deduplicate by file:line (merge perspectives for same location)
|
|
57
|
-
- Compare against known defect patterns from .msg/meta.json
|
|
58
|
-
- Rank by severity: critical > high > medium > low
|
|
59
|
-
|
|
60
|
-
## Phase 4: Result Aggregation
|
|
61
|
-
|
|
62
|
-
1. Build `discoveredIssues` array from critical + high findings (with id, severity, perspective, file, line, description)
|
|
63
|
-
2. Write scan results to `<session>/scan/scan-results.json`:
|
|
64
|
-
- scan_date, perspectives scanned, total findings, by_severity counts, findings detail, issues_created count
|
|
65
|
-
3. Update `<session>/wisdom/.msg/meta.json`: merge `discovered_issues` field
|
|
66
|
-
4. Contribute to wisdom/issues.md if new patterns found
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: QASTRAT
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: strategy_ready
|
|
6
|
-
error: error
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Test Strategist
|
|
10
|
-
|
|
11
|
-
Analyze change scope, determine test layers (L1-L3), define coverage targets, and generate test strategy document. Create targeted test plans based on scout discoveries and code changes.
|
|
12
|
-
|
|
13
|
-
## Phase 2: Context & Change Analysis
|
|
14
|
-
|
|
15
|
-
| Input | Source | Required |
|
|
16
|
-
|-------|--------|----------|
|
|
17
|
-
| Task description | From task subject/description | Yes |
|
|
18
|
-
| Session path | Extracted from task description | Yes |
|
|
19
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
|
|
20
|
-
| Discovered issues | meta.json -> discovered_issues | No |
|
|
21
|
-
| Defect patterns | meta.json -> defect_patterns | No |
|
|
22
|
-
|
|
23
|
-
1. Extract session path from task description
|
|
24
|
-
2. Read .msg/meta.json for scout discoveries and historical patterns
|
|
25
|
-
3. Analyze change scope: `git diff --name-only HEAD~5`
|
|
26
|
-
4. Categorize changed files:
|
|
27
|
-
|
|
28
|
-
| Category | Pattern |
|
|
29
|
-
|----------|---------|
|
|
30
|
-
| Source | `\.(ts|tsx|js|jsx|py|java|go|rs)$` |
|
|
31
|
-
| Test | `\.(test|spec)\.(ts|tsx|js|jsx)$` or `test_` |
|
|
32
|
-
| Config | `\.(json|yaml|yml|toml|env)$` |
|
|
33
|
-
|
|
34
|
-
5. Detect test framework from package.json / project files
|
|
35
|
-
6. Check existing coverage baseline from `coverage/coverage-summary.json`
|
|
36
|
-
7. Select analysis mode:
|
|
37
|
-
|
|
38
|
-
| Total Scope | Mode |
|
|
39
|
-
|-------------|------|
|
|
40
|
-
| <= 5 files + issues | Direct inline analysis |
|
|
41
|
-
| 6-15 | Single CLI analysis |
|
|
42
|
-
| > 15 | Multi-dimension CLI analysis |
|
|
43
|
-
|
|
44
|
-
## Phase 3: Strategy Generation
|
|
45
|
-
|
|
46
|
-
**Layer Selection Logic**:
|
|
47
|
-
|
|
48
|
-
| Condition | Layer | Target |
|
|
49
|
-
|-----------|-------|--------|
|
|
50
|
-
| Has source file changes | L1: Unit Tests | 80% |
|
|
51
|
-
| >= 3 source files OR critical issues | L2: Integration Tests | 60% |
|
|
52
|
-
| >= 3 critical/high severity issues | L3: E2E Tests | 40% |
|
|
53
|
-
| No changes but has scout issues | L1 focused on issue files | 80% |
|
|
54
|
-
|
|
55
|
-
For CLI-assisted analysis, use:
|
|
56
|
-
```
|
|
57
|
-
PURPOSE: Analyze code changes and scout findings to determine optimal test strategy
|
|
58
|
-
TASK: Classify changed files by risk, map issues to test requirements, identify integration points, recommend test layers with coverage targets
|
|
59
|
-
MODE: analysis
|
|
60
|
-
```
|
|
61
|
-
|
|
62
|
-
Build strategy document with: scope analysis, layer configs (level, name, target_coverage, focus_files, rationale), priority issues list.
|
|
63
|
-
|
|
64
|
-
**Validation**: Verify strategy has layers, targets > 0, covers discovered issues, and framework detected.
|
|
65
|
-
|
|
66
|
-
## Phase 4: Output & Persistence
|
|
67
|
-
|
|
68
|
-
1. Write strategy to `<session>/strategy/test-strategy.md`
|
|
69
|
-
2. Update `<session>/wisdom/.msg/meta.json`: merge `test_strategy` field with scope, layers, coverage_targets, test_framework
|
|
70
|
-
3. Contribute to wisdom/decisions.md with layer selection rationale
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: FIX
|
|
3
|
-
inner_loop: true
|
|
4
|
-
message_types:
|
|
5
|
-
success: fix_complete
|
|
6
|
-
error: fix_failed
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Code Fixer
|
|
10
|
-
|
|
11
|
-
Fix code based on reviewed findings. Load manifest, plan fix groups, apply with rollback-on-failure, verify. Code-generation role -- modifies source files.
|
|
12
|
-
|
|
13
|
-
## Phase 2: Context & Scope Resolution
|
|
14
|
-
|
|
15
|
-
| Input | Source | Required |
|
|
16
|
-
|-------|--------|----------|
|
|
17
|
-
| Task description | From task subject/description | Yes |
|
|
18
|
-
| Session path | Extracted from task description | Yes |
|
|
19
|
-
| Fix manifest | <session>/fix/fix-manifest.json | Yes |
|
|
20
|
-
| Review report | <session>/review/review-report.json | Yes |
|
|
21
|
-
| .msg/meta.json | <session>/.msg/meta.json | No |
|
|
22
|
-
|
|
23
|
-
1. Extract session path, input path from task description
|
|
24
|
-
2. Load manifest (scope, source report path) and review report (findings with enrichment)
|
|
25
|
-
3. Filter fixable findings: severity in scope AND fix_strategy !== 'skip'
|
|
26
|
-
4. If 0 fixable -> report complete immediately
|
|
27
|
-
5. Detect quick path: findings <= 5 AND no cross-file dependencies
|
|
28
|
-
6. Detect verification tools: tsc (tsconfig.json), eslint (package.json), jest (package.json), pytest (pyproject.toml), semgrep (semgrep available)
|
|
29
|
-
7. Load wisdom files from `<session>/wisdom/`
|
|
30
|
-
|
|
31
|
-
## Phase 3: Plan + Execute
|
|
32
|
-
|
|
33
|
-
### 3A: Plan Fixes (deterministic, no CLI)
|
|
34
|
-
1. Group findings by primary file
|
|
35
|
-
2. Merge groups with cross-file dependencies (union-find)
|
|
36
|
-
3. Topological sort within each group (respect fix_dependencies, append cycles at end)
|
|
37
|
-
4. Sort groups by max severity (critical first)
|
|
38
|
-
5. Determine execution path: quick_path (<=5 findings, <=1 group) or standard
|
|
39
|
-
6. Write `<session>/fix/fix-plan.json`: `{plan_id, quick_path, groups[{id, files[], findings[], max_severity}], execution_order[], total_findings, total_groups}`
|
|
40
|
-
|
|
41
|
-
### 3B: Execute Fixes
|
|
42
|
-
**Quick path**: Single code-developer agent for all findings.
|
|
43
|
-
**Standard path**: One code-developer agent per group, in execution_order.
|
|
44
|
-
|
|
45
|
-
Agent prompt includes: finding list (dependency-sorted), file contents (truncated 8K), critical rules:
|
|
46
|
-
1. Apply each fix using Edit tool in order
|
|
47
|
-
2. After each fix, run related tests
|
|
48
|
-
3. Tests PASS -> finding is "fixed"
|
|
49
|
-
4. Tests FAIL -> `git checkout -- {file}` -> mark "failed" -> continue
|
|
50
|
-
5. No retry on failure. Rollback and move on
|
|
51
|
-
6. If finding depends on previously failed finding -> mark "skipped"
|
|
52
|
-
|
|
53
|
-
Agent returns JSON: `{results:[{id, status: fixed|failed|skipped, file, error?}]}`
|
|
54
|
-
Fallback: check git diff per file if no structured output.
|
|
55
|
-
|
|
56
|
-
Write `<session>/fix/execution-results.json`: `{fixed[], failed[], skipped[]}`
|
|
57
|
-
|
|
58
|
-
## Phase 4: Post-Fix Verification
|
|
59
|
-
|
|
60
|
-
1. Run available verification tools on modified files:
|
|
61
|
-
|
|
62
|
-
| Tool | Command | Pass Criteria |
|
|
63
|
-
|------|---------|---------------|
|
|
64
|
-
| tsc | `npx tsc --noEmit` | 0 errors |
|
|
65
|
-
| eslint | `npx eslint <files>` | 0 errors |
|
|
66
|
-
| jest | `npx jest --passWithNoTests` | Tests pass |
|
|
67
|
-
| pytest | `pytest --tb=short` | Tests pass |
|
|
68
|
-
| semgrep | `semgrep --config auto <files> --json` | 0 results |
|
|
69
|
-
|
|
70
|
-
2. If verification fails critically -> rollback last batch
|
|
71
|
-
3. Write `<session>/fix/verify-results.json`
|
|
72
|
-
4. Generate `<session>/fix/fix-summary.json`: `{fix_id, fix_date, scope, total, fixed, failed, skipped, fix_rate, verification}`
|
|
73
|
-
5. Generate `<session>/fix/fix-summary.md` (human-readable)
|
|
74
|
-
6. Update `<session>/.msg/meta.json` with fix results
|
|
75
|
-
7. Contribute discoveries to `<session>/wisdom/` files
|