picasso-skill 2.6.1 → 2.8.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.
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  </p>
6
6
 
7
7
  <p align="center">
8
- 32 reference domains &bull; 13 slash commands + 22 agent behaviors &bull; 11,000+ lines of actionable design intelligence<br/>
8
+ 33 reference domains &bull; 15 slash commands &bull; 19,000 lines of design intelligence<br/>
9
9
  Every interface looks like a senior design engineer spent days on it.
10
10
  </p>
11
11
 
@@ -36,7 +36,7 @@ Existing design skills are shallow. They tell you to "use good typography" witho
36
36
 
37
37
  ### Depth That No Other Skill Matches
38
38
 
39
- Picasso covers **32 specialized reference domains**, each with concrete rules, specific values, and ready-to-use code. This isn't a collection of vague principles -- it's an engineering specification for beautiful interfaces.
39
+ Picasso covers **33 specialized reference domains**, each with concrete rules, specific values, and ready-to-use code. This isn't a collection of vague principles -- it's an engineering specification for beautiful interfaces.
40
40
 
41
41
  | Domain | What You Get |
42
42
  |---|---|
@@ -44,7 +44,7 @@ Picasso covers **32 specialized reference domains**, each with concrete rules, s
44
44
  | **Color & Contrast** | OKLCH-based palette construction, tinted neutrals (never pure gray), 60-30-10 rule, dark mode inversion rules, "alpha is a design smell" |
45
45
  | **Spatial Design** | 4px base spacing scale, Gestalt proximity ratios (2:1 minimum), Squint Test, asymmetric grid patterns, "cards are not required" |
46
46
  | **Motion & Animation** | Duration rule (100/200/300/500ms), only animate transform+opacity, exit = 75% of entrance, grid-template-rows for height, stagger caps |
