claude-code-workflow 7.2.27 → 7.2.28
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/.ccw/specs/architecture-constraints.md +5 -0
- package/.claude/skills/_shared/SKILL-DESIGN-SPEC.md +140 -0
- package/.claude/skills/investigate/SKILL.md +110 -0
- package/.claude/skills/investigate/phases/01-root-cause-investigation.md +132 -0
- package/.claude/skills/investigate/phases/02-pattern-analysis.md +126 -0
- package/.claude/skills/investigate/phases/03-hypothesis-testing.md +177 -0
- package/.claude/skills/investigate/phases/04-implementation.md +139 -0
- package/.claude/skills/investigate/phases/05-verification-report.md +153 -0
- package/.claude/skills/investigate/specs/debug-report-format.md +226 -0
- package/.claude/skills/investigate/specs/iron-law.md +101 -0
- package/.claude/skills/security-audit/SKILL.md +125 -0
- package/.claude/skills/security-audit/phases/01-supply-chain-scan.md +139 -0
- package/.claude/skills/security-audit/phases/02-owasp-review.md +156 -0
- package/.claude/skills/security-audit/phases/03-threat-modeling.md +180 -0
- package/.claude/skills/security-audit/phases/04-report-tracking.md +177 -0
- package/.claude/skills/security-audit/specs/owasp-checklist.md +442 -0
- package/.claude/skills/security-audit/specs/scoring-gates.md +141 -0
- package/.claude/skills/ship/SKILL.md +105 -0
- package/.claude/skills/ship/phases/01-preflight-checks.md +121 -0
- package/.claude/skills/ship/phases/02-code-review.md +137 -0
- package/.claude/skills/ship/phases/03-version-bump.md +171 -0
- package/.claude/skills/ship/phases/04-changelog-commit.md +167 -0
- package/.claude/skills/ship/phases/05-pr-creation.md +163 -0
- package/.claude/skills/skill-generator/templates/sequential-phase.md +10 -0
- package/.claude/skills/skill-generator/templates/skill-md.md +4 -0
- package/.claude/skills/team-interactive-craft/SKILL.md +127 -0
- package/.claude/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
- package/.claude/skills/team-interactive-craft/roles/builder/role.md +216 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +192 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +183 -0
- package/.claude/skills/team-interactive-craft/roles/coordinator/role.md +166 -0
- package/.claude/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
- package/.claude/skills/team-interactive-craft/roles/researcher/role.md +131 -0
- package/.claude/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
- package/.claude/skills/team-interactive-craft/specs/pipelines.md +85 -0
- package/.claude/skills/team-interactive-craft/specs/team-config.json +105 -0
- package/.claude/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
- package/.claude/skills/team-motion-design/SKILL.md +129 -0
- package/.claude/skills/team-motion-design/roles/animator/role.md +194 -0
- package/.claude/skills/team-motion-design/roles/choreographer/role.md +164 -0
- package/.claude/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
- package/.claude/skills/team-motion-design/roles/coordinator/commands/dispatch.md +203 -0
- package/.claude/skills/team-motion-design/roles/coordinator/commands/monitor.md +184 -0
- package/.claude/skills/team-motion-design/roles/coordinator/role.md +167 -0
- package/.claude/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
- package/.claude/skills/team-motion-design/roles/motion-tester/role.md +175 -0
- package/.claude/skills/team-motion-design/specs/gpu-constraints.md +114 -0
- package/.claude/skills/team-motion-design/specs/motion-tokens.md +128 -0
- package/.claude/skills/team-motion-design/specs/pipelines.md +74 -0
- package/.claude/skills/team-motion-design/specs/reduced-motion.md +129 -0
- package/.claude/skills/team-motion-design/specs/team-config.json +99 -0
- package/.claude/skills/team-ui-polish/SKILL.md +127 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +194 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/commands/monitor.md +180 -0
- package/.claude/skills/team-ui-polish/roles/coordinator/role.md +170 -0
- package/.claude/skills/team-ui-polish/roles/diagnostician/role.md +160 -0
- package/.claude/skills/team-ui-polish/roles/optimizer/role.md +225 -0
- package/.claude/skills/team-ui-polish/roles/scanner/role.md +356 -0
- package/.claude/skills/team-ui-polish/roles/verifier/role.md +142 -0
- package/.claude/skills/team-ui-polish/specs/anti-patterns.md +141 -0
- package/.claude/skills/team-ui-polish/specs/design-standards.md +356 -0
- package/.claude/skills/team-ui-polish/specs/fix-strategies.md +235 -0
- package/.claude/skills/team-ui-polish/specs/pipelines.md +81 -0
- package/.claude/skills/team-ui-polish/specs/scoring-guide.md +162 -0
- package/.claude/skills/team-ui-polish/specs/team-config.json +73 -0
- package/.claude/skills/team-uidesign/SKILL.md +6 -1
- package/.claude/skills/team-uidesign/roles/designer/role.md +28 -4
- package/.claude/skills/team-uidesign/roles/implementer/role.md +25 -3
- package/.claude/skills/team-uidesign/roles/researcher/role.md +21 -2
- package/.claude/skills/team-uidesign/roles/reviewer/role.md +19 -17
- package/.claude/skills/team-uidesign/specs/anti-patterns.md +211 -0
- package/.claude/skills/team-uidesign/specs/design-standards.md +329 -0
- package/.claude/skills/team-uidesign/specs/scoring-guide.md +114 -0
- package/.claude/skills/team-uidesign/specs/team-config.json +1 -1
- package/.claude/skills/team-uidesign/specs/ux-writing.md +86 -0
- package/.claude/skills/team-ux-improve/SKILL.md +3 -0
- package/.claude/skills/team-ux-improve/roles/designer/role.md +30 -0
- package/.claude/skills/team-ux-improve/roles/diagnoser/role.md +16 -1
- package/.claude/skills/team-ux-improve/roles/scanner/role.md +43 -1
- package/.claude/skills/team-ux-improve/specs/anti-patterns.md +103 -0
- package/.claude/skills/team-ux-improve/specs/design-standards.md +54 -0
- package/.claude/skills/team-ux-improve/specs/heuristics.md +88 -0
- package/.claude/skills/team-ux-improve/wisdom/anti-patterns/common-ux-pitfalls.md +40 -8
- package/.claude/skills/team-ux-improve/wisdom/patterns/state-management.md +32 -12
- package/.claude/skills/team-ux-improve/wisdom/patterns/ui-feedback.md +35 -11
- package/.claude/skills/team-ux-improve/wisdom/principles/general-ux.md +36 -9
- package/.claude/skills/team-visual-a11y/SKILL.md +143 -0
- package/.claude/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +250 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +204 -0
- package/.claude/skills/team-visual-a11y/roles/coordinator/role.md +169 -0
- package/.claude/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
- package/.claude/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
- package/.claude/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
- package/.claude/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
- package/.claude/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
- package/.claude/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
- package/.claude/skills/team-visual-a11y/specs/pipelines.md +98 -0
- package/.claude/skills/team-visual-a11y/specs/team-config.json +109 -0
- package/.claude/skills/team-visual-a11y/specs/typography-scale.md +165 -0
- package/.claude/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
- package/.codex/skills/investigate/agents/investigator.md +392 -0
- package/.codex/skills/investigate/orchestrator.md +362 -0
- package/.codex/skills/investigate/phases/01-root-cause-investigation.md +212 -0
- package/.codex/skills/investigate/phases/02-pattern-analysis.md +181 -0
- package/.codex/skills/investigate/phases/03-hypothesis-testing.md +214 -0
- package/.codex/skills/investigate/phases/04-implementation.md +195 -0
- package/.codex/skills/investigate/phases/05-verification-report.md +240 -0
- package/.codex/skills/security-audit/agents/security-auditor.md +341 -0
- package/.codex/skills/security-audit/orchestrator.md +384 -0
- package/.codex/skills/security-audit/phases/01-supply-chain-scan.md +226 -0
- package/.codex/skills/security-audit/phases/02-owasp-review.md +232 -0
- package/.codex/skills/security-audit/phases/03-threat-modeling.md +249 -0
- package/.codex/skills/security-audit/phases/04-report-tracking.md +300 -0
- package/.codex/skills/ship/agents/ship-operator.md +318 -0
- package/.codex/skills/ship/orchestrator.md +426 -0
- package/.codex/skills/ship/phases/01-preflight-checks.md +198 -0
- package/.codex/skills/ship/phases/02-code-review.md +228 -0
- package/.codex/skills/ship/phases/03-version-bump.md +259 -0
- package/.codex/skills/ship/phases/04-changelog-commit.md +263 -0
- package/.codex/skills/ship/phases/05-pr-creation.md +280 -0
- package/.codex/skills/team-interactive-craft/SKILL.md +220 -0
- package/.codex/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
- package/.codex/skills/team-interactive-craft/roles/builder/role.md +216 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +162 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +233 -0
- package/.codex/skills/team-interactive-craft/roles/coordinator/role.md +209 -0
- package/.codex/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
- package/.codex/skills/team-interactive-craft/roles/researcher/role.md +131 -0
- package/.codex/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
- package/.codex/skills/team-interactive-craft/specs/pipelines.md +85 -0
- package/.codex/skills/team-interactive-craft/specs/team-config.json +105 -0
- package/.codex/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
- package/.codex/skills/team-motion-design/SKILL.md +222 -0
- package/.codex/skills/team-motion-design/roles/animator/role.md +194 -0
- package/.codex/skills/team-motion-design/roles/choreographer/role.md +164 -0
- package/.codex/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
- package/.codex/skills/team-motion-design/roles/coordinator/commands/dispatch.md +168 -0
- package/.codex/skills/team-motion-design/roles/coordinator/commands/monitor.md +242 -0
- package/.codex/skills/team-motion-design/roles/coordinator/role.md +210 -0
- package/.codex/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
- package/.codex/skills/team-motion-design/roles/motion-tester/role.md +175 -0
- package/.codex/skills/team-motion-design/specs/gpu-constraints.md +114 -0
- package/.codex/skills/team-motion-design/specs/motion-tokens.md +128 -0
- package/.codex/skills/team-motion-design/specs/pipelines.md +74 -0
- package/.codex/skills/team-motion-design/specs/reduced-motion.md +129 -0
- package/.codex/skills/team-motion-design/specs/team-config.json +99 -0
- package/.codex/skills/team-ui-polish/SKILL.md +218 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +167 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/commands/monitor.md +230 -0
- package/.codex/skills/team-ui-polish/roles/coordinator/role.md +213 -0
- package/.codex/skills/team-ui-polish/roles/diagnostician/role.md +164 -0
- package/.codex/skills/team-ui-polish/roles/optimizer/role.md +229 -0
- package/.codex/skills/team-ui-polish/roles/scanner/role.md +360 -0
- package/.codex/skills/team-ui-polish/roles/verifier/role.md +142 -0
- package/.codex/skills/team-ui-polish/specs/anti-patterns.md +141 -0
- package/.codex/skills/team-ui-polish/specs/design-standards.md +356 -0
- package/.codex/skills/team-ui-polish/specs/fix-strategies.md +235 -0
- package/.codex/skills/team-ui-polish/specs/pipelines.md +81 -0
- package/.codex/skills/team-ui-polish/specs/scoring-guide.md +162 -0
- package/.codex/skills/team-ui-polish/specs/team-config.json +73 -0
- package/.codex/skills/team-visual-a11y/SKILL.md +319 -0
- package/.codex/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +188 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +281 -0
- package/.codex/skills/team-visual-a11y/roles/coordinator/role.md +213 -0
- package/.codex/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
- package/.codex/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
- package/.codex/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
- package/.codex/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
- package/.codex/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
- package/.codex/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
- package/.codex/skills/team-visual-a11y/specs/pipelines.md +98 -0
- package/.codex/skills/team-visual-a11y/specs/team-config.json +109 -0
- package/.codex/skills/team-visual-a11y/specs/typography-scale.md +165 -0
- package/.codex/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
- package/README.md +8 -0
- package/ccw/dist/core/hooks/hook-templates.d.ts.map +1 -1
- package/ccw/dist/core/hooks/hook-templates.js +114 -1
- package/ccw/dist/core/hooks/hook-templates.js.map +1 -1
- package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
- package/ccw/dist/core/routes/cli-routes.js +34 -0
- package/ccw/dist/core/routes/cli-routes.js.map +1 -1
- package/ccw/dist/core/routes/system-routes.js +2 -2
- package/ccw/dist/core/routes/system-routes.js.map +1 -1
- package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js → AlertDialog-BjP1ydDR.js} +2 -2
- package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js.map → AlertDialog-BjP1ydDR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js → AnalysisPage-CAX3xqMf.js} +2 -2
- package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js.map → AnalysisPage-CAX3xqMf.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js → ApiSettingsPage-CtWlmztq.js} +2 -2
- package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js.map → ApiSettingsPage-CtWlmztq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js → CliModeToggle-hR4a-eLX.js} +2 -2
- package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js.map → CliModeToggle-hR4a-eLX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js → CliSessionSharePage-DzNPkFN9.js} +2 -2
- package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js.map → CliSessionSharePage-DzNPkFN9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js → CliViewerPage-BPEGN4TT.js} +2 -2
- package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js.map → CliViewerPage-BPEGN4TT.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js → CodexLensPage-Cf0r2RHY.js} +2 -2
- package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js.map → CodexLensPage-Cf0r2RHY.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js → Collapsible-DEm1rJ4h.js} +2 -2
- package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js.map → Collapsible-DEm1rJ4h.js.map} +1 -1
- package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js → CommandsManagerPage-BpeWw8HO.js} +2 -2
- package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js.map → CommandsManagerPage-BpeWw8HO.js.map} +1 -1
- package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js → DeepWikiPage-BEsmh2vF.js} +2 -2
- package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js.map → DeepWikiPage-BEsmh2vF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js → EndpointsPage-B30SFdtU.js} +2 -2
- package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js.map → EndpointsPage-B30SFdtU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js → ExplorerPage-BVvMpg1O.js} +2 -2
- package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js.map → ExplorerPage-BVvMpg1O.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js → FixSessionPage-CL73dHbh.js} +2 -2
- package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js.map → FixSessionPage-CL73dHbh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js → FloatingFileBrowser-BL-28lMZ.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js.map → FloatingFileBrowser-BL-28lMZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js → FloatingPanel-BzZDciHZ.js} +2 -2
- package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js.map → FloatingPanel-BzZDciHZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js → GraphExplorerPage-CDp6-d8P.js} +2 -2
- package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js.map → GraphExplorerPage-CDp6-d8P.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js → HistoryPage-fZY_7O9n.js} +2 -2
- package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js.map → HistoryPage-fZY_7O9n.js.map} +1 -1
- package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js → HookManagerPage-4LJeC9bq.js} +2 -2
- package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js.map → HookManagerPage-4LJeC9bq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js → InstallationsPage-Bpigrbhw.js} +2 -2
- package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js.map → InstallationsPage-Bpigrbhw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js → IssueHubPage-BP0zJc1R.js} +2 -2
- package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js.map → IssueHubPage-BP0zJc1R.js.map} +1 -1
- package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js → LiteTasksPage-CSt2oVKQ.js} +2 -2
- package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js.map → LiteTasksPage-CSt2oVKQ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js → McpManagerPage-B-xaMA0w.js} +2 -2
- package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js.map → McpManagerPage-B-xaMA0w.js.map} +1 -1
- package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js → MemoryPage-CJqo_7DY.js} +2 -2
- package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js.map → MemoryPage-CJqo_7DY.js.map} +1 -1
- package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js → NotFoundPage-ibZeQA-Y.js} +2 -2
- package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js.map → NotFoundPage-ibZeQA-Y.js.map} +1 -1
- package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js → OrchestratorPage-DgJ4ctPQ.js} +2 -2
- package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js.map → OrchestratorPage-DgJ4ctPQ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js → ProjectOverviewPage-Cit0Yq0D.js} +2 -2
- package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js.map → ProjectOverviewPage-Cit0Yq0D.js.map} +1 -1
- package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js → PromptHistoryPage-Ce1HDIK0.js} +2 -2
- package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js.map → PromptHistoryPage-Ce1HDIK0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js → ReviewSessionPage-J1KikNrk.js} +2 -2
- package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js.map → ReviewSessionPage-J1KikNrk.js.map} +1 -1
- package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js → RulesManagerPage-CdBjTmth.js} +2 -2
- package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js.map → RulesManagerPage-CdBjTmth.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js → SessionDetailPage-B9ZK7LvX.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js.map → SessionDetailPage-B9ZK7LvX.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js → SessionsPage-CW_nS5UR.js} +2 -2
- package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js.map → SessionsPage-CW_nS5UR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SettingsPage-BPDbXPSM.js → SettingsPage-B2PYzSoO.js} +35 -35
- package/ccw/frontend/dist/assets/SettingsPage-B2PYzSoO.js.map +1 -0
- package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js → SkillsManagerPage-CTnWrrwp.js} +2 -2
- package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js.map → SkillsManagerPage-CTnWrrwp.js.map} +1 -1
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js → SpecsSettingsPage-DJpi9XQL.js} +2 -2
- package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js.map → SpecsSettingsPage-DJpi9XQL.js.map} +1 -1
- package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js → Switch-Ac6Ov7uy.js} +2 -2
- package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js.map → Switch-Ac6Ov7uy.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js → TabsNavigation-DZAAspqR.js} +2 -2
- package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js.map → TabsNavigation-DZAAspqR.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js → TaskDrawer-BJkwfhIZ.js} +2 -2
- package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js.map → TaskDrawer-BJkwfhIZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js → TeamPage-BJgjxBgb.js} +2 -2
- package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js.map → TeamPage-BJgjxBgb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js → TerminalDashboardPage-D1WekoOy.js} +2 -2
- package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js.map → TerminalDashboardPage-D1WekoOy.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js → archive-DxemgIhF.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js.map → archive-DxemgIhF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js → archive-restore-CjS83f1V.js} +2 -2
- package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js.map → archive-restore-CjS83f1V.js.map} +1 -1
- package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js → arrow-right-B5PUcn8I.js} +2 -2
- package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js.map → arrow-right-B5PUcn8I.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js → bookmark-plus-DCc9aPbb.js} +2 -2
- package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js.map → bookmark-plus-DCc9aPbb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{bot-BLkaQscs.js → bot-DOwFtzak.js} +2 -2
- package/ccw/frontend/dist/assets/{bot-BLkaQscs.js.map → bot-DOwFtzak.js.map} +1 -1
- package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js → braces-96qH3aFh.js} +2 -2
- package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js.map → braces-96qH3aFh.js.map} +1 -1
- package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js → circle-stop-CCxSuil1.js} +2 -2
- package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js.map → circle-stop-CCxSuil1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js → cpu-CZNSJFdq.js} +2 -2
- package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js.map → cpu-CZNSJFdq.js.map} +1 -1
- package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js → ellipsis-vertical-h8xtvw2_.js} +2 -2
- package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js.map → ellipsis-vertical-h8xtvw2_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js → eye-D3NY0bm6.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js.map → eye-D3NY0bm6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js → eye-off-Cy2vkc8p.js} +2 -2
- package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js.map → eye-off-Cy2vkc8p.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js → file-json-Bzq3U1Mx.js} +2 -2
- package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js.map → file-json-Bzq3U1Mx.js.map} +1 -1
- package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js → file-text-DwuwPDPi.js} +2 -2
- package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js.map → file-text-DwuwPDPi.js.map} +1 -1
- package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js → filter-q9g-bknU.js} +2 -2
- package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js.map → filter-q9g-bknU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js → folder-CL6vb42J.js} +2 -2
- package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js.map → folder-CL6vb42J.js.map} +1 -1
- package/ccw/frontend/dist/assets/{gauge-kazFexTr.js → gauge-BkrcQBly.js} +2 -2
- package/ccw/frontend/dist/assets/{gauge-kazFexTr.js.map → gauge-BkrcQBly.js.map} +1 -1
- package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js → globe-BQbwyNeV.js} +2 -2
- package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js.map → globe-BQbwyNeV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js → grid-3x3-x5_7DrN7.js} +2 -2
- package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js.map → grid-3x3-x5_7DrN7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js → hard-drive-DTyWXwzf.js} +2 -2
- package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js.map → hard-drive-DTyWXwzf.js.map} +1 -1
- package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js → hash-80O0kJO7.js} +2 -2
- package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js.map → hash-80O0kJO7.js.map} +1 -1
- package/ccw/frontend/dist/assets/{history-ujQnmMC9.js → history-DDlN2Bwa.js} +2 -2
- package/ccw/frontend/dist/assets/{history-ujQnmMC9.js.map → history-DDlN2Bwa.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-CxzXz6o1.js → index-B9A3Hnrk.js} +2 -2
- package/ccw/frontend/dist/assets/{index-CxzXz6o1.js.map → index-B9A3Hnrk.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-B76AGix5.js → index-Bs80iCX0.js} +2 -2
- package/ccw/frontend/dist/assets/{index-B76AGix5.js.map → index-Bs80iCX0.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js → index-mbeo62f8.js} +2 -2
- package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js.map → index-mbeo62f8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{index-Dff4bg3u.js → index-rLgoBCfV.js} +3 -3
- package/ccw/frontend/dist/assets/{index-Dff4bg3u.js.map → index-rLgoBCfV.js.map} +1 -1
- package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js → layout-grid-C1niOWJx.js} +2 -2
- package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js.map → layout-grid-C1niOWJx.js.map} +1 -1
- package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js → lightbulb-BTmI7SUg.js} +2 -2
- package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js.map → lightbulb-BTmI7SUg.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js → link-2-CB9HKeuZ.js} +2 -2
- package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js.map → link-2-CB9HKeuZ.js.map} +1 -1
- package/ccw/frontend/dist/assets/{link-5yXdZBch.js → link-koEYiemK.js} +2 -2
- package/ccw/frontend/dist/assets/{link-5yXdZBch.js.map → link-koEYiemK.js.map} +1 -1
- package/ccw/frontend/dist/assets/{list-9lHhC_U_.js → list-v2_GaLdC.js} +2 -2
- package/ccw/frontend/dist/assets/{list-9lHhC_U_.js.map → list-v2_GaLdC.js.map} +1 -1
- package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js → map-pin-BQNfAqG_.js} +2 -2
- package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js.map → map-pin-BQNfAqG_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js → messages-square-Dzq5LGg9.js} +2 -2
- package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js.map → messages-square-Dzq5LGg9.js.map} +1 -1
- package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js → minimize-2-CtkoJXcz.js} +2 -2
- package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js.map → minimize-2-CtkoJXcz.js.map} +1 -1
- package/ccw/frontend/dist/assets/{package-BjOw1ldU.js → package-CH3smL37.js} +2 -2
- package/ccw/frontend/dist/assets/{package-BjOw1ldU.js.map → package-CH3smL37.js.map} +1 -1
- package/ccw/frontend/dist/assets/{plug-9dAARpE1.js → plug-CZ0aL_yF.js} +2 -2
- package/ccw/frontend/dist/assets/{plug-9dAARpE1.js.map → plug-CZ0aL_yF.js.map} +1 -1
- package/ccw/frontend/dist/assets/{power-K2S39x7f.js → power-F2A_J4l6.js} +2 -2
- package/ccw/frontend/dist/assets/{power-K2S39x7f.js.map → power-F2A_J4l6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{save-D9-CoT3x.js → save-Byxot0YU.js} +2 -2
- package/ccw/frontend/dist/assets/{save-D9-CoT3x.js.map → save-Byxot0YU.js.map} +1 -1
- package/ccw/frontend/dist/assets/{send-Bunw9NtC.js → send-JjqhUkpw.js} +2 -2
- package/ccw/frontend/dist/assets/{send-Bunw9NtC.js.map → send-JjqhUkpw.js.map} +1 -1
- package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js → settings-2--SuN9rAt.js} +2 -2
- package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js.map → settings-2--SuN9rAt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js → square-check-big-BbngGB2h.js} +2 -2
- package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js.map → square-check-big-BbngGB2h.js.map} +1 -1
- package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js → square-pen-CgrHgZSl.js} +2 -2
- package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js.map → square-pen-CgrHgZSl.js.map} +1 -1
- package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js → star-BU3TQr7Z.js} +2 -2
- package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js.map → star-BU3TQr7Z.js.map} +1 -1
- package/ccw/frontend/dist/assets/{style-BbREPmRj.js → style-CKs7nnn3.js} +2 -2
- package/ccw/frontend/dist/assets/{style-BbREPmRj.js.map → style-CKs7nnn3.js.map} +1 -1
- package/ccw/frontend/dist/assets/{target-CElrCVhR.js → target-DW5tsDW6.js} +2 -2
- package/ccw/frontend/dist/assets/{target-CElrCVhR.js.map → target-DW5tsDW6.js.map} +1 -1
- package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js → test-tube-BHm7w3ON.js} +2 -2
- package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js.map → test-tube-BHm7w3ON.js.map} +1 -1
- package/ccw/frontend/dist/assets/{upload-BD1F07wG.js → upload-DYR7PWwt.js} +2 -2
- package/ccw/frontend/dist/assets/{upload-BD1F07wG.js.map → upload-DYR7PWwt.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js → useApiSettings-D0TVgQD_.js} +2 -2
- package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js.map → useApiSettings-D0TVgQD_.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js → useCli-DfY8mAP8.js} +2 -2
- package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js.map → useCli-DfY8mAP8.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js → useCommands-CGusDp0F.js} +2 -2
- package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js.map → useCommands-CGusDp0F.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js → useDebounce-CIwh0fF1.js} +2 -2
- package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js.map → useDebounce-CIwh0fF1.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js → useFileExplorer-FMyFv39K.js} +2 -2
- package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js.map → useFileExplorer-FMyFv39K.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js → useLocale-B2qhsoTb.js} +2 -2
- package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js.map → useLocale-B2qhsoTb.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js → useSkills-cxKXMBm3.js} +3 -3
- package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js.map → useSkills-cxKXMBm3.js.map} +1 -1
- package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js → useSystemSettings-B-xUT_z-.js} +2 -2
- package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js.map → useSystemSettings-B-xUT_z-.js.map} +1 -1
- package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js → wand-sparkles-DZV_3lPr.js} +2 -2
- package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js.map → wand-sparkles-DZV_3lPr.js.map} +1 -1
- package/ccw/frontend/dist/index.html +1 -1
- package/package.json +105 -105
- package/ccw/frontend/dist/assets/SettingsPage-BPDbXPSM.js.map +0 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
{
|
|
2
|
+
"team_name": "motion-design",
|
|
3
|
+
"team_display_name": "Motion Design",
|
|
4
|
+
"description": "Motion design team for animation token systems, scroll choreography, GPU-accelerated transforms, reduced-motion fallback",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
|
|
7
|
+
"roles": {
|
|
8
|
+
"coordinator": {
|
|
9
|
+
"task_prefix": null,
|
|
10
|
+
"responsibility": "Scope assessment, pipeline orchestration, performance gate management, GC loop control",
|
|
11
|
+
"message_types": ["task_unblocked", "perf_checkpoint", "fix_required", "error", "shutdown"]
|
|
12
|
+
},
|
|
13
|
+
"motion-researcher": {
|
|
14
|
+
"task_prefix": "MRESEARCH",
|
|
15
|
+
"responsibility": "Audit existing animations, measure paint/composite costs, catalog easing patterns",
|
|
16
|
+
"message_types": ["research_ready", "research_progress", "error"]
|
|
17
|
+
},
|
|
18
|
+
"choreographer": {
|
|
19
|
+
"task_prefix": "CHOREO",
|
|
20
|
+
"responsibility": "Design animation token system, scroll-triggered reveal sequences, transition state diagrams",
|
|
21
|
+
"message_types": ["choreography_ready", "choreography_progress", "error"]
|
|
22
|
+
},
|
|
23
|
+
"animator": {
|
|
24
|
+
"task_prefix": "ANIM",
|
|
25
|
+
"inner_loop": true,
|
|
26
|
+
"responsibility": "Implement CSS animations/transitions, JS orchestration, IntersectionObserver triggers, rAF coordination",
|
|
27
|
+
"message_types": ["animation_ready", "animation_revision", "animation_progress", "error"]
|
|
28
|
+
},
|
|
29
|
+
"motion-tester": {
|
|
30
|
+
"task_prefix": "MTEST",
|
|
31
|
+
"responsibility": "Chrome DevTools perf traces, compositor-only verification, FPS measurement, layout thrashing detection, reduced-motion validation",
|
|
32
|
+
"message_types": ["perf_passed", "perf_warning", "fix_required", "error"]
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
|
|
36
|
+
"pipelines": {
|
|
37
|
+
"tokens": {
|
|
38
|
+
"description": "Animation token system: research -> choreography -> animation -> test",
|
|
39
|
+
"task_chain": ["MRESEARCH-001", "CHOREO-001", "ANIM-001", "MTEST-001"],
|
|
40
|
+
"complexity": "low"
|
|
41
|
+
},
|
|
42
|
+
"component": {
|
|
43
|
+
"description": "Component animation: research -> choreography -> animation -> test (GC loop)",
|
|
44
|
+
"task_chain": ["MRESEARCH-001", "CHOREO-001", "ANIM-001", "MTEST-001"],
|
|
45
|
+
"gc_loop": { "generator": "ANIM", "critic": "MTEST", "trigger": "FPS < 60 or layout thrashing" },
|
|
46
|
+
"complexity": "medium"
|
|
47
|
+
},
|
|
48
|
+
"page": {
|
|
49
|
+
"description": "Page scroll choreography: research -> choreography -> parallel animations -> test",
|
|
50
|
+
"task_chain": [
|
|
51
|
+
"MRESEARCH-001", "CHOREO-001",
|
|
52
|
+
"ANIM-001..N:parallel",
|
|
53
|
+
"MTEST-001"
|
|
54
|
+
],
|
|
55
|
+
"parallel_fan_out": { "after": "CHOREO-001", "tasks": "ANIM-*", "join_before": "MTEST-001" },
|
|
56
|
+
"complexity": "high"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
|
|
60
|
+
"innovation_patterns": {
|
|
61
|
+
"generator_critic": {
|
|
62
|
+
"generator": "animator",
|
|
63
|
+
"critic": "motion-tester",
|
|
64
|
+
"max_rounds": 2,
|
|
65
|
+
"convergence": "perf.score >= 8 && perf.fps >= 60 && perf.thrashing_count === 0",
|
|
66
|
+
"trigger": "FPS < 60 or layout thrashing detected",
|
|
67
|
+
"escalation": "Coordinator intervenes after max rounds"
|
|
68
|
+
},
|
|
69
|
+
"shared_memory": {
|
|
70
|
+
"file": "shared-memory.json",
|
|
71
|
+
"fields": {
|
|
72
|
+
"motion-researcher": ["animation_inventory", "performance_baseline", "easing_catalog"],
|
|
73
|
+
"choreographer": ["motion_tokens", "scroll_sequences", "state_diagrams"],
|
|
74
|
+
"animator": ["keyframe_registry", "orchestrator_registry"],
|
|
75
|
+
"motion-tester": ["perf_history", "issue_registry"]
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"parallel_fan_out": {
|
|
79
|
+
"pattern": "CP-3",
|
|
80
|
+
"description": "Multiple ANIM tasks execute in parallel for page mode, joined before MTEST",
|
|
81
|
+
"trigger": "page pipeline after CHOREO-001 completion"
|
|
82
|
+
},
|
|
83
|
+
"review_fix": {
|
|
84
|
+
"pattern": "CP-2",
|
|
85
|
+
"description": "Animator and motion-tester in Generator-Critic loop",
|
|
86
|
+
"max_rounds": 2,
|
|
87
|
+
"trigger": "FPS < 60 or layout thrashing detected"
|
|
88
|
+
}
|
|
89
|
+
},
|
|
90
|
+
|
|
91
|
+
"session_dirs": {
|
|
92
|
+
"base": ".workflow/.team/MD-{slug}-{YYYY-MM-DD}/",
|
|
93
|
+
"research": "research/",
|
|
94
|
+
"choreography": "choreography/",
|
|
95
|
+
"animations": "animations/",
|
|
96
|
+
"testing": "testing/",
|
|
97
|
+
"messages": ".workflow/.team-msg/{team-name}/"
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: team-ui-polish
|
|
3
|
+
description: Unified team skill for UI polish. Auto-discover and fix UI design issues using Impeccable design standards. Anti-AI-slop detection, color/typography/spacing quality, motion, interaction states, visual hierarchy. Uses team-worker agent architecture. Triggers on "team ui polish", "ui polish", "design polish".
|
|
4
|
+
allowed-tools: Agent, AskUserQuestion, Read, Write, Edit, Bash, Glob, Grep, TaskList, TaskGet, TaskUpdate, TaskCreate, TeamCreate, TeamDelete, SendMessage, mcp__ccw-tools__read_file, mcp__ccw-tools__write_file, mcp__ccw-tools__edit_file, mcp__ccw-tools__team_msg, mcp__chrome-devtools__evaluate_script, mcp__chrome-devtools__take_screenshot, mcp__chrome-devtools__navigate_page, mcp__chrome-devtools__resize_page
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Team UI Polish
|
|
8
|
+
|
|
9
|
+
Automatic UI quality improvement pipeline: scan -> diagnose -> optimize -> verify. Built on **team-worker agent architecture** -- all worker roles share a single agent definition with role-specific Phase 2-4 loaded from `roles/<role>/role.md`.
|
|
10
|
+
|
|
11
|
+
## Architecture
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Skill(skill="team-ui-polish", args="task description")
|
|
15
|
+
|
|
|
16
|
+
SKILL.md (this file) = Router
|
|
17
|
+
|
|
|
18
|
+
+--------------+--------------+
|
|
19
|
+
| |
|
|
20
|
+
no --role flag --role <name>
|
|
21
|
+
| |
|
|
22
|
+
Coordinator Worker
|
|
23
|
+
roles/coordinator/role.md roles/<name>/role.md
|
|
24
|
+
|
|
|
25
|
+
+-- analyze -> dispatch -> spawn workers -> STOP
|
|
26
|
+
|
|
|
27
|
+
+-------+-------+-------+
|
|
28
|
+
v v v v
|
|
29
|
+
[team-worker agents, each loads roles/<role>/role.md]
|
|
30
|
+
scanner diagnostician optimizer <-> verifier (GC loop)
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Role Registry
|
|
34
|
+
|
|
35
|
+
| Role | Path | Prefix | Inner Loop |
|
|
36
|
+
|------|------|--------|------------|
|
|
37
|
+
| coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | -- | -- |
|
|
38
|
+
| scanner | [roles/scanner/role.md](roles/scanner/role.md) | SCAN-* | false |
|
|
39
|
+
| diagnostician | [roles/diagnostician/role.md](roles/diagnostician/role.md) | DIAG-* | false |
|
|
40
|
+
| optimizer | [roles/optimizer/role.md](roles/optimizer/role.md) | OPT-* | true |
|
|
41
|
+
| verifier | [roles/verifier/role.md](roles/verifier/role.md) | VERIFY-* | false |
|
|
42
|
+
|
|
43
|
+
## Role Router
|
|
44
|
+
|
|
45
|
+
Parse `$ARGUMENTS`:
|
|
46
|
+
- Has `--role <name>` -> Read `roles/<name>/role.md`, execute Phase 2-4
|
|
47
|
+
- No `--role` -> `@roles/coordinator/role.md`, execute entry router
|
|
48
|
+
|
|
49
|
+
## Shared Constants
|
|
50
|
+
|
|
51
|
+
- **Session prefix**: `UIP`
|
|
52
|
+
- **Session path**: `.workflow/.team/UIP-<slug>-<date>/`
|
|
53
|
+
- **CLI tools**: `ccw cli --mode analysis` (read-only), `ccw cli --mode write` (modifications)
|
|
54
|
+
- **Message bus**: `mcp__ccw-tools__team_msg(session_id=<session-id>, ...)`
|
|
55
|
+
- **Max GC rounds**: 2
|
|
56
|
+
|
|
57
|
+
## Worker Spawn Template
|
|
58
|
+
|
|
59
|
+
Coordinator spawns workers using this template:
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
Agent({
|
|
63
|
+
subagent_type: "team-worker",
|
|
64
|
+
description: "Spawn <role> worker for <task-id>",
|
|
65
|
+
team_name: "ui-polish",
|
|
66
|
+
name: "<role>",
|
|
67
|
+
run_in_background: true,
|
|
68
|
+
prompt: `## Role Assignment
|
|
69
|
+
role: <role>
|
|
70
|
+
role_spec: <skill_root>/roles/<role>/role.md
|
|
71
|
+
session: <session-folder>
|
|
72
|
+
session_id: <session-id>
|
|
73
|
+
team_name: ui-polish
|
|
74
|
+
requirement: <task-description>
|
|
75
|
+
inner_loop: <true|false>
|
|
76
|
+
|
|
77
|
+
Read role_spec file (@<skill_root>/roles/<role>/role.md) to load Phase 2-4 domain instructions.
|
|
78
|
+
Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).`
|
|
79
|
+
})
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## User Commands
|
|
83
|
+
|
|
84
|
+
| Command | Action |
|
|
85
|
+
|---------|--------|
|
|
86
|
+
| `check` / `status` | View execution status graph |
|
|
87
|
+
| `resume` / `continue` | Advance to next step |
|
|
88
|
+
|
|
89
|
+
## Specs Reference
|
|
90
|
+
|
|
91
|
+
- [specs/pipelines.md](specs/pipelines.md) -- Pipeline definitions and task registry
|
|
92
|
+
- [specs/team-config.json](specs/team-config.json) -- Team configuration
|
|
93
|
+
- [specs/anti-patterns.md](specs/anti-patterns.md) -- AI slop and design anti-pattern catalog
|
|
94
|
+
- [specs/design-standards.md](specs/design-standards.md) -- Impeccable positive design standards
|
|
95
|
+
- [specs/fix-strategies.md](specs/fix-strategies.md) -- Issue-to-fix mapping
|
|
96
|
+
- [specs/scoring-guide.md](specs/scoring-guide.md) -- Scoring rubric
|
|
97
|
+
|
|
98
|
+
## Session Directory
|
|
99
|
+
|
|
100
|
+
```
|
|
101
|
+
.workflow/.team/UIP-<slug>-<date>/
|
|
102
|
+
+-- .msg/
|
|
103
|
+
| +-- messages.jsonl # Team message bus
|
|
104
|
+
| +-- meta.json # Pipeline config + GC state
|
|
105
|
+
+-- scan/ # Scanner output
|
|
106
|
+
| +-- scan-report.md
|
|
107
|
+
+-- diagnosis/ # Diagnostician output
|
|
108
|
+
| +-- diagnosis-report.md
|
|
109
|
+
+-- optimization/ # Optimizer output
|
|
110
|
+
| +-- fix-log.md
|
|
111
|
+
+-- verification/ # Verifier output
|
|
112
|
+
| +-- verify-report.md
|
|
113
|
+
+-- evidence/ # Screenshots (before/after)
|
|
114
|
+
| +-- *.png
|
|
115
|
+
+-- wisdom/ # Cross-task knowledge
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Error Handling
|
|
119
|
+
|
|
120
|
+
| Scenario | Resolution |
|
|
121
|
+
|----------|------------|
|
|
122
|
+
| Unknown command | Error with available command list |
|
|
123
|
+
| Role not found | Error with role registry |
|
|
124
|
+
| Session corruption | Attempt recovery, fallback to manual |
|
|
125
|
+
| Fast-advance conflict | Coordinator reconciles on next callback |
|
|
126
|
+
| Completion action fails | Default to Keep Active |
|
|
127
|
+
| GC loop stuck > 2 rounds | Escalate to user: accept / retry / terminate |
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# Analyze Task
|
|
2
|
+
|
|
3
|
+
Parse user task -> detect polish scope -> determine pipeline mode -> estimate complexity.
|
|
4
|
+
|
|
5
|
+
**CONSTRAINT**: Text-level analysis only. NO source code reading, NO codebase exploration.
|
|
6
|
+
|
|
7
|
+
## Signal Detection
|
|
8
|
+
|
|
9
|
+
| Keywords | Dimension | Priority |
|
|
10
|
+
|----------|-----------|----------|
|
|
11
|
+
| AI slop, generic, templated, looks like AI | Anti-Patterns | P0 |
|
|
12
|
+
| color, palette, contrast, OKLCH, dark mode, theme | Color Quality | P1 |
|
|
13
|
+
| font, typography, heading, text size, type scale | Typography | P1 |
|
|
14
|
+
| spacing, padding, margin, rhythm, gap, grid | Spacing/Layout | P1 |
|
|
15
|
+
| animation, transition, motion, easing, animate | Motion | P2 |
|
|
16
|
+
| hover, focus, active, disabled, states, interaction | Interaction States | P2 |
|
|
17
|
+
| hierarchy, visual weight, composition, squint | Visual Hierarchy | P2 |
|
|
18
|
+
| responsive, mobile, breakpoint, viewport | Responsive | P2 |
|
|
19
|
+
|
|
20
|
+
## Scope Determination
|
|
21
|
+
|
|
22
|
+
| Signal | Pipeline Mode |
|
|
23
|
+
|--------|---------------|
|
|
24
|
+
| "scan", "audit", "check", "report", "analyze", "review" | scan-only |
|
|
25
|
+
| "fix color", "fix typography", specific dimension keyword | targeted |
|
|
26
|
+
| "polish", "fix all", "full", "improve", "clean up", "redesign" | full |
|
|
27
|
+
| Unclear | ask user |
|
|
28
|
+
|
|
29
|
+
## Dimension Filter (targeted mode only)
|
|
30
|
+
|
|
31
|
+
When targeted mode detected, extract which dimensions to focus on:
|
|
32
|
+
|
|
33
|
+
| Keywords | Dimension Filter |
|
|
34
|
+
|----------|-----------------|
|
|
35
|
+
| AI slop, generic | anti_patterns |
|
|
36
|
+
| color, palette, contrast | color |
|
|
37
|
+
| font, typography, type | typography |
|
|
38
|
+
| spacing, layout, grid | spacing |
|
|
39
|
+
| animation, motion | motion |
|
|
40
|
+
| hover, focus, states | interaction |
|
|
41
|
+
| hierarchy, visual weight | hierarchy |
|
|
42
|
+
| responsive, mobile | responsive |
|
|
43
|
+
|
|
44
|
+
## Target Detection
|
|
45
|
+
|
|
46
|
+
| Signal | Target Type |
|
|
47
|
+
|--------|-------------|
|
|
48
|
+
| URL provided (http/https) | url |
|
|
49
|
+
| File path provided (.tsx, .css, .html) | component |
|
|
50
|
+
| "all", "full site", "entire", "everything" | full_site |
|
|
51
|
+
| Directory path | directory |
|
|
52
|
+
|
|
53
|
+
## Complexity Scoring
|
|
54
|
+
|
|
55
|
+
| Factor | Points |
|
|
56
|
+
|--------|--------|
|
|
57
|
+
| Single component / single URL | +1 |
|
|
58
|
+
| Multiple components | +2 |
|
|
59
|
+
| Full site | +3 |
|
|
60
|
+
| Multiple dimensions targeted | +1 |
|
|
61
|
+
| Chrome DevTools required | +1 |
|
|
62
|
+
| Responsive checks needed | +1 |
|
|
63
|
+
|
|
64
|
+
Results: 1-2 Low (scan-only), 3-4 Medium (targeted), 5+ High (full)
|
|
65
|
+
|
|
66
|
+
## Output
|
|
67
|
+
|
|
68
|
+
Write scope context to coordinator memory:
|
|
69
|
+
```json
|
|
70
|
+
{
|
|
71
|
+
"pipeline_mode": "<scan-only|targeted|full>",
|
|
72
|
+
"target": "<url|component-path|full_site>",
|
|
73
|
+
"target_type": "<url|component|directory|full_site>",
|
|
74
|
+
"dimension_filters": ["<dimension-names or empty for all>"],
|
|
75
|
+
"complexity": { "score": 0, "level": "Low|Medium|High" }
|
|
76
|
+
}
|
|
77
|
+
```
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
# Command: Dispatch
|
|
2
|
+
|
|
3
|
+
Create the UI polish task chain with correct dependencies and structured task descriptions. Supports scan-only, targeted, and full pipeline modes.
|
|
4
|
+
|
|
5
|
+
## Phase 2: Context Loading
|
|
6
|
+
|
|
7
|
+
| Input | Source | Required |
|
|
8
|
+
|-------|--------|----------|
|
|
9
|
+
| User requirement | From coordinator Phase 1 | Yes |
|
|
10
|
+
| Session folder | From coordinator Phase 2 | Yes |
|
|
11
|
+
| Pipeline mode | From analyze output | Yes |
|
|
12
|
+
| Target | From analyze output (url/component/full_site) | Yes |
|
|
13
|
+
| Dimension filters | From analyze output (targeted mode only) | No |
|
|
14
|
+
|
|
15
|
+
1. Load user requirement and polish scope from session context
|
|
16
|
+
2. Load pipeline stage definitions from specs/pipelines.md
|
|
17
|
+
3. Read `pipeline_mode`, `target`, and `dimension_filters` from session context
|
|
18
|
+
|
|
19
|
+
## Phase 3: Task Chain Creation (Mode-Branched)
|
|
20
|
+
|
|
21
|
+
### Task Description Template
|
|
22
|
+
|
|
23
|
+
Every task description uses structured format:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
TaskCreate({
|
|
27
|
+
subject: "<TASK-ID>",
|
|
28
|
+
description: "PURPOSE: <what this task achieves> | Success: <measurable completion criteria>
|
|
29
|
+
TASK:
|
|
30
|
+
- <step 1: specific action>
|
|
31
|
+
- <step 2: specific action>
|
|
32
|
+
- <step 3: specific action>
|
|
33
|
+
CONTEXT:
|
|
34
|
+
- Session: <session-folder>
|
|
35
|
+
- Target: <url|component-path|full_site>
|
|
36
|
+
- Dimension filters: <all | specific dimensions>
|
|
37
|
+
- Upstream artifacts: <artifact-1>, <artifact-2>
|
|
38
|
+
- Shared memory: <session>/wisdom/.msg/meta.json
|
|
39
|
+
EXPECTED: <deliverable path> + <quality criteria>
|
|
40
|
+
CONSTRAINTS: <scope limits, focus areas>"
|
|
41
|
+
})
|
|
42
|
+
TaskUpdate({ taskId: "<TASK-ID>", addBlockedBy: [<dependency-list>], owner: "<role>" })
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### Mode Router
|
|
46
|
+
|
|
47
|
+
| Mode | Action |
|
|
48
|
+
|------|--------|
|
|
49
|
+
| `scan-only` | Create 2 tasks: SCAN -> DIAG |
|
|
50
|
+
| `targeted` | Create 4 tasks: SCAN -> DIAG -> OPT -> VERIFY |
|
|
51
|
+
| `full` | Create 4 tasks: SCAN -> DIAG -> OPT -> VERIFY (with GC loop enabled) |
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
### Scan-Only Pipeline Task Chain
|
|
56
|
+
|
|
57
|
+
**SCAN-001** (scanner):
|
|
58
|
+
```
|
|
59
|
+
TaskCreate({
|
|
60
|
+
subject: "SCAN-001",
|
|
61
|
+
description: "PURPOSE: Scan UI against Impeccable's 8 audit dimensions to discover all design problems | Success: Complete scan report with per-dimension scores and issue inventory
|
|
62
|
+
TASK:
|
|
63
|
+
- Load target files or take screenshots via Chrome DevTools
|
|
64
|
+
- Extract color values, font definitions, spacing values, animation declarations
|
|
65
|
+
- Score all 8 dimensions: anti-patterns, color, typography, spacing, motion, interaction, hierarchy, responsive
|
|
66
|
+
- Generate issue inventory with file:line locations and severity
|
|
67
|
+
CONTEXT:
|
|
68
|
+
- Session: <session-folder>
|
|
69
|
+
- Target: <target>
|
|
70
|
+
- Dimension filters: all
|
|
71
|
+
- Shared memory: <session>/wisdom/.msg/meta.json
|
|
72
|
+
EXPECTED: <session>/scan/scan-report.md | 8-dimension scored report with issue inventory
|
|
73
|
+
CONSTRAINTS: Read-only analysis | Reference specs/anti-patterns.md and specs/design-standards.md"
|
|
74
|
+
})
|
|
75
|
+
TaskUpdate({ taskId: "SCAN-001", owner: "scanner" })
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
**DIAG-001** (diagnostician):
|
|
79
|
+
```
|
|
80
|
+
TaskCreate({
|
|
81
|
+
subject: "DIAG-001",
|
|
82
|
+
description: "PURPOSE: Deep-dive root cause analysis of scan findings, classify severity, group systemic vs one-off | Success: Prioritized diagnosis with fix dependency graph
|
|
83
|
+
TASK:
|
|
84
|
+
- Read scan report and classify each issue as systemic or one-off
|
|
85
|
+
- Group issues by root cause
|
|
86
|
+
- Build fix dependency graph (which fixes must come first)
|
|
87
|
+
- Prioritize by severity (P0 -> P1 -> P2 -> P3)
|
|
88
|
+
CONTEXT:
|
|
89
|
+
- Session: <session-folder>
|
|
90
|
+
- Upstream artifacts: scan/scan-report.md
|
|
91
|
+
- Shared memory: <session>/wisdom/.msg/meta.json
|
|
92
|
+
EXPECTED: <session>/diagnosis/diagnosis-report.md | Root cause groups with fix strategies and dependency graph
|
|
93
|
+
CONSTRAINTS: Read-only analysis | Reference specs/fix-strategies.md"
|
|
94
|
+
})
|
|
95
|
+
TaskUpdate({ taskId: "DIAG-001", addBlockedBy: ["SCAN-001"], owner: "diagnostician" })
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
### Targeted Pipeline Task Chain
|
|
101
|
+
|
|
102
|
+
Same as scan-only SCAN-001 and DIAG-001, plus:
|
|
103
|
+
|
|
104
|
+
**Note**: For targeted mode, SCAN-001 description adds dimension filter:
|
|
105
|
+
```
|
|
106
|
+
- Dimension filters: <specific dimensions from analyze output>
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
**OPT-001** (optimizer):
|
|
110
|
+
```
|
|
111
|
+
TaskCreate({
|
|
112
|
+
subject: "OPT-001",
|
|
113
|
+
description: "PURPOSE: Apply targeted fixes for specified dimensions following Impeccable design standards | Success: All P0/P1 issues in targeted dimensions resolved
|
|
114
|
+
TASK:
|
|
115
|
+
- Read diagnosis report for prioritized fix plan
|
|
116
|
+
- Apply fixes in dependency order (systemic first, then one-off)
|
|
117
|
+
- Follow Impeccable fix strategies per dimension
|
|
118
|
+
- Self-validate: no regressions, code compiles/lints
|
|
119
|
+
CONTEXT:
|
|
120
|
+
- Session: <session-folder>
|
|
121
|
+
- Dimension filters: <targeted dimensions>
|
|
122
|
+
- Upstream artifacts: scan/scan-report.md, diagnosis/diagnosis-report.md
|
|
123
|
+
- Shared memory: <session>/wisdom/.msg/meta.json
|
|
124
|
+
EXPECTED: Modified source files + <session>/optimization/fix-log.md | Each fix documented with before/after
|
|
125
|
+
CONSTRAINTS: Only fix targeted dimensions | Reference specs/fix-strategies.md and specs/design-standards.md"
|
|
126
|
+
})
|
|
127
|
+
TaskUpdate({ taskId: "OPT-001", addBlockedBy: ["DIAG-001"], owner: "optimizer" })
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
**VERIFY-001** (verifier):
|
|
131
|
+
```
|
|
132
|
+
TaskCreate({
|
|
133
|
+
subject: "VERIFY-001",
|
|
134
|
+
description: "PURPOSE: Verify fixes improved scores without introducing regressions | Success: Score improved or maintained in all dimensions, zero regressions
|
|
135
|
+
TASK:
|
|
136
|
+
- Re-scan fixed code against same 8 dimensions
|
|
137
|
+
- Calculate before/after score delta per dimension
|
|
138
|
+
- Check for regressions (new issues introduced by fixes)
|
|
139
|
+
- Take after screenshots if Chrome DevTools available
|
|
140
|
+
CONTEXT:
|
|
141
|
+
- Session: <session-folder>
|
|
142
|
+
- Upstream artifacts: scan/scan-report.md, optimization/fix-log.md
|
|
143
|
+
- Shared memory: <session>/wisdom/.msg/meta.json
|
|
144
|
+
EXPECTED: <session>/verification/verify-report.md | Before/after comparison with regression check
|
|
145
|
+
CONSTRAINTS: Read-only verification | Signal fix_required if regressions found"
|
|
146
|
+
})
|
|
147
|
+
TaskUpdate({ taskId: "VERIFY-001", addBlockedBy: ["OPT-001"], owner: "verifier" })
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
### Full Pipeline Task Chain
|
|
153
|
+
|
|
154
|
+
Same as targeted pipeline. The difference is in GC loop behavior:
|
|
155
|
+
- When VERIFY-001 reports `fix_required`, coordinator creates OPT-fix task (see monitor.md)
|
|
156
|
+
- Full mode enables GC loop; targeted mode does not create GC fix tasks
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
### GC Fix Task Template (created by monitor.md when verify fails)
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
TaskCreate({
|
|
164
|
+
subject: "OPT-fix-<round>",
|
|
165
|
+
description: "PURPOSE: Address verification regressions from round <round> | Success: All regressions resolved, no new issues
|
|
166
|
+
TASK:
|
|
167
|
+
- Parse verification feedback for specific regressions
|
|
168
|
+
- Apply targeted fixes for regression issues only
|
|
169
|
+
- Self-validate before reporting
|
|
170
|
+
CONTEXT:
|
|
171
|
+
- Session: <session-folder>
|
|
172
|
+
- Upstream artifacts: verification/verify-report.md, optimization/fix-log.md
|
|
173
|
+
- Shared memory: <session>/wisdom/.msg/meta.json
|
|
174
|
+
EXPECTED: Updated source files + appended <session>/optimization/fix-log.md
|
|
175
|
+
CONSTRAINTS: Fix regressions only, do not expand scope"
|
|
176
|
+
})
|
|
177
|
+
TaskUpdate({ taskId: "OPT-fix-<round>", owner: "optimizer" })
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Then create new VERIFY task blocked by OPT-fix.
|
|
181
|
+
|
|
182
|
+
## Phase 4: Validation
|
|
183
|
+
|
|
184
|
+
Verify task chain integrity:
|
|
185
|
+
|
|
186
|
+
| Check | Method | Expected |
|
|
187
|
+
|-------|--------|----------|
|
|
188
|
+
| Task count correct | TaskList count | scan-only: 2, targeted: 4, full: 4 |
|
|
189
|
+
| Dependencies correct | Trace dependency graph | Acyclic, correct blockedBy |
|
|
190
|
+
| No circular dependencies | Trace dependency graph | Acyclic |
|
|
191
|
+
| Task IDs use correct prefixes | Pattern check | SCAN/DIAG/OPT/VERIFY |
|
|
192
|
+
| Structured descriptions complete | Each has PURPOSE/TASK/CONTEXT/EXPECTED/CONSTRAINTS | All present |
|
|
193
|
+
|
|
194
|
+
If validation fails, fix the specific task and re-validate.
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
# Monitor Pipeline
|
|
2
|
+
|
|
3
|
+
Event-driven pipeline coordination. Beat model: coordinator wake -> process -> spawn -> STOP.
|
|
4
|
+
|
|
5
|
+
## Constants
|
|
6
|
+
|
|
7
|
+
- SPAWN_MODE: background
|
|
8
|
+
- ONE_STEP_PER_INVOCATION: true
|
|
9
|
+
- FAST_ADVANCE_AWARE: true
|
|
10
|
+
- WORKER_AGENT: team-worker
|
|
11
|
+
- MAX_GC_ROUNDS: 2
|
|
12
|
+
|
|
13
|
+
## Handler Router
|
|
14
|
+
|
|
15
|
+
| Source | Handler |
|
|
16
|
+
|--------|---------|
|
|
17
|
+
| Message contains [scanner], [diagnostician], [optimizer], [verifier] | handleCallback |
|
|
18
|
+
| "capability_gap" | handleAdapt |
|
|
19
|
+
| "check" or "status" | handleCheck |
|
|
20
|
+
| "resume" or "continue" | handleResume |
|
|
21
|
+
| All tasks completed | handleComplete |
|
|
22
|
+
| Default | handleSpawnNext |
|
|
23
|
+
|
|
24
|
+
## handleCallback
|
|
25
|
+
|
|
26
|
+
Worker completed. Process and advance.
|
|
27
|
+
|
|
28
|
+
1. Parse message to identify role and task ID:
|
|
29
|
+
|
|
30
|
+
| Message Pattern | Role |
|
|
31
|
+
|----------------|------|
|
|
32
|
+
| `[scanner]` or `SCAN-*` | scanner |
|
|
33
|
+
| `[diagnostician]` or `DIAG-*` | diagnostician |
|
|
34
|
+
| `[optimizer]` or `OPT-*` | optimizer |
|
|
35
|
+
| `[verifier]` or `VERIFY-*` | verifier |
|
|
36
|
+
|
|
37
|
+
2. Mark task completed: `TaskUpdate({ taskId: "<task-id>", status: "completed" })`
|
|
38
|
+
3. Record completion in session state
|
|
39
|
+
|
|
40
|
+
4. Check checkpoint for completed task:
|
|
41
|
+
|
|
42
|
+
| Completed Task | Checkpoint | Action |
|
|
43
|
+
|---------------|------------|--------|
|
|
44
|
+
| SCAN-001 | - | Notify user: scan complete, proceed to diagnosis |
|
|
45
|
+
| DIAG-001 | - | Check pipeline mode: scan-only -> handleComplete, else proceed to OPT |
|
|
46
|
+
| OPT-001 / OPT-fix-* | - | Proceed to VERIFY |
|
|
47
|
+
| VERIFY-001 / VERIFY-* | GC Checkpoint | Check verify signal -> GC loop or handleComplete |
|
|
48
|
+
|
|
49
|
+
5. **GC Checkpoint handling** (VERIFY task completed):
|
|
50
|
+
Read verify signal from message: `verify_passed`, `verify_failed`, or `fix_required`
|
|
51
|
+
|
|
52
|
+
| Signal | Condition | Action |
|
|
53
|
+
|--------|-----------|--------|
|
|
54
|
+
| `verify_passed` | No regressions, score_delta >= 0 | GC converged -> handleComplete |
|
|
55
|
+
| `verify_failed` | Regressions found but non-critical | gc_rounds < max -> create OPT-fix task |
|
|
56
|
+
| `fix_required` | Score dropped or critical regressions | gc_rounds < max -> create OPT-fix task (CRITICAL) |
|
|
57
|
+
| Any | gc_rounds >= max | Escalate to user |
|
|
58
|
+
|
|
59
|
+
**GC Fix Task Creation**:
|
|
60
|
+
```
|
|
61
|
+
TaskCreate({ subject: "OPT-fix-<round>",
|
|
62
|
+
description: "PURPOSE: Address verification regressions | Success: All regressions resolved
|
|
63
|
+
TASK:
|
|
64
|
+
- Parse verification feedback for specific regressions
|
|
65
|
+
- Apply targeted fixes for regression issues only
|
|
66
|
+
CONTEXT:
|
|
67
|
+
- Session: <session-folder>
|
|
68
|
+
- Upstream artifacts: verification/verify-report.md" })
|
|
69
|
+
TaskUpdate({ taskId: "OPT-fix-<round>", owner: "optimizer" })
|
|
70
|
+
```
|
|
71
|
+
Then create new VERIFY task blocked by OPT-fix. Increment gc_state.round.
|
|
72
|
+
|
|
73
|
+
**GC Escalation Options** (when max rounds exceeded):
|
|
74
|
+
1. Accept current state - skip further fixes, complete pipeline
|
|
75
|
+
2. Try one more round
|
|
76
|
+
3. Terminate
|
|
77
|
+
|
|
78
|
+
6. -> handleSpawnNext
|
|
79
|
+
|
|
80
|
+
## handleCheck
|
|
81
|
+
|
|
82
|
+
Read-only status report, then STOP.
|
|
83
|
+
|
|
84
|
+
```
|
|
85
|
+
Pipeline Status (<pipeline-mode>):
|
|
86
|
+
[DONE] SCAN-001 (scanner) -> scan-report.md
|
|
87
|
+
[DONE] DIAG-001 (diagnostician) -> diagnosis-report.md
|
|
88
|
+
[RUN] OPT-001 (optimizer) -> applying fixes...
|
|
89
|
+
[WAIT] VERIFY-001 (verifier) -> blocked by OPT-001
|
|
90
|
+
|
|
91
|
+
GC Rounds: 0/2
|
|
92
|
+
Score: <before-score>/32 -> pending
|
|
93
|
+
Session: <session-id>
|
|
94
|
+
Commands: 'resume' to advance | 'check' to refresh
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Output status -- do NOT advance pipeline.
|
|
98
|
+
|
|
99
|
+
## handleResume
|
|
100
|
+
|
|
101
|
+
1. Audit task list for inconsistencies:
|
|
102
|
+
- Tasks stuck in "in_progress" -> reset to "pending"
|
|
103
|
+
- Tasks with completed blockers but still "pending" -> include in spawn list
|
|
104
|
+
2. -> handleSpawnNext
|
|
105
|
+
|
|
106
|
+
## handleSpawnNext
|
|
107
|
+
|
|
108
|
+
Find ready tasks, spawn workers, STOP.
|
|
109
|
+
|
|
110
|
+
1. Collect: completedSubjects, inProgressSubjects, readySubjects (pending + all blockedBy completed)
|
|
111
|
+
2. No ready + work in progress -> report waiting, STOP
|
|
112
|
+
3. No ready + nothing in progress -> handleComplete
|
|
113
|
+
4. Has ready -> for each:
|
|
114
|
+
a. Check inner loop role with active worker -> skip (worker picks up)
|
|
115
|
+
b. TaskUpdate -> in_progress
|
|
116
|
+
c. team_msg log -> task_unblocked
|
|
117
|
+
d. Spawn team-worker:
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
Agent({
|
|
121
|
+
subagent_type: "team-worker",
|
|
122
|
+
description: "Spawn <role> worker for <task-id>",
|
|
123
|
+
team_name: "ui-polish",
|
|
124
|
+
name: "<role>",
|
|
125
|
+
run_in_background: true,
|
|
126
|
+
prompt: `## Role Assignment
|
|
127
|
+
role: <role>
|
|
128
|
+
role_spec: <project>/.claude/skills/team-ui-polish/roles/<role>/role.md
|
|
129
|
+
session: <session-folder>
|
|
130
|
+
session_id: <session-id>
|
|
131
|
+
team_name: ui-polish
|
|
132
|
+
requirement: <task-description>
|
|
133
|
+
inner_loop: <true|false>
|
|
134
|
+
|
|
135
|
+
Read role_spec file to load Phase 2-4 domain instructions.
|
|
136
|
+
Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5 (report).`
|
|
137
|
+
})
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
**Spawn rules by mode**:
|
|
141
|
+
|
|
142
|
+
| Mode | Behavior |
|
|
143
|
+
|------|----------|
|
|
144
|
+
| scan-only | Sequential: SCAN-001 -> DIAG-001 |
|
|
145
|
+
| targeted | Sequential: SCAN -> DIAG -> OPT -> VERIFY |
|
|
146
|
+
| full | Sequential: SCAN -> DIAG -> OPT -> VERIFY, then GC loop if needed |
|
|
147
|
+
|
|
148
|
+
5. Add to active_workers, update session, output summary, STOP
|
|
149
|
+
|
|
150
|
+
## handleComplete
|
|
151
|
+
|
|
152
|
+
Pipeline done. Generate report and completion action.
|
|
153
|
+
|
|
154
|
+
**Completion check by mode**:
|
|
155
|
+
|
|
156
|
+
| Mode | Completion Condition |
|
|
157
|
+
|------|---------------------|
|
|
158
|
+
| scan-only | SCAN-001 + DIAG-001 completed |
|
|
159
|
+
| targeted | All 4 tasks (+ any fix tasks) completed |
|
|
160
|
+
| full | All 4 tasks (+ any fix tasks) completed |
|
|
161
|
+
|
|
162
|
+
1. If any tasks not completed -> handleSpawnNext
|
|
163
|
+
2. If all completed -> transition to coordinator Phase 5
|
|
164
|
+
|
|
165
|
+
## handleAdapt
|
|
166
|
+
|
|
167
|
+
Capability gap reported mid-pipeline.
|
|
168
|
+
|
|
169
|
+
1. Parse gap description
|
|
170
|
+
2. Check if existing role covers it -> redirect
|
|
171
|
+
3. Role count < 5 -> generate dynamic role spec
|
|
172
|
+
4. Create new task, spawn worker
|
|
173
|
+
5. Role count >= 5 -> merge or pause
|
|
174
|
+
|
|
175
|
+
## Fast-Advance Reconciliation
|
|
176
|
+
|
|
177
|
+
On every coordinator wake:
|
|
178
|
+
1. Read team_msg entries with type="fast_advance"
|
|
179
|
+
2. Sync active_workers with spawned successors
|
|
180
|
+
3. No duplicate spawns
|