learnship 1.9.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 (171) hide show
  1. package/.claude-plugin/plugin.json +26 -0
  2. package/.cursor-plugin/plugin.json +26 -0
  3. package/LICENSE +21 -0
  4. package/README.md +791 -0
  5. package/SKILL.md +86 -0
  6. package/agents/debugger.md +102 -0
  7. package/agents/executor.md +115 -0
  8. package/agents/learnship-debugger.md +146 -0
  9. package/agents/learnship-executor.md +155 -0
  10. package/agents/learnship-phase-researcher.md +128 -0
  11. package/agents/learnship-plan-checker.md +119 -0
  12. package/agents/learnship-planner.md +146 -0
  13. package/agents/learnship-verifier.md +157 -0
  14. package/agents/planner.md +109 -0
  15. package/agents/researcher.md +80 -0
  16. package/agents/verifier.md +114 -0
  17. package/bin/install.js +1242 -0
  18. package/bin/learnship.js +56 -0
  19. package/commands/learnship/add-phase.md +22 -0
  20. package/commands/learnship/add-tests.md +24 -0
  21. package/commands/learnship/add-todo.md +21 -0
  22. package/commands/learnship/audit-milestone.md +21 -0
  23. package/commands/learnship/check-todos.md +22 -0
  24. package/commands/learnship/cleanup.md +22 -0
  25. package/commands/learnship/complete-milestone.md +22 -0
  26. package/commands/learnship/debug.md +27 -0
  27. package/commands/learnship/decision-log.md +22 -0
  28. package/commands/learnship/diagnose-issues.md +23 -0
  29. package/commands/learnship/discovery-phase.md +24 -0
  30. package/commands/learnship/discuss-milestone.md +23 -0
  31. package/commands/learnship/discuss-phase.md +23 -0
  32. package/commands/learnship/execute-phase.md +27 -0
  33. package/commands/learnship/execute-plan.md +26 -0
  34. package/commands/learnship/health.md +20 -0
  35. package/commands/learnship/help.md +19 -0
  36. package/commands/learnship/insert-phase.md +22 -0
  37. package/commands/learnship/knowledge-base.md +21 -0
  38. package/commands/learnship/list-phase-assumptions.md +21 -0
  39. package/commands/learnship/ls.md +20 -0
  40. package/commands/learnship/map-codebase.md +23 -0
  41. package/commands/learnship/milestone-retrospective.md +21 -0
  42. package/commands/learnship/new-milestone.md +23 -0
  43. package/commands/learnship/new-project.md +24 -0
  44. package/commands/learnship/next.md +22 -0
  45. package/commands/learnship/pause-work.md +21 -0
  46. package/commands/learnship/plan-milestone-gaps.md +22 -0
  47. package/commands/learnship/plan-phase.md +24 -0
  48. package/commands/learnship/progress.md +20 -0
  49. package/commands/learnship/quick.md +27 -0
  50. package/commands/learnship/reapply-patches.md +21 -0
  51. package/commands/learnship/release.md +21 -0
  52. package/commands/learnship/remove-phase.md +23 -0
  53. package/commands/learnship/research-phase.md +23 -0
  54. package/commands/learnship/resume-work.md +21 -0
  55. package/commands/learnship/set-profile.md +21 -0
  56. package/commands/learnship/settings.md +21 -0
  57. package/commands/learnship/transition.md +21 -0
  58. package/commands/learnship/update.md +21 -0
  59. package/commands/learnship/validate-phase.md +22 -0
  60. package/commands/learnship/verify-work.md +23 -0
  61. package/cursor-rules/learnship.mdc +60 -0
  62. package/gemini-extension.json +10 -0
  63. package/hooks/hooks-claude.json +15 -0
  64. package/hooks/hooks-cursor.json +10 -0
  65. package/hooks/session-start +43 -0
  66. package/install.sh +254 -0
  67. package/learnship/references/design-commands.md +119 -0
  68. package/learnship/references/git-integration.md +249 -0
  69. package/learnship/references/learning-design.md +142 -0
  70. package/learnship/references/model-profiles.md +90 -0
  71. package/learnship/references/planning-config.md +184 -0
  72. package/learnship/references/questioning.md +162 -0
  73. package/learnship/references/ui-brand.md +160 -0
  74. package/learnship/references/verification-patterns.md +608 -0
  75. package/learnship/templates/agents.md +166 -0
  76. package/learnship/templates/context.md +72 -0
  77. package/learnship/templates/plan.md +202 -0
  78. package/learnship/templates/project.md +184 -0
  79. package/learnship/templates/requirements.md +231 -0
  80. package/learnship/templates/state.md +176 -0
  81. package/learnship/templates/uat.md +80 -0
  82. package/learnship/workflows/add-phase.md +84 -0
  83. package/learnship/workflows/add-tests.md +191 -0
  84. package/learnship/workflows/add-todo.md +108 -0
  85. package/learnship/workflows/audit-milestone.md +178 -0
  86. package/learnship/workflows/check-todos.md +138 -0
  87. package/learnship/workflows/cleanup.md +107 -0
  88. package/learnship/workflows/complete-milestone.md +191 -0
  89. package/learnship/workflows/debug.md +245 -0
  90. package/learnship/workflows/decision-log.md +131 -0
  91. package/learnship/workflows/diagnose-issues.md +145 -0
  92. package/learnship/workflows/discovery-phase.md +183 -0
  93. package/learnship/workflows/discuss-milestone.md +136 -0
  94. package/learnship/workflows/discuss-phase.md +244 -0
  95. package/learnship/workflows/execute-phase.md +345 -0
  96. package/learnship/workflows/execute-plan.md +149 -0
  97. package/learnship/workflows/health.md +171 -0
  98. package/learnship/workflows/help.md +153 -0
  99. package/learnship/workflows/insert-phase.md +106 -0
  100. package/learnship/workflows/knowledge-base.md +168 -0
  101. package/learnship/workflows/list-phase-assumptions.md +129 -0
  102. package/learnship/workflows/ls.md +145 -0
  103. package/learnship/workflows/map-codebase.md +142 -0
  104. package/learnship/workflows/milestone-retrospective.md +178 -0
  105. package/learnship/workflows/new-milestone.md +200 -0
  106. package/learnship/workflows/new-project.md +340 -0
  107. package/learnship/workflows/next.md +100 -0
  108. package/learnship/workflows/pause-work.md +122 -0
  109. package/learnship/workflows/plan-milestone-gaps.md +160 -0
  110. package/learnship/workflows/plan-phase.md +288 -0
  111. package/learnship/workflows/progress.md +118 -0
  112. package/learnship/workflows/quick.md +256 -0
  113. package/learnship/workflows/reapply-patches.md +130 -0
  114. package/learnship/workflows/release.md +217 -0
  115. package/learnship/workflows/remove-phase.md +128 -0
  116. package/learnship/workflows/research-phase.md +137 -0
  117. package/learnship/workflows/resume-work.md +162 -0
  118. package/learnship/workflows/set-profile.md +78 -0
  119. package/learnship/workflows/settings.md +204 -0
  120. package/learnship/workflows/sync-upstream-skills.md +269 -0
  121. package/learnship/workflows/transition.md +165 -0
  122. package/learnship/workflows/update.md +166 -0
  123. package/learnship/workflows/validate-phase.md +174 -0
  124. package/learnship/workflows/verify-work.md +264 -0
  125. package/package.json +62 -0
  126. package/references/design-commands.md +119 -0
  127. package/references/git-integration.md +249 -0
  128. package/references/learning-design.md +142 -0
  129. package/references/model-profiles.md +90 -0
  130. package/references/planning-config.md +184 -0
  131. package/references/questioning.md +162 -0
  132. package/references/ui-brand.md +160 -0
  133. package/references/verification-patterns.md +608 -0
  134. package/skills/agentic-learning/SKILL.md +373 -0
  135. package/skills/agentic-learning/references/either-or-format.md +161 -0
  136. package/skills/agentic-learning/references/learning-science.md +190 -0
  137. package/skills/agentic-learning/references/struggle-ladder.md +140 -0
  138. package/skills/impeccable/SKILL.md +125 -0
  139. package/skills/impeccable/adapt/SKILL.md +199 -0
  140. package/skills/impeccable/animate/SKILL.md +190 -0
  141. package/skills/impeccable/audit/SKILL.md +129 -0
  142. package/skills/impeccable/bolder/SKILL.md +132 -0
  143. package/skills/impeccable/clarify/SKILL.md +180 -0
  144. package/skills/impeccable/colorize/SKILL.md +158 -0
  145. package/skills/impeccable/critique/SKILL.md +118 -0
  146. package/skills/impeccable/delight/SKILL.md +317 -0
  147. package/skills/impeccable/distill/SKILL.md +137 -0
  148. package/skills/impeccable/extract/SKILL.md +95 -0
  149. package/skills/impeccable/frontend-design/SKILL.md +127 -0
  150. package/skills/impeccable/frontend-design/reference/color-and-contrast.md +132 -0
  151. package/skills/impeccable/frontend-design/reference/interaction-design.md +123 -0
  152. package/skills/impeccable/frontend-design/reference/motion-design.md +99 -0
  153. package/skills/impeccable/frontend-design/reference/responsive-design.md +114 -0
  154. package/skills/impeccable/frontend-design/reference/spatial-design.md +100 -0
  155. package/skills/impeccable/frontend-design/reference/typography.md +131 -0
  156. package/skills/impeccable/frontend-design/reference/ux-writing.md +107 -0
  157. package/skills/impeccable/harden/SKILL.md +358 -0
  158. package/skills/impeccable/normalize/SKILL.md +67 -0
  159. package/skills/impeccable/onboard/SKILL.md +243 -0
  160. package/skills/impeccable/optimize/SKILL.md +269 -0
  161. package/skills/impeccable/polish/SKILL.md +202 -0
  162. package/skills/impeccable/quieter/SKILL.md +118 -0
  163. package/skills/impeccable/teach-impeccable/SKILL.md +69 -0
  164. package/templates/agents.md +166 -0
  165. package/templates/config.json +22 -0
  166. package/templates/context.md +72 -0
  167. package/templates/plan.md +202 -0
  168. package/templates/project.md +184 -0
  169. package/templates/requirements.md +231 -0
  170. package/templates/state.md +176 -0
  171. package/templates/uat.md +80 -0