47
- | **Interaction Design** | All 8 interactive states (default/hover/focus/active/disabled/loading/error/success), dropdown positioning (#1 bug fix), Popover API, undo > confirmation |
47
+ | **UX Evaluation** | Nielsen's 10 heuristics as actionable checklist, Jobs to Be Done extraction from code, component state machines (8 states), prompt enhancement for vague requests |
48
48
  | **Responsive Design** | Input method detection (`@media pointer/hover`), safe areas, container queries, content-driven breakpoints, real device testing |
49
49
  | **Sensory Design** | soundcn (700+ CC0 sounds), web-haptics (4 presets + custom), multi-sensory integration patterns |
50
50
  | **React/Next.js** | Server Components by default, barrel import avoidance, RSC serialization minimization, React.cache() deduplication |
@@ -69,7 +69,7 @@ Picasso covers **32 specialized reference domains**, each with concrete rules, s
69
69
  | **Micro-Interactions** | IntersectionObserver scroll animations, View Transitions API, magnetic cursors, gesture detection (swipe/pinch), animation budget (max 3 concurrent) |
70
70
  | **i18n Visual Patterns** | Logical properties for RTL, text expansion by language (+35% German), CJK rendering, Noto font stacks, icon mirroring rules |
71
71
  | **Brand & Identity** | Logo sizing (min 24px), clear space rules, lockup variants, 60-30-10 brand color usage, when to bend brand rules |
72
- | **Animation Performance** | Compositor-only properties (transform + opacity only), will-change lifecycle, layout thrashing batching, `contain` property, GPU hints |
72
+ | **Visual Preview** | Self-contained HTML preview generation, side-by-side direction comparison, preset browser grid, font URL mapping, screenshot protocol |
73
73
  | **Code Typography** | JetBrains Mono/Fira Code selection, syntax highlighting contrast (3:1 min), code block design, copy button UX, diff views, terminal styling |
74
74
 
75
75
  ### The AI-Slop Firewall
@@ -102,33 +102,32 @@ Picasso doesn't just describe tools -- it specifies exactly how to use them with
102
102
 
103
103
  ---
104
104
 
105
- ## The Design Interview
105
+ ## Visual Discovery (Not a Questionnaire)
106
106
 
107
- When you first use Picasso on a project, it doesn't just start generating. It asks.
107
+ Most users can't articulate what they want but can instantly react to what they see. So Picasso shows, not asks.
108
108
 
109
109
  ```
110
- Picasso: What are we building? New project, redesign, polish, or fixing specific issues?
111
- You: New SaaS dashboard for a fintech startup
110
+ 1. CRAWL Picasso silently reads your codebase, identifies the product
111
+ type, studies 2-3 real competitors in your space.
112
112
 
113
- Picasso: Who is this for?
114
- You: Financial analysts, 30-50 age range, use Bloomberg terminals all day
113
+ 2. ASK 2-3 quick questions max: "What's the primary user action?"
114
+ "Any brand colors to keep?" "Site you love the look of?"
115
115
 
116
- Picasso: What's the vibe? Any sites you love the look of?
117
- You: Dark, dense, like Linear meets Bloomberg. Here's a reference: linear.app
116
+ 3. SHOW Generates 6-10 fast visual sample pages, each a different
117
+ design direction applied to YOUR app's actual structure.
118
+ Opens a gallery for you to browse.
118
119
 
119
- Picasso: Rate these 1-5:
120
- Animations? Mobile? Accessibility? Dark mode? Performance?
121
- You: Animations 3, Mobile 2, A11y 5, Dark mode YES, Perf 5
120
+ 4. REACT You: "Like 3 and 7. Hate the dark ones. 7 is close but
121
+ the font is too playful."
122
122
 
123
- Picasso: Got it. Here's what I'm building:
124
- Dark-tech aesthetic inspired by Linear
125
- → Dense layout (VISUAL_DENSITY: 8), subtle motion (MOTION_INTENSITY: 3)
126
- WCAG AAA accessibility, dark-first, performance-critical
127
- Generating .picasso.md and DESIGN.md now...
128
- Sound good?
123
+ 5. NARROW Generates 3-5 refined samples based on your reactions.
124
+ Each one more polished than round 1.
125
+
126
+ 6. CONFIRM You pick a direction. Picasso generates .picasso.md and
127
+ begins implementation with your real content.
129
128
  ```
130
129
 
131
- The interview generates a `.picasso.md` config that persists your preferences across every future session. Run `/picasso` anytime to redo it.
130
+ You never have to go look at design sites for inspiration. Picasso brings it to you. Your reactions reveal more preferences than any questionnaire.
132
131
 
133
132
  ---
134
133
 
@@ -170,19 +169,19 @@ A single 0-100 score, broken down by category. Track it over time.
170
169
 
171
170
  Typography: ████████████░░░ 12/15
172
171
  Color: ████████████░░░ 11/15
173
- Spacing: ████████░░ 8/10
174
- Accessibility: ████████████████ 16/20
175
- Motion: ██████░░░░ 6/10
176
- Responsive: ████████░░ 8/10
177
- Performance: ██████░░░░ 6/10
178
- Anti-Slop: ██████░░░░ 6/10
172
+ Spacing: ████████░░ 8/10
173
+ UX Heuristics: ████████████████ 16/20
174
+ Motion: ██████░░░░ 6/10
175
+ Responsive: ████████░░ 8/10
176
+ Performance: ██████░░░░ 6/10
177
+ Anti-Slop: ██████░░░░ 6/10
179
178
 
180
179
  Top fixes for +15 points:
181
- 1. Add prefers-reduced-motion support (+4)
182
- 2. Replace #000 with tinted near-black (+3)
183
- 3. Add staggered entrance animation (+3)
184
- 4. Set max-width on body text (+3)
185
- 5. Replace outline:none with focus-visible (+2)
180
+ 1. Replace default primary color with industry-appropriate choice (+4)
181
+ 2. Set max-width on body text and increase to 16px (+3)
182
+ 3. Add prefers-reduced-motion support (+3)
183
+ 4. Replace outline:none with focus-visible (+3)
184
+ 5. Replace #000 with tinted near-black (+2)
186
185
  ```
187
186
 
188
187
  ### `/steal <url>` -- Extract Any Site's Design DNA
@@ -205,22 +204,22 @@ Generates a complete design system -- palette, fonts, spacing, motion, component
205
204
 
206
205
  ### `/evolve` -- Iterative Multi-Round Refinement
207
206
 
208
- Instead of generating once and hoping, Picasso proposes 3 distinct directions, lets you pick, then refines through multiple rounds:
207
+ Proposes 3 directions as visual HTML previews, lets you pick, then implements and refines through multiple rounds with screenshots between each:
209
208
 
210
209
  ```
211
- Round 1: Here are 3 directions:
212
- A) Minimal monochrome -- Geist font, black/white, sharp corners
213
- B) Warm editorial -- Instrument Serif headers, terracotta accent, soft radius
214
- C) Dark technical -- JetBrains Mono accent, neon green, dense layout
210
+ Round 1: [generates 3 visual preview cards, screenshots them]
211
+ A) Counsel -- sage/teal, serif headers, 8px radius
212
+ B) Chambers -- dark, amber accent, monospace, 3px sharp
213
+ C) Parchment -- warm cream, terracotta, italic serif
215
214
 
