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,162 @@
1
+ # Scoring Guide
2
+
3
+ How to score each dimension consistently. Used by scanner for initial audit and verifier for re-assessment.
4
+
5
+ ## Rating Bands (Total Score out of 36)
6
+
7
+ | Range | Rating | Description |
8
+ |-------|--------|-------------|
9
+ | 32-36 | Excellent | Distinctive, intentional design. Minimal or zero issues |
10
+ | 25-31 | Good | Solid design with minor polish opportunities |
11
+ | 18-24 | Acceptable | Functional but significant design work needed |
12
+ | 11-17 | Poor | Major overhaul required across multiple dimensions |
13
+ | 0-10 | Critical | AI slop gallery or fundamentally broken design |
14
+
15
+ ## Per-Dimension Scoring (0-4)
16
+
17
+ ### General Rubric
18
+
19
+ | Score | Criteria |
20
+ |-------|----------|
21
+ | 0 | Completely failing. Multiple major violations. Fundamental problems |
22
+ | 1 | Major gaps. 3-4 violations. Some effort but insufficient |
23
+ | 2 | Partial effort. 1-2 noticeable issues. Functional but not good |
24
+ | 3 | Mostly clean. Subtle issues only. Good with minor polish needed |
25
+ | 4 | Excellent. Genuinely distinctive/intentional. Meets all standards |
26
+
27
+ ### Dimension 1: Anti-AI-Slop Detection
28
+
29
+ | Score | Criteria |
30
+ |-------|----------|
31
+ | 0 | 5+ AI slop tells present. Looks immediately AI-generated |
32
+ | 1 | 3-4 AI slop tells. Heavy AI influence obvious |
33
+ | 2 | 1-2 noticeable AI tells. Some templated elements |
34
+ | 3 | Subtle traces only. Mostly intentional design choices |
35
+ | 4 | Zero AI tells. Genuinely distinctive aesthetic. Would never guess AI-made |
36
+
37
+ ### Dimension 2: Color Quality
38
+
39
+ | Score | Criteria |
40
+ |-------|----------|
41
+ | 0 | Multiple WCAG AA failures, pure black/white everywhere, hard-coded colors, no system |
42
+ | 1 | Some contrast issues, hard-coded colors, no token system, pure grays |
43
+ | 2 | Basic contrast OK, some OKLCH or tokens, but gaps (untinted grays, missing semantic colors) |
44
+ | 3 | Good color system with minor gaps (a few hard-coded values, imperfect 60-30-10) |
45
+ | 4 | OKLCH-based, fully tokenized, WCAG AA+ compliant, proper 60-30-10, semantic roles defined |
46
+
47
+ ### Dimension 3: Typography Quality
48
+
49
+ | Score | Criteria |
50
+ |-------|----------|
51
+ | 0 | Generic font, no scale, body text <16px, no hierarchy |
52
+ | 1 | Overused font, muddy sizes (many close values), missing fluid sizing |
53
+ | 2 | Decent font choice but inconsistent scale or line-height issues |
54
+ | 3 | Good typography with minor gaps (missing clamp, slight rhythm inconsistencies) |
55
+ | 4 | Distinctive font, clear modular scale, fluid sizing, proper vertical rhythm, max-width on prose |
56
+
57
+ ### Dimension 4: Spacing & Layout Quality
58
+
59
+ | Score | Criteria |
60
+ |-------|----------|
61
+ | 0 | Random spacing, nested cards, fixed widths, tiny touch targets |
62
+ | 1 | Some spacing pattern but many arbitrary values, cards overused |
63
+ | 2 | Decent spacing but monotonous rhythm or occasional arbitrary values |
64
+ | 3 | Good spacing system with minor gaps (occasional non-scale value, mostly gap usage) |
65
+ | 4 | Consistent scale, varied rhythm, gap for siblings, proper touch targets, no card nesting |
66
+
67
+ ### Dimension 5: Motion & Animation Quality
68
+
69
+ | Score | Criteria |
70
+ |-------|----------|
71
+ | 0 | Layout animations, no reduced-motion, bounce easing, no system |
72
+ | 1 | Some transform-based but bad easing, missing reduced-motion |
73
+ | 2 | Decent animations but no token system or still missing reduced-motion |
74
+ | 3 | Good system with minor gaps (occasional ease default, missing exit animation) |
75
+ | 4 | Transform+opacity only, exponential easing, reduced-motion query, duration tokens, proper stagger |
76
+
77
+ ### Dimension 6: Interaction States
78
+
79
+ | Score | Criteria |
80
+ |-------|----------|
81
+ | 0 | No hover, no focus, outline:none without replacement, no loading states |
82
+ | 1 | Basic hover but missing focus/active on many elements, no loading states |
83
+ | 2 | Hover + focus exist but no focus-visible, missing some states (disabled, error, empty) |
84
+ | 3 | Most states present with minor gaps (imperfect focus ring, missing empty state) |
85
+ | 4 | All 8 states implemented, focus-visible, proper focus ring, loading/error/success/empty states |
86
+
87
+ ### Dimension 7: Visual Hierarchy
88
+
89
+ | Score | Criteria |
90
+ |-------|----------|
91
+ | 0 | Everything same visual weight, no clear primary action, fails squint test completely |
92
+ | 1 | Some size differences but no clear hierarchy system, multiple competing primary actions |
93
+ | 2 | Basic hierarchy via size but missing weight/color/space dimensions |
94
+ | 3 | Good hierarchy with minor issues (occasional visual competition, could be stronger) |
95
+ | 4 | Clear squint test pass, obvious primary action, multi-dimension hierarchy, progressive disclosure |
96
+
97
+ ### Dimension 8: Responsive Design
98
+
99
+ | Score | Criteria |
100
+ |-------|----------|
101
+ | 0 | No responsive design, horizontal scroll, completely broken on mobile |
102
+ | 1 | Basic media queries but many breakage points, some fixed widths |
103
+ | 2 | Decent mobile but some fixed widths, small targets, or missing breakpoints |
104
+ | 3 | Good responsive with minor issues (missing container queries, occasional small target) |
105
+ | 4 | Fluid design, proper breakpoints, container queries, 44px targets, no overflow, adapted content |
106
+
107
+ ### Dimension 9: Cognitive Load & UX Writing
108
+
109
+ | Score | Criteria |
110
+ |-------|----------|
111
+ | 0 | Information overload everywhere, no grouping, generic labels, useless error messages |
112
+ | 1 | Some grouping but >7 data groups visible, many generic labels, errors without fix guidance |
113
+ | 2 | Decent grouping but missing progressive disclosure, some generic buttons, partial error messages |
114
+ | 3 | Good information architecture with minor issues (occasional generic label, one missing empty state) |
115
+ | 4 | Clear progressive disclosure, verb+object labels, what+why+fix errors, guided empty states, proper grouping |
116
+
117
+ ### Dimension 10: Dark Mode Quality (Conditional)
118
+
119
+ Only scored if dark mode exists. If no dark mode, this dimension is excluded from total.
120
+
121
+ | Score | Criteria |
122
+ |-------|----------|
123
+ | 0 | Pure black bg, no surface hierarchy, saturated colors vibrating, dangerous combos |
124
+ | 1 | Some dark surfaces but flat (same lightness), still using light-mode font weights |
125
+ | 2 | Basic surface hierarchy but still saturated accents or missing font weight reduction |
126
+ | 3 | Good dark mode with minor issues (occasional pure black, one dangerous combo) |
127
+ | 4 | Proper surface hierarchy (lighter=higher), desaturated accents, reduced font weights, tinted dark bg |
128
+
129
+ When dark mode exists: total out of 40, bands shift +4. When no dark mode: total out of 36.
130
+
131
+ ---
132
+
133
+ ## Severity Mapping
134
+
135
+ | Severity | Definition | Score Correlation | Action |
136
+ |----------|-----------|-------------------|--------|
137
+ | P0 Blocking | Prevents use or violates law/standard. WCAG AA failure, missing focus, horizontal scroll on mobile, no viewport meta | Any dimension at 0 | Fix immediately, blocks release |
138
+ | P1 Major | Significant UX harm or near-violation. Pure black/white, missing hover, all buttons primary, muddy hierarchy | Any dimension at 1 | Fix before release |
139
+ | P2 Minor | Annoyance with workaround. No OKLCH, overused fonts, monotonous spacing, no container queries | Any dimension at 2 | Fix in next polish pass |
140
+ | P3 Polish | Nice-to-fix, minimal user impact. Missing exit animation, optical adjustments, font fallback metrics | Dimension at 3 with minor issues | Fix when convenient |
141
+
142
+ ---
143
+
144
+ ## Scoring Process
145
+
146
+ 1. For each dimension, go through every checklist item in the scanner audit
147
+ 2. Count the number and severity of violations found
148
+ 3. Apply the dimension-specific rubric to assign 0-4
149
+ 4. Sum all 8 dimensions for total (0-32)
150
+ 5. Apply rating band
151
+
152
+ ### Tie-Breaking Rules
153
+ - If between two scores, the presence of any P0 issue in that dimension rounds down
154
+ - If between two scores with no P0, consider the count of P1 issues
155
+ - When in doubt, score lower (conservative) -- it is better to fix something unnecessary than miss something important
156
+
157
+ ### Verification Scoring
158
+ When verifier re-scores after optimization:
159
+ - Use identical checklist and rubric as original scan
160
+ - Score independently (do not adjust based on "how much improved")
161
+ - Report both absolute score and delta from original
162
+ - Flag any dimension where score decreased (regression)
@@ -0,0 +1,73 @@
1
+ {
2
+ "team_name": "ui-polish",
3
+ "team_display_name": "UI Polish",
4
+ "description": "Auto-discover and fix UI design issues using Impeccable design standards",
5
+ "version": "1.0.0",
6
+
7
+ "roles": {
8
+ "coordinator": {
9
+ "task_prefix": null,
10
+ "responsibility": "Pipeline orchestration, scope assessment, GC loop management",
11
+ "message_types": ["task_unblocked", "gc_checkpoint", "fix_required", "error", "shutdown"]
12
+ },
13
+ "scanner": {
14
+ "task_prefix": "SCAN",
15
+ "responsibility": "8-dimension UI audit using Impeccable design standards",
16
+ "message_types": ["scan_complete", "scan_progress", "error"]
17
+ },
18
+ "diagnostician": {
19
+ "task_prefix": "DIAG",
20
+ "responsibility": "Root cause analysis, severity classification, fix prioritization",
21
+ "message_types": ["diag_complete", "diag_progress", "error"]
22
+ },
23
+ "optimizer": {
24
+ "task_prefix": "OPT",
25
+ "responsibility": "Apply targeted fixes following Impeccable design standards",
26
+ "message_types": ["opt_complete", "opt_progress", "error"]
27
+ },
28
+ "verifier": {
29
+ "task_prefix": "VERIFY",
30
+ "responsibility": "Before/after comparison, regression detection",
31
+ "message_types": ["verify_passed", "verify_failed", "fix_required", "error"]
32
+ }
33
+ },
34
+
35
+ "pipelines": {
36
+ "scan-only": {
37
+ "description": "Discover + diagnose, no fixes (report only)",
38
+ "task_chain": ["SCAN-001", "DIAG-001"],
39
+ "complexity": "low"
40
+ },
41
+ "targeted": {
42
+ "description": "Fix specific dimensions only",
43
+ "task_chain": ["SCAN-001", "DIAG-001", "OPT-001", "VERIFY-001"],
44
+ "complexity": "medium"
45
+ },
46
+ "full": {
47
+ "description": "Complete polish cycle with GC loop",
48
+ "task_chain": ["SCAN-001", "DIAG-001", "OPT-001", "VERIFY-001"],
49
+ "gc_loop": true,
50
+ "complexity": "high"
51
+ }
52
+ },
53
+
54
+ "innovation_patterns": {
55
+ "generator_critic": {
56
+ "generator": "optimizer",
57
+ "critic": "verifier",
58
+ "max_rounds": 2,
59
+ "convergence": "verify.regressions === 0 && verify.score_delta >= 0",
60
+ "escalation": "Coordinator intervenes after max rounds"
61
+ }
62
+ },
63
+
64
+ "session_dirs": {
65
+ "base": ".workflow/.team/UIP-{slug}-{YYYY-MM-DD}/",
66
+ "scan": "scan/",
67
+ "diagnosis": "diagnosis/",
68
+ "optimization": "optimization/",
69
+ "verification": "verification/",
70
+ "evidence": "evidence/",
71
+ "messages": ".workflow/.team-msg/{team-name}/"
72
+ }
73
+ }
@@ -89,6 +89,10 @@ Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5
89
89
  ## Specs Reference
