waypoint-skills 1.3.0

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 (132) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +348 -0
  3. package/README.npm.md +56 -0
  4. package/cli/bin/cli.js +127 -0
  5. package/cli/bin/lib/paths.mjs +31 -0
  6. package/cli/bin/postinstall.mjs +25 -0
  7. package/manifest.json +107 -0
  8. package/package.json +44 -0
  9. package/packages/agents/inspiration-scout.md +105 -0
  10. package/packages/agents/orchestrator.md +186 -0
  11. package/packages/agents/scrutiny-validator.md +136 -0
  12. package/packages/agents/user-testing-validator.md +171 -0
  13. package/packages/agents/validator.md +102 -0
  14. package/packages/agents/worker.md +116 -0
  15. package/packages/agents/wp-router.md +69 -0
  16. package/packages/hooks/hooks.json.example +12 -0
  17. package/packages/hooks/templates/mission-worktree-bootstrap.sh +88 -0
  18. package/packages/hooks/templates/run-assertions.sh +48 -0
  19. package/packages/rules/adversarial-context-isolation.mdc +57 -0
  20. package/packages/rules/serial-git-enforcement.mdc +77 -0
  21. package/packages/skills/caveman/SKILL.md +78 -0
  22. package/packages/skills/design-taste-frontend/SKILL.md +1206 -0
  23. package/packages/skills/gpt-taste/SKILL.md +74 -0
  24. package/packages/skills/impeccable/SKILL.md +164 -0
  25. package/packages/skills/impeccable/reference/adapt.md +311 -0
  26. package/packages/skills/impeccable/reference/animate.md +201 -0
  27. package/packages/skills/impeccable/reference/audit.md +133 -0
  28. package/packages/skills/impeccable/reference/bolder.md +120 -0
  29. package/packages/skills/impeccable/reference/brand.md +108 -0
  30. package/packages/skills/impeccable/reference/clarify.md +288 -0
  31. package/packages/skills/impeccable/reference/codex.md +105 -0
  32. package/packages/skills/impeccable/reference/colorize.md +257 -0
  33. package/packages/skills/impeccable/reference/craft.md +123 -0
  34. package/packages/skills/impeccable/reference/critique.md +780 -0
  35. package/packages/skills/impeccable/reference/delight.md +302 -0
  36. package/packages/skills/impeccable/reference/distill.md +111 -0
  37. package/packages/skills/impeccable/reference/document.md +429 -0
  38. package/packages/skills/impeccable/reference/extract.md +69 -0
  39. package/packages/skills/impeccable/reference/harden.md +347 -0
  40. package/packages/skills/impeccable/reference/hooks.md +90 -0
  41. package/packages/skills/impeccable/reference/init.md +172 -0
  42. package/packages/skills/impeccable/reference/interaction-design.md +189 -0
  43. package/packages/skills/impeccable/reference/layout.md +161 -0
  44. package/packages/skills/impeccable/reference/live.md +718 -0
  45. package/packages/skills/impeccable/reference/onboard.md +234 -0
  46. package/packages/skills/impeccable/reference/optimize.md +258 -0
  47. package/packages/skills/impeccable/reference/overdrive.md +130 -0
  48. package/packages/skills/impeccable/reference/polish.md +241 -0
  49. package/packages/skills/impeccable/reference/product.md +60 -0
  50. package/packages/skills/impeccable/reference/quieter.md +99 -0
  51. package/packages/skills/impeccable/reference/shape.md +165 -0
  52. package/packages/skills/impeccable/reference/typeset.md +279 -0
  53. package/packages/skills/impeccable/scripts/command-metadata.json +94 -0
  54. package/packages/skills/impeccable/scripts/context-signals.mjs +225 -0
  55. package/packages/skills/impeccable/scripts/context.mjs +961 -0
  56. package/packages/skills/impeccable/scripts/critique-storage.mjs +242 -0
  57. package/packages/skills/impeccable/scripts/detect-csp.mjs +198 -0
  58. package/packages/skills/impeccable/scripts/detect.mjs +21 -0
  59. package/packages/skills/impeccable/scripts/detector/browser/injected/index.mjs +1937 -0
  60. package/packages/skills/impeccable/scripts/detector/cli/main.mjs +290 -0
  61. package/packages/skills/impeccable/scripts/detector/design-system.mjs +750 -0
  62. package/packages/skills/impeccable/scripts/detector/detect-antipatterns-browser.js +5185 -0
  63. package/packages/skills/impeccable/scripts/detector/detect-antipatterns.mjs +50 -0
  64. package/packages/skills/impeccable/scripts/detector/engines/browser/detect-url.mjs +277 -0
  65. package/packages/skills/impeccable/scripts/detector/engines/regex/detect-text.mjs +568 -0
  66. package/packages/skills/impeccable/scripts/detector/engines/static-html/css-cascade.mjs +1015 -0
  67. package/packages/skills/impeccable/scripts/detector/engines/static-html/detect-html.mjs +234 -0
  68. package/packages/skills/impeccable/scripts/detector/engines/visual/screenshot-contrast.mjs +189 -0
  69. package/packages/skills/impeccable/scripts/detector/findings.mjs +12 -0
  70. package/packages/skills/impeccable/scripts/detector/node/file-system.mjs +198 -0
  71. package/packages/skills/impeccable/scripts/detector/profile/profiler.mjs +166 -0
  72. package/packages/skills/impeccable/scripts/detector/registry/antipatterns.mjs +459 -0
  73. package/packages/skills/impeccable/scripts/detector/rules/checks.mjs +2707 -0
  74. package/packages/skills/impeccable/scripts/detector/shared/color.mjs +124 -0
  75. package/packages/skills/impeccable/scripts/detector/shared/constants.mjs +101 -0
  76. package/packages/skills/impeccable/scripts/detector/shared/inline-ignores.mjs +148 -0
  77. package/packages/skills/impeccable/scripts/detector/shared/page.mjs +7 -0
  78. package/packages/skills/impeccable/scripts/hook-admin.mjs +660 -0
  79. package/packages/skills/impeccable/scripts/hook-before-edit.mjs +476 -0
  80. package/packages/skills/impeccable/scripts/hook-lib.mjs +1632 -0
  81. package/packages/skills/impeccable/scripts/hook.mjs +61 -0
  82. package/packages/skills/impeccable/scripts/lib/design-parser.mjs +842 -0
  83. package/packages/skills/impeccable/scripts/lib/impeccable-config.mjs +638 -0
  84. package/packages/skills/impeccable/scripts/lib/impeccable-paths.mjs +128 -0
  85. package/packages/skills/impeccable/scripts/lib/is-generated.mjs +69 -0
  86. package/packages/skills/impeccable/scripts/lib/target-args.mjs +42 -0
  87. package/packages/skills/impeccable/scripts/live/browser-script-parts.mjs +49 -0
  88. package/packages/skills/impeccable/scripts/live/completion.mjs +19 -0
  89. package/packages/skills/impeccable/scripts/live/event-validation.mjs +137 -0
  90. package/packages/skills/impeccable/scripts/live/insert-ui.mjs +458 -0
  91. package/packages/skills/impeccable/scripts/live/manual-apply.mjs +939 -0
  92. package/packages/skills/impeccable/scripts/live/manual-edit-routes.mjs +357 -0
  93. package/packages/skills/impeccable/scripts/live/manual-edits-buffer.mjs +152 -0
  94. package/packages/skills/impeccable/scripts/live/session-store.mjs +289 -0
  95. package/packages/skills/impeccable/scripts/live/svelte-component.mjs +826 -0
  96. package/packages/skills/impeccable/scripts/live/sveltekit-adapter.mjs +274 -0
  97. package/packages/skills/impeccable/scripts/live/ui-core.mjs +180 -0
  98. package/packages/skills/impeccable/scripts/live/vocabulary.mjs +36 -0
  99. package/packages/skills/impeccable/scripts/live-accept.mjs +812 -0
  100. package/packages/skills/impeccable/scripts/live-browser-dom.js +146 -0
  101. package/packages/skills/impeccable/scripts/live-browser-session.js +123 -0
  102. package/packages/skills/impeccable/scripts/live-browser.js +11173 -0
  103. package/packages/skills/impeccable/scripts/live-commit-manual-edits.mjs +1241 -0
  104. package/packages/skills/impeccable/scripts/live-complete.mjs +75 -0
  105. package/packages/skills/impeccable/scripts/live-copy-edit-agent.mjs +683 -0
  106. package/packages/skills/impeccable/scripts/live-discard-manual-edits.mjs +51 -0
  107. package/packages/skills/impeccable/scripts/live-inject.mjs +583 -0
  108. package/packages/skills/impeccable/scripts/live-insert.mjs +272 -0
  109. package/packages/skills/impeccable/scripts/live-manual-edit-evidence.mjs +363 -0
  110. package/packages/skills/impeccable/scripts/live-poll.mjs +384 -0
  111. package/packages/skills/impeccable/scripts/live-resume.mjs +94 -0
  112. package/packages/skills/impeccable/scripts/live-server.mjs +1135 -0
  113. package/packages/skills/impeccable/scripts/live-status.mjs +61 -0
  114. package/packages/skills/impeccable/scripts/live-target.mjs +30 -0
  115. package/packages/skills/impeccable/scripts/live-wrap.mjs +894 -0
  116. package/packages/skills/impeccable/scripts/live.mjs +297 -0
  117. package/packages/skills/impeccable/scripts/modern-screenshot.umd.js +14 -0
  118. package/packages/skills/impeccable/scripts/palette.mjs +633 -0
  119. package/packages/skills/impeccable/scripts/pin.mjs +214 -0
  120. package/packages/skills/ponytail/SKILL.md +117 -0
  121. package/packages/skills/stitch-design-taste/DESIGN.md +121 -0
  122. package/packages/skills/stitch-design-taste/SKILL.md +184 -0
  123. package/packages/skills/waypoint/SKILL.md +67 -0
  124. package/packages/skills/wp/SKILL.md +330 -0
  125. package/packages/skills/wp/caveman-wire.md +148 -0
  126. package/packages/skills/wp/reference.md +411 -0
  127. package/scripts/detect-platform.sh +32 -0
  128. package/scripts/install.sh +123 -0
  129. package/scripts/lib/common.sh +215 -0
  130. package/scripts/sync-skills.sh +21 -0
  131. package/scripts/uninstall.sh +38 -0
  132. package/scripts/waypoint +281 -0
