claude-code-workflow 7.2.27 → 7.2.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (382) 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/investigate/agents/investigator.md +392 -0
  106. package/.codex/skills/investigate/orchestrator.md +362 -0
  107. package/.codex/skills/investigate/phases/01-root-cause-investigation.md +212 -0
  108. package/.codex/skills/investigate/phases/02-pattern-analysis.md +181 -0
  109. package/.codex/skills/investigate/phases/03-hypothesis-testing.md +214 -0
  110. package/.codex/skills/investigate/phases/04-implementation.md +195 -0
  111. package/.codex/skills/investigate/phases/05-verification-report.md +240 -0
  112. package/.codex/skills/security-audit/agents/security-auditor.md +341 -0
  113. package/.codex/skills/security-audit/orchestrator.md +384 -0
  114. package/.codex/skills/security-audit/phases/01-supply-chain-scan.md +226 -0
  115. package/.codex/skills/security-audit/phases/02-owasp-review.md +232 -0
  116. package/.codex/skills/security-audit/phases/03-threat-modeling.md +249 -0
  117. package/.codex/skills/security-audit/phases/04-report-tracking.md +300 -0
  118. package/.codex/skills/ship/agents/ship-operator.md +318 -0
  119. package/.codex/skills/ship/orchestrator.md +426 -0
  120. package/.codex/skills/ship/phases/01-preflight-checks.md +198 -0
  121. package/.codex/skills/ship/phases/02-code-review.md +228 -0
  122. package/.codex/skills/ship/phases/03-version-bump.md +259 -0
  123. package/.codex/skills/ship/phases/04-changelog-commit.md +263 -0
  124. package/.codex/skills/ship/phases/05-pr-creation.md +280 -0
  125. package/.codex/skills/team-interactive-craft/SKILL.md +220 -0
  126. package/.codex/skills/team-interactive-craft/roles/a11y-tester/role.md +159 -0
  127. package/.codex/skills/team-interactive-craft/roles/builder/role.md +216 -0
  128. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/analyze.md +71 -0
  129. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/dispatch.md +162 -0
  130. package/.codex/skills/team-interactive-craft/roles/coordinator/commands/monitor.md +233 -0
  131. package/.codex/skills/team-interactive-craft/roles/coordinator/role.md +209 -0
  132. package/.codex/skills/team-interactive-craft/roles/interaction-designer/role.md +144 -0
  133. package/.codex/skills/team-interactive-craft/roles/researcher/role.md +131 -0
  134. package/.codex/skills/team-interactive-craft/specs/interaction-patterns.md +362 -0
  135. package/.codex/skills/team-interactive-craft/specs/pipelines.md +85 -0
  136. package/.codex/skills/team-interactive-craft/specs/team-config.json +105 -0
  137. package/.codex/skills/team-interactive-craft/specs/vanilla-constraints.md +83 -0
  138. package/.codex/skills/team-motion-design/SKILL.md +222 -0
  139. package/.codex/skills/team-motion-design/roles/animator/role.md +194 -0
  140. package/.codex/skills/team-motion-design/roles/choreographer/role.md +164 -0
  141. package/.codex/skills/team-motion-design/roles/coordinator/commands/analyze.md +64 -0
  142. package/.codex/skills/team-motion-design/roles/coordinator/commands/dispatch.md +168 -0
  143. package/.codex/skills/team-motion-design/roles/coordinator/commands/monitor.md +242 -0
  144. package/.codex/skills/team-motion-design/roles/coordinator/role.md +210 -0
  145. package/.codex/skills/team-motion-design/roles/motion-researcher/role.md +115 -0
  146. package/.codex/skills/team-motion-design/roles/motion-tester/role.md +175 -0
  147. package/.codex/skills/team-motion-design/specs/gpu-constraints.md +114 -0
  148. package/.codex/skills/team-motion-design/specs/motion-tokens.md +128 -0
  149. package/.codex/skills/team-motion-design/specs/pipelines.md +74 -0
  150. package/.codex/skills/team-motion-design/specs/reduced-motion.md +129 -0
  151. package/.codex/skills/team-motion-design/specs/team-config.json +99 -0
  152. package/.codex/skills/team-ui-polish/SKILL.md +218 -0
  153. package/.codex/skills/team-ui-polish/roles/coordinator/commands/analyze.md +77 -0
  154. package/.codex/skills/team-ui-polish/roles/coordinator/commands/dispatch.md +167 -0
  155. package/.codex/skills/team-ui-polish/roles/coordinator/commands/monitor.md +230 -0
  156. package/.codex/skills/team-ui-polish/roles/coordinator/role.md +213 -0
  157. package/.codex/skills/team-ui-polish/roles/diagnostician/role.md +164 -0
  158. package/.codex/skills/team-ui-polish/roles/optimizer/role.md +229 -0
  159. package/.codex/skills/team-ui-polish/roles/scanner/role.md +360 -0
  160. package/.codex/skills/team-ui-polish/roles/verifier/role.md +142 -0
  161. package/.codex/skills/team-ui-polish/specs/anti-patterns.md +141 -0
  162. package/.codex/skills/team-ui-polish/specs/design-standards.md +356 -0
  163. package/.codex/skills/team-ui-polish/specs/fix-strategies.md +235 -0
  164. package/.codex/skills/team-ui-polish/specs/pipelines.md +81 -0
  165. package/.codex/skills/team-ui-polish/specs/scoring-guide.md +162 -0
  166. package/.codex/skills/team-ui-polish/specs/team-config.json +73 -0
  167. package/.codex/skills/team-visual-a11y/SKILL.md +319 -0
  168. package/.codex/skills/team-visual-a11y/roles/color-auditor/role.md +178 -0
  169. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/analyze.md +72 -0
  170. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/dispatch.md +188 -0
  171. package/.codex/skills/team-visual-a11y/roles/coordinator/commands/monitor.md +281 -0
  172. package/.codex/skills/team-visual-a11y/roles/coordinator/role.md +213 -0
  173. package/.codex/skills/team-visual-a11y/roles/fix-implementer/role.md +246 -0
  174. package/.codex/skills/team-visual-a11y/roles/focus-auditor/role.md +222 -0
  175. package/.codex/skills/team-visual-a11y/roles/remediation-planner/role.md +206 -0
  176. package/.codex/skills/team-visual-a11y/roles/typo-auditor/role.md +185 -0
  177. package/.codex/skills/team-visual-a11y/specs/focus-patterns.md +325 -0
  178. package/.codex/skills/team-visual-a11y/specs/oklch-standards.md +130 -0
  179. package/.codex/skills/team-visual-a11y/specs/pipelines.md +98 -0
  180. package/.codex/skills/team-visual-a11y/specs/team-config.json +109 -0
  181. package/.codex/skills/team-visual-a11y/specs/typography-scale.md +165 -0
  182. package/.codex/skills/team-visual-a11y/specs/wcag-matrix.md +133 -0
  183. package/README.md +8 -0
  184. package/ccw/dist/core/hooks/hook-templates.d.ts.map +1 -1
  185. package/ccw/dist/core/hooks/hook-templates.js +114 -1
  186. package/ccw/dist/core/hooks/hook-templates.js.map +1 -1
  187. package/ccw/dist/core/routes/cli-routes.d.ts.map +1 -1
  188. package/ccw/dist/core/routes/cli-routes.js +34 -0
  189. package/ccw/dist/core/routes/cli-routes.js.map +1 -1
  190. package/ccw/dist/core/routes/system-routes.js +2 -2
  191. package/ccw/dist/core/routes/system-routes.js.map +1 -1
  192. package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js → AlertDialog-BjP1ydDR.js} +2 -2
  193. package/ccw/frontend/dist/assets/{AlertDialog-Bf1jdqax.js.map → AlertDialog-BjP1ydDR.js.map} +1 -1
  194. package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js → AnalysisPage-CAX3xqMf.js} +2 -2
  195. package/ccw/frontend/dist/assets/{AnalysisPage-C8niKdp4.js.map → AnalysisPage-CAX3xqMf.js.map} +1 -1
  196. package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js → ApiSettingsPage-CtWlmztq.js} +2 -2
  197. package/ccw/frontend/dist/assets/{ApiSettingsPage-BL2c3UNS.js.map → ApiSettingsPage-CtWlmztq.js.map} +1 -1
  198. package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js → CliModeToggle-hR4a-eLX.js} +2 -2
  199. package/ccw/frontend/dist/assets/{CliModeToggle-BePBFynD.js.map → CliModeToggle-hR4a-eLX.js.map} +1 -1
  200. package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js → CliSessionSharePage-DzNPkFN9.js} +2 -2
  201. package/ccw/frontend/dist/assets/{CliSessionSharePage-7cYtX6FT.js.map → CliSessionSharePage-DzNPkFN9.js.map} +1 -1
  202. package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js → CliViewerPage-BPEGN4TT.js} +2 -2
  203. package/ccw/frontend/dist/assets/{CliViewerPage-CBwg1mPL.js.map → CliViewerPage-BPEGN4TT.js.map} +1 -1
  204. package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js → CodexLensPage-Cf0r2RHY.js} +2 -2
  205. package/ccw/frontend/dist/assets/{CodexLensPage-Bt74xORP.js.map → CodexLensPage-Cf0r2RHY.js.map} +1 -1
  206. package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js → Collapsible-DEm1rJ4h.js} +2 -2
  207. package/ccw/frontend/dist/assets/{Collapsible-Wrs87QT7.js.map → Collapsible-DEm1rJ4h.js.map} +1 -1
  208. package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js → CommandsManagerPage-BpeWw8HO.js} +2 -2
  209. package/ccw/frontend/dist/assets/{CommandsManagerPage-ChQjmPWZ.js.map → CommandsManagerPage-BpeWw8HO.js.map} +1 -1
  210. package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js → DeepWikiPage-BEsmh2vF.js} +2 -2
  211. package/ccw/frontend/dist/assets/{DeepWikiPage-dEO5wi6X.js.map → DeepWikiPage-BEsmh2vF.js.map} +1 -1
  212. package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js → EndpointsPage-B30SFdtU.js} +2 -2
  213. package/ccw/frontend/dist/assets/{EndpointsPage-4zq269xY.js.map → EndpointsPage-B30SFdtU.js.map} +1 -1
  214. package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js → ExplorerPage-BVvMpg1O.js} +2 -2
  215. package/ccw/frontend/dist/assets/{ExplorerPage-B0YTENhA.js.map → ExplorerPage-BVvMpg1O.js.map} +1 -1
  216. package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js → FixSessionPage-CL73dHbh.js} +2 -2
  217. package/ccw/frontend/dist/assets/{FixSessionPage-CwGs6dhz.js.map → FixSessionPage-CL73dHbh.js.map} +1 -1
  218. package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js → FloatingFileBrowser-BL-28lMZ.js} +2 -2
  219. package/ccw/frontend/dist/assets/{FloatingFileBrowser-COZRBslc.js.map → FloatingFileBrowser-BL-28lMZ.js.map} +1 -1
  220. package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js → FloatingPanel-BzZDciHZ.js} +2 -2
  221. package/ccw/frontend/dist/assets/{FloatingPanel-DYvgQZRD.js.map → FloatingPanel-BzZDciHZ.js.map} +1 -1
  222. package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js → GraphExplorerPage-CDp6-d8P.js} +2 -2
  223. package/ccw/frontend/dist/assets/{GraphExplorerPage-ewMHQGem.js.map → GraphExplorerPage-CDp6-d8P.js.map} +1 -1
  224. package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js → HistoryPage-fZY_7O9n.js} +2 -2
  225. package/ccw/frontend/dist/assets/{HistoryPage-BMeR0PrK.js.map → HistoryPage-fZY_7O9n.js.map} +1 -1
  226. package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js → HookManagerPage-4LJeC9bq.js} +2 -2
  227. package/ccw/frontend/dist/assets/{HookManagerPage-DBW2LnRm.js.map → HookManagerPage-4LJeC9bq.js.map} +1 -1
  228. package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js → InstallationsPage-Bpigrbhw.js} +2 -2
  229. package/ccw/frontend/dist/assets/{InstallationsPage--pMj0QEH.js.map → InstallationsPage-Bpigrbhw.js.map} +1 -1
  230. package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js → IssueHubPage-BP0zJc1R.js} +2 -2
  231. package/ccw/frontend/dist/assets/{IssueHubPage-C_QMpQSR.js.map → IssueHubPage-BP0zJc1R.js.map} +1 -1
  232. package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js → LiteTasksPage-CSt2oVKQ.js} +2 -2
  233. package/ccw/frontend/dist/assets/{LiteTasksPage-CSWFdQ2-.js.map → LiteTasksPage-CSt2oVKQ.js.map} +1 -1
  234. package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js → McpManagerPage-B-xaMA0w.js} +2 -2
  235. package/ccw/frontend/dist/assets/{McpManagerPage-Dvv8NtGy.js.map → McpManagerPage-B-xaMA0w.js.map} +1 -1
  236. package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js → MemoryPage-CJqo_7DY.js} +2 -2
  237. package/ccw/frontend/dist/assets/{MemoryPage-YO8WZzZO.js.map → MemoryPage-CJqo_7DY.js.map} +1 -1
  238. package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js → NotFoundPage-ibZeQA-Y.js} +2 -2
  239. package/ccw/frontend/dist/assets/{NotFoundPage-quUJw0CD.js.map → NotFoundPage-ibZeQA-Y.js.map} +1 -1
  240. package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js → OrchestratorPage-DgJ4ctPQ.js} +2 -2
  241. package/ccw/frontend/dist/assets/{OrchestratorPage-tuThWPID.js.map → OrchestratorPage-DgJ4ctPQ.js.map} +1 -1
  242. package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js → ProjectOverviewPage-Cit0Yq0D.js} +2 -2
  243. package/ccw/frontend/dist/assets/{ProjectOverviewPage-shTilwiT.js.map → ProjectOverviewPage-Cit0Yq0D.js.map} +1 -1
  244. package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js → PromptHistoryPage-Ce1HDIK0.js} +2 -2
  245. package/ccw/frontend/dist/assets/{PromptHistoryPage-6rQnsI8l.js.map → PromptHistoryPage-Ce1HDIK0.js.map} +1 -1
  246. package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js → ReviewSessionPage-J1KikNrk.js} +2 -2
  247. package/ccw/frontend/dist/assets/{ReviewSessionPage-JOmzjVbT.js.map → ReviewSessionPage-J1KikNrk.js.map} +1 -1
  248. package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js → RulesManagerPage-CdBjTmth.js} +2 -2
  249. package/ccw/frontend/dist/assets/{RulesManagerPage-Cayfywqi.js.map → RulesManagerPage-CdBjTmth.js.map} +1 -1
  250. package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js → SessionDetailPage-B9ZK7LvX.js} +2 -2
  251. package/ccw/frontend/dist/assets/{SessionDetailPage-iMn0k84i.js.map → SessionDetailPage-B9ZK7LvX.js.map} +1 -1
  252. package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js → SessionsPage-CW_nS5UR.js} +2 -2
  253. package/ccw/frontend/dist/assets/{SessionsPage-Ciqjy9kz.js.map → SessionsPage-CW_nS5UR.js.map} +1 -1
  254. package/ccw/frontend/dist/assets/{SettingsPage-BPDbXPSM.js → SettingsPage-B2PYzSoO.js} +35 -35
  255. package/ccw/frontend/dist/assets/SettingsPage-B2PYzSoO.js.map +1 -0
  256. package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js → SkillsManagerPage-CTnWrrwp.js} +2 -2
  257. package/ccw/frontend/dist/assets/{SkillsManagerPage-D3LzbpJY.js.map → SkillsManagerPage-CTnWrrwp.js.map} +1 -1
  258. package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js → SpecsSettingsPage-DJpi9XQL.js} +2 -2
  259. package/ccw/frontend/dist/assets/{SpecsSettingsPage-BpkJctzo.js.map → SpecsSettingsPage-DJpi9XQL.js.map} +1 -1
  260. package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js → Switch-Ac6Ov7uy.js} +2 -2
  261. package/ccw/frontend/dist/assets/{Switch-BpB9h__9.js.map → Switch-Ac6Ov7uy.js.map} +1 -1
  262. package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js → TabsNavigation-DZAAspqR.js} +2 -2
  263. package/ccw/frontend/dist/assets/{TabsNavigation-BGsKy7DO.js.map → TabsNavigation-DZAAspqR.js.map} +1 -1
  264. package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js → TaskDrawer-BJkwfhIZ.js} +2 -2
  265. package/ccw/frontend/dist/assets/{TaskDrawer-bYIlbM0Q.js.map → TaskDrawer-BJkwfhIZ.js.map} +1 -1
  266. package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js → TeamPage-BJgjxBgb.js} +2 -2
  267. package/ccw/frontend/dist/assets/{TeamPage-CihtQ6LQ.js.map → TeamPage-BJgjxBgb.js.map} +1 -1
  268. package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js → TerminalDashboardPage-D1WekoOy.js} +2 -2
  269. package/ccw/frontend/dist/assets/{TerminalDashboardPage-BDnNF_ud.js.map → TerminalDashboardPage-D1WekoOy.js.map} +1 -1
  270. package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js → archive-DxemgIhF.js} +2 -2
  271. package/ccw/frontend/dist/assets/{archive-CQJ86bQp.js.map → archive-DxemgIhF.js.map} +1 -1
  272. package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js → archive-restore-CjS83f1V.js} +2 -2
  273. package/ccw/frontend/dist/assets/{archive-restore-BhTfDbPU.js.map → archive-restore-CjS83f1V.js.map} +1 -1
  274. package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js → arrow-right-B5PUcn8I.js} +2 -2
  275. package/ccw/frontend/dist/assets/{arrow-right-eUAZnT9C.js.map → arrow-right-B5PUcn8I.js.map} +1 -1
  276. package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js → bookmark-plus-DCc9aPbb.js} +2 -2
  277. package/ccw/frontend/dist/assets/{bookmark-plus-ilF5-V-k.js.map → bookmark-plus-DCc9aPbb.js.map} +1 -1
  278. package/ccw/frontend/dist/assets/{bot-BLkaQscs.js → bot-DOwFtzak.js} +2 -2
  279. package/ccw/frontend/dist/assets/{bot-BLkaQscs.js.map → bot-DOwFtzak.js.map} +1 -1
  280. package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js → braces-96qH3aFh.js} +2 -2
  281. package/ccw/frontend/dist/assets/{braces-D9HdgsO6.js.map → braces-96qH3aFh.js.map} +1 -1
  282. package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js → circle-stop-CCxSuil1.js} +2 -2
  283. package/ccw/frontend/dist/assets/{circle-stop-C3ZF1okQ.js.map → circle-stop-CCxSuil1.js.map} +1 -1
  284. package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js → cpu-CZNSJFdq.js} +2 -2
  285. package/ccw/frontend/dist/assets/{cpu-B-QjaSjm.js.map → cpu-CZNSJFdq.js.map} +1 -1
  286. package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js → ellipsis-vertical-h8xtvw2_.js} +2 -2
  287. package/ccw/frontend/dist/assets/{ellipsis-vertical-CbNlw2gS.js.map → ellipsis-vertical-h8xtvw2_.js.map} +1 -1
  288. package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js → eye-D3NY0bm6.js} +2 -2
  289. package/ccw/frontend/dist/assets/{eye-yAy69Cnn.js.map → eye-D3NY0bm6.js.map} +1 -1
  290. package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js → eye-off-Cy2vkc8p.js} +2 -2
  291. package/ccw/frontend/dist/assets/{eye-off-D5uzLZyP.js.map → eye-off-Cy2vkc8p.js.map} +1 -1
  292. package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js → file-json-Bzq3U1Mx.js} +2 -2
  293. package/ccw/frontend/dist/assets/{file-json-rwo1NowL.js.map → file-json-Bzq3U1Mx.js.map} +1 -1
  294. package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js → file-text-DwuwPDPi.js} +2 -2
  295. package/ccw/frontend/dist/assets/{file-text-DRkrjie9.js.map → file-text-DwuwPDPi.js.map} +1 -1
  296. package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js → filter-q9g-bknU.js} +2 -2
  297. package/ccw/frontend/dist/assets/{filter-BOe-OTu1.js.map → filter-q9g-bknU.js.map} +1 -1
  298. package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js → folder-CL6vb42J.js} +2 -2
  299. package/ccw/frontend/dist/assets/{folder-BaWZWn_r.js.map → folder-CL6vb42J.js.map} +1 -1
  300. package/ccw/frontend/dist/assets/{gauge-kazFexTr.js → gauge-BkrcQBly.js} +2 -2
  301. package/ccw/frontend/dist/assets/{gauge-kazFexTr.js.map → gauge-BkrcQBly.js.map} +1 -1
  302. package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js → globe-BQbwyNeV.js} +2 -2
  303. package/ccw/frontend/dist/assets/{globe-BuHeEjxd.js.map → globe-BQbwyNeV.js.map} +1 -1
  304. package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js → grid-3x3-x5_7DrN7.js} +2 -2
  305. package/ccw/frontend/dist/assets/{grid-3x3-DbhuUu4V.js.map → grid-3x3-x5_7DrN7.js.map} +1 -1
  306. package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js → hard-drive-DTyWXwzf.js} +2 -2
  307. package/ccw/frontend/dist/assets/{hard-drive-AoLGL0z4.js.map → hard-drive-DTyWXwzf.js.map} +1 -1
  308. package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js → hash-80O0kJO7.js} +2 -2
  309. package/ccw/frontend/dist/assets/{hash-Dpo1exMB.js.map → hash-80O0kJO7.js.map} +1 -1
  310. package/ccw/frontend/dist/assets/{history-ujQnmMC9.js → history-DDlN2Bwa.js} +2 -2
  311. package/ccw/frontend/dist/assets/{history-ujQnmMC9.js.map → history-DDlN2Bwa.js.map} +1 -1
  312. package/ccw/frontend/dist/assets/{index-CxzXz6o1.js → index-B9A3Hnrk.js} +2 -2
  313. package/ccw/frontend/dist/assets/{index-CxzXz6o1.js.map → index-B9A3Hnrk.js.map} +1 -1
  314. package/ccw/frontend/dist/assets/{index-B76AGix5.js → index-Bs80iCX0.js} +2 -2
  315. package/ccw/frontend/dist/assets/{index-B76AGix5.js.map → index-Bs80iCX0.js.map} +1 -1
  316. package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js → index-mbeo62f8.js} +2 -2
  317. package/ccw/frontend/dist/assets/{index-C_Yf5fZ4.js.map → index-mbeo62f8.js.map} +1 -1
  318. package/ccw/frontend/dist/assets/{index-Dff4bg3u.js → index-rLgoBCfV.js} +3 -3
  319. package/ccw/frontend/dist/assets/{index-Dff4bg3u.js.map → index-rLgoBCfV.js.map} +1 -1
  320. package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js → layout-grid-C1niOWJx.js} +2 -2
  321. package/ccw/frontend/dist/assets/{layout-grid-CBdE4K8h.js.map → layout-grid-C1niOWJx.js.map} +1 -1
  322. package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js → lightbulb-BTmI7SUg.js} +2 -2
  323. package/ccw/frontend/dist/assets/{lightbulb-B9K6ZgRp.js.map → lightbulb-BTmI7SUg.js.map} +1 -1
  324. package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js → link-2-CB9HKeuZ.js} +2 -2
  325. package/ccw/frontend/dist/assets/{link-2-Oea4xHJl.js.map → link-2-CB9HKeuZ.js.map} +1 -1
  326. package/ccw/frontend/dist/assets/{link-5yXdZBch.js → link-koEYiemK.js} +2 -2
  327. package/ccw/frontend/dist/assets/{link-5yXdZBch.js.map → link-koEYiemK.js.map} +1 -1
  328. package/ccw/frontend/dist/assets/{list-9lHhC_U_.js → list-v2_GaLdC.js} +2 -2
  329. package/ccw/frontend/dist/assets/{list-9lHhC_U_.js.map → list-v2_GaLdC.js.map} +1 -1
  330. package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js → map-pin-BQNfAqG_.js} +2 -2
  331. package/ccw/frontend/dist/assets/{map-pin-B6Io5kmB.js.map → map-pin-BQNfAqG_.js.map} +1 -1
  332. package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js → messages-square-Dzq5LGg9.js} +2 -2
  333. package/ccw/frontend/dist/assets/{messages-square-BT000aD3.js.map → messages-square-Dzq5LGg9.js.map} +1 -1
  334. package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js → minimize-2-CtkoJXcz.js} +2 -2
  335. package/ccw/frontend/dist/assets/{minimize-2-DO-zbT3a.js.map → minimize-2-CtkoJXcz.js.map} +1 -1
  336. package/ccw/frontend/dist/assets/{package-BjOw1ldU.js → package-CH3smL37.js} +2 -2
  337. package/ccw/frontend/dist/assets/{package-BjOw1ldU.js.map → package-CH3smL37.js.map} +1 -1
  338. package/ccw/frontend/dist/assets/{plug-9dAARpE1.js → plug-CZ0aL_yF.js} +2 -2
  339. package/ccw/frontend/dist/assets/{plug-9dAARpE1.js.map → plug-CZ0aL_yF.js.map} +1 -1
  340. package/ccw/frontend/dist/assets/{power-K2S39x7f.js → power-F2A_J4l6.js} +2 -2
  341. package/ccw/frontend/dist/assets/{power-K2S39x7f.js.map → power-F2A_J4l6.js.map} +1 -1
  342. package/ccw/frontend/dist/assets/{save-D9-CoT3x.js → save-Byxot0YU.js} +2 -2
  343. package/ccw/frontend/dist/assets/{save-D9-CoT3x.js.map → save-Byxot0YU.js.map} +1 -1
  344. package/ccw/frontend/dist/assets/{send-Bunw9NtC.js → send-JjqhUkpw.js} +2 -2
  345. package/ccw/frontend/dist/assets/{send-Bunw9NtC.js.map → send-JjqhUkpw.js.map} +1 -1
  346. package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js → settings-2--SuN9rAt.js} +2 -2
  347. package/ccw/frontend/dist/assets/{settings-2-osl4EXFf.js.map → settings-2--SuN9rAt.js.map} +1 -1
  348. package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js → square-check-big-BbngGB2h.js} +2 -2
  349. package/ccw/frontend/dist/assets/{square-check-big-Dl5gYkjR.js.map → square-check-big-BbngGB2h.js.map} +1 -1
  350. package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js → square-pen-CgrHgZSl.js} +2 -2
  351. package/ccw/frontend/dist/assets/{square-pen-Bue1chJR.js.map → square-pen-CgrHgZSl.js.map} +1 -1
  352. package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js → star-BU3TQr7Z.js} +2 -2
  353. package/ccw/frontend/dist/assets/{star-Bk7EC7FB.js.map → star-BU3TQr7Z.js.map} +1 -1
  354. package/ccw/frontend/dist/assets/{style-BbREPmRj.js → style-CKs7nnn3.js} +2 -2
  355. package/ccw/frontend/dist/assets/{style-BbREPmRj.js.map → style-CKs7nnn3.js.map} +1 -1
  356. package/ccw/frontend/dist/assets/{target-CElrCVhR.js → target-DW5tsDW6.js} +2 -2
  357. package/ccw/frontend/dist/assets/{target-CElrCVhR.js.map → target-DW5tsDW6.js.map} +1 -1
  358. package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js → test-tube-BHm7w3ON.js} +2 -2
  359. package/ccw/frontend/dist/assets/{test-tube-wciJaoas.js.map → test-tube-BHm7w3ON.js.map} +1 -1
  360. package/ccw/frontend/dist/assets/{upload-BD1F07wG.js → upload-DYR7PWwt.js} +2 -2
  361. package/ccw/frontend/dist/assets/{upload-BD1F07wG.js.map → upload-DYR7PWwt.js.map} +1 -1
  362. package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js → useApiSettings-D0TVgQD_.js} +2 -2
  363. package/ccw/frontend/dist/assets/{useApiSettings-D23HVEt8.js.map → useApiSettings-D0TVgQD_.js.map} +1 -1
  364. package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js → useCli-DfY8mAP8.js} +2 -2
  365. package/ccw/frontend/dist/assets/{useCli-BGDd_lXD.js.map → useCli-DfY8mAP8.js.map} +1 -1
  366. package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js → useCommands-CGusDp0F.js} +2 -2
  367. package/ccw/frontend/dist/assets/{useCommands-B-m_HxPB.js.map → useCommands-CGusDp0F.js.map} +1 -1
  368. package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js → useDebounce-CIwh0fF1.js} +2 -2
  369. package/ccw/frontend/dist/assets/{useDebounce-Z18-PHZr.js.map → useDebounce-CIwh0fF1.js.map} +1 -1
  370. package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js → useFileExplorer-FMyFv39K.js} +2 -2
  371. package/ccw/frontend/dist/assets/{useFileExplorer-D4gPp-LB.js.map → useFileExplorer-FMyFv39K.js.map} +1 -1
  372. package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js → useLocale-B2qhsoTb.js} +2 -2
  373. package/ccw/frontend/dist/assets/{useLocale-DJ62jjFa.js.map → useLocale-B2qhsoTb.js.map} +1 -1
  374. package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js → useSkills-cxKXMBm3.js} +3 -3
  375. package/ccw/frontend/dist/assets/{useSkills-B8NPs9__.js.map → useSkills-cxKXMBm3.js.map} +1 -1
  376. package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js → useSystemSettings-B-xUT_z-.js} +2 -2
  377. package/ccw/frontend/dist/assets/{useSystemSettings-CVi7nKGJ.js.map → useSystemSettings-B-xUT_z-.js.map} +1 -1
  378. package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js → wand-sparkles-DZV_3lPr.js} +2 -2
  379. package/ccw/frontend/dist/assets/{wand-sparkles-CLjPiU5w.js.map → wand-sparkles-DZV_3lPr.js.map} +1 -1
  380. package/ccw/frontend/dist/index.html +1 -1
  381. package/package.json +105 -105
  382. package/ccw/frontend/dist/assets/SettingsPage-BPDbXPSM.js.map +0 -1