216
- You: B, but darker
215
+ You: B, but less extreme
217
216
 
218
- Round 2: [implements B with darker surfaces, screenshots]
217
+ Round 2: [implements B with adjustments, screenshots running app]
219
218
  What do you love? What's not right?
220
219
 
221
220
  You: Love the typography. Cards need more breathing room.
222
221
 
223
- Round 3: [adjusts spacing, screenshots]
222
+ Round 3: [adjusts spacing, screenshots again]
224
223
  Are we there?
225
224
 
226
225
  You: Ship it.
@@ -255,14 +254,11 @@ After any `/polish` or `/redesign`, auto-generates side-by-side screenshots show
255
254
  ### `/preset <name>` -- One-Command Aesthetic
256
255
 
257
256
  ```bash
258
- /preset linear # Linear-inspired dark minimal
259
- /preset stripe # Stripe-inspired gradient editorial
260
- /preset vercel # Vercel-inspired black/white sharp
261
- /preset notion # Notion-inspired warm readable
262
- /preset brutalist # Raw, intentional, monospace
257
+ /preset # Visual browser grid of all 22 presets -- pick one
258
+ /preset bold-signal # Preview Bold Signal, then apply it
263
259
  ```
264
260
 
265
- Generates `.picasso.md` + `DESIGN.md` + updates your CSS variables in one command.
261
+ Without args: generates a visual grid showing all 22 presets with swatches, fonts, and sample buttons. Pick visually. With a name: shows a full-page preview before applying. Generates `.picasso.md` + `DESIGN.md` + updates CSS variables.
266
262
 
267
263
  ---
268
264
 
@@ -274,10 +270,10 @@ We compared Picasso against every publicly available AI design skill as of April
274
270
 
275
271
  | Metric | Picasso | Anthropic frontend-design | Impeccable | Taste Skill | Generic skills |
276
272
  |---|---|---|---|---|---|
277
- | **Reference domains** | **32** | 1 | 7 | 1 | 1-3 |
278
- | **Total lines of guidance** | **11,000+** | ~120 | ~2,500 | ~200 | 50-300 |
273
+ | **Reference domains** | **33** | 1 | 7 | 1 | 1-3 |
274
+ | **Total lines of guidance** | **19,000** | ~120 | ~2,500 | ~200 | 50-300 |
279
275
  | **Anti-pattern rules** | **50+** | ~10 | ~30 | ~5 | 0-5 |
280
- | **Steering commands** | **35** | 0 | 20 | 0 | 0-3 |
276
+ | **Slash commands** | **15** | 0 | 20 | 0 | 0-3 |
281
277
  | **ARIA patterns documented** | **12 widgets** | 0 | 0 | 0 | 0 |
282
278
  | **React performance rules** | **45 (Vercel)** | 0 | 0 | 0 | 0 |
283
279
  | **Chart/data viz guidance** | **Full matrix** | None | None | None | None |