@@ -0,0 +1,201 @@
1
+ > **Additional context needed**: performance constraints.
2
+
3
+ Add motion that conveys state, gives feedback, and clarifies hierarchy. Cut motion that exists only for decoration. Animation fatigue is a real cost; spend the budget on the moments that need it.
4
+
5
+ ---
6
+
7
+ ## Register
8
+
9
+ Brand: motion is part of the voice; one well-rehearsed entrance beats scattered micro-interactions. The saturated AI default is fade-and-rise reveals on every scrolled section; that's a tell, not a choreography. Reserve scroll-triggered motion for moments that earn it.
10
+
11
+ Product: 150–250 ms on most transitions. Motion conveys state: feedback, reveal, loading, transitions between views. No page-load choreography; users are in a task and won't wait for it.
12
+
13
+ ---
14
+
15
+ ## Assess Animation Opportunities
16
+
17
+ Analyze where motion would improve the experience:
18
+
19
+ 1. **Identify static areas**:
20
+ - **Missing feedback**: Actions without visual acknowledgment (button clicks, form submission, etc.)
21
+ - **Jarring transitions**: Instant state changes that feel abrupt (show/hide, page loads, route changes)
22
+ - **Unclear relationships**: Spatial or hierarchical relationships that aren't obvious
23
+ - **Lack of delight**: Functional but joyless interactions
24
+ - **Missed guidance**: Opportunities to direct attention or explain behavior
25
+
26
+ 2. **Understand the context**:
27
+ - What's the personality? (Playful vs serious, energetic vs calm)
28
+ - What's the performance budget? (Mobile-first? Complex page?)
29
+ - Who's the audience? (Motion-sensitive users? Power users who want speed?)
30
+ - What matters most? (One hero animation vs many micro-interactions?)
31
+
32
+ If any of these are unclear from the codebase, ask the user directly to clarify what you cannot infer.
33
+
34
+ **CRITICAL**: Respect `prefers-reduced-motion`. Always provide non-animated alternatives for users who need them.
35
+
36
+ ## Plan Animation Strategy
37
+
38
+ Create a purposeful animation plan:
39
+
40
+ - **Hero moment**: What's the ONE signature animation? (Page load? Hero section? Key interaction?)
41
+ - **Feedback layer**: Which interactions need acknowledgment?
42
+ - **Transition layer**: Which state changes need smoothing?
43
+ - **Delight layer**: Where can we surprise and delight?
44
+
45
+ **IMPORTANT**: One well-orchestrated experience beats scattered animations everywhere. Focus on high-impact moments.
46
+
47
+ ## Implement Animations
48
+
49
+ Add motion systematically across these categories:
50
+
51
+ ### Entrance Animations
52
+ - **Hero section**: Dramatic entrance for primary content (scale, parallax, or creative effects)
53
+ - **Modal/drawer entry**: Smooth slide + fade, backdrop fade, focus management
54
+ - **List rhythm**: Sibling stagger is legitimate for cards-in-a-grid or list-items-appearing. Whole-section fade-on-scroll is not a list and is not legitimate. Cap total stagger time: 10 items at 50ms each = 500ms total. For more items, reduce per-item delay or cap the staggered count.
55
+
56
+ Use CSS custom properties for clean stagger: `animation-delay: calc(var(--i, 0) * 50ms)` with `style="--i: 0"`, `style="--i: 1"`, etc. on each item.
57
+
58
+ ### Micro-interactions
59
+ - **Button feedback**:
60
+ - Hover: Subtle scale (1.02-1.05), color shift, shadow increase
61
+ - Click: Quick scale down then up (0.95 → 1), ripple effect
62
+ - Loading: Spinner or pulse state
63
+ - **Form interactions**:
64
+ - Input focus: Border color transition, slight scale or glow
65
+ - Validation: Shake on error, check mark on success, smooth color transitions
66
+ - **Toggle switches**: Smooth slide + color transition (200-300ms)
67
+ - **Checkboxes/radio**: Check mark animation, ripple effect
68
+ - **Like/favorite**: Scale + rotation, particle effects, color transition
69
+
70
+ ### State Transitions
71
+ - **Show/hide**: Fade + slide (not instant), appropriate timing (200-300ms)
72
+ - **Expand/collapse**: Height transition with overflow handling, icon rotation
73
+ - **Loading states**: Skeleton screen fades, spinner animations, progress bars
74
+ - **Success/error**: Color transitions, icon animations, gentle scale pulse
75
+ - **Enable/disable**: Opacity transitions, cursor changes
76
+
77
+ ### Navigation & Flow
78
+ - **Page transitions**: Crossfade between routes, shared element transitions
79
+ - **Tab switching**: Slide indicator, content fade/slide
80
+ - **Carousel/slider**: Smooth transforms, snap points, momentum
81
+ - **Scroll effects**: Parallax layers, sticky headers with state changes, scroll progress indicators
82
+
83
+ ### Feedback & Guidance
84
+ - **Hover hints**: Tooltip fade-ins, cursor changes, element highlights
85
+ - **Drag & drop**: Lift effect (shadow + scale), drop zone highlights, smooth repositioning
86
+ - **Copy/paste**: Brief highlight flash on paste, "copied" confirmation
87
+ - **Focus flow**: Highlight path through form or workflow
88
+
89
+ ### Delight Moments
90
+ - **Empty states**: Subtle floating animations on illustrations
91
+ - **Completed actions**: Confetti, check mark flourish, success celebrations
92
+ - **Easter eggs**: Hidden interactions for discovery
93
+ - **Contextual animation**: Weather effects, time-of-day themes, seasonal touches
94
+
95
+ ## Technical Implementation
96
+
97
+ Use appropriate techniques for each animation:
98
+
99
+ ### Timing & Easing
100
+
101
+ **Duration: the 100/300/500 rule.** Timing matters more than easing for "feels right":
102
+
103
+ | Duration | Use Case | Examples |
104
+ |----------|----------|----------|
105
+ | **100–150ms** | Instant feedback | Button press, toggle, color change |
106
+ | **200–300ms** | State changes | Menu open, tooltip, hover state |
107
+ | **300–500ms** | Layout changes | Accordion, modal, drawer |
108
+ | **500–800ms** | Entrance animations | Page load, hero reveal |
109
+
110
+ **Easing curves (use these, not CSS defaults):**
111
+ ```css
112
+ /* Recommended: natural deceleration */
113
+ --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1); /* Smooth */
114
+ --ease-out-quint: cubic-bezier(0.22, 1, 0.36, 1); /* Slightly snappier */
115
+ --ease-out-expo: cubic-bezier(0.16, 1, 0.3, 1); /* Confident, decisive */
116
+
117
+ /* AVOID: feel dated and tacky */
118
+ /* bounce: cubic-bezier(0.34, 1.56, 0.64, 1); */
119
+ /* elastic: cubic-bezier(0.68, -0.6, 0.32, 1.6); */
120
+ ```
121
+
122
+ **Exit animations are faster than entrances.** Use ~75% of enter duration.
123
+
124
+ ### CSS Animations
125
+ ```css
126
+ /* Prefer for simple, declarative animations */
127
+ - transitions for state changes
128
+ - @keyframes for complex sequences
129
+ - transform and opacity for reliable movement
130
+ - blur, filters, masks, clip paths, shadows, and color shifts for premium atmospheric effects when verified smooth
131
+ ```
132
+
133
+ ### JavaScript Animation
134
+ ```javascript
135
+ /* Use for complex, interactive animations */
136
+ - Web Animations API for programmatic control
137
+ - Framer Motion for React
138
+ - GSAP for complex sequences
139
+ ```
140
+
141
+ ### Motion Materials
142
+
143
+ Transform and opacity are reliable defaults, not the whole palette. Premium interfaces often need atmospheric properties. Match material to effect:
144
+
145
+ - **Transform / opacity**: movement, press feedback, simple reveals, list choreography
146
+ - **Blur / filter / backdrop-filter**: focus pulls, depth, glass or lens effects, softened entrances
147
+ - **Clip-path / masks**: wipes, reveals, editorial cropping, product-like transitions
148
+ - **Shadow / glow / color filters**: energy, affordance, focus, warmth, active state
149
+ - **Grid-template-rows or FLIP-style transforms**: expanding and reflowing layout without animating `height` directly
150
+
151
+ The hard rule isn't "transform and opacity only." It's: avoid animating layout-driving properties casually (`width`, `height`, `top`, `left`, margins), keep expensive effects bounded to small or isolated areas, and verify smoothness in-browser on target viewports.
152
+
153
+ ### Performance
154
+ - **Layout safety**: Avoid casual animation of layout-driving properties (`width`, `height`, `top`, `left`, margins)
155
+ - **will-change**: Add sparingly for known expensive animations only (e.g. on `:hover` or an `.animating` class), never preemptively across the whole page
156
+ - **Scroll triggers**: Use Intersection Observer instead of scroll event listeners; unobserve after the animation fires once
157
+ - **Bound expensive effects**: Keep blur/filter/shadow areas small or isolated, use `contain` where appropriate
158
+ - **Monitor FPS**: Ensure 60fps on target devices
159
+
160
+ ### Perceived Performance
161
+
162
+ Nobody cares how fast your site *is*, only how fast it feels. The 80ms threshold: anything under ~80ms feels instant because our brains buffer sensory input for that long to synchronize perception. Target this for micro-interactions.
163
+
164
+ - **Preemptive start**: Begin transitions immediately while loading (iOS app zoom, skeleton UI). Users perceive work happening.
165
+ - **Early completion**: Show content progressively, don't wait for everything (progressive images, streaming HTML, skeleton fade-ins).
166
+ - **Optimistic UI**: Update the interface immediately, handle failures gracefully. Use for low-stakes actions (likes, follows). Avoid for payments or destructive operations.
167
+ - **Easing affects perceived duration**: Ease-in (accelerating toward completion) makes tasks feel shorter because the peak-end effect weights final moments heavily. Ease-out feels satisfying for entrances.
168
+ - **Caution**: Too-fast responses can decrease perceived value for complex operations (search, analysis). Sometimes a brief delay signals "real work" is happening.
169
+
170
+ ### Accessibility
171
+ ```css
172
+ @media (prefers-reduced-motion: reduce) {
173
+ * {
174
+ animation-duration: 0.01ms !important;
175
+ animation-iteration-count: 1 !important;
176
+ transition-duration: 0.01ms !important;
177
+ }
178
+ }
179
+ ```
180
+
181
+ **NEVER**:
182
+ - Use bounce or elastic easing curves; they feel dated and draw attention to the animation itself
183
+ - Animate layout properties casually (`width`, `height`, `top`, `left`, margins) when transform, FLIP, or grid-based techniques would work
184
+ - Use durations over 500ms for feedback (it feels laggy)
185
+ - Animate without purpose (every animation needs a reason)
186
+ - Ignore `prefers-reduced-motion` (this is an accessibility violation)
187
+ - Animate everything (animation fatigue makes interfaces feel exhausting)
188
+ - Block interaction during animations unless intentional
189
+
190
+ ## Verify Quality
191
+
192
+ Test animations thoroughly:
193
+
194
+ - **Smooth at 60fps**: No jank on target devices
195
+ - **Feels natural**: Easing curves feel organic, not robotic
196
+ - **Appropriate timing**: Not too fast (jarring) or too slow (laggy)
197
+ - **Reduced motion works**: Animations disabled or simplified appropriately
198
+ - **Doesn't block**: Users can interact during/after animations
199
+ - **Adds value**: Makes interface clearer or more delightful
200
+
201
+ When the motion clarifies state instead of decorating it, hand off to `/impeccable polish` for the final pass.
@@ -0,0 +1,133 @@
1
+ Run systematic **technical** quality checks and generate a comprehensive report. Don't fix issues; document them for other commands to address.
2
+
3
+ This is a code-level audit, not a design critique. Check what's measurable and verifiable in the implementation.
4
+
5
+ ## Diagnostic Scan
6
+
7
+ Run comprehensive checks across 5 dimensions. Score each dimension 0-4 using the criteria below.
8
+
9
+ ### 1. Accessibility (A11y)
10
+
11
+ **Check for**:
12
+ - **Contrast issues**: Text contrast ratios < 4.5:1 (or 7:1 for AAA)
13
+ - **Missing ARIA**: Interactive elements without proper roles, labels, or states
14
+ - **Keyboard navigation**: Missing focus indicators, illogical tab order, keyboard traps
15
+ - **Semantic HTML**: Improper heading hierarchy, missing landmarks, divs instead of buttons
16
+ - **Alt text**: Missing or poor image descriptions
17
+ - **Form issues**: Inputs without labels, poor error messaging, missing required indicators
18
+
19
+ **Score 0-4**: 0=Inaccessible (fails WCAG A), 1=Major gaps (few ARIA labels, no keyboard nav), 2=Partial (some a11y effort, significant gaps), 3=Good (WCAG AA mostly met, minor gaps), 4=Excellent (WCAG AA fully met, approaches AAA)
20
+
21
+ ### 2. Performance
22
+
23
+ **Check for**:
24
+ - **Layout thrashing**: Reading/writing layout properties in loops
25
+ - **Expensive animations**: Casual layout-property animation, unbounded blur/filter/shadow effects, or effects that visibly drop frames
26
+ - **Missing optimization**: Images without lazy loading, unoptimized assets, missing will-change
27
+ - **Bundle size**: Unnecessary imports, unused dependencies
28
+ - **Render performance**: Unnecessary re-renders, missing memoization
29
+
30
+ **Score 0-4**: 0=Severe issues (layout thrash, unoptimized everything), 1=Major problems (no lazy loading, expensive animations), 2=Partial (some optimization, gaps remain), 3=Good (mostly optimized, minor improvements possible), 4=Excellent (fast, lean, well-optimized)
31
+
32
+ ### 3. Theming
33
+
34
+ **Check for**:
35
+ - **Hard-coded colors**: Colors not using design tokens
36
+ - **Broken dark mode**: Missing dark mode variants, poor contrast in dark theme
37
+ - **Inconsistent tokens**: Using wrong tokens, mixing token types
38
+ - **Theme switching issues**: Values that don't update on theme change
39
+
40
+ **Score 0-4**: 0=No theming (hard-coded everything), 1=Minimal tokens (mostly hard-coded), 2=Partial (tokens exist but inconsistently used), 3=Good (tokens used, minor hard-coded values), 4=Excellent (full token system, dark mode works perfectly)
41
+
42
+ ### 4. Responsive Design
43
+
44
+ **Check for**:
45
+ - **Fixed widths**: Hard-coded widths that break on mobile
46
+ - **Touch targets**: Interactive elements < 44x44px
47
+ - **Horizontal scroll**: Content overflow on narrow viewports
48
+ - **Text scaling**: Layouts that break when text size increases
49
+ - **Missing breakpoints**: No mobile/tablet variants
50
+
51
+ **Score 0-4**: 0=Desktop-only (breaks on mobile), 1=Major issues (some breakpoints, many failures), 2=Partial (works on mobile, rough edges), 3=Good (responsive, minor touch target or overflow issues), 4=Excellent (fluid, all viewports, proper touch targets)
52
+
53
+ ### 5. Anti-Patterns (CRITICAL)
54
+
55
+ Check against ALL the **DON'T** guidelines from the parent impeccable skill (already loaded in this context). Look for AI slop tells (AI color palette, gradient text, glassmorphism, hero metrics, card grids, generic fonts) and general design anti-patterns (gray on color, nested cards, bounce easing, redundant copy).
56
+
57
+ **Score 0-4**: 0=AI slop gallery (5+ tells), 1=Heavy AI aesthetic (3-4 tells), 2=Some tells (1-2 noticeable), 3=Mostly clean (subtle issues only), 4=No AI tells (distinctive, intentional design)
58
+
59
+ ## Generate Report
60
+
61
+ ### Audit Health Score
62
+
63
+ | # | Dimension | Score | Key Finding |
64
+ |---|-----------|-------|-------------|
65
+ | 1 | Accessibility | ? | [most critical a11y issue or "--"] |
66
+ | 2 | Performance | ? | |
67
+ | 3 | Responsive Design | ? | |
68
+ | 4 | Theming | ? | |
69
+ | 5 | Anti-Patterns | ? | |
70
+ | **Total** | | **??/20** | **[Rating band]** |
71
+
72
+ **Rating bands**: 18-20 Excellent (minor polish), 14-17 Good (address weak dimensions), 10-13 Acceptable (significant work needed), 6-9 Poor (major overhaul), 0-5 Critical (fundamental issues)
73
+
74
+ ### Anti-Patterns Verdict
75
+ **Start here.** Pass/fail: Does this look AI-generated? List specific tells. Be brutally honest.
76
+
77
+ ### Executive Summary
78
+ - Audit Health Score: **??/20** ([rating band])
79
+ - Total issues found (count by severity: P0/P1/P2/P3)
80
+ - Top 3-5 critical issues
81
+ - Recommended next steps
82
+
83
+ ### Detailed Findings by Severity
84
+
85
+ Tag every issue with **P0-P3 severity**:
86
+ - **P0 Blocking**: Prevents task completion. Fix immediately
87
+ - **P1 Major**: Significant difficulty or WCAG AA violation. Fix before release
88
+ - **P2 Minor**: Annoyance, workaround exists. Fix in next pass
89
+ - **P3 Polish**: Nice-to-fix, no real user impact. Fix if time permits
90
+
91
+ For each issue, document:
92
+ - **[P?] Issue name**
93
+ - **Location**: Component, file, line
94
+ - **Category**: Accessibility / Performance / Theming / Responsive / Anti-Pattern
95
+ - **Impact**: How it affects users
96
+ - **WCAG/Standard**: Which standard it violates (if applicable)
97
+ - **Recommendation**: How to fix it
98
+ - **Suggested command**: Which command to use (prefer: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset)
99
+
100
+ ### Patterns & Systemic Issues
101
+
102
+ Identify recurring problems that indicate systemic gaps rather than one-off mistakes:
103
+ - "Hard-coded colors appear in 15+ components, should use design tokens"
104
+ - "Touch targets consistently too small (<44px) throughout mobile experience"
105
+
106
+ ### Positive Findings
107
+
108
+ Note what's working well: good practices to maintain and replicate.
109
+
110
+ ## Recommended Actions
111
+
112
+ List recommended commands in priority order (P0 first, then P1, then P2):
113
+
114
+ 1. **[P?] `/command-name`**: Brief description (specific context from audit findings)
115
+ 2. **[P?] `/command-name`**: Brief description (specific context)
116
+
117
+ **Rules**: Only recommend commands from: /impeccable adapt, /impeccable animate, /impeccable audit, /impeccable bolder, /impeccable clarify, /impeccable colorize, /impeccable critique, /impeccable delight, /impeccable distill, /impeccable document, /impeccable harden, /impeccable layout, /impeccable onboard, /impeccable optimize, /impeccable overdrive, /impeccable polish, /impeccable quieter, /impeccable shape, /impeccable typeset. Map findings to the most appropriate command. End with `/impeccable polish` as the final step if any fixes were recommended.
118
+
119
+ After presenting the summary, tell the user:
120
+
121
+ > You can ask me to run these one at a time, all at once, or in any order you prefer.
122
+ >
123
+ > Re-run `/impeccable audit` after fixes to see your score improve.
124
+
125
+ **IMPORTANT**: Be thorough but actionable. Too many P3 issues creates noise. Focus on what actually matters.
126
+
127
+ **NEVER**:
128
+ - Report issues without explaining impact (why does this matter?)
129
+ - Provide generic recommendations (be specific and actionable)
130
+ - Skip positive findings (celebrate what works)
131
+ - Forget to prioritize (everything can't be P0)
132
+ - Report false positives without verification
133
+
@@ -0,0 +1,120 @@
1
+ When asked for "bolder," AI defaults to the same tired tricks: cyan/purple gradients, glassmorphism, neon accents on dark backgrounds, gradient text on metrics. These are the opposite of bold. Reject them first, then increase visual impact by making the existing design language more decisive, specific, and committed.
2
+
3
+ ---
4
+
5
+ ## Register
6
+
7
+ Brand: "bolder" means distinctive. Express a stronger point of view through hierarchy, pacing, proportion, copy, evidence, and one committed visual idea.
8
+
9
+ Product: "bolder" rarely means theatrics; those undermine trust. It means stronger hierarchy, clearer weight contrast, sharper information density, and more decisive prioritization. The amplification is in clarity, not drama.
10
+
11
+ ---
12
+
13
+ ## Assess Current State
14
+
15
+ Analyze what makes the design feel too safe or boring:
16
+
17
+ 1. **Identify weakness sources**:
18
+ - **Generic choices**: The page could belong to any product in the category.
19
+ - **Timid scale**: Everything is medium-sized with no clear lead.
20
+ - **Low contrast**: Important and supporting elements have similar visual weight.
21
+ - **Static**: The surface has no meaningful moment of emphasis.
22
+ - **Predictable**: The composition follows a default pattern without a point of view.
23
+ - **Flat hierarchy**: Nothing stands out or commands attention.
24
+
25
+ 2. **Understand the context**:
26
+ - What is the brand personality?
27
+ - What is the purpose of this surface?
28
+ - Who is the audience?
29
+ - What design system, tokens, components, and visual conventions already exist?
30
+
31
+ If any of these are unclear from the codebase, ask the user directly to clarify what you cannot infer.
32
+
33
+ **CRITICAL**: "Bolder" does not mean chaotic or garish. It means distinctive, memorable, and confident. Think intentional drama, not random noise.
34
+
35
+ **WARNING - AI SLOP TRAP**: Review ALL the DON'T guidelines from the parent impeccable skill (already loaded in this context) before proceeding. Bold means distinctive, not "more effects."
36
+
37
+ ## Design-System Lock
38
+
39
+ If the project has `DESIGN.md`, tokens, theme variables, or established component styles, treat that system as the boundary. Make the existing language stronger before adding new language.
40
+
41
+ Do not invent new colors, gradients, radii, shadows, fonts, decorative backgrounds, or effects just because the request says "bolder." A bolder pass should usually change emphasis, proportion, rhythm, density, contrast, copy, artifact specificity, and layout relationships while staying inside the documented system.
42
+
43
+ If the existing system is genuinely too limited to express the bolder direction, stop and ask the user before expanding it. Name the exact additions, the role each would play, and why the current system cannot do the job. If the user approves expansion, update the design system or tokens alongside the implementation.
44
+
45
+ ## Plan Amplification
46
+
47
+ Create a strategy to increase impact while maintaining coherence:
48
+
49
+ - **Focal point**: Pick one thing the viewer should remember, then make the rest support it.
50
+ - **System levers**: Identify which existing tokens, components, layout patterns, and copy structures can carry more weight.
51
+ - **Risk budget**: Decide how far the surface can push while still feeling like the same product or brand.
52
+ - **Hierarchy amplification**: Increase contrast between primary, secondary, and tertiary content instead of making every element louder.
53
+
54
+ **IMPORTANT**: Bold design must still be usable. Impact without function is just decoration.
55
+
56
+ ## Amplify the Design
57
+
58
+ Systematically increase impact through intention, not a menu of effects:
59
+
60
+ ### Typography Amplification
61
+ - Strengthen the existing type hierarchy before changing typefaces.
62
+ - Make important text meaningfully more dominant, and make supporting text quieter.
63
+ - Use weight, measure, spacing, and line breaks to sharpen the point of view.
64
+ - Add or replace fonts only after user-approved design-system expansion.
65
+
66
+ ### Color Amplification
67
+ - Use the existing palette more decisively before adding colors.
68
+ - Shift the proportion, placement, and contrast of documented colors to clarify meaning.
69
+ - Treat any new color, gradient, or tint ramp as a design-system expansion that requires user approval.
70
+ - Keep color tied to hierarchy, state, or brand meaning; do not use it as surface decoration.
71
+
72
+ ### Spatial Amplification
73
+ - Change proportion, density, alignment, and sequencing so the composition has a stronger point of view.
74
+ - Create clearer contrast between dense evidence and open breathing room.
75
+ - Let layout express priority and narrative order before adding ornament.
76
+ - Preserve responsive behavior and avoid text overflow at every breakpoint.
77
+
78
+ ### Surface Amplification
79
+ - Use existing surface, border, radius, and shadow rules more deliberately.
80
+ - Remove timid half-measures: either give an element a clear role or simplify it.
81
+ - Add texture, depth, illustration, or decorative treatments only when already established by the system or explicitly approved.
82
+ - Make real product artifacts, imagery, data, or copy carry attention before reaching for effects.
83
+
84
+ ### Motion & Animation
85
+ - Design one meaningful moment of emphasis when motion genuinely supports the point.
86
+ - Make interaction feedback feel more decisive without becoming distracting.
87
+ - Keep transitions smooth and intentional.
88
+ - **Bolder != scroll-fade-rise on every section.** That's the saturated AI default, the opposite of bold.
89
+
90
+ ### Composition Boldness
91
+ - Make the dominant idea unmistakable.
92
+ - Use layout tension, sequencing, contrast, and restraint to create a stronger read.
93
+ - Let the page's structure communicate priority before adding decorative layers.
94
+ - If every element is louder, the composition is not bolder; it is flatter.
95
+
96
+ **NEVER**:
97
+ - Add undocumented design-system primitives without user approval
98
+ - Add effects randomly without purpose
99
+ - Hide weak hierarchy behind decoration
100
+ - Sacrifice readability for aesthetics
101
+ - Make everything bold; contrast is the point
102
+ - Ignore accessibility
103
+ - Overwhelm with motion
104
+ - Copy trendy aesthetics blindly
105
+
106
+ ## Verify Quality
107
+
108
+ Ensure amplification maintains usability and coherence:
109
+
110
+ - **System-faithful**: Did the pass make the existing design language stronger before adding anything new?
111
+ - **No undocumented drift**: Are new colors, gradients, shadows, radii, fonts, and effects either absent or explicitly approved and documented?
112
+ - **NOT AI slop**: Does this look like every other AI-generated "bold" design? If yes, start over.
113
+ - **Still functional**: Can users accomplish tasks without distraction?
114
+ - **Coherent**: Does everything feel intentional and unified?
115
+ - **Memorable**: Will users remember this experience for the intended reason?
116
+ - **Performant and accessible**: Does the result stay fast, readable, responsive, and WCAG-conscious?
117
+
118
+ **The test**: If you showed this to someone and said "AI made this bolder," would they believe you immediately? If yes, you've failed. Bold means distinctive, not "more AI effects."
119
+
120
+ When the result feels right, hand off to `/impeccable polish` for the final pass.
@@ -0,0 +1,108 @@
1
+ # Brand register
2
+
3
+ When design IS the product: brand sites, landing pages, marketing surfaces, campaign pages, portfolios, long-form content, about pages. The deliverable is the design itself; a visitor's impression is the thing being made.
4
+
5
+ The register spans every genre. A tech brand (Stripe, Linear, Vercel). A luxury brand (a hotel, a fashion house). A consumer product (a restaurant, a travel site, a CPG packaging page). A creative studio, an agency portfolio, a band's album page. They all share the stance (*communicate, not transact*) and diverge wildly in aesthetic. Don't collapse them into a single look.
6
+
7
+ ## The brand slop test
8
+
9
+ If someone could look at this and say "AI made that" without hesitation, it's failed. The bar is distinctiveness; a visitor should ask "how was this made?", not "which AI made this?"
10
+
11
+ Brand isn't a neutral register. AI-generated landing pages have flooded the internet, and average is no longer findable. Restraint without intent now reads as mediocre, not refined. Brand surfaces need a POV, a specific audience, a willingness to risk strangeness. Go big or go home.
12
+
13
+ **The second slop test: aesthetic lane.** Before committing to moves, name the reference. A Klim-style specimen page is one lane; Stripe-minimal is another; Liquid-Death-acid-maximalism is another. Don't drift into editorial-magazine aesthetics on a brief that isn't editorial. A hiking brand with Cormorant italic drop caps has the wrong register within the register.
14
+
15
+ Then the inverse test: in one sentence, describe what you're about to build the way a competitor would describe theirs. If that sentence fits the modal landing page in the category, restart.
16
+
17
+ ## Typography
18
+
19
+ ### Font selection procedure
20
+
21
+ Every project. Never skip.
22
+
23
+ 1. Read the brief. Write three concrete brand-voice words. Not "modern" or "elegant," but "warm and mechanical and opinionated" or "calm and clinical and careful." Physical-object words.
24
+ 2. List the three fonts you'd reach for by reflex. If any appear in the reflex-reject list below, reject them; they are training-data defaults and they create monoculture.
25
+ 3. Browse a real catalog (Google Fonts, Pangram Pangram, Future Fonts, Adobe Fonts, ABC Dinamo, Klim, Velvetyne) with the three words in mind. Find the font for the brand as a *physical object*: a museum caption, a 1970s terminal manual, a fabric label, a cheap-newsprint children's book, a concert poster, a receipt from a mid-century diner. Reject the first thing that "looks designy."
26
+ 4. Cross-check. "Elegant" is not necessarily serif. "Technical" is not necessarily sans. "Warm" is not Fraunces. If the final pick lines up with the original reflex, start over.
27
+
28
+ ### Reflex-reject list
29
+
30
+ Training-data defaults. Ban list. Look further:
31
+
32
+ Fraunces · Newsreader · Lora · Crimson · Crimson Pro · Crimson Text · Playfair Display · Cormorant · Cormorant Garamond · Syne · IBM Plex Mono · IBM Plex Sans · IBM Plex Serif · Space Mono · Space Grotesk · Inter · DM Sans · DM Serif Display · DM Serif Text · Outfit · Plus Jakarta Sans · Instrument Sans · Instrument Serif
33
+
34
+ ### Reflex-reject aesthetic lanes
35
+
36
+ Parallel to the font list. Currently saturated aesthetic families that have flooded brand surfaces. If a brief lands in one of these lanes without a register reason that *requires* it (a literal magazine, a literal terminal, a literal industrial signage system), it's the second-order training reflex: the trap one tier deeper than picking a Fraunces font. Look further.
37
+
38
+ - **Editorial-typographic.** Display serif (often italic) + small mono labels + ruled separators + monochromatic restraint. Klim-influenced, magazine-cover affectation. By 2026, every Stripe-adjacent and Notion-adjacent brand has landed here. The fingerprint: three rule-separated columns, an italic Fraunces / Recoleta / Newsreader headline, lowercase track-spaced metadata, no imagery.
39
+
40
+ (More entries land here on the same cadence the font list updates. Brutalist-utility and acid-maximalism may join when they saturate. Removing entries when they fall back below saturation is also fine.)
41
+
42
+ The reflex-reject lists apply to **new design choices**. When the existing brand has already committed to a font or a lane as part of its identity, identity-preservation wins; variants on an existing surface don't second-guess what's already shipping. The reflex-reject lists are for greenfield decisions and for departure-mode variants in [live.md](live.md).
43
+
44
+ ### Pairing and voice
45
+
46
+ Distinctive + refined is the goal. The specific shape depends on the brand, not on the brand's category. A category ("restaurant", "dev tool", "magazine", "fintech") is not a recipe; treating it as one is the first-order reflex SKILL.md warns against.
47
+
48
+ Two families minimum is the rule *only* when the voice needs it. A single well-chosen family with committed weight/size contrast is stronger than a timid display+body pair.
49
+
50
+ ### Scale
51
+
52
+ Modular scale, fluid `clamp()` for headings, ≥1.25 ratio between steps. Flat scales (1.1× apart) read as uncommitted.
53
+
54
+ Light text on dark backgrounds: add 0.05–0.1 to line-height. Light type reads as lighter weight and needs more breathing room.
55
+
56
+ ## Color
57
+
58
+ Brand surfaces have permission for Committed, Full palette, and Drenched strategies. Use them. A single saturated color spread across a hero is not excess; it's voice. A beige-and-muted-slate landing page ignores the register.
59
+
60
+ - Name a real reference before picking a strategy. "Klim Type Foundry #ff4500 orange drench", "Stripe purple-on-white restraint", "Liquid Death acid-green full palette", "Mailchimp yellow full palette", "Condé Nast Traveler muted navy restraint", "Vercel pure black monochrome". Unnamed ambition becomes beige.
61
+ - Palette IS voice. A calm brand and a restless brand should not share palette mechanics.
62
+ - When the strategy is Committed or Drenched, color carries the brand. Don't hedge with neutrals around the edges. Commit.
63
+ - Don't converge across projects. Each brand surface differentiates from the last.
64
+ - When a cultural-symbol palette is the obvious pull, reach past it. Let the cultural reading come from typography, imagery, and copy, not the palette.
65
+
66
+ ## Layout
67
+
68
+ - Asymmetric compositions are one option. Break the grid intentionally for emphasis.
69
+ - Fluid spacing with `clamp()` that breathes on larger viewports. Vary for rhythm: generous separations, tight groupings.
70
+ - For image-led briefs (hotels, restaurants, magazines, photography), full-bleed hero imagery with overlaid menu and centered headline is a canonical move; let the photograph be the design.
71
+ - When cards ARE the right affordance, use `grid-template-columns: repeat(auto-fit, minmax(280px, 1fr))` for breakpoint-free responsiveness.
72
+
73
+ ## Imagery
74
+
75
+ Brand surfaces lean on imagery. A restaurant, hotel, magazine, or product landing page without any imagery reads as incomplete, not as restrained. A solid-color rectangle where a hero image should go is worse than a representative stock photo.
76
+
77
+ **When the brief implies imagery, you must ship imagery.** Zero images is a bug, not a design choice. "Restraint" is not an excuse. If the approved comp or brief is image-led, ship real project assets, generated raster assets, or a credible canvas/SVG/WebGL scene. Do not replace photographic, architectural, product, or place imagery with generic CSS panels, decorative diagrams, cards, bullets, or copy.
78
+
79
+ - **For greenfield work without local assets, use stock imagery.** Unsplash is the default. The URL shape is `https://images.unsplash.com/photo-{id}?auto=format&fit=crop&w=1600&q=80`. **Verify the URLs before referencing them.** If you have an image-search MCP, web-fetch tool, or browser access, use it to find real photo IDs and confirm they resolve. Guessed IDs (even ones that look real) often 404 and ship as broken-image placeholders. Without a verification path, pick fewer photos you're confident exist over more that you guessed; never substitute colored `<div>` placeholders.
80
+ - **Search for the brand's physical object**, not the generic category: "handmade pasta on a scratched wooden table" beats "Italian food"; "cypress trees above a limestone hotel facade at dusk" beats "luxury hotel".
81
+ - **One decisive photo beats five mediocre ones.** Hero imagery should commit to a mood; padding with more stock doesn't rescue an indecisive one.
82
+ - **Alt text is part of the voice.** "Coastal fettuccine, hand-cut, served on the terrace" beats "pasta dish".
83
+
84
+ "Imagery" here is broader than stock photography: product screenshots, custom data visualizations, generated SVG, and canvas/WebGL scenes are all imagery. Text-only pages where typography alone carries the entire visual weight are the failure mode.
85
+
86
+ ## Motion
87
+
88
+ - One well-orchestrated page-load beats scattered micro-interactions, when the brand invites it. Some brands skip entrance motion entirely; the restraint is the voice.
89
+
90
+ ## Brand bans (on top of the shared absolute bans)
91
+
92
+ - Monospace as lazy shorthand for "technical / developer." If the brand isn't technical, mono reads as costume.
93
+ - Large rounded-corner icons above every heading. Screams template.
94
+ - Single-family pages that picked the family by reflex, not voice. (A single family chosen deliberately is fine.)
95
+ - All-caps body copy. Reserve caps for short labels and headings.
96
+ - Timid palettes and average layouts. Safe = invisible.
97
+ - Zero imagery on a brief that implies imagery (restaurant, hotel, food, travel, fashion, photography, hobbyist). Colored blocks where a hero photo belongs.
98
+ - Defaulting to editorial-magazine aesthetics (display serif + italic + drop caps + broadsheet grid) on briefs that aren't magazine-shaped. Editorial is ONE aesthetic lane, not the default brand aesthetic.
99
+ - Repeated tiny uppercase tracked labels above every section heading. A single strong kicker can be voice; repeating it as section grammar is AI scaffolding unless it's a deliberate, named brand system.
100
+
101
+ ## Brand permissions
102
+
103
+ Brand can afford things product can't. Take them.
104
+
105
+ - Ambitious first-load motion. Reveals and typographic choreography that earn their place; not fade-on-scroll for every section.
106
+ - Single-purpose viewports. One dominant idea per fold, long scroll, deliberate pacing.
107
+ - Unexpected color strategies. Palette IS voice; a calm brand and a restless brand should not share palette mechanics.
108
+ - Art direction per section. Different sections can have different visual worlds if the narrative demands it. Consistency of voice beats consistency of treatment.