opencodekit 0.10.0 → 0.11.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 (46) hide show
  1. package/dist/index.js +1 -1
  2. package/dist/template/.opencode/agent/planner.md +3 -2
  3. package/dist/template/.opencode/command/accessibility-check.md +293 -30
  4. package/dist/template/.opencode/command/analyze-mockup.md +406 -20
  5. package/dist/template/.opencode/command/analyze-project.md +439 -30
  6. package/dist/template/.opencode/command/brainstorm.md +288 -5
  7. package/dist/template/.opencode/command/commit.md +226 -17
  8. package/dist/template/.opencode/command/create.md +138 -35
  9. package/dist/template/.opencode/command/design-audit.md +477 -29
  10. package/dist/template/.opencode/command/design.md +609 -6
  11. package/dist/template/.opencode/command/edit-image.md +223 -20
  12. package/dist/template/.opencode/command/finish.md +162 -71
  13. package/dist/template/.opencode/command/fix-ci.md +296 -24
  14. package/dist/template/.opencode/command/fix-types.md +345 -13
  15. package/dist/template/.opencode/command/fix-ui.md +293 -13
  16. package/dist/template/.opencode/command/fix.md +256 -9
  17. package/dist/template/.opencode/command/generate-diagram.md +327 -26
  18. package/dist/template/.opencode/command/generate-icon.md +266 -22
  19. package/dist/template/.opencode/command/generate-image.md +232 -12
  20. package/dist/template/.opencode/command/generate-pattern.md +234 -20
  21. package/dist/template/.opencode/command/generate-storyboard.md +231 -21
  22. package/dist/template/.opencode/command/handoff.md +202 -30
  23. package/dist/template/.opencode/command/implement.md +162 -50
  24. package/dist/template/.opencode/command/import-plan.md +247 -51
  25. package/dist/template/.opencode/command/init.md +154 -35
  26. package/dist/template/.opencode/command/integration-test.md +405 -24
  27. package/dist/template/.opencode/command/issue.md +171 -21
  28. package/dist/template/.opencode/command/new-feature.md +382 -54
  29. package/dist/template/.opencode/command/plan.md +144 -118
  30. package/dist/template/.opencode/command/pr.md +229 -28
  31. package/dist/template/.opencode/command/quick-build.md +234 -5
  32. package/dist/template/.opencode/command/research-and-implement.md +436 -12
  33. package/dist/template/.opencode/command/research-ui.md +444 -34
  34. package/dist/template/.opencode/command/research.md +173 -45
  35. package/dist/template/.opencode/command/restore-image.md +416 -22
  36. package/dist/template/.opencode/command/resume.md +439 -63
  37. package/dist/template/.opencode/command/revert-feature.md +341 -64
  38. package/dist/template/.opencode/command/review-codebase.md +193 -4
  39. package/dist/template/.opencode/command/skill-create.md +506 -14
  40. package/dist/template/.opencode/command/skill-optimize.md +487 -16
  41. package/dist/template/.opencode/command/status.md +320 -60
  42. package/dist/template/.opencode/command/summarize.md +374 -33
  43. package/dist/template/.opencode/command/triage.md +355 -0
  44. package/dist/template/.opencode/command/ui-review.md +292 -25
  45. package/dist/template/.opencode/skill/playwriter/SKILL.md +148 -0
  46. package/package.json +1 -1
@@ -1,17 +1,620 @@
1
1
  ---
2
- description: UI/UX visual design and aesthetics
3
- argument-hint: "[topic or task-id]"
2
+ description: UI/UX visual design with aesthetic direction and code output
3
+ argument-hint: "<component|page|system|'review'> [topic] [--direction:<aesthetic>] [--quick|--deep]"
4
4
  agent: vision
5
5
  ---
6
6
 
7
7
  # Design: $ARGUMENTS
8
8
 