@@ -391,7 +387,7 @@ Picasso ships as both a **skill** (knowledge base) and an **agent** (autonomous
391
387
  | **When it runs** | When you ask for design help | On explicit commands (/audit, /roast, /godmode, etc.) |
392
388
  | **Can audit code** | Only when asked | Yes, with structured scoring |
393
389
  | **Can run axe-core** | No | Yes (via CLI) |
394
- | **Can screenshot pages** | No | Yes (via Playwright MCP) |
390
+ | **Can screenshot pages** | No | Yes (via `npx playwright screenshot`) |
395
391
  | **Can auto-fix issues** | No | Yes (with pre-flight git/test checks) |
396
392
  | **Can enforce design system** | No | Yes (greps for token violations) |
397
393
  | **Enforces anti-slop gate** | Via SKILL.md instructions | Yes, mandatory before any code generation |
@@ -419,7 +415,9 @@ These have dedicated command files and can be invoked directly.
419
415
  | `/compete <url>` | Head-to-head design comparison against a competitor site |
420
416
  | `/before-after` | Visual side-by-side comparison after changes with HTML report |
421
417
  | `/preset <name>` | Apply a curated community design preset (linear, stripe, vercel, notion, etc.) |
422
- | `/variants` | Generate 2-3 distinct visual directions for A/B comparison with code previews |
418
+ | `/variants` | Generate 2-3 distinct visual directions with side-by-side visual HTML previews |
419
+ | `/preview` | Visual preview of design tokens, presets, or side-by-side direction comparison |
420
+ | `/figma` | Figma MCP integration: extract design tokens, audit, compare Figma vs live |
423
421
  | `/backlog` | Create persistent design debt backlog with impact-priority scoring in `.picasso-backlog.md` |
424
422
 
425
423
  ### `/godmode` -- The Nuclear Option
@@ -447,25 +445,17 @@ These are defined in the Picasso agent and run as part of pipelines (e.g., `/god
447
445
 
448
446
  | Behavior | What It Does |
449
447
  |---|---|
450
- | `/picasso` | Run the design interview, generates `.picasso.md` |
451
- | `/audit` | Full technical audit across typography, color, spacing, a11y, motion, responsive, interaction |
452
- | `/critique` | UX-focused review: hierarchy, clarity, emotional resonance, user flow |
448
+ | `/picasso` | Run the visual discovery process, generates `.picasso.md` |
449
+ | `/audit` | Full technical audit across typography, color, spacing, UX heuristics, motion, responsive |
453
450
  | `/polish` | Auto-fix all audit findings with smallest safe changes |
454
451
  | `/redesign` | Full audit + aggressive fixes + re-audit to verify improvement |
455
- | `/simplify` | Strip unnecessary complexity: flatten nesting, reduce color count |
456
- | `/animate` | Add purposeful motion: staggered reveals, hover states, scroll-triggered animations |
457
- | `/bolder` | Amplify timid designs: increase contrast, enlarge type, strengthen hierarchy |
458
- | `/quieter` | Tone down aggressive designs: reduce saturation, soften shadows, increase whitespace |
459
- | `/normalize` | Align with design system: replace hardcoded values with tokens |
460
452
  | `/harden` | Add error handling, loading states, empty states, edge case handling |
461
- | `/theme` | Generate or apply a theme via DESIGN.md |
462
453
  | `/stitch` | Generate a complete DESIGN.md from the current codebase |
463
454
  | `/a11y` | Full accessibility audit: axe-core + pa11y + Lighthouse with JSON parsing |
464
455
  | `/perf` | Lighthouse performance audit with Core Web Vitals pass/fail thresholds |
465
456
  | `/visual-diff` | Screenshot desktop + mobile in light/dark mode, analyze visually |
466
457
  | `/consistency` | Multi-page consistency check across all routes |
467
- | `/lint-design` | Find hardcoded colors, spacing violations, font inconsistencies, z-index chaos |
468
- | `/mood-board` | Generate visual inspiration HTML from adjectives |
458
+ | `/lint-design` | Find hardcoded colors, spacing violations, font inconsistencies |
469
459
  | `/design-system-sync` | Detect and fix drift between DESIGN.md and code |
470
460
  | `/install-hooks` | Generate git pre-commit hook for automated design checks |
471
461
  | `/ci-setup` | Generate GitHub Actions workflow for PR design review with scores |
@@ -475,38 +465,39 @@ These are defined in the Picasso agent and run as part of pipelines (e.g., `/god
475
465
  ## References
476
466
 
477
467
  ```
478
- references/ # 32 files, 9,300+ lines
468
+ references/ # 33 files, 7,000 lines
479
469
  anti-patterns.md # 50+ banned patterns (THE MOST IMPORTANT FILE)
480
- typography.md # Type systems, font pairing, scales, OpenType, vertical rhythm
481
- color-and-contrast.md # OKLCH, tinted neutrals, dark mode, 60-30-10, dangerous combos
470
+ typography.md # Type systems, font pairing, scales, vertical rhythm
471
+ color-and-contrast.md # OKLCH, tinted neutrals, dark mode, 60-30-10
482
472
  spatial-design.md # 4px spacing scale, grids, hierarchy, Squint Test
483
- depth-and-elevation.md # Dual shadows, layering, shadow scale, z-index, hover patterns
484
- motion-and-animation.md # Duration rule, easing curves, staggering, text morphing
485
- micro-interactions.md # Scroll animations, View Transitions, gestures, magnetic cursors
486
- animation-performance.md # Compositor-only props, will-change, layout thrashing, contain
487
- interaction-design.md # 8 states, forms, focus, Popover API, dropdown positioning
488
- navigation-patterns.md # Breadcrumbs, sidebar, tabs, bottom bar, mega menus, skip links
489
- tables-and-forms.md # Sortable tables, inline editing, validation, multi-step forms
490
- loading-and-states.md # Skeletons, error boundaries, 5 empty state types, offline
491
- responsive-design.md # Input method detection, safe areas, container queries
492
- dark-mode.md # Preference hierarchy, elevation, transitions, testing
493
- images-and-media.md # Format selection, srcset, favicons, OG images, video
494
- brand-and-identity.md # Logo sizing, brand color 60-30-10, lockup variants
495
- i18n-visual-patterns.md # RTL, logical properties, text expansion, CJK, Noto stacks
496
- code-typography.md # Monospace fonts, syntax highlighting, code blocks, diff views
497
- sensory-design.md # soundcn, web-haptics, multi-sensory integration
498
- react-patterns.md # Server Components, composition, state management, styling
499
- design-system.md # 9-section DESIGN.md format, theme generation, tokens
473
+ depth-and-elevation.md # Shadows, layering, z-index, hover patterns
474
+ motion-and-animation.md # Duration, easing, staggering, performance (merged)
475
+ micro-interactions.md # Scroll animations, View Transitions, gestures, cursors
476
+ navigation-patterns.md # Breadcrumbs, sidebar, tabs, bottom bar, mega menus
477
+ tables-and-forms.md # Sortable tables, inline editing, validation
478
+ loading-and-states.md # Skeletons, error boundaries, empty states, offline
479
+ responsive-design.md # Input method detection, container queries
480
+ dark-mode.md # Preference hierarchy, elevation, transitions
481
+ images-and-media.md # Format selection, srcset, favicons, OG images
482
+ brand-and-identity.md # Logo sizing, brand color, lockup variants
483
+ i18n-visual-patterns.md # RTL, logical properties, text expansion, CJK
484
+ code-typography.md # Monospace fonts, syntax highlighting, code blocks
485
+ sensory-design.md # useSound hook, haptic patterns, multi-sensory
486
+ react-patterns.md # Server Components, composition, Tailwind v4
487
+ design-system.md # DESIGN.md format, theme generation, tokens
500
488
  generative-art.md # Philosophy-first process, p5.js, seeded randomness
501
489
  component-patterns.md # 40+ components, state matrix, compound patterns
502
- ux-psychology.md # Gestalt, Fitts's/Hick's/Miller's/Jakob's Law, F/Z-pattern
503
- ux-writing.md # Error formula, button labels, empty states, terminology
490
+ ux-psychology.md # Gestalt, Fitts's/Hick's/Miller's/Jakob's Law
491
+ ux-writing.md # Error formula, button labels, terminology
492
+ ux-evaluation.md # Nielsen's 10 heuristics, JTBD, state machines
504
493
  data-visualization.md # Chart selection matrix, dashboard layouts, Tufte
505
- conversion-design.md # Landing pages, CTAs, pricing, onboarding, notifications
506
- accessibility-wcag.md # 12 ARIA patterns, WCAG 2.2, SPA focus, accessible tables
494
+ conversion-design.md # Landing pages, CTAs, pricing, onboarding
495
+ accessibility-wcag.md # ARIA patterns, WCAG 2.2, focus management
507
496
  modern-css-performance.md # Nesting, :has(), @layer, View Transitions, Tailwind v4
508
- performance-optimization.md # 45 Vercel rules across 7 priority tiers
509
- style-presets.md # 22 visual presets with OKLCH values and font pairings
497
+ performance-optimization.md # Core Web Vitals, priority tiers
498
+ style-presets.md # 22 visual presets with values and font pairings
499
+ visual-preview.md # HTML preview generation, templates, font mapping
500
+ figma-mcp.md # Figma MCP workflows, token extraction
510
501
  tools-catalog.md # torph, soundcn, Lucide, Facehash, better-icons
511
502
  ```
512
503
 
@@ -21,7 +21,7 @@ The preset name: `$ARGUMENTS`
21
21
  - Each card: preset name (in its heading font), 5-swatch color palette strip, one-line mood description, a sample button in the preset's primary color and radius
22
22
  - Card backgrounds use the preset's surface color, text uses its text color
23
23
  3. Write to `/tmp/picasso-preset-browser.html`
24
- 4. Screenshot via Bash: `npx playwright screenshot /tmp/picasso-preset-browser.html /tmp/picasso-preset-browser.png --viewport-size=1200,800`, then view with `Read`
24
+ 4. Screenshot via Bash: `npx playwright screenshot /tmp/picasso-preset-browser.html /tmp/picasso-preset-browser.png --viewport-size=1200,1600 --full-page`, then view with `Read`
25
25
  5. Present: "Here are all 22 presets. Which one catches your eye?"
26
26
  6. Wait for the user to pick
27
27
 
@@ -3,8 +3,70 @@ name: quick-audit
3
3
  description: "5-minute fast design audit: 6 binary checks (font, color, layout, spacing, a11y, anti-slop)"
4
4
  ---
5
5
 
6
- Run the Picasso /quick-audit command. Check exactly 6 things and report pass/fail for each. Takes 5 minutes, not 30.
6
+ # /quick-audit -- 5-Minute Fast Audit
7
7
 
8
- MANDATORY FIRST STEP: Take a desktop screenshot (`npx playwright screenshot http://localhost:PORT /tmp/picasso-quick-audit.png --viewport-size=1440,900`) and VIEW it with the Read tool before assessing Layout, Spacing, or Anti-Slop visually. Font and Color checks can be done from code. Accessibility can be done from code. But layout/spacing/anti-slop require visual verification.
8
+ Check exactly 6 things and report pass/fail. Takes 5 minutes, not 30.
9
9
 
10
- If screenshots fail, you can still check Font, Color, and Accessibility from code. Mark Layout, Spacing, and Anti-Slop as "SKIPPED (no screenshot available)" instead of guessing.
10
+ ## First Step
11
+
12
+ Take a desktop screenshot: `npx playwright screenshot http://localhost:PORT /tmp/picasso-quick-audit.png --viewport-size=1440,900`
13
+ View it with `Read` before assessing Layout, Spacing, or Anti-Slop.
14
+
15
+ If screenshots fail, check Font/Color/Accessibility from code. Mark Layout/Spacing/Anti-Slop as "SKIPPED (no screenshot)."
16
+
17
+ ## The 6 Checks
18
+
19
+ ### 1. Font
20
+ FAIL if primary font is any of: Inter, Roboto, Arial, Open Sans, system-ui, Helvetica.
21
+ FAIL if primary font is the framework default (Geist for Next.js, Noto Sans for Material).
22
+ PASS if a deliberately chosen, non-default font is used.
23
+
24
+ ### 2. Color
25
+ FAIL if neutrals are pure gray (#808080, #ccc, #666, #333 without hue tint).
26
+ FAIL if primary color is Tailwind's default indigo/violet/purple family.
27
+ PASS if neutrals are tinted and primary is a deliberate brand choice.
28
+
29
+ ### 3. Layout
30
+ FAIL if everything is centered on one vertical axis with no spatial variation.
31
+ PASS if layout has asymmetry, varied section widths, or intentional spatial hierarchy.
32
+ (Requires screenshot to verify.)
33
+
34
+ ### 4. Spacing
35
+ FAIL if spacing is uniform everywhere with no gestalt grouping.
36
+ PASS if spacing follows a consistent scale AND varies between groups vs. within groups.
37
+ (Requires screenshot to verify.)
38
+
39
+ ### 5. Accessibility
40
+ FAIL if `outline: none` exists without `:focus-visible` replacement.
41
+ FAIL if `prefers-reduced-motion` is not handled.
42
+ PASS if focus indicators and motion preferences are both addressed.
43
+
44
+ ### 6. Anti-Slop
45
+ FAIL if 3+ of these appear simultaneously:
46
+ - Indigo/violet/purple as primary color
47
+ - Per-card staggered entrance animations (animation-delay per stat card)
48
+ - Rainbow-coded elements (different color per icon/badge/card)
49
+ - Gradient blobs on body background
50
+ - Uniform identical card grid (all same size/radius/style)
51
+ - Icons inside colored circle/rounded-square containers
52
+ - hover:-translate-y + shadow-lg on cards
53
+ - Colored left-border or top-border per card
54
+ - Everything centered on one axis
55
+ - Same spacing between every section
56
+
57
+ PASS if fewer than 3 are present.
58
+
59
+ ## Output
60
+
61
+ ```
62
+ ## Quick Audit: [project name]
63
+
64
+ Font: PASS/FAIL (details)
65
+ Color: PASS/FAIL (details)
66
+ Layout: PASS/FAIL (details)
67
+ Spacing: PASS/FAIL (details)
68
+ Accessibility: PASS/FAIL (details)
69
+ Anti-Slop: PASS/FAIL (X fingerprints: list them)
70
+
71
+ Result: X/6 -- [one-line recommendation]
72
+ ```
package/commands/roast.md CHANGED
@@ -23,7 +23,12 @@ Rules:
23
23
  - Be funny and cutting, but never mean about the developer -- only the design
24
24
  - Every roast point MUST include the fix
25
25
  - End with a genuine compliment about what IS working
26
- - Output a Roast Score from 🔥 (barely warm) to 🔥🔥🔥🔥🔥 (absolute inferno)
26
+ - Output a Roast Score calibrated to severity:
27
+ - 🔥 (1/5): Minor polish. Good design with a few rough edges.
28
+ - 🔥🔥 (2/5): Noticeable issues. Looks decent but has clear amateur tells.
29
+ - 🔥🔥🔥 (3/5): Significant problems. AI-generated fingerprints visible. Needs real design work.
30
+ - 🔥🔥🔥🔥 (4/5): Major overhaul needed. Multiple anti-patterns, no cohesive design language.
31
+ - 🔥🔥🔥🔥🔥 (5/5): Start over. Every design decision is a default or anti-pattern.
27
32
  - Load anti-patterns.md first to check against the AI slop fingerprint
28
33
 
29
34
  Format:
package/commands/score.md CHANGED
@@ -1,28 +1,94 @@
1
- Run the Picasso /score command -- quantified design quality score.
1
+ ---
2
+ name: score
3
+ description: "Quantified 0-100 design quality score with category breakdown."
4
+ ---
2
5
 
3
- Use the Picasso agent to score the current project's frontend design on a 0-100 scale.
6
+ # /score -- Design Quality Score
4
7
 
5
- MANDATORY FIRST STEP -- Gather visual evidence before scoring:
8
+ Score the current project's frontend design on a 0-100 scale.
9
+
10
+ ## First Steps (Mandatory)
6
11
 
7
12
  1. Take screenshots: `npx playwright screenshot http://localhost:PORT /tmp/picasso-score-desktop.png --viewport-size=1440,900` (and mobile at 375,812)
8
- 2. Use the Read tool to VIEW the screenshot files before scoring visual categories
9
- 3. If screenshots fail, tell the user and score only code-auditable categories (mark visual categories as "N/A - no screenshot")
10
-
11
- If a Figma URL is provided, run /figma first to extract design tokens, then proceed with those as ground truth.
12
-
13
- ANTI-HALLUCINATION RULES:
14
- - Visual categories (Typography appearance, Color in practice, Spacing rhythm, Anti-Slop visual check) MUST be scored from screenshots, not code alone
15
- - Code-auditable categories (a11y violations via axe, transition:all grep, prefers-reduced-motion grep) can be scored from code
16
- - Never claim "this looks like X" without viewing a screenshot
17
-
18
- Categories:
19
- - Typography (0-15): font choice, type scale, max-width, line-height, letter-spacing
20
- - Color (0-15): no pure black/gray, OKLCH usage, tinted neutrals, 60-30-10, semantics
21
- - Spacing (0-10): consistent 4px scale, Gestalt grouping
22
- - Accessibility (0-20): axe-core violations, focus-visible, semantic HTML, alt text, reduced-motion
23
- - Motion (0-10): no transition:all, stagger pattern, reduced-motion, no bounce
24
- - Responsive (0-10): works at 375px, touch targets, no horizontal scroll
25
- - Performance (0-10): Lighthouse perf score mapped 0-100 -> 0-10
26
- - Anti-Slop (0-10): deductions for each AI-slop fingerprint detected (-2 each)
27
-
28
- Output format with visual bars and top fixes for maximum point improvement.
13
+ 2. View the screenshots with `Read` before scoring visual categories
14
+ 3. If screenshots fail, tell the user and score only code-auditable categories
15
+
16
+ If a Figma URL is provided, run /figma first for ground truth.
17
+
18
+ ## Scoring Categories
19
+
20
+ ### Typography (0-15)
21
+ - Font choice: not a banned default AND not a framework default (Geist for Next.js, Roboto for Material). +3
22
+ - Type scale: follows a modular ratio, not ad-hoc sizes. +3
23
+ - Body text max-width set (65ch or equivalent). +3
24
+ - Line-height: 1.5-1.6 body, 1.1-1.2 headings. +3
25
+ - Letter-spacing on uppercase text (0.05em+). +3
26
+
27
+ ### Color (0-15)
28
+ - No pure black (#000) or pure gray. +3
29
+ - OKLCH or HSL usage (not all raw hex). +3
30
+ - Neutrals tinted toward palette hue. +3
31
+ - 60-30-10 ratio (dominant surface, secondary, accent). +3
32
+ - Semantic colors defined (success, warning, error). +3
33
+
34
+ ### Spacing (0-10)
35
+ - Consistent scale (4px multiples). +5
36
+ - Gestalt grouping: tighter within groups, wider between. +5
37
+
38
+ ### UX Heuristics (0-20)
39
+ Score against Nielsen's 10 heuristics (see `references/ux-evaluation.md`), 2 pts each:
40
+ - H1: System status (loading states, feedback). +2
41
+ - H2: Real world match (clear labels, familiar icons). +2
42
+ - H3: User control (undo, escape, back). +2
43
+ - H4: Consistency (same styles everywhere). +2
44
+ - H5: Error prevention (validation, confirmation). +2
45
+ - H6: Recognition (visible labels, persistent nav). +2
46
+ - H7: Efficiency (keyboard shortcuts, bulk ops). +2
47
+ - H8: Minimal design (clear hierarchy, no clutter). +2
48
+ - H9: Error recovery (helpful error messages). +2
49
+ - H10: Help (tooltips, onboarding). +2
50
+
51
+ ### Motion (0-10)
52
+ - No `transition: all` (grep for it). +3
53
+ - Page has choreographed entrance (page-level, NOT per-card stagger). +3
54
+ - `prefers-reduced-motion` support exists. +2
55
+ - No bounce/elastic easing. +2
56
+
57
+ ### Responsive (0-10)
58
+ - Content readable at 375px. +5
59
+ - Touch targets >= 44px. +3
60
+ - No horizontal scroll on mobile. +2
61
+
62
+ ### Performance (0-10)
63
+ - If Lighthouse available: map score 0-100 to 0-10
64
+ - If Lighthouse unavailable: check for lazy loading (+3), image dimensions set (+3), font-display: swap (+2), no layout-shifting elements (+2)
65
+
66
+ ### Anti-Slop (0-10)
67
+ Start at 10, deduct -2 for each fingerprint found (minimum 0):
68
+ - Indigo/violet/purple as primary (unless user's declared brand color)
69
+ - Per-card/per-row staggered entrance animations
70
+ - Rainbow-coded elements (different color per card/badge/icon)
71
+ - Gradient blobs on body background
72
+ - Uniform identical card grid (all same size/style)
73
+ - Icons inside colored circle containers
74
+ - hover:-translate-y + shadow-lg on cards
75
+ - Colored left-border or top-border accents on cards
76
+
77
+ ## Output
78
+
79
+ ```
80
+ ## Picasso Design Score: XX/100
81
+
82
+ Typography: [bars] XX/15
83
+ Color: [bars] XX/15
84
+ Spacing: [bars] XX/10
85
+ UX Heuristics: [bars] XX/20
86
+ Motion: [bars] XX/10
87
+ Responsive: [bars] XX/10
88
+ Performance: [bars] XX/10
89
+ Anti-Slop: [bars] XX/10
90
+
91
+ Top fixes for +XX points:
92
+ 1. [specific fix] (+X)
93
+ 2. [specific fix] (+X)
94
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "picasso-skill",
3
- "version": "2.6.1",
3
+ "version": "2.8.0",
4
4
  "description": "The ultimate AI design skill for producing distinctive, production-grade frontend interfaces",
5
5
  "bin": {
6
6
  "picasso-skill": "./bin/install.mjs"