@@ -0,0 +1,269 @@
1
+ ---
2
+ name: optimize
3
+ description: Improve interface performance across loading speed, rendering, animations, images, and bundle size. Makes experiences faster and smoother.
4
+ args:
5
+ - name: target
6
+ description: The feature or area to optimize (optional)
7
+ required: false
8
+ user-invokable: true
9
+ ---
10
+
11
+ Identify and fix performance issues to create faster, smoother user experiences.
12
+
13
+ ## Assess Performance Issues
14
+
15
+ Understand current performance and identify problems:
16
+
17
+ 1. **Measure current state**:
18
+ - **Core Web Vitals**: LCP, FID/INP, CLS scores
19
+ - **Load time**: Time to interactive, first contentful paint
20
+ - **Bundle size**: JavaScript, CSS, image sizes
21
+ - **Runtime performance**: Frame rate, memory usage, CPU usage
22
+ - **Network**: Request count, payload sizes, waterfall
23
+
24
+ 2. **Identify bottlenecks**:
25
+ - What's slow? (Initial load? Interactions? Animations?)
26
+ - What's causing it? (Large images? Expensive JavaScript? Layout thrashing?)
27
+ - How bad is it? (Perceivable? Annoying? Blocking?)
28
+ - Who's affected? (All users? Mobile only? Slow connections?)
29
+
30
+ **CRITICAL**: Measure before and after. Premature optimization wastes time. Optimize what actually matters.
31
+
32
+ ## Optimization Strategy
33
+
34
+ Create systematic improvement plan:
35
+
36
+ ### Loading Performance
37
+
38
+ **Optimize Images**:
39
+ - Use modern formats (WebP, AVIF)
40
+ - Proper sizing (don't load 3000px image for 300px display)
41
+ - Lazy loading for below-fold images
42
+ - Responsive images (`srcset`, `picture` element)
43
+ - Compress images (80-85% quality is usually imperceptible)
44
+ - Use CDN for faster delivery
45
+
46
+ ```html
47
+ <img
48
+ src="hero.webp"
49
+ srcset="hero-400.webp 400w, hero-800.webp 800w, hero-1200.webp 1200w"
50
+ sizes="(max-width: 400px) 400px, (max-width: 800px) 800px, 1200px"
51
+ loading="lazy"
52
+ alt="Hero image"
53
+ />
54
+ ```
55
+
56
+ **Reduce JavaScript Bundle**:
57
+ - Code splitting (route-based, component-based)
58
+ - Tree shaking (remove unused code)
59
+ - Remove unused dependencies
60
+ - Lazy load non-critical code
61
+ - Use dynamic imports for large components
62
+
63
+ ```javascript
64
+ // Lazy load heavy component
65
+ const HeavyChart = lazy(() => import('./HeavyChart'));
66
+ ```
67
+
68
+ **Optimize CSS**:
69
+ - Remove unused CSS
70
+ - Critical CSS inline, rest async
71
+ - Minimize CSS files
72
+ - Use CSS containment for independent regions
73
+
74
+ **Optimize Fonts**:
75
+ - Use `font-display: swap` or `optional`
76
+ - Subset fonts (only characters you need)
77
+ - Preload critical fonts
78
+ - Use system fonts when appropriate
79
+ - Limit font weights loaded
80
+
81
+ ```css
82
+ @font-face {
83
+ font-family: 'CustomFont';
84
+ src: url('/fonts/custom.woff2') format('woff2');
85
+ font-display: swap; /* Show fallback immediately */
86
+ unicode-range: U+0020-007F; /* Basic Latin only */
87
+ }
88
+ ```
89
+
90
+ **Optimize Loading Strategy**:
91
+ - Critical resources first (async/defer non-critical)
92
+ - Preload critical assets
93
+ - Prefetch likely next pages
94
+ - Service worker for offline/caching
95
+ - HTTP/2 or HTTP/3 for multiplexing
96
+
97
+ ### Rendering Performance
98
+
99
+ **Avoid Layout Thrashing**:
100
+ ```javascript
101
+ // ❌ Bad: Alternating reads and writes (causes reflows)
102
+ elements.forEach(el => {
103
+ const height = el.offsetHeight; // Read (forces layout)
104
+ el.style.height = height * 2; // Write
105
+ });
106
+
107
+ // ✅ Good: Batch reads, then batch writes
108
+ const heights = elements.map(el => el.offsetHeight); // All reads
109
+ elements.forEach((el, i) => {
110
+ el.style.height = heights[i] * 2; // All writes
111
+ });
112
+ ```
113
+
114
+ **Optimize Rendering**:
115
+ - Use CSS `contain` property for independent regions
116
+ - Minimize DOM depth (flatter is faster)
117
+ - Reduce DOM size (fewer elements)
118
+ - Use `content-visibility: auto` for long lists
119
+ - Virtual scrolling for very long lists (react-window, react-virtualized)
120
+
121
+ **Reduce Paint & Composite**:
122
+ - Use `transform` and `opacity` for animations (GPU-accelerated)
123
+ - Avoid animating layout properties (width, height, top, left)
124
+ - Use `will-change` sparingly for known expensive operations
125
+ - Minimize paint areas (smaller is faster)
126
+
127
+ ### Animation Performance
128
+
129
+ **GPU Acceleration**:
130
+ ```css
131
+ /* ✅ GPU-accelerated (fast) */
132
+ .animated {
133
+ transform: translateX(100px);
134
+ opacity: 0.5;
135
+ }
136
+
137
+ /* ❌ CPU-bound (slow) */
138
+ .animated {
139
+ left: 100px;
140
+ width: 300px;
141
+ }
142
+ ```
143
+
144
+ **Smooth 60fps**:
145
+ - Target 16ms per frame (60fps)
146
+ - Use `requestAnimationFrame` for JS animations
147
+ - Debounce/throttle scroll handlers
148
+ - Use CSS animations when possible
149
+ - Avoid long-running JavaScript during animations
150
+
151
+ **Intersection Observer**:
152
+ ```javascript
153
+ // Efficiently detect when elements enter viewport
154
+ const observer = new IntersectionObserver((entries) => {
155
+ entries.forEach(entry => {
156
+ if (entry.isIntersecting) {
157
+ // Element is visible, lazy load or animate
158
+ }
159
+ });
160
+ });
161
+ ```
162
+
163
+ ### React/Framework Optimization
164
+
165
+ **React-specific**:
166
+ - Use `memo()` for expensive components
167
+ - `useMemo()` and `useCallback()` for expensive computations
168
+ - Virtualize long lists
169
+ - Code split routes
170
+ - Avoid inline function creation in render
171
+ - Use React DevTools Profiler
172
+
173
+ **Framework-agnostic**:
174
+ - Minimize re-renders
175
+ - Debounce expensive operations
176
+ - Memoize computed values
177
+ - Lazy load routes and components
178
+
179
+ ### Network Optimization
180
+
181
+ **Reduce Requests**:
182
+ - Combine small files
183
+ - Use SVG sprites for icons
184
+ - Inline small critical assets
185
+ - Remove unused third-party scripts
186
+
187
+ **Optimize APIs**:
188
+ - Use pagination (don't load everything)
189
+ - GraphQL to request only needed fields
190
+ - Response compression (gzip, brotli)
191
+ - HTTP caching headers
192
+ - CDN for static assets
193
+
194
+ **Optimize for Slow Connections**:
195
+ - Adaptive loading based on connection (navigator.connection)
196
+ - Optimistic UI updates
197
+ - Request prioritization
198
+ - Progressive enhancement
199
+
200
+ ## Core Web Vitals Optimization
201
+
202
+ ### Largest Contentful Paint (LCP < 2.5s)
203
+ - Optimize hero images
204
+ - Inline critical CSS
205
+ - Preload key resources
206
+ - Use CDN
207
+ - Server-side rendering
208
+
209
+ ### First Input Delay (FID < 100ms) / INP (< 200ms)
210
+ - Break up long tasks
211
+ - Defer non-critical JavaScript
212
+ - Use web workers for heavy computation
213
+ - Reduce JavaScript execution time
214
+
215
+ ### Cumulative Layout Shift (CLS < 0.1)
216
+ - Set dimensions on images and videos
217
+ - Don't inject content above existing content
218
+ - Use `aspect-ratio` CSS property
219
+ - Reserve space for ads/embeds
220
+ - Avoid animations that cause layout shifts
221
+
222
+ ```css
223
+ /* Reserve space for image */
224
+ .image-container {
225
+ aspect-ratio: 16 / 9;
226
+ }
227
+ ```
228
+
229
+ ## Performance Monitoring
230
+
231
+ **Tools to use**:
232
+ - Chrome DevTools (Lighthouse, Performance panel)
233
+ - WebPageTest
234
+ - Core Web Vitals (Chrome UX Report)
235
+ - Bundle analyzers (webpack-bundle-analyzer)
236
+ - Performance monitoring (Sentry, DataDog, New Relic)
237
+
238
+ **Key metrics**:
239
+ - LCP, FID/INP, CLS (Core Web Vitals)
240
+ - Time to Interactive (TTI)
241
+ - First Contentful Paint (FCP)
242
+ - Total Blocking Time (TBT)
243
+ - Bundle size
244
+ - Request count
245
+
246
+ **IMPORTANT**: Measure on real devices with real network conditions. Desktop Chrome with fast connection isn't representative.
247
+
248
+ **NEVER**:
249
+ - Optimize without measuring (premature optimization)
250
+ - Sacrifice accessibility for performance
251
+ - Break functionality while optimizing
252
+ - Use `will-change` everywhere (creates new layers, uses memory)
253
+ - Lazy load above-fold content
254
+ - Optimize micro-optimizations while ignoring major issues (optimize the biggest bottleneck first)
255
+ - Forget about mobile performance (often slower devices, slower connections)
256
+
257
+ ## Verify Improvements
258
+
259
+ Test that optimizations worked:
260
+
261
+ - **Before/after metrics**: Compare Lighthouse scores
262
+ - **Real user monitoring**: Track improvements for real users
263
+ - **Different devices**: Test on low-end Android, not just flagship iPhone
264
+ - **Slow connections**: Throttle to 3G, test experience
265
+ - **No regressions**: Ensure functionality still works
266
+ - **User perception**: Does it *feel* faster?
267
+
268
+ Remember: Performance is a feature. Fast experiences feel more responsive, more polished, more professional. Optimize systematically, measure ruthlessly, and prioritize user-perceived performance.
269
+
@@ -0,0 +1,202 @@
1
+ ---
2
+ name: polish
3
+ description: Final quality pass before shipping. Fixes alignment, spacing, consistency, and detail issues that separate good from great.
4
+ args:
5
+ - name: target
6
+ description: The feature or area to polish (optional)
7
+ required: false
8
+ user-invokable: true
9
+ ---
10
+
11
+ **First**: Use the frontend-design skill for design principles and anti-patterns.
12
+
13
+ Perform a meticulous final pass to catch all the small details that separate good work from great work. The difference between shipped and polished.
14
+
15
+ ## Pre-Polish Assessment
16
+
17
+ Understand the current state and goals:
18
+
19
+ 1. **Review completeness**:
20
+ - Is it functionally complete?
21
+ - Are there known issues to preserve (mark with TODOs)?
22
+ - What's the quality bar? (MVP vs flagship feature?)
23
+ - When does it ship? (How much time for polish?)
24
+
25
+ 2. **Identify polish areas**:
26
+ - Visual inconsistencies
27
+ - Spacing and alignment issues
28
+ - Interaction state gaps
29
+ - Copy inconsistencies
30
+ - Edge cases and error states
31
+ - Loading and transition smoothness
32
+
33
+ **CRITICAL**: Polish is the last step, not the first. Don't polish work that's not functionally complete.
34
+
35
+ ## Polish Systematically
36
+
37
+ Work through these dimensions methodically:
38
+
39
+ ### Visual Alignment & Spacing
40
+
41
+ - **Pixel-perfect alignment**: Everything lines up to grid
42
+ - **Consistent spacing**: All gaps use spacing scale (no random 13px gaps)
43
+ - **Optical alignment**: Adjust for visual weight (icons may need offset for optical centering)
44
+ - **Responsive consistency**: Spacing and alignment work at all breakpoints
45
+ - **Grid adherence**: Elements snap to baseline grid
46
+
47
+ **Check**:
48
+ - Enable grid overlay and verify alignment
49
+ - Check spacing with browser inspector
50
+ - Test at multiple viewport sizes
51
+ - Look for elements that "feel" off
52
+
53
+ ### Typography Refinement
54
+
55
+ - **Hierarchy consistency**: Same elements use same sizes/weights throughout
56
+ - **Line length**: 45-75 characters for body text
57
+ - **Line height**: Appropriate for font size and context
58
+ - **Widows & orphans**: No single words on last line
59
+ - **Hyphenation**: Appropriate for language and column width
60
+ - **Kerning**: Adjust letter spacing where needed (especially headlines)
61
+ - **Font loading**: No FOUT/FOIT flashes
62
+
63
+ ### Color & Contrast
64
+
65
+ - **Contrast ratios**: All text meets WCAG standards
66
+ - **Consistent token usage**: No hard-coded colors, all use design tokens
67
+ - **Theme consistency**: Works in all theme variants
68
+ - **Color meaning**: Same colors mean same things throughout
69
+ - **Accessible focus**: Focus indicators visible with sufficient contrast
70
+ - **Tinted neutrals**: No pure gray or pure black—add subtle color tint (0.01 chroma)
71
+ - **Gray on color**: Never put gray text on colored backgrounds—use a shade of that color or transparency
72
+
73
+ ### Interaction States
74
+
75
+ Every interactive element needs all states:
76
+
77
+ - **Default**: Resting state
78
+ - **Hover**: Subtle feedback (color, scale, shadow)
79
+ - **Focus**: Keyboard focus indicator (never remove without replacement)
80
+ - **Active**: Click/tap feedback
81
+ - **Disabled**: Clearly non-interactive
82
+ - **Loading**: Async action feedback
83
+ - **Error**: Validation or error state
84
+ - **Success**: Successful completion
85
+
86
+ **Missing states create confusion and broken experiences**.
87
+
88
+ ### Micro-interactions & Transitions
89
+
90
+ - **Smooth transitions**: All state changes animated appropriately (150-300ms)
91
+ - **Consistent easing**: Use ease-out-quart/quint/expo for natural deceleration. Never bounce or elastic—they feel dated.
92
+ - **No jank**: 60fps animations, only animate transform and opacity
93
+ - **Appropriate motion**: Motion serves purpose, not decoration
94
+ - **Reduced motion**: Respects `prefers-reduced-motion`
95
+
96
+ ### Content & Copy
97
+
98
+ - **Consistent terminology**: Same things called same names throughout
99
+ - **Consistent capitalization**: Title Case vs Sentence case applied consistently
100
+ - **Grammar & spelling**: No typos
101
+ - **Appropriate length**: Not too wordy, not too terse
102
+ - **Punctuation consistency**: Periods on sentences, not on labels (unless all labels have them)
103
+
104
+ ### Icons & Images
105
+
106
+ - **Consistent style**: All icons from same family or matching style
107
+ - **Appropriate sizing**: Icons sized consistently for context
108
+ - **Proper alignment**: Icons align with adjacent text optically
109
+ - **Alt text**: All images have descriptive alt text
110
+ - **Loading states**: Images don't cause layout shift, proper aspect ratios
111
+ - **Retina support**: 2x assets for high-DPI screens
112
+
113
+ ### Forms & Inputs
114
+
115
+ - **Label consistency**: All inputs properly labeled
116
+ - **Required indicators**: Clear and consistent
117
+ - **Error messages**: Helpful and consistent
118
+ - **Tab order**: Logical keyboard navigation
119
+ - **Auto-focus**: Appropriate (don't overuse)
120
+ - **Validation timing**: Consistent (on blur vs on submit)
121
+
122
+ ### Edge Cases & Error States
123
+
124
+ - **Loading states**: All async actions have loading feedback
125
+ - **Empty states**: Helpful empty states, not just blank space
126
+ - **Error states**: Clear error messages with recovery paths
127
+ - **Success states**: Confirmation of successful actions
128
+ - **Long content**: Handles very long names, descriptions, etc.
129
+ - **No content**: Handles missing data gracefully
130
+ - **Offline**: Appropriate offline handling (if applicable)
131
+
132
+ ### Responsiveness
133
+
134
+ - **All breakpoints**: Test mobile, tablet, desktop
135
+ - **Touch targets**: 44x44px minimum on touch devices
136
+ - **Readable text**: No text smaller than 14px on mobile
137
+ - **No horizontal scroll**: Content fits viewport
138
+ - **Appropriate reflow**: Content adapts logically
139
+
140
+ ### Performance
141
+
142
+ - **Fast initial load**: Optimize critical path
143
+ - **No layout shift**: Elements don't jump after load (CLS)
144
+ - **Smooth interactions**: No lag or jank
145
+ - **Optimized images**: Appropriate formats and sizes
146
+ - **Lazy loading**: Off-screen content loads lazily
147
+
148
+ ### Code Quality
149
+
150
+ - **Remove console logs**: No debug logging in production
151
+ - **Remove commented code**: Clean up dead code
152
+ - **Remove unused imports**: Clean up unused dependencies
153
+ - **Consistent naming**: Variables and functions follow conventions
154
+ - **Type safety**: No TypeScript `any` or ignored errors
155
+ - **Accessibility**: Proper ARIA labels and semantic HTML
156
+
157
+ ## Polish Checklist
158
+
159
+ Go through systematically:
160
+
161
+ - [ ] Visual alignment perfect at all breakpoints
162
+ - [ ] Spacing uses design tokens consistently
163
+ - [ ] Typography hierarchy consistent
164
+ - [ ] All interactive states implemented
165
+ - [ ] All transitions smooth (60fps)
166
+ - [ ] Copy is consistent and polished
167
+ - [ ] Icons are consistent and properly sized
168
+ - [ ] All forms properly labeled and validated
169
+ - [ ] Error states are helpful
170
+ - [ ] Loading states are clear
171
+ - [ ] Empty states are welcoming
172
+ - [ ] Touch targets are 44x44px minimum
173
+ - [ ] Contrast ratios meet WCAG AA
174
+ - [ ] Keyboard navigation works
175
+ - [ ] Focus indicators visible
176
+ - [ ] No console errors or warnings
177
+ - [ ] No layout shift on load
178
+ - [ ] Works in all supported browsers
179
+ - [ ] Respects reduced motion preference
180
+ - [ ] Code is clean (no TODOs, console.logs, commented code)
181
+
182
+ **IMPORTANT**: Polish is about details. Zoom in. Squint at it. Use it yourself. The little things add up.
183
+
184
+ **NEVER**:
185
+ - Polish before it's functionally complete
186
+ - Spend hours on polish if it ships in 30 minutes (triage)
187
+ - Introduce bugs while polishing (test thoroughly)
188
+ - Ignore systematic issues (if spacing is off everywhere, fix the system)
189
+ - Perfect one thing while leaving others rough (consistent quality level)
190
+
191
+ ## Final Verification
192
+
193
+ Before marking as done:
194
+
195
+ - **Use it yourself**: Actually interact with the feature
196
+ - **Test on real devices**: Not just browser DevTools
197
+ - **Ask someone else to review**: Fresh eyes catch things
198
+ - **Compare to design**: Match intended design
199
+ - **Check all states**: Don't just test happy path
200
+
201
+ Remember: You have impeccable attention to detail and exquisite taste. Polish until it feels effortless, looks intentional, and works flawlessly. Sweat the details - they matter.
202
+
@@ -0,0 +1,118 @@
1
+ ---
2
+ name: quieter
3
+ description: Tone down overly bold or visually aggressive designs. Reduces intensity while maintaining design quality and impact.
4
+ args:
5
+ - name: target
6
+ description: The feature or component to make quieter (optional)
7
+ required: false
8
+ user-invokable: true
9
+ ---
10
+
11
+ Reduce visual intensity in designs that are too bold, aggressive, or overstimulating, creating a more refined and approachable aesthetic without losing effectiveness.
12
+
13
+ ## MANDATORY PREPARATION
14
+
15
+ ### Context Gathering (Do This First)
16
+
17
+ You cannot do a great job without having necessary context, such as target audience (critical), desired use-cases (critical), brand personality/tone, and everything else that a great human designer would need as well.
18
+
19
+ Attempt to gather these from the current thread or codebase.
20
+
21
+ 1. If you don't find *exact* information and have to infer from existing design and functionality, you MUST STOP and Ask the user: whether you got it right.
22
+ 2. Otherwise, if you can't fully infer or your level of confidence is medium or lower, you MUST Ask the user: clarifying questions first to complete your context.
23
+
24
+ Do NOT proceed until you have answers. Guessing leads to generic design.
25
+
26
+ ### Use frontend-design skill
27
+
28
+ Use the frontend-design skill for design principles and anti-patterns. Do NOT proceed until it has executed and you know all DO's and DON'Ts.
29
+
30
+ ---
31
+
32
+ ## Assess Current State
33
+
34
+ Analyze what makes the design feel too intense:
35
+
36
+ 1. **Identify intensity sources**:
37
+ - **Color saturation**: Overly bright or saturated colors
38
+ - **Contrast extremes**: Too much high-contrast juxtaposition
39
+ - **Visual weight**: Too many bold, heavy elements competing
40
+ - **Animation excess**: Too much motion or overly dramatic effects
41
+ - **Complexity**: Too many visual elements, patterns, or decorations
42
+ - **Scale**: Everything is large and loud with no hierarchy
43
+
44
+ 2. **Understand the context**:
45
+ - What's the purpose? (Marketing vs tool vs reading experience)
46
+ - Who's the audience? (Some contexts need energy)
47
+ - What's working? (Don't throw away good ideas)
48
+ - What's the core message? (Preserve what matters)
49
+
50
+ If any of these are unclear from the codebase, Ask the user:
51
+
52
+ **CRITICAL**: "Quieter" doesn't mean boring or generic. It means refined, sophisticated, and easier on the eyes. Think luxury, not laziness.
53
+
54
+ ## Plan Refinement
55
+
56
+ Create a strategy to reduce intensity while maintaining impact:
57
+
58
+ - **Color approach**: Desaturate or shift to more sophisticated tones?
59
+ - **Hierarchy approach**: Which elements should stay bold (very few), which should recede?
60
+ - **Simplification approach**: What can be removed entirely?
61
+ - **Sophistication approach**: How can we signal quality through restraint?
62
+
63
+ **IMPORTANT**: Great quiet design is harder than great bold design. Subtlety requires precision.
64
+
65
+ ## Refine the Design
66
+
67
+ Systematically reduce intensity across these dimensions:
68
+
69
+ ### Color Refinement
70
+ - **Reduce saturation**: Shift from fully saturated to 70-85% saturation
71
+ - **Soften palette**: Replace bright colors with muted, sophisticated tones
72
+ - **Reduce color variety**: Use fewer colors more thoughtfully
73
+ - **Neutral dominance**: Let neutrals do more work, use color as accent (10% rule)
74
+ - **Gentler contrasts**: High contrast only where it matters most
75
+ - **Tinted grays**: Use warm or cool tinted grays instead of pure gray—adds sophistication without loudness
76
+ - **Never gray on color**: If you have gray text on a colored background, use a darker shade of that color or transparency instead
77
+
78
+ ### Visual Weight Reduction
79
+ - **Typography**: Reduce font weights (900 → 600, 700 → 500), decrease sizes where appropriate
80
+ - **Hierarchy through subtlety**: Use weight, size, and space instead of color and boldness
81
+ - **White space**: Increase breathing room, reduce density
82
+ - **Borders & lines**: Reduce thickness, decrease opacity, or remove entirely
83
+
84
+ ### Simplification
85
+ - **Remove decorative elements**: Gradients, shadows, patterns, textures that don't serve purpose
86
+ - **Simplify shapes**: Reduce border radius extremes, simplify custom shapes
87
+ - **Reduce layering**: Flatten visual hierarchy where possible
88
+ - **Clean up effects**: Reduce or remove blur effects, glows, multiple shadows
89
+
90
+ ### Motion Reduction
91
+ - **Reduce animation intensity**: Shorter distances (10-20px instead of 40px), gentler easing
92
+ - **Remove decorative animations**: Keep functional motion, remove flourishes
93
+ - **Subtle micro-interactions**: Replace dramatic effects with gentle feedback
94
+ - **Refined easing**: Use ease-out-quart for smooth, understated motion—never bounce or elastic
95
+ - **Remove animations entirely** if they're not serving a clear purpose
96
+
97
+ ### Composition Refinement
98
+ - **Reduce scale jumps**: Smaller contrast between sizes creates calmer feeling
99
+ - **Align to grid**: Bring rogue elements back into systematic alignment
100
+ - **Even out spacing**: Replace extreme spacing variations with consistent rhythm
101
+
102
+ **NEVER**:
103
+ - Make everything the same size/weight (hierarchy still matters)
104
+ - Remove all color (quiet ≠ grayscale)
105
+ - Eliminate all personality (maintain character through refinement)
106
+ - Sacrifice usability for aesthetics (functional elements still need clear affordances)
107
+ - Make everything small and light (some anchors needed)
108
+
109
+ ## Verify Quality
110
+
111
+ Ensure refinement maintains quality:
112
+
113
+ - **Still functional**: Can users still accomplish tasks easily?
114
+ - **Still distinctive**: Does it have character, or is it generic now?
115
+ - **Better reading**: Is text easier to read for extended periods?
116
+ - **Sophistication**: Does it feel more refined and premium?
117
+
118
+ Remember: Quiet design is confident design. It doesn't need to shout. Less is more, but less is also harder. Refine with precision and maintain intentionality.
@@ -0,0 +1,69 @@
1
+ ---
2
+ name: teach-impeccable
3
+ description: One-time setup that gathers design context for your project and saves it to your AI config file. Run once to establish persistent design guidelines.
4
+ user-invokable: true
5
+ ---
6
+
7
+ Gather design context for this project, then persist it for all future sessions.
8
+
9
+ ## Step 1: Explore the Codebase
10
+
11
+ Before asking questions, thoroughly scan the project to discover what you can:
12
+
13
+ - **README and docs**: Project purpose, target audience, any stated goals
14
+ - **Package.json / config files**: Tech stack, dependencies, existing design libraries
15
+ - **Existing components**: Current design patterns, spacing, typography in use
16
+ - **Brand assets**: Logos, favicons, color values already defined
17
+ - **Design tokens / CSS variables**: Existing color palettes, font stacks, spacing scales
18
+ - **Any style guides or brand documentation**
19
+
20
+ Note what you've learned and what remains unclear.
21
+
22
+ ## Step 2: Ask UX-Focused Questions
23
+
24
+ Ask the user: Focus only on what you couldn't infer from the codebase:
25
+
26
+ ### Users & Purpose
27
+ - Who uses this? What's their context when using it?
28
+ - What job are they trying to get done?
29
+ - What emotions should the interface evoke? (confidence, delight, calm, urgency, etc.)
30
+
31
+ ### Brand & Personality
32
+ - How would you describe the brand personality in 3 words?
33
+ - Any reference sites or apps that capture the right feel? What specifically about them?
34
+ - What should this explicitly NOT look like? Any anti-references?
35
+
36
+ ### Aesthetic Preferences
37
+ - Any strong preferences for visual direction? (minimal, bold, elegant, playful, technical, organic, etc.)
38
+ - Light mode, dark mode, or both?
39
+ - Any colors that must be used or avoided?
40
+
41
+ ### Accessibility & Inclusion
42
+ - Specific accessibility requirements? (WCAG level, known user needs)
43
+ - Considerations for reduced motion, color blindness, or other accommodations?
44
+
45
+ Skip questions where the answer is already clear from the codebase exploration.
46
+
47
+ ## Step 3: Write Design Context
48
+
49
+ Synthesize your findings and the user's answers into a `## Design Context` section:
50
+
51
+ ```markdown
52
+ ## Design Context
53
+
54
+ ### Users
55
+ [Who they are, their context, the job to be done]
56
+
57
+ ### Brand Personality
58
+ [Voice, tone, 3-word personality, emotional goals]
59
+
60
+ ### Aesthetic Direction
61
+ [Visual tone, references, anti-references, theme]
62
+
63
+ ### Design Principles
64
+ [3-5 principles derived from the conversation that should guide all design decisions]
65
+ ```
66
+
67
+ Write this section to AGENTS.md in the project root. If the file exists, append or update the Design Context section.
68
+
69
+ Confirm completion and summarize the key design principles that will now guide all future work.