claude-code-workflow 7.2.27 → 7.2.29

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.
Files changed (416) hide show
  1. package/.ccw/specs/architecture-constraints.md +5 -0
  2. package/.claude/skills/_shared/SKILL-DESIGN-SPEC.md +140 -0
  3. package/.claude/skills/investigate/SKILL.md +110 -0
  4. package/.claude/skills/investigate/phases/01-root-cause-investigation.md +132 -0
  5. package/.claude/skills/investigate/phases/02-pattern-analysis.md +126 -0
  6. package/.claude/skills/investigate/phases/03-hypothesis-testing.md +177 -0
  7. package/.claude/skills/investigate/phases/04-implementation.md +139 -0
  8. package/.claude/skills/investigate/phases/05-verification-report.md +153 -0
  9. package/.claude/skills/investigate/specs/debug-report-format.md +226 -0
  10. package/.claude/skills/investigate/specs/iron-law.md +101 -0
  11. package/.claude/skills/security-audit/SKILL.md +125 -0
  12. package/.claude/skills/security-audit/phases/01-supply-chain-scan.md +139 -0
  13. package/.claude/skills/security-audit/phases/02-owasp-review.md +156 -0
  14. package/.claude/skills/security-audit/phases/03-threat-modeling.md +180 -0
  15. package/.claude/skills/security-audit/phases/04-report-tracking.md +177 -0
  16. package/.claude/skills/security-audit/specs/owasp-checklist.md +442 -0
  17. package/.claude/skills/security-audit/specs/scoring-gates.md +141 -0
  18. package/.claude/skills/ship/SKILL.md +105 -0
  19. package/.claude/skills/ship/phases/01-preflight-checks.md +121 -0
  20. package/.claude/skills/ship/phases/02-code-review.md +137 -0
  21. package/.claude/skills/ship/phases/03-version-bump.md +171 -0
  22. package/.claude/skills/ship/phases/04-changelog-commit.md +167 -0
  23. package/.claude/skills/ship/phases/05-pr-creation.md +163 -0
  24. package/.claude/skills/skill-generator/templates/sequential-phase.md +10 -0
  25. package/.claude/skills/skill-generator/templates/skill-md.md +4 -0
  26. package/.claude/skills/team-interactive-craft/SKILL.md +127 -0
  27. package/.claude/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
  28. package/.claude/skills/team-interactive-craft/roles/builder/role.md +216 -0
  29. package/.claude/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
  30. package/.claude/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +192 -0
  31. package/.claude/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +183 -0
  32. package/.claude/skills/team-interactive-craft/roles/coordinator/role.md +166 -0
  33. package/.claude/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
  34. package/.claude/skills/team-interactive-craft/roles/researcher/role.md +131 -0
  35. package/.claude/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
  36. package/.claude/skills/team-interactive-craft/specs/pipelines.md +85 -0
  37. package/.claude/skills/team-interactive-craft/specs/team-config.json +105 -0
  38. package/.claude/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
  39. package/.claude/skills/team-motion-design/SKILL.md +129 -0
  40. package/.claude/skills/team-motion-design/roles/animator/role.md +194 -0
  41. package/.claude/skills/team-motion-design/roles/choreographer/role.md +164 -0
  42. package/.claude/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
  43. package/.claude/skills/team-motion-design/roles/coordinator/commands/dispatch.md +203 -0
  44. package/.claude/skills/team-motion-design/roles/coordinator/commands/monitor.md +184 -0
  45. package/.claude/skills/team-motion-design/roles/coordinator/role.md +167 -0
  46. package/.claude/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
  47. package/.claude/skills/team-motion-design/roles/motion-tester/role.md +175 -0
  48. package/.claude/skills/team-motion-design/specs/gpu-constraints.md +114 -0
  49. package/.claude/skills/team-motion-design/specs/motion-tokens.md +128 -0
  50. package/.claude/skills/team-motion-design/specs/pipelines.md +74 -0
  51. package/.claude/skills/team-motion-design/specs/reduced-motion.md +129 -0
  52. package/.claude/skills/team-motion-design/specs/team-config.json +99 -0
  53. package/.claude/skills/team-ui-polish/SKILL.md +127 -0
  54. package/.claude/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
  55. package/.claude/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +194 -0
  56. package/.claude/skills/team-ui-polish/roles/coordinator/commands/monitor.md +180 -0
  57. package/.claude/skills/team-ui-polish/roles/coordinator/role.md +170 -0
  58. package/.claude/skills/team-ui-polish/roles/diagnostician/role.md +160 -0
  59. package/.claude/skills/team-ui-polish/roles/optimizer/role.md +225 -0
  60. package/.claude/skills/team-ui-polish/roles/scanner/role.md +356 -0
  61. package/.claude/skills/team-ui-polish/roles/verifier/role.md +142 -0
  62. package/.claude/skills/team-ui-polish/specs/anti-patterns.md +141 -0
  63. package/.claude/skills/team-ui-polish/specs/design-standards.md +356 -0
  64. package/.claude/skills/team-ui-polish/specs/fix-strategies.md +235 -0
  65. package/.claude/skills/team-ui-polish/specs/pipelines.md +81 -0
  66. package/.claude/skills/team-ui-polish/specs/scoring-guide.md +162 -0
  67. package/.claude/skills/team-ui-polish/specs/team-config.json +73 -0
  68. package/.claude/skills/team-uidesign/SKILL.md +6 -1
  69. package/.claude/skills/team-uidesign/roles/designer/role.md +28 -4
  70. package/.claude/skills/team-uidesign/roles/implementer/role.md +25 -3
  71. package/.claude/skills/team-uidesign/roles/researcher/role.md +21 -2
  72. package/.claude/skills/team-uidesign/roles/reviewer/role.md +19 -17
  73. package/.claude/skills/team-uidesign/specs/anti-patterns.md +211 -0
  74. package/.claude/skills/team-uidesign/specs/design-standards.md +329 -0
  75. package/.claude/skills/team-uidesign/specs/scoring-guide.md +114 -0
  76. package/.claude/skills/team-uidesign/specs/team-config.json +1 -1
  77. package/.claude/skills/team-uidesign/specs/ux-writing.md +86 -0
  78. package/.claude/skills/team-ux-improve/SKILL.md +3 -0
  79. package/.claude/skills/team-ux-improve/roles/designer/role.md +30 -0
  80. package/.claude/skills/team-ux-improve/roles/diagnoser/role.md +16 -1
  81. package/.claude/skills/team-ux-improve/roles/scanner/role.md +43 -1
  82. package/.claude/skills/team-ux-improve/specs/anti-patterns.md +103 -0
  83. package/.claude/skills/team-ux-improve/specs/design-standards.md +54 -0
  84. package/.claude/skills/team-ux-improve/specs/heuristics.md +88 -0
  85. package/.claude/skills/team-ux-improve/wisdom/anti-patterns/common-ux-pitfalls.md +40 -8
  86. package/.claude/skills/team-ux-improve/wisdom/patterns/state-management.md +32 -12
  87. package/.claude/skills/team-ux-improve/wisdom/patterns/ui-feedback.md +35 -11
  88. package/.claude/skills/team-ux-improve/wisdom/principles/general-ux.md +36 -9
  89. package/.claude/skills/team-visual-a11y/SKILL.md +143 -0
  90. package/.claude/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
  91. package/.claude/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
  92. package/.claude/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +250 -0
  93. package/.claude/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +204 -0
  94. package/.claude/skills/team-visual-a11y/roles/coordinator/role.md +169 -0
  95. package/.claude/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
  96. package/.claude/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
  97. package/.claude/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
  98. package/.claude/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
  99. package/.claude/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
  100. package/.claude/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
  101. package/.claude/skills/team-visual-a11y/specs/pipelines.md +98 -0
  102. package/.claude/skills/team-visual-a11y/specs/team-config.json +109 -0
  103. package/.claude/skills/team-visual-a11y/specs/typography-scale.md +165 -0
  104. package/.claude/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
  105. package/.codex/skills/brainstorm/SKILL.md +3 -3
  106. package/.codex/skills/clean/SKILL.md +3 -3
  107. package/.codex/skills/investigate/agents/investigator.md +392 -0
  108. package/.codex/skills/investigate/orchestrator.md +362 -0
  109. package/.codex/skills/investigate/phases/01-root-cause-investigation.md +212 -0
  110. package/.codex/skills/investigate/phases/02-pattern-analysis.md +181 -0
  111. package/.codex/skills/investigate/phases/03-hypothesis-testing.md +214 -0
  112. package/.codex/skills/investigate/phases/04-implementation.md +195 -0
  113. package/.codex/skills/investigate/phases/05-verification-report.md +240 -0
  114. package/.codex/skills/issue-discover/SKILL.md +13 -13
  115. package/.codex/skills/issue-discover/phases/02-discover.md +4 -4
  116. package/.codex/skills/issue-discover/phases/03-discover-by-prompt.md +3 -3
  117. package/.codex/skills/parallel-dev-cycle/SKILL.md +4 -4
  118. package/.codex/skills/parallel-dev-cycle/phases/02-agent-execution.md +6 -6
  119. package/.codex/skills/parallel-dev-cycle/phases/03-result-aggregation.md +10 -10
  120. package/.codex/skills/review-cycle/SKILL.md +10 -10
  121. package/.codex/skills/review-cycle/phases/02-parallel-review.md +6 -6
  122. package/.codex/skills/review-cycle/phases/04-iterative-deep-dive.md +4 -4
  123. package/.codex/skills/review-cycle/phases/07-fix-parallel-planning.md +4 -4
  124. package/.codex/skills/review-cycle/phases/08-fix-execution.md +2 -2
  125. package/.codex/skills/roadmap-with-file/SKILL.md +14 -14
  126. package/.codex/skills/security-audit/agents/security-auditor.md +341 -0
  127. package/.codex/skills/security-audit/orchestrator.md +384 -0
  128. package/.codex/skills/security-audit/phases/01-supply-chain-scan.md +226 -0
  129. package/.codex/skills/security-audit/phases/02-owasp-review.md +232 -0
  130. package/.codex/skills/security-audit/phases/03-threat-modeling.md +249 -0
  131. package/.codex/skills/security-audit/phases/04-report-tracking.md +300 -0
  132. package/.codex/skills/ship/agents/ship-operator.md +318 -0
  133. package/.codex/skills/ship/orchestrator.md +426 -0
  134. package/.codex/skills/ship/phases/01-preflight-checks.md +198 -0
  135. package/.codex/skills/ship/phases/02-code-review.md +228 -0
  136. package/.codex/skills/ship/phases/03-version-bump.md +259 -0
  137. package/.codex/skills/ship/phases/04-changelog-commit.md +263 -0
  138. package/.codex/skills/ship/phases/05-pr-creation.md +280 -0
  139. package/.codex/skills/spec-generator/README.md +1 -1
  140. package/.codex/skills/spec-generator/SKILL.md +184 -88
  141. package/.codex/skills/spec-generator/phases/01-5-requirement-clarification.md +4 -7
  142. package/.codex/skills/spec-generator/phases/01-discovery.md +30 -11
  143. package/.codex/skills/spec-generator/phases/02-product-brief.md +2 -5
  144. package/.codex/skills/spec-generator/phases/03-requirements.md +4 -6
  145. package/.codex/skills/spec-generator/phases/04-architecture.md +4 -6
  146. package/.codex/skills/spec-generator/phases/05-epics-stories.md +4 -6
  147. package/.codex/skills/spec-generator/phases/06-5-auto-fix.md +4 -5
  148. package/.codex/skills/spec-generator/phases/06-readiness-check.md +8 -8
  149. package/.codex/skills/spec-generator/phases/07-issue-export.md +2 -2
  150. package/.codex/skills/spec-setup/SKILL.md +4 -4
  151. package/.codex/skills/team-interactive-craft/SKILL.md +220 -0
  152. package/.codex/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
  153. package/.codex/skills/team-interactive-craft/roles/builder/role.md +216 -0
  154. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
  155. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +162 -0
  156. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +233 -0
  157. package/.codex/skills/team-interactive-craft/roles/coordinator/role.md +209 -0
  158. package/.codex/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
  159. package/.codex/skills/team-interactive-craft/roles/researcher/role.md +131 -0
  160. package/.codex/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
  161. package/.codex/skills/team-interactive-craft/specs/pipelines.md +85 -0
  162. package/.codex/skills/team-interactive-craft/specs/team-config.json +105 -0
  163. package/.codex/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
  164. package/.codex/skills/team-motion-design/SKILL.md +222 -0
  165. package/.codex/skills/team-motion-design/roles/animator/role.md +194 -0
  166. package/.codex/skills/team-motion-design/roles/choreographer/role.md +164 -0
  167. package/.codex/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
  168. package/.codex/skills/team-motion-design/roles/coordinator/commands/dispatch.md +168 -0
  169. package/.codex/skills/team-motion-design/roles/coordinator/commands/monitor.md +242 -0
  170. package/.codex/skills/team-motion-design/roles/coordinator/role.md +210 -0
  171. package/.codex/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
  172. package/.codex/skills/team-motion-design/roles/motion-tester/role.md +175 -0
  173. package/.codex/skills/team-motion-design/specs/gpu-constraints.md +114 -0
  174. package/.codex/skills/team-motion-design/specs/motion-tokens.md +128 -0
  175. package/.codex/skills/team-motion-design/specs/pipelines.md +74 -0
  176. package/.codex/skills/team-motion-design/specs/reduced-motion.md +129 -0
  177. package/.codex/skills/team-motion-design/specs/team-config.json +99 -0
  178. package/.codex/skills/team-ui-polish/SKILL.md +218 -0
  179. package/.codex/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
  180. package/.codex/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +167 -0
  181. package/.codex/skills/team-ui-polish/roles/coordinator/commands/monitor.md +230 -0
  182. package/.codex/skills/team-ui-polish/roles/coordinator/role.md +213 -0
  183. package/.codex/skills/team-ui-polish/roles/diagnostician/role.md +164 -0
  184. package/.codex/skills/team-ui-polish/roles/optimizer/role.md +229 -0
  185. package/.codex/skills/team-ui-polish/roles/scanner/role.md +360 -0
  186. package/.codex/skills/team-ui-polish/roles/verifier/role.md +142 -0
  187. package/.codex/skills/team-ui-polish/specs/anti-patterns.md +141 -0
  188. package/.codex/skills/team-ui-polish/specs/design-standards.md +356 -0
  189. package/.codex/skills/team-ui-polish/specs/fix-strategies.md +235 -0
  190. package/.codex/skills/team-ui-polish/specs/pipelines.md +81 -0
  191. package/.codex/skills/team-ui-polish/specs/scoring-guide.md +162 -0
  192. package/.codex/skills/team-ui-polish/specs/team-config.json +73 -0
  193. package/.codex/skills/team-visual-a11y/SKILL.md +319 -0
  194. package/.codex/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
  195. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
  196. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +188 -0
  197. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +281 -0
  198. package/.codex/skills/team-visual-a11y/roles/coordinator/role.md +213 -0
  199. package/.codex/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
  200. package/.codex/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
  201. package/.codex/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
  202. package/.codex/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
  203. package/.codex/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
  204. package/.codex/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
  205. package/.codex/skills/team-visual-a11y/specs/pipelines.md +98 -0
  206. package/.codex/skills/team-visual-a11y/specs/team-config.json +109 -0
  207. package/.codex/skills/team-visual-a11y/specs/typography-scale.md +165 -0
  208. package/.codex/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
  209. package/.codex/skills/workflow-plan/SKILL.md +6 -6
  210. package/.codex/skills/workflow-tdd-plan/SKILL.md +5 -5
  211. package/.codex/skills/workflow-test-fix-cycle/SKILL.md +19 -19
  212. package/.codex/skills/workflow-test-fix-cycle/phases/01-test-fix-gen.md +5 -5
  213. package/.codex/skills/workflow-test-fix-cycle/phases/02-test-cycle-execute.md +5 -5
  214. package/README.md +8 -0
  215. package/ccw/dist/core/hooks/hook-templates.d.ts.map +1 -1
  216. package/ccw/dist/core/hooks/hook-templates.js +114 -1
  217. package/ccw/dist/core/hooks/hook-templates.js.map +1 -1
  218. package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
  219. package/ccw/dist/core/routes/cli-routes.js +34 -0
  220. package/ccw/dist/core/routes/cli-routes.js.map +1 -1
  221. package/ccw/dist/core/routes/system-routes.js +2 -2
  222. package/ccw/dist/core/routes/system-routes.js.map +1 -1
  223. package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js → AlertDialog-exlTDW81.js} +3 -3
  224. package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js.map → AlertDialog-exlTDW81.js.map} +1 -1
  225. package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js → AnalysisPage-cgV9LfAI.js} +2 -2
  226. package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js.map → AnalysisPage-cgV9LfAI.js.map} +1 -1
  227. package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js → ApiSettingsPage-Dk5jJdWt.js} +2 -2
  228. package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js.map → ApiSettingsPage-Dk5jJdWt.js.map} +1 -1
  229. package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js → CliModeToggle-Be9xsPiv.js} +2 -2
  230. package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js.map → CliModeToggle-Be9xsPiv.js.map} +1 -1
  231. package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js → CliSessionSharePage-Bh9jBtPI.js} +2 -2
  232. package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js.map → CliSessionSharePage-Bh9jBtPI.js.map} +1 -1
  233. package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js → CliViewerPage-BrE-oyEq.js} +2 -2
  234. package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js.map → CliViewerPage-BrE-oyEq.js.map} +1 -1
  235. package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js → CodexLensPage-Cd3nrC93.js} +2 -2
  236. package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js.map → CodexLensPage-Cd3nrC93.js.map} +1 -1
  237. package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js → Collapsible-DXFl3VKF.js} +2 -2
  238. package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js.map → Collapsible-DXFl3VKF.js.map} +1 -1
  239. package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js → CommandsManagerPage-IV8zpjgX.js} +2 -2
  240. package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js.map → CommandsManagerPage-IV8zpjgX.js.map} +1 -1
  241. package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js → DeepWikiPage-CpDxtmRX.js} +2 -2
  242. package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js.map → DeepWikiPage-CpDxtmRX.js.map} +1 -1
  243. package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js → EndpointsPage-BchjWe7s.js} +2 -2
  244. package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js.map → EndpointsPage-BchjWe7s.js.map} +1 -1
  245. package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js → ExplorerPage-CbWvaJ0y.js} +2 -2
  246. package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js.map → ExplorerPage-CbWvaJ0y.js.map} +1 -1
  247. package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js → FixSessionPage-YMjVRiCk.js} +2 -2
  248. package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js.map → FixSessionPage-YMjVRiCk.js.map} +1 -1
  249. package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js → FloatingFileBrowser-JW2ehYY_.js} +2 -2
  250. package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js.map → FloatingFileBrowser-JW2ehYY_.js.map} +1 -1
  251. package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js → FloatingPanel-BtqzqDVq.js} +2 -2
  252. package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js.map → FloatingPanel-BtqzqDVq.js.map} +1 -1
  253. package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js → GraphExplorerPage-BsJL_W4d.js} +3 -3
  254. package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js.map → GraphExplorerPage-BsJL_W4d.js.map} +1 -1
  255. package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js → HistoryPage-BuWpQ7k5.js} +2 -2
  256. package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js.map → HistoryPage-BuWpQ7k5.js.map} +1 -1
  257. package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js → HookManagerPage-D0BtMIWy.js} +2 -2
  258. package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js.map → HookManagerPage-D0BtMIWy.js.map} +1 -1
  259. package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js → InstallationsPage-C7dwsAKG.js} +2 -2
  260. package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js.map → InstallationsPage-C7dwsAKG.js.map} +1 -1
  261. package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js → IssueHubPage-D0nCNaeB.js} +2 -2
  262. package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js.map → IssueHubPage-D0nCNaeB.js.map} +1 -1
  263. package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js → LiteTasksPage-B5c2Kb9r.js} +3 -3
  264. package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js.map → LiteTasksPage-B5c2Kb9r.js.map} +1 -1
  265. package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js → McpManagerPage-C-S5CehM.js} +2 -2
  266. package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js.map → McpManagerPage-C-S5CehM.js.map} +1 -1
  267. package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js → MemoryPage-P_B0JVUQ.js} +2 -2
  268. package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js.map → MemoryPage-P_B0JVUQ.js.map} +1 -1
  269. package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js → NotFoundPage-S4Jn9LUE.js} +2 -2
  270. package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js.map → NotFoundPage-S4Jn9LUE.js.map} +1 -1
  271. package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js → OrchestratorPage-C2Zlr7AC.js} +2 -2
  272. package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js.map → OrchestratorPage-C2Zlr7AC.js.map} +1 -1
  273. package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js → ProjectOverviewPage-CMVfz8s5.js} +2 -2
  274. package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js.map → ProjectOverviewPage-CMVfz8s5.js.map} +1 -1
  275. package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js → PromptHistoryPage-YEMjFARX.js} +3 -3
  276. package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js.map → PromptHistoryPage-YEMjFARX.js.map} +1 -1
  277. package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js → ReviewSessionPage-DnTm55nG.js} +2 -2
  278. package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js.map → ReviewSessionPage-DnTm55nG.js.map} +1 -1
  279. package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js → RulesManagerPage-CUwebtO2.js} +2 -2
  280. package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js.map → RulesManagerPage-CUwebtO2.js.map} +1 -1
  281. package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js → SessionDetailPage-0qyH1Z5P.js} +2 -2
  282. package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js.map → SessionDetailPage-0qyH1Z5P.js.map} +1 -1
  283. package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js → SessionsPage-BpgP4087.js} +2 -2
  284. package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js.map → SessionsPage-BpgP4087.js.map} +1 -1
  285. package/ccw/frontend/dist/assets/SettingsPage-C3SJajeT.js +150 -0
  286. package/ccw/frontend/dist/assets/SettingsPage-C3SJajeT.js.map +1 -0
  287. package/ccw/frontend/dist/assets/SkillsManagerPage-vD9PTsmy.js +7 -0
  288. package/ccw/frontend/dist/assets/SkillsManagerPage-vD9PTsmy.js.map +1 -0
  289. package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js → SpecsSettingsPage-DT-yTVkD.js} +4 -4
  290. package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js.map → SpecsSettingsPage-DT-yTVkD.js.map} +1 -1
  291. package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js → Switch-CYSPdqWk.js} +2 -2
  292. package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js.map → Switch-CYSPdqWk.js.map} +1 -1
  293. package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js → TabsNavigation-CPh6Zor1.js} +2 -2
  294. package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js.map → TabsNavigation-CPh6Zor1.js.map} +1 -1
  295. package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js → TaskDrawer-Ds-8830B.js} +2 -2
  296. package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js.map → TaskDrawer-Ds-8830B.js.map} +1 -1
  297. package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js → TeamPage-CJODUxBk.js} +2 -2
  298. package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js.map → TeamPage-CJODUxBk.js.map} +1 -1
  299. package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js → TerminalDashboardPage-Cn3fGUuO.js} +3 -3
  300. package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js.map → TerminalDashboardPage-Cn3fGUuO.js.map} +1 -1
  301. package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js → archive-CjwVpw6k.js} +2 -2
  302. package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js.map → archive-CjwVpw6k.js.map} +1 -1
  303. package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js → archive-restore-2vZa9Ic3.js} +2 -2
  304. package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js.map → archive-restore-2vZa9Ic3.js.map} +1 -1
  305. package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js → arrow-right-CUU5XDgT.js} +2 -2
  306. package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js.map → arrow-right-CUU5XDgT.js.map} +1 -1
  307. package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js → bookmark-plus-Cc3nKRZ5.js} +2 -2
  308. package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js.map → bookmark-plus-Cc3nKRZ5.js.map} +1 -1
  309. package/ccw/frontend/dist/assets/{bot-BLkaQscs.js → bot-BwpSRDUa.js} +2 -2
  310. package/ccw/frontend/dist/assets/{bot-BLkaQscs.js.map → bot-BwpSRDUa.js.map} +1 -1
  311. package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js → braces-DBzUW1XC.js} +2 -2
  312. package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js.map → braces-DBzUW1XC.js.map} +1 -1
  313. package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js → circle-stop-CGNNsjvE.js} +2 -2
  314. package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js.map → circle-stop-CGNNsjvE.js.map} +1 -1
  315. package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js → cpu-D27G86Ul.js} +2 -2
  316. package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js.map → cpu-D27G86Ul.js.map} +1 -1
  317. package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js → ellipsis-vertical-C1Ij47Yz.js} +2 -2
  318. package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js.map → ellipsis-vertical-C1Ij47Yz.js.map} +1 -1
  319. package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js → eye-C6MOB7Au.js} +2 -2
  320. package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js.map → eye-C6MOB7Au.js.map} +1 -1
  321. package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js → eye-off-BxfBlZ26.js} +2 -2
  322. package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js.map → eye-off-BxfBlZ26.js.map} +1 -1
  323. package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js → file-json-NI237wA-.js} +2 -2
  324. package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js.map → file-json-NI237wA-.js.map} +1 -1
  325. package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js → file-text-Byn2_2v6.js} +2 -2
  326. package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js.map → file-text-Byn2_2v6.js.map} +1 -1
  327. package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js → filter-D-7PhZjx.js} +2 -2
  328. package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js.map → filter-D-7PhZjx.js.map} +1 -1
  329. package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js → folder-BoAsK_FL.js} +2 -2
  330. package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js.map → folder-BoAsK_FL.js.map} +1 -1
  331. package/ccw/frontend/dist/assets/{gauge-kazFexTr.js → gauge-DCSxJIS4.js} +2 -2
  332. package/ccw/frontend/dist/assets/{gauge-kazFexTr.js.map → gauge-DCSxJIS4.js.map} +1 -1
  333. package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js → globe-CHS3prza.js} +2 -2
  334. package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js.map → globe-CHS3prza.js.map} +1 -1
  335. package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js → grid-3x3-D7K35U7S.js} +2 -2
  336. package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js.map → grid-3x3-D7K35U7S.js.map} +1 -1
  337. package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js → hard-drive-eq9xE07G.js} +2 -2
  338. package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js.map → hard-drive-eq9xE07G.js.map} +1 -1
  339. package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js → hash-C1DMpBua.js} +2 -2
  340. package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js.map → hash-C1DMpBua.js.map} +1 -1
  341. package/ccw/frontend/dist/assets/{history-ujQnmMC9.js → history-Di5SBCY-.js} +2 -2
  342. package/ccw/frontend/dist/assets/{history-ujQnmMC9.js.map → history-Di5SBCY-.js.map} +1 -1
  343. package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js → index--_R7COnA.js} +2 -2
  344. package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js.map → index--_R7COnA.js.map} +1 -1
  345. package/ccw/frontend/dist/assets/{index-Dff4bg3u.js → index-BUol9HDD.js} +3 -3
  346. package/ccw/frontend/dist/assets/{index-Dff4bg3u.js.map → index-BUol9HDD.js.map} +1 -1
  347. package/ccw/frontend/dist/assets/{index-B76AGix5.js → index-CT9oykfw.js} +2 -2
  348. package/ccw/frontend/dist/assets/{index-B76AGix5.js.map → index-CT9oykfw.js.map} +1 -1
  349. package/ccw/frontend/dist/assets/{index-CxzXz6o1.js → index-Ddwvf87H.js} +2 -2
  350. package/ccw/frontend/dist/assets/{index-CxzXz6o1.js.map → index-Ddwvf87H.js.map} +1 -1
  351. package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js → layout-grid-LiX0qZbN.js} +2 -2
  352. package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js.map → layout-grid-LiX0qZbN.js.map} +1 -1
  353. package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js → lightbulb-CL3DVEwb.js} +2 -2
  354. package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js.map → lightbulb-CL3DVEwb.js.map} +1 -1
  355. package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js → link-2-CC5cFeq6.js} +2 -2
  356. package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js.map → link-2-CC5cFeq6.js.map} +1 -1
  357. package/ccw/frontend/dist/assets/{link-5yXdZBch.js → link-ngFQ9bs0.js} +2 -2
  358. package/ccw/frontend/dist/assets/{link-5yXdZBch.js.map → link-ngFQ9bs0.js.map} +1 -1
  359. package/ccw/frontend/dist/assets/{list-9lHhC_U_.js → list-BEU6I0KK.js} +2 -2
  360. package/ccw/frontend/dist/assets/{list-9lHhC_U_.js.map → list-BEU6I0KK.js.map} +1 -1
  361. package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js → map-pin-BWZdLA6y.js} +2 -2
  362. package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js.map → map-pin-BWZdLA6y.js.map} +1 -1
  363. package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js → messages-square-K6_Chm7n.js} +2 -2
  364. package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js.map → messages-square-K6_Chm7n.js.map} +1 -1
  365. package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js → minimize-2-CWkphauf.js} +2 -2
  366. package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js.map → minimize-2-CWkphauf.js.map} +1 -1
  367. package/ccw/frontend/dist/assets/{package-BjOw1ldU.js → package-DrNgkamn.js} +2 -2
  368. package/ccw/frontend/dist/assets/{package-BjOw1ldU.js.map → package-DrNgkamn.js.map} +1 -1
  369. package/ccw/frontend/dist/assets/{plug-9dAARpE1.js → plug-CMo3sw5_.js} +2 -2
  370. package/ccw/frontend/dist/assets/{plug-9dAARpE1.js.map → plug-CMo3sw5_.js.map} +1 -1
  371. package/ccw/frontend/dist/assets/{power-K2S39x7f.js → power-DppNTW5e.js} +2 -2
  372. package/ccw/frontend/dist/assets/{power-K2S39x7f.js.map → power-DppNTW5e.js.map} +1 -1
  373. package/ccw/frontend/dist/assets/{save-D9-CoT3x.js → save-CD8aPMbZ.js} +2 -2
  374. package/ccw/frontend/dist/assets/{save-D9-CoT3x.js.map → save-CD8aPMbZ.js.map} +1 -1
  375. package/ccw/frontend/dist/assets/{send-Bunw9NtC.js → send-B4z90fQD.js} +2 -2
  376. package/ccw/frontend/dist/assets/{send-Bunw9NtC.js.map → send-B4z90fQD.js.map} +1 -1
  377. package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js → settings-2-CAKRU_QC.js} +2 -2
  378. package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js.map → settings-2-CAKRU_QC.js.map} +1 -1
  379. package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js → square-check-big-KhI3HrzX.js} +2 -2
  380. package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js.map → square-check-big-KhI3HrzX.js.map} +1 -1
  381. package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js → square-pen-BtdGIpuq.js} +2 -2
  382. package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js.map → square-pen-BtdGIpuq.js.map} +1 -1
  383. package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js → star-ZoBUkXoD.js} +2 -2
  384. package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js.map → star-ZoBUkXoD.js.map} +1 -1
  385. package/ccw/frontend/dist/assets/{style-BbREPmRj.js → style-CltxQP-P.js} +2 -2
  386. package/ccw/frontend/dist/assets/{style-BbREPmRj.js.map → style-CltxQP-P.js.map} +1 -1
  387. package/ccw/frontend/dist/assets/{target-CElrCVhR.js → target-C32OUSGf.js} +2 -2
  388. package/ccw/frontend/dist/assets/{target-CElrCVhR.js.map → target-C32OUSGf.js.map} +1 -1
  389. package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js → test-tube-0IxoyAVZ.js} +2 -2
  390. package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js.map → test-tube-0IxoyAVZ.js.map} +1 -1
  391. package/ccw/frontend/dist/assets/{upload-BD1F07wG.js → upload-4eKCkyBn.js} +2 -2
  392. package/ccw/frontend/dist/assets/{upload-BD1F07wG.js.map → upload-4eKCkyBn.js.map} +1 -1
  393. package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js → useApiSettings-zLTUWqhi.js} +2 -2
  394. package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js.map → useApiSettings-zLTUWqhi.js.map} +1 -1
  395. package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js → useCli-BtN2vpOX.js} +2 -2
  396. package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js.map → useCli-BtN2vpOX.js.map} +1 -1
  397. package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js → useCommands-_spj49qL.js} +2 -2
  398. package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js.map → useCommands-_spj49qL.js.map} +1 -1
  399. package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js → useDebounce-Bm9KFZvd.js} +2 -2
  400. package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js.map → useDebounce-Bm9KFZvd.js.map} +1 -1
  401. package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js → useFileExplorer-DOmpm6v9.js} +2 -2
  402. package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js.map → useFileExplorer-DOmpm6v9.js.map} +1 -1
  403. package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js → useLocale-D2rj4rea.js} +2 -2
  404. package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js.map → useLocale-D2rj4rea.js.map} +1 -1
  405. package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js → useSkills-OskEpomF.js} +3 -3
  406. package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js.map → useSkills-OskEpomF.js.map} +1 -1
  407. package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js → useSystemSettings-BjMgsNSF.js} +2 -2
  408. package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js.map → useSystemSettings-BjMgsNSF.js.map} +1 -1
  409. package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js → wand-sparkles-CLhyYWa7.js} +2 -2
  410. package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js.map → wand-sparkles-CLhyYWa7.js.map} +1 -1
  411. package/ccw/frontend/dist/index.html +1 -1
  412. package/package.json +105 -105
  413. package/ccw/frontend/dist/assets/SettingsPage-BPDbXPSM.js +0 -150
  414. package/ccw/frontend/dist/assets/SettingsPage-BPDbXPSM.js.map +0 -1
  415. package/ccw/frontend/dist/assets/SkillsManagerPage-D3LzbpJY.js +0 -7
  416. package/ccw/frontend/dist/assets/SkillsManagerPage-D3LzbpJY.js.map +0 -1