90
90
 
91
91
  - [specs/pipelines.md](specs/pipelines.md) — Pipeline definitions and task registry
92
+ - [specs/design-standards.md](specs/design-standards.md) — Impeccable design standards (OKLCH, typography, spacing, motion, interaction)
93
+ - [specs/anti-patterns.md](specs/anti-patterns.md) — AI slop detection catalog (20 items)
94
+ - [specs/scoring-guide.md](specs/scoring-guide.md) — 8-dimension quality scoring rubric
95
+ - [specs/ux-writing.md](specs/ux-writing.md) — UX writing standards (labels, errors, empty states, voice)
92
96
 
93
97
  ## Session Directory
94
98
 
@@ -101,7 +105,8 @@ Execute built-in Phase 1 (task discovery) -> role Phase 2-4 -> built-in Phase 5
101
105
  │ ├── design-system-analysis.json
102
106
  │ ├── component-inventory.json
103
107
  │ ├── accessibility-audit.json
104
- └── design-intelligence.json
108
+ ├── design-intelligence.json
109
+ │ └── visual-quality-baseline.json
105
110
  ├── design/ # Designer output
106
111
  │ ├── design-tokens.json
107
112
  │ ├── component-specs/
@@ -28,16 +28,35 @@ Define visual language through design tokens (W3C Design Tokens Format) and comp
28
28
 
