From 4edde64768300011d505e55e8e4c80b694e1703a Mon Sep 17 00:00:00 2001 From: Paul Bakaus Date: Wed, 20 May 2026 22:09:42 -0700 Subject: [PATCH] skill: merge orphan reference files into command sub-skills + inline S-tier invariants Two related restructurings: 1. SKILL.md now carries the cross-domain invariants that catch defects in any project (contrast/placeholder/gray-on-color, similar-font pairing, text-wrap, tabular-nums, centered-stack default, Flex/Grid choice, auto-fit grids, semantic z-index, reduced motion, stagger vs section-fade, premium motion materials, focus-visible, placeholders-aren't-labels, dropdown overflow trap, button/link copy). Greenfield-only rules (theme picking, color strategy, tinted neutrals) live under "New projects only". 2. Reference files merged into their command counterparts: - spatial-design.md -> layout.md - motion-design.md -> animate.md - color-and-contrast.md -> colorize.md - responsive-design.md -> adapt.md - ux-writing.md -> clarify.md - typography.md -> typeset.md (bolder.md redirected) - cognitive-load.md + heuristics-scoring.md + personas.md -> critique.md craft.md and shape.md "load references" lists updated to new file homes. interaction-design.md stays standalone (no 1:1 command verb). Net: 36 -> 27 reference files. Same content, fewer files, no orphaned reference loaded only from craft.md. Also extends the routing rules: if the user's first word doesn't match a command but the intent clearly maps to one, load that command's reference and proceed as if invoked. Co-Authored-By: Claude Opus 4.7 (1M context) --- .agents/skills/impeccable/SKILL.md | 129 +++-- .agents/skills/impeccable/reference/adapt.md | 121 ++++ .../skills/impeccable/reference/animate.md | 46 +- .agents/skills/impeccable/reference/bolder.md | 10 +- .agents/skills/impeccable/reference/brand.md | 12 +- .../skills/impeccable/reference/clarify.md | 114 ++++ .agents/skills/impeccable/reference/codex.md | 4 +- .../impeccable/reference/cognitive-load.md | 106 ---- .../reference/color-and-contrast.md | 105 ---- .../skills/impeccable/reference/colorize.md | 111 +++- .agents/skills/impeccable/reference/craft.md | 12 +- .../skills/impeccable/reference/critique.md | 541 ++++++++++++++++- .../skills/impeccable/reference/document.md | 16 +- .../reference/heuristics-scoring.md | 234 -------- .../reference/interaction-design.md | 6 - .agents/skills/impeccable/reference/layout.md | 39 +- .agents/skills/impeccable/reference/live.md | 6 +- .../impeccable/reference/motion-design.md | 109 ---- .../skills/impeccable/reference/personas.md | 179 ------ .agents/skills/impeccable/reference/polish.md | 1 - .../impeccable/reference/responsive-design.md | 114 ---- .agents/skills/impeccable/reference/shape.md | 2 +- .../impeccable/reference/spatial-design.md | 100 ---- .agents/skills/impeccable/reference/teach.md | 17 +- .../skills/impeccable/reference/typeset.md | 159 ++++- .../skills/impeccable/reference/typography.md | 159 ----- .../skills/impeccable/reference/ux-writing.md | 107 ---- .agents/skills/impeccable/scripts/context.mjs | 125 ++++ .../detector/detect-antipatterns-browser.js | 23 - .../detector/engines/regex/detect-text.mjs | 8 - .../detector/registry/antipatterns.mjs | 9 - .../scripts/detector/rules/checks.mjs | 14 - .../skills/impeccable/scripts/live-browser.js | 76 ++- .../skills/impeccable/scripts/live-server.mjs | 7 +- .../skills/impeccable/scripts/live-wrap.mjs | 3 + .agents/skills/impeccable/scripts/live.mjs | 5 +- .../impeccable/scripts/load-context.mjs | 141 ----- .claude/skills/impeccable/SKILL.md | 127 ++-- .claude/skills/impeccable/reference/adapt.md | 121 ++++ .../skills/impeccable/reference/animate.md | 46 +- .claude/skills/impeccable/reference/bolder.md | 10 +- .claude/skills/impeccable/reference/brand.md | 12 +- .../skills/impeccable/reference/clarify.md | 114 ++++ .claude/skills/impeccable/reference/codex.md | 4 +- .../impeccable/reference/cognitive-load.md | 106 ---- .../reference/color-and-contrast.md | 105 ---- .../skills/impeccable/reference/colorize.md | 111 +++- .claude/skills/impeccable/reference/craft.md | 12 +- .../skills/impeccable/reference/critique.md | 541 ++++++++++++++++- .../skills/impeccable/reference/document.md | 16 +- .../reference/heuristics-scoring.md | 234 -------- .../reference/interaction-design.md | 6 - .claude/skills/impeccable/reference/layout.md | 39 +- .claude/skills/impeccable/reference/live.md | 4 +- .../impeccable/reference/motion-design.md | 109 ---- .../skills/impeccable/reference/personas.md | 179 ------ .claude/skills/impeccable/reference/polish.md | 1 - .../impeccable/reference/responsive-design.md | 114 ---- .claude/skills/impeccable/reference/shape.md | 2 +- .../impeccable/reference/spatial-design.md | 100 ---- .claude/skills/impeccable/reference/teach.md | 17 +- .../skills/impeccable/reference/typeset.md | 159 ++++- .../skills/impeccable/reference/typography.md | 159 ----- .../skills/impeccable/reference/ux-writing.md | 107 ---- .claude/skills/impeccable/scripts/context.mjs | 125 ++++ .../detector/detect-antipatterns-browser.js | 23 - .../detector/engines/regex/detect-text.mjs | 8 - .../detector/registry/antipatterns.mjs | 9 - .../scripts/detector/rules/checks.mjs | 14 - .../skills/impeccable/scripts/live-browser.js | 76 ++- .../skills/impeccable/scripts/live-server.mjs | 7 +- .../skills/impeccable/scripts/live-wrap.mjs | 3 + .claude/skills/impeccable/scripts/live.mjs | 5 +- .../impeccable/scripts/load-context.mjs | 141 ----- .cursor/skills/impeccable/SKILL.md | 127 ++-- .cursor/skills/impeccable/reference/adapt.md | 121 ++++ .../skills/impeccable/reference/animate.md | 46 +- .cursor/skills/impeccable/reference/bolder.md | 10 +- .cursor/skills/impeccable/reference/brand.md | 12 +- .../skills/impeccable/reference/clarify.md | 114 ++++ .cursor/skills/impeccable/reference/codex.md | 4 +- .../impeccable/reference/cognitive-load.md | 106 ---- .../reference/color-and-contrast.md | 105 ---- .../skills/impeccable/reference/colorize.md | 111 +++- .cursor/skills/impeccable/reference/craft.md | 12 +- .../skills/impeccable/reference/critique.md | 541 ++++++++++++++++- .../skills/impeccable/reference/document.md | 16 +- .../reference/heuristics-scoring.md | 234 -------- .../reference/interaction-design.md | 6 - .cursor/skills/impeccable/reference/layout.md | 39 +- .cursor/skills/impeccable/reference/live.md | 4 +- .../impeccable/reference/motion-design.md | 109 ---- .../skills/impeccable/reference/personas.md | 179 ------ .cursor/skills/impeccable/reference/polish.md | 1 - .../impeccable/reference/responsive-design.md | 114 ---- .cursor/skills/impeccable/reference/shape.md | 2 +- .../impeccable/reference/spatial-design.md | 100 ---- .cursor/skills/impeccable/reference/teach.md | 17 +- .../skills/impeccable/reference/typeset.md | 159 ++++- .../skills/impeccable/reference/typography.md | 159 ----- .../skills/impeccable/reference/ux-writing.md | 107 ---- .cursor/skills/impeccable/scripts/context.mjs | 125 ++++ .../detector/detect-antipatterns-browser.js | 23 - .../detector/engines/regex/detect-text.mjs | 8 - .../detector/registry/antipatterns.mjs | 9 - .../scripts/detector/rules/checks.mjs | 14 - .../skills/impeccable/scripts/live-browser.js | 76 ++- .../skills/impeccable/scripts/live-server.mjs | 7 +- .../skills/impeccable/scripts/live-wrap.mjs | 3 + .cursor/skills/impeccable/scripts/live.mjs | 5 +- .../impeccable/scripts/load-context.mjs | 141 ----- .gemini/skills/impeccable/SKILL.md | 125 ++-- .gemini/skills/impeccable/reference/adapt.md | 121 ++++ .../skills/impeccable/reference/animate.md | 46 +- .gemini/skills/impeccable/reference/bolder.md | 10 +- .gemini/skills/impeccable/reference/brand.md | 12 +- .../skills/impeccable/reference/clarify.md | 114 ++++ .gemini/skills/impeccable/reference/codex.md | 4 +- .../impeccable/reference/cognitive-load.md | 106 ---- .../reference/color-and-contrast.md | 105 ---- .../skills/impeccable/reference/colorize.md | 111 +++- .gemini/skills/impeccable/reference/craft.md | 12 +- .../skills/impeccable/reference/critique.md | 541 ++++++++++++++++- .../skills/impeccable/reference/document.md | 16 +- .../reference/heuristics-scoring.md | 234 -------- .../reference/interaction-design.md | 6 - .gemini/skills/impeccable/reference/layout.md | 39 +- .gemini/skills/impeccable/reference/live.md | 4 +- .../impeccable/reference/motion-design.md | 109 ---- .../skills/impeccable/reference/personas.md | 179 ------ .gemini/skills/impeccable/reference/polish.md | 1 - .../impeccable/reference/responsive-design.md | 114 ---- .gemini/skills/impeccable/reference/shape.md | 2 +- .../impeccable/reference/spatial-design.md | 100 ---- .gemini/skills/impeccable/reference/teach.md | 17 +- .../skills/impeccable/reference/typeset.md | 159 ++++- .../skills/impeccable/reference/typography.md | 159 ----- .../skills/impeccable/reference/ux-writing.md | 107 ---- .gemini/skills/impeccable/scripts/context.mjs | 125 ++++ .../detector/detect-antipatterns-browser.js | 23 - .../detector/engines/regex/detect-text.mjs | 8 - .../detector/registry/antipatterns.mjs | 9 - .../scripts/detector/rules/checks.mjs | 14 - .../skills/impeccable/scripts/live-browser.js | 76 ++- .../skills/impeccable/scripts/live-server.mjs | 7 +- .../skills/impeccable/scripts/live-wrap.mjs | 3 + .gemini/skills/impeccable/scripts/live.mjs | 5 +- .../impeccable/scripts/load-context.mjs | 141 ----- .github/skills/impeccable/SKILL.md | 127 ++-- .github/skills/impeccable/reference/adapt.md | 121 ++++ .../skills/impeccable/reference/animate.md | 46 +- .github/skills/impeccable/reference/bolder.md | 10 +- .github/skills/impeccable/reference/brand.md | 12 +- .../skills/impeccable/reference/clarify.md | 114 ++++ .github/skills/impeccable/reference/codex.md | 4 +- .../impeccable/reference/cognitive-load.md | 106 ---- .../reference/color-and-contrast.md | 105 ---- .../skills/impeccable/reference/colorize.md | 111 +++- .github/skills/impeccable/reference/craft.md | 12 +- .../skills/impeccable/reference/critique.md | 541 ++++++++++++++++- .../skills/impeccable/reference/document.md | 16 +- .../reference/heuristics-scoring.md | 234 -------- .../reference/interaction-design.md | 6 - .github/skills/impeccable/reference/layout.md | 39 +- .github/skills/impeccable/reference/live.md | 4 +- .../impeccable/reference/motion-design.md | 109 ---- .../skills/impeccable/reference/personas.md | 179 ------ .github/skills/impeccable/reference/polish.md | 1 - .../impeccable/reference/responsive-design.md | 114 ---- .github/skills/impeccable/reference/shape.md | 2 +- .../impeccable/reference/spatial-design.md | 100 ---- .github/skills/impeccable/reference/teach.md | 17 +- .../skills/impeccable/reference/typeset.md | 159 ++++- .../skills/impeccable/reference/typography.md | 159 ----- .../skills/impeccable/reference/ux-writing.md | 107 ---- .github/skills/impeccable/scripts/context.mjs | 125 ++++ .../detector/detect-antipatterns-browser.js | 23 - .../detector/engines/regex/detect-text.mjs | 8 - .../detector/registry/antipatterns.mjs | 9 - .../scripts/detector/rules/checks.mjs | 14 - .../skills/impeccable/scripts/live-browser.js | 76 ++- .../skills/impeccable/scripts/live-server.mjs | 7 +- .../skills/impeccable/scripts/live-wrap.mjs | 3 + .github/skills/impeccable/scripts/live.mjs | 5 +- .../impeccable/scripts/load-context.mjs | 141 ----- .kiro/skills/impeccable/SKILL.md | 127 ++-- .kiro/skills/impeccable/reference/adapt.md | 121 ++++ .kiro/skills/impeccable/reference/animate.md | 46 +- .kiro/skills/impeccable/reference/bolder.md | 10 +- .kiro/skills/impeccable/reference/brand.md | 12 +- .kiro/skills/impeccable/reference/clarify.md | 114 ++++ .kiro/skills/impeccable/reference/codex.md | 4 +- .../impeccable/reference/cognitive-load.md | 106 ---- .../reference/color-and-contrast.md | 105 ---- .kiro/skills/impeccable/reference/colorize.md | 111 +++- .kiro/skills/impeccable/reference/craft.md | 12 +- .kiro/skills/impeccable/reference/critique.md | 541 ++++++++++++++++- .kiro/skills/impeccable/reference/document.md | 16 +- .../reference/heuristics-scoring.md | 234 -------- .../reference/interaction-design.md | 6 - .kiro/skills/impeccable/reference/layout.md | 39 +- .kiro/skills/impeccable/reference/live.md | 4 +- .../impeccable/reference/motion-design.md | 109 ---- .kiro/skills/impeccable/reference/personas.md | 179 ------ .kiro/skills/impeccable/reference/polish.md | 1 - .../impeccable/reference/responsive-design.md | 114 ---- .kiro/skills/impeccable/reference/shape.md | 2 +- .../impeccable/reference/spatial-design.md | 100 ---- .kiro/skills/impeccable/reference/teach.md | 17 +- .kiro/skills/impeccable/reference/typeset.md | 159 ++++- .../skills/impeccable/reference/typography.md | 159 ----- .../skills/impeccable/reference/ux-writing.md | 107 ---- .kiro/skills/impeccable/scripts/context.mjs | 125 ++++ .../detector/detect-antipatterns-browser.js | 23 - .../detector/engines/regex/detect-text.mjs | 8 - .../detector/registry/antipatterns.mjs | 9 - .../scripts/detector/rules/checks.mjs | 14 - .../skills/impeccable/scripts/live-browser.js | 76 ++- .../skills/impeccable/scripts/live-server.mjs | 7 +- .kiro/skills/impeccable/scripts/live-wrap.mjs | 3 + .kiro/skills/impeccable/scripts/live.mjs | 5 +- .../impeccable/scripts/load-context.mjs | 141 ----- .opencode/skills/impeccable/SKILL.md | 127 ++-- .../skills/impeccable/reference/adapt.md | 121 ++++ .../skills/impeccable/reference/animate.md | 46 +- .../skills/impeccable/reference/bolder.md | 10 +- .../skills/impeccable/reference/brand.md | 12 +- .../skills/impeccable/reference/clarify.md | 114 ++++ .../skills/impeccable/reference/codex.md | 4 +- .../impeccable/reference/cognitive-load.md | 106 ---- .../reference/color-and-contrast.md | 105 ---- .../skills/impeccable/reference/colorize.md | 111 +++- .../skills/impeccable/reference/craft.md | 12 +- .../skills/impeccable/reference/critique.md | 541 ++++++++++++++++- .../skills/impeccable/reference/document.md | 16 +- .../reference/heuristics-scoring.md | 234 -------- .../reference/interaction-design.md | 6 - .../skills/impeccable/reference/layout.md | 39 +- .opencode/skills/impeccable/reference/live.md | 4 +- .../impeccable/reference/motion-design.md | 109 ---- .../skills/impeccable/reference/personas.md | 179 ------ .../skills/impeccable/reference/polish.md | 1 - .../impeccable/reference/responsive-design.md | 114 ---- .../skills/impeccable/reference/shape.md | 2 +- .../impeccable/reference/spatial-design.md | 100 ---- .../skills/impeccable/reference/teach.md | 17 +- .../skills/impeccable/reference/typeset.md | 159 ++++- .../skills/impeccable/reference/typography.md | 159 ----- .../skills/impeccable/reference/ux-writing.md | 107 ---- .../skills/impeccable/scripts/context.mjs | 125 ++++ .../detector/detect-antipatterns-browser.js | 23 - .../detector/engines/regex/detect-text.mjs | 8 - .../detector/registry/antipatterns.mjs | 9 - .../scripts/detector/rules/checks.mjs | 14 - .../skills/impeccable/scripts/live-browser.js | 76 ++- .../skills/impeccable/scripts/live-server.mjs | 7 +- .../skills/impeccable/scripts/live-wrap.mjs | 3 + .opencode/skills/impeccable/scripts/live.mjs | 5 +- .../impeccable/scripts/load-context.mjs | 141 ----- .pi/skills/impeccable/SKILL.md | 127 ++-- .pi/skills/impeccable/reference/adapt.md | 121 ++++ .pi/skills/impeccable/reference/animate.md | 46 +- .pi/skills/impeccable/reference/bolder.md | 10 +- .pi/skills/impeccable/reference/brand.md | 12 +- .pi/skills/impeccable/reference/clarify.md | 114 ++++ .pi/skills/impeccable/reference/codex.md | 4 +- .../impeccable/reference/cognitive-load.md | 106 ---- .../reference/color-and-contrast.md | 105 ---- .pi/skills/impeccable/reference/colorize.md | 111 +++- .pi/skills/impeccable/reference/craft.md | 12 +- .pi/skills/impeccable/reference/critique.md | 541 ++++++++++++++++- .pi/skills/impeccable/reference/document.md | 16 +- .../reference/heuristics-scoring.md | 234 -------- .../reference/interaction-design.md | 6 - .pi/skills/impeccable/reference/layout.md | 39 +- .pi/skills/impeccable/reference/live.md | 4 +- .../impeccable/reference/motion-design.md | 109 ---- .pi/skills/impeccable/reference/personas.md | 179 ------ .pi/skills/impeccable/reference/polish.md | 1 - .../impeccable/reference/responsive-design.md | 114 ---- .pi/skills/impeccable/reference/shape.md | 2 +- .../impeccable/reference/spatial-design.md | 100 ---- .pi/skills/impeccable/reference/teach.md | 17 +- .pi/skills/impeccable/reference/typeset.md | 159 ++++- .pi/skills/impeccable/reference/typography.md | 159 ----- .pi/skills/impeccable/reference/ux-writing.md | 107 ---- .pi/skills/impeccable/scripts/context.mjs | 125 ++++ .../detector/detect-antipatterns-browser.js | 23 - .../detector/engines/regex/detect-text.mjs | 8 - .../detector/registry/antipatterns.mjs | 9 - .../scripts/detector/rules/checks.mjs | 14 - .pi/skills/impeccable/scripts/live-browser.js | 76 ++- .pi/skills/impeccable/scripts/live-server.mjs | 7 +- .pi/skills/impeccable/scripts/live-wrap.mjs | 3 + .pi/skills/impeccable/scripts/live.mjs | 5 +- .../impeccable/scripts/load-context.mjs | 141 ----- .qoder/skills/impeccable/SKILL.md | 127 ++-- .qoder/skills/impeccable/reference/adapt.md | 121 ++++ .qoder/skills/impeccable/reference/animate.md | 46 +- .qoder/skills/impeccable/reference/bolder.md | 10 +- .qoder/skills/impeccable/reference/brand.md | 12 +- .qoder/skills/impeccable/reference/clarify.md | 114 ++++ .qoder/skills/impeccable/reference/codex.md | 4 +- .../impeccable/reference/cognitive-load.md | 106 ---- .../reference/color-and-contrast.md | 105 ---- .../skills/impeccable/reference/colorize.md | 111 +++- .qoder/skills/impeccable/reference/craft.md | 12 +- .../skills/impeccable/reference/critique.md | 541 ++++++++++++++++- .../skills/impeccable/reference/document.md | 16 +- .../reference/heuristics-scoring.md | 234 -------- .../reference/interaction-design.md | 6 - .qoder/skills/impeccable/reference/layout.md | 39 +- .qoder/skills/impeccable/reference/live.md | 4 +- .../impeccable/reference/motion-design.md | 109 ---- .../skills/impeccable/reference/personas.md | 179 ------ .qoder/skills/impeccable/reference/polish.md | 1 - .../impeccable/reference/responsive-design.md | 114 ---- .qoder/skills/impeccable/reference/shape.md | 2 +- .../impeccable/reference/spatial-design.md | 100 ---- .qoder/skills/impeccable/reference/teach.md | 17 +- .qoder/skills/impeccable/reference/typeset.md | 159 ++++- .../skills/impeccable/reference/typography.md | 159 ----- .../skills/impeccable/reference/ux-writing.md | 107 ---- .qoder/skills/impeccable/scripts/context.mjs | 125 ++++ .../detector/detect-antipatterns-browser.js | 23 - .../detector/engines/regex/detect-text.mjs | 8 - .../detector/registry/antipatterns.mjs | 9 - .../scripts/detector/rules/checks.mjs | 14 - .../skills/impeccable/scripts/live-browser.js | 76 ++- .../skills/impeccable/scripts/live-server.mjs | 7 +- .../skills/impeccable/scripts/live-wrap.mjs | 3 + .qoder/skills/impeccable/scripts/live.mjs | 5 +- .../impeccable/scripts/load-context.mjs | 141 ----- .rovodev/skills/impeccable/SKILL.md | 127 ++-- .rovodev/skills/impeccable/reference/adapt.md | 121 ++++ .../skills/impeccable/reference/animate.md | 46 +- .../skills/impeccable/reference/bolder.md | 10 +- .rovodev/skills/impeccable/reference/brand.md | 12 +- .../skills/impeccable/reference/clarify.md | 114 ++++ .rovodev/skills/impeccable/reference/codex.md | 4 +- .../impeccable/reference/cognitive-load.md | 106 ---- .../reference/color-and-contrast.md | 105 ---- .../skills/impeccable/reference/colorize.md | 111 +++- .rovodev/skills/impeccable/reference/craft.md | 12 +- .../skills/impeccable/reference/critique.md | 541 ++++++++++++++++- .../skills/impeccable/reference/document.md | 16 +- .../reference/heuristics-scoring.md | 234 -------- .../reference/interaction-design.md | 6 - .../skills/impeccable/reference/layout.md | 39 +- .rovodev/skills/impeccable/reference/live.md | 4 +- .../impeccable/reference/motion-design.md | 109 ---- .../skills/impeccable/reference/personas.md | 179 ------ .../skills/impeccable/reference/polish.md | 1 - .../impeccable/reference/responsive-design.md | 114 ---- .rovodev/skills/impeccable/reference/shape.md | 2 +- .../impeccable/reference/spatial-design.md | 100 ---- .rovodev/skills/impeccable/reference/teach.md | 17 +- .../skills/impeccable/reference/typeset.md | 159 ++++- .../skills/impeccable/reference/typography.md | 159 ----- .../skills/impeccable/reference/ux-writing.md | 107 ---- .../skills/impeccable/scripts/context.mjs | 125 ++++ .../detector/detect-antipatterns-browser.js | 23 - .../detector/engines/regex/detect-text.mjs | 8 - .../detector/registry/antipatterns.mjs | 9 - .../scripts/detector/rules/checks.mjs | 14 - .../skills/impeccable/scripts/live-browser.js | 76 ++- .../skills/impeccable/scripts/live-server.mjs | 7 +- .../skills/impeccable/scripts/live-wrap.mjs | 3 + .rovodev/skills/impeccable/scripts/live.mjs | 5 +- .../impeccable/scripts/load-context.mjs | 141 ----- .trae-cn/skills/impeccable/SKILL.md | 127 ++-- .trae-cn/skills/impeccable/reference/adapt.md | 121 ++++ .../skills/impeccable/reference/animate.md | 46 +- .../skills/impeccable/reference/bolder.md | 10 +- .trae-cn/skills/impeccable/reference/brand.md | 12 +- .../skills/impeccable/reference/clarify.md | 114 ++++ .trae-cn/skills/impeccable/reference/codex.md | 4 +- .../impeccable/reference/cognitive-load.md | 106 ---- .../reference/color-and-contrast.md | 105 ---- .../skills/impeccable/reference/colorize.md | 111 +++- .trae-cn/skills/impeccable/reference/craft.md | 12 +- .../skills/impeccable/reference/critique.md | 541 ++++++++++++++++- .../skills/impeccable/reference/document.md | 16 +- .../reference/heuristics-scoring.md | 234 -------- .../reference/interaction-design.md | 6 - .../skills/impeccable/reference/layout.md | 39 +- .trae-cn/skills/impeccable/reference/live.md | 4 +- .../impeccable/reference/motion-design.md | 109 ---- .../skills/impeccable/reference/personas.md | 179 ------ .../skills/impeccable/reference/polish.md | 1 - .../impeccable/reference/responsive-design.md | 114 ---- .trae-cn/skills/impeccable/reference/shape.md | 2 +- .../impeccable/reference/spatial-design.md | 100 ---- .trae-cn/skills/impeccable/reference/teach.md | 17 +- .../skills/impeccable/reference/typeset.md | 159 ++++- .../skills/impeccable/reference/typography.md | 159 ----- .../skills/impeccable/reference/ux-writing.md | 107 ---- .../skills/impeccable/scripts/context.mjs | 125 ++++ .../detector/detect-antipatterns-browser.js | 23 - .../detector/engines/regex/detect-text.mjs | 8 - .../detector/registry/antipatterns.mjs | 9 - .../scripts/detector/rules/checks.mjs | 14 - .../skills/impeccable/scripts/live-browser.js | 76 ++- .../skills/impeccable/scripts/live-server.mjs | 7 +- .../skills/impeccable/scripts/live-wrap.mjs | 3 + .trae-cn/skills/impeccable/scripts/live.mjs | 5 +- .../impeccable/scripts/load-context.mjs | 141 ----- .trae/skills/impeccable/SKILL.md | 127 ++-- .trae/skills/impeccable/reference/adapt.md | 121 ++++ .trae/skills/impeccable/reference/animate.md | 46 +- .trae/skills/impeccable/reference/bolder.md | 10 +- .trae/skills/impeccable/reference/brand.md | 12 +- .trae/skills/impeccable/reference/clarify.md | 114 ++++ .trae/skills/impeccable/reference/codex.md | 4 +- .../impeccable/reference/cognitive-load.md | 106 ---- .../reference/color-and-contrast.md | 105 ---- .trae/skills/impeccable/reference/colorize.md | 111 +++- .trae/skills/impeccable/reference/craft.md | 12 +- .trae/skills/impeccable/reference/critique.md | 541 ++++++++++++++++- .trae/skills/impeccable/reference/document.md | 16 +- .../reference/heuristics-scoring.md | 234 -------- .../reference/interaction-design.md | 6 - .trae/skills/impeccable/reference/layout.md | 39 +- .trae/skills/impeccable/reference/live.md | 4 +- .../impeccable/reference/motion-design.md | 109 ---- .trae/skills/impeccable/reference/personas.md | 179 ------ .trae/skills/impeccable/reference/polish.md | 1 - .../impeccable/reference/responsive-design.md | 114 ---- .trae/skills/impeccable/reference/shape.md | 2 +- .../impeccable/reference/spatial-design.md | 100 ---- .trae/skills/impeccable/reference/teach.md | 17 +- .trae/skills/impeccable/reference/typeset.md | 159 ++++- .../skills/impeccable/reference/typography.md | 159 ----- .../skills/impeccable/reference/ux-writing.md | 107 ---- .trae/skills/impeccable/scripts/context.mjs | 125 ++++ .../detector/detect-antipatterns-browser.js | 23 - .../detector/engines/regex/detect-text.mjs | 8 - .../detector/registry/antipatterns.mjs | 9 - .../scripts/detector/rules/checks.mjs | 14 - .../skills/impeccable/scripts/live-browser.js | 76 ++- .../skills/impeccable/scripts/live-server.mjs | 7 +- .trae/skills/impeccable/scripts/live-wrap.mjs | 3 + .trae/skills/impeccable/scripts/live.mjs | 5 +- .../impeccable/scripts/load-context.mjs | 141 ----- plugin/skills/impeccable/SKILL.md | 127 ++-- plugin/skills/impeccable/reference/adapt.md | 121 ++++ plugin/skills/impeccable/reference/animate.md | 46 +- plugin/skills/impeccable/reference/bolder.md | 10 +- plugin/skills/impeccable/reference/brand.md | 12 +- plugin/skills/impeccable/reference/clarify.md | 114 ++++ plugin/skills/impeccable/reference/codex.md | 4 +- .../impeccable/reference/cognitive-load.md | 106 ---- .../reference/color-and-contrast.md | 105 ---- .../skills/impeccable/reference/colorize.md | 111 +++- plugin/skills/impeccable/reference/craft.md | 12 +- .../skills/impeccable/reference/critique.md | 541 ++++++++++++++++- .../skills/impeccable/reference/document.md | 16 +- .../reference/heuristics-scoring.md | 234 -------- .../reference/interaction-design.md | 6 - plugin/skills/impeccable/reference/layout.md | 39 +- plugin/skills/impeccable/reference/live.md | 4 +- .../impeccable/reference/motion-design.md | 109 ---- .../skills/impeccable/reference/personas.md | 179 ------ plugin/skills/impeccable/reference/polish.md | 1 - .../impeccable/reference/responsive-design.md | 114 ---- plugin/skills/impeccable/reference/shape.md | 2 +- .../impeccable/reference/spatial-design.md | 100 ---- plugin/skills/impeccable/reference/teach.md | 17 +- plugin/skills/impeccable/reference/typeset.md | 159 ++++- .../skills/impeccable/reference/typography.md | 159 ----- .../skills/impeccable/reference/ux-writing.md | 107 ---- plugin/skills/impeccable/scripts/context.mjs | 125 ++++ .../detector/detect-antipatterns-browser.js | 23 - .../detector/engines/regex/detect-text.mjs | 8 - .../detector/registry/antipatterns.mjs | 9 - .../scripts/detector/rules/checks.mjs | 14 - .../skills/impeccable/scripts/live-browser.js | 76 ++- .../skills/impeccable/scripts/live-server.mjs | 7 +- .../skills/impeccable/scripts/live-wrap.mjs | 3 + plugin/skills/impeccable/scripts/live.mjs | 5 +- .../impeccable/scripts/load-context.mjs | 141 ----- skill/SKILL.md | 89 +-- skill/reference/adapt.md | 121 ++++ skill/reference/animate.md | 43 +- skill/reference/bolder.md | 2 +- skill/reference/clarify.md | 114 ++++ skill/reference/cognitive-load.md | 106 ---- skill/reference/color-and-contrast.md | 101 ---- skill/reference/colorize.md | 105 ++++ skill/reference/craft.md | 12 +- skill/reference/critique.md | 542 +++++++++++++++++- skill/reference/heuristics-scoring.md | 234 -------- skill/reference/interaction-design.md | 6 - skill/reference/layout.md | 39 +- skill/reference/motion-design.md | 109 ---- skill/reference/personas.md | 179 ------ skill/reference/responsive-design.md | 114 ---- skill/reference/shape.md | 2 +- skill/reference/spatial-design.md | 100 ---- skill/reference/typeset.md | 157 ++++- skill/reference/typography.md | 159 ----- skill/reference/ux-writing.md | 107 ---- skill/scripts/live-browser.js | 76 ++- skill/scripts/live-wrap.mjs | 3 + 504 files changed, 19067 insertions(+), 22013 deletions(-) delete mode 100644 .agents/skills/impeccable/reference/cognitive-load.md delete mode 100644 .agents/skills/impeccable/reference/color-and-contrast.md delete mode 100644 .agents/skills/impeccable/reference/heuristics-scoring.md delete mode 100644 .agents/skills/impeccable/reference/motion-design.md delete mode 100644 .agents/skills/impeccable/reference/personas.md delete mode 100644 .agents/skills/impeccable/reference/responsive-design.md delete mode 100644 .agents/skills/impeccable/reference/spatial-design.md delete mode 100644 .agents/skills/impeccable/reference/typography.md delete mode 100644 .agents/skills/impeccable/reference/ux-writing.md create mode 100644 .agents/skills/impeccable/scripts/context.mjs delete mode 100644 .agents/skills/impeccable/scripts/load-context.mjs delete mode 100644 .claude/skills/impeccable/reference/cognitive-load.md delete mode 100644 .claude/skills/impeccable/reference/color-and-contrast.md delete mode 100644 .claude/skills/impeccable/reference/heuristics-scoring.md delete mode 100644 .claude/skills/impeccable/reference/motion-design.md delete mode 100644 .claude/skills/impeccable/reference/personas.md delete mode 100644 .claude/skills/impeccable/reference/responsive-design.md delete mode 100644 .claude/skills/impeccable/reference/spatial-design.md delete mode 100644 .claude/skills/impeccable/reference/typography.md delete mode 100644 .claude/skills/impeccable/reference/ux-writing.md create mode 100644 .claude/skills/impeccable/scripts/context.mjs delete mode 100644 .claude/skills/impeccable/scripts/load-context.mjs delete mode 100644 .cursor/skills/impeccable/reference/cognitive-load.md delete mode 100644 .cursor/skills/impeccable/reference/color-and-contrast.md delete mode 100644 .cursor/skills/impeccable/reference/heuristics-scoring.md delete mode 100644 .cursor/skills/impeccable/reference/motion-design.md delete mode 100644 .cursor/skills/impeccable/reference/personas.md delete mode 100644 .cursor/skills/impeccable/reference/responsive-design.md delete mode 100644 .cursor/skills/impeccable/reference/spatial-design.md delete mode 100644 .cursor/skills/impeccable/reference/typography.md delete mode 100644 .cursor/skills/impeccable/reference/ux-writing.md create mode 100644 .cursor/skills/impeccable/scripts/context.mjs delete mode 100644 .cursor/skills/impeccable/scripts/load-context.mjs delete mode 100644 .gemini/skills/impeccable/reference/cognitive-load.md delete mode 100644 .gemini/skills/impeccable/reference/color-and-contrast.md delete mode 100644 .gemini/skills/impeccable/reference/heuristics-scoring.md delete mode 100644 .gemini/skills/impeccable/reference/motion-design.md delete mode 100644 .gemini/skills/impeccable/reference/personas.md delete mode 100644 .gemini/skills/impeccable/reference/responsive-design.md delete mode 100644 .gemini/skills/impeccable/reference/spatial-design.md delete mode 100644 .gemini/skills/impeccable/reference/typography.md delete mode 100644 .gemini/skills/impeccable/reference/ux-writing.md create mode 100644 .gemini/skills/impeccable/scripts/context.mjs delete mode 100644 .gemini/skills/impeccable/scripts/load-context.mjs delete mode 100644 .github/skills/impeccable/reference/cognitive-load.md delete mode 100644 .github/skills/impeccable/reference/color-and-contrast.md delete mode 100644 .github/skills/impeccable/reference/heuristics-scoring.md delete mode 100644 .github/skills/impeccable/reference/motion-design.md delete mode 100644 .github/skills/impeccable/reference/personas.md delete mode 100644 .github/skills/impeccable/reference/responsive-design.md delete mode 100644 .github/skills/impeccable/reference/spatial-design.md delete mode 100644 .github/skills/impeccable/reference/typography.md delete mode 100644 .github/skills/impeccable/reference/ux-writing.md create mode 100644 .github/skills/impeccable/scripts/context.mjs delete mode 100644 .github/skills/impeccable/scripts/load-context.mjs delete mode 100644 .kiro/skills/impeccable/reference/cognitive-load.md delete mode 100644 .kiro/skills/impeccable/reference/color-and-contrast.md delete mode 100644 .kiro/skills/impeccable/reference/heuristics-scoring.md delete mode 100644 .kiro/skills/impeccable/reference/motion-design.md delete mode 100644 .kiro/skills/impeccable/reference/personas.md delete mode 100644 .kiro/skills/impeccable/reference/responsive-design.md delete mode 100644 .kiro/skills/impeccable/reference/spatial-design.md delete mode 100644 .kiro/skills/impeccable/reference/typography.md delete mode 100644 .kiro/skills/impeccable/reference/ux-writing.md create mode 100644 .kiro/skills/impeccable/scripts/context.mjs delete mode 100644 .kiro/skills/impeccable/scripts/load-context.mjs delete mode 100644 .opencode/skills/impeccable/reference/cognitive-load.md delete mode 100644 .opencode/skills/impeccable/reference/color-and-contrast.md delete mode 100644 .opencode/skills/impeccable/reference/heuristics-scoring.md delete mode 100644 .opencode/skills/impeccable/reference/motion-design.md delete mode 100644 .opencode/skills/impeccable/reference/personas.md delete mode 100644 .opencode/skills/impeccable/reference/responsive-design.md delete mode 100644 .opencode/skills/impeccable/reference/spatial-design.md delete mode 100644 .opencode/skills/impeccable/reference/typography.md delete mode 100644 .opencode/skills/impeccable/reference/ux-writing.md create mode 100644 .opencode/skills/impeccable/scripts/context.mjs delete mode 100644 .opencode/skills/impeccable/scripts/load-context.mjs delete mode 100644 .pi/skills/impeccable/reference/cognitive-load.md delete mode 100644 .pi/skills/impeccable/reference/color-and-contrast.md delete mode 100644 .pi/skills/impeccable/reference/heuristics-scoring.md delete mode 100644 .pi/skills/impeccable/reference/motion-design.md delete mode 100644 .pi/skills/impeccable/reference/personas.md delete mode 100644 .pi/skills/impeccable/reference/responsive-design.md delete mode 100644 .pi/skills/impeccable/reference/spatial-design.md delete mode 100644 .pi/skills/impeccable/reference/typography.md delete mode 100644 .pi/skills/impeccable/reference/ux-writing.md create mode 100644 .pi/skills/impeccable/scripts/context.mjs delete mode 100644 .pi/skills/impeccable/scripts/load-context.mjs delete mode 100644 .qoder/skills/impeccable/reference/cognitive-load.md delete mode 100644 .qoder/skills/impeccable/reference/color-and-contrast.md delete mode 100644 .qoder/skills/impeccable/reference/heuristics-scoring.md delete mode 100644 .qoder/skills/impeccable/reference/motion-design.md delete mode 100644 .qoder/skills/impeccable/reference/personas.md delete mode 100644 .qoder/skills/impeccable/reference/responsive-design.md delete mode 100644 .qoder/skills/impeccable/reference/spatial-design.md delete mode 100644 .qoder/skills/impeccable/reference/typography.md delete mode 100644 .qoder/skills/impeccable/reference/ux-writing.md create mode 100644 .qoder/skills/impeccable/scripts/context.mjs delete mode 100644 .qoder/skills/impeccable/scripts/load-context.mjs delete mode 100644 .rovodev/skills/impeccable/reference/cognitive-load.md delete mode 100644 .rovodev/skills/impeccable/reference/color-and-contrast.md delete mode 100644 .rovodev/skills/impeccable/reference/heuristics-scoring.md delete mode 100644 .rovodev/skills/impeccable/reference/motion-design.md delete mode 100644 .rovodev/skills/impeccable/reference/personas.md delete mode 100644 .rovodev/skills/impeccable/reference/responsive-design.md delete mode 100644 .rovodev/skills/impeccable/reference/spatial-design.md delete mode 100644 .rovodev/skills/impeccable/reference/typography.md delete mode 100644 .rovodev/skills/impeccable/reference/ux-writing.md create mode 100644 .rovodev/skills/impeccable/scripts/context.mjs delete mode 100644 .rovodev/skills/impeccable/scripts/load-context.mjs delete mode 100644 .trae-cn/skills/impeccable/reference/cognitive-load.md delete mode 100644 .trae-cn/skills/impeccable/reference/color-and-contrast.md delete mode 100644 .trae-cn/skills/impeccable/reference/heuristics-scoring.md delete mode 100644 .trae-cn/skills/impeccable/reference/motion-design.md delete mode 100644 .trae-cn/skills/impeccable/reference/personas.md delete mode 100644 .trae-cn/skills/impeccable/reference/responsive-design.md delete mode 100644 .trae-cn/skills/impeccable/reference/spatial-design.md delete mode 100644 .trae-cn/skills/impeccable/reference/typography.md delete mode 100644 .trae-cn/skills/impeccable/reference/ux-writing.md create mode 100644 .trae-cn/skills/impeccable/scripts/context.mjs delete mode 100644 .trae-cn/skills/impeccable/scripts/load-context.mjs delete mode 100644 .trae/skills/impeccable/reference/cognitive-load.md delete mode 100644 .trae/skills/impeccable/reference/color-and-contrast.md delete mode 100644 .trae/skills/impeccable/reference/heuristics-scoring.md delete mode 100644 .trae/skills/impeccable/reference/motion-design.md delete mode 100644 .trae/skills/impeccable/reference/personas.md delete mode 100644 .trae/skills/impeccable/reference/responsive-design.md delete mode 100644 .trae/skills/impeccable/reference/spatial-design.md delete mode 100644 .trae/skills/impeccable/reference/typography.md delete mode 100644 .trae/skills/impeccable/reference/ux-writing.md create mode 100644 .trae/skills/impeccable/scripts/context.mjs delete mode 100644 .trae/skills/impeccable/scripts/load-context.mjs delete mode 100644 plugin/skills/impeccable/reference/cognitive-load.md delete mode 100644 plugin/skills/impeccable/reference/color-and-contrast.md delete mode 100644 plugin/skills/impeccable/reference/heuristics-scoring.md delete mode 100644 plugin/skills/impeccable/reference/motion-design.md delete mode 100644 plugin/skills/impeccable/reference/personas.md delete mode 100644 plugin/skills/impeccable/reference/responsive-design.md delete mode 100644 plugin/skills/impeccable/reference/spatial-design.md delete mode 100644 plugin/skills/impeccable/reference/typography.md delete mode 100644 plugin/skills/impeccable/reference/ux-writing.md create mode 100644 plugin/skills/impeccable/scripts/context.mjs delete mode 100644 plugin/skills/impeccable/scripts/load-context.mjs delete mode 100644 skill/reference/cognitive-load.md delete mode 100644 skill/reference/color-and-contrast.md delete mode 100644 skill/reference/heuristics-scoring.md delete mode 100644 skill/reference/motion-design.md delete mode 100644 skill/reference/personas.md delete mode 100644 skill/reference/responsive-design.md delete mode 100644 skill/reference/spatial-design.md delete mode 100644 skill/reference/typography.md delete mode 100644 skill/reference/ux-writing.md diff --git a/.agents/skills/impeccable/SKILL.md b/.agents/skills/impeccable/SKILL.md index 8af38df3d..9b7ca8f70 100644 --- a/.agents/skills/impeccable/SKILL.md +++ b/.agents/skills/impeccable/SKILL.md @@ -7,85 +7,87 @@ Designs and iterates production-grade frontend interfaces. Real working code, co ## Setup -Before any design work or file edits: +You MUST do these steps before proceeding: -1. Load context (PRODUCT.md / DESIGN.md) via the loader script. -2. Identify the register and load the matching register reference (brand.md or product.md). -3. **If the user invoked a sub-command (e.g. `craft`, `shape`, `audit`), load its reference file too.** This is non-negotiable: `craft` without `craft.md` loaded means you'll skip the shape-and-confirm step the user expects. +1. Run `node .agents/skills/impeccable/scripts/context.mjs` once per session. If you've already seen its output in this conversation, do not re-run it. The script either prints the project's PRODUCT.md (and DESIGN.md when present) as a markdown block, or tells you it's missing. Follow whatever it prints. **If it reports `NO_PRODUCT_MD`, stop and follow `reference/teach.md` before doing anything else.** +2. Familiarize yourself with any existing design system, conventions, and components in the code. Don't reinvent the wheel; use what's there when it works, branch out when the UX wins. +3. Read the matching register reference. **This is non-optional; skipping it produces generic output.** If the project is marketing, a landing page, a campaign, long-form content, or a portfolio (design IS the product), read `reference/brand.md`. If it is app UI, admin, a dashboard, or a tool (design SERVES the product), read `reference/product.md`. Pick by first match: (1) task cue ("landing page" vs "dashboard"); (2) surface in focus (the page, file, or route being worked on); (3) `register` field in PRODUCT.md. +4. If the user invoked a sub-command (`craft`, `shape`, `audit`, ...), load its reference too. -Skipping these produces generic output that ignores the project. +## Design guidance -### 1. Context gathering +Produce ready-to-ship, production-grade code, not prototypes or starting points. Take no shortcuts unless the user asks for them (when in doubt, ask). Don't stop until arriving at a complete implementation (beautiful, responsive, fast, precise, bug-free, on brand). You take attention to detail seriously: every page, section or component crafted is battle tested using the tools available to you (browser screenshotting, computer use, etc). GPT is capable of extraordinary work. Don't hold back. -Two files, case-insensitive. The loader looks at the project root by default and falls back to `.agents/context/` and `docs/` if the root is clean. Override with `IMPECCABLE_CONTEXT_DIR=path/to/dir` (absolute or relative to cwd). +### General rules -- **PRODUCT.md**: required. Users, brand, tone, anti-references, strategic principles. -- **DESIGN.md**: optional, strongly recommended. Colors, typography, elevation, components. +#### Color -Load both in one call: +- **Verify contrast.** Body text must hit ≥4.5:1 against its background; large text (≥18px or bold ≥14px) needs ≥3:1. Placeholder text needs the same 4.5:1, not the muted-gray default. The most common failure: muted gray body text on a tinted near-white. If the contrast is even close, bump the body color toward the ink end of the ramp; light gray "for elegance" is the single biggest reason AI designs feel hard to read. +- Gray text on a colored background looks washed out. Use a darker shade of the background's own hue, or a transparency of the text color. -```bash -node .agents/skills/impeccable/scripts/load-context.mjs -``` +#### Typography -Consume the full JSON output. Never pipe through `head`, `tail`, `grep`, or `jq`. The output's `contextDir` field tells you where the files were resolved from. +- Cap body line length at 65–75ch. +- Hierarchy through scale + weight contrast (≥1.25 ratio between steps). Avoid flat scales. +- Cap font-family count at 3 (display + body + optional mono). More than 3 reads as indecision, not richness. One well-tuned family with weight contrast usually beats three competing typefaces. +- Don't pair fonts that are similar but not identical (two geometric sans-serifs, two humanist sans-serifs). Pair on a contrast axis (serif + sans, geometric + humanist) or use one family in multiple weights. +- No all-caps body copy. Reserve uppercase for short labels (≤4 words), section eyebrows (used sparingly per the Absolute bans), and badges. Sentences in ALL CAPS are unreadable at body sizes. +- Hero / display heading ceiling: clamp() max ≤ 6rem (~96px). Above that the page is shouting, not designing. +- Display heading letter-spacing floor: ≥ -0.04em. Anything tighter and letters touch; cramped, not "designed". +- Use `text-wrap: balance` on h1–h3 for even line lengths; `text-wrap: pretty` on long prose to reduce orphans. +- Use `font-variant-numeric: tabular-nums` on data tables, totals, and any column of aligned numbers. -If the output is already in this session's conversation history, don't re-run. Exceptions requiring a fresh load: you just ran `$impeccable teach` or `$impeccable document` (they rewrite the files), or the user manually edited one. +Two hard typographic ceilings you currently miss: +- Hero clamp() max ≤ 6rem. 8–11rem (128–176px) reads as comically loud, not bold. +- Display letter-spacing ≥ -0.04em. Your default of -0.05 to -0.085em on display H1s makes the letters touch and reads as cramped. -0.02 to -0.03em is plenty for tight grotesque display; -0.04em is the floor. -`$impeccable live` already warms context via `live.mjs`. If you've run `live.mjs`, don't also run `load-context.mjs` this session. +#### Layout -If PRODUCT.md is missing, empty, or placeholder (`[TODO]` markers, <200 chars): run `$impeccable teach`, then resume the user's original task with the fresh context. If the original task was `$impeccable craft`, resume into `$impeccable shape` before any implementation work. +- Vary spacing for rhythm. +- Don't default to centering everything. Left-aligned with asymmetric layout reads as designed; centered icon-title-subtitle stacks read as template. +- Cards are the lazy answer. Use them only when they're truly the best affordance. Nested cards are always wrong. +- Don't wrap everything in a container. Most things don't need one. +- Flexbox for 1D, Grid for 2D. Don't default to Grid when `flex-wrap` would be simpler. +- For responsive grids without breakpoints: `repeat(auto-fit, minmax(280px, 1fr))`. +- Build a semantic z-index scale (dropdown → sticky → modal-backdrop → modal → toast → tooltip). Never arbitrary values like 999 or 9999. -If DESIGN.md is missing: nudge once per session (*"Run `$impeccable document` for more on-brand output"*), then proceed. +#### Motion +- Motion should be intentional, and not be an afterthought. consider it as part of the build. +- Don't animate CSS layout properties unless truly needed. +- Ease out with exponential curves (ease-out-quart / quint / expo). No bounce, no elastic. +- Use libraries for more advanced motion needs (e.g. motion, gsap, anime.js, lenis etc) +- Reduced motion is not optional. Every animation needs a `@media (prefers-reduced-motion: reduce)` alternative: typically a crossfade or instant transition. +- Sibling stagger on a list (cards, list items) is legitimate. Whole-section fade-on-scroll on every scrolled section is not a list; it's the saturated AI motion reflex. +- Premium motion materials are not just transform/opacity. Blur, backdrop-filter, clip-path, mask, and shadow/glow are part of the palette when they materially improve the effect and stay smooth. -### 2. Register +#### Interaction -Every design task is **brand** (marketing, landing, campaign, long-form content, portfolio: design IS the product) or **product** (app UI, admin, dashboard, tool: design SERVES the product). +- Never `outline: none` without a replacement. Use `:focus-visible` to show focus rings only for keyboard users; never strip focus indicators unconditionally. +- Placeholders aren't labels. Always use a visible `