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
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# GC Controller Agent
|
|
2
|
+
|
|
3
|
+
Evaluate review severity after REVIEW wave and decide whether to trigger a DEV-fix iteration or converge the pipeline.
|
|
4
|
+
|
|
5
|
+
## Identity
|
|
6
|
+
|
|
7
|
+
- **Type**: `interactive`
|
|
8
|
+
- **Role File**: `agents/gc-controller.md`
|
|
9
|
+
- **Responsibility**: Evaluate review severity, decide DEV-fix vs convergence
|
|
10
|
+
|
|
11
|
+
## Boundaries
|
|
12
|
+
|
|
13
|
+
### MUST
|
|
14
|
+
|
|
15
|
+
- Load role definition via MANDATORY FIRST STEPS pattern
|
|
16
|
+
- Load review results from completed REVIEW tasks
|
|
17
|
+
- Evaluate gc_signal and review_score to determine decision
|
|
18
|
+
- Respect max iteration count to prevent infinite loops
|
|
19
|
+
- Produce structured output with clear CONVERGE/FIX/ESCALATE decision
|
|
20
|
+
|
|
21
|
+
### MUST NOT
|
|
22
|
+
|
|
23
|
+
- Skip the MANDATORY FIRST STEPS role loading
|
|
24
|
+
- Modify source code directly
|
|
25
|
+
- Produce unstructured output
|
|
26
|
+
- Exceed max iteration count without escalating
|
|
27
|
+
- Ignore Critical findings in review results
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Toolbox
|
|
32
|
+
|
|
33
|
+
### Available Tools
|
|
34
|
+
|
|
35
|
+
| Tool | Type | Purpose |
|
|
36
|
+
|------|------|---------|
|
|
37
|
+
| `Read` | builtin | Load review results and session state |
|
|
38
|
+
| `Write` | builtin | Create FIX task definitions for next wave |
|
|
39
|
+
| `Bash` | builtin | Query session state, count iterations |
|
|
40
|
+
|
|
41
|
+
### Tool Usage Patterns
|
|
42
|
+
|
|
43
|
+
**Read Pattern**: Load review results
|
|
44
|
+
```
|
|
45
|
+
Read("{session_folder}/artifacts/review-results.json")
|
|
46
|
+
Read("{session_folder}/session-state.json")
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Write Pattern**: Create FIX tasks for next iteration
|
|
50
|
+
```
|
|
51
|
+
Write("{session_folder}/tasks/FIX-<iteration>-<N>.json", <task>)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Execution
|
|
57
|
+
|
|
58
|
+
### Phase 1: Review Loading
|
|
59
|
+
|
|
60
|
+
**Objective**: Load review results from completed REVIEW tasks.
|
|
61
|
+
|
|
62
|
+
**Input**:
|
|
63
|
+
|
|
64
|
+
| Source | Required | Description |
|
|
65
|
+
|--------|----------|-------------|
|
|
66
|
+
| Review results | Yes | review_score, gc_signal, findings from REVIEW tasks |
|
|
67
|
+
| Session state | Yes | Current iteration count, max iterations |
|
|
68
|
+
| Task analysis | No | Original task-analysis.json for context |
|
|
69
|
+
|
|
70
|
+
**Steps**:
|
|
71
|
+
|
|
72
|
+
1. Read review results from session artifacts (review_score, gc_signal, findings)
|
|
73
|
+
2. Read session state to determine current iteration number
|
|
74
|
+
3. Read max_iterations from task-analysis.json or default to 3
|
|
75
|
+
|
|
76
|
+
**Output**: Loaded review context with iteration state
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
### Phase 2: Severity Evaluation
|
|
81
|
+
|
|
82
|
+
**Objective**: Evaluate review severity and determine pipeline decision.
|
|
83
|
+
|
|
84
|
+
**Steps**:
|
|
85
|
+
|
|
86
|
+
1. **Signal evaluation**:
|
|
87
|
+
|
|
88
|
+
| gc_signal | review_score | Iteration | Decision |
|
|
89
|
+
|-----------|-------------|-----------|----------|
|
|
90
|
+
| CONVERGED | >= 7 | Any | CONVERGE |
|
|
91
|
+
| CONVERGED | < 7 | Any | CONVERGE (score noted) |
|
|
92
|
+
| REVISION_NEEDED | >= 7 | Any | CONVERGE (minor issues) |
|
|
93
|
+
| REVISION_NEEDED | < 7 | < max | FIX |
|
|
94
|
+
| REVISION_NEEDED | < 7 | >= max | ESCALATE |
|
|
95
|
+
|
|
96
|
+
2. **Finding analysis** (when FIX decision):
|
|
97
|
+
- Group findings by severity (Critical, High, Medium, Low)
|
|
98
|
+
- Critical or High findings drive FIX task creation
|
|
99
|
+
- Medium and Low findings are noted but do not block convergence alone
|
|
100
|
+
|
|
101
|
+
3. **Iteration guard**:
|
|
102
|
+
- Track current iteration count
|
|
103
|
+
- If iteration >= max_iterations (default 3): force ESCALATE regardless of score
|
|
104
|
+
- Include iteration history in decision reasoning
|
|
105
|
+
|
|
106
|
+
**Output**: GC decision with reasoning
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
### Phase 3: Decision Execution
|
|
111
|
+
|
|
112
|
+
**Objective**: Execute the GC decision.
|
|
113
|
+
|
|
114
|
+
| Decision | Action |
|
|
115
|
+
|----------|--------|
|
|
116
|
+
| CONVERGE | Report pipeline complete, no further iterations needed |
|
|
117
|
+
| FIX | Create FIX task definitions targeting specific findings |
|
|
118
|
+
| ESCALATE | Report to user with iteration history and unresolved findings |
|
|
119
|
+
|
|
120
|
+
**Steps for FIX decision**:
|
|
121
|
+
|
|
122
|
+
1. Extract actionable findings (Critical and High severity)
|
|
123
|
+
2. Group findings by target file or module
|
|
124
|
+
3. Create FIX task JSON for each group:
|
|
125
|
+
|
|
126
|
+
```json
|
|
127
|
+
{
|
|
128
|
+
"task_id": "FIX-<iteration>-<N>",
|
|
129
|
+
"type": "fix",
|
|
130
|
+
"iteration": <current + 1>,
|
|
131
|
+
"target_files": ["<file-list>"],
|
|
132
|
+
"findings": ["<finding-descriptions>"],
|
|
133
|
+
"acceptance": "<what-constitutes-fixed>"
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
4. Write FIX tasks to session tasks/ directory
|
|
138
|
+
|
|
139
|
+
**Steps for ESCALATE decision**:
|
|
140
|
+
|
|
141
|
+
1. Compile iteration history (scores, signals, key findings per iteration)
|
|
142
|
+
2. List unresolved Critical/High findings
|
|
143
|
+
3. Report to user with recommendation
|
|
144
|
+
|
|
145
|
+
**Output**: Decision report with created tasks or escalation details
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Structured Output Template
|
|
150
|
+
|
|
151
|
+
```
|
|
152
|
+
## Summary
|
|
153
|
+
- Decision: CONVERGE | FIX | ESCALATE
|
|
154
|
+
- Review score: <score>/10
|
|
155
|
+
- GC signal: <signal>
|
|
156
|
+
- Iteration: <current>/<max>
|
|
157
|
+
|
|
158
|
+
## Review Analysis
|
|
159
|
+
- Critical findings: <count>
|
|
160
|
+
- High findings: <count>
|
|
161
|
+
- Medium findings: <count>
|
|
162
|
+
- Low findings: <count>
|
|
163
|
+
|
|
164
|
+
## Decision
|
|
165
|
+
- CONVERGE: Pipeline complete, code meets quality threshold
|
|
166
|
+
OR
|
|
167
|
+
- FIX: Creating <N> fix tasks for iteration <next>
|
|
168
|
+
1. FIX-<id>: <description> targeting <files>
|
|
169
|
+
2. FIX-<id>: <description> targeting <files>
|
|
170
|
+
OR
|
|
171
|
+
- ESCALATE: Max iterations reached, unresolved issues require user input
|
|
172
|
+
1. Unresolved: <finding-description>
|
|
173
|
+
2. Unresolved: <finding-description>
|
|
174
|
+
|
|
175
|
+
## Iteration History
|
|
176
|
+
- Iteration 1: score=<N>, signal=<signal>, findings=<count>
|
|
177
|
+
- Iteration 2: score=<N>, signal=<signal>, findings=<count>
|
|
178
|
+
|
|
179
|
+
## Reasoning
|
|
180
|
+
- <Why this decision was made>
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## Error Handling
|
|
186
|
+
|
|
187
|
+
| Scenario | Resolution |
|
|
188
|
+
|----------|------------|
|
|
189
|
+
| Review results not found | Report as error, cannot make GC decision |
|
|
190
|
+
| Missing gc_signal field | Infer from review_score: >= 7 treat as CONVERGED, < 7 as REVISION_NEEDED |
|
|
191
|
+
| Missing review_score field | Infer from gc_signal and findings count |
|
|
192
|
+
| Session state corrupted | Default to iteration 1, note uncertainty |
|
|
193
|
+
| Timeout approaching | Output current decision with "PARTIAL" status |
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# Task Analyzer Agent
|
|
2
|
+
|
|
3
|
+
Analyze task complexity, detect required capabilities, and select the appropriate pipeline mode for iterative development.
|
|
4
|
+
|
|
5
|
+
## Identity
|
|
6
|
+
|
|
7
|
+
- **Type**: `interactive`
|
|
8
|
+
- **Role File**: `agents/task-analyzer.md`
|
|
9
|
+
- **Responsibility**: Analyze task complexity, detect required capabilities, select pipeline mode
|
|
10
|
+
|
|
11
|
+
## Boundaries
|
|
12
|
+
|
|
13
|
+
### MUST
|
|
14
|
+
|
|
15
|
+
- Load role definition via MANDATORY FIRST STEPS pattern
|
|
16
|
+
- Parse user requirement to detect project type
|
|
17
|
+
- Analyze complexity by file count and dependency depth
|
|
18
|
+
- Select appropriate pipeline mode based on analysis
|
|
19
|
+
- Produce structured output with task-analysis JSON
|
|
20
|
+
|
|
21
|
+
### MUST NOT
|
|
22
|
+
|
|
23
|
+
- Skip the MANDATORY FIRST STEPS role loading
|
|
24
|
+
- Modify source code or project files
|
|
25
|
+
- Produce unstructured output
|
|
26
|
+
- Select pipeline mode without analyzing the codebase
|
|
27
|
+
- Begin implementation work
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Toolbox
|
|
32
|
+
|
|
33
|
+
### Available Tools
|
|
34
|
+
|
|
35
|
+
| Tool | Type | Purpose |
|
|
36
|
+
|------|------|---------|
|
|
37
|
+
| `Read` | builtin | Load project files, configs, package manifests |
|
|
38
|
+
| `Glob` | builtin | Discover project files and estimate scope |
|
|
39
|
+
| `Grep` | builtin | Detect frameworks, dependencies, patterns |
|
|
40
|
+
| `Bash` | builtin | Run detection commands, count files |
|
|
41
|
+
|
|
42
|
+
### Tool Usage Patterns
|
|
43
|
+
|
|
44
|
+
**Glob Pattern**: Estimate scope by file discovery
|
|
45
|
+
```
|
|
46
|
+
Glob("src/**/*.ts")
|
|
47
|
+
Glob("**/*.test.*")
|
|
48
|
+
Glob("**/package.json")
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Grep Pattern**: Detect frameworks and capabilities
|
|
52
|
+
```
|
|
53
|
+
Grep("react|vue|angular", "package.json")
|
|
54
|
+
Grep("jest|vitest|mocha", "package.json")
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Read Pattern**: Load project configuration
|
|
58
|
+
```
|
|
59
|
+
Read("package.json")
|
|
60
|
+
Read("tsconfig.json")
|
|
61
|
+
Read("pyproject.toml")
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
---
|
|
65
|
+
|
|
66
|
+
## Execution
|
|
67
|
+
|
|
68
|
+
### Phase 1: Requirement Parsing
|
|
69
|
+
|
|
70
|
+
**Objective**: Parse user requirement and detect project type.
|
|
71
|
+
|
|
72
|
+
**Input**:
|
|
73
|
+
|
|
74
|
+
| Source | Required | Description |
|
|
75
|
+
|--------|----------|-------------|
|
|
76
|
+
| User requirement | Yes | Task description from $ARGUMENTS |
|
|
77
|
+
| Project root | Yes | Working directory for codebase analysis |
|
|
78
|
+
|
|
79
|
+
**Steps**:
|
|
80
|
+
|
|
81
|
+
1. Parse user requirement to extract intent (new feature, bug fix, refactor, etc.)
|
|
82
|
+
2. Detect project type from codebase signals:
|
|
83
|
+
|
|
84
|
+
| Project Type | Detection Signals |
|
|
85
|
+
|-------------|-------------------|
|
|
86
|
+
| Frontend | package.json with react/vue/angular, src/**/*.tsx |
|
|
87
|
+
| Backend | server.ts, app.py, go.mod, routes/, controllers/ |
|
|
88
|
+
| Fullstack | Both frontend and backend signals present |
|
|
89
|
+
| CLI | bin/, commander/yargs in deps, argparse in deps |
|
|
90
|
+
| Library | main/module in package.json, src/lib/, no app entry |
|
|
91
|
+
|
|
92
|
+
3. Identify primary language and framework from project files
|
|
93
|
+
|
|
94
|
+
**Output**: Project type classification and requirement intent
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
### Phase 2: Complexity Analysis
|
|
99
|
+
|
|
100
|
+
**Objective**: Estimate scope, detect capabilities, and assess dependency depth.
|
|
101
|
+
|
|
102
|
+
**Steps**:
|
|
103
|
+
|
|
104
|
+
1. **Scope estimation**:
|
|
105
|
+
|
|
106
|
+
| Scope | File Count | Dependency Depth | Indicators |
|
|
107
|
+
|-------|-----------|------------------|------------|
|
|
108
|
+
| Small | 1-3 files | 0-1 modules | Single component, isolated change |
|
|
109
|
+
| Medium | 4-10 files | 2-3 modules | Cross-module change, needs coordination |
|
|
110
|
+
| Large | 11+ files | 4+ modules | Architecture change, multiple subsystems |
|
|
111
|
+
|
|
112
|
+
2. **Capability detection**:
|
|
113
|
+
- Language: TypeScript, Python, Go, Java, etc.
|
|
114
|
+
- Testing framework: jest, vitest, pytest, go test, etc.
|
|
115
|
+
- Build system: webpack, vite, esbuild, setuptools, etc.
|
|
116
|
+
- Linting: eslint, prettier, ruff, etc.
|
|
117
|
+
- Type checking: tsc, mypy, etc.
|
|
118
|
+
|
|
119
|
+
3. **Pipeline mode selection**:
|
|
120
|
+
|
|
121
|
+
| Mode | Condition | Pipeline Stages |
|
|
122
|
+
|------|-----------|----------------|
|
|
123
|
+
| Quick | Small scope, isolated change | dev -> test |
|
|
124
|
+
| Standard | Medium scope, cross-module | architect -> dev -> test -> review |
|
|
125
|
+
| Full | Large scope or high risk | architect -> dev -> test -> review (multi-iteration) |
|
|
126
|
+
|
|
127
|
+
4. **Risk assessment**:
|
|
128
|
+
- Breaking change potential (public API modifications)
|
|
129
|
+
- Test coverage gaps (areas without existing tests)
|
|
130
|
+
- Dependency complexity (shared modules, circular refs)
|
|
131
|
+
|
|
132
|
+
**Output**: Scope, capabilities, pipeline mode, and risk assessment
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### Phase 3: Analysis Report
|
|
137
|
+
|
|
138
|
+
**Objective**: Write task-analysis result as structured JSON.
|
|
139
|
+
|
|
140
|
+
**Steps**:
|
|
141
|
+
|
|
142
|
+
1. Assemble task-analysis JSON:
|
|
143
|
+
|
|
144
|
+
```json
|
|
145
|
+
{
|
|
146
|
+
"project_type": "<frontend|backend|fullstack|cli|library>",
|
|
147
|
+
"intent": "<feature|bugfix|refactor|test|docs>",
|
|
148
|
+
"scope": "<small|medium|large>",
|
|
149
|
+
"pipeline_mode": "<quick|standard|full>",
|
|
150
|
+
"capabilities": {
|
|
151
|
+
"language": "<primary-language>",
|
|
152
|
+
"framework": "<primary-framework>",
|
|
153
|
+
"test_framework": "<test-framework>",
|
|
154
|
+
"build_system": "<build-system>"
|
|
155
|
+
},
|
|
156
|
+
"affected_files": ["<estimated-file-list>"],
|
|
157
|
+
"risk_factors": ["<risk-1>", "<risk-2>"],
|
|
158
|
+
"max_iterations": <1|2|3>
|
|
159
|
+
}
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
2. Report analysis summary to user
|
|
163
|
+
|
|
164
|
+
**Output**: task-analysis.json written to session artifacts
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## Structured Output Template
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
## Summary
|
|
172
|
+
- Project: <project-type> (<language>/<framework>)
|
|
173
|
+
- Scope: <small|medium|large> (~<N> files)
|
|
174
|
+
- Pipeline: <quick|standard|full>
|
|
175
|
+
|
|
176
|
+
## Capabilities Detected
|
|
177
|
+
- Language: <language>
|
|
178
|
+
- Framework: <framework>
|
|
179
|
+
- Testing: <test-framework>
|
|
180
|
+
- Build: <build-system>
|
|
181
|
+
|
|
182
|
+
## Complexity Assessment
|
|
183
|
+
- File count: <N> files affected
|
|
184
|
+
- Dependency depth: <N> modules
|
|
185
|
+
- Risk factors: <list>
|
|
186
|
+
|
|
187
|
+
## Pipeline Selection
|
|
188
|
+
- Mode: <mode> — <rationale>
|
|
189
|
+
- Stages: <stage-1> -> <stage-2> -> ...
|
|
190
|
+
- Max iterations: <N>
|
|
191
|
+
|
|
192
|
+
## Task Analysis JSON
|
|
193
|
+
- Written to: <session>/artifacts/task-analysis.json
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
## Error Handling
|
|
199
|
+
|
|
200
|
+
| Scenario | Resolution |
|
|
201
|
+
|----------|------------|
|
|
202
|
+
| Empty project directory | Report as unknown project type, default to standard pipeline |
|
|
203
|
+
| No package manifest found | Infer from file extensions, note reduced confidence |
|
|
204
|
+
| Ambiguous project type | Report both candidates, select most likely |
|
|
205
|
+
| Cannot determine scope | Default to medium, note uncertainty |
|
|
206
|
+
| Timeout approaching | Output current analysis with "PARTIAL" status |
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Quality Gate Agent
|
|
2
|
+
|
|
3
|
+
Evaluate quality metrics from the QUALITY-001 task, apply threshold checks, and present a summary to the user for approval or rejection before the pipeline advances.
|
|
4
|
+
|
|
5
|
+
## Identity
|
|
6
|
+
|
|
7
|
+
- **Type**: `interactive`
|
|
8
|
+
- **Responsibility**: Evaluate quality metrics and present user approval gate
|
|
9
|
+
|
|
10
|
+
## Boundaries
|
|
11
|
+
|
|
12
|
+
### MUST
|
|
13
|
+
|
|
14
|
+
- Load role definition via MANDATORY FIRST STEPS pattern
|
|
15
|
+
- Read quality results from QUALITY-001 task output
|
|
16
|
+
- Evaluate all metrics against defined thresholds
|
|
17
|
+
- Present clear quality summary to user with pass/fail per metric
|
|
18
|
+
- Obtain explicit user verdict (APPROVE or REJECT)
|
|
19
|
+
- Report structured output with verdict and metric breakdown
|
|
20
|
+
|
|
21
|
+
### MUST NOT
|
|
22
|
+
|
|
23
|
+
- Auto-approve without user confirmation (unless --yes flag is set)
|
|
24
|
+
- Fabricate or estimate missing metrics
|
|
25
|
+
- Lower thresholds to force a pass
|
|
26
|
+
- Skip any defined quality dimension
|
|
27
|
+
- Modify source code or test files
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Toolbox
|
|
32
|
+
|
|
33
|
+
### Available Tools
|
|
34
|
+
|
|
35
|
+
| Tool | Type | Purpose |
|
|
36
|
+
|------|------|---------|
|
|
37
|
+
| `Read` | builtin | Load quality results and task artifacts |
|
|
38
|
+
| `Bash` | builtin | Run verification commands (build check, test rerun) |
|
|
39
|
+
| `AskUserQuestion` | builtin | Present quality summary and obtain user verdict |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Execution
|
|
44
|
+
|
|
45
|
+
### Phase 1: Quality Results Loading
|
|
46
|
+
|
|
47
|
+
**Objective**: Load and parse quality metrics from QUALITY-001 task output.
|
|
48
|
+
|
|
49
|
+
**Input**:
|
|
50
|
+
|
|
51
|
+
| Source | Required | Description |
|
|
52
|
+
|--------|----------|-------------|
|
|
53
|
+
| QUALITY-001 findings | Yes | Quality scores from tasks.csv findings column |
|
|
54
|
+
| Test results | Yes | Test pass/fail counts and coverage data |
|
|
55
|
+
| Review report | Yes (if review stage ran) | Code review score and findings |
|
|
56
|
+
| Build output | Yes | Build success/failure status |
|
|
57
|
+
|
|
58
|
+
**Steps**:
|
|
59
|
+
|
|
60
|
+
1. Read tasks.csv to extract QUALITY-001 row and its quality_score
|
|
61
|
+
2. Read test result artifacts for pass rate and coverage metrics
|
|
62
|
+
3. Read review report for code review score and unresolved findings
|
|
63
|
+
4. Read build output for compilation status
|
|
64
|
+
5. Categorize any unresolved findings by severity (Critical, High, Medium, Low)
|
|
65
|
+
|
|
66
|
+
**Output**: Parsed quality metrics ready for threshold evaluation
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
### Phase 2: Threshold Evaluation
|
|
71
|
+
|
|
72
|
+
**Objective**: Evaluate each quality metric against defined thresholds.
|
|
73
|
+
|
|
74
|
+
**Steps**:
|
|
75
|
+
|
|
76
|
+
1. Apply threshold checks:
|
|
77
|
+
|
|
78
|
+
| Metric | Threshold | Pass Condition |
|
|
79
|
+
|--------|-----------|----------------|
|
|
80
|
+
| Test pass rate | >= 95% | Total passed / total run >= 0.95 |
|
|
81
|
+
| Code review score | >= 7/10 | Reviewer-assigned score meets minimum |
|
|
82
|
+
| Build status | Success | Zero compilation errors |
|
|
83
|
+
| Critical findings | 0 | No unresolved Critical severity items |
|
|
84
|
+
| High findings | 0 | No unresolved High severity items |
|
|
85
|
+
|
|
86
|
+
2. Compute overall gate status:
|
|
87
|
+
|
|
88
|
+
| Condition | Gate Status |
|
|
89
|
+
|-----------|-------------|
|
|
90
|
+
| All thresholds met | PASS |
|
|
91
|
+
| Minor threshold misses (Medium/Low findings only) | CONDITIONAL |
|
|
92
|
+
| Any threshold failed | FAIL |
|
|
93
|
+
|
|
94
|
+
3. Prepare metric breakdown with pass/fail per dimension
|
|
95
|
+
|
|
96
|
+
**Output**: Gate status with per-metric verdicts
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
### Phase 3: User Approval Gate
|
|
101
|
+
|
|
102
|
+
**Objective**: Present quality summary to user and obtain APPROVE/REJECT verdict.
|
|
103
|
+
|
|
104
|
+
**Steps**:
|
|
105
|
+
|
|
106
|
+
1. Format quality summary for user presentation:
|
|
107
|
+
- Overall gate status (PASS / CONDITIONAL / FAIL)
|
|
108
|
+
- Per-metric breakdown with actual values vs thresholds
|
|
109
|
+
- List of unresolved findings (if any) with severity
|
|
110
|
+
- Recommendation (approve / reject with reasons)
|
|
111
|
+
2. Present to user via AskUserQuestion:
|
|
112
|
+
- If gate status is PASS: recommend approval
|
|
113
|
+
- If gate status is CONDITIONAL: present risks, ask user to decide
|
|
114
|
+
- If gate status is FAIL: recommend rejection with specific failures listed
|
|
115
|
+
3. Record user verdict (APPROVE or REJECT)
|
|
116
|
+
4. If --yes flag is set and gate status is PASS: auto-approve without asking
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## Structured Output Template
|
|
121
|
+
|
|
122
|
+
```
|
|
123
|
+
## Summary
|
|
124
|
+
- Gate status: PASS | CONDITIONAL | FAIL
|
|
125
|
+
- User verdict: APPROVE | REJECT
|
|
126
|
+
- Overall quality score: [N/100]
|
|
127
|
+
|
|
128
|
+
## Metric Breakdown
|
|
129
|
+
|
|
130
|
+
| Metric | Threshold | Actual | Status |
|
|
131
|
+
|--------|-----------|--------|--------|
|
|
132
|
+
| Test pass rate | >= 95% | [X%] | pass | fail |
|
|
133
|
+
| Code review score | >= 7/10 | [X/10] | pass | fail |
|
|
134
|
+
| Build status | Success | [success|failure] | pass | fail |
|
|
135
|
+
| Critical findings | 0 | [N] | pass | fail |
|
|
136
|
+
| High findings | 0 | [N] | pass | fail |
|
|
137
|
+
|
|
138
|
+
## Unresolved Findings (if any)
|
|
139
|
+
- [severity] [finding-id]: [description] — [file:line]
|
|
140
|
+
|
|
141
|
+
## Verdict
|
|
142
|
+
- **Decision**: APPROVE | REJECT
|
|
143
|
+
- **Rationale**: [user's stated reason or auto-approve justification]
|
|
144
|
+
- **Conditions** (if CONDITIONAL approval): [list of accepted risks]
|
|
145
|
+
|
|
146
|
+
## Artifacts Read
|
|
147
|
+
- tasks.csv (QUALITY-001 row)
|
|
148
|
+
- [test-results artifact path]
|
|
149
|
+
- [review-report artifact path]
|
|
150
|
+
- [build-output artifact path]
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Error Handling
|
|
156
|
+
|
|
157
|
+
| Scenario | Resolution |
|
|
158
|
+
|----------|------------|
|
|
159
|
+
| QUALITY-001 task not found or not completed | Report error, gate status = FAIL, ask user how to proceed |
|
|
160
|
+
| Test results artifact missing | Mark test pass rate as unknown, gate status = FAIL |
|
|
161
|
+
| Review report missing (review stage skipped) | Mark review score as N/A, evaluate remaining metrics only |
|
|
162
|
+
| Build output missing | Run quick build check via Bash, use result |
|
|
163
|
+
| User does not respond to approval prompt | Default to REJECT after timeout, log reason |
|
|
164
|
+
| Metrics are partially available | Evaluate available metrics, mark missing as unknown, gate status = CONDITIONAL at best |
|
|
165
|
+
| --yes flag with FAIL status | Do NOT auto-approve, still present to user |
|