claude-code-workflow 7.2.10 → 7.2.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/agents/cli-planning-agent.md +3 -0
- package/.claude/agents/debug-explore-agent.md +1 -0
- package/.claude/agents/tdd-developer.md +1 -0
- package/.claude/agents/team-worker.md +1 -1
- package/.claude/agents/test-action-planning-agent.md +3 -0
- package/.claude/agents/test-context-search-agent.md +1 -0
- package/.claude/agents/test-fix-agent.md +3 -0
- package/.claude/commands/workflow/analyze-with-file.md +108 -54
- package/.claude/commands/workflow-tune.md +811 -0
- package/.claude/skills/review-code/SKILL.md +2 -0
- package/.claude/skills/review-cycle/SKILL.md +4 -0
- package/.claude/skills/skill-simplify/phases/02-optimize.md +4 -0
- package/.claude/skills/spec-generator/phases/05-epics-stories.md +4 -0
- package/.claude/skills/team-arch-opt/specs/team-config.json +5 -5
- package/.claude/skills/team-frontend-debug/roles/analyzer/role.md +3 -2
- package/.claude/skills/team-perf-opt/roles/coordinator/commands/monitor.md +1 -1
- package/.claude/skills/team-perf-opt/specs/team-config.json +5 -5
- package/.claude/skills/team-quality-assurance/roles/executor/role.md +2 -1
- package/.claude/skills/team-review/roles/reviewer/role.md +2 -1
- package/.claude/skills/team-tech-debt/roles/scanner/role.md +2 -1
- package/.claude/skills/team-testing/roles/executor/role.md +2 -1
- package/.claude/skills/team-testing/roles/generator/role.md +2 -1
- package/.claude/skills/team-ultra-analyze/roles/explorer/role.md +2 -1
- package/.claude/skills/team-ux-improve/specs/team-config.json +6 -6
- package/.claude/skills/workflow-execute/phases/06-review.md +4 -4
- package/.claude/skills/workflow-lite-execute/SKILL.md +106 -14
- package/.claude/skills/workflow-lite-plan/SKILL.md +34 -72
- package/.claude/skills/workflow-lite-test-review/SKILL.md +41 -26
- package/.claude/skills/workflow-plan/phases/05-plan-verify.md +4 -0
- package/.claude/skills/workflow-tdd-plan/phases/02-context-gathering.md +1 -0
- package/.claude/skills/workflow-tdd-plan/phases/05-tdd-task-generation.md +2 -1
- package/.claude/skills/workflow-test-fix/phases/02-test-context-gather.md +1 -0
- package/.claude/skills/workflow-test-fix/phases/05-test-cycle-execute.md +2 -1
- package/.codex/skills/analyze-with-file/SKILL.md +2 -0
- package/.codex/skills/debug-with-file/SKILL.md +4 -0
- package/.codex/skills/issue-discover/SKILL.md +1 -0
- package/.codex/skills/review-cycle/phases/02-parallel-review.md +3 -0
- package/.codex/skills/team-designer/agents/validation-reporter.md +186 -0
- package/.codex/skills/team-iterdev/agents/gc-controller.md +193 -0
- package/.codex/skills/team-iterdev/agents/task-analyzer.md +206 -0
- package/.codex/skills/team-lifecycle-v4/agents/quality-gate.md +165 -0
- package/.codex/skills/team-lifecycle-v4/agents/requirement-clarifier.md +163 -0
- package/.codex/skills/team-lifecycle-v4/agents/supervisor.md +182 -0
- package/.codex/skills/team-uidesign/agents/completion-handler.md +177 -0
- package/.codex/skills/team-uidesign/agents/gc-loop-handler.md +162 -0
- package/.codex/skills/workflow-test-fix-cycle/phases/01-test-fix-gen.md +4 -0
- package/.codex/skills/workflow-test-fix-cycle/phases/02-test-cycle-execute.md +2 -0
- package/ccw/dist/commands/spec.d.ts.map +1 -1
- package/ccw/dist/commands/spec.js +9 -4
- package/ccw/dist/commands/spec.js.map +1 -1
- package/ccw/dist/core/routes/codexlens-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/codexlens-routes.js +3 -1
- package/ccw/dist/core/routes/codexlens-routes.js.map +1 -1
- package/ccw/dist/tools/spec-index-builder.d.ts +8 -4
- package/ccw/dist/tools/spec-index-builder.d.ts.map +1 -1
- package/ccw/dist/tools/spec-index-builder.js +8 -4
- package/ccw/dist/tools/spec-index-builder.js.map +1 -1
- package/ccw/dist/tools/spec-init.d.ts +1 -1
- package/ccw/dist/tools/spec-init.d.ts.map +1 -1
- package/ccw/dist/tools/spec-init.js +127 -0
- package/ccw/dist/tools/spec-init.js.map +1 -1
- package/ccw/dist/tools/spec-loader.d.ts.map +1 -1
- package/ccw/dist/tools/spec-loader.js +2 -1
- package/ccw/dist/tools/spec-loader.js.map +1 -1
- package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js → AlertDialog-BW9jiZ-p.js} +2 -2
- package/ccw/frontend/dist/assets/{AlertDialog-gTMl4gSG.js.map → AlertDialog-BW9jiZ-p.js.map} +1 -1
- package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js → AnalysisPage-ds-w_nVO.js} +2 -2
- package/ccw/frontend/dist/assets/{AnalysisPage-Bc4p4SvJ.js.map → AnalysisPage-ds-w_nVO.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js → ApiSettingsPage-DlCbXxTz.js} +2 -2
- package/ccw/frontend/dist/assets/{ApiSettingsPage-CVK108u2.js.map → ApiSettingsPage-DlCbXxTz.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js → CliModeToggle-Dq3nL4fF.js} +2 -2
- package/ccw/frontend/dist/assets/{CliModeToggle-34Sjwl05.js.map → CliModeToggle-Dq3nL4fF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js → CliSessionSharePage-BNDkEE4u.js} +2 -2
- package/ccw/frontend/dist/assets/{CliSessionSharePage-bJZAYI38.js.map → CliSessionSharePage-BNDkEE4u.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js → CliViewerPage-ChM-uNx_.js} +2 -2
- package/ccw/frontend/dist/assets/{CliViewerPage-VYnQGjxU.js.map → CliViewerPage-ChM-uNx_.js.map} +1 -1
- package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js +2 -0
- package/ccw/frontend/dist/assets/CodexLensPage-DOcsYNQk.js.map +1 -0
- package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js → Collapsible-CRNbykXN.js} +2 -2
- package/ccw/frontend/dist/assets/{Collapsible-B_xd1Qbg.js.map → Collapsible-CRNbykXN.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js → CommandsManagerPage-C2JWcemF.js} +2 -2
- package/ccw/frontend/dist/assets/{CommandsManagerPage-Bjx1bPbH.js.map → CommandsManagerPage-C2JWcemF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js → DeepWikiPage-CvleOtJy.js} +2 -2
- package/ccw/frontend/dist/assets/{DeepWikiPage-EgHsHvAH.js.map → DeepWikiPage-CvleOtJy.js.map} +1 -1
- package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js → EndpointsPage-CMOWQG64.js} +2 -2
- package/ccw/frontend/dist/assets/{EndpointsPage-CuwpbCzK.js.map → EndpointsPage-CMOWQG64.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js → ExplorerPage-DaFPRlNo.js} +2 -2
- package/ccw/frontend/dist/assets/{ExplorerPage-cvlx0Zw0.js.map → ExplorerPage-DaFPRlNo.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js → FixSessionPage-CC4p04Az.js} +2 -2
- package/ccw/frontend/dist/assets/{FixSessionPage-C74-MPza.js.map → FixSessionPage-CC4p04Az.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js → FloatingFileBrowser-DROn1xZ5.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-x_-6y_n2.js.map → FloatingFileBrowser-DROn1xZ5.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js → FloatingPanel-CmL_yhDv.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingPanel-BGwmbJR1.js.map → FloatingPanel-CmL_yhDv.js.map} +1 -1
- package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js → GraphExplorerPage-DCV5ybKE.js} +2 -2
- package/ccw/frontend/dist/assets/{GraphExplorerPage-Bg5-aQxi.js.map → GraphExplorerPage-DCV5ybKE.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js → HistoryPage-D0fYQZgc.js} +2 -2
- package/ccw/frontend/dist/assets/{HistoryPage-C00fh0HE.js.map → HistoryPage-D0fYQZgc.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js → HookManagerPage-D2FuJfsM.js} +2 -2
- package/ccw/frontend/dist/assets/{HookManagerPage-CtVTB_ae.js.map → HookManagerPage-D2FuJfsM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js → InstallationsPage-tjklillZ.js} +2 -2
- package/ccw/frontend/dist/assets/{InstallationsPage-CYuMQDbC.js.map → InstallationsPage-tjklillZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js → IssueHubPage-E4JVrhO1.js} +2 -2
- package/ccw/frontend/dist/assets/{IssueHubPage-T_VSvUMh.js.map → IssueHubPage-E4JVrhO1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js → LiteTasksPage-aJuRoyLt.js} +2 -2
- package/ccw/frontend/dist/assets/{LiteTasksPage-DmcgvIvi.js.map → LiteTasksPage-aJuRoyLt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js → McpManagerPage-BJeuWJv1.js} +2 -2
- package/ccw/frontend/dist/assets/{McpManagerPage-C_a7QSKz.js.map → McpManagerPage-BJeuWJv1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js → MemoryPage-BI4FAXhs.js} +2 -2
- package/ccw/frontend/dist/assets/{MemoryPage-CWKmXY5k.js.map → MemoryPage-BI4FAXhs.js.map} +1 -1
- package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js → NotFoundPage-DD2svchp.js} +2 -2
- package/ccw/frontend/dist/assets/{NotFoundPage-B1duXK6r.js.map → NotFoundPage-DD2svchp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js → OrchestratorPage-FC__7yYa.js} +2 -2
- package/ccw/frontend/dist/assets/{OrchestratorPage-Ib9TM6HE.js.map → OrchestratorPage-FC__7yYa.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js → ProjectOverviewPage-DBB_-FzV.js} +2 -2
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-sXSWMbF8.js.map → ProjectOverviewPage-DBB_-FzV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js → PromptHistoryPage-BwOAvCH8.js} +2 -2
- package/ccw/frontend/dist/assets/{PromptHistoryPage-B6jaqG12.js.map → PromptHistoryPage-BwOAvCH8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js → ReviewSessionPage-Dd1-g_gp.js} +2 -2
- package/ccw/frontend/dist/assets/{ReviewSessionPage-D5qJyr3s.js.map → ReviewSessionPage-Dd1-g_gp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js → RulesManagerPage-B3RGdsKD.js} +2 -2
- package/ccw/frontend/dist/assets/{RulesManagerPage-DyawK8QE.js.map → RulesManagerPage-B3RGdsKD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js → SessionDetailPage-DM-W5R8K.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionDetailPage-Cym_RvC9.js.map → SessionDetailPage-DM-W5R8K.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js → SessionsPage-BVz1KCc7.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionsPage-Dkc1Hv8W.js.map → SessionsPage-BVz1KCc7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js → SettingsPage-ComW7EZS.js} +4 -4
- package/ccw/frontend/dist/assets/{SettingsPage-Rik9cUIj.js.map → SettingsPage-ComW7EZS.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js → SkillsManagerPage-CKom9XwV.js} +2 -2
- package/ccw/frontend/dist/assets/{SkillsManagerPage-BGDWYAyI.js.map → SkillsManagerPage-CKom9XwV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js → SpecsSettingsPage-DQz7WP2s.js} +2 -2
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-CTiA1DMP.js.map → SpecsSettingsPage-DQz7WP2s.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js → Switch-BPMdND9H.js} +2 -2
- package/ccw/frontend/dist/assets/{Switch-BgAFC-Wk.js.map → Switch-BPMdND9H.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js → TabsNavigation-qqt70VYL.js} +2 -2
- package/ccw/frontend/dist/assets/{TabsNavigation-drSnu5jn.js.map → TabsNavigation-qqt70VYL.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js → TaskDrawer-BqK_qiHX.js} +2 -2
- package/ccw/frontend/dist/assets/{TaskDrawer-ePC__6-P.js.map → TaskDrawer-BqK_qiHX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js → TeamPage-u5_i0Rgh.js} +2 -2
- package/ccw/frontend/dist/assets/{TeamPage-C6bdFWn8.js.map → TeamPage-u5_i0Rgh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js → TerminalDashboardPage-rUtC9e40.js} +2 -2
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-Zofi_DZM.js.map → TerminalDashboardPage-rUtC9e40.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js → archive-C3u8YNQF.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-Bza1KlB9.js.map → archive-C3u8YNQF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js → archive-restore-DfQ998g5.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-restore-CpsDm-cG.js.map → archive-restore-DfQ998g5.js.map} +1 -1
- package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js → arrow-right-BshJM9Po.js} +2 -2
- package/ccw/frontend/dist/assets/{arrow-right-CibG_LVO.js.map → arrow-right-BshJM9Po.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js → bookmark-plus-D03qJyOZ.js} +2 -2
- package/ccw/frontend/dist/assets/{bookmark-plus-BheO8EgG.js.map → bookmark-plus-D03qJyOZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js → bot-CyzWuwq0.js} +2 -2
- package/ccw/frontend/dist/assets/{bot-BlhM0Nl0.js.map → bot-CyzWuwq0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js → braces-BPgtyjsG.js} +2 -2
- package/ccw/frontend/dist/assets/{braces-Dqjg_eCO.js.map → braces-BPgtyjsG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js → circle-stop-Dix1AOmw.js} +2 -2
- package/ccw/frontend/dist/assets/{circle-stop-DYZSLYU0.js.map → circle-stop-Dix1AOmw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js → cpu-CCQ4Q0Zh.js} +2 -2
- package/ccw/frontend/dist/assets/{cpu-DWCyAOAv.js.map → cpu-CCQ4Q0Zh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js → ellipsis-vertical-BpTysg-Y.js} +2 -2
- package/ccw/frontend/dist/assets/{ellipsis-vertical-DIyoSEHx.js.map → ellipsis-vertical-BpTysg-Y.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js → eye-DGY1rAZs.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-DUy7aLEx.js.map → eye-DGY1rAZs.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js → eye-off-D8t3JfWG.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-off-CGRUVRDR.js.map → eye-off-D8t3JfWG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js → file-json-BAdJb0n8.js} +2 -2
- package/ccw/frontend/dist/assets/{file-json-BxLBtU9d.js.map → file-json-BAdJb0n8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js → file-text-DrJFiOUB.js} +2 -2
- package/ccw/frontend/dist/assets/{file-text-BoHsW2es.js.map → file-text-DrJFiOUB.js.map} +1 -1
- package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js → filter-CKqzYbz7.js} +2 -2
- package/ccw/frontend/dist/assets/{filter-B4vOqP6B.js.map → filter-CKqzYbz7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js → folder-CV8511y9.js} +2 -2
- package/ccw/frontend/dist/assets/{folder-BKhwCNFG.js.map → folder-CV8511y9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js → gauge-XKvmu_uU.js} +2 -2
- package/ccw/frontend/dist/assets/{gauge-Dgf64gkT.js.map → gauge-XKvmu_uU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js → globe-C56cDUzX.js} +2 -2
- package/ccw/frontend/dist/assets/{globe-Cus_S6Ux.js.map → globe-C56cDUzX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js → grid-3x3-Bya-suFW.js} +2 -2
- package/ccw/frontend/dist/assets/{grid-3x3-DM08hpAN.js.map → grid-3x3-Bya-suFW.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js → hard-drive-CmuTZpsB.js} +2 -2
- package/ccw/frontend/dist/assets/{hard-drive-eCtll84F.js.map → hard-drive-CmuTZpsB.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hash-Bd1RD285.js → hash-CRPT_tJQ.js} +2 -2
- package/ccw/frontend/dist/assets/{hash-Bd1RD285.js.map → hash-CRPT_tJQ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{history-eyyCQA6b.js → history-C1pJZQCL.js} +2 -2
- package/ccw/frontend/dist/assets/{history-eyyCQA6b.js.map → history-C1pJZQCL.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js → index-B6TpijCe.js} +2 -2
- package/ccw/frontend/dist/assets/{index-ZnmWxcZg.js.map → index-B6TpijCe.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-b2C0iFd1.js → index-Bcq-7r6F.js} +2 -2
- package/ccw/frontend/dist/assets/{index-b2C0iFd1.js.map → index-Bcq-7r6F.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js → index-CI8-rBff.js} +2 -2
- package/ccw/frontend/dist/assets/{index-Cs2ShCCy.js.map → index-CI8-rBff.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-CY6Lueph.js → index-Dmt9OiEf.js} +2 -2
- package/ccw/frontend/dist/assets/{index-CY6Lueph.js.map → index-Dmt9OiEf.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-DfeBbFXo.js → index-anSMmEF8.js} +2 -2
- package/ccw/frontend/dist/assets/{index-DfeBbFXo.js.map → index-anSMmEF8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-B6I7GQC5.js → index-dWT2M6Ef.js} +4 -4
- package/ccw/frontend/dist/assets/{index-B6I7GQC5.js.map → index-dWT2M6Ef.js.map} +1 -1
- package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js → layout-grid-TSO0BFQE.js} +2 -2
- package/ccw/frontend/dist/assets/{layout-grid-ChrTrCby.js.map → layout-grid-TSO0BFQE.js.map} +1 -1
- package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js → lightbulb-Caj6fIQD.js} +2 -2
- package/ccw/frontend/dist/assets/{lightbulb-CvXiTlzN.js.map → lightbulb-Caj6fIQD.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js → link-2-DE9lMxa-.js} +2 -2
- package/ccw/frontend/dist/assets/{link-2-W0Nl17ec.js.map → link-2-DE9lMxa-.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-CL4JmoHb.js → link-BZtPgLW0.js} +2 -2
- package/ccw/frontend/dist/assets/{link-CL4JmoHb.js.map → link-BZtPgLW0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{list-CDmYFcio.js → list-DubWyY-U.js} +2 -2
- package/ccw/frontend/dist/assets/{list-CDmYFcio.js.map → list-DubWyY-U.js.map} +1 -1
- package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js → map-pin-DwN_48AF.js} +2 -2
- package/ccw/frontend/dist/assets/{map-pin-0Mfsw_3d.js.map → map-pin-DwN_48AF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js → messages-square-bjxvaiM9.js} +2 -2
- package/ccw/frontend/dist/assets/{messages-square-C6h08ple.js.map → messages-square-bjxvaiM9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js → minimize-2-CGfBKD_V.js} +2 -2
- package/ccw/frontend/dist/assets/{minimize-2-Cbu2yRzi.js.map → minimize-2-CGfBKD_V.js.map} +1 -1
- package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js → package-nzWY6ilt.js} +2 -2
- package/ccw/frontend/dist/assets/{package-CoLVUZGJ.js.map → package-nzWY6ilt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js → plug-CiLce49C.js} +2 -2
- package/ccw/frontend/dist/assets/{plug-BYTYqsw1.js.map → plug-CiLce49C.js.map} +1 -1
- package/ccw/frontend/dist/assets/{power-DmIojFl-.js → power-CFLmB-U9.js} +2 -2
- package/ccw/frontend/dist/assets/{power-DmIojFl-.js.map → power-CFLmB-U9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{save-BFa03OnG.js → save-DuO6OF0C.js} +2 -2
- package/ccw/frontend/dist/assets/{save-BFa03OnG.js.map → save-DuO6OF0C.js.map} +1 -1
- package/ccw/frontend/dist/assets/{send-Vet3sN4J.js → send-CZk9p0mM.js} +2 -2
- package/ccw/frontend/dist/assets/{send-Vet3sN4J.js.map → send-CZk9p0mM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js → square-check-big-BY_1YQQg.js} +2 -2
- package/ccw/frontend/dist/assets/{square-check-big-B9nzZRfE.js.map → square-check-big-BY_1YQQg.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js → square-pen-CnZgm6g-.js} +2 -2
- package/ccw/frontend/dist/assets/{square-pen-C7K13x4Z.js.map → square-pen-CnZgm6g-.js.map} +1 -1
- package/ccw/frontend/dist/assets/{star-BCQHcnSe.js → star-Cn1F0qy7.js} +2 -2
- package/ccw/frontend/dist/assets/{star-BCQHcnSe.js.map → star-Cn1F0qy7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{style-CJsrp48L.js → style-Dxs1iXCV.js} +2 -2
- package/ccw/frontend/dist/assets/{style-CJsrp48L.js.map → style-Dxs1iXCV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{target-CBzCJCB1.js → target-Bz1fLRKH.js} +2 -2
- package/ccw/frontend/dist/assets/{target-CBzCJCB1.js.map → target-Bz1fLRKH.js.map} +1 -1
- package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js → test-tube-C6qCYlDr.js} +2 -2
- package/ccw/frontend/dist/assets/{test-tube-BYTc5mvQ.js.map → test-tube-C6qCYlDr.js.map} +1 -1
- package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js → upload-C71kd4Qs.js} +2 -2
- package/ccw/frontend/dist/assets/{upload-DzyQj7ib.js.map → upload-C71kd4Qs.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js → useApiSettings-CqP2BAJ7.js} +2 -2
- package/ccw/frontend/dist/assets/{useApiSettings-CFPww7gU.js.map → useApiSettings-CqP2BAJ7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js → useCli-PCoPoVeM.js} +2 -2
- package/ccw/frontend/dist/assets/{useCli-ByL_a5CD.js.map → useCli-PCoPoVeM.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js → useCommands-3OfPQPw4.js} +2 -2
- package/ccw/frontend/dist/assets/{useCommands-BvKIoOzB.js.map → useCommands-3OfPQPw4.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js → useDebounce-bXiFhQx9.js} +2 -2
- package/ccw/frontend/dist/assets/{useDebounce-CmKmoP7n.js.map → useDebounce-bXiFhQx9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js → useFileExplorer-DEyUm46_.js} +2 -2
- package/ccw/frontend/dist/assets/{useFileExplorer-G5UoArCU.js.map → useFileExplorer-DEyUm46_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js → useLocale-sXTrdxcJ.js} +2 -2
- package/ccw/frontend/dist/assets/{useLocale-D2iHK44M.js.map → useLocale-sXTrdxcJ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js → useSkills-D0W0kXYm.js} +3 -3
- package/ccw/frontend/dist/assets/{useSkills-CYU4zqhm.js.map → useSkills-D0W0kXYm.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js → useSystemSettings-DZ-8lZsG.js} +2 -2
- package/ccw/frontend/dist/assets/{useSystemSettings-JznNpij7.js.map → useSystemSettings-DZ-8lZsG.js.map} +1 -1
- package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js → wand-sparkles-83GmAYuw.js} +2 -2
- package/ccw/frontend/dist/assets/{wand-sparkles-DqS0VCeN.js.map → wand-sparkles-83GmAYuw.js.map} +1 -1
- package/ccw/frontend/dist/index.html +1 -1
- package/package.json +1 -1
- package/.claude/commands/ddd/auto.md +0 -359
- package/.claude/commands/ddd/doc-generate.md +0 -222
- package/.claude/commands/ddd/doc-refresh.md +0 -218
- package/.claude/commands/ddd/execute.md +0 -416
- package/.claude/commands/ddd/index-build.md +0 -212
- package/.claude/commands/ddd/plan.md +0 -611
- package/.claude/commands/ddd/scan.md +0 -365
- package/.claude/commands/ddd/sync.md +0 -353
- package/.claude/commands/ddd/update.md +0 -160
- package/.claude/commands/idaw/add.md +0 -287
- package/.claude/commands/idaw/resume.md +0 -442
- package/.claude/commands/idaw/run-coordinate.md +0 -648
- package/.claude/commands/idaw/run.md +0 -539
- package/.claude/commands/idaw/status.md +0 -182
- package/.claude/skills/team-arch-opt/role-specs/analyzer.md +0 -80
- package/.claude/skills/team-arch-opt/role-specs/designer.md +0 -118
- package/.claude/skills/team-arch-opt/role-specs/refactorer.md +0 -106
- package/.claude/skills/team-arch-opt/role-specs/reviewer.md +0 -116
- package/.claude/skills/team-arch-opt/role-specs/validator.md +0 -117
- package/.claude/skills/team-brainstorm/role-specs/challenger.md +0 -63
- package/.claude/skills/team-brainstorm/role-specs/evaluator.md +0 -58
- package/.claude/skills/team-brainstorm/role-specs/ideator.md +0 -71
- package/.claude/skills/team-brainstorm/role-specs/synthesizer.md +0 -59
- package/.claude/skills/team-frontend/role-specs/analyst.md +0 -91
- package/.claude/skills/team-frontend/role-specs/architect.md +0 -85
- package/.claude/skills/team-frontend/role-specs/developer.md +0 -92
- package/.claude/skills/team-frontend/role-specs/qa.md +0 -78
- package/.claude/skills/team-issue/role-specs/explorer.md +0 -95
- package/.claude/skills/team-issue/role-specs/implementer.md +0 -89
- package/.claude/skills/team-issue/role-specs/integrator.md +0 -86
- package/.claude/skills/team-issue/role-specs/planner.md +0 -83
- package/.claude/skills/team-issue/role-specs/reviewer.md +0 -89
- package/.claude/skills/team-iterdev/role-specs/architect.md +0 -64
- package/.claude/skills/team-iterdev/role-specs/developer.md +0 -73
- package/.claude/skills/team-iterdev/role-specs/reviewer.md +0 -65
- package/.claude/skills/team-iterdev/role-specs/tester.md +0 -87
- package/.claude/skills/team-perf-opt/role-specs/benchmarker.md +0 -110
- package/.claude/skills/team-perf-opt/role-specs/optimizer.md +0 -102
- package/.claude/skills/team-perf-opt/role-specs/profiler.md +0 -73
- package/.claude/skills/team-perf-opt/role-specs/reviewer.md +0 -91
- package/.claude/skills/team-perf-opt/role-specs/strategist.md +0 -114
- package/.claude/skills/team-planex/role-specs/executor.md +0 -90
- package/.claude/skills/team-planex/role-specs/planner.md +0 -110
- package/.claude/skills/team-quality-assurance/role-specs/analyst.md +0 -79
- package/.claude/skills/team-quality-assurance/role-specs/executor.md +0 -64
- package/.claude/skills/team-quality-assurance/role-specs/generator.md +0 -67
- package/.claude/skills/team-quality-assurance/role-specs/scout.md +0 -66
- package/.claude/skills/team-quality-assurance/role-specs/strategist.md +0 -70
- package/.claude/skills/team-review/role-specs/fixer.md +0 -75
- package/.claude/skills/team-review/role-specs/reviewer.md +0 -66
- package/.claude/skills/team-review/role-specs/scanner.md +0 -70
- package/.claude/skills/team-roadmap-dev/role-specs/executor.md +0 -71
- package/.claude/skills/team-roadmap-dev/role-specs/planner.md +0 -77
- package/.claude/skills/team-roadmap-dev/role-specs/verifier.md +0 -73
- package/.claude/skills/team-tech-debt/role-specs/assessor.md +0 -70
- package/.claude/skills/team-tech-debt/role-specs/executor.md +0 -80
- package/.claude/skills/team-tech-debt/role-specs/planner.md +0 -71
- package/.claude/skills/team-tech-debt/role-specs/scanner.md +0 -85
- package/.claude/skills/team-tech-debt/role-specs/validator.md +0 -83
- package/.claude/skills/team-testing/role-specs/analyst.md +0 -94
- package/.claude/skills/team-testing/role-specs/executor.md +0 -97
- package/.claude/skills/team-testing/role-specs/generator.md +0 -96
- package/.claude/skills/team-testing/role-specs/strategist.md +0 -82
- package/.claude/skills/team-uidesign/role-specs/designer.md +0 -72
- package/.claude/skills/team-uidesign/role-specs/implementer.md +0 -74
- package/.claude/skills/team-uidesign/role-specs/researcher.md +0 -84
- package/.claude/skills/team-uidesign/role-specs/reviewer.md +0 -70
- package/.claude/skills/team-ux-improve/role-specs/designer.md +0 -191
- package/.claude/skills/team-ux-improve/role-specs/diagnoser.md +0 -110
- package/.claude/skills/team-ux-improve/role-specs/explorer.md +0 -109
- package/.claude/skills/team-ux-improve/role-specs/implementer.md +0 -164
- package/.claude/skills/team-ux-improve/role-specs/scanner.md +0 -117
- package/.claude/skills/team-ux-improve/role-specs/tester.md +0 -163
- package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js +0 -2
- package/ccw/frontend/dist/assets/CodexLensPage-My6DnfN6.js.map +0 -1
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: TDVAL
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: validation_complete
|
|
6
|
-
error: error
|
|
7
|
-
fix: regression_found
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Tech Debt Validator
|
|
11
|
-
|
|
12
|
-
Cleanup result validator. Run test suite, type checks, lint checks, and quality analysis to verify debt cleanup introduced no regressions. Compare before/after debt scores, produce validation-report.json.
|
|
13
|
-
|
|
14
|
-
## Phase 2: Load Context
|
|
15
|
-
|
|
16
|
-
| Input | Source | Required |
|
|
17
|
-
|-------|--------|----------|
|
|
18
|
-
| Session path | task description (regex: `session:\s*(.+)`) | Yes |
|
|
19
|
-
| .msg/meta.json | <session>/.msg/meta.json | Yes |
|
|
20
|
-
| Fix log | <session>/fixes/fix-log.json | No |
|
|
21
|
-
|
|
22
|
-
1. Extract session path from task description
|
|
23
|
-
2. Read .msg/meta.json for: worktree.path, debt_inventory, fix_results, debt_score_before
|
|
24
|
-
3. Determine command prefix: `cd "<worktree-path>" && ` if worktree exists
|
|
25
|
-
4. Read fix-log.json for modified files list
|
|
26
|
-
5. Detect available validation tools in worktree:
|
|
27
|
-
|
|
28
|
-
| Signal | Tool | Method |
|
|
29
|
-
|--------|------|--------|
|
|
30
|
-
| package.json + npm | npm test | Test suite |
|
|
31
|
-
| pytest available | python -m pytest | Test suite |
|
|
32
|
-
| npx tsc available | npx tsc --noEmit | Type check |
|
|
33
|
-
| npx eslint available | npx eslint | Lint check |
|
|
34
|
-
|
|
35
|
-
## Phase 3: Run Validation Checks
|
|
36
|
-
|
|
37
|
-
Execute 4-layer validation (all commands in worktree):
|
|
38
|
-
|
|
39
|
-
**1. Test Suite**:
|
|
40
|
-
- Run `npm test` or `python -m pytest` in worktree
|
|
41
|
-
- PASS if no FAIL/error/failed keywords; FAIL with regression count otherwise
|
|
42
|
-
- Skip with "no-tests" if no test runner available
|
|
43
|
-
|
|
44
|
-
**2. Type Check**:
|
|
45
|
-
- Run `npx tsc --noEmit` in worktree
|
|
46
|
-
- Count `error TS` occurrences for error count
|
|
47
|
-
|
|
48
|
-
**3. Lint Check**:
|
|
49
|
-
- Run `npx eslint --no-error-on-unmatched-pattern <modified-files>` in worktree
|
|
50
|
-
- Count error occurrences
|
|
51
|
-
|
|
52
|
-
**4. Quality Analysis** (optional, when > 5 modified files):
|
|
53
|
-
- Use gemini CLI to compare code quality before/after
|
|
54
|
-
- Assess complexity, duplication, naming quality improvements
|
|
55
|
-
|
|
56
|
-
**Debt Score Calculation**:
|
|
57
|
-
- debt_score_after = debt items NOT in modified files (remaining unfixed items)
|
|
58
|
-
- improvement_percentage = ((before - after) / before) * 100
|
|
59
|
-
|
|
60
|
-
**Auto-fix attempt** (when total_regressions <= 3):
|
|
61
|
-
- Use CLI tool to fix regressions in worktree:
|
|
62
|
-
```
|
|
63
|
-
Bash({
|
|
64
|
-
command: `cd "${worktreePath}" && ccw cli -p "PURPOSE: Fix regressions found in validation
|
|
65
|
-
TASK: ${regressionDetails}
|
|
66
|
-
MODE: write
|
|
67
|
-
CONTEXT: @${modifiedFiles.join(' @')}
|
|
68
|
-
EXPECTED: Fixed regressions
|
|
69
|
-
CONSTRAINTS: Fix only regressions | Preserve debt cleanup changes | No suppressions" --tool gemini --mode write`,
|
|
70
|
-
run_in_background: false
|
|
71
|
-
})
|
|
72
|
-
```
|
|
73
|
-
- Re-run validation checks after fix attempt
|
|
74
|
-
})
|
|
75
|
-
```
|
|
76
|
-
- Re-run checks after fix attempt
|
|
77
|
-
|
|
78
|
-
## Phase 4: Compare & Report
|
|
79
|
-
|
|
80
|
-
1. Calculate: total_regressions = test_regressions + type_errors + lint_errors; passed = (total_regressions === 0)
|
|
81
|
-
2. Write `<session>/validation/validation-report.json` with: validation_date, passed, regressions, checks (per-check status), debt_score_before, debt_score_after, improvement_percentage
|
|
82
|
-
3. Update .msg/meta.json with `validation_results` and `debt_score_after`
|
|
83
|
-
4. Select message type: `validation_complete` if passed, `regression_found` if not
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: TESTANA
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: analysis_ready
|
|
6
|
-
error: error
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Test Quality Analyst
|
|
10
|
-
|
|
11
|
-
Analyze defect patterns, identify coverage gaps, assess GC loop effectiveness, and generate a quality report with actionable recommendations.
|
|
12
|
-
|
|
13
|
-
## Phase 2: Context Loading
|
|
14
|
-
|
|
15
|
-
| Input | Source | Required |
|
|
16
|
-
|-------|--------|----------|
|
|
17
|
-
| Task description | From task subject/description | Yes |
|
|
18
|
-
| Session path | Extracted from task description | Yes |
|
|
19
|
-
| Execution results | <session>/results/run-*.json | Yes |
|
|
20
|
-
| Test strategy | <session>/strategy/test-strategy.md | Yes |
|
|
21
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
|
|
22
|
-
|
|
23
|
-
1. Extract session path from task description
|
|
24
|
-
2. Read .msg/meta.json for execution context (executor, generator namespaces)
|
|
25
|
-
3. Read all execution results:
|
|
26
|
-
|
|
27
|
-
```
|
|
28
|
-
Glob("<session>/results/run-*.json")
|
|
29
|
-
Read("<session>/results/run-001.json")
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
4. Read test strategy:
|
|
33
|
-
|
|
34
|
-
```
|
|
35
|
-
Read("<session>/strategy/test-strategy.md")
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
5. Read test files for pattern analysis:
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
Glob("<session>/tests/**/*")
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Phase 3: Quality Analysis
|
|
45
|
-
|
|
46
|
-
**Analysis dimensions**:
|
|
47
|
-
|
|
48
|
-
1. **Coverage Analysis** -- Aggregate coverage by layer:
|
|
49
|
-
|
|
50
|
-
| Layer | Coverage | Target | Status |
|
|
51
|
-
|-------|----------|--------|--------|
|
|
52
|
-
| L1 | X% | Y% | Met/Below |
|
|
53
|
-
|
|
54
|
-
2. **Defect Pattern Analysis** -- Frequency and severity:
|
|
55
|
-
|
|
56
|
-
| Pattern | Frequency | Severity |
|
|
57
|
-
|---------|-----------|----------|
|
|
58
|
-
| pattern | count | HIGH (>=3) / MEDIUM (>=2) / LOW (<2) |
|
|
59
|
-
|
|
60
|
-
3. **GC Loop Effectiveness**:
|
|
61
|
-
|
|
62
|
-
| Metric | Value | Assessment |
|
|
63
|
-
|--------|-------|------------|
|
|
64
|
-
| Rounds | N | - |
|
|
65
|
-
| Coverage Improvement | +/-X% | HIGH (>10%) / MEDIUM (>5%) / LOW (<=5%) |
|
|
66
|
-
|
|
67
|
-
4. **Coverage Gaps** -- per module/feature:
|
|
68
|
-
- Area, Current %, Gap %, Reason, Recommendation
|
|
69
|
-
|
|
70
|
-
5. **Quality Score**:
|
|
71
|
-
|
|
72
|
-
| Dimension | Score (1-10) | Weight |
|
|
73
|
-
|-----------|-------------|--------|
|
|
74
|
-
| Coverage Achievement | score | 30% |
|
|
75
|
-
| Test Effectiveness | score | 25% |
|
|
76
|
-
| Defect Detection | score | 25% |
|
|
77
|
-
| GC Loop Efficiency | score | 20% |
|
|
78
|
-
|
|
79
|
-
Write report to `<session>/analysis/quality-report.md`
|
|
80
|
-
|
|
81
|
-
## Phase 4: Trend Analysis & State Update
|
|
82
|
-
|
|
83
|
-
**Historical comparison** (if multiple sessions exist):
|
|
84
|
-
|
|
85
|
-
```
|
|
86
|
-
Glob(".workflow/.team/TST-*/.msg/meta.json")
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
- Track coverage trends over time
|
|
90
|
-
- Identify defect pattern evolution
|
|
91
|
-
- Compare GC loop effectiveness across sessions
|
|
92
|
-
|
|
93
|
-
Update `<session>/wisdom/.msg/meta.json` under `analyst` namespace:
|
|
94
|
-
- Merge `{ "analyst": { quality_score, coverage_gaps, top_defect_patterns, gc_effectiveness, recommendations } }`
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: TESTRUN
|
|
3
|
-
inner_loop: true
|
|
4
|
-
message_types:
|
|
5
|
-
success: tests_passed
|
|
6
|
-
failure: tests_failed
|
|
7
|
-
coverage: coverage_report
|
|
8
|
-
error: error
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Test Executor
|
|
12
|
-
|
|
13
|
-
Execute tests, collect coverage, attempt auto-fix for failures. Acts as the Critic in the Generator-Critic loop. Reports pass rate and coverage for coordinator GC decisions.
|
|
14
|
-
|
|
15
|
-
## Phase 2: Context Loading
|
|
16
|
-
|
|
17
|
-
| Input | Source | Required |
|
|
18
|
-
|-------|--------|----------|
|
|
19
|
-
| Task description | From task subject/description | Yes |
|
|
20
|
-
| Session path | Extracted from task description | Yes |
|
|
21
|
-
| Test directory | Task description (Input: <path>) | Yes |
|
|
22
|
-
| Coverage target | Task description (default: 80%) | Yes |
|
|
23
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | No |
|
|
24
|
-
|
|
25
|
-
1. Extract session path and test directory from task description
|
|
26
|
-
2. Extract coverage target (default: 80%)
|
|
27
|
-
3. Read .msg/meta.json for framework info (from strategist namespace)
|
|
28
|
-
4. Determine test framework:
|
|
29
|
-
|
|
30
|
-
| Framework | Run Command |
|
|
31
|
-
|-----------|-------------|
|
|
32
|
-
| Jest | `npx jest --coverage --json --outputFile=<session>/results/jest-output.json` |
|
|
33
|
-
| Pytest | `python -m pytest --cov --cov-report=json:<session>/results/coverage.json -v` |
|
|
34
|
-
| Vitest | `npx vitest run --coverage --reporter=json` |
|
|
35
|
-
|
|
36
|
-
5. Find test files to execute:
|
|
37
|
-
|
|
38
|
-
```
|
|
39
|
-
Glob("<session>/<test-dir>/**/*")
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Phase 3: Test Execution + Fix Cycle
|
|
43
|
-
|
|
44
|
-
**Iterative test-fix cycle** (max 3 iterations):
|
|
45
|
-
|
|
46
|
-
| Step | Action |
|
|
47
|
-
|------|--------|
|
|
48
|
-
| 1 | Run test command |
|
|
49
|
-
| 2 | Parse results: pass rate + coverage |
|
|
50
|
-
| 3 | pass_rate >= 0.95 AND coverage >= target -> success, exit |
|
|
51
|
-
| 4 | Extract failing test details |
|
|
52
|
-
| 5 | Delegate fix to CLI tool (gemini write mode) |
|
|
53
|
-
| 6 | Increment iteration; >= 3 -> exit with failures |
|
|
54
|
-
|
|
55
|
-
```
|
|
56
|
-
Bash("<test-command> 2>&1 || true")
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
**Auto-fix delegation** (on failure):
|
|
60
|
-
|
|
61
|
-
```
|
|
62
|
-
Bash({
|
|
63
|
-
command: `ccw cli -p "PURPOSE: Fix test failures to achieve pass rate >= 0.95; success = all tests pass
|
|
64
|
-
TASK: • Analyze test failure output • Identify root causes • Fix test code only (not source) • Preserve test intent
|
|
65
|
-
MODE: write
|
|
66
|
-
CONTEXT: @<session>/<test-dir>/**/* | Memory: Test framework: <framework>, iteration <N>/3
|
|
67
|
-
EXPECTED: Fixed test files with: corrected assertions, proper async handling, fixed imports, maintained coverage
|
|
68
|
-
CONSTRAINTS: Only modify test files | Preserve test structure | No source code changes
|
|
69
|
-
Test failures:
|
|
70
|
-
<test-output>" --tool gemini --mode write --cd <session>`,
|
|
71
|
-
run_in_background: false
|
|
72
|
-
})
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
**Save results**: `<session>/results/run-<N>.json`
|
|
76
|
-
|
|
77
|
-
## Phase 4: Defect Pattern Extraction & State Update
|
|
78
|
-
|
|
79
|
-
**Extract defect patterns from failures**:
|
|
80
|
-
|
|
81
|
-
| Pattern Type | Detection Keywords |
|
|
82
|
-
|--------------|-------------------|
|
|
83
|
-
| Null reference | "null", "undefined", "Cannot read property" |
|
|
84
|
-
| Async timing | "timeout", "async", "await", "promise" |
|
|
85
|
-
| Import errors | "Cannot find module", "import" |
|
|
86
|
-
| Type mismatches | "type", "expected", "received" |
|
|
87
|
-
|
|
88
|
-
**Record effective test patterns** (if pass_rate > 0.8):
|
|
89
|
-
|
|
90
|
-
| Pattern | Detection |
|
|
91
|
-
|---------|-----------|
|
|
92
|
-
| Happy path | "should succeed", "valid input" |
|
|
93
|
-
| Edge cases | "edge", "boundary", "limit" |
|
|
94
|
-
| Error handling | "should fail", "error", "throw" |
|
|
95
|
-
|
|
96
|
-
Update `<session>/wisdom/.msg/meta.json` under `executor` namespace:
|
|
97
|
-
- Merge `{ "executor": { pass_rate, coverage, defect_patterns, effective_patterns, coverage_history_entry } }`
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: TESTGEN
|
|
3
|
-
inner_loop: true
|
|
4
|
-
message_types:
|
|
5
|
-
success: tests_generated
|
|
6
|
-
revision: tests_revised
|
|
7
|
-
error: error
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Test Generator
|
|
11
|
-
|
|
12
|
-
Generate test code by layer (L1 unit / L2 integration / L3 E2E). Acts as the Generator in the Generator-Critic loop. Supports revision mode for GC loop iterations.
|
|
13
|
-
|
|
14
|
-
## Phase 2: Context Loading
|
|
15
|
-
|
|
16
|
-
| Input | Source | Required |
|
|
17
|
-
|-------|--------|----------|
|
|
18
|
-
| Task description | From task subject/description | Yes |
|
|
19
|
-
| Session path | Extracted from task description | Yes |
|
|
20
|
-
| Test strategy | <session>/strategy/test-strategy.md | Yes |
|
|
21
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | No |
|
|
22
|
-
|
|
23
|
-
1. Extract session path and layer from task description
|
|
24
|
-
2. Read test strategy:
|
|
25
|
-
|
|
26
|
-
```
|
|
27
|
-
Read("<session>/strategy/test-strategy.md")
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
3. Read source files to test (from strategy priority_files, limit 20)
|
|
31
|
-
4. Read .msg/meta.json for framework and scope context
|
|
32
|
-
|
|
33
|
-
5. Detect revision mode:
|
|
34
|
-
|
|
35
|
-
| Condition | Mode |
|
|
36
|
-
|-----------|------|
|
|
37
|
-
| Task subject contains "fix" or "revised" | Revision -- load previous failures |
|
|
38
|
-
| Otherwise | Fresh generation |
|
|
39
|
-
|
|
40
|
-
For revision mode:
|
|
41
|
-
- Read latest result file for failure details
|
|
42
|
-
- Read effective test patterns from .msg/meta.json
|
|
43
|
-
|
|
44
|
-
6. Read wisdom files if available
|
|
45
|
-
|
|
46
|
-
## Phase 3: Test Generation
|
|
47
|
-
|
|
48
|
-
**Strategy selection by complexity**:
|
|
49
|
-
|
|
50
|
-
| File Count | Strategy |
|
|
51
|
-
|------------|----------|
|
|
52
|
-
| <= 3 files | Direct: inline Write/Edit |
|
|
53
|
-
| 3-5 files | Single code-developer agent |
|
|
54
|
-
| > 5 files | Batch: group by module, one agent per batch |
|
|
55
|
-
|
|
56
|
-
**Direct generation** (per source file):
|
|
57
|
-
1. Generate test path: `<session>/tests/<layer>/<test-file>`
|
|
58
|
-
2. Generate test code: happy path, edge cases, error handling
|
|
59
|
-
3. Write test file
|
|
60
|
-
|
|
61
|
-
**CLI delegation** (medium/high complexity):
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
Bash({
|
|
65
|
-
command: `ccw cli -p "PURPOSE: Generate <layer> tests using <framework> to achieve coverage target; success = all priority files covered with quality tests
|
|
66
|
-
TASK: • Analyze source files • Generate test cases (happy path, edge cases, errors) • Write test files with proper structure • Ensure import resolution
|
|
67
|
-
MODE: write
|
|
68
|
-
CONTEXT: @<source-files> @<session>/strategy/test-strategy.md | Memory: Framework: <framework>, Layer: <layer>, Round: <round>
|
|
69
|
-
<if-revision: Previous failures: <failure-details>
|
|
70
|
-
Effective patterns: <patterns-from-meta>>
|
|
71
|
-
EXPECTED: Test files in <session>/tests/<layer>/ with: proper test structure, comprehensive coverage, correct imports, framework conventions
|
|
72
|
-
CONSTRAINTS: Follow test strategy priorities | Use framework best practices | <layer>-appropriate assertions
|
|
73
|
-
Source files to test:
|
|
74
|
-
<file-list-with-content>" --tool gemini --mode write --cd <session>`,
|
|
75
|
-
run_in_background: false
|
|
76
|
-
})
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
**Output verification**:
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
Glob("<session>/tests/<layer>/**/*")
|
|
83
|
-
```
|
|
84
|
-
|
|
85
|
-
## Phase 4: Self-Validation & State Update
|
|
86
|
-
|
|
87
|
-
**Validation checks**:
|
|
88
|
-
|
|
89
|
-
| Check | Method | Action on Fail |
|
|
90
|
-
|-------|--------|----------------|
|
|
91
|
-
| Syntax | `tsc --noEmit` or equivalent | Auto-fix imports/types |
|
|
92
|
-
| File count | Count generated files | Report issue |
|
|
93
|
-
| Import resolution | Check broken imports | Fix import paths |
|
|
94
|
-
|
|
95
|
-
Update `<session>/wisdom/.msg/meta.json` under `generator` namespace:
|
|
96
|
-
- Merge `{ "generator": { test_files, layer, round, is_revision } }`
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: STRATEGY
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: strategy_ready
|
|
6
|
-
error: error
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
# Test Strategist
|
|
10
|
-
|
|
11
|
-
Analyze git diff, determine test layers, define coverage targets, and formulate test strategy with prioritized execution order.
|
|
12
|
-
|
|
13
|
-
## Phase 2: Context & Environment Detection
|
|
14
|
-
|
|
15
|
-
| Input | Source | Required |
|
|
16
|
-
|-------|--------|----------|
|
|
17
|
-
| Task description | From task subject/description | Yes |
|
|
18
|
-
| Session path | Extracted from task description | Yes |
|
|
19
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | No |
|
|
20
|
-
|
|
21
|
-
1. Extract session path and scope from task description
|
|
22
|
-
2. Get git diff for change analysis:
|
|
23
|
-
|
|
24
|
-
```
|
|
25
|
-
Bash("git diff HEAD~1 --name-only 2>/dev/null || git diff --cached --name-only")
|
|
26
|
-
Bash("git diff HEAD~1 -- <changed-files> 2>/dev/null || git diff --cached -- <changed-files>")
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
3. Detect test framework from project files:
|
|
30
|
-
|
|
31
|
-
| Signal File | Framework | Test Pattern |
|
|
32
|
-
|-------------|-----------|-------------|
|
|
33
|
-
| jest.config.js/ts | Jest | `**/*.test.{ts,tsx,js}` |
|
|
34
|
-
| vitest.config.ts/js | Vitest | `**/*.test.{ts,tsx}` |
|
|
35
|
-
| pytest.ini / pyproject.toml | Pytest | `**/test_*.py` |
|
|
36
|
-
| No detection | Default | Jest patterns |
|
|
37
|
-
|
|
38
|
-
4. Scan existing test patterns:
|
|
39
|
-
|
|
40
|
-
```
|
|
41
|
-
Glob("**/*.test.*")
|
|
42
|
-
Glob("**/*.spec.*")
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
5. Read .msg/meta.json if exists for session context
|
|
46
|
-
|
|
47
|
-
## Phase 3: Strategy Formulation
|
|
48
|
-
|
|
49
|
-
**Change analysis dimensions**:
|
|
50
|
-
|
|
51
|
-
| Change Type | Analysis | Priority |
|
|
52
|
-
|-------------|----------|----------|
|
|
53
|
-
| New files | Need new tests | High |
|
|
54
|
-
| Modified functions | Need updated tests | Medium |
|
|
55
|
-
| Deleted files | Need test cleanup | Low |
|
|
56
|
-
| Config changes | May need integration tests | Variable |
|
|
57
|
-
|
|
58
|
-
**Strategy output structure**:
|
|
59
|
-
|
|
60
|
-
1. **Change Analysis Table**: File, Change Type, Impact, Priority
|
|
61
|
-
2. **Test Layer Recommendations**:
|
|
62
|
-
- L1 Unit: Scope, Coverage Target, Priority Files, Patterns
|
|
63
|
-
- L2 Integration: Scope, Coverage Target, Integration Points
|
|
64
|
-
- L3 E2E: Scope, Coverage Target, User Scenarios
|
|
65
|
-
3. **Risk Assessment**: Risk, Probability, Impact, Mitigation
|
|
66
|
-
4. **Test Execution Order**: Prioritized sequence
|
|
67
|
-
|
|
68
|
-
Write strategy to `<session>/strategy/test-strategy.md`
|
|
69
|
-
|
|
70
|
-
**Self-validation**:
|
|
71
|
-
|
|
72
|
-
| Check | Criteria | Fallback |
|
|
73
|
-
|-------|----------|----------|
|
|
74
|
-
| Has L1 scope | L1 scope not empty | Default to all changed files |
|
|
75
|
-
| Has coverage targets | L1 target > 0 | Use defaults (80/60/40) |
|
|
76
|
-
| Has priority files | List not empty | Use all changed files |
|
|
77
|
-
|
|
78
|
-
## Phase 4: Wisdom & State Update
|
|
79
|
-
|
|
80
|
-
1. Write discoveries to `<session>/wisdom/conventions.md` (detected framework, patterns)
|
|
81
|
-
2. Update `<session>/wisdom/.msg/meta.json` under `strategist` namespace:
|
|
82
|
-
- Read existing -> merge `{ "strategist": { framework, layers, coverage_targets, priority_files, risks } }` -> write back
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: DESIGN
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: design_ready
|
|
6
|
-
revision: design_revision
|
|
7
|
-
progress: design_progress
|
|
8
|
-
error: error
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Design Token & Component Spec Author
|
|
12
|
-
|
|
13
|
-
Define visual language through design tokens (W3C Design Tokens Format) and component specifications. Consume design intelligence from researcher. Act as Generator in the designer<->reviewer Generator-Critic loop.
|
|
14
|
-
|
|
15
|
-
## Phase 2: Context & Artifact Loading
|
|
16
|
-
|
|
17
|
-
| Input | Source | Required |
|
|
18
|
-
|-------|--------|----------|
|
|
19
|
-
| Research artifacts | <session>/research/*.json | Yes |
|
|
20
|
-
| Design intelligence | <session>/research/design-intelligence.json | Yes |
|
|
21
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
|
|
22
|
-
| Audit feedback | <session>/audit/audit-*.md | Only for GC fix tasks |
|
|
23
|
-
|
|
24
|
-
1. Extract session path from task description
|
|
25
|
-
2. Read research findings: design-system-analysis.json, component-inventory.json, accessibility-audit.json
|
|
26
|
-
3. Read design intelligence: recommended colors/typography/style, anti-patterns, ux_guidelines
|
|
27
|
-
4. Detect task type from subject: "token" -> Token design, "component" -> Component spec, "fix"/"revision" -> GC fix
|
|
28
|
-
5. If GC fix task: read latest audit feedback from audit files
|
|
29
|
-
|
|
30
|
-
## Phase 3: Design Execution
|
|
31
|
-
|
|
32
|
-
**Token System Design (DESIGN-001)**:
|
|
33
|
-
- Define complete token system following W3C Design Tokens Format
|
|
34
|
-
- Categories: Color (primary, secondary, background, surface, text, semantic), Typography (font-family, font-size, font-weight, line-height), Spacing (xs-2xl), Shadow (sm/md/lg), Border (radius, width), Breakpoint (mobile/tablet/desktop/wide)
|
|
35
|
-
- All color tokens must have light/dark variants using `$value: { light: ..., dark: ... }`
|
|
36
|
-
- Integrate design intelligence: recommended.colors -> color tokens, recommended.typography -> font stacks
|
|
37
|
-
- Document anti-patterns from design intelligence for implementer reference
|
|
38
|
-
- Output: `<session>/design/design-tokens.json`
|
|
39
|
-
|
|
40
|
-
**Component Specification (DESIGN-002)**:
|
|
41
|
-
- Define component specs consuming design tokens
|
|
42
|
-
- Each spec contains: Overview (type: atom/molecule/organism, purpose), Design Tokens Consumed (token -> usage -> value reference), States (default/hover/focus/active/disabled), Responsive Behavior (changes per breakpoint), Accessibility (role, ARIA, keyboard, focus indicator, contrast), Variants, Anti-Patterns, Implementation Hints
|
|
43
|
-
- All interactive states required: default, hover (background/opacity change), focus (outline 2px solid, offset 2px), active (pressed), disabled (opacity 0.5, cursor not-allowed)
|
|
44
|
-
- Output: `<session>/design/component-specs/{component-name}.md`
|
|
45
|
-
|
|
46
|
-
**GC Fix Mode (DESIGN-fix-N)**:
|
|
47
|
-
- Parse audit feedback for specific issues
|
|
48
|
-
- Re-read affected design artifacts; apply fixes (token value adjustments, missing states, accessibility gaps, naming fixes)
|
|
49
|
-
- Re-write affected files; signal `design_revision` instead of `design_ready`
|
|
50
|
-
|
|
51
|
-
## Phase 4: Self-Validation & Output
|
|
52
|
-
|
|
53
|
-
1. Token integrity checks:
|
|
54
|
-
|
|
55
|
-
| Check | Pass Criteria |
|
|
56
|
-
|-------|---------------|
|
|
57
|
-
| tokens_valid | All $value fields non-empty |
|
|
58
|
-
| theme_complete | Light/dark values for all color tokens |
|
|
59
|
-
| values_parseable | Valid CSS-parseable values |
|
|
60
|
-
| no_duplicates | No duplicate token definitions |
|
|
61
|
-
|
|
62
|
-
2. Component spec checks:
|
|
63
|
-
|
|
64
|
-
| Check | Pass Criteria |
|
|
65
|
-
|-------|---------------|
|
|
66
|
-
| states_complete | All 5 states (default/hover/focus/active/disabled) defined |
|
|
67
|
-
| a11y_specified | Role, ARIA, keyboard behavior defined |
|
|
68
|
-
| responsive_defined | At least mobile/desktop breakpoints |
|
|
69
|
-
| token_refs_valid | All `{token.path}` references resolve to defined tokens |
|
|
70
|
-
|
|
71
|
-
3. Update `<session>/wisdom/.msg/meta.json` under `designer` namespace:
|
|
72
|
-
- Read existing -> merge `{ "designer": { task_type, token_categories, component_count, style_decisions } }` -> write back
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: BUILD
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: build_complete
|
|
6
|
-
progress: build_progress
|
|
7
|
-
error: error
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Component Code Builder
|
|
11
|
-
|
|
12
|
-
Translate design tokens and component specifications into production code. Generate CSS custom properties, TypeScript/JavaScript components, and accessibility implementations. Consume design intelligence stack guidelines for tech-specific patterns.
|
|
13
|
-
|
|
14
|
-
## Phase 2: Context & Artifact Loading
|
|
15
|
-
|
|
16
|
-
| Input | Source | Required |
|
|
17
|
-
|-------|--------|----------|
|
|
18
|
-
| Design tokens | <session>/design/design-tokens.json | Yes (token build) |
|
|
19
|
-
| Component specs | <session>/design/component-specs/*.md | Yes (component build) |
|
|
20
|
-
| Design intelligence | <session>/research/design-intelligence.json | Yes |
|
|
21
|
-
| Latest audit report | <session>/audit/audit-*.md | No |
|
|
22
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
|
|
23
|
-
|
|
24
|
-
1. Extract session path from task description
|
|
25
|
-
2. Detect build type from subject: "token" -> Token implementation, "component" -> Component implementation
|
|
26
|
-
3. Read design artifacts: design-tokens.json (token build), component-specs/*.md (component build)
|
|
27
|
-
4. Read design intelligence: stack_guidelines (tech-specific patterns), anti_patterns (patterns to avoid), ux_guidelines
|
|
28
|
-
5. Read latest audit report for approved changes and feedback
|
|
29
|
-
6. Detect project tech stack from package.json
|
|
30
|
-
|
|
31
|
-
## Phase 3: Implementation Execution
|
|
32
|
-
|
|
33
|
-
**Token Implementation (BUILD-001)**:
|
|
34
|
-
- Convert design tokens to production code
|
|
35
|
-
- Output files in `<session>/build/token-files/`:
|
|
36
|
-
- `tokens.css`: CSS custom properties with `:root` (light) and `[data-theme="dark"]` selectors, plus `@media (prefers-color-scheme: dark)` fallback
|
|
37
|
-
- `tokens.ts`: TypeScript constants and types for programmatic access with autocomplete support
|
|
38
|
-
- `README.md`: Token usage guide
|
|
39
|
-
- All color tokens must have both light and dark values
|
|
40
|
-
- Semantic token names must match design token definitions
|
|
41
|
-
|
|
42
|
-
**Component Implementation (BUILD-002)**:
|
|
43
|
-
- Implement component code from design specifications
|
|
44
|
-
- Per-component output in `<session>/build/component-files/`:
|
|
45
|
-
- `{ComponentName}.tsx`: React/Vue/Svelte component (match detected stack)
|
|
46
|
-
- `{ComponentName}.css`: Styles consuming tokens via `var(--token-name)` only
|
|
47
|
-
- `{ComponentName}.test.tsx`: Basic render + state tests
|
|
48
|
-
- `index.ts`: Re-export
|
|
49
|
-
- Requirements: no hardcoded colors/spacing (use design tokens), implement all 5 states, add ARIA attributes per spec, support responsive breakpoints, follow project component patterns
|
|
50
|
-
- Accessibility: keyboard navigation, screen reader support, visible focus indicators, WCAG AA contrast
|
|
51
|
-
- Check implementation against design intelligence anti_patterns
|
|
52
|
-
|
|
53
|
-
## Phase 4: Validation & Output
|
|
54
|
-
|
|
55
|
-
1. Token build validation:
|
|
56
|
-
|
|
57
|
-
| Check | Pass Criteria |
|
|
58
|
-
|-------|---------------|
|
|
59
|
-
| File existence | tokens.css and tokens.ts exist |
|
|
60
|
-
| Token coverage | All defined tokens present in CSS |
|
|
61
|
-
| Theme support | Light/dark variants exist |
|
|
62
|
-
|
|
63
|
-
2. Component build validation:
|
|
64
|
-
|
|
65
|
-
| Check | Pass Criteria |
|
|
66
|
-
|-------|---------------|
|
|
67
|
-
| File existence | At least 3 files per component (component, style, index) |
|
|
68
|
-
| No hardcoded values | No `#xxx` or `rgb()` in component CSS (only in tokens.css) |
|
|
69
|
-
| Focus styles | `:focus` or `:focus-visible` defined |
|
|
70
|
-
| Responsive | `@media` queries present |
|
|
71
|
-
| Anti-pattern clean | No violations of design intelligence anti_patterns |
|
|
72
|
-
|
|
73
|
-
3. Update `<session>/wisdom/.msg/meta.json` under `implementer` namespace:
|
|
74
|
-
- Read existing -> merge `{ "implementer": { build_type, file_count, output_dir, components_built } }` -> write back
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
prefix: RESEARCH
|
|
3
|
-
inner_loop: false
|
|
4
|
-
message_types:
|
|
5
|
-
success: research_ready
|
|
6
|
-
progress: research_progress
|
|
7
|
-
error: error
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Design System Researcher
|
|
11
|
-
|
|
12
|
-
Analyze existing design system, build component inventory, assess accessibility baseline, and retrieve industry-specific design intelligence via ui-ux-pro-max. Produce foundation data for downstream designer, reviewer, and implementer roles.
|
|
13
|
-
|
|
14
|
-
## Phase 2: Context & Environment Detection
|
|
15
|
-
|
|
16
|
-
| Input | Source | Required |
|
|
17
|
-
|-------|--------|----------|
|
|
18
|
-
| Task description | From task subject/description | Yes |
|
|
19
|
-
| Session path | Extracted from task description | Yes |
|
|
20
|
-
| .msg/meta.json | <session>/wisdom/.msg/meta.json | No |
|
|
21
|
-
|
|
22
|
-
1. Extract session path and target scope from task description
|
|
23
|
-
2. Detect project type and tech stack from package.json or equivalent:
|
|
24
|
-
|
|
25
|
-
| Package | Detected Stack |
|
|
26
|
-
|---------|---------------|
|
|
27
|
-
| next | nextjs |
|
|
28
|
-
| react | react |
|
|
29
|
-
| vue | vue |
|
|
30
|
-
| svelte | svelte |
|
|
31
|
-
| @shadcn/ui | shadcn |
|
|
32
|
-
| (default) | html-tailwind |
|
|
33
|
-
|
|
34
|
-
3. Use CLI tools (e.g., `ccw cli -p "..." --tool gemini --mode analysis`) or direct tools (Glob, Grep, mcp__ace-tool__search_context) to scan for existing design tokens, component files, styling patterns
|
|
35
|
-
4. Read industry context from session config (industry, strictness, must-have features)
|
|
36
|
-
|
|
37
|
-
## Phase 3: Research Execution
|
|
38
|
-
|
|
39
|
-
Execute 4 analysis streams:
|
|
40
|
-
|
|
41
|
-
**Stream 1 -- Design System Analysis**:
|
|
42
|
-
- Search for existing design tokens (CSS variables, theme configs, token files)
|
|
43
|
-
- Identify styling patterns (CSS-in-JS, CSS modules, utility classes, SCSS)
|
|
44
|
-
- Map color palette, typography scale, spacing system
|
|
45
|
-
- Find component library usage (MUI, Ant Design, shadcn, custom)
|
|
46
|
-
- Output: `<session>/research/design-system-analysis.json`
|
|
47
|
-
|
|
48
|
-
**Stream 2 -- Component Inventory**:
|
|
49
|
-
- Find all UI component files; identify props/API surface
|
|
50
|
-
- Identify states supported (hover, focus, disabled, etc.)
|
|
51
|
-
- Check accessibility attributes (ARIA labels, roles)
|
|
52
|
-
- Map inter-component dependencies and usage counts
|
|
53
|
-
- Output: `<session>/research/component-inventory.json`
|
|
54
|
-
|
|
55
|
-
**Stream 3 -- Accessibility Baseline**:
|
|
56
|
-
- Check ARIA attribute usage patterns, keyboard navigation support
|
|
57
|
-
- Assess color contrast ratios (if design tokens found)
|
|
58
|
-
- Find focus management and semantic HTML patterns
|
|
59
|
-
- Output: `<session>/research/accessibility-audit.json`
|
|
60
|
-
|
|
61
|
-
**Stream 4 -- Design Intelligence (ui-ux-pro-max)**:
|
|
62
|
-
- Call `Skill(skill="ui-ux-pro-max", args="<industry> <keywords> --design-system")` for design system recommendations
|
|
63
|
-
- Call `Skill(skill="ui-ux-pro-max", args="accessibility animation responsive --domain ux")` for UX guidelines
|
|
64
|
-
- Call `Skill(skill="ui-ux-pro-max", args="<keywords> --stack <detected-stack>")` for stack guidelines
|
|
65
|
-
- Degradation: when unavailable, use LLM general knowledge, mark `_source: "llm-general-knowledge"`
|
|
66
|
-
- Output: `<session>/research/design-intelligence.json`
|
|
67
|
-
|
|
68
|
-
Compile research summary metrics: design_system_exists, styling_approach, total_components, accessibility_level, design_intelligence_source, anti_patterns_count.
|
|
69
|
-
|
|
70
|
-
## Phase 4: Validation & Output
|
|
71
|
-
|
|
72
|
-
1. Verify all 4 output files exist and contain valid JSON with required fields:
|
|
73
|
-
|
|
74
|
-
| File | Required Fields |
|
|
75
|
-
|------|----------------|
|
|
76
|
-
| design-system-analysis.json | existing_tokens, styling_approach |
|
|
77
|
-
| component-inventory.json | components array |
|
|
78
|
-
| accessibility-audit.json | wcag_level |
|
|
79
|
-
| design-intelligence.json | _source, design_system |
|
|
80
|
-
|
|
81
|
-
2. If any file missing or invalid, re-run corresponding stream
|
|
82
|
-
|
|
83
|
-
3. Update `<session>/wisdom/.msg/meta.json` under `researcher` namespace:
|
|
84
|
-
- Read existing -> merge `{ "researcher": { detected_stack, component_count, wcag_level, di_source, scope } }` -> write back
|