9
+ ## Phase 1: Context Discovery
10
+
11
+ Parse `$ARGUMENTS` to determine design task:
12
+
13
+ | Task Type | Description | Output Focus |
14
+ | ------------------ | ------------------------------ | --------------------------- |
15
+ | `component <name>` | Design a specific component | Component spec + code |
16
+ | `page <name>` | Design a page layout | Layout structure + sections |
17
+ | `system` | Create/extend design system | Tokens + guidelines |
18
+ | `review <path>` | Review existing UI for quality | Findings + recommendations |
19
+
20
+ **Depth** (default: `--deep`):
21
+
22
+ - `--quick` - High-level direction + key decisions only (~5 min)
23
+ - `--deep` - Full design spec with code output (~15-20 min)
24
+
25
+ ### Detect Existing Design System
26
+
27
+ ```bash
28
+ # Check for design system in use
29
+ glob pattern="**/tailwind.config.{js,ts,mjs}"
30
+ glob pattern="**/globals.css"
31
+ glob pattern="**/components.json" # shadcn
32
+
33
+ # Read existing styles
34
+ read tailwind.config.js
35
+ read src/styles/globals.css
36
+ ```
37
+
38
+ **Identify component library:**
39
+
40
+ | File/Pattern Found | Library |
41
+ | ------------------------------------ | ---------------- |
42
+ | `components.json` with shadcn schema | shadcn/ui |
43
+ | `@mui/material` in package.json | Material UI |
44
+ | `@chakra-ui/*` | Chakra UI |
45
+ | `@radix-ui/*` only | Radix Primitives |
46
+ | None detected | Custom system |
47
+
48
+ ---
49
+
50
+ ## Phase 2: Aesthetic Direction (DECISION GATE)
51
+
9
52
  skill({ name: "frontend-aesthetics" })
10
53
 
