claude-code-workflow 7.2.26 → 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-arch-opt/SKILL.md +1 -1
- package/.claude/skills/team-arch-opt/roles/coordinator/commands/monitor.md +3 -1
- package/.claude/skills/team-arch-opt/roles/refactorer/role.md +3 -1
- package/.claude/skills/team-arch-opt/specs/team-config.json +2 -2
- package/.claude/skills/team-coordinate/SKILL.md +4 -3
- package/.claude/skills/team-coordinate/roles/coordinator/commands/analyze-task.md +1 -1
- package/.claude/skills/team-coordinate/roles/coordinator/commands/dispatch.md +3 -2
- package/.claude/skills/team-coordinate/roles/coordinator/commands/monitor.md +3 -2
- package/.claude/skills/team-coordinate/roles/coordinator/role.md +16 -15
- package/.claude/skills/team-coordinate/specs/pipelines.md +7 -4
- package/.claude/skills/team-coordinate/specs/role-spec-template.md +1 -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-lifecycle-v4/SKILL.md +1 -1
- package/.claude/skills/team-lifecycle-v4/roles/coordinator/commands/dispatch.md +14 -2
- package/.claude/skills/team-lifecycle-v4/roles/coordinator/commands/monitor.md +24 -2
- package/.claude/skills/team-lifecycle-v4/roles/executor/role.md +3 -1
- 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-perf-opt/SKILL.md +1 -1
- package/.claude/skills/team-perf-opt/roles/optimizer/role.md +3 -1
- package/.claude/skills/team-perf-opt/specs/team-config.json +2 -2
- package/.claude/skills/team-quality-assurance/SKILL.md +1 -1
- package/.claude/skills/team-quality-assurance/roles/coordinator/commands/dispatch.md +4 -2
- package/.claude/skills/team-quality-assurance/roles/coordinator/commands/monitor.md +4 -2
- package/.claude/skills/team-quality-assurance/roles/executor/role.md +3 -1
- package/.claude/skills/team-testing/SKILL.md +1 -1
- package/.claude/skills/team-testing/roles/coordinator/commands/dispatch.md +5 -2
- package/.claude/skills/team-testing/roles/coordinator/commands/monitor.md +4 -2
- package/.claude/skills/team-testing/roles/executor/role.md +3 -1
- 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
|
+
}
|
|
@@ -90,7 +90,7 @@ Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5
|
|
|
90
90
|
})
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
-
**Inner Loop roles** (optimizer): Set `inner_loop
|
|
93
|
+
**Inner Loop roles** (optimizer): Set `inner_loop` dynamically — `true` for single mode, `false` for fan-out/independent (parallel branches).
|
|
94
94
|
**Single-task roles** (profiler, strategist, benchmarker, reviewer): Set `inner_loop: false`.
|
|
95
95
|
|
|
96
96
|
## User Commands
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
role: optimizer
|
|
3
3
|
prefix: IMPL
|
|
4
|
-
inner_loop:
|
|
4
|
+
inner_loop: dynamic
|
|
5
5
|
additional_prefixes: [FIX]
|
|
6
6
|
message_types:
|
|
7
7
|
success: impl_complete
|
|
@@ -11,6 +11,8 @@ message_types:
|
|
|
11
11
|
|
|
12
12
|
# Code Optimizer
|
|
13
13
|
|
|
14
|
+
> **inner_loop: dynamic** — Dispatch sets per-task: `true` for single mode (one IMPL task with iterative fix cycles), `false` for fan-out/independent modes (IMPL-B01..N run as separate parallel workers). When false, each branch gets its own worker.
|
|
15
|
+
|
|
14
16
|
Implement optimization changes following the strategy plan. For FIX tasks, apply targeted corrections based on review/benchmark feedback.
|
|
15
17
|
|
|
16
18
|
## Modes
|
|
@@ -65,10 +65,10 @@
|
|
|
65
65
|
"type": "code_generation",
|
|
66
66
|
"description": "Implements optimization changes following the strategy plan",
|
|
67
67
|
"role_spec": "roles/optimizer/role.md",
|
|
68
|
-
"inner_loop":
|
|
68
|
+
"inner_loop": "dynamic",
|
|
69
69
|
"frontmatter": {
|
|
70
70
|
"prefix": "IMPL",
|
|
71
|
-
"inner_loop":
|
|
71
|
+
"inner_loop": "dynamic",
|
|
72
72
|
"additional_prefixes": ["FIX"],
|
|
73
73
|
"discuss_rounds": [],
|
|
74
74
|
"delegates_to": [],
|
|
@@ -38,7 +38,7 @@ Skill(skill="team-quality-assurance", args="task description")
|
|
|
38
38
|
| scout | [roles/scout/role.md](roles/scout/role.md) | SCOUT-* | false |
|
|
39
39
|
| strategist | [roles/strategist/role.md](roles/strategist/role.md) | QASTRAT-* | false |
|
|
40
40
|
| generator | [roles/generator/role.md](roles/generator/role.md) | QAGEN-* | false |
|
|
41
|
-
| executor | [roles/executor/role.md](roles/executor/role.md) | QARUN-* |
|
|
41
|
+
| executor | [roles/executor/role.md](roles/executor/role.md) | QARUN-* | dynamic |
|
|
42
42
|
| analyst | [roles/analyst/role.md](roles/analyst/role.md) | QAANA-* | false |
|
|
43
43
|
|
|
44
44
|
## Role Router
|
|
@@ -87,8 +87,10 @@ SCOUT-002 (scout): Regression scan after fixes
|
|
|
87
87
|
|
|
88
88
|
## InnerLoop Flag Rules
|
|
89
89
|
|
|
90
|
-
-
|
|
91
|
-
-
|
|
90
|
+
- **executor**: dynamic per pipeline mode:
|
|
91
|
+
- Discovery/Testing: `true` (serial layer chain, single executor handles GC loops)
|
|
92
|
+
- Full: `false` for parallel QARUN tasks (QARUN-L1-001 and QARUN-L2-001 have independent blockedBy, each gets own worker)
|
|
93
|
+
- **scout, strategist, generator, analyst**: always false
|
|
92
94
|
|
|
93
95
|
## Dependency Validation
|
|
94
96
|
|
|
@@ -132,10 +132,12 @@ Find ready tasks, spawn workers, STOP.
|
|
|
132
132
|
| SCOUT-* | scout | false |
|
|
133
133
|
| QASTRAT-* | strategist | false |
|
|
134
134
|
| QAGEN-* | generator | false |
|
|
135
|
-
| QARUN-* | executor |
|
|
135
|
+
| QARUN-* | executor | dynamic |
|
|
136
136
|
| QAANA-* | analyst | false |
|
|
137
137
|
|
|
138
|
-
b. Check
|
|
138
|
+
b. Check inner_loop: parse task description `InnerLoop:` field (NOT role.md default)
|
|
139
|
+
- InnerLoop: true AND same-role worker already active -> skip (worker picks up next task)
|
|
140
|
+
- InnerLoop: false OR no active same-role worker -> spawn new worker
|
|
139
141
|
c. TaskUpdate -> in_progress
|
|
140
142
|
d. team_msg log -> task_unblocked
|
|
141
143
|
e. Spawn team-worker:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
role: executor
|
|
3
3
|
prefix: QARUN
|
|
4
|
-
inner_loop:
|
|
4
|
+
inner_loop: dynamic
|
|
5
5
|
additional_prefixes: [QARUN-gc]
|
|
6
6
|
message_types:
|
|
7
7
|
success: tests_passed
|
|
@@ -12,6 +12,8 @@ message_types:
|
|
|
12
12
|
|
|
13
13
|
# Test Executor
|
|
14
14
|
|
|
15
|
+
> **inner_loop: dynamic** — Dispatch sets per-task: `true` for serial layer chains (discovery/testing mode), `false` for parallel layer execution (full mode where QARUN-L1-001 and QARUN-L2-001 run independently). When false, each QARUN task gets its own worker.
|
|
16
|
+
|
|
15
17
|
Run test suites, collect coverage data, and perform automatic fix cycles when tests fail. Implements the execution side of the Generator-Executor (GC) loop.
|
|
16
18
|
|
|
17
19
|
## Phase 2: Environment Detection
|
|
@@ -37,7 +37,7 @@ Skill(skill="team-testing", args="task description")
|
|
|
37
37
|
| coordinator | [roles/coordinator/role.md](roles/coordinator/role.md) | — | — |
|
|
38
38
|
| strategist | [roles/strategist/role.md](roles/strategist/role.md) | STRATEGY-* | false |
|
|
39
39
|
| generator | [roles/generator/role.md](roles/generator/role.md) | TESTGEN-* | true |
|
|
40
|
-
| executor | [roles/executor/role.md](roles/executor/role.md) | TESTRUN-* |
|
|
40
|
+
| executor | [roles/executor/role.md](roles/executor/role.md) | TESTRUN-* | dynamic |
|
|
41
41
|
| analyst | [roles/analyst/role.md](roles/analyst/role.md) | TESTANA-* | false |
|
|
42
42
|
|
|
43
43
|
## Role Router
|
|
@@ -84,8 +84,11 @@ TESTANA-001 (analyst): Defect pattern analysis, quality report
|
|
|
84
84
|
|
|
85
85
|
## InnerLoop Flag Rules
|
|
86
86
|
|
|
87
|
-
-
|
|
88
|
-
-
|
|
87
|
+
- **generator**: always true (GC loop iterations within a single layer)
|
|
88
|
+
- **executor**: dynamic per pipeline mode:
|
|
89
|
+
- Targeted/Standard: `true` (serial layer chain, single executor handles GC loops)
|
|
90
|
+
- Comprehensive: `false` for parallel TESTRUN tasks (TESTRUN-001 and TESTRUN-002 have independent blockedBy, each gets own worker)
|
|
91
|
+
- **strategist, analyst**: always false
|
|
89
92
|
|
|
90
93
|
## Dependency Validation
|
|
91
94
|
|
|
@@ -27,7 +27,7 @@ Event-driven pipeline coordination. Beat model: coordinator wake -> process -> s
|
|
|
27
27
|
|--------|------|-----------|------------|
|
|
28
28
|
| STRATEGY-* | strategist | `~ or <project>/.claude/skills/team-testing/roles/strategist/role.md` | false |
|
|
29
29
|
| TESTGEN-* | generator | `~ or <project>/.claude/skills/team-testing/roles/generator/role.md` | true |
|
|
30
|
-
| TESTRUN-* | executor | `~ or <project>/.claude/skills/team-testing/roles/executor/role.md` |
|
|
30
|
+
| TESTRUN-* | executor | `~ or <project>/.claude/skills/team-testing/roles/executor/role.md` | dynamic |
|
|
31
31
|
| TESTANA-* | analyst | `~ or <project>/.claude/skills/team-testing/roles/analyst/role.md` | false |
|
|
32
32
|
|
|
33
33
|
## handleCallback
|
|
@@ -136,7 +136,9 @@ Find ready tasks, spawn workers, STOP.
|
|
|
136
136
|
3. No ready + nothing in progress -> handleComplete
|
|
137
137
|
4. Has ready -> for each ready task:
|
|
138
138
|
a. Determine role from prefix (use Role-Worker Map)
|
|
139
|
-
b. Check
|
|
139
|
+
b. Check inner_loop: parse task description `InnerLoop:` field (NOT role.md default)
|
|
140
|
+
- InnerLoop: true AND same-role worker already active -> skip (worker picks up next task)
|
|
141
|
+
- InnerLoop: false OR no active same-role worker -> spawn new worker
|
|
140
142
|
c. TaskUpdate -> in_progress
|
|
141
143
|
d. team_msg log -> task_unblocked
|
|
142
144
|
e. Spawn team-worker:
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
role: executor
|
|
3
3
|
prefix: TESTRUN
|
|
4
|
-
inner_loop:
|
|
4
|
+
inner_loop: dynamic
|
|
5
5
|
message_types:
|
|
6
6
|
success: tests_passed
|
|
7
7
|
failure: tests_failed
|
|
@@ -11,6 +11,8 @@ message_types:
|
|
|
11
11
|
|
|
12
12
|
# Test Executor
|
|
13
13
|
|
|
14
|
+
> **inner_loop: dynamic** — Dispatch sets per-task: `true` for serial GC loops (single layer pipeline), `false` for parallel layer execution (comprehensive pipeline where TESTRUN-001 and TESTRUN-002 run independently). When false, each TESTRUN task gets its own worker.
|
|
15
|
+
|
|
14
16
|
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.
|
|
15
17
|
|
|
16
18
|
## Phase 2: Context Loading
|
|
@@ -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.
|