oxycode-skills 1.0.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 (30) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +143 -0
  3. package/index.js +17 -0
  4. package/package.json +49 -0
  5. package/skills/anti-slop/README.md +106 -0
  6. package/skills/anti-slop/SKILL.md +311 -0
  7. package/skills/anti-slop/examples/before-after.md +380 -0
  8. package/skills/anti-slop/references/quality-rubric.md +313 -0
  9. package/skills/anti-slop/references/slop-patterns.md +433 -0
  10. package/skills/component-architect/README.md +186 -0
  11. package/skills/component-architect/SKILL.md +644 -0
  12. package/skills/component-architect/examples/component-patterns.md +569 -0
  13. package/skills/component-architect/references/atomic-design.md +516 -0
  14. package/skills/design-audit/README.md +114 -0
  15. package/skills/design-audit/SKILL.md +305 -0
  16. package/skills/design-audit/examples/audit-report.md +424 -0
  17. package/skills/design-audit/references/scoring-rubric.md +498 -0
  18. package/skills/design-md/README.md +106 -0
  19. package/skills/design-md/SKILL.md +262 -0
  20. package/skills/design-md/examples/bad-design.md +195 -0
  21. package/skills/design-md/examples/good-design.md +250 -0
  22. package/skills/design-md/references/design-md-spec.md +267 -0
  23. package/skills/design-md/scripts/validate.sh +134 -0
  24. package/skills/ui-builder/README.md +169 -0
  25. package/skills/ui-builder/SKILL.md +357 -0
  26. package/skills/ui-builder/examples/dashboard.md +323 -0
  27. package/skills/ui-builder/examples/landing-page.md +396 -0
  28. package/skills/ui-builder/references/component-patterns.md +396 -0
  29. package/skills/ui-builder/references/layout-system.md +423 -0
  30. package/skills/ui-builder/references/polish-checklist.md +221 -0