11
- Focus on visual design: typography, color, spacing, layout, accessibility. Avoid AI slop aesthetics.
54
+ **BEFORE any design work, you MUST state:**
55
+
56
+ 1. **Aesthetic direction** — Which style(s)?
57
+ 2. **Why** — How does it fit the context/brand?
58
+
59
+ ### Available Directions
60
+
61
+ Pick ONE (or combine 2 max):
62
+
63
+ | Direction | Character | Best For |
64
+ | -------------------- | ----------------------------------------------- | ---------------------------------- |
65
+ | **Neo-Brutalist** | Raw textures, bold type, harsh contrasts | Developer tools, creative agencies |
66
+ | **Soft Minimalism** | Muted palettes, generous whitespace | SaaS, productivity apps |
67
+ | **Retro-Futuristic** | CRT effects, scan lines, neon | Gaming, entertainment |
68
+ | **Editorial** | Dynamic grids, mixed media, bold type | Magazines, portfolios |
69
+ | **Glass Morphism** | Translucent layers, backdrop blur, depth | Dashboards, modern apps |
70
+ | **Dark Academia** | Rich textures, serif type, scholarly | Education, libraries |
71
+ | **Swiss Design** | Grid systems, sans-serif, functional | Enterprise, documentation |
72
+ | **Art Deco** | Geometric patterns, gold accents, luxury | Finance, premium products |
73
+ | **Y2K Revival** | Gradients, metallics, early-web nostalgia | Youth brands, creative |
74
+ | **Organic/Natural** | Flowing shapes, nature palettes, paper textures | Wellness, sustainability |
75
+
76
+ **Override with flag:** `--direction:neo-brutalist` or `--direction:soft-minimalism+swiss`
77
+
78
+ ### Direction Declaration
79
+
80
+ ```markdown
81
+ ## Aesthetic Direction
82
+
83
+ **Selected:** [Direction name(s)]
84
+
85
+ **Rationale:** [1-2 sentences explaining why this fits]
86
+
87
+ **Key characteristics I will apply:**
88
+
89
+ - [Specific element 1]
90
+ - [Specific element 2]
91
+ - [Specific element 3]
92
+ ```
93
+
94
+ ---
95
+
96
+ ## Phase 3: Typography Specification
97
+
98
+ ### Font Selection
99
+
100
+ **Recommended fonts by context:**
101
+
102
+ | Context | Primary | Secondary |
103
+ | --------------- | ----------------------------------------------- | -------------------- |
104
+ | Code/Tech | JetBrains Mono, Fira Code, Space Mono | Inter, IBM Plex Sans |
105
+ | Editorial | Playfair Display, Crimson Pro, Instrument Serif | Source Sans 3 |
106
+ | Display/Bold | Bebas Neue, Oswald, Archivo Black | Work Sans |
107
+ | Technical/Clean | IBM Plex, Source Sans 3, Work Sans | JetBrains Mono |
108
+ | Distinctive | Bricolage Grotesque, Syne, Outfit | Space Grotesk |
109
+
110
+ **AVOID without purpose:** Inter, Roboto, Arial, system fonts
111
+
112
+ ### Type Scale
113
+
114
+ ```css
115
+ /* Type scale - adjust base for your design */
116
+ :root {
117
+ --font-sans: "Outfit", system-ui, sans-serif;
118
+ --font-mono: "JetBrains Mono", monospace;
119
+
120
+ /* Scale: 1.25 ratio (Major Third) */
121
+ --text-xs: 0.64rem; /* 10px */
122
+ --text-sm: 0.8rem; /* 13px */
123
+ --text-base: 1rem; /* 16px */
124
+ --text-lg: 1.25rem; /* 20px */
125
+ --text-xl: 1.563rem; /* 25px */
126
+ --text-2xl: 1.953rem; /* 31px */
127
+ --text-3xl: 2.441rem; /* 39px */
128
+ --text-4xl: 3.052rem; /* 49px */
129
+
130
+ /* Line heights */
131
+ --leading-tight: 1.1;
132
+ --leading-snug: 1.3;
133
+ --leading-normal: 1.5;
134
+ --leading-relaxed: 1.75;
135
+
136
+ /* Font weights - use extremes */
137
+ --font-light: 200;
138
+ --font-normal: 400;
139
+ --font-bold: 700;
140
+ --font-black: 900;
141
+ }
142
+ ```
143
+
144
+ ### Pairing Rules
145
+
146
+ - **High contrast = interesting**: Display + monospace, serif + geometric sans
147
+ - **Use weight extremes**: 200/300 vs 800/900, NOT 400 vs 600
148
+ - **Limit to 2 families**: One for headings, one for body
149
+
150
+ ---
151
+
152
+ ## Phase 4: Color Specification
153
+
154
+ ### Color Palette Structure
155
+
156
+ ```css
157
+ :root {
158
+ /* Primitives - raw color values */
159
+ --color-slate-50: #f8fafc;
160
+ --color-slate-100: #f1f5f9;
161
+ --color-slate-200: #e2e8f0;
162
+ --color-slate-300: #cbd5e1;
163
+ --color-slate-400: #94a3b8;
164
+ --color-slate-500: #64748b;
165
+ --color-slate-600: #475569;
166
+ --color-slate-700: #334155;
167
+ --color-slate-800: #1e293b;
168
+ --color-slate-900: #0f172a;
169
+ --color-slate-950: #020617;
170
+
171
+ /* Brand color (pick ONE dominant) */
172
+ --color-brand: #2563eb;
173
+ --color-brand-light: #3b82f6;
174
+ --color-brand-dark: #1d4ed8;
175
+
176
+ /* Accent (sharp contrast to brand) */
177
+ --color-accent: #f59e0b;
178
+
179
+ /* Semantic - light mode */
180
+ --background: var(--color-slate-50);
181
+ --foreground: var(--color-slate-900);
182
+ --muted: var(--color-slate-100);
183
+ --muted-foreground: var(--color-slate-500);
184
+ --primary: var(--color-brand);
185
+ --primary-foreground: white;
186
+ --secondary: var(--color-slate-100);
187
+ --secondary-foreground: var(--color-slate-900);
188
+ --accent: var(--color-accent);
189
+ --accent-foreground: var(--color-slate-900);
190
+ --destructive: #ef4444;
191
+ --destructive-foreground: white;
192
+ --success: #10b981;
193
+ --warning: #f59e0b;
194
+ --border: var(--color-slate-200);
195
+ --ring: var(--color-brand);
196
+ }
197
+
198
+ .dark {
199
+ --background: var(--color-slate-950);
200
+ --foreground: var(--color-slate-50);
201
+ --muted: var(--color-slate-800);
202
+ --muted-foreground: var(--color-slate-400);
203
+ --secondary: var(--color-slate-800);
204
+ --secondary-foreground: var(--color-slate-50);
205
+ --border: var(--color-slate-800);
206
+ }
207
+ ```
208
+
209
+ ### Color Anti-Patterns (NEVER DO)
210
+
211
+ | Anti-Pattern | Why It's Bad | Do Instead |
212
+ | --------------------------------- | -------------------------- | --------------------------------------- |
213
+ | Purple/blue gradient backgrounds | Overused AI slop signature | Solid colors or subtle texture |
214
+ | `#6366F1` or `#667eea` as primary | Generic "Tailwind indigo" | Choose distinctive brand color |
215
+ | Flat white `#FFFFFF` backgrounds | Harsh, sterile | Use warm white `#FAFAF9` or subtle gray |
216
+ | Rainbow gradients | Overwhelming, no hierarchy | Limited palette with one accent |
217
+ | Too many colors (>6 semantic) | Confusion, inconsistency | Stick to primary + accent + neutrals |
218
+
219
+ ---
220
+
221
+ ## Phase 5: Spacing & Layout
222
+
223
+ ### Spacing Scale
224
+
225
+ ```css
226
+ :root {
227
+ /* Base unit: 4px (or 0.25rem) */
228
+ --space-0: 0;
229
+ --space-1: 0.25rem; /* 4px */
230
+ --space-2: 0.5rem; /* 8px */
231
+ --space-3: 0.75rem; /* 12px */
232
+ --space-4: 1rem; /* 16px */
233
+ --space-5: 1.25rem; /* 20px */
234
+ --space-6: 1.5rem; /* 24px */
235
+ --space-8: 2rem; /* 32px */
236
+ --space-10: 2.5rem; /* 40px */
237
+ --space-12: 3rem; /* 48px */
238
+ --space-16: 4rem; /* 64px */
239
+ --space-20: 5rem; /* 80px */
240
+ --space-24: 6rem; /* 96px */
241
+ }
242
+ ```
243
+
244
+ ### Layout Patterns
245
+
246
+ ```css
247
+ /* Container */
248
+ .container {
249
+ width: 100%;
250
+ max-width: 1280px;
251
+ margin-inline: auto;
252
+ padding-inline: var(--space-4);
253
+ }
254
+
255
+ @media (min-width: 640px) {
256
+ .container {
257
+ padding-inline: var(--space-6);
258
+ }
259
+ }
260
+
261
+ @media (min-width: 1024px) {
262
+ .container {
263
+ padding-inline: var(--space-8);
264
+ }
265
+ }
266
+
267
+ /* Section spacing */
268
+ .section {
269
+ padding-block: var(--space-16);
270
+ }
271
+
272
+ @media (min-width: 768px) {
273
+ .section {
274
+ padding-block: var(--space-24);
275
+ }
276
+ }
277
+ ```
278
+
279
+ ### Responsive Breakpoints
280
+
281
+ | Breakpoint | Width | Typical Use |
282
+ | ---------- | ------ | ---------------- |
283
+ | `sm` | 640px | Mobile landscape |
284
+ | `md` | 768px | Tablets |
285
+ | `lg` | 1024px | Small laptops |
286
+ | `xl` | 1280px | Desktops |
287
+ | `2xl` | 1536px | Large screens |
288
+
289
+ ---
290
+
291
+ ## Phase 6: Component Patterns
292
+
293
+ ### For Component Design Tasks
294
+
295
+ **Component Specification Template:**
296
+
297
+ ```markdown
298
+ ## Component: [Name]
299
+
300
+ ### Purpose
301
+
302
+ [What problem does this solve?]
303
+
304
+ ### Variants
305
+
306
+ | Variant | Use Case | Visual Difference |
307
+ | ----------- | ------------------ | ----------------- |
308
+ | default | Standard usage | Base styling |
309
+ | primary | Primary action | Brand color fill |
310
+ | secondary | Secondary action | Muted background |
311
+ | outline | Tertiary action | Border only |
312
+ | ghost | Minimal prominence | No border/bg |
313
+ | destructive | Dangerous action | Red/warning color |
314
+
315
+ ### Sizes
316
+
317
+ | Size | Padding | Font Size | Min Height |
318
+ | ---- | --------- | --------- | ---------- |
319
+ | sm | 8px 12px | 14px | 32px |
320
+ | md | 10px 16px | 14px | 40px |
321
+ | lg | 12px 24px | 16px | 48px |
322
+
323
+ ### States
324
+
325
+ - Default
326
+ - Hover (subtle lightening/darkening)
327
+ - Focus (ring outline)
328
+ - Active (pressed state)
329
+ - Disabled (reduced opacity, no pointer)
330
+ - Loading (spinner, disabled interaction)
331
+
332
+ ### Accessibility
333
+
334
+ - Keyboard: [Tab, Enter, Space behavior]
335
+ - ARIA: [Required attributes]
336
+ - Focus: [Visible ring, logical order]
337
+ - Contrast: [Minimum 4.5:1 for text]
338
+ ```
339
+
340
+ ### Code Output (shadcn/Tailwind pattern)
341
+
342
+ ```tsx
343
+ import { cva, type VariantProps } from "class-variance-authority";
344
+ import { cn } from "@/lib/utils";
12
345
 
13
- **Quick design:** Provide actionable design recommendations.
346
+ const buttonVariants = cva(
347
+ // Base styles
348
+ "inline-flex items-center justify-center gap-2 rounded-md font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",
349
+ {
350
+ variants: {
351
+ variant: {
352
+ default: "bg-primary text-primary-foreground hover:bg-primary/90",
353
+ secondary:
354
+ "bg-secondary text-secondary-foreground hover:bg-secondary/80",
355
+ outline: "border border-input bg-background hover:bg-accent",
356
+ ghost: "hover:bg-accent hover:text-accent-foreground",
357
+ destructive:
358
+ "bg-destructive text-destructive-foreground hover:bg-destructive/90",
359
+ },
360
+ size: {
361
+ sm: "h-8 px-3 text-sm",
362
+ md: "h-10 px-4 text-sm",
363
+ lg: "h-12 px-6 text-base",
364
+ },
365
+ },
366
+ defaultVariants: {
367
+ variant: "default",
368
+ size: "md",
369
+ },
370
+ },
371
+ );
372
+
373
+ interface ButtonProps
374
+ extends
375
+ React.ButtonHTMLAttributes<HTMLButtonElement>,
376
+ VariantProps<typeof buttonVariants> {}
377
+
378
+ export function Button({ className, variant, size, ...props }: ButtonProps) {
379
+ return (
380
+ <button
381
+ className={cn(buttonVariants({ variant, size }), className)}
382
+ {...props}
383
+ />
384
+ );
385
+ }
386
+ ```
387
+
388
+ ---
389
+
390
+ ## Phase 7: Animation Approach
391
+
392
+ ### Recommended: Orchestrated Entrance
393
+
394
+ One coordinated animation beats scattered effects:
395
+
396
+ ```css
397
+ @keyframes revealUp {
398
+ from {
399
+ opacity: 0;
400
+ transform: translateY(20px);
401
+ }
402
+ to {
403
+ opacity: 1;
404
+ transform: translateY(0);
405
+ }
406
+ }
407
+
408
+ .hero > * {
409
+ animation: revealUp 600ms cubic-bezier(0.19, 1, 0.22, 1) both;
410
+ }
411
+
412
+ .hero > *:nth-child(1) {
413
+ animation-delay: 0ms;
414
+ }
415
+ .hero > *:nth-child(2) {
416
+ animation-delay: 80ms;
417
+ }
418
+ .hero > *:nth-child(3) {
419
+ animation-delay: 160ms;
420
+ }
421
+ .hero > *:nth-child(4) {
422
+ animation-delay: 240ms;
423
+ }
424
+ ```
425
+
426
+ ### Micro-interactions
427
+
428
+ ```css
429
+ /* Subtle hover lift */
430
+ .card {
431
+ transition:
432
+ transform 200ms ease,
433
+ box-shadow 200ms ease;
434
+ }
435
+ .card:hover {
436
+ transform: translateY(-2px);
437
+ box-shadow: 0 8px 16px -4px rgb(0 0 0 / 0.1);
438
+ }
439
+
440
+ /* Button press */
441
+ .button:active {
442
+ transform: scale(0.98);
443
+ }
444
+
445
+ /* Focus ring */
446
+ .interactive:focus-visible {
447
+ outline: none;
448
+ ring: 2px solid var(--ring);
449
+ ring-offset: 2px;
450
+ }
451
+ ```
452
+
453
+ ---
454
+
455
+ ## Phase 8: AI Slop Check (MANDATORY)
456
+
457
+ Before finalizing, verify design does NOT have ALL of these together:
458
+
459
+ ### AI Slop Signature (NEVER do all together)
460
+
461
+ | Element | Check |
462
+ | ------------------------------------------- | --------------- |
463
+ | Purple/blue gradient background | [ ] NOT present |
464
+ | Inter or system fonts only | [ ] NOT present |
465
+ | Centered hero with generic subheading | [ ] NOT present |
466
+ | 3-column feature cards with icons | [ ] NOT present |
467
+ | 16px rounded corners on everything | [ ] NOT present |
468
+ | Drop shadows on all cards | [ ] NOT present |
469
+ | "Modern, clean, simple" as only descriptors | [ ] NOT present |
470
+
471
+ **Rule:** Having 1-2 is fine. Having 5+ = AI slop. Redesign.
472
+
473
+ ### Quality Checklist
474
+
475
+ - [ ] Clear aesthetic point of view? (Can you name it?)
476
+ - [ ] Avoids AI slop signature?
477
+ - [ ] Would someone remember this tomorrow?
478
+ - [ ] Responsive design considered?
479
+ - [ ] Accessible (contrast, focus, keyboard)?
480
+ - [ ] Dark mode supported?
481
+ - [ ] Performance-friendly (minimal JS animations)?
482
+
483
+ ---
484
+
485
+ ## Phase 9: Output Format
486
+
487
+ ### For Component Design
488
+
489
+ ```markdown
490
+ ## Component Design: [Name]
491
+
492
+ ### Aesthetic Direction
493
+
494
+ [Direction + rationale]
495
+
496
+ ### Specification
497
+
498
+ [Variants, sizes, states table]
499
+
500
+ ### Code
501
+
502
+ [Full component code with cva/cn pattern]
503
+
504
+ ### Usage Examples
505
+
506
+ [3-4 usage examples]
507
+
508
+ ### Accessibility Notes
509
+
510
+ [Keyboard, ARIA, contrast requirements]
511
+ ```
512
+
513
+ ### For Page Design
514
+
515
+ ```markdown
516
+ ## Page Design: [Name]
517
+
518
+ ### Aesthetic Direction
519
+
520
+ [Direction + rationale]
521
+
522
+ ### Layout Structure
523
+
524
+ [ASCII diagram or section breakdown]
525
+
526
+ ### Sections
527
+
528
+ 1. [Section name] - [Purpose] - [Key elements]
529
+ 2. ...
530
+
531
+ ### Responsive Behavior
532
+
533
+ [How layout changes at breakpoints]
534
+
535
+ ### Code Structure
536
+
537
+ [Component composition, layout CSS]
538
+ ```
539
+
540
+ ### For System Design
541
+
542
+ ```markdown
543
+ ## Design System: [Name]
544
+
545
+ ### Aesthetic Direction
546
+
547
+ [Direction + rationale]
548
+
549
+ ### Tokens
550
+
551
+ [Full CSS variables: colors, typography, spacing]
552
+
553
+ ### Component Guidelines
554
+
555
+ [Patterns to follow, anti-patterns to avoid]
556
+
557
+ ### Tailwind Config
558
+
559
+ [Full tailwind.config.js extension]
560
+ ```
561
+
562
+ ---
563
+
564
+ ## Phase 10: Storage & Follow-up
565
+
566
+ ### Save to Memory
567
+
568
+ **Quick design:** Output inline, no save needed
569
+ **Full design:** Save to `.opencode/memory/design/specs/[YYYY-MM-DD]-[topic].md`
570
+
571
+ ### Create Implementation Tasks
572
+
573
+ For component/page designs:
574
+
575
+ ```
576
+ bd_add({
577
+ title: "Implement [component/page] design",
578
+ desc: "Build [name] per design spec at .opencode/memory/design/specs/[file].md",
579
+ type: "task",
580
+ pri: 2,
581
+ tags: ["frontend", "design"]
582
+ })
583
+ ```
584
+
585
+ ### Bead Integration
586
+
587
+ If bead exists in `$ARGUMENTS`, design within `.beads/artifacts/<bead-id>/spec.md` constraints.
588
+
589
+ ---
590
+
591
+ ## Examples
592
+
593
+ ```bash
594
+ # Design a component
595
+ /design component button --direction:neo-brutalist
596
+
597
+ # Design a page
598
+ /design page landing --direction:soft-minimalism+swiss --deep
599
+
600
+ # Create/extend design system
601
+ /design system --direction:editorial
602
+
603
+ # Review existing UI
604
+ /design review src/components/ --quick
605
+
606
+ # Quick design recommendation
607
+ /design component modal --quick
608
+ ```
609
+
610
+ ---
14
611
 
15
- **Full design:** Save to `.opencode/memory/research/YYYY-MM-DD-$ARGUMENTS-design.md`
612
+ ## Related Commands
16
613
 
17
- If bead exists, design within `.beads/artifacts/<bead-id>/spec.md` constraints.
614
+ | Need | Command |
615
+ | --------------------- | ---------------------- |
616
+ | Audit existing system | `/design-audit` |
617
+ | Analyze mockup | `/analyze-mockup` |
618
+ | Implement design | `/implement` |
619
+ | Check accessibility | `/accessibility-check` |
620
+ | Fix UI issues | `/fix-ui` |