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,356 @@
1
+ # Design Standards
2
+
3
+ Impeccable's positive design standards. These are the target state -- what good looks like. Used by scanner for scoring (how close to ideal) and optimizer as fix targets.
4
+
5
+ ---
6
+
7
+ ## Color
8
+
9
+ ### Principles
10
+ - Use **OKLCH** for perceptually uniform palettes. Colors at the same lightness actually look the same lightness
11
+ - Tint neutrals toward brand hue (chroma 0.005-0.01). Never pure gray
12
+ - **60-30-10 rule**: 60% neutral, 30% secondary/supporting, 10% accent
13
+ - Semantic token hierarchy: primitive -> semantic -> component tokens
14
+ - Never pure black (`#000`) or pure white (`#fff`). Always tint
15
+
16
+ ### Color Token Structure
17
+ ```
18
+ --color-primary oklch(0.55 0.2 250)
19
+ --color-primary-hover oklch(0.50 0.22 250)
20
+ --color-primary-active oklch(0.45 0.22 250)
21
+
22
+ --color-neutral-50 oklch(0.98 0.005 250) /* near-white, brand tinted */
23
+ --color-neutral-100 oklch(0.95 0.005 250)
24
+ --color-neutral-200 oklch(0.90 0.007 250)
25
+ --color-neutral-300 oklch(0.80 0.007 250)
26
+ --color-neutral-400 oklch(0.65 0.008 250)
27
+ --color-neutral-500 oklch(0.50 0.008 250)
28
+ --color-neutral-600 oklch(0.40 0.008 250)
29
+ --color-neutral-700 oklch(0.30 0.008 250)
30
+ --color-neutral-800 oklch(0.20 0.010 250)
31
+ --color-neutral-900 oklch(0.13 0.010 250)
32
+ --color-neutral-950 oklch(0.08 0.010 250) /* near-black, brand tinted */
33
+
34
+ --color-success oklch(0.65 0.18 145)
35
+ --color-warning oklch(0.75 0.15 85)
36
+ --color-error oklch(0.55 0.22 25)
37
+ --color-info oklch(0.60 0.15 250)
38
+
39
+ --color-surface var(--color-neutral-50)
40
+ --color-surface-raised var(--color-neutral-100)
41
+ --color-surface-overlay var(--color-neutral-900 / 0.5)
42
+
43
+ --color-text-primary var(--color-neutral-900)
44
+ --color-text-secondary var(--color-neutral-600)
45
+ --color-text-muted var(--color-neutral-400)
46
+ ```
47
+
48
+ ### Contrast Requirements (WCAG AA)
49
+ - Normal text (<18px / <24px bold): 4.5:1 minimum
50
+ - Large text (>=18px / >=24px bold): 3:1 minimum
51
+ - UI components and graphical objects: 3:1 minimum
52
+ - Focus indicators: 3:1 against adjacent colors
53
+
54
+ ### Text on Colored Backgrounds
55
+ - Never gray text on colored backgrounds (looks washed out)
56
+ - Use shade of the background color, or white/dark with transparency
57
+ - `color-mix(in oklch, var(--bg-color) 30%, black)` for text on colored surfaces
58
+
59
+ ---
60
+
61
+ ## Typography
62
+
63
+ ### Font Selection
64
+ Avoid: Inter, Roboto, Open Sans, Lato, Montserrat, Arial (overused defaults).
65
+
66
+ Recommended alternatives by category:
67
+ - **Sans-serif body**: Instrument Sans, Plus Jakarta Sans, DM Sans, Geist, General Sans
68
+ - **Sans-serif display**: Space Grotesk, Manrope, Outfit, Satoshi, Clash Display
69
+ - **Serif display**: Fraunces, Playfair Display 2, Source Serif 4
70
+ - **Monospace (code only)**: Geist Mono, JetBrains Mono, Fira Code
71
+
72
+ ### Modular Type Scale
73
+ Choose one ratio and apply consistently:
74
+
75
+ | Ratio | Name | Scale (base 16px) |
76
+ |-------|------|--------------------|
77
+ | 1.125 | Major Second | 16, 18, 20.25, 22.78, 25.63 |
78
+ | 1.200 | Minor Third | 16, 19.2, 23.04, 27.65, 33.18 |
79
+ | 1.250 | Major Third | 16, 20, 25, 31.25, 39.06 |
80
+ | 1.333 | Perfect Fourth | 16, 21.33, 28.43, 37.9, 50.52 |
81
+ | 1.500 | Perfect Fifth | 16, 24, 36, 54, 81 |
82
+
83
+ ### Fluid Sizing
84
+ Use `clamp()` for display text:
85
+ ```css
86
+ --text-xs: 0.75rem; /* 12px, fixed */
87
+ --text-sm: 0.875rem; /* 14px, fixed */
88
+ --text-base: 1rem; /* 16px, body */
89
+ --text-lg: 1.125rem; /* 18px */
90
+ --text-xl: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem); /* 20-24px */
91
+ --text-2xl: clamp(1.5rem, 1.2rem + 1vw, 2rem); /* 24-32px */
92
+ --text-3xl: clamp(1.875rem, 1.4rem + 1.5vw, 2.5rem); /* 30-40px */
93
+ --text-4xl: clamp(2.25rem, 1.5rem + 2.5vw, 3.5rem); /* 36-56px */
94
+ ```
95
+
96
+ ### Line Height & Spacing
97
+ - Body text: `line-height: 1.5` (24px at 16px base)
98
+ - Headings: `line-height: 1.2` (tighter)
99
+ - Small text / captions: `line-height: 1.6`
100
+ - Reading width: `max-width: 65ch` (range: 45-75ch)
101
+
102
+ ### Loading
103
+ - `font-display: swap` on all custom fonts
104
+ - Provide `size-adjust`, `ascent-override`, `descent-override` on fallback for minimal CLS
105
+
106
+ ---
107
+
108
+ ## Spacing
109
+
110
+ ### 4pt Base Scale
111
+ ```css
112
+ --space-0: 0;
113
+ --space-1: 0.25rem; /* 4px */
114
+ --space-2: 0.5rem; /* 8px */
115
+ --space-3: 0.75rem; /* 12px */
116
+ --space-4: 1rem; /* 16px */
117
+ --space-5: 1.25rem; /* 20px */
118
+ --space-6: 1.5rem; /* 24px */
119
+ --space-8: 2rem; /* 32px */
120
+ --space-10: 2.5rem; /* 40px */
121
+ --space-12: 3rem; /* 48px */
122
+ --space-16: 4rem; /* 64px */
123
+ --space-24: 6rem; /* 96px */
124
+ ```
125
+
126
+ ### Rhythm
127
+ - **Tight**: 4-8px within component groups (e.g., label + input, icon + text)
128
+ - **Comfortable**: 16-24px between related items (e.g., list items, form fields)
129
+ - **Generous**: 48-96px between major sections (e.g., page sections, content blocks)
130
+
131
+ Monotonous spacing (same value everywhere) = no rhythm = boring. Vary spacing intentionally.
132
+
133
+ ### Layout Principles
134
+ - Use `gap` instead of `margin` for sibling spacing
135
+ - Cards only when content is truly distinct and actionable. Not everything needs a card
136
+ - Flatten nested cards -- use spacing + subtle dividers instead
137
+ - Container queries (`@container`) for component-level responsive
138
+ - Touch targets: minimum 44x44px for all interactive elements
139
+ - Optical adjustments: visually center, not mathematically center (e.g., play button in circle needs right offset)
140
+
141
+ ---
142
+
143
+ ## Motion
144
+
145
+ ### Property Rules
146
+ - **Animate ONLY**: `transform`, `opacity`, `clip-path`, `background-color`, `color`, `border-color`, `box-shadow`, `filter`
147
+ - **NEVER animate**: `width`, `height`, `top`, `left`, `right`, `bottom`, `margin`, `padding` (triggers layout)
148
+
149
+ ### Easing
150
+ - **Default (ease-out-quart)**: `cubic-bezier(0.25, 1, 0.5, 1)` -- decelerates naturally
151
+ - **Enter (ease-out)**: `cubic-bezier(0, 0, 0.25, 1)` -- elements arrive and settle
152
+ - **Exit (ease-in)**: `cubic-bezier(0.5, 0, 0.75, 0)` -- elements accelerate away
153
+ - **NEVER**: `ease` (default), `linear` (mechanical), bounce/elastic (dated)
154
+
155
+ ### Duration Scale
156
+ ```css
157
+ --duration-instant: 100ms; /* tooltip show, ripple */
158
+ --duration-fast: 150ms; /* button hover, focus ring */
159
+ --duration-normal: 250ms; /* dropdown open, tab switch */
160
+ --duration-slow: 400ms; /* modal open, sidebar slide */
161
+ --duration-entrance: 500ms; /* page entrance, hero animation */
162
+ --duration-complex: 800ms; /* complex sequence, page transition */
163
+ ```
164
+
165
+ - Exit = 75% of entrance duration
166
+ - Feedback (hover, active, focus): 100-150ms maximum
167
+ - State change: 200-300ms
168
+ - Layout change: 300-500ms
169
+
170
+ ### Stagger
171
+ - Max visible items to stagger: 10
172
+ - Total stagger duration: max 500ms
173
+ - Formula: `animation-delay: calc(var(--index) * 50ms)`
174
+ - Cap: `animation-delay: min(calc(var(--index) * 50ms), 500ms)`
175
+
176
+ ### Reduced Motion
177
+ **Required** -- affects ~35% of adults over 40:
178
+ ```css
179
+ @media (prefers-reduced-motion: reduce) {
180
+ *,
181
+ *::before,
182
+ *::after {
183
+ animation-duration: 0.01ms !important;
184
+ animation-iteration-count: 1 !important;
185
+ transition-duration: 0.01ms !important;
186
+ scroll-behavior: auto !important;
187
+ }
188
+ }
189
+ ```
190
+
191
+ ### will-change
192
+ - Do NOT set in CSS (wastes GPU memory permanently)
193
+ - Add via JS on `pointerenter` / `focusin`
194
+ - Remove on `animationend` / `transitionend`
195
+
196
+ ---
197
+
198
+ ## Interaction States
199
+
200
+ ### The 8 Required States
201
+
202
+ Every interactive element must define:
203
+
204
+ | State | CSS | Visual Change |
205
+ |-------|-----|---------------|
206
+ | Default | -- | Base appearance |
207
+ | Hover | `:hover` (wrap in `@media(hover:hover)`) | Subtle background/opacity change |
208
+ | Focus | `:focus-visible` | Focus ring: 2px solid accent, offset 2px |
209
+ | Active | `:active` | Scale down (0.97) or darker background |
210
+ | Disabled | `[disabled], [aria-disabled="true"]` | Opacity 0.5, cursor not-allowed |
211
+ | Loading | `[aria-busy="true"]` | Spinner/skeleton, disable interaction |
212
+ | Error | `[aria-invalid="true"]` | Red border, error message below |
213
+ | Success | custom class/attribute | Green check, success message |
214
+
215
+ ### Focus Ring Specification
216
+ ```css
217
+ :focus-visible {
218
+ outline: 2px solid var(--color-primary);
219
+ outline-offset: 2px;
220
+ border-radius: inherit;
221
+ }
222
+
223
+ /* Only remove outline for mouse clicks */
224
+ :focus:not(:focus-visible) {
225
+ outline: none;
226
+ }
227
+ ```
228
+
229
+ Focus ring contrast: 3:1 minimum against all adjacent colors.
230
+
231
+ ### Form Labels
232
+ - Always provide visible `<label>` elements
233
+ - Placeholders are hints, NOT labels (they disappear)
234
+ - Use `aria-labelledby` or `aria-label` for icon-only buttons
235
+ - Error messages: `aria-describedby` linking input to error text
236
+
237
+ ### Touch Targets
238
+ - Minimum: 44x44px (WCAG 2.5.5 AAA) / 24x24px (WCAG 2.5.8 AA minimum)
239
+ - Use padding to increase hit area without changing visual size
240
+ - Minimum 8px gap between adjacent targets
241
+
242
+ ---
243
+
244
+ ## Visual Hierarchy
245
+
246
+ ### Squint Test
247
+ Blur the page (or squint). You should immediately identify:
248
+ 1. The most important element (usually primary heading or CTA)
249
+ 2. The second most important element
250
+ 3. Clear groupings of related content
251
+
252
+ If everything looks the same when blurred, hierarchy has failed.
253
+
254
+ ### Hierarchy Tools (use 2-3 together)
255
+ | Tool | Effect |
256
+ |------|--------|
257
+ | Size | Larger = more important. 3:1 ratio between major levels |
258
+ | Weight | Bold vs regular vs light. Maximum 2 weights per page |
259
+ | Color | Saturated vs muted. Primary color for emphasis |
260
+ | Space | More surrounding space = more important |
261
+ | Position | Top-left reads first (in LTR). Above fold > below fold |
262
+ | Contrast | High contrast = more important. Low contrast recedes |
263
+
264
+ ### Primary Action Rule
265
+ - Only 1 primary CTA per viewport
266
+ - Primary: filled button, highest contrast, most saturated
267
+ - Secondary: outline/ghost button
268
+ - Tertiary: text link, no background
269
+
270
+ ### Progressive Disclosure
271
+ - Show summary first, detail on demand
272
+ - Expandable sections, "show more," detail panels
273
+ - Do not dump all information at once
274
+
275
+ ---
276
+
277
+ ## Responsive Design
278
+
279
+ ### Breakpoints
280
+ ```css
281
+ /* Mobile first */
282
+ --bp-sm: 640px; /* Small tablets */
283
+ --bp-md: 768px; /* Tablets */
284
+ --bp-lg: 1024px; /* Laptops */
285
+ --bp-xl: 1280px; /* Desktops */
286
+ --bp-2xl: 1536px; /* Large screens */
287
+ ```
288
+
289
+ ### Fluid Design Principles
290
+ - Use `%`, `vw`, `fr`, `min()`, `max()`, `clamp()` instead of fixed `px` widths
291
+ - `max-width` instead of `width` for containers
292
+ - Grid with `fr` units for responsive layouts
293
+ - Container queries (`@container`) for component-level responsiveness
294
+
295
+ ### Mobile Requirements
296
+ - Minimum text: 14px (0.875rem), prefer 16px for body
297
+ - Touch targets: 44x44px minimum
298
+ - No horizontal scroll at >= 320px viewport
299
+ - Must have `<meta name="viewport" content="width=device-width, initial-scale=1">`
300
+ - Images: `max-width: 100%; height: auto`
301
+
302
+ ### Adapt, Don't Hide
303
+ - Content should be restructured for smaller screens, not hidden
304
+ - Stack horizontal layouts vertically
305
+ - Use accordion/tabs for complex content
306
+ - Simplify navigation (hamburger, bottom nav)
307
+
308
+ ---
309
+
310
+ ## UX Writing
311
+
312
+ ### Button Labels
313
+ - NEVER: "OK", "Submit", "Yes", "No" (generic)
314
+ - ALWAYS: verb + object -- "Save changes", "Create account", "Delete message"
315
+ - Destructive: name the destruction + count -- "Delete 5 items"
316
+
317
+ ### Error Messages
318
+ Formula: what happened + why + how to fix
319
+ - "Password must be 8+ characters with a number" not "Invalid password"
320
+ - Never blame user, never use codes alone
321
+ - Preserve user input on error
322
+
323
+ ### Empty States
324
+ Acknowledge + explain value + provide action
325
+ - "No projects yet. Create your first project to start collaborating. [Create project]"
326
+
327
+ ### Loading Text
328
+ - Specific: "Saving your draft..." not "Loading..."
329
+ - Multi-step: "Uploading (2 of 5 files)..."
330
+
331
+ ### Consistency
332
+ - One term per concept (delete/remove -> pick one)
333
+ - Same icon for same action everywhere
334
+
335
+ ---
336
+
337
+ ## Dark Mode (when present)
338
+
339
+ ### Rules
340
+ - NOT inverted light mode -- requires deliberate design
341
+ - **Surface hierarchy**: lighter surfaces = higher elevation
342
+ - Base: `oklch(0.10-0.15 0.01 <hue>)`
343
+ - Raised: `oklch(0.18-0.22 0.01 <hue>)`
344
+ - Overlay: `oklch(0.24-0.28 0.01 <hue>)`
345
+ - **Font weight**: reduce by 1 step (600->500, 500->400) -- light text on dark looks heavier
346
+ - **Accent colors**: desaturate -- reduce OKLCH chroma by 0.05-0.10 from light theme values
347
+ - Never: pure black `#000` background
348
+
349
+ ### Dangerous Combinations
350
+ | Combination | Problem | Fix |
351
+ |-------------|---------|-----|
352
+ | Gray on colored bg | Washed out | Use shade of bg color or white with opacity |
353
+ | Red + Green adjacent | Color blindness | Add icons/patterns |
354
+ | Yellow on white | Invisible | Use dark amber |
355
+ | Thin light text on images | Unpredictable contrast | Text shadow or overlay |
356
+ | Saturated on dark | Visual vibration | Desaturate chroma |
@@ -0,0 +1,235 @@
1
+ # Fix Strategies
2
+
3
+ Maps issue categories to Impeccable fix strategies. Used by diagnostician for fix planning and optimizer for implementation guidance.
4
+
5
+ ## Strategy Index
6
+
7
+ | Issue Category | Fix Strategy | Impeccable Concept | Scope |
8
+ |----------------|-------------|-------------------|-------|
9
+ | AI slop aesthetic | De-template | normalize + critique | Systemic |
10
+ | Color problems | Colorize | colorize | Systemic / Per-file |
11
+ | Typography issues | Typeset | typeset | Systemic |
12
+ | Spacing/layout | Arrange | arrange | Systemic / Per-file |
13
+ | Animation issues | Animate | animate | Per-file |
14
+ | Missing states | Harden | harden + polish | Per-component |
15
+ | Visual noise | Simplify | quieter + distill | Per-component |
16
+ | Too bland/weak | Strengthen | bolder + delight | Per-component |
17
+ | Inconsistency | Normalize | normalize | Systemic |
18
+ | Final pass | Polish | polish | Per-component |
19
+ | Hierarchy issues | Clarify | distill + bolder | Per-page |
20
+ | Responsive issues | Adapt | adapt | Per-component |
21
+
22
+ ---
23
+
24
+ ## De-template (Anti-AI-Slop)
25
+
26
+ **When**: Anti-patterns dimension score 0-2 (AI slop or heavy AI influence)
27
+
28
+ **Strategy**:
29
+ 1. Replace generic fonts with distinctive alternatives (see design-standards.md Typography)
30
+ 2. Convert gradient text to solid accent colors with weight/size emphasis instead
31
+ 3. Break identical card grids: vary sizes, add featured card, introduce asymmetry
32
+ 4. Remove decorative glassmorphism (keep functional like overlays)
33
+ 5. Redesign hero metrics with intentional hierarchy, not template layout
34
+ 6. Flatten nested cards into single-level with spacing
35
+ 7. Add left-alignment for body text, centering only for specific hero elements
36
+ 8. Create button hierarchy: 1 primary, ghost secondary, text tertiary
37
+ 9. Introduce spacing rhythm (tight within groups, generous between sections)
38
+ 10. Replace bounce easing with exponential curves
39
+
40
+ **Dependency**: Requires Colorize and Typeset to be planned (often executed together).
41
+
42
+ ---
43
+
44
+ ## Colorize
45
+
46
+ **When**: Color dimension score 0-2 or any P0/P1 color issues
47
+
48
+ **Strategy**:
49
+ 1. **Token foundation** (if no tokens exist):
50
+ - Create CSS custom property file with full neutral scale (50-950)
51
+ - Define primary, semantic (success/warning/error/info), and surface tokens
52
+ - All neutrals tinted toward brand hue (OKLCH chroma 0.005-0.01)
53
+
54
+ 2. **Pure black/white removal**:
55
+ - `#000` -> `oklch(0.08-0.15 0.01 <hue>)` (near-black, brand tinted)
56
+ - `#fff` -> `oklch(0.97-0.99 0.005 <hue>)` (near-white, brand tinted)
57
+
58
+ 3. **Gray tinting**:
59
+ - Convert all pure grays to brand-tinted variants
60
+ - Add chroma 0.005-0.01 at brand hue
61
+
62
+ 4. **Contrast fixes**:
63
+ - Measure each text/background pair
64
+ - Adjust lightness until WCAG AA met (4.5:1 normal, 3:1 large)
65
+
66
+ 5. **OKLCH conversion**:
67
+ - Convert key palette colors from hex/hsl to oklch
68
+ - Generate tint/shade scales in OKLCH for perceptual uniformity
69
+
70
+ 6. **60-30-10 enforcement**:
71
+ - Audit accent color usage, reduce to ~10%
72
+ - Ensure neutral dominates at ~60%
73
+
74
+ **Dependency**: Should run before De-template (anti-slop fixes may need new colors).
75
+
76
+ ---
77
+
78
+ ## Typeset
79
+
80
+ **When**: Typography dimension score 0-2 or muddy hierarchy
81
+
82
+ **Strategy**:
83
+ 1. **Font replacement**: Swap generic fonts for distinctive alternatives
84
+ - Body: Plus Jakarta Sans, Instrument Sans, DM Sans, Geist
85
+ - Display: Space Grotesk, Manrope, Fraunces
86
+ 2. **Scale establishment**: Choose modular ratio (1.25 or 1.333 recommended), generate size scale
87
+ 3. **Fluid sizing**: Add `clamp()` for h1-h3 display sizes
88
+ 4. **Line length**: Add `max-width: 65ch` to prose containers
89
+ 5. **Vertical rhythm**: Set line-height system (1.5 body, 1.2 headings)
90
+ 6. **Font loading**: Add `font-display: swap` to all @font-face
91
+
92
+ **Dependency**: Run before Clarify (hierarchy depends on type scale).
93
+
94
+ ---
95
+
96
+ ## Arrange
97
+
98
+ **When**: Spacing dimension score 0-2 or arbitrary spacing values
99
+
100
+ **Strategy**:
101
+ 1. **Scale creation**: Define 4pt base scale as CSS custom properties
102
+ 2. **Value replacement**: Map arbitrary values to nearest scale value
103
+ 3. **Rhythm introduction**: Tight (4-8px) within groups, comfortable (16-24px) between items, generous (48-96px) between sections
104
+ 4. **Card flattening**: Remove nested cards, replace with spacing + subtle dividers
105
+ 5. **Gap conversion**: Replace margin between siblings with gap on flex/grid parent
106
+ 6. **Touch targets**: Ensure all interactive elements are 44x44px minimum
107
+
108
+ **Dependency**: Independent, but benefits from Colorize tokens being in place.
109
+
110
+ ---
111
+
112
+ ## Animate
113
+
114
+ **When**: Motion dimension score 0-2 or layout property animations
115
+
116
+ **Strategy**:
117
+ 1. **Property fix**: Replace layout animations (width/height/margin/padding) with transform+opacity
118
+ 2. **Easing fix**: Replace ease/linear/bounce with exponential curves
119
+ 3. **Reduced-motion**: Add `@media (prefers-reduced-motion: reduce)` global rule
120
+ 4. **Token system**: Create duration + easing custom properties
121
+ 5. **Stagger cap**: Cap stagger at 10 items, 500ms total
122
+ 6. **will-change**: Remove from CSS, document JS activation pattern
123
+
124
+ **Dependency**: Independent.
125
+
126
+ ---
127
+
128
+ ## Harden
129
+
130
+ **When**: Interaction states dimension score 0-2 or missing critical states
131
+
132
+ **Strategy**:
133
+ 1. **Hover**: Add `:hover` with subtle visual change, wrap in `@media(hover:hover)`
134
+ 2. **Focus**: Add `:focus-visible` with 2px solid accent ring, offset 2px
135
+ 3. **Active**: Add `:active` with scale(0.97) or darker background
136
+ 4. **Disabled**: Add `[disabled]` with opacity 0.5, cursor not-allowed
137
+ 5. **Loading**: Add aria-busy pattern with spinner/skeleton
138
+ 6. **Error/Success**: Add form validation visual states
139
+ 7. **Focus ring**: Ensure 3:1 contrast against all adjacent colors
140
+ 8. **Labels**: Replace placeholder-as-label with visible `<label>` elements
141
+ 9. **Touch targets**: Pad interactive elements to 44px minimum
142
+
143
+ **Dependency**: Requires Colorize tokens for consistent state colors.
144
+
145
+ ---
146
+
147
+ ## Simplify (quieter + distill)
148
+
149
+ **When**: Visual noise, too many decorations, competing elements
150
+
151
+ **Strategy**:
152
+ 1. Remove decorative elements that do not aid comprehension
153
+ 2. Mute icon colors (reduce saturation/opacity)
154
+ 3. Remove background decorations and unnecessary borders
155
+ 4. Reduce shadow intensity
156
+ 5. Simplify card borders (remove or lighten)
157
+ 6. Remove sparkline decorations without data value
158
+
159
+ **Dependency**: Independent.
160
+
161
+ ---
162
+
163
+ ## Strengthen (bolder + delight)
164
+
165
+ **When**: Too bland, everything same weight, no emphasis
166
+
167
+ **Strategy**:
168
+ 1. Increase primary element size by 1.5-2x
169
+ 2. Add color saturation to primary CTA
170
+ 3. Increase weight contrast (bold primary, regular secondary)
171
+ 4. Add subtle micro-interactions (hover lift, active press)
172
+ 5. Introduce one distinctive element (asymmetric layout, unexpected color, custom illustration)
173
+
174
+ **Dependency**: Requires Typeset and Colorize to be in place.
175
+
176
+ ---
177
+
178
+ ## Clarify (hierarchy)
179
+
180
+ **When**: Visual hierarchy dimension score 0-2 or fails squint test
181
+
182
+ **Strategy**:
183
+ 1. Identify primary element, increase to 3:1 ratio over body
184
+ 2. Use 2-3 hierarchy tools together (size + weight + color)
185
+ 3. Group related content with proximity (smaller gaps within, larger between)
186
+ 4. Reduce visual weight of competing secondary elements
187
+ 5. Ensure only 1 primary CTA per viewport
188
+ 6. Add progressive disclosure where appropriate
189
+
190
+ **Dependency**: Requires Typeset (size hierarchy) and Colorize (color hierarchy).
191
+
192
+ ---
193
+
194
+ ## Adapt (responsive)
195
+
196
+ **When**: Responsive dimension score 0-2 or broken mobile experience
197
+
198
+ **Strategy**:
199
+ 1. Replace fixed widths with fluid (%, vw, fr, min/max/clamp)
200
+ 2. Add missing breakpoints (640, 768, 1024, 1280px)
201
+ 3. Fix overflow (horizontal scroll causes)
202
+ 4. Fix mobile text sizes (minimum 14px)
203
+ 5. Fix touch targets (minimum 44px)
204
+ 6. Add container queries for component-level responsive
205
+ 7. Restructure hidden content (adapt, don't hide)
206
+ 8. Add viewport meta tag if missing
207
+
208
+ **Dependency**: Run last -- tests all other fixes at different viewports.
209
+
210
+ ---
211
+
212
+ ## Fix Order (Default)
213
+
214
+ When applying all strategies in a full polish cycle:
215
+
216
+ ```
217
+ Phase 1: Foundation
218
+ 1. Colorize (token system + color fixes)
219
+ 2. Typeset (font + scale + fluid sizing)
220
+ 3. Arrange (spacing scale + layout)
221
+
222
+ Phase 2: Aesthetic
223
+ 4. De-template (anti-AI-slop cleanup)
224
+ 5. Simplify or Strengthen (as needed)
225
+
226
+ Phase 3: Interaction
227
+ 6. Animate (motion system)
228
+ 7. Harden (interaction states)
229
+
230
+ Phase 4: Structure
231
+ 8. Clarify (visual hierarchy)
232
+
233
+ Phase 5: Validation
234
+ 9. Adapt (responsive -- tests everything)
235
+ ```
@@ -0,0 +1,81 @@
1
+ # Pipeline Definitions
2
+
3
+ UI polish pipeline modes and task registry.
4
+
5
+ ## Pipeline Modes
6
+
7
+ | Mode | Description | Task Count |
8
+ |------|-------------|------------|
9
+ | scan-only | Discover + diagnose, report only | 2 tasks |
10
+ | targeted | Fix specific dimensions: scan -> diagnose -> optimize -> verify | 4 tasks |
11
+ | full | Complete polish cycle with GC loop on verify failure | 4 tasks + GC |
12
+
13
+ ## Scan-Only Pipeline Task Registry
14
+
15
+ | Task ID | Role | blockedBy | Description |
16
+ |---------|------|-----------|-------------|
17
+ | SCAN-001 | scanner | [] | 8-dimension UI audit against Impeccable design standards |
18
+ | DIAG-001 | diagnostician | [SCAN-001] | Root cause analysis, severity classification, fix dependency graph |
19
+
20
+ ## Targeted Pipeline Task Registry
21
+
22
+ | Task ID | Role | blockedBy | Description |
23
+ |---------|------|-----------|-------------|
24
+ | SCAN-001 | scanner | [] | 8-dimension UI audit (filtered to target dimensions) |
25
+ | DIAG-001 | diagnostician | [SCAN-001] | Root cause analysis for targeted dimensions |
26
+ | OPT-001 | optimizer | [DIAG-001] | Apply targeted fixes per Impeccable standards |
27
+ | VERIFY-001 | verifier | [OPT-001] | Before/after comparison, regression check |
28
+
29
+ ## Full Pipeline Task Registry
30
+
31
+ | Task ID | Role | blockedBy | Description |
32
+ |---------|------|-----------|-------------|
33
+ | SCAN-001 | scanner | [] | Full 8-dimension UI audit |
34
+ | DIAG-001 | diagnostician | [SCAN-001] | Complete root cause analysis with fix dependency graph |
35
+ | OPT-001 | optimizer | [DIAG-001] | Apply all fixes in dependency order |
36
+ | VERIFY-001 | verifier | [OPT-001] | Verification with GC loop trigger |
37
+
38
+ ## GC Loop (Full Mode Only)
39
+
40
+ | Checkpoint | Task | Condition | Action |
41
+ |------------|------|-----------|--------|
42
+ | VERIFY completes | VERIFY-* | verify_passed (no regressions, score >= before) | Pipeline complete |
43
+ | VERIFY completes | VERIFY-* | verify_failed (non-critical regressions) | gc_rounds < 2 -> create OPT-fix task |
44
+ | VERIFY completes | VERIFY-* | fix_required (critical regressions or score drop) | gc_rounds < 2 -> create OPT-fix task (CRITICAL) |
45
+ | VERIFY completes | VERIFY-* | gc_rounds >= 2 | Escalate to user |
46
+
47
+ ### GC Fix Tasks (dynamically created)
48
+
49
+ | Task ID | Role | blockedBy | Description |
50
+ |---------|------|-----------|-------------|
51
+ | OPT-fix-1 | optimizer | [VERIFY-001] | Fix regressions from round 1 verification |
52
+ | VERIFY-002 | verifier | [OPT-fix-1] | Re-verify after round 1 fixes |
53
+ | OPT-fix-2 | optimizer | [VERIFY-002] | Fix regressions from round 2 verification (if needed) |
54
+ | VERIFY-003 | verifier | [OPT-fix-2] | Final re-verify (max round) |
55
+
56
+ ## Collaboration Patterns
57
+
58
+ | Pattern | Roles | Description |
59
+ |---------|-------|-------------|
60
+ | CP-1 Linear Pipeline | All | Base sequential flow: scan -> diagnose -> optimize -> verify |
61
+ | CP-2 Review-Fix (GC) | optimizer <-> verifier | Generator-Critic loop, max 2 rounds |
62
+
63
+ ## Spawn Rules
64
+
65
+ | Mode | Behavior |
66
+ |------|----------|
67
+ | scan-only | Sequential: SCAN-001 then DIAG-001 |
68
+ | targeted | Sequential: SCAN -> DIAG -> OPT -> VERIFY |
69
+ | full | Sequential: SCAN -> DIAG -> OPT -> VERIFY, then GC loop if verify triggers |
70
+
71
+ All modes use sequential spawning (one task at a time) since each task depends on the previous.
72
+
73
+ ## Output Artifacts
74
+
75
+ | Task | Output Path |
76
+ |------|-------------|
77
+ | SCAN-001 | <session>/scan/scan-report.md |
78
+ | DIAG-001 | <session>/diagnosis/diagnosis-report.md |
79
+ | OPT-001 / OPT-fix-* | <session>/optimization/fix-log.md + modified source files |
80
+ | VERIFY-001 / VERIFY-* | <session>/verification/verify-report.md |
81
+ | Screenshots (if DevTools) | <session>/evidence/*.png |