claude-code-workflow 7.2.9 → 7.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/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-test-review/SKILL.md +2 -0
- 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/.claude/skills/workflow-tune/SKILL.md +487 -0
- package/.claude/skills/workflow-tune/phases/01-setup.md +548 -0
- package/.claude/skills/workflow-tune/phases/02-step-execute.md +197 -0
- package/.claude/skills/workflow-tune/phases/03-step-analyze.md +386 -0
- package/.claude/skills/workflow-tune/phases/04-synthesize.md +257 -0
- package/.claude/skills/workflow-tune/phases/05-optimize-report.md +246 -0
- package/.claude/skills/workflow-tune/specs/workflow-eval-criteria.md +57 -0
- package/.claude/skills/workflow-tune/templates/step-analysis-prompt.md +88 -0
- package/.claude/skills/workflow-tune/templates/synthesis-prompt.md +90 -0
- package/.codex/skills/analyze-with-file/SKILL.md +64 -103
- 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/roadmap-with-file/SKILL.md +11 -17
- 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/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/.codex/skills/analyze-with-file/EXECUTE.md +0 -716
- package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js +0 -2
- package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js.map +0 -1
|
@@ -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
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: TDVAL
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: validation_complete
|
|
6
|
-
error: error
|
|
7
|
-
fix: regression_found
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Tech Debt Validator
|
|
11
|
-
|
|
12
|
-
Cleanup result validator. Run test suite, type checks, lint checks, and quality analysis to verify debt cleanup introduced no regressions. Compare before/after debt scores, produce validation-report.json.
|
|
13
|
-
|
|
14
|
-
## Phase 2: Load Context
|
|
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
|
-
| Fix log | <session>/fixes/fix-log.json | No |
|
|
21
|
-
|
|
22
|
-
1. Extract session path from task description
|
|
23
|
-
2. Read .msg/meta.json for: worktree.path, debt_inventory, fix_results, debt_score_before
|
|
24
|
-
3. Determine command prefix: `cd "<worktree-path>" && ` if worktree exists
|
|
25
|
-
4. Read fix-log.json for modified files list
|
|
26
|
-
5. Detect available validation tools in worktree:
|
|
27
|
-
|
|
28
|
-
| Signal | Tool | Method |
|
|
29
|
-
|--------|------|--------|
|
|
30
|
-
| package.json + npm | npm test | Test suite |
|
|
31
|
-
| pytest available | python -m pytest | Test suite |
|
|
32
|
-
| npx tsc available | npx tsc --noEmit | Type check |
|
|
33
|
-
| npx eslint available | npx eslint | Lint check |
|
|
34
|
-
|
|
35
|
-
## Phase 3: Run Validation Checks
|
|
36
|
-
|
|
37
|
-
Execute 4-layer validation (all commands in worktree):
|
|
38
|
-
|
|
39
|
-
**1. Test Suite**:
|
|
40
|
-
- Run `npm test` or `python -m pytest` in worktree
|
|
41
|
-
- PASS if no FAIL/error/failed keywords; FAIL with regression count otherwise
|
|
42
|
-
- Skip with "no-tests" if no test runner available
|
|
43
|
-
|
|
44
|
-
**2. Type Check**:
|
|
45
|
-
- Run `npx tsc --noEmit` in worktree
|
|
46
|
-
- Count `error TS` occurrences for error count
|
|
47
|
-
|
|
48
|
-
**3. Lint Check**:
|
|
49
|
-
- Run `npx eslint --no-error-on-unmatched-pattern <modified-files>` in worktree
|
|
50
|
-
- Count error occurrences
|
|
51
|
-
|
|
52
|
-
**4. Quality Analysis** (optional, when > 5 modified files):
|
|
53
|
-
- Use gemini CLI to compare code quality before/after
|
|
54
|
-
- Assess complexity, duplication, naming quality improvements
|
|
55
|
-
|
|
56
|
-
**Debt Score Calculation**:
|
|
57
|
-
- debt_score_after = debt items NOT in modified files (remaining unfixed items)
|
|
58
|
-
- improvement_percentage = ((before - after) / before) * 100
|
|
59
|
-
|
|
60
|
-
**Auto-fix attempt** (when total_regressions <= 3):
|
|
61
|
-
- Use CLI tool to fix regressions in worktree:
|
|
62
|
-
```
|
|
63
|
-
Bash({
|
|
64
|
-
command: `cd "${worktreePath}" && ccw cli -p "PURPOSE: Fix regressions found in validation
|
|
65
|
-
TASK: ${regressionDetails}
|
|
66
|
-
MODE: write
|
|
67
|
-
CONTEXT: @${modifiedFiles.join(' @')}
|
|
68
|
-
EXPECTED: Fixed regressions
|
|
69
|
-
CONSTRAINTS: Fix only regressions | Preserve debt cleanup changes | No suppressions" --tool gemini --mode write`,
|
|
70
|
-
run_in_background: false
|
|
71
|
-
})
|
|
72
|
-
```
|
|
73
|
-
- Re-run validation checks after fix attempt
|
|
74
|
-
})
|
|
75
|
-
```
|
|
76
|
-
- Re-run checks after fix attempt
|
|
77
|
-
|
|
78
|
-
## Phase 4: Compare & Report
|
|
79
|
-
|
|
80
|
-
1. Calculate: total_regressions = test_regressions + type_errors + lint_errors; passed = (total_regressions === 0)
|
|
81
|
-
2. Write `<session>/validation/validation-report.json` with: validation_date, passed, regressions, checks (per-check status), debt_score_before, debt_score_after, improvement_percentage
|
|
82
|
-
3. Update .msg/meta.json with `validation_results` and `debt_score_after`
|
|
83
|
-
4. Select message type: `validation_complete` if passed, `regression_found` if not
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: TESTANA
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: analysis_ready
|
|
6
|
-
error: error
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Test Quality Analyst
|
|
10
|
-
|
|
11
|
-
Analyze defect patterns, identify coverage gaps, assess GC loop effectiveness, and generate a quality report with actionable recommendations.
|
|
12
|
-
|
|
13
|
-
## Phase 2: Context Loading
|
|
14
|
-
|
|
15
|
-
| Input | Source | Required |
|
|
16
|
-
|-------|--------|----------|
|
|
17
|
-
| Task description | From task subject/description | Yes |
|
|
18
|
-
| Session path | Extracted from task description | Yes |
|
|
19
|
-
| Execution results | <session>/results/run-*.json | Yes |
|
|
20
|
-
| Test strategy | <session>/strategy/test-strategy.md | Yes |
|
|
21
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
|
|
22
|
-
|
|
23
|
-
1. Extract session path from task description
|
|
24
|
-
2. Read .msg/meta.json for execution context (executor, generator namespaces)
|
|
25
|
-
3. Read all execution results:
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
Glob("<session>/results/run-*.json")
|
|
29
|
-
Read("<session>/results/run-001.json")
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
4. Read test strategy:
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
Read("<session>/strategy/test-strategy.md")
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
5. Read test files for pattern analysis:
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
Glob("<session>/tests/**/*")
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Phase 3: Quality Analysis
|
|
45
|
-
|
|
46
|
-
**Analysis dimensions**:
|
|
47
|
-
|
|
48
|
-
1. **Coverage Analysis** -- Aggregate coverage by layer:
|
|
49
|
-
|
|
50
|
-
| Layer | Coverage | Target | Status |
|
|
51
|
-
|-------|----------|--------|--------|
|
|
52
|
-
| L1 | X% | Y% | Met/Below |
|
|
53
|
-
|
|
54
|
-
2. **Defect Pattern Analysis** -- Frequency and severity:
|
|
55
|
-
|
|
56
|
-
| Pattern | Frequency | Severity |
|
|
57
|
-
|---------|-----------|----------|
|
|
58
|
-
| pattern | count | HIGH (>=3) / MEDIUM (>=2) / LOW (<2) |
|
|
59
|
-
|
|
60
|
-
3. **GC Loop Effectiveness**:
|
|
61
|
-
|
|
62
|
-
| Metric | Value | Assessment |
|
|
63
|
-
|--------|-------|------------|
|
|
64
|
-
| Rounds | N | - |
|
|
65
|
-
| Coverage Improvement | +/-X% | HIGH (>10%) / MEDIUM (>5%) / LOW (<=5%) |
|
|
66
|
-
|
|
67
|
-
4. **Coverage Gaps** -- per module/feature:
|
|
68
|
-
- Area, Current %, Gap %, Reason, Recommendation
|
|
69
|
-
|
|
70
|
-
5. **Quality Score**:
|
|
71
|
-
|
|
72
|
-
| Dimension | Score (1-10) | Weight |
|
|
73
|
-
|-----------|-------------|--------|
|
|
74
|
-
| Coverage Achievement | score | 30% |
|
|
75
|
-
| Test Effectiveness | score | 25% |
|
|
76
|
-
| Defect Detection | score | 25% |
|
|
77
|
-
| GC Loop Efficiency | score | 20% |
|
|
78
|
-
|
|
79
|
-
Write report to `<session>/analysis/quality-report.md`
|
|
80
|
-
|
|
81
|
-
## Phase 4: Trend Analysis & State Update
|
|
82
|
-
|
|
83
|
-
**Historical comparison** (if multiple sessions exist):
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
Glob(".workflow/.team/TST-*/.msg/meta.json")
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
- Track coverage trends over time
|
|
90
|
-
- Identify defect pattern evolution
|
|
91
|
-
- Compare GC loop effectiveness across sessions
|
|
92
|
-
|
|
93
|
-
Update `<session>/wisdom/.msg/meta.json` under `analyst` namespace:
|
|
94
|
-
- Merge `{ "analyst": { quality_score, coverage_gaps, top_defect_patterns, gc_effectiveness, recommendations } }`
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: TESTRUN
|
|
3
|
-
inner_loop: true
|
|
4
|
-
message_types:
|
|
5
|
-
success: tests_passed
|
|
6
|
-
failure: tests_failed
|
|
7
|
-
coverage: coverage_report
|
|
8
|
-
error: error
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Test Executor
|
|
12
|
-
|
|
13
|
-
Execute tests, collect coverage, attempt auto-fix for failures. Acts as the Critic in the Generator-Critic loop. Reports pass rate and coverage for coordinator GC decisions.
|
|
14
|
-
|
|
15
|
-
## Phase 2: Context Loading
|
|
16
|
-
|
|
17
|
-
| Input | Source | Required |
|
|
18
|
-
|-------|--------|----------|
|
|
19
|
-
| Task description | From task subject/description | Yes |
|
|
20
|
-
| Session path | Extracted from task description | Yes |
|
|
21
|
-
| Test directory | Task description (Input: <path>) | Yes |
|
|
22
|
-
| Coverage target | Task description (default: 80%) | Yes |
|
|
23
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | No |
|
|
24
|
-
|
|
25
|
-
1. Extract session path and test directory from task description
|
|
26
|
-
2. Extract coverage target (default: 80%)
|
|
27
|
-
3. Read .msg/meta.json for framework info (from strategist namespace)
|
|
28
|
-
4. Determine test framework:
|
|
29
|
-
|
|
30
|
-
| Framework | Run Command |
|
|
31
|
-
|-----------|-------------|
|
|
32
|
-
| Jest | `npx jest --coverage --json --outputFile=<session>/results/jest-output.json` |
|
|
33
|
-
| Pytest | `python -m pytest --cov --cov-report=json:<session>/results/coverage.json -v` |
|
|
34
|
-
| Vitest | `npx vitest run --coverage --reporter=json` |
|
|
35
|
-
|
|
36
|
-
5. Find test files to execute:
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
Glob("<session>/<test-dir>/**/*")
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Phase 3: Test Execution + Fix Cycle
|
|
43
|
-
|
|
44
|
-
**Iterative test-fix cycle** (max 3 iterations):
|
|
45
|
-
|
|
46
|
-
| Step | Action |
|
|
47
|
-
|------|--------|
|
|
48
|
-
| 1 | Run test command |
|
|
49
|
-
| 2 | Parse results: pass rate + coverage |
|
|
50
|
-
| 3 | pass_rate >= 0.95 AND coverage >= target -> success, exit |
|
|
51
|
-
| 4 | Extract failing test details |
|
|
52
|
-
| 5 | Delegate fix to CLI tool (gemini write mode) |
|
|
53
|
-
| 6 | Increment iteration; >= 3 -> exit with failures |
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
Bash("<test-command> 2>&1 || true")
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
**Auto-fix delegation** (on failure):
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
Bash({
|
|
63
|
-
command: `ccw cli -p "PURPOSE: Fix test failures to achieve pass rate >= 0.95; success = all tests pass
|
|
64
|
-
TASK: • Analyze test failure output • Identify root causes • Fix test code only (not source) • Preserve test intent
|
|
65
|
-
MODE: write
|
|
66
|
-
CONTEXT: @<session>/<test-dir>/**/* | Memory: Test framework: <framework>, iteration <N>/3
|
|
67
|
-
EXPECTED: Fixed test files with: corrected assertions, proper async handling, fixed imports, maintained coverage
|
|
68
|
-
CONSTRAINTS: Only modify test files | Preserve test structure | No source code changes
|
|
69
|
-
Test failures:
|
|
70
|
-
<test-output>" --tool gemini --mode write --cd <session>`,
|
|
71
|
-
run_in_background: false
|
|
72
|
-
})
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
**Save results**: `<session>/results/run-<N>.json`
|
|
76
|
-
|
|
77
|
-
## Phase 4: Defect Pattern Extraction & State Update
|
|
78
|
-
|
|
79
|
-
**Extract defect patterns from failures**:
|
|
80
|
-
|
|
81
|
-
| Pattern Type | Detection Keywords |
|
|
82
|
-
|--------------|-------------------|
|
|
83
|
-
| Null reference | "null", "undefined", "Cannot read property" |
|
|
84
|
-
| Async timing | "timeout", "async", "await", "promise" |
|
|
85
|
-
| Import errors | "Cannot find module", "import" |
|
|
86
|
-
| Type mismatches | "type", "expected", "received" |
|
|
87
|
-
|
|
88
|
-
**Record effective test patterns** (if pass_rate > 0.8):
|
|
89
|
-
|
|
90
|
-
| Pattern | Detection |
|
|
91
|
-
|---------|-----------|
|
|
92
|
-
| Happy path | "should succeed", "valid input" |
|
|
93
|
-
| Edge cases | "edge", "boundary", "limit" |
|
|
94
|
-
| Error handling | "should fail", "error", "throw" |
|
|
95
|
-
|
|
96
|
-
Update `<session>/wisdom/.msg/meta.json` under `executor` namespace:
|
|
97
|
-
- Merge `{ "executor": { pass_rate, coverage, defect_patterns, effective_patterns, coverage_history_entry } }`
|