@@ -0,0 +1,423 @@
1
+ # Layout System Reference
2
+
3
+ ## Grid System
4
+
5
+ ### Basic Grid
6
+ ```tsx
7
+ // 2 columns
8
+ <div className="grid grid-cols-2 gap-4">
9
+ <div>Column 1</div>
10
+ <div>Column 2</div>
11
+ </div>
12
+
13
+ // 3 columns
14
+ <div className="grid grid-cols-3 gap-4">
15
+ <div>Column 1</div>
16
+ <div>Column 2</div>
17
+ <div>Column 3</div>
18
+ </div>
19
+
20
+ // 4 columns
21
+ <div className="grid grid-cols-4 gap-4">
22
+ <div>Column 1</div>
23
+ <div>Column 2</div>
24
+ <div>Column 3</div>
25
+ <div>Column 4</div>
26
+ </div>
27
+ ```
28
+
29
+ ### Responsive Grid
30
+ ```tsx
31
+ // 1 col mobile, 2 col tablet, 3 col desktop
32
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
33
+ {items.map(item => (
34
+ <Card key={item.id} {...item} />
35
+ ))}
36
+ </div>
37
+
38
+ // 1 col mobile, 2 col tablet, 4 col desktop
39
+ <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4">
40
+ {items.map(item => (
41
+ <Card key={item.id} {...item} />
42
+ ))}
43
+ </div>
44
+ ```
45
+
46
+ ### Grid with Span
47
+ ```tsx
48
+ // Full width + 2 columns
49
+ <div className="grid grid-cols-1 lg:grid-cols-3 gap-4">
50
+ <div className="lg:col-span-2">Main content</div>
51
+ <div>Sidebar</div>
52
+ </div>
53
+
54
+ // Full width + 3 columns
55
+ <div className="grid grid-cols-1 lg:grid-cols-4 gap-4">
56
+ <div className="lg:col-span-3">Main content</div>
57
+ <div>Sidebar</div>
58
+ </div>
59
+
60
+ // 2 columns + full width
61
+ <div className="grid grid-cols-1 lg:grid-cols-2 gap-4">
62
+ <div>Column 1</div>
63
+ <div>Column 2</div>
64
+ <div className="lg:col-span-2">Full width</div>
65
+ </div>
66
+ ```
67
+
68
+ ### Auto Grid
69
+ ```tsx
70
+ // Auto-fit columns
71
+ <div className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4">
72
+ {items.map(item => (
73
+ <Card key={item.id} {...item} />
74
+ ))}
75
+ </div>
76
+
77
+ // Auto-fill with min-width
78
+ <div className="grid grid-cols-[repeat(auto-fill,minmax(300px,1fr))] gap-4">
79
+ {items.map(item => (
80
+ <Card key={item.id} {...item} />
81
+ ))}
82
+ </div>
83
+ ```
84
+
85
+ ## Flexbox Patterns
86
+
87
+ ### Basic Flex
88
+ ```tsx
89
+ // Horizontal
90
+ <div className="flex">
91
+ <div>Item 1</div>
92
+ <div>Item 2</div>
93
+ <div>Item 3</div>
94
+ </div>
95
+
96
+ // Vertical
97
+ <div className="flex flex-col">
98
+ <div>Item 1</div>
99
+ <div>Item 2</div>
100
+ <div>Item 3</div>
101
+ </div>
102
+ ```
103
+
104
+ ### Flex with Gap
105
+ ```tsx
106
+ // Horizontal with gap
107
+ <div className="flex gap-4">
108
+ <div>Item 1</div>
109
+ <div>Item 2</div>
110
+ <div>Item 3</div>
111
+ </div>
112
+
113
+ // Vertical with gap
114
+ <div className="flex flex-col gap-4">
115
+ <div>Item 1</div>
116
+ <div>Item 2</div>
117
+ <div>Item 3</div>
118
+ </div>
119
+ ```
120
+
121
+ ### Flex Alignment
122
+ ```tsx
123
+ // Center items
124
+ <div className="flex items-center justify-center">
125
+ <div>Centered content</div>
126
+ </div>
127
+
128
+ // Space between
129
+ <div className="flex items-center justify-between">
130
+ <div>Left</div>
131
+ <div>Right</div>
132
+ </div>
133
+
134
+ // Space around
135
+ <div className="flex items-center justify-around">
136
+ <div>Item 1</div>
137
+ <div>Item 2</div>
138
+ <div>Item 3</div>
139
+ </div>
140
+
141
+ // Space evenly
142
+ <div className="flex items-center justify-evenly">
143
+ <div>Item 1</div>
144
+ <div>Item 2</div>
145
+ <div>Item 3</div>
146
+ </div>
147
+ ```
148
+
149
+ ### Flex Wrap
150
+ ```tsx
151
+ // Wrap items
152
+ <div className="flex flex-wrap gap-2">
153
+ {tags.map(tag => (
154
+ <span key={tag} className="px-3 py-1 bg-zinc-100 rounded-full text-sm">
155
+ {tag}
156
+ </span>
157
+ ))}
158
+ </div>
159
+ ```
160
+
161
+ ### Flex with Grow
162
+ ```tsx
163
+ // Items grow to fill space
164
+ <div className="flex gap-4">
165
+ <div className="flex-1">Fixed width</div>
166
+ <div className="flex-1">Fixed width</div>
167
+ <div className="flex-1">Fixed width</div>
168
+ </div>
169
+
170
+ // Different grow amounts
171
+ <div className="flex gap-4">
172
+ <div className="flex-1">1x</div>
173
+ <div className="flex-2">2x</div>
174
+ <div className="flex-1">1x</div>
175
+ </div>
176
+ ```
177
+
178
+ ## Spacing Patterns
179
+
180
+ ### Padding
181
+ ```tsx
182
+ // All sides
183
+ <div className="p-4">All sides</div>
184
+
185
+ // Horizontal only
186
+ <div className="px-4">Horizontal</div>
187
+
188
+ // Vertical only
189
+ <div className="py-4">Vertical</div>
190
+
191
+ // Individual sides
192
+ <div className="pt-4 pr-4 pb-4 pl-4">Individual</div>
193
+
194
+ // Responsive padding
195
+ <div className="p-4 md:p-6 lg:p-8">Responsive</div>
196
+ ```
197
+
198
+ ### Margin
199
+ ```tsx
200
+ // All sides
201
+ <div className="m-4">All sides</div>
202
+
203
+ // Horizontal only
204
+ <div className="mx-auto">Centered</div>
205
+
206
+ // Vertical only
207
+ <div className="my-4">Vertical</div>
208
+
209
+ // Auto margins
210
+ <div className="ml-auto">Push right</div>
211
+ <div className="mr-auto">Push left</div>
212
+ <div className="mx-auto">Center</div>
213
+ ```
214
+
215
+ ### Gap
216
+ ```tsx
217
+ // Flex gap
218
+ <div className="flex gap-4">Flex gap</div>
219
+
220
+ // Grid gap
221
+ <div className="grid grid-cols-3 gap-4">Grid gap</div>
222
+
223
+ // Responsive gap
224
+ <div className="flex gap-2 md:gap-4 lg:gap-6">Responsive gap</div>
225
+ ```
226
+
227
+ ## Sizing Patterns
228
+
229
+ ### Width
230
+ ```tsx
231
+ // Fixed width
232
+ <div className="w-64">Fixed 256px</div>
233
+
234
+ // Full width
235
+ <div className="w-full">Full width</div>
236
+
237
+ // Screen width
238
+ <div className="w-screen">Screen width</div>
239
+
240
+ // Min/max width
241
+ <div className="min-w-0 max-w-md">Min/max</div>
242
+
243
+ // Percentage
244
+ <div className="w-1/2">50%</div>
245
+ <div className="w-1/3">33%</div>
246
+ <div className="w-2/3">66%</div>
247
+ ```
248
+
249
+ ### Height
250
+ ```tsx
251
+ // Fixed height
252
+ <div className="h-64">Fixed 256px</div>
253
+
254
+ // Full height
255
+ <div className="h-full">Full height</div>
256
+
257
+ // Screen height
258
+ <div className="h-screen">Screen height</div>
259
+
260
+ // Min height
261
+ <div className="min-h-screen">Min screen</div>
262
+
263
+ // Max height
264
+ <div className="max-h-96">Max 384px</div>
265
+ ```
266
+
267
+ ### Responsive Sizing
268
+ ```tsx
269
+ // Responsive width
270
+ <div className="w-full md:w-1/2 lg:w-1/3">Responsive width</div>
271
+
272
+ // Responsive height
273
+ <div className="h-64 md:h-96 lg:h-screen">Responsive height</div>
274
+ ```
275
+
276
+ ## Common Layouts
277
+
278
+ ### Holy Grail Layout
279
+ ```tsx
280
+ <div className="flex flex-col min-h-screen">
281
+ <header className="h-16 border-b border-zinc-200">Header</header>
282
+
283
+ <div className="flex flex-1">
284
+ <aside className="w-64 border-r border-zinc-200">Sidebar</aside>
285
+
286
+ <main className="flex-1 p-6">Main content</main>
287
+
288
+ <aside className="w-64 border-l border-zinc-200">Right sidebar</aside>
289
+ </div>
290
+
291
+ <footer className="h-16 border-t border-zinc-200">Footer</footer>
292
+ </div>
293
+ ```
294
+
295
+ ### Sidebar Layout
296
+ ```tsx
297
+ <div className="flex h-screen">
298
+ <aside className="w-64 border-r border-zinc-200">Sidebar</aside>
299
+ <main className="flex-1 p-6">Main content</main>
300
+ </div>
301
+ ```
302
+
303
+ ### Content with Sidebar
304
+ ```tsx
305
+ <div className="flex gap-6">
306
+ <main className="flex-1">Main content</main>
307
+ <aside className="w-80">Sidebar</aside>
308
+ </div>
309
+ ```
310
+
311
+ ### Two Column Layout
312
+ ```tsx
313
+ <div className="grid grid-cols-2 gap-6">
314
+ <div>Column 1</div>
315
+ <div>Column 2</div>
316
+ </div>
317
+ ```
318
+
319
+ ### Three Column Layout
320
+ ```tsx
321
+ <div className="grid grid-cols-3 gap-6">
322
+ <div>Column 1</div>
323
+ <div>Column 2</div>
324
+ <div>Column 3</div>
325
+ </div>
326
+ ```
327
+
328
+ ### Dashboard Layout
329
+ ```tsx
330
+ <div className="flex h-screen bg-zinc-50">
331
+ {/* Sidebar */}
332
+ <aside className="w-64 border-r border-zinc-200 bg-white">
333
+ <div className="h-16 flex items-center px-6 border-b border-zinc-200">
334
+ Logo
335
+ </div>
336
+ <nav className="p-4 space-y-1">
337
+ {/* Navigation items */}
338
+ </nav>
339
+ </aside>
340
+
341
+ {/* Main Content */}
342
+ <div className="flex-1 flex flex-col overflow-hidden">
343
+ <header className="h-16 border-b border-zinc-200 bg-white px-6 flex items-center">
344
+ Header
345
+ </header>
346
+ <main className="flex-1 overflow-auto p-6">
347
+ Content
348
+ </main>
349
+ </div>
350
+ </div>
351
+ ```
352
+
353
+ ### Landing Page Layout
354
+ ```tsx
355
+ <div className="min-h-screen bg-white">
356
+ <nav className="sticky top-0 z-50 border-b border-zinc-200 bg-white/80 backdrop-blur-sm">
357
+ Navigation
358
+ </nav>
359
+
360
+ <section className="py-24 px-6">
361
+ Hero section
362
+ </section>
363
+
364
+ <section className="py-24 px-6 bg-zinc-50">
365
+ Features section
366
+ </section>
367
+
368
+ <section className="py-24 px-6">
369
+ Pricing section
370
+ </section>
371
+
372
+ <footer className="py-12 px-6 border-t border-zinc-200">
373
+ Footer
374
+ </footer>
375
+ </div>
376
+ ```
377
+
378
+ ### Auth Layout
379
+ ```tsx
380
+ <div className="min-h-screen flex">
381
+ <div className="flex-1 flex items-center justify-center p-8">
382
+ Form
383
+ </div>
384
+ <div className="hidden lg:flex flex-1 bg-zinc-900 items-center justify-center">
385
+ Branding
386
+ </div>
387
+ </div>
388
+ ```
389
+
390
+ ## Responsive Patterns
391
+
392
+ ### Mobile First
393
+ ```tsx
394
+ // Base: 1 column
395
+ // md: 2 columns
396
+ // lg: 3 columns
397
+ <div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4">
398
+ {items.map(item => (
399
+ <Card key={item.id} {...item} />
400
+ ))}
401
+ </div>
402
+ ```
403
+
404
+ ### Hide on Mobile
405
+ ```tsx
406
+ // Hidden on mobile, visible on desktop
407
+ <div className="hidden md:block">Desktop only</div>
408
+
409
+ // Visible on mobile, hidden on desktop
410
+ <div className="block md:hidden">Mobile only</div>
411
+ ```
412
+
413
+ ### Responsive Padding
414
+ ```tsx
415
+ // Small padding on mobile, larger on desktop
416
+ <div className="p-4 md:p-6 lg:p-8">Responsive padding</div>
417
+ ```
418
+
419
+ ### Responsive Text
420
+ ```tsx
421
+ // Small text on mobile, larger on desktop
422
+ <h1 className="text-2xl md:text-3xl lg:text-4xl">Responsive heading</h1>
423
+ ```
@@ -0,0 +1,221 @@
1
+ # Polish Checklist
2
+
3
+ ## Visual Quality
4
+
5
+ ### ✅ Color System
6
+ - [ ] Using design tokens (no hardcoded colors)
7
+ - [ ] Consistent color hierarchy (primary, secondary, neutral)
8
+ - [ ] Proper contrast ratios (4.5:1 for text)
9
+ - [ ] Semantic colors defined (success, warning, error)
10
+ - [ ] Dark/light theme support
11
+
12
+ ### ✅ Typography
13
+ - [ ] Consistent font family
14
+ - [ ] Proper type scale (display, heading, body)
15
+ - [ ] Correct font weights
16
+ - [ ] Readable line heights (1.5 for body)
17
+ - [ ] No orphan headings
18
+
19
+ ### ✅ Spacing
20
+ - [ ] Consistent spacing scale (4, 8, 16, 24, 32)
21
+ - [ ] Proper padding/margins
22
+ - [ ] Visual rhythm maintained
23
+ - [ ] No cramped elements
24
+
25
+ ### ✅ Borders & Shadows
26
+ - [ ] Consistent border radius
27
+ - [ ] Subtle borders (zinc-200 or zinc-800)
28
+ - [ ] Appropriate shadows for elevation
29
+ - [ ] No harsh outlines
30
+
31
+ ## Layout Quality
32
+
33
+ ### ✅ Grid System
34
+ - [ ] Responsive grid (mobile-first)
35
+ - [ ] Consistent gutters
36
+ - [ ] Proper column spans
37
+ - [ ] No overflow issues
38
+
39
+ ### ✅ Flexbox
40
+ - [ ] Proper alignment
41
+ - [ ] Consistent gaps
42
+ - [ ] No stretching issues
43
+ - [ ] Proper wrapping
44
+
45
+ ### ✅ Responsive Design
46
+ - [ ] Mobile-first approach
47
+ - [ ] Proper breakpoints
48
+ - [ ] No horizontal scroll
49
+ - [ ] Touch-friendly targets (44px min)
50
+
51
+ ## Component Quality
52
+
53
+ ### ✅ Buttons
54
+ - [ ] Proper padding (12px 24px)
55
+ - [ ] Consistent border radius
56
+ - [ ] Hover states
57
+ - [ ] Focus states
58
+ - [ ] Disabled states
59
+ - [ ] Loading states
60
+
61
+ ### ✅ Inputs
62
+ - [ ] Proper padding
63
+ - [ ] Focus states
64
+ - [ ] Error states
65
+ - [ ] Helper text
66
+ - [ ] Labels
67
+
68
+ ### ✅ Cards
69
+ - [ ] Consistent padding
70
+ - [ ] Proper shadows
71
+ - [ ] Hover effects (if interactive)
72
+ - [ ] No content overflow
73
+
74
+ ### ✅ Tables
75
+ - [ ] Proper header styling
76
+ - [ ] Row hover effects
77
+ - [ ] Responsive (horizontal scroll on mobile)
78
+ - [ ] Proper alignment
79
+
80
+ ## Accessibility
81
+
82
+ ### ✅ Semantic HTML
83
+ - [ ] Using proper HTML elements (section, article, nav, etc.)
84
+ - [ ] Proper heading hierarchy (h1 → h2 → h3)
85
+ - [ ] Lists for list content
86
+ - [ ] Tables for tabular data
87
+
88
+ ### ✅ ARIA Attributes
89
+ - [ ] aria-label for icon buttons
90
+ - [ ] aria-describedby for helper text
91
+ - [ ] aria-expanded for dropdowns
92
+ - [ ] aria-hidden for decorative elements
93
+
94
+ ### ✅ Keyboard Navigation
95
+ - [ ] Focusable elements
96
+ - [ ] Logical tab order
97
+ - [ ] Skip navigation link
98
+ - [ ] Escape to close modals
99
+
100
+ ### ✅ Color Contrast
101
+ - [ ] Text: 4.5:1 minimum
102
+ - [ ] Large text: 3:1 minimum
103
+ - [ ] UI components: 3:1 minimum
104
+ - [ ] Focus indicators: 3:1 minimum
105
+
106
+ ## Performance
107
+
108
+ ### ✅ Images
109
+ - [ ] Proper sizing
110
+ - [ ] Lazy loading
111
+ - [ ] Alt text
112
+ - [ ] Responsive images
113
+
114
+ ### ✅ Bundle Size
115
+ - [ ] No unnecessary imports
116
+ - [ ] Tree shaking enabled
117
+ - [ ] Code splitting
118
+ - [ ] Dynamic imports
119
+
120
+ ### ✅ Rendering
121
+ - [ ] No layout shifts
122
+ - [ ] Proper loading states
123
+ - [ ] Skeleton screens
124
+ - [ ] Error boundaries
125
+
126
+ ## Code Quality
127
+
128
+ ### ✅ TypeScript
129
+ - [ ] Proper types
130
+ - [ ] No `any` types
131
+ - [ ] Interface definitions
132
+ - [ ] Prop types
133
+
134
+ ### ✅ Component Structure
135
+ - [ ] Single responsibility
136
+ - [ ] Proper composition
137
+ - [ ] Reusable components
138
+ - [ ] No prop drilling
139
+
140
+ ### ✅ Styling
141
+ - [ ] Using design tokens
142
+ - [ ] No inline styles
143
+ - [ ] Consistent class names
144
+ - [ ] No !important
145
+
146
+ ### ✅ State Management
147
+ - [ ] Local state for UI
148
+ - [ ] Global state for shared data
149
+ - [ ] Proper loading states
150
+ - [ ] Error handling
151
+
152
+ ## Anti-Patterns Check
153
+
154
+ ### ❌ AI Slop Patterns
155
+ - [ ] No purple/blue gradients
156
+ - [ ] No centered everything
157
+ - [ ] No rainbow colors
158
+ - [ ] No oversized border radius
159
+ - [ ] No Inter font default
160
+ - [ ] No generic card layouts
161
+
162
+ ### ❌ Common Mistakes
163
+ - [ ] No hardcoded colors
164
+ - [ ] No inline styles
165
+ - [ ] No !important
166
+ - [ ] No vague class names
167
+ - [ ] No deep nesting
168
+
169
+ ## Final Polish
170
+
171
+ ### ✅ Visual Polish
172
+ - [ ] Consistent alignment
173
+ - [ ] Proper whitespace
174
+ - [ ] Visual hierarchy clear
175
+ - [ ] No orphan elements
176
+
177
+ ### ✅ Interaction Polish
178
+ - [ ] Hover states
179
+ - [ ] Focus states
180
+ - [ ] Active states
181
+ - [ ] Transitions (subtle, fast)
182
+
183
+ ### ✅ Content Polish
184
+ - [ ] No lorem ipsum
185
+ - [ ] Real content examples
186
+ - [ ] Proper copy
187
+ - [ ] No typos
188
+
189
+ ## Testing Checklist
190
+
191
+ ### ✅ Cross-Browser
192
+ - [ ] Chrome
193
+ - [ ] Firefox
194
+ - [ ] Safari
195
+ - [ ] Edge
196
+
197
+ ### ✅ Responsive
198
+ - [ ] Mobile (375px)
199
+ - [ ] Tablet (768px)
200
+ - [ ] Desktop (1024px)
201
+ - [ ] Large desktop (1280px)
202
+
203
+ ### ✅ Accessibility
204
+ - [ ] Screen reader test
205
+ - [ ] Keyboard navigation test
206
+ - [ ] Color contrast test
207
+ - [ ] Zoom test (200%)
208
+
209
+ ## Documentation
210
+
211
+ ### ✅ Component Docs
212
+ - [ ] Usage examples
213
+ - [ ] Props documentation
214
+ - [ ] Variants explained
215
+ - [ ] Accessibility notes
216
+
217
+ ### ✅ Design System Docs
218
+ - [ ] Design tokens defined
219
+ - [ ] Component patterns
220
+ - [ ] Layout guidelines
221
+ - [ ] Responsive breakpoints