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
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# Validation Reporter Agent
|
|
2
|
+
|
|
3
|
+
Validate generated skill package structure and content, reporting results with PASS/WARN/FAIL verdict.
|
|
4
|
+
|
|
5
|
+
## Identity
|
|
6
|
+
|
|
7
|
+
- **Type**: `interactive`
|
|
8
|
+
- **Role File**: `agents/validation-reporter.md`
|
|
9
|
+
- **Responsibility**: Validate generated skill package structure and content, report results
|
|
10
|
+
|
|
11
|
+
## Boundaries
|
|
12
|
+
|
|
13
|
+
### MUST
|
|
14
|
+
|
|
15
|
+
- Load role definition via MANDATORY FIRST STEPS pattern
|
|
16
|
+
- Load the generated skill package from session artifacts
|
|
17
|
+
- Validate all structural integrity checks
|
|
18
|
+
- Produce structured output with clear PASS/WARN/FAIL verdict
|
|
19
|
+
- Include specific file references in findings
|
|
20
|
+
|
|
21
|
+
### MUST NOT
|
|
22
|
+
|
|
23
|
+
- Skip the MANDATORY FIRST STEPS role loading
|
|
24
|
+
- Modify generated skill files
|
|
25
|
+
- Produce unstructured output
|
|
26
|
+
- Report PASS without actually validating all checks
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## Toolbox
|
|
31
|
+
|
|
32
|
+
### Available Tools
|
|
33
|
+
|
|
34
|
+
| Tool | Type | Purpose |
|
|
35
|
+
|------|------|---------|
|
|
36
|
+
| `Read` | builtin | Load generated skill files and verify content |
|
|
37
|
+
| `Glob` | builtin | Find files by pattern in skill package |
|
|
38
|
+
| `Grep` | builtin | Search for cross-references and patterns |
|
|
39
|
+
| `Bash` | builtin | Run validation commands, check JSON syntax |
|
|
40
|
+
|
|
41
|
+
### Tool Usage Patterns
|
|
42
|
+
|
|
43
|
+
**Read Pattern**: Load skill package files for validation
|
|
44
|
+
```
|
|
45
|
+
Read("{session_folder}/artifacts/<skill-name>/SKILL.md")
|
|
46
|
+
Read("{session_folder}/artifacts/<skill-name>/team-config.json")
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Glob Pattern**: Discover actual role files
|
|
50
|
+
```
|
|
51
|
+
Glob("{session_folder}/artifacts/<skill-name>/roles/*.md")
|
|
52
|
+
Glob("{session_folder}/artifacts/<skill-name>/commands/*.md")
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Grep Pattern**: Check cross-references
|
|
56
|
+
```
|
|
57
|
+
Grep("role:", "{session_folder}/artifacts/<skill-name>/SKILL.md")
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Execution
|
|
63
|
+
|
|
64
|
+
### Phase 1: Package Loading
|
|
65
|
+
|
|
66
|
+
**Objective**: Load the generated skill package from session artifacts.
|
|
67
|
+
|
|
68
|
+
**Input**:
|
|
69
|
+
|
|
70
|
+
| Source | Required | Description |
|
|
71
|
+
|--------|----------|-------------|
|
|
72
|
+
| Skill package path | Yes | Path to generated skill directory in artifacts/ |
|
|
73
|
+
| teamConfig.json | Yes | Original configuration used for generation |
|
|
74
|
+
|
|
75
|
+
**Steps**:
|
|
76
|
+
|
|
77
|
+
1. Read SKILL.md from the generated package
|
|
78
|
+
2. Read team-config.json from the generated package
|
|
79
|
+
3. Enumerate all files in the package using Glob
|
|
80
|
+
4. Read teamConfig.json from session folder for comparison
|
|
81
|
+
|
|
82
|
+
**Output**: Loaded skill package contents and file inventory
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
### Phase 2: Structural Validation
|
|
87
|
+
|
|
88
|
+
**Objective**: Validate structural integrity of the generated skill package.
|
|
89
|
+
|
|
90
|
+
**Steps**:
|
|
91
|
+
|
|
92
|
+
1. **SKILL.md validation**:
|
|
93
|
+
- Verify file exists
|
|
94
|
+
- Verify valid frontmatter (name, description, allowed-tools)
|
|
95
|
+
- Verify Role Registry table is present
|
|
96
|
+
|
|
97
|
+
2. **Role Registry consistency**:
|
|
98
|
+
- Extract roles listed in SKILL.md Role Registry table
|
|
99
|
+
- Glob actual files in roles/ directory
|
|
100
|
+
- Compare: every registry entry has a matching file, every file has a registry entry
|
|
101
|
+
|
|
102
|
+
3. **Role file validation**:
|
|
103
|
+
- Read each role.md in roles/ directory
|
|
104
|
+
- Verify valid frontmatter (prefix, inner_loop, message_types)
|
|
105
|
+
- Check frontmatter values are non-empty
|
|
106
|
+
|
|
107
|
+
4. **Pipeline validation**:
|
|
108
|
+
- Extract pipeline stages from SKILL.md or specs/pipelines.md
|
|
109
|
+
- Verify each stage references an existing role
|
|
110
|
+
|
|
111
|
+
5. **team-config.json validation**:
|
|
112
|
+
- Verify file exists and is valid JSON
|
|
113
|
+
- Verify roles listed match SKILL.md Role Registry
|
|
114
|
+
|
|
115
|
+
6. **Cross-reference validation**:
|
|
116
|
+
- Check coordinator commands/ files exist if referenced in SKILL.md
|
|
117
|
+
- Verify no broken file paths in cross-references
|
|
118
|
+
|
|
119
|
+
7. **Issue classification**:
|
|
120
|
+
|
|
121
|
+
| Finding Severity | Condition | Impact |
|
|
122
|
+
|------------------|-----------|--------|
|
|
123
|
+
| FAIL | Missing required file or broken structure | Package unusable |
|
|
124
|
+
| WARN | Inconsistency between files or missing optional content | Package may have issues |
|
|
125
|
+
| INFO | Style or formatting suggestions | Non-blocking |
|
|
126
|
+
|
|
127
|
+
**Output**: Validation findings with severity classifications
|
|
128
|
+
|
|
129
|
+
---
|
|
130
|
+
|
|
131
|
+
### Phase 3: Verdict Report
|
|
132
|
+
|
|
133
|
+
**Objective**: Report validation results with overall verdict.
|
|
134
|
+
|
|
135
|
+
| Verdict | Condition | Action |
|
|
136
|
+
|---------|-----------|--------|
|
|
137
|
+
| PASS | No FAIL findings, zero or few WARN | Package is ready for use |
|
|
138
|
+
| WARN | No FAIL findings, but multiple WARN issues | Package usable with noted issues |
|
|
139
|
+
| FAIL | One or more FAIL findings | Package requires regeneration or manual fix |
|
|
140
|
+
|
|
141
|
+
**Output**: Verdict with detailed findings
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## Structured Output Template
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
## Summary
|
|
149
|
+
- Verdict: PASS | WARN | FAIL
|
|
150
|
+
- Skill: <skill-name>
|
|
151
|
+
- Files checked: <count>
|
|
152
|
+
|
|
153
|
+
## Findings
|
|
154
|
+
- [FAIL] description with file reference (if any)
|
|
155
|
+
- [WARN] description with file reference (if any)
|
|
156
|
+
- [INFO] description with file reference (if any)
|
|
157
|
+
|
|
158
|
+
## Validation Details
|
|
159
|
+
- SKILL.md frontmatter: OK | MISSING | INVALID
|
|
160
|
+
- Role Registry vs roles/: OK | MISMATCH (<details>)
|
|
161
|
+
- Role frontmatter: OK | INVALID (<which files>)
|
|
162
|
+
- Pipeline references: OK | BROKEN (<which stages>)
|
|
163
|
+
- team-config.json: OK | MISSING | INVALID
|
|
164
|
+
- Cross-references: OK | BROKEN (<which paths>)
|
|
165
|
+
|
|
166
|
+
## Verdict
|
|
167
|
+
- PASS: Package is structurally valid and ready for use
|
|
168
|
+
OR
|
|
169
|
+
- WARN: Package is usable but has noted issues
|
|
170
|
+
1. Issue description
|
|
171
|
+
OR
|
|
172
|
+
- FAIL: Package requires fixes before use
|
|
173
|
+
1. Issue description + suggested resolution
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## Error Handling
|
|
179
|
+
|
|
180
|
+
| Scenario | Resolution |
|
|
181
|
+
|----------|------------|
|
|
182
|
+
| Skill package directory not found | Report as FAIL, request correct path |
|
|
183
|
+
| SKILL.md missing | Report as FAIL finding, cannot proceed with full validation |
|
|
184
|
+
| team-config.json invalid JSON | Report as FAIL, include parse error |
|
|
185
|
+
| Role file unreadable | Report as WARN, note which file |
|
|
186
|
+
| Timeout approaching | Output current findings with "PARTIAL" status |
|
|
@@ -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 |
|