29
29
  **Token System Design (DESIGN-001)**:
30
30
  - Define complete token system following W3C Design Tokens Format
31
- - Categories: Color (primary, secondary, background, surface, text, semantic), Typography (font-family, font-size, font-weight, line-height), Spacing (xs-2xl), Shadow (sm/md/lg), Border (radius, width), Breakpoint (mobile/tablet/desktop/wide)
31
+ - Categories: Color (primary, secondary, background, surface, text, semantic), Typography (font-family, font-size, font-weight, line-height), Spacing (xs-2xl), Shadow (sm/md/lg), Border (radius, width), Breakpoint (mobile/tablet/desktop/wide), Motion Easing, Motion Duration, Motion Stagger
32
+ - **Color tokens MUST use OKLCH values** (reference `specs/design-standards.md` Color section)
33
+ - Neutrals: tint toward brand hue with chroma 0.005-0.01 (never pure gray)
34
+ - Add semantic colors: success (oklch hue 145), warning (hue 85), error (hue 25), info (hue 250)
35
+ - **Typography**: choose from recommended fonts (Instrument Sans, Plus Jakarta Sans, DM Sans, Space Grotesk, Fraunces -- NOT Inter/Roboto/Open Sans/Lato/Montserrat/Arial), apply modular scale ratio, define fluid `clamp()` values for display sizes
36
+ - **Spacing**: follow 4pt scale (0, 4, 8, 12, 16, 20, 24, 32, 40, 48, 64, 96)
37
+ - **Motion tokens**: define easing (ease-out-quart `cubic-bezier(0.25, 1, 0.5, 1)` as default), duration scale (instant 100ms, fast 150ms, normal 250ms, slow 400ms, entrance 500ms, complex 800ms), reduced-motion strategy
32
38
  - All color tokens must have light/dark variants using `$value: { light: ..., dark: ... }`
