claude-code-workflow 7.2.10 → 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 +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/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,90 @@
|
|
|
1
|
+
# Synthesis Prompt Template
|
|
2
|
+
|
|
3
|
+
Phase 04 使用此模板构造 ccw cli 提示词,让 Gemini 综合所有步骤分析,产出跨步骤优化建议。
|
|
4
|
+
|
|
5
|
+
## Template
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
PURPOSE: Synthesize all step analyses into a holistic workflow optimization assessment. Evaluate cross-step concerns: ordering, handoff quality, redundancy, bottlenecks, and overall workflow coherence.
|
|
9
|
+
|
|
10
|
+
WORKFLOW OVERVIEW:
|
|
11
|
+
Name: ${workflowName}
|
|
12
|
+
Goal: ${workflowContext}
|
|
13
|
+
Steps: ${stepCount}
|
|
14
|
+
Average Quality: ${avgScore}/100
|
|
15
|
+
Weakest Step: ${minScore}/100
|
|
16
|
+
Total Issues: ${totalIssues} (${totalHighIssues} high severity)
|
|
17
|
+
|
|
18
|
+
SCORE SUMMARY:
|
|
19
|
+
${scoreSummary}
|
|
20
|
+
|
|
21
|
+
COMPLETE PROCESS LOG:
|
|
22
|
+
${processLog}
|
|
23
|
+
|
|
24
|
+
DETAILED STEP ANALYSES:
|
|
25
|
+
${stepAnalyses}
|
|
26
|
+
|
|
27
|
+
TASK:
|
|
28
|
+
1. **Workflow Coherence**: Do steps form a logical sequence? Any missing steps?
|
|
29
|
+
2. **Handoff Quality**: Are step outputs well-consumed by subsequent steps? Data format mismatches?
|
|
30
|
+
3. **Redundancy Detection**: Do any steps duplicate work? Overlapping concerns?
|
|
31
|
+
4. **Bottleneck Identification**: Which steps are bottlenecks (lowest quality, longest duration)?
|
|
32
|
+
5. **Step Ordering**: Would reordering steps improve outcomes?
|
|
33
|
+
6. **Missing Steps**: Are there gaps in the pipeline that need additional steps?
|
|
34
|
+
7. **Per-Step Optimization**: Top 3 improvements per underperforming step
|
|
35
|
+
8. **Workflow-Level Optimization**: Structural changes to the overall pipeline
|
|
36
|
+
|
|
37
|
+
EXPECTED OUTPUT (strict JSON, no markdown):
|
|
38
|
+
{
|
|
39
|
+
"workflow_score": <0-100>,
|
|
40
|
+
"coherence": {
|
|
41
|
+
"score": <0-100>,
|
|
42
|
+
"assessment": "<logical flow evaluation>",
|
|
43
|
+
"gaps": ["<missing step or transition>"]
|
|
44
|
+
},
|
|
45
|
+
"handoff_quality": {
|
|
46
|
+
"score": <0-100>,
|
|
47
|
+
"issues": [
|
|
48
|
+
{ "from_step": "<step name>", "to_step": "<step name>", "issue": "<description>", "fix": "<suggestion>" }
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
"redundancy": {
|
|
52
|
+
"found": <true|false>,
|
|
53
|
+
"items": [
|
|
54
|
+
{ "steps": ["<step1>", "<step2>"], "description": "<what overlaps>", "recommendation": "<merge or remove>" }
|
|
55
|
+
]
|
|
56
|
+
},
|
|
57
|
+
"bottlenecks": [
|
|
58
|
+
{ "step": "<step name>", "reason": "<why it's a bottleneck>", "impact": "high|medium|low", "fix": "<suggestion>" }
|
|
59
|
+
],
|
|
60
|
+
"ordering_suggestions": [
|
|
61
|
+
{ "current": "<current order description>", "proposed": "<new order>", "rationale": "<why>" }
|
|
62
|
+
],
|
|
63
|
+
"per_step_improvements": [
|
|
64
|
+
{ "step": "<step name>", "improvements": [
|
|
65
|
+
{ "priority": "high|medium|low", "description": "<what to change>", "rationale": "<why>" }
|
|
66
|
+
]}
|
|
67
|
+
],
|
|
68
|
+
"workflow_improvements": [
|
|
69
|
+
{ "priority": "high|medium|low", "category": "structure|handoff|performance|quality", "description": "<change>", "rationale": "<why>", "affected_steps": ["<step names>"] }
|
|
70
|
+
],
|
|
71
|
+
"summary": "<2-3 sentence executive summary of workflow health and top recommendations>"
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
CONSTRAINTS: Be specific, reference step names and artifact details, output ONLY JSON
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Variable Substitution
|
|
78
|
+
|
|
79
|
+
| Variable | Source | Description |
|
|
80
|
+
|----------|--------|-------------|
|
|
81
|
+
| `${workflowName}` | workflow-state.json | Workflow 名称 |
|
|
82
|
+
| `${workflowContext}` | workflow-state.json | Workflow 目标 |
|
|
83
|
+
| `${stepCount}` | workflow-state.json | 总步骤数 |
|
|
84
|
+
| `${avgScore}` | Phase 04 computes | 所有步骤平均分 |
|
|
85
|
+
| `${minScore}` | Phase 04 computes | 最低步骤分 |
|
|
86
|
+
| `${totalIssues}` | Phase 04 computes | 总问题数 |
|
|
87
|
+
| `${totalHighIssues}` | Phase 04 computes | 高优先级问题数 |
|
|
88
|
+
| `${scoreSummary}` | Phase 04 builds | 每步分数一行 |
|
|
89
|
+
| `${processLog}` | process-log.md | 完整过程日志 |
|
|
90
|
+
| `${stepAnalyses}` | Phase 04 reads | 所有 step-N-analysis.md 内容 |
|
|
@@ -96,6 +96,7 @@ Step 1: Topic Understanding
|
|
|
96
96
|
Step 2: Exploration (Inline, No Agents)
|
|
97
97
|
├─ Detect codebase → search relevant modules, patterns
|
|
98
98
|
│ ├─ Run `ccw spec load --category exploration` (if spec system available)
|
|
99
|
+
│ ├─ Run `ccw spec load --category debug` (known issues and root-cause notes)
|
|
99
100
|
│ └─ Use Grep, Glob, Read, mcp__ace-tool__search_context
|
|
100
101
|
├─ Multi-perspective analysis (if selected, serial)
|
|
101
102
|
│ ├─ Single: Comprehensive analysis
|
|
@@ -320,6 +321,7 @@ const hasCodebase = Bash(`
|
|
|
320
321
|
if (hasCodebase !== 'none') {
|
|
321
322
|
// 1. Read project metadata (if exists)
|
|
322
323
|
// - Run `ccw spec load --category exploration` (load project specs)
|
|
324
|
+
// - Run `ccw spec load --category debug` (known issues and root-cause notes)
|
|
323
325
|
// - .workflow/specs/*.md (project conventions)
|
|
324
326
|
|
|
325
327
|
// 2. Search codebase for relevant content
|
|
@@ -232,6 +232,7 @@ const agentId = spawn_agent({
|
|
|
232
232
|
### MANDATORY FIRST STEPS (Agent Execute)
|
|
233
233
|
1. **Read role definition**: ~/.codex/agents/{agent-type}.md (MUST read first)
|
|
234
234
|
2. Execute: ccw spec load --category exploration
|
|
235
|
+
3. Execute: ccw spec load --category debug (known issues cross-reference)
|
|
235
236
|
|
|
236
237
|
## TASK CONTEXT
|
|
237
238
|
${taskContext}
|
|
@@ -95,6 +95,7 @@ dimensions.forEach(dimension => {
|
|
|
95
95
|
4. Validate file access: bash(ls -la ${targetFiles.join(' ')})
|
|
96
96
|
5. Execute: cat ~/.ccw/workflows/cli-templates/schemas/review-dimension-results-schema.json (get output schema reference)
|
|
97
97
|
6. Execute: ccw spec load --category "exploration execution" (technology stack and constraints)
|
|
98
|
+
7. Execute: ccw spec load --category review (review standards and checklists)
|
|
98
99
|
|
|
99
100
|
---
|
|
100
101
|
|
|
@@ -217,6 +218,7 @@ dimensions.forEach(dimension => {
|
|
|
217
218
|
5. Read review state: ${reviewStateJsonPath}
|
|
218
219
|
6. Execute: cat ~/.ccw/workflows/cli-templates/schemas/review-dimension-results-schema.json (get output schema reference)
|
|
219
220
|
7. Execute: ccw spec load --category "exploration execution" (technology stack and constraints)
|
|
221
|
+
8. Execute: ccw spec load --category review (review standards and checklists)
|
|
220
222
|
|
|
221
223
|
---
|
|
222
224
|
|
|
@@ -335,6 +337,7 @@ const deepDiveAgentId = spawn_agent({
|
|
|
335
337
|
5. Read test files: bash(find ${projectDir}/tests -name "*${basename(file, '.ts')}*" -type f)
|
|
336
338
|
6. Execute: cat ~/.ccw/workflows/cli-templates/schemas/review-deep-dive-results-schema.json (get output schema reference)
|
|
337
339
|
7. Execute: ccw spec load --category "exploration execution" (technology stack and constraints for remediation)
|
|
340
|
+
8. Execute: ccw spec load --category review (review standards and checklists)
|
|
338
341
|
|
|
339
342
|
---
|
|
340
343
|
|
|
@@ -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 |
|