@@ -0,0 +1,211 @@
1
+ # AI Slop Detection Catalog
2
+
3
+ 20 anti-patterns that signal AI-generated or low-effort design. Reference this during research (visual quality baseline), design (avoidance), review (scoring), and implementation (validation).
4
+
5
+ ## Severity Guide
6
+
7
+ | Severity | Meaning | Scoring Impact |
8
+ |----------|---------|----------------|
9
+ | P1 | Major -- immediately recognizable as AI slop | Dimension score capped at 1 |
10
+ | P2 | Minor -- common AI default, degrades quality | Dimension score capped at 2 |
11
+ | P3 | Polish -- subtle tell, acceptable in early iterations | Dimension score capped at 3 |
12
+
13
+ ---
14
+
15
+ ## 1. AI Color Palette -- P1
16
+
17
+ **Pattern**: Cyan-on-dark, purple-blue gradients, neon accent colors against dark backgrounds. The "AI dashboard" look.
18
+
19
+ **Detection**: Check for `oklch(... 250-280)` as primary + dark background, or gradient from purple to cyan/blue. Check for saturated neon accents (`chroma > 0.25`) on `lightness < 0.15` backgrounds.
20
+
21
+ **Fix**: Use brand-derived colors. Reduce chroma. Apply 60-30-10 rule. Tint neutrals toward brand hue.
22
+
23
+ ---
24
+
25
+ ## 2. Gradient Text for Impact -- P1
26
+
27
+ **Pattern**: `background-clip: text` with gradient fills on headings for visual flair.
28
+
29
+ **Detection**: Search for `background-clip: text` or `-webkit-background-clip: text` in stylesheets.
30
+
31
+ **Fix**: Use solid color with proper contrast. If emphasis needed, use weight or size, not gradient text.
32
+
33
+ ---
34
+
35
+ ## 3. Default Dark Mode with Glowing Accents -- P2
36
+
37
+ **Pattern**: Dark background as default with glowing/neon UI elements. No light mode alternative.
38
+
39
+ **Detection**: Check if dark theme is the only theme defined. Look for `box-shadow` with saturated colors (`0 0 Npx oklch(... 0.2+ ...)`).
40
+
41
+ **Fix**: Design light mode first. Dark mode as opt-in. Use subtle elevation shadows, not glows.
42
+
43
+ ---
44
+
45
+ ## 4. Glassmorphism Everywhere -- P1
46
+
47
+ **Pattern**: `backdrop-filter: blur()` on more than 2 components. Frosted glass effect as default surface treatment.
48
+
49
+ **Detection**: Count `backdrop-filter: blur` occurrences. Flag if > 2 distinct components use it.
50
+
51
+ **Fix**: Reserve glass effect for 1-2 overlay/modal surfaces max. Use solid or semi-transparent backgrounds elsewhere.
52
+
53
+ ---
54
+
55
+ ## 5. Hero Metric Layout -- P2
56
+
57
+ **Pattern**: Big number + small label arranged in rows/grids. The "SaaS dashboard hero" pattern with 3-4 metric cards.
58
+
59
+ **Detection**: Look for repeated pattern of large font-size number + small label in card grids at page top.
60
+
61
+ **Fix**: Show metrics in context of their meaning. Use sparklines with real data, comparisons, or trends instead of isolated numbers.
62
+
63
+ ---
64
+
65
+ ## 6. Identical Card Grids -- P2
66
+
67
+ **Pattern**: 3+ cards with identical dimensions, same padding, same shadow, same structure. No visual hierarchy.
68
+
69
+ **Detection**: Count card components with identical styling. Flag if 3+ share exact same dimensions and no hierarchy differentiation.
70
+
71
+ **Fix**: Vary card sizes by importance. Use a featured/primary card. Apply visual hierarchy through size or position.
72
+
73
+ ---
74
+
75
+ ## 7. Nested Cards -- P2
76
+
77
+ **Pattern**: Card inside card -- border/shadow inside border/shadow. Creates visual clutter.
78
+
79
+ **Detection**: Check for components with `border`/`box-shadow` containing child components that also have `border`/`box-shadow`.
80
+
81
+ **Fix**: Flatten hierarchy. Use spacing and subtle dividers instead of nested containers.
82
+
83
+ ---
84
+
85
+ ## 8. Generic Fonts -- P2
86
+
87
+ **Pattern**: Inter, Roboto, Open Sans, Lato, Montserrat, or Arial as the primary font. Zero typographic identity.
88
+
89
+ **Detection**: Check `font-family` declarations for the generic font list.
90
+
91
+ **Fix**: Choose from recommended fonts: Instrument Sans, Plus Jakarta Sans, DM Sans, Space Grotesk, Fraunces.
92
+
93
+ ---
94
+
95
+ ## 9. Rounded Rectangles + Generic Drop Shadows -- P3
96
+
97
+ **Pattern**: More than 5 elements with identical `border-radius` and generic `box-shadow` (e.g., `0 1px 3px rgba(0,0,0,0.1)`).
98
+
99
+ **Detection**: Count elements sharing identical `border-radius` + `box-shadow` values. Flag if > 5.
100
+
101
+ **Fix**: Vary border-radius by component type (buttons vs cards vs modals). Use layered shadows with tinted colors.
102
+
103
+ ---
104
+
105
+ ## 10. Large Icons Above Every Heading -- P2
106
+
107
+ **Pattern**: Decorative icon placed above every section heading. Adds visual noise without meaning.
108
+
109
+ **Detection**: Check for repeated icon + heading pattern across 3+ sections.
110
+
111
+ **Fix**: Use icons sparingly and only where they add meaning. Prefer inline icons at heading size, not oversized decorative ones.
112
+
113
+ ---
114
+
115
+ ## 11. One-Side Border Accent -- P3
116
+
117
+ **Pattern**: `border-left: 3px solid var(--accent)` on cards or sections as the sole visual treatment.
118
+
119
+ **Detection**: Search for one-sided border declarations on 3+ components.
120
+
121
+ **Fix**: Use spacing, background tinting, or typography to create differentiation instead.
122
+
123
+ ---
124
+
125
+ ## 12. Decorative Sparklines -- P2
126
+
127
+ **Pattern**: Tiny charts with no axis labels, no data context, no interactivity. Pure decoration.
128
+
129
+ **Detection**: Check for chart/sparkline components without accessible labels, axis values, or data source.
130
+
131
+ **Fix**: Either make charts meaningful (labels, context, interaction) or remove them. No decorative data visualization.
132
+
133
+ ---
134
+
135
+ ## 13. Bounce/Elastic Easing -- P2
136
+
137
+ **Pattern**: Bounce or elastic easing on UI transitions. Feels toylike and unprofessional.
138
+
139
+ **Detection**: Search for `bounce`, `elastic`, `cubic-bezier` with values > 1.0 in the second or fourth parameter.
140
+
141
+ **Fix**: Use ease-out-quart `cubic-bezier(0.25, 1, 0.5, 1)` as default. See design-standards.md Motion section.
142
+
143
+ ---
144
+
145
+ ## 14. Redundant Copy -- P3
146
+
147
+ **Pattern**: Heading restated in the body text immediately below. "Our Features" followed by "Here are our features."
148
+
149
+ **Detection**: Compare heading text to first sentence of body. Flag if > 60% word overlap.
150
+
151
+ **Fix**: Body text should expand on the heading, not repeat it. Each element earns its space.
152
+
153
+ ---
154
+
155
+ ## 15. All Buttons Primary -- P1
156
+
157
+ **Pattern**: Every button is the same filled/primary style. No visual hierarchy between actions.
158
+
159
+ **Detection**: Count button variants. Flag if > 80% of buttons share the same style (all filled, all same color).
160
+
161
+ **Fix**: 1 primary CTA per viewport. Secondary = outline. Tertiary = text link. See design-standards.md Visual Hierarchy.
162
+
163
+ ---
164
+
165
+ ## 16. Everything Centered -- P2
166
+
167
+ **Pattern**: Body text, lists, and form labels all center-aligned. Looks "designed" but kills readability.
168
+
169
+ **Detection**: Check for `text-align: center` on body text, lists, or form elements (not just headings).
170
+
171
+ **Fix**: Left-align body text. Center only headings, hero text, and short labels. Reading follows left edge.
172
+
173
+ ---
174
+
175
+ ## 17. Same Spacing Everywhere -- P2
176
+
177
+ **Pattern**: More than 70% of spacing values are identical. No rhythm variation.
178
+
179
+ **Detection**: Audit spacing tokens usage. Flag if > 70% of `gap`, `padding`, `margin` values use the same token.
180
+
181
+ **Fix**: Apply rhythm: tight (4-8px) within groups, comfortable (16-24px) between items, generous (48-96px) between sections.
182
+
183
+ ---
184
+
185
+ ## 18. Monospace as Tech Aesthetic -- P3
186
+
187
+ **Pattern**: Monospace font used on non-code content (headings, labels, body text) for "techy" feel.
188
+
189
+ **Detection**: Check for monospace `font-family` on elements that are not `code`, `pre`, `kbd`, or `samp`.
190
+
191
+ **Fix**: Reserve monospace for code. Use Space Grotesk or similar geometric sans if tech aesthetic is desired.
192
+
193
+ ---
194
+
195
+ ## 19. Modal Overuse -- P3
196
+
197
+ **Pattern**: More than 3 modals in a flow for non-critical actions. Interrupts flow unnecessarily.
198
+
199
+ **Detection**: Count modal/dialog components. Flag if > 3 modals exist for non-destructive actions.
200
+
201
+ **Fix**: Use inline expansion, drawers, or page navigation. Reserve modals for confirmations and critical decisions.
202
+
203
+ ---
204
+
205
+ ## 20. Pure Black or Pure White -- P1
206
+
207
+ **Pattern**: Using `#000000` or `#ffffff` (or `rgb(0,0,0)` / `rgb(255,255,255)`). Harsh contrast, unnatural.
208
+
209
+ **Detection**: Search for `#000`, `#fff`, `#000000`, `#ffffff`, `rgb(0,0,0)`, `rgb(255,255,255)` in stylesheets and tokens.
210
+
211
+ **Fix**: Use tinted neutrals. Darkest: `oklch(0.08 0.010 <hue>)`. Lightest: `oklch(0.98 0.005 <hue>)`.
@@ -0,0 +1,329 @@
1
+ # Impeccable Design Standards
2
+
3
+ Reference spec for all roles. Every design decision must trace back to these standards.
4
+
5
+ ---
6
+
7
+ ## Color (OKLCH)
8
+
9
+ OKLCH for perceptually uniform palettes. All color tokens MUST use OKLCH notation.
10
+
11
+ ### Token Hierarchy
12
+
13
+ primitive -> semantic -> component
14
+
15
+ ```
16
+ /* Primitives */
17
+ --color-primary oklch(0.55 0.2 250)
18
+ --color-primary-light oklch(0.70 0.15 250)
19
+ --color-primary-dark oklch(0.40 0.22 250)
20
+
21
+ /* Tinted neutrals (chroma 0.005-0.01, brand hue) */
22
+ --color-neutral-50 oklch(0.98 0.005 250) /* brand tinted */
23
+ --color-neutral-100 oklch(0.95 0.006 250)
24
+ --color-neutral-200 oklch(0.90 0.007 250)
25
+ --color-neutral-300 oklch(0.82 0.007 250)
26
+ --color-neutral-400 oklch(0.70 0.008 250)
27
+ --color-neutral-500 oklch(0.55 0.008 250)
28
+ --color-neutral-600 oklch(0.45 0.009 250)
29
+ --color-neutral-700 oklch(0.35 0.009 250)
30
+ --color-neutral-800 oklch(0.25 0.010 250)
31
+ --color-neutral-900 oklch(0.15 0.010 250)
32
+ --color-neutral-950 oklch(0.08 0.010 250)
33
+
34
+ /* Semantic */
35
+ --color-success oklch(0.65 0.18 145)
36
+ --color-warning oklch(0.75 0.15 85)
37
+ --color-error oklch(0.55 0.22 25)
38
+ --color-info oklch(0.60 0.18 250)
39
+ ```
40
+
41
+ ### Rules
42
+
43
+ - **60-30-10 rule**: 60% neutral, 30% secondary, 10% accent
44
+ - **Never pure black** (`#000`) or **pure white** (`#fff`) -- use tinted neutrals
45
+ - **Tinted neutrals**: chroma 0.005-0.01, hue matching brand primary
46
+ - **Text on colored backgrounds**: use `color-mix(in oklch, ...)` not gray
47
+
48
+ ### Dark Mode Rules
49
+ - Dark mode is NOT inverted light mode. It requires deliberate design:
50
+ - Use **lighter surfaces** for elevation/depth (not darker)
51
+ - **Reduce font weight** by 1 step (600→500, 500→400) — light text on dark looks heavier
52
+ - **Desaturate accent colors** — saturated colors vibrate on dark backgrounds
53
+ - Surface hierarchy: `oklch(0.15 ...)` base → `oklch(0.20 ...)` raised → `oklch(0.25 ...)` overlay
54
+ - Never: pure black `#000` background (too harsh). Use `oklch(0.10 0.01 <hue>)` minimum
55
+ - Test: all contrast ratios must meet WCAG AA in BOTH themes
56
+
57
+ ### Dangerous Color Combinations
58
+ | Combination | Problem | Fix |
59
+ |-------------|---------|-----|
60
+ | Gray text on colored background | Looks washed out, low contrast | Use shade of bg color or white/dark with transparency |
61
+ | Red + Green (adjacent) | 8% male color blindness | Add icons/patterns, not just color |
62
+ | Yellow text on white | Near-invisible | Use dark amber instead |
63
+ | Thin light text on images | Unpredictable contrast | Add text shadow or semi-transparent overlay |
64
+ | Saturated colors on dark bg | Visual vibration | Desaturate: reduce OKLCH chroma by 0.05-0.10 |
65
+
66
+ - **WCAG AA contrast**:
67
+ - Normal text: 4.5:1
68
+ - Large text (>= 18px bold or >= 24px): 3:1
69
+ - UI components and graphical objects: 3:1
70
+ - Focus indicators: 3:1
71
+
72
+ ---
73
+
74
+ ## Typography
75
+
76
+ ### Font Selection
77
+
78
+ **Avoid** (overused defaults): Inter, Roboto, Open Sans, Lato, Montserrat, Arial
79
+
80
+ **Recommended**: Instrument Sans, Plus Jakarta Sans, DM Sans, Space Grotesk, Fraunces
81
+
82
+ ### Modular Scale
83
+
84
+ Choose one ratio for the project:
85
+
86
+ | Name | Ratio | Use Case |
87
+ |------|-------|----------|
88
+ | Major Second | 1.125 | Dense UI, dashboards |
89
+ | Minor Third | 1.200 | General purpose |
90
+ | Major Third | 1.250 | Marketing, editorial |
91
+ | Perfect Fourth | 1.333 | Bold, expressive |
92
+
93
+ ### Fluid Sizing
94
+
95
+ Use `clamp()` for display and heading sizes:
96
+
97
+ ```css
98
+ --text-sm: clamp(0.8rem, 0.77rem + 0.15vw, 0.875rem);
99
+ --text-base: clamp(0.9rem, 0.85rem + 0.25vw, 1rem);
100
+ --text-lg: clamp(1.05rem, 0.95rem + 0.35vw, 1.125rem);
101
+ --text-xl: clamp(1.25rem, 1.1rem + 0.5vw, 1.5rem);
102
+ --text-2xl: clamp(1.5rem, 1.25rem + 0.75vw, 1.875rem);
103
+ --text-3xl: clamp(1.875rem, 1.5rem + 1.1vw, 2.25rem);
104
+ --text-display: clamp(2.25rem, 1.75rem + 1.5vw, 3rem);
105
+ ```
106
+
107
+ ### Line Height
108
+
109
+ - Body text: 1.5
110
+ - Headings: 1.2
111
+ - Small / caption text: 1.6
112
+
113
+ ### Reading Width
114
+
115
+ `max-width: 65ch` (acceptable range: 45-75ch)
116
+
117
+ ### Font Loading
118
+
119
+ `font-display: swap` with fallback metrics:
120
+
121
+ ```css
122
+ @font-face {
123
+ font-family: 'Plus Jakarta Sans';
124
+ font-display: swap;
125
+ size-adjust: 102%;
126
+ ascent-override: 95%;
127
+ }
128
+ ```
129
+
130
+ ---
131
+
132
+ ## Spacing (4pt Base)
133
+
134
+ ### Scale
135
+
136
+ ```
137
+ 0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 96 px
138
+ ```
139
+
140
+ Map to tokens:
141
+
142
+ ```
143
+ --space-0: 0px;
144
+ --space-1: 4px; /* 0.25rem */
145
+ --space-2: 8px; /* 0.5rem */
146
+ --space-3: 12px; /* 0.75rem */
147
+ --space-4: 16px; /* 1rem */
148
+ --space-5: 20px; /* 1.25rem */
149
+ --space-6: 24px; /* 1.5rem */
150
+ --space-8: 32px; /* 2rem */
151
+ --space-10: 40px; /* 2.5rem */
152
+ --space-12: 48px; /* 3rem */
153
+ --space-16: 64px; /* 4rem */
154
+ --space-24: 96px; /* 6rem */
155
+ ```
156
+
157
+ ### Rhythm
158
+
159
+ | Context | Spacing | Tokens |
160
+ |---------|---------|--------|
161
+ | Tight (within groups) | 4-8px | space-1, space-2 |
162
+ | Comfortable (between items) | 16-24px | space-4 to space-6 |
163
+ | Generous (between sections) | 48-96px | space-12 to space-24 |
164
+
165
+ ### Layout Rules
166
+
167
+ - Use `gap` not `margin` for sibling spacing
168
+ - Cards only for distinct actionable content -- flatten nested cards
169
+ - Container queries for component-level responsive behavior
170
+ - Touch targets: **44x44px minimum**, 8px gap between adjacent targets
171
+
172
+ ---
173
+
174
+ ## Motion
175
+
176
+ ### Animatable Properties (ONLY these)
177
+
178
+ transform, opacity, clip-path, background-color, color, border-color, box-shadow, filter
179
+
180
+ ### NEVER Animate (layout triggers)
181
+
182
+ width, height, top, left, margin, padding
183
+
184
+ ### Easing
185
+
186
+ Default: ease-out-quart `cubic-bezier(0.25, 1, 0.5, 1)`
187
+
188
+ NEVER use: `ease`, `linear`, `bounce`, `elastic`
189
+
190
+ ### Duration Scale
191
+
192
+ | Token | Duration | Use |
193
+ |-------|----------|-----|
194
+ | --duration-instant | 100ms | Toggles, checkboxes |
195
+ | --duration-fast | 150ms | Feedback, micro-interactions |
196
+ | --duration-normal | 250ms | Standard transitions |
197
+ | --duration-slow | 400ms | Panels, drawers |
198
+ | --duration-entrance | 500ms | Page/section entrance |
199
+ | --duration-complex | 800ms | Multi-step orchestration |
200
+
201
+ - Exit duration = 75% of entrance
202
+ - Feedback animations: 100-150ms max
203
+
204
+ ### Stagger
205
+
206
+ - Max 10 items in stagger group
207
+ - Max 500ms total stagger duration
208
+ - Formula: `calc(var(--index) * 50ms)`
209
+
210
+ ### Reduced Motion (REQUIRED)
211
+
212
+ ```css
213
+ @media (prefers-reduced-motion: reduce) {
214
+ *, *::before, *::after {
215
+ animation-duration: 0.01ms !important;
216
+ animation-iteration-count: 1 !important;
217
+ transition-duration: 0.01ms !important;
218
+ scroll-behavior: auto !important;
219
+ }
220
+ }
221
+ ```
222
+
223
+ ### will-change
224
+
225
+ Add via JS on `pointerenter`, remove on `animationend`/`transitionend`. Never set permanently in CSS.
226
+
227
+ ---
228
+
229
+ ## Interaction States (8 Required)
230
+
231
+ Every interactive component MUST define all 8 states:
232
+
233
+ | State | CSS | Visual Treatment |
234
+ |-------|-----|------------------|
235
+ | Default | -- | Base appearance |
236
+ | Hover | `:hover` (wrap in `@media(hover:hover)`) | Subtle bg shift or opacity change |
237
+ | Focus | `:focus-visible` | 2px solid accent, offset 2px |
238
+ | Active | `:active` | `scale(0.97)` or darker background |
239
+ | Disabled | `[disabled], [aria-disabled="true"]` | opacity 0.5, `cursor: not-allowed` |
240
+ | Loading | `[aria-busy="true"]` | Spinner or skeleton placeholder |
241
+ | Error | `[aria-invalid="true"]` | Red border + error message |
242
+ | Success | custom attribute | Green check + success message |
243
+
244
+ ### Focus Ring Spec
245
+
246
+ ```css
247
+ :focus-visible {
248
+ outline: 2px solid var(--color-primary);
249
+ outline-offset: 2px;
250
+ border-radius: inherit;
251
+ }
252
+ ```
253
+
254
+ ---
255
+
256
+ ## Visual Hierarchy
257
+
258
+ ### Squint Test
259
+
260
+ Blur the page -- you should immediately identify the top 2 elements and groupings.
261
+
262
+ ### Tools
263
+
264
+ Size (3:1 ratio between primary and body), weight (max 2 weights per page), color, space, position, contrast.
265
+
266
+ ### CTA Hierarchy
267
+
268
+ - **1 primary CTA per viewport** -- filled button
269
+ - Secondary -- outline button
270
+ - Tertiary -- text link
271
+
272
+ ### Progressive Disclosure
273
+
274
+ Reveal complexity gradually. Default to the simplest view.
275
+
276
+ ---
277
+
278
+ ## Responsive
279
+
280
+ ### Breakpoints (mobile-first)
281
+
282
+ ```
283
+ 640px, 768px, 1024px, 1280px, 1536px
284
+ ```
285
+
286
+ ### Fluid Design
287
+
288
+ Prefer `%`, `vw`, `fr`, `min()`, `max()`, `clamp()` over fixed `px`.
289
+
290
+ ### Mobile Requirements
291
+
292
+ - Minimum 14px text
293
+ - 44px touch targets
294
+ - No horizontal scroll at 320px viewport
295
+ - Adapt layout, don't hide content
296
+
297
+ ---
298
+
299
+ ## Elevation & Z-Index
300
+
301
+ ### Semantic Z-Index Scale
302
+ ```css
303
+ --z-dropdown: 100;
304
+ --z-sticky: 200;
305
+ --z-fixed: 300;
306
+ --z-modal-backdrop: 400;
307
+ --z-modal: 500;
308
+ --z-popover: 600;
309
+ --z-toast: 700;
310
+ --z-tooltip: 800;
311
+ ```
312
+
313
+ - Never use arbitrary z-index values (z-index: 9999)
314
+ - Each level has clear semantic meaning
315
+ - Modal backdrop + modal are separate layers (backdrop catches clicks)
316
+ - Toast above modal (error during modal interaction must be visible)
317
+
318
+ ---
319
+
320
+ ## UX Writing
321
+
322
+ Reference: [specs/ux-writing.md](ux-writing.md) for full guidelines.
323
+
324
+ Key rules for design token and component spec work:
325
+ - Button labels: verb + object ("Save changes" not "Submit")
326
+ - Error messages: what + why + fix
327
+ - Empty states: acknowledge + explain value + action
328
+ - Destructive actions: name the destruction + show count
329
+ - Never "OK/Cancel" — use specific action names
@@ -0,0 +1,114 @@
1
+ # 8-Dimension Quality Scoring Rubric
2
+
3
+ Score each dimension 0-4. Total: 0-32.
4
+
5
+ ## Dimensions
6
+
7
+ ### 1. Anti-AI-Slop (Weight: 10%)
8
+
9
+ | Score | Criteria |
10
+ |-------|----------|
11
+ | 0 | 4+ P1 anti-patterns present |
12
+ | 1 | 2-3 P1 anti-patterns present |
13
+ | 2 | 1 P1 or 3+ P2 anti-patterns present |
14
+ | 3 | 1-2 P2 or 2+ P3 anti-patterns only |
15
+ | 4 | Zero P1/P2 anti-patterns, at most 1 P3 |
16
+
17
+ ### 2. Color Quality (Weight: 15%)
18
+
19
+ | Score | Criteria |
20
+ |-------|----------|
21
+ | 0 | No color system; hex/rgb throughout; pure black/white used |
22
+ | 1 | Some tokens but not OKLCH; no tinted neutrals; contrast failures |
23
+ | 2 | OKLCH used partially; tinted neutrals attempted; most contrast passes |
24
+ | 3 | Full OKLCH; tinted neutrals; 60-30-10 applied; all WCAG AA passes; semantic tokens present |
25
+ | 4 | Score-3 plus: primitive->semantic->component hierarchy; color-mix usage; light/dark themes complete |
26
+
27
+ ### 3. Typography Quality (Weight: 15%)
28
+
29
+ | Score | Criteria |
30
+ |-------|----------|
31
+ | 0 | System/generic font only; no scale; no fluid sizing |
32
+ | 1 | Generic font (Inter/Roboto/etc); basic size scale; no clamp() |
33
+ | 2 | Distinctive font chosen; modular scale present; no fluid sizing |
34
+ | 3 | Distinctive font; modular scale with clamp(); proper line-height; reading width constrained |
35
+ | 4 | Score-3 plus: font-display swap with fallback metrics; caption/body/heading line-heights differentiated |
36
+
37
+ ### 4. Spacing & Layout (Weight: 12.5%)
38
+
39
+ | Score | Criteria |
40
+ |-------|----------|
41
+ | 0 | Arbitrary spacing; no system; nested cards |
42
+ | 1 | Some consistent spacing but not 4pt scale; margin-heavy |
43
+ | 2 | 4pt scale used; mostly gap over margin; some rhythm variation |
44
+ | 3 | Full 4pt scale; gap throughout; rhythm variation (tight/comfortable/generous); touch targets met |
45
+ | 4 | Score-3 plus: container queries used; no nested cards; 8px adjacent target gaps |
46
+
47
+ ### 5. Motion & Animation (Weight: 10%)
48
+
49
+ | Score | Criteria |
50
+ |-------|----------|
51
+ | 0 | Layout property animations; no easing system; no reduced-motion |
52
+ | 1 | Some transform/opacity; default ease/linear; no reduced-motion |
53
+ | 2 | Transform/opacity only; custom easing present; reduced-motion exists but incomplete |
54
+ | 3 | All animations on safe properties; ease-out-quart default; duration tokens; complete reduced-motion |
55
+ | 4 | Score-3 plus: stagger system; will-change managed via JS; exit = 75% entrance |
56
+
57
+ ### 6. Interaction States (Weight: 15%)
58
+
59
+ | Score | Criteria |
60
+ |-------|----------|
61
+ | 0 | Only default state; no hover/focus/disabled |
62
+ | 1 | 2-3 states (e.g., default + hover + disabled) |
63
+ | 2 | 5 states (default/hover/focus/active/disabled) but missing loading/error/success |
64
+ | 3 | All 8 states defined; :focus-visible used; hover in @media(hover:hover) |
65
+ | 4 | Score-3 plus: focus ring spec (2px solid + offset 2px); active scale(0.97); ARIA attributes on all states |
66
+
67
+ ### 7. Visual Hierarchy (Weight: 10%)
68
+
69
+ | Score | Criteria |
70
+ |-------|----------|
71
+ | 0 | Everything same size/weight; no CTA hierarchy; all centered |
72
+ | 1 | Some size variation; multiple primary CTAs per viewport |
73
+ | 2 | Clear heading hierarchy; CTA levels present but inconsistent |
74
+ | 3 | Passes squint test; single primary CTA per viewport; 3:1 size ratio; max 2 weights |
75
+ | 4 | Score-3 plus: progressive disclosure; clear information density gradient |
76
+
77
+ ### 8. Responsive Design (Weight: 12.5%)
78
+
79
+ | Score | Criteria |
80
+ |-------|----------|
81
+ | 0 | Fixed widths; breaks below 768px; content hidden on mobile |
82
+ | 1 | Some media queries; horizontal scroll at 320px; small touch targets |
83
+ | 2 | Mobile-first breakpoints; fluid widths; 14px min text; some issues at 320px |
84
+ | 3 | Full breakpoint coverage; fluid design (clamp/vw/fr); 44px targets; no 320px scroll |
85
+ | 4 | Score-3 plus: container queries; adapt-don't-hide approach; fluid typography |
86
+
87
+ ---
88
+
89
+ ## Rating Bands
90
+
91
+ | Score | Band | Meaning |
92
+ |-------|------|---------|
93
+ | 28-32 | Excellent | Production-ready, Impeccable quality |
94
+ | 22-27 | Good | Minor polish needed, shippable |
95
+ | 16-21 | Acceptable | Needs revision, core structure sound |
96
+ | 10-15 | Poor | Significant rework required |
97
+ | 0-9 | Critical | Fundamental issues, restart design phase |
98
+
99
+ ## Severity Mapping
100
+
101
+ | Severity | Dimension Score | Action |
102
+ |----------|----------------|--------|
103
+ | P0 Blocking | Dimension = 0 | Must fix before any progress |
104
+ | P1 Major | Dimension = 1 | Fix in current iteration |
105
+ | P2 Minor | Dimension = 2 | Fix in next iteration |
106
+ | P3 Polish | Dimension = 3 | Track for future improvement |
107
+
108
+ ## Signal Determination
109
+
110
+ | Condition | Signal | Action |
111
+ |-----------|--------|--------|
112
+ | Score >= 26 AND no P0 (no dim at 0) | `audit_passed` (GC CONVERGED) | Unblock downstream |
113
+ | Score >= 20 AND no P0 | `audit_result` (REVISION NEEDED) | Create fix task |
114
+ | Score < 20 OR any P0 | `fix_required` (CRITICAL) | Urgent fix task |
@@ -23,7 +23,7 @@
23
23
  "reviewer": {
24
24
  "task_prefix": "AUDIT",
25
25
  "additional_prefixes": [],
26
- "responsibility": "Design consistency audit, accessibility compliance, visual review",
26
+ "responsibility": "8-dimension Impeccable-aligned audit (anti-slop, color, typography, spacing, motion, interaction, hierarchy, responsive)",
27
27
  "message_types": ["audit_result", "audit_passed", "fix_required", "error"]
28
28
  },
29
29
  "implementer": {