33
39
  - Integrate design intelligence: recommended.colors -> color tokens, recommended.typography -> font stacks
34
40
  - Document anti-patterns from design intelligence for implementer reference
41
+ - Output categories must include: color, typography, spacing, shadow, border, breakpoint, motion_easing, motion_duration, motion_stagger
35
42
  - Output: `<session>/design/design-tokens.json`
36
43
 
37
44
  **Component Specification (DESIGN-002)**:
38
45
  - Define component specs consuming design tokens
39
- - Each spec contains: Overview (type: atom/molecule/organism, purpose), Design Tokens Consumed (token -> usage -> value reference), States (default/hover/focus/active/disabled), Responsive Behavior (changes per breakpoint), Accessibility (role, ARIA, keyboard, focus indicator, contrast), Variants, Anti-Patterns, Implementation Hints
40
- - All interactive states required: default, hover (background/opacity change), focus (outline 2px solid, offset 2px), active (pressed), disabled (opacity 0.5, cursor not-allowed)
46
+ - Each spec contains: Overview (type: atom/molecule/organism, purpose), Design Tokens Consumed (token -> usage -> value reference), States (**all 8 required**), Responsive Behavior (changes per breakpoint), Accessibility (role, ARIA, keyboard, focus indicator, contrast), Variants, Anti-Patterns, Implementation Hints, Visual Hierarchy Notes (where component sits in hierarchy, CTA level: primary/secondary/tertiary)
47
+ - **8 interaction states required** (reference `specs/design-standards.md` Interaction States):
48
+ - Default: base appearance
49
+ - Hover: subtle bg/opacity change, wrap in `@media(hover:hover)` guard
50
+ - Focus: `:focus-visible` with `outline: 2px solid var(--color-primary); outline-offset: 2px` (NOT bare `:focus`)
51
+ - Active: `scale(0.97)` or darker background
52
+ - Disabled: `opacity 0.5, cursor: not-allowed` via `[disabled], [aria-disabled="true"]`
53
+ - Loading: spinner/skeleton via `[aria-busy="true"]`
54
+ - Error: red border + message via `[aria-invalid="true"]`
55
+ - Success: green check + message
56
+ - Touch targets: minimum 44x44px for all interactive components
57
+ - UX Writing: button labels (verb+object), error message templates (what+why+fix), empty state copy pattern, loading text pattern. Reference `specs/ux-writing.md`
58
+ - Dark Mode: if light+dark tokens, ensure dark mode follows rules: lighter surfaces for depth, reduced font weight, desaturated accents
59
+ - Elevation: specify z-index layer for overlay/popup components using semantic scale (reference `specs/design-standards.md` Elevation)
41
60
  - Output: `<session>/design/component-specs/{component-name}.md`