@@ -0,0 +1,170 @@
1
+ # Coordinator Role
2
+
3
+ UI Polish Team coordinator. Orchestrate pipeline: analyze -> dispatch -> spawn -> monitor -> report. Manages linear task chains (scan -> diagnose -> optimize -> verify) with optimizer<->verifier GC loops.
4
+
5
+ ## Identity
6
+ - **Name**: coordinator | **Tag**: [coordinator]
7
+ - **Responsibility**: Analyze task -> Create team -> Dispatch tasks -> Monitor progress -> Report results
8
+
9
+ ## Boundaries
10
+
11
+ ### MUST
12
+ - All output (SendMessage, team_msg, logs) must carry `[coordinator]` identifier
13
+ - Use `team-worker` agent type for all worker spawns (NOT `general-purpose`)
14
+ - Dispatch tasks with proper dependency chains and blockedBy
15
+ - Monitor worker progress via message bus and route messages
16
+ - Handle Generator-Critic loops (optimizer<->verifier) with max 2 iterations
17
+ - Maintain session state persistence
18
+
19
+ ### MUST NOT
20
+ - Implement domain logic (scanning, diagnosing, optimizing, verifying) -- workers handle this
21
+ - Spawn workers without creating tasks first
22
+ - Force-advance pipeline past failed verification
23
+ - Modify source code or design artifacts directly -- delegate to workers
24
+ - Omit `[coordinator]` identifier in any output
25
+
26
+ ## Command Execution Protocol
27
+
28
+ When coordinator needs to execute a command (analyze, dispatch, monitor):
29
+
30
+ 1. Read `commands/<command>.md`
31
+ 2. Follow the workflow defined in the command
32
+ 3. Commands are inline execution guides, NOT separate agents
33
+ 4. Execute synchronously, complete before proceeding
34
+
35
+ ## Entry Router
36
+
37
+ | Detection | Condition | Handler |
38
+ |-----------|-----------|---------|
39
+ | Worker callback | Message contains [scanner], [diagnostician], [optimizer], [verifier] | -> handleCallback (monitor.md) |
40
+ | Status check | Args contain "check" or "status" | -> handleCheck (monitor.md) |
41
+ | Manual resume | Args contain "resume" or "continue" | -> handleResume (monitor.md) |
42
+ | Capability gap | Message contains "capability_gap" | -> handleAdapt (monitor.md) |
43
+ | Pipeline complete | All tasks have status "completed" | -> handleComplete (monitor.md) |
44
+ | Interrupted session | Active/paused session exists in .workflow/.team/UIP-* | -> Phase 0 |
45
+ | New session | None of above | -> Phase 1 |
46
+
47
+ For callback/check/resume/adapt/complete: load `@commands/monitor.md`, execute matched handler, STOP.
48
+
49
+ ## Phase 0: Session Resume Check
50
+
51
+ 1. Scan `.workflow/.team/UIP-*/.msg/meta.json` for active/paused sessions
52
+ 2. No sessions -> Phase 1
53
+ 3. Single session -> reconcile (audit TaskList, reset in_progress->pending, rebuild team, kick first ready task)
54
+ 4. Multiple -> AskUserQuestion for selection
55
+
56
+ ## Phase 1: Requirement Clarification
57
+
58
+ TEXT-LEVEL ONLY. No source code reading.
59
+
60
+ 1. Parse task description from arguments
61
+ 2. Detect polish scope:
62
+
63
+ | Signal | Pipeline Mode |
64
+ |--------|---------------|
65
+ | "scan", "audit", "check", "report", "analyze" | scan-only |
66
+ | "fix color", "fix typography", specific dimension keyword | targeted |
67
+ | "polish", "fix all", "full", "improve", "clean up" | full |
68
+ | Unclear | ask user |
69
+
70
+ 3. Ask for missing parameters if scope unclear:
71
+ ```
72
+ AskUserQuestion({
73
+ questions: [
74
+ { question: "What should I polish?", header: "Target", options: [
75
+ { label: "URL", description: "Live page URL for Chrome DevTools analysis" },
76
+ { label: "Component path", description: "Specific component files to polish" },
77
+ { label: "Full site", description: "Scan and polish entire frontend" }
78
+ ]},
79
+ { question: "Polish mode?", header: "Mode", options: [
80
+ { label: "Scan only", description: "Discover + diagnose, report only" },
81
+ { label: "Targeted fix", description: "Fix specific dimensions" },
82
+ { label: "Full polish", description: "Complete polish cycle" }
83
+ ]}
84
+ ]
85
+ })
86
+ ```
87
+ 4. Delegate to `@commands/analyze.md` -> output scope context
88
+ 5. Record: pipeline_mode, target, complexity, dimension_filters
89
+
90
+ ## Phase 2: Create Team + Initialize Session
91
+
92
+ 1. Resolve workspace paths (MUST do first):
93
+ - `project_root` = result of `Bash({ command: "pwd" })`
94
+ - `skill_root` = `<project_root>/.claude/skills/team-ui-polish`
95
+ 2. Generate session ID: `UIP-<slug>-<YYYY-MM-DD>`
96
+ 3. Create session folder structure:
97
+ ```
98
+ .workflow/.team/UIP-<slug>-<date>/scan/
99
+ .workflow/.team/UIP-<slug>-<date>/diagnosis/
100
+ .workflow/.team/UIP-<slug>-<date>/optimization/
101
+ .workflow/.team/UIP-<slug>-<date>/verification/
102
+ .workflow/.team/UIP-<slug>-<date>/evidence/
103
+ .workflow/.team/UIP-<slug>-<date>/wisdom/
104
+ .workflow/.team/UIP-<slug>-<date>/.msg/
105
+ ```
106
+ 4. Initialize `.msg/meta.json` via team_msg state_update with pipeline metadata
107
+ 5. TeamCreate(team_name="ui-polish")
108
+ 6. Do NOT spawn workers yet - deferred to Phase 4
109
+
110
+ ## Phase 3: Create Task Chain
111
+
112
+ Delegate to `@commands/dispatch.md`. Task chains by mode:
113
+
114
+ | Mode | Task Chain |
115
+ |------|------------|
116
+ | scan-only | SCAN-001 -> DIAG-001 |
117
+ | targeted | SCAN-001 -> DIAG-001 -> OPT-001 -> VERIFY-001 |
118
+ | full | SCAN-001 -> DIAG-001 -> OPT-001 -> VERIFY-001 (GC loop if verify fails) |
119
+
120
+ ## Phase 4: Spawn-and-Stop
121
+
122
+ Delegate to `@commands/monitor.md#handleSpawnNext`:
123
+ 1. Find ready tasks (pending + blockedBy resolved)
124
+ 2. Spawn team-worker agents (see SKILL.md Spawn Template)
125
+ 3. Output status summary
126
+ 4. STOP
127
+
128
+ ## Phase 5: Report + Completion Action
129
+
130
+ 1. Read session state -> collect all results
131
+ 2. List deliverables:
132
+
133
+ | Deliverable | Path |
134
+ |-------------|------|
135
+ | Scan Report | <session>/scan/scan-report.md |
136
+ | Diagnosis Report | <session>/diagnosis/diagnosis-report.md |
137
+ | Optimization Log | <session>/optimization/fix-log.md |
138
+ | Verification Report | <session>/verification/verify-report.md |
139
+ | Before/After Screenshots | <session>/evidence/*.png |
140
+
141
+ 3. Calculate summary:
142
+ - `issues_found`: total from scan report
143
+ - `issues_fixed`: total from optimization log
144
+ - `issues_remaining`: issues_found - issues_fixed + regressions
145
+ - `before_score`: original scan score (out of 32)
146
+ - `after_score`: verification re-scan score (out of 32)
147
+ - `gc_rounds`: number of optimizer<->verifier iterations
148
+ 4. Output pipeline summary with [coordinator] prefix
149
+ 5. Execute completion action:
150
+ ```
151
+ AskUserQuestion({
152
+ questions: [{ question: "Pipeline complete. What next?", header: "Completion", options: [
153
+ { label: "Archive & Clean", description: "Archive session and clean up team resources" },
154
+ { label: "Keep Active", description: "Keep session for follow-up work" },
155
+ { label: "Export Results", description: "Export deliverables to specified location" }
156
+ ]}]
157
+ })
158
+ ```
159
+
160
+ ## Error Handling
161
+
162
+ | Error | Resolution |
163
+ |-------|------------|
164
+ | Task timeout | Log, mark failed, ask user to retry or skip |
165
+ | Worker crash | Reset task to pending, respawn worker |
166
+ | Dependency cycle | Detect, report to user, halt |
167
+ | Invalid scope | Reject with error, ask to clarify |
168
+ | Session corruption | Attempt recovery, fallback to manual reconciliation |
169
+ | GC loop stuck > 2 rounds | Escalate to user: accept / try one more / terminate |
170
+ | Chrome DevTools unavailable | Continue without screenshots, note in report |
@@ -0,0 +1,160 @@
1
+ ---
2
+ role: diagnostician
3
+ prefix: DIAG
4
+ inner_loop: false
5
+ message_types: [diag_complete, diag_progress, error]
6
+ ---
7
+
8
+ # Root Cause Diagnostician
9
+
10
+ Deep-dive root cause analysis of discovered design problems. Classify severity, group systemic vs one-off issues, build fix dependency graph, and map each issue group to Impeccable fix strategies.
11
+
12
+ ## Phase 2: Context & Artifact Loading
13
+
14
+ | Input | Source | Required |
15
+ |-------|--------|----------|
16
+ | Scan report | <session>/scan/scan-report.md | Yes |
17
+ | .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
18
+ | Fix strategies | specs/fix-strategies.md | Yes |
19
+ | Design standards | specs/design-standards.md | Yes |
20
+
21
+ 1. Extract session path from task description
22
+ 2. Read scan report: parse per-dimension scores, issue inventory, systemic patterns
23
+ 3. Read specs/fix-strategies.md for issue-to-fix mapping
24
+ 4. Read specs/design-standards.md for target state reference
25
+
26
+ ## Phase 3: Root Cause Analysis
27
+
28
+ ### Step 1: Issue Classification
29
+
30
+ For each issue in the scan report, classify:
31
+
32
+ | Classification | Definition | Example |
33
+ |---------------|------------|---------|
34
+ | Systemic | Affects whole project, single root cause creates many symptoms | "No design token system" causes 15 hard-coded color issues |
35
+ | One-off | Single component, isolated fix | Button missing hover state in one component |
36
+
37
+ ### Step 2: Root Cause Grouping
38
+
39
+ Group issues by shared root cause. Common root cause patterns:
40
+
41
+ | Root Cause | Typical Symptoms |
42
+ |------------|-----------------|
43
+ | No design token system | Hard-coded colors, inconsistent spacing, no theme support |
44
+ | AI-generated template | Multiple AI slop tells (gradient text, glassmorphism, generic fonts) |
45
+ | No typography system | Muddy hierarchy, arbitrary font sizes, no modular scale |
46
+ | No spacing scale | Arbitrary spacing values, monotonous rhythm, no gap usage |
47
+ | No motion system | Random durations, bad easing, no reduced-motion |
48
+ | Missing state layer | No hover/focus/active/disabled/loading across components |
49
+ | No responsive strategy | Fixed widths, missing breakpoints, small mobile targets |
50
+ | No hierarchy design | Everything same weight, no squint test pass, size-only hierarchy |
51
+
52
+ ### Step 3: Priority Assignment
53
+
54
+ For each root cause group:
55
+
56
+ | Priority | Criteria |
57
+ |----------|----------|
58
+ | P0 | Contains any blocking issue (WCAG AA failure, missing focus, horizontal scroll, no viewport meta) |
59
+ | P1 | Contains major issues (pure black/white, contrast near-fail, missing hover/loading) |
60
+ | P2 | Contains minor issues (no OKLCH, overused fonts, monotonous spacing) |
61
+ | P3 | Polish only (missing exit animation, no container queries, optical adjustments) |
62
+
63
+ ### Step 4: Fix Strategy Mapping
64
+
65
+ For each root cause group, map to Impeccable fix strategy (from specs/fix-strategies.md):
66
+
67
+ | Root Cause | Fix Strategy | Effort |
68
+ |------------|-------------|--------|
69
+ | No token system | Create token file, tokenize all values | systemic, high |
70
+ | AI template aesthetic | Break templates, add intentional design | systemic, high |
71
+ | No type system | Define modular scale, apply across project | systemic, medium |
72
+ | No spacing scale | Define 4pt scale, replace arbitrary values | systemic, medium |
73
+ | No motion system | Create motion tokens, fix easing/duration | systemic, medium |
74
+ | Missing states | Add state CSS to each component | distributed, medium |
75
+ | No responsive | Add media queries, fix widths/targets | distributed, high |
76
+ | Individual issues | Component-level fixes | one-off, low |
77
+
78
+ ### Step 5: Fix Dependency Graph
79
+
80
+ Build ordered dependency graph:
81
+
82
+ ```
83
+ 1. Design token system (if missing) -- everything else depends on this
84
+ 2. Color fixes (pure black/white, contrast) -- visual foundation
85
+ 3. Typography system -- content hierarchy
86
+ 4. Spacing scale -- layout foundation
87
+ 5. Anti-AI-slop cleanup -- requires tokens, colors, type to be in place
88
+ 6. Motion system -- independent
89
+ 7. Interaction states -- independent per component
90
+ 8. Visual hierarchy -- requires typography + spacing
91
+ 9. Responsive fixes -- last, tests everything together
92
+ ```
93
+
94
+ Rules:
95
+ - Token system MUST come before individual token consumption fixes
96
+ - Color fixes before anti-slop (anti-slop fixes may adjust colors)
97
+ - Typography before hierarchy (hierarchy depends on type scale)
98
+ - Responsive fixes last (they validate all other fixes at different viewports)
99
+
100
+ ## Phase 4: Validate Diagnosis Completeness
101
+
102
+ | Check | Pass Criteria |
103
+ |-------|---------------|
104
+ | All issues covered | Every issue from scan report appears in at least one root cause group |
105
+ | No orphan issues | No issues without a root cause group |
106
+ | Fix strategies assigned | Every root cause group has a fix strategy |
107
+ | Dependencies valid | Dependency graph is acyclic |
108
+ | Priority consistent | Group priority matches highest-severity issue in group |
109
+
110
+ Output: `<session>/diagnosis/diagnosis-report.md`
111
+
112
+ Report structure:
113
+
114
+ ```markdown
115
+ # Diagnosis Report
116
+
117
+ ## Summary
118
+ - Total issues: N (P0: X, P1: X, P2: X, P3: X)
119
+ - Root cause groups: N
120
+ - Systemic issues: N
121
+ - One-off issues: N
122
+ - Estimated effort: <low|medium|high>
123
+
124
+ ## Root Cause Groups (by priority)
125
+
126
+ ### [P0] <Root Cause Name>
127
+ - **Type**: systemic | one-off
128
+ - **Affected issues**: <count>
129
+ - **Affected files**: <file list>
130
+ - **Description**: <what is fundamentally wrong>
131
+ - **Fix strategy**: <from fix-strategies.md>
132
+ - **Effort**: <quick fix | medium | systemic change>
133
+ - **Dependencies**: <which other fixes must come first>
134
+ - **Issues in this group**:
135
+ | # | Location | Severity | Description |
136
+ |---|----------|----------|-------------|
137
+ | 1 | file:line | P0 | ... |
138
+
139
+ ### [P1] <Root Cause Name>
140
+ ...
141
+
142
+ ## Fix Dependency Graph
143
+ <ordered list of fix phases>
144
+
145
+ ## Recommended Fix Order
146
+ 1. <fix phase 1>: <root cause groups to address>
147
+ 2. <fix phase 2>: <root cause groups to address>
148
+ ...
149
+
150
+ ## Metadata
151
+ - Source: <session>/scan/scan-report.md
152
+ - Original score: X/32
153
+ - Timestamp: <ISO timestamp>
154
+ ```
155
+
156
+ After writing the report, send completion message:
157
+ ```
158
+ mcp__ccw-tools__team_msg(session_id, role="diagnostician", type="diag_complete", content="Diagnosis complete. Root cause groups: N. Systemic: N. Fix phases: N.")
159
+ SendMessage(participant="coordinator", message="[diagnostician] DIAG-001 complete. Root cause groups: N (P0: X, P1: X, P2: X, P3: X). Systemic: N, One-off: N. Report: <session>/diagnosis/diagnosis-report.md")
160
+ ```
@@ -0,0 +1,225 @@
1
+ ---
2
+ role: optimizer
3
+ prefix: OPT
4
+ inner_loop: true
5
+ message_types: [opt_complete, opt_progress, error]
6
+ ---
7
+
8
+ # UI Optimizer -- Targeted Fix Application
9
+
10
+ Apply targeted fixes following Impeccable design standards. Consumes diagnosis report and applies fixes in dependency order. Acts as Generator in the optimizer<->verifier Generator-Critic loop.
11
+
12
+ ## Phase 2: Context & Artifact Loading
13
+
14
+ | Input | Source | Required |
15
+ |-------|--------|----------|
16
+ | Scan report | <session>/scan/scan-report.md | Yes |
17
+ | Diagnosis report | <session>/diagnosis/diagnosis-report.md | Yes |
18
+ | .msg/meta.json | <session>/wisdom/.msg/meta.json | Yes |
19
+ | Fix strategies | specs/fix-strategies.md | Yes |
20
+ | Design standards | specs/design-standards.md | Yes |
21
+ | Verification feedback | <session>/verification/verify-report.md | Only for GC fix tasks |
22
+
23
+ 1. Extract session path from task description
24
+ 2. Read diagnosis report: parse root cause groups, fix dependency graph, recommended fix order
25
+ 3. Read scan report: parse positive findings (things to preserve)
26
+ 4. Read specs/fix-strategies.md and specs/design-standards.md for fix reference
27
+ 5. Detect task type from subject: "OPT-001" -> initial optimization, "OPT-fix-*" -> GC fix round
28
+ 6. If GC fix task: read verification feedback for specific regressions to fix
29
+
30
+ ## Phase 3: Apply Fixes
31
+
32
+ Follow the fix dependency graph from diagnosis report. Apply fixes in order, one category at a time. After each category, self-validate before proceeding.
33
+
34
+ **CRITICAL**: Preserve positive findings from scan report. Do not break what already works.
35
+
36
+ ---
37
+
38
+ ### Fix Category 1: Anti-AI-Slop Fixes
39
+
40
+ Target: Root cause groups tagged with anti-patterns dimension.
41
+
42
+ | Issue | Fix |
43
+ |-------|-----|
44
+ | Generic fonts (Inter, Roboto, Open Sans) | Replace with distinctive alternatives: Instrument Sans, Plus Jakarta Sans, Fraunces, DM Sans, Manrope, Space Grotesk, Geist |
45
+ | Gradient text | Convert to solid accent color. Remove `background-clip: text` + gradient |
46
+ | Identical card grids | Vary card sizes, add featured/hero card, break symmetry. Not everything needs to be a card |
47
+ | Glassmorphism decoration | Remove `backdrop-filter: blur()` unless serving real purpose (e.g., overlays). Replace glow borders with subtle shadows |
48
+ | Hero metric template | Redesign with intentional layout. Vary metric sizes by importance. Remove gradient accents |
49
+ | Nested cards | Flatten: remove inner card borders, use spacing + subtle dividers instead |
50
+ | Everything centered | Add left-alignment for body text. Use asymmetric layouts. Vary alignment per section |
51
+ | All buttons primary | Create button hierarchy: 1 primary, ghost/outline for secondary, text links for tertiary |
52
+ | Same spacing everywhere | Introduce spacing rhythm: tighter within groups, generous between sections |
53
+ | Bounce/elastic easing | Replace with exponential curves: `cubic-bezier(0.25, 1, 0.5, 1)` (ease-out-quart) |
54
+
55
+ ---
56
+
57
+ ### Fix Category 2: Color Fixes
58
+
59
+ Target: Root cause groups tagged with color dimension.
60
+
61
+ | Issue | Fix |
62
+ |-------|-----|
63
+ | Pure black (#000) | Replace with tinted near-black: `oklch(0.15 0.01 <brand-hue>)` or `#0a0a0a`-range tinted |
64
+ | Pure white (#fff) | Replace with tinted near-white: `oklch(0.98 0.005 <brand-hue>)` or `#fafaf8`-range tinted |
65
+ | Untinted grays | Add brand hue tint: `oklch(L 0.005-0.01 <brand-hue>)` for each gray step |
66
+ | Gray on colored bg | Replace with shade of background color or use `color-mix()` / transparency |
67
+ | Contrast failures | Increase lightness difference until WCAG AA met (4.5:1 text, 3:1 large text, 3:1 UI) |
68
+ | No OKLCH | Convert key palette colors to `oklch()`. Especially for generating tints/shades |
69
+ | Accent overuse | Reduce accent to ~10% of page. Convert excess accent to neutral or secondary |
70
+ | No semantic roles | Create token structure: `--color-primary`, `--color-neutral-*`, `--color-success/warning/error`, `--color-surface-*` |
71
+ | Hard-coded colors | Extract to CSS custom properties. Create design token file if none exists |
72
+
73
+ ---
74
+
75
+ ### Fix Category 3: Typography Fixes
76
+
77
+ Target: Root cause groups tagged with typography dimension.
78
+
79
+ | Issue | Fix |
80
+ |-------|-----|
81
+ | Overused fonts | Replace with distinctive alternatives. Body: Plus Jakarta Sans, Instrument Sans, DM Sans. Display: Fraunces, Space Grotesk, Manrope |
82
+ | Muddy hierarchy | Establish clear modular scale. Remove intermediate sizes. Target: 5-7 distinct sizes |
83
+ | No modular scale | Define scale with ratio (1.25 major third, 1.333 perfect fourth, 1.5 perfect fifth). Base: 16px |
84
+ | Small body text | Set minimum `font-size: 1rem` (16px) for body. 14px only for captions/metadata |
85
+ | Bad line length | Add `max-width: 65ch` to prose containers. Min 45ch, max 75ch |
86
+ | Inconsistent line-height | Establish system: 1.5 for body, 1.2-1.3 for headings, 1.6-1.7 for small text |
87
+ | No fluid sizing | Add `clamp()` for h1-h3: e.g., `font-size: clamp(1.75rem, 1.2rem + 2vw, 3rem)` |
88
+ | Missing font-display | Add `font-display: swap` to all @font-face declarations |
89
+
90
+ ---
91
+
92
+ ### Fix Category 4: Spacing & Layout Fixes
93
+
94
+ Target: Root cause groups tagged with spacing dimension.
95
+
96
+ | Issue | Fix |
97
+ |-------|-----|
98
+ | Arbitrary spacing | Replace with nearest value on 4pt scale: 4, 8, 12, 16, 24, 32, 48, 64, 96px |
99
+ | No spacing scale | Create CSS custom properties: `--space-1: 0.25rem` through `--space-12: 6rem` |
100
+ | Monotonous spacing | Vary spacing: tighter within component groups (8-12px), generous between sections (48-96px) |
101
+ | Card overuse | Remove card wrapper from items that do not need distinct containment. Use spacing + dividers |
102
+ | Nested cards | Flatten inner cards. Remove inner borders. Use spacing or subtle background tint |
103
+ | Fixed widths | Replace `width: Npx` with `max-width` + `width: 100%` or grid/flex |
104
+ | Small touch targets | Set `min-height: 44px; min-width: 44px` on all interactive elements |
105
+ | Margin for siblings | Replace `margin-top/bottom` between siblings with `gap` on flex/grid parent |
106
+
107
+ ---
108
+
109
+ ### Fix Category 5: Motion Fixes
110
+
111
+ Target: Root cause groups tagged with motion dimension.
112
+
113
+ | Issue | Fix |
114
+ |-------|-----|
115
+ | Layout property animation | Replace `width/height/top/left/margin/padding` transitions with `transform` + `opacity` |
116
+ | Bad easing | Replace `ease`, `linear`, `ease-in-out` with `cubic-bezier(0.25, 1, 0.5, 1)` (ease-out-quart) |
117
+ | Bounce/elastic | Replace with exponential: `cubic-bezier(0.25, 1, 0.5, 1)` for enter, `cubic-bezier(0.5, 0, 0.75, 0)` for exit |
118
+ | No reduced-motion | Add: `@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }` |
119
+ | No motion tokens | Create: `--duration-instant: 100ms`, `--duration-fast: 150ms`, `--duration-normal: 250ms`, `--duration-slow: 400ms`, `--duration-entrance: 500ms` |
120
+ | Uncapped stagger | Cap at 10 items visible, total stagger <= 500ms. Use `animation-delay: min(calc(var(--i) * 50ms), 500ms)` |
121
+ | Premature will-change | Remove from CSS. Add via JS on `pointerenter`/`focusin`, remove on `animationend`/`transitionend` |
122
+
123
+ ---
124
+
125
+ ### Fix Category 6: Interaction State Fixes
126
+
127
+ Target: Root cause groups tagged with interaction dimension.
128
+
129
+ | Issue | Fix |
130
+ |-------|-----|
131
+ | Missing hover | Add `:hover` with subtle background change or opacity shift. Use `@media (hover: hover)` to scope |
132
+ | Missing focus | Add `:focus-visible` with focus ring: `outline: 2px solid var(--color-primary); outline-offset: 2px` |
133
+ | outline: none | Replace with `:focus-visible` pattern. Only `:focus:not(:focus-visible) { outline: none }` |
134
+ | No focus-visible | Replace `:focus` styles with `:focus-visible`. Add polyfill if browser support needed |
135
+ | Missing active | Add `:active` with `transform: scale(0.97)` or darker background |
136
+ | Missing disabled | Add `[disabled], [aria-disabled="true"]` with `opacity: 0.5; cursor: not-allowed; pointer-events: none` |
137
+ | Missing loading | Add loading state: spinner/skeleton + `aria-busy="true"` + disable submit button |
138
+ | Missing error/success | Add form validation styles: red border + error message for error, green check for success |
139
+ | Placeholder as label | Add visible `<label>` element. Keep placeholder as hint only. Use `aria-labelledby` if needed |
140
+ | Focus ring quality | Ensure: 2px solid accent, offset 2px, 3:1 contrast ratio against background |
141
+
142
+ ---
143
+
144
+ ### Fix Category 7: Visual Hierarchy Fixes
145
+
146
+ Target: Root cause groups tagged with hierarchy dimension.
147
+
148
+ | Issue | Fix |
149
+ |-------|-----|
150
+ | Fails squint test | Increase size/weight/color contrast of primary element. Reduce visual weight of secondary elements |
151
+ | Primary action unclear | Make primary CTA largest, highest contrast, most saturated. Only 1 primary per viewport |
152
+ | Size-only hierarchy | Add weight (bold vs regular) + color (saturated vs muted) + space (more surrounding space = more important) |
153
+ | No information grouping | Use proximity principle: tighter spacing within groups, larger gaps between groups |
154
+ | Visual competition | Reduce visual weight of competing elements. Mute colors, reduce size, decrease contrast |
155
+ | No 3:1 ratio | Ensure h1 is at least 3x body size. Each heading level should be 1.25-1.5x the next |
156
+ | Decoration over content | Reduce or remove decorative elements. Mute icon colors. Remove background decorations |
157
+
158
+ ---
159
+
160
+ ### Fix Category 8: Responsive Fixes
161
+
162
+ Target: Root cause groups tagged with responsive dimension.
163
+
164
+ | Issue | Fix |
165
+ |-------|-----|
166
+ | Fixed widths | Replace with `max-width` + `width: 100%`, or `min()`, or grid `fr` units |
167
+ | Horizontal scroll | Find overflow source. Add `overflow-x: hidden` on body only as last resort. Fix root cause |
168
+ | Hidden content | Restructure for mobile instead of hiding. Use accordion, tabs, or progressive disclosure |
169
+ | No container queries | Add `container-type: inline-size` on component wrappers. Use `@container` for component-level responsive |
170
+ | Small mobile text | Set minimum 14px (0.875rem) for all text on mobile. Prefer 16px for body |
171
+ | Tiny mobile targets | Set `min-height: 44px` on all interactive elements. Add padding if needed |
172
+ | No breakpoints | Add: `@media (min-width: 640px)`, `(min-width: 768px)`, `(min-width: 1024px)`, `(min-width: 1280px)` |
173
+ | Broken images | Add `img { max-width: 100%; height: auto }`. Use `object-fit` for fixed aspect ratios |
174
+
175
+ ---
176
+
177
+ ## Phase 4: Self-Validation & Output
178
+
179
+ 1. After all fixes applied, validate:
180
+
181
+ | Check | Pass Criteria |
182
+ |-------|---------------|
183
+ | Code compiles | No syntax errors in modified files |
184
+ | Lint passes | No new lint errors introduced |
185
+ | No positive findings broken | Items from scan report "Positive Findings" section still intact |
186
+ | Fix log complete | Every applied fix documented |
187
+
188
+ 2. Write fix log: `<session>/optimization/fix-log.md`
189
+
190
+ ```markdown
191
+ # Optimization Fix Log
192
+
193
+ ## Summary
194
+ - Fixes applied: N
195
+ - Files modified: N
196
+ - Categories addressed: <list>
197
+ - GC round: <1 | fix-N>
198
+
199
+ ## Fixes Applied
200
+
201
+ ### Category: <category name>
202
+ | # | File | Line | Before | After | Issue Ref |
203
+ |---|------|------|--------|-------|-----------|
204
+ | 1 | path/to/file.css | 42 | `color: #000` | `color: oklch(0.15 0.01 250)` | P1-Color-3 |
205
+
206
+ ### Category: <next category>
207
+ ...
208
+
209
+ ## Files Modified
210
+ - `path/to/file.css`: <summary of changes>
211
+ - `path/to/file.tsx`: <summary of changes>
212
+
213
+ ## Preserved (not modified)
214
+ - <positive findings that were intentionally kept>
215
+
216
+ ## Metadata
217
+ - Source diagnosis: <session>/diagnosis/diagnosis-report.md
218
+ - Timestamp: <ISO timestamp>
219
+ ```
220
+
221
+ 3. Send completion message:
222
+ ```
223
+ mcp__ccw-tools__team_msg(session_id, role="optimizer", type="opt_complete", content="Optimization complete. Fixes applied: N. Files modified: N. Categories: <list>.")
224
+ SendMessage(participant="coordinator", message="[optimizer] OPT-001 complete. Applied N fixes across N files. Categories: <list>. Log: <session>/optimization/fix-log.md")
225
+ ```