42
61
 
43
62
  **GC Fix Mode (DESIGN-fix-N)**:
@@ -60,10 +79,15 @@ Define visual language through design tokens (W3C Design Tokens Format) and comp
60
79
 
61
80
  | Check | Pass Criteria |
62
81
  |-------|---------------|
63
- | states_complete | All 5 states (default/hover/focus/active/disabled) defined |
82
+ | eight_states | All 8 states (default/hover/focus/active/disabled/loading/error/success) defined |
64
83
  | a11y_specified | Role, ARIA, keyboard behavior defined |
65
84
  | responsive_defined | At least mobile/desktop breakpoints |
66
85
  | token_refs_valid | All `{token.path}` references resolve to defined tokens |
86
+ | oklch_used | All color values use OKLCH notation |
87
+ | no_generic_fonts | Primary font not in generic list (Inter/Roboto/Open Sans/Lato/Montserrat/Arial) |
88
+ | motion_tokens_present | Easing + duration tokens defined in token system |
89
+ | reduced_motion | Reduced motion strategy documented |
90
+ | ux_writing_specified | Button labels are verb+object, error/empty/loading text patterns defined |
67
91
 
68
92
  3. Update `<session>/wisdom/.msg/meta.json` under `designer` namespace:
69
93
  - Read existing -> merge `{ "designer": { task_type, token_categories, component_count, style_decisions } }` -> write back
@@ -34,6 +34,18 @@ Translate design tokens and component specifications into production code. Gener
34
34
  - `tokens.css`: CSS custom properties with `:root` (light) and `[data-theme="dark"]` selectors, plus `@media (prefers-color-scheme: dark)` fallback
35
35
  - `tokens.ts`: TypeScript constants and types for programmatic access with autocomplete support
36
36
  - `README.md`: Token usage guide
37
+ - **Color tokens**: generate OKLCH values in CSS custom properties (no hex/rgb)
38
+ - **Motion tokens**: generate easing + duration custom properties + reduced-motion query:
39
+ ```css
40
+ --easing-default: cubic-bezier(0.25, 1, 0.5, 1);
41
+ --duration-instant: 100ms;
42
+ --duration-fast: 150ms;
43
+ /* ... */
44
+ @media (prefers-reduced-motion: reduce) { /* ... */ }
45
+ ```
46
+ - **Spacing**: 4pt scale custom properties (--space-0 through --space-24)
47
+ - Z-index tokens: generate semantic z-index custom properties (`--z-dropdown` through `--z-tooltip`)
48
+ - Dark mode: ensure dark theme uses lighter surfaces for depth, reduced font weight references
37
49
  - All color tokens must have both light and dark values
38
50
  - Semantic token names must match design token definitions
39
51
 
@@ -44,9 +56,16 @@ Translate design tokens and component specifications into production code. Gener
44
56
  - `{ComponentName}.css`: Styles consuming tokens via `var(--token-name)` only
45
57
  - `{ComponentName}.test.tsx`: Basic render + state tests
46
58
  - `index.ts`: Re-export
47
- - Requirements: no hardcoded colors/spacing (use design tokens), implement all 5 states, add ARIA attributes per spec, support responsive breakpoints, follow project component patterns
59
+ - Requirements: no hardcoded colors/spacing (use design tokens), implement **all 8 states**, add ARIA attributes per spec, support responsive breakpoints, follow project component patterns
60
+ - **Focus**: use `:focus-visible` not bare `:focus`. Spec: `outline: 2px solid var(--color-primary); outline-offset: 2px; border-radius: inherit`
61
+ - **Hover**: wrap in `@media(hover:hover)` guard
62
+ - **Animation**: transform+opacity only (NEVER width/height/margin/padding), use motion tokens for easing and duration, add reduced-motion fallback via `@media (prefers-reduced-motion: reduce)`
63
+ - **Touch targets**: 44x44px minimum for all interactive elements, 8px gap between adjacent targets
48
64
  - Accessibility: keyboard navigation, screen reader support, visible focus indicators, WCAG AA contrast
49
- - Check implementation against design intelligence anti_patterns
65
+ - Responsive images: use `srcset` with width descriptors + `sizes` attribute for content images. Use `<picture>` for art direction
66
+ - Input method: beyond `@media(hover:hover)`, also use `@media(pointer:coarse)` for touch-specific adjustments (larger targets, simpler hover alternatives)
67
+ - UX writing: implement button labels, error messages, empty states as specified in component spec. No generic "OK/Cancel"
68
+ - Check implementation against design intelligence anti_patterns and `specs/anti-patterns.md`
50
69
 
51
70
  ## Phase 4: Validation & Output
52
71
 
@@ -64,9 +83,12 @@ Translate design tokens and component specifications into production code. Gener
64
83
  |-------|---------------|
65
84
  | File existence | At least 3 files per component (component, style, index) |
66
85
  | No hardcoded values | No `#xxx` or `rgb()` in component CSS (only in tokens.css) |
67
- | Focus styles | `:focus` or `:focus-visible` defined |
86
+ | focus_visible_used | Uses `:focus-visible` not bare `:focus` |
68
87
  | Responsive | `@media` queries present |
69
88
  | Anti-pattern clean | No violations of design intelligence anti_patterns |
89
+ | no_layout_animations | No width/height/margin/padding animations (transform+opacity only) |
90
+ | reduced_motion_present | `@media (prefers-reduced-motion: reduce)` exists in stylesheets |
91
+ | touch_targets | Interactive elements >= 44x44px (min-width/min-height or padding) |
70
92
 
71
93
  3. Update `<session>/wisdom/.msg/meta.json` under `implementer` namespace:
72
94
  - Read existing -> merge `{ "implementer": { build_type, file_count, output_dir, components_built } }` -> write back
@@ -31,6 +31,11 @@ Analyze existing design system, build component inventory, assess accessibility
31
31
 
32
32
  3. Use CLI tools (e.g., `ccw cli -p "..." --tool gemini --mode analysis`) or direct tools (Glob, Grep, mcp__ace-tool__search_context) to scan for existing design tokens, component files, styling patterns
33
33
  4. Read industry context from session config (industry, strictness, must-have features)
34
+ 5. **Context-First Protocol**: Before any design work, ensure these are known (extract from task description, or ask coordinator to clarify):
35
+ - **Target audience**: Who uses it, in what context? (e.g., developers, end users, admins)
36
+ - **Use cases**: What jobs are they doing? (e.g., data entry, monitoring, content creation)
37
+ - **Brand personality**: How should it feel? (e.g., professional, playful, technical, luxurious)
38
+ - If not provided in task description, flag as `context_missing` in output — designer cannot make good decisions without this
34
39
 
35
40
  ## Phase 3: Research Execution
36
41
 
@@ -41,6 +46,8 @@ Execute 4 analysis streams:
41
46
  - Identify styling patterns (CSS-in-JS, CSS modules, utility classes, SCSS)
42
47
  - Map color palette, typography scale, spacing system
43
48
  - Find component library usage (MUI, Ant Design, shadcn, custom)
49
+ - Check dark mode implementation quality: surface hierarchy, font weight adjustments, accent desaturation
50
+ - Check z-index patterns: arbitrary values vs semantic scale
44
51
  - Output: `<session>/research/design-system-analysis.json`
45
52
 
46
53
  **Stream 2 -- Component Inventory**:
@@ -63,11 +70,22 @@ Execute 4 analysis streams:
63
70
  - Degradation: when unavailable, use LLM general knowledge, mark `_source: "llm-general-knowledge"`
64
71
  - Output: `<session>/research/design-intelligence.json`
65
72
 
66
- Compile research summary metrics: design_system_exists, styling_approach, total_components, accessibility_level, design_intelligence_source, anti_patterns_count.
73
+ **Stream 5 -- Visual Quality Baseline**:
74
+ - Scan for AI slop tells (reference `specs/anti-patterns.md`): check for P1 items (AI color palette, gradient text, glassmorphism, all-buttons-primary, pure black/white)
75
+ - Check color system: OKLCH usage, pure black/white (`#000`/`#fff`), tinted neutrals (chroma 0.005-0.01), 60-30-10 distribution
76
+ - Check typography: font choices (flag Inter/Roboto/Open Sans/Lato/Montserrat/Arial), modular scale presence, fluid `clamp()` usage
77
+ - Check spacing: 4pt scale adherence, `gap` vs `margin` usage ratio, nested cards detection
78
+ - Check motion: easing values (flag `bounce`/`elastic`/`linear`/`ease`), `prefers-reduced-motion` query presence, `will-change` in CSS (should not be permanent)
79
+ - Check interaction states: count distinct states per interactive component (target: 8 per `specs/design-standards.md`)
80
+ - Check UX writing quality: generic button labels (OK/Submit/Cancel), error messages without fix guidance, empty states without actions
81
+ - Check dark mode: pure black backgrounds, non-desaturated accents, same font weights as light
82
+ - Output: `<session>/research/visual-quality-baseline.json`
83
+
84
+ Compile research summary metrics: design_system_exists, styling_approach, total_components, accessibility_level, design_intelligence_source, anti_patterns_count, visual_quality_score.
67
85
 
68
86
  ## Phase 4: Validation & Output
69
87
 
70
- 1. Verify all 4 output files exist and contain valid JSON with required fields:
88
+ 1. Verify all 5 output files exist and contain valid JSON with required fields:
71
89
 
72
90
  | File | Required Fields |
73
91
  |------|----------------|
@@ -75,6 +93,7 @@ Compile research summary metrics: design_system_exists, styling_approach, total_
75
93
  | component-inventory.json | components array |
76
94
  | accessibility-audit.json | wcag_level |
77
95
  | design-intelligence.json | _source, design_system |
96
+ | visual-quality-baseline.json | slop_tells, color_system, typography, spacing, motion, interaction_states |
78
97
 
79
98
  2. If any file missing or invalid, re-run corresponding stream
80
99
 
@@ -27,39 +27,41 @@ Audit design tokens and component specs for consistency, accessibility complianc
27
27
 
28
28
  ## Phase 3: Audit Execution
29
29
 
30
- Score 5 dimensions on 1-10 scale:
30
+ Score 8 dimensions on 0-4 scale (reference `specs/scoring-guide.md`). Total: 0-32.
31
31
 
32
32
  | Dimension | Weight | Focus |
33
33
  |-----------|--------|-------|
34
- | Consistency | 20% | Token usage, naming conventions, visual uniformity |
35
- | Accessibility | 25% | WCAG AA compliance, ARIA attributes, keyboard nav, contrast |
36
- | Completeness | 20% | All states defined, responsive specs, edge cases |
37
- | Quality | 15% | Token reference integrity, documentation clarity, maintainability |
38
- | Industry Compliance | 20% | Anti-pattern avoidance, UX best practices, design intelligence adherence |
34
+ | Anti-AI-Slop | 10% | AI slop tells detection (reference `specs/anti-patterns.md`) |
35
+ | Color Quality | 15% | OKLCH usage, tinted neutrals, 60-30-10, WCAG AA contrast, token hierarchy, dark mode surface hierarchy (lighter = higher elevation), dangerous color combinations (gray-on-color, red-green, yellow-white) |
36
+ | Typography Quality | 15% | Distinctive fonts, modular scale, fluid clamp(), line-height, reading width, OpenType features usage (tabular numbers for data, proper ligatures) |
37
+ | Spacing & Layout | 12.5% | 4pt scale, rhythm variation, gap over margin, no nested cards, touch targets |
38
+ | Motion & Animation | 10% | Transform+opacity only, exponential easing, duration tokens, reduced-motion |
39
+ | Interaction States | 15% | All 8 states, focus-visible, focus ring spec, loading/error/success, UX writing quality: button labels (verb+object), error messages (what+why+fix), empty states |
40
+ | Visual Hierarchy | 10% | Squint test, single primary CTA, progressive disclosure, size/weight hierarchy |
41
+ | Responsive | 12.5% | Fluid design, container queries, mobile requirements, adapt don't hide |
39
42
 
40
- **Token Audit**: Naming convention (kebab-case, semantic names), value patterns (consistent units), theme completeness (light+dark for all colors), contrast ratios (text on background >= 4.5:1), minimum font sizes (>= 12px), all categories present, W3C $type metadata, no duplicates.
43
+ **Token Audit**: OKLCH color values, tinted neutrals (chroma 0.005-0.01), no pure black/white, semantic token hierarchy (primitive->semantic->component), theme completeness (light+dark), contrast ratios (text >= 4.5:1, large text >= 3:1), distinctive font choice, modular scale ratio, fluid clamp() values, 4pt spacing scale, motion easing + duration tokens, reduced-motion strategy.
41
44
 
42
- **Component Audit**: Token references resolve, naming matches convention, ARIA roles defined, keyboard behavior specified, focus indicator defined, all 5 states present, responsive breakpoints specified, variants documented, clear descriptions.
45
+ **Component Audit**: All 8 interaction states present, `:focus-visible` (not bare `:focus`), hover in `@media(hover:hover)`, active `scale(0.97)`, loading/error/success states with ARIA, touch targets >= 44x44px, token references resolve, CTA hierarchy (primary/secondary/tertiary), no layout property animations.
43
46
 
44
- **Final Audit (cross-cutting)**: Token<->Component consistency (no hardcoded values), Code<->Design consistency (CSS variables match tokens, ARIA implemented as specified), cross-component consistency (spacing, color, interaction patterns).
45
-
46
- **Score calculation**: `overallScore = round(consistency*0.20 + accessibility*0.25 + completeness*0.20 + quality*0.15 + industryCompliance*0.20)`
47
+ **Final Audit (cross-cutting)**: Token<->Component consistency (no hardcoded values), Code<->Design consistency (CSS variables match tokens, ARIA implemented as specified), cross-component consistency (spacing, color, interaction patterns), anti-pattern scan across all outputs.
47
48
 
48
49
  **Signal determination**:
49
50
 
50
51
  | Condition | Signal |
51
52
  |-----------|--------|
52
- | Score >= 8 AND critical_count === 0 | `audit_passed` (GC CONVERGED) |
53
- | Score >= 6 AND critical_count === 0 | `audit_result` (GC REVISION NEEDED) |
54
- | Score < 6 OR critical_count > 0 | `fix_required` (CRITICAL FIX NEEDED) |
53
+ | Score >= 26 AND no dimension at 0 | `audit_passed` (GC CONVERGED) |
54
+ | Score >= 20 AND no dimension at 0 | `audit_result` (REVISION NEEDED) |
55
+ | Score < 20 OR any dimension at 0 | `fix_required` (CRITICAL) |
55
56
 
56
57
  ## Phase 4: Report & Output
57
58
 
58
59
  1. Write audit report to `<session>/audit/audit-{NNN}.md`:
59
- - Summary: overall score, signal, critical/high/medium counts
60
+ - Summary: overall score (out of 32), signal, rating band (Excellent/Good/Acceptable/Poor/Critical)
60
61
  - Sync Point Status (if applicable): PASSED/BLOCKED
61
- - Dimension Scores table (score/weight/weighted per dimension)
62
- - Critical/High/Medium issues with descriptions, locations, fix suggestions
62
+ - 8-Dimension Scores table: Anti-AI-Slop, Color Quality, Typography Quality, Spacing & Layout, Motion & Animation, Interaction States, Visual Hierarchy, Responsive (each 0-4 with weight and weighted score)
63
+ - P0/P1/P2/P3 issues with descriptions, locations, fix suggestions, mapped to dimensions
64
+ - Anti-pattern detections (reference `specs/anti-patterns.md` item numbers)
63
65
  - GC Loop Status: signal, action required
64
66
  - Trend analysis (if audit_history exists): improving/stable/declining
65
67