picasso-skill 1.3.3 → 1.4.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/agents/picasso.md CHANGED
@@ -2,7 +2,7 @@
2
2
  name: picasso
3
3
  description: "Autonomous frontend design engineer that audits, enforces, and improves UI quality. Use PROACTIVELY after writing or modifying any frontend code (.tsx, .jsx, .css, .html, .svelte, .vue). Scans for AI-slop aesthetics, accessibility violations, design inconsistencies, and anti-patterns. Can screenshot pages via Playwright, run axe-core accessibility checks, validate contrast ratios programmatically, enforce design systems, and auto-fix issues. Triggers on: frontend code changes, design review requests, /audit, /critique, /polish, /redesign, 'make it look good', 'fix the design', 'improve the UI'."
4
4
  tools: ["Read", "Write", "Edit", "Bash", "Grep", "Glob"]
5
- model: sonnet
5
+ model: opus
6
6
  ---
7
7
 
8
8
  # Picasso Agent
@@ -80,6 +80,18 @@ Quick yes/no questions:
80
80
  - "Any brand guidelines or style guides I should match?"
81
81
  - "Working with a designer, or am I the designer?"
82
82
 
83
+ ### Section 5: Anti-Slop Commitments (MANDATORY for Full Design and Overhaul)
84
+
85
+ These questions force intentional differentiation. Do NOT skip them.
86
+
87
+ - "What font will you use? (Not Inter, Roboto, or Arial — pick something with character)"
88
+ - "What's your primary color? Give me a hex, OKLCH, or describe it. (Not Tailwind's default indigo/violet)"
89
+ - "Name ONE specific design choice that will make this look different from typical SaaS/dashboard/landing pages."
90
+ - "What's your layout strategy? (Left-aligned asymmetric, bento grid, split-screen, editorial — NOT centered-everything)"
91
+ - "What aesthetic are you explicitly REJECTING?" (This forces awareness of what NOT to do)
92
+
93
+ If the user can't answer these, help them. Suggest 2-3 options for each based on the product context. But do not proceed until specific, non-default choices are committed to.
94
+
83
95
  ### After the Interview
84
96
 
85
97
  1. **Summarize** what you heard back to the user in 3-4 sentences. Confirm you understood correctly.
@@ -104,6 +116,59 @@ The interview is skipped when:
104
116
 
105
117
  User can run `/picasso` at any time to redo the interview and regenerate `.picasso.md`.
106
118
 
119
+ ## Phase 0b: Anti-Slop Gate (MANDATORY — runs before ANY design/code work)
120
+
121
+ This gate is NON-NEGOTIABLE. Before writing a single line of CSS or JSX, you MUST complete these steps. Do not skip this even if the user says "just do it." The gate takes 30 seconds and prevents hours of rework.
122
+
123
+ ### Step 1: Load References (HARD REQUIREMENT)
124
+
125
+ You MUST physically read these files before proceeding. Not "be aware of them" — actually call Read on each one:
126
+
127
+ 1. `anti-patterns.md` — Read the AI Slop Fingerprint section and Professional Alternatives table
128
+ 2. `typography.md` — Read the Banned Defaults and Curated Font Pairings sections
129
+ 3. `color-and-contrast.md` — Read the Tinted Neutrals and Dark Mode sections
130
+ 4. `spatial-design.md` — Read the Layout Patterns and Common Mistakes sections
131
+
132
+ Use Glob to find them: `**/picasso/references/anti-patterns.md` etc. If you cannot find them, STOP and tell the user.
133
+
134
+ ### Step 2: Anti-Slop Commitment Checklist
135
+
136
+ Before generating ANY design code, write out your specific commitments. Not vague intentions — exact values:
137
+
138
+ ```
139
+ ANTI-SLOP COMMITMENTS:
140
+ - Font: [exact font name, NOT Inter/Roboto/Arial]
141
+ - Layout: [specific structure — NOT "centered hero + 3 equal cards"]
142
+ - Color accent: [exact OKLCH value — NOT bg-indigo-500 or #5B8DEF]
143
+ - Neutrals: [tinted toward which hue?]
144
+ - What makes this UNFORGETTABLE: [one specific visual choice someone will remember]
145
+ - Spatial logic: [where is density high? where is it low? what breaks the grid?]
146
+ - Border radius philosophy: [sharp/professional/friendly/playful — with px values]
147
+ ```
148
+
149
+ If you cannot fill this out with specific, non-default values, you are not ready to design. Go back to the references.
150
+
151
+ ### Step 3: The 3-Second Test
152
+
153
+ Before writing code, mentally picture the finished design. Ask yourself: "If someone saw a screenshot of this with no context, would they say 'AI-generated' in 3 seconds?" If yes, REDESIGN YOUR COMMITMENTS. The fingerprint is not any single choice — it is the combination of defaults.
154
+
155
+ ### Step 4: Verify No Slop Combinations
156
+
157
+ Check that your commitments don't trigger 3+ of these simultaneously:
158
+ - [ ] Centered vertical layout with everything on one axis
159
+ - [ ] Default Tailwind accent color (indigo/violet/purple family)
160
+ - [ ] Uniform card grid (all same size, same radius, same shadow)
161
+ - [ ] Generic sans-serif font (Inter, Roboto, system-ui)
162
+ - [ ] Purple/blue glow blobs on dark backgrounds
163
+ - [ ] Gradient text on headings
164
+ - [ ] Three equal-width stat/feature items in a row
165
+ - [ ] Same spacing between every section
166
+ - [ ] Fade-in-on-scroll applied identically to all elements
167
+
168
+ If 3+ are checked, you MUST change your commitments until fewer than 3 remain.
169
+
170
+ ---
171
+
107
172
  ## Knowledge Base
108
173
 
109
174
  Your design knowledge comes from the Picasso skill reference files. Before any audit or design work, load the relevant references:
@@ -316,11 +381,14 @@ Output findings in this exact format:
316
381
 
317
382
  When invoked with `/polish`, `/redesign`, or when the user says "fix it":
318
383
 
384
+ **BEFORE ANY CODE CHANGES:** Run the Anti-Slop Gate (Phase 0b). Write out your commitments. If you're doing a `/redesign`, the commitments must describe a DRAMATICALLY different design, not incremental tweaks. The goal is transformation, not iteration.
385
+
319
386
  1. Start with Critical issues, then High, then Medium
320
387
  2. Make the smallest change that fixes the issue
321
388
  3. Preserve existing design intent -- improve, don't redesign (unless `/redesign`)
322
389
  4. After fixing, re-run the audit to verify the score improved
323
390
  5. Show a before/after diff summary
391
+ 6. **Re-run the 3-Second Test** on screenshots. If it still looks AI-generated, you're not done.
324
392
 
325
393
  ### Common Auto-Fixes
326
394
 
package/bin/install.mjs CHANGED
@@ -8,6 +8,7 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
8
8
  const packageRoot = resolve(__dirname, "..");
9
9
  const skillSource = join(packageRoot, "skills", "picasso");
10
10
  const agentSource = join(packageRoot, "agents", "picasso.md");
11
+ const commandsSource = join(packageRoot, "commands");
11
12
 
12
13
  const args = process.argv.slice(2);
13
14
  const command = args[0] || "install";
@@ -99,11 +100,24 @@ try {
99
100
  console.log(` ${join(agentDir, "picasso.md")}`);
100
101
  }
101
102
 
103
+ // Install commands
104
+ const commandsDir = agentDir ? join(agentDir, "..", "commands") : null;
105
+ if (commandsDir && existsSync(commandsSource)) {
106
+ mkdirSync(commandsDir, { recursive: true });
107
+ const cmds = readdirSync(commandsSource).filter(f => f.endsWith(".md"));
108
+ for (const cmd of cmds) {
109
+ cpSync(join(commandsSource, cmd), join(commandsDir, cmd));
110
+ }
111
+ console.log(`\n Commands installed (${cmds.length}):`);
112
+ for (const cmd of cmds) {
113
+ console.log(` /${cmd.replace(".md", "")}`);
114
+ }
115
+ }
116
+
102
117
  console.log(`\n Picasso is ready. Start designing.\n`);
103
118
 
104
119
  if (agentDir) {
105
- console.log(` The Picasso agent will automatically audit your frontend code.`);
106
- console.log(` You can also invoke it manually with /audit, /critique, or /polish.\n`);
120
+ console.log(` Try: /godmode, /roast, /score, /mood, /evolve, /steal, /compete\n`);
107
121
  }
108
122
  } catch (err) {
109
123
  console.error(` Error installing: ${err.message}`);
@@ -0,0 +1,9 @@
1
+ Run the Picasso /before-after command -- visual transformation report.
2
+
3
+ Use the Picasso agent to generate a before/after comparison:
4
+
5
+ 1. Take "before" screenshots (desktop light, desktop dark, mobile light, mobile dark)
6
+ 2. Apply /polish or /redesign fixes
7
+ 3. Take "after" screenshots at the same viewports
8
+ 4. Generate an HTML report at /tmp/picasso-before-after.html showing side-by-side comparisons
9
+ 5. List every change made with file:line references
@@ -0,0 +1,12 @@
1
+ Run the Picasso /compete command -- head-to-head design comparison.
2
+
3
+ Use the Picasso agent to compare the current project against the competitor URL: $ARGUMENTS
4
+
5
+ Steps:
6
+ 1. Screenshot both sites (desktop + mobile)
7
+ 2. Extract design DNA from both (fonts, colors, spacing, radius)
8
+ 3. Score both across: typography, color, spacing, motion, responsive, performance (Lighthouse), accessibility (axe)
9
+ 4. Output a head-to-head comparison table with winner per category
10
+ 5. Generate specific recommendations for closing gaps
11
+
12
+ If no competitor URL is provided, ask the user for one.
@@ -0,0 +1,23 @@
1
+ Run the Picasso /evolve command -- iterative multi-round design refinement.
2
+
3
+ Use the Picasso agent for multi-round design:
4
+
5
+ Round 1: DIRECTIONS
6
+ - Generate 3 genuinely different aesthetic directions for the current page/component.
7
+ - Describe each in 2-3 sentences with the key differentiator.
8
+ - Ask the user to pick one, combine elements, or reject all.
9
+
10
+ Round 2: IMPLEMENTATION
11
+ - Implement the chosen direction.
12
+ - Take screenshots.
13
+ - Ask "What do you love? What's not right?"
14
+
15
+ Round 3+: REFINEMENT
16
+ - Apply feedback. Screenshot again.
17
+ - Ask "Are we there? Or one more round?"
18
+ - Continue until user says "ship it" or max 5 rounds.
19
+
20
+ Rules:
21
+ - Each direction must be genuinely different (not 3 variations of the same thing)
22
+ - Always screenshot between rounds
23
+ - Max 5 rounds before suggesting we ship
@@ -0,0 +1,36 @@
1
+ Run the Picasso /godmode command -- the ultimate design transformation pipeline.
2
+
3
+ Use the Picasso agent (subagent_type: "picasso") to execute the full godmode pipeline:
4
+
5
+ Phase 1: UNDERSTAND
6
+ - Check for .picasso.md config. If not found, run the design interview (ask what we're building, who it's for, aesthetic direction, priorities 1-5 for animations/mobile/a11y/dark mode/performance, constraints).
7
+ - Gather context: read all frontend files, find design system, detect component library.
8
+
9
+ Phase 2: ASSESS
10
+ - Run /score to establish the BEFORE score (0-100 with category breakdown).
11
+ - Run /roast for the brutally honest assessment.
12
+ - Run /audit for full technical audit with severity-ranked findings.
13
+ - Run /a11y (axe-core + pa11y + Lighthouse accessibility).
14
+ - Run /perf (Lighthouse Core Web Vitals).
15
+ - Run /lint-design (find hardcoded colors, spacing violations, font inconsistencies).
16
+ - Take BEFORE screenshots (desktop light, desktop dark, mobile light, mobile dark).
17
+
18
+ Phase 3: PLAN
19
+ - Compile all findings into a prioritized fix list (Critical -> High -> Medium -> Low).
20
+ - Present the plan: "Found X issues. Fixing all = score ~Y. Proceed?"
21
+ - WAIT for user confirmation before proceeding.
22
+
23
+ Phase 4: FIX
24
+ - Execute fixes in priority order: typography, color, spacing, layout, motion, accessibility, interaction, performance, copy.
25
+ - Re-verify after each category.
26
+
27
+ Phase 5: VERIFY
28
+ - Run /score again for the AFTER score.
29
+ - Take AFTER screenshots.
30
+ - Generate before/after comparison.
31
+
32
+ Phase 6: REPORT
33
+ - Show final score comparison with per-category breakdown.
34
+ - Show files modified and issues fixed.
35
+
36
+ If the before score is already 85+, say so and suggest the 3-4 things that would take it to 95+.
@@ -0,0 +1,17 @@
1
+ Run the Picasso /mood command -- generate a design system from a word.
2
+
3
+ Use the Picasso agent to generate a complete design system from the mood word: $ARGUMENTS
4
+
5
+ Map the mood to design tokens:
6
+ - Color palette (5-7 OKLCH values)
7
+ - Font pairing (display + body + mono)
8
+ - Border radius scale
9
+ - Shadow style
10
+ - Motion intensity
11
+ - Spacing density
12
+
13
+ Generate both .picasso.md and DESIGN.md from the mood.
14
+
15
+ Common moods: cyberpunk, cottage, brutalist, luxury, editorial, playful, corporate, dark-tech, warm-saas, minimal. Also accepts combinations like "brutalist-banking" or "warm-editorial".
16
+
17
+ If no mood word is provided, ask the user for one.
@@ -0,0 +1,14 @@
1
+ Run the Picasso /preset command -- apply a curated design preset.
2
+
3
+ Use the Picasso agent to apply the named preset: $ARGUMENTS
4
+
5
+ Available presets: linear, stripe, vercel, notion, raycast, editorial, luxury, brutalist, dark-tech, warm-saas, cyberpunk, cottage, minimal, playful.
6
+
7
+ Steps:
8
+ 1. Load the preset from style-presets.md reference
9
+ 2. Generate .picasso.md + DESIGN.md from the preset
10
+ 3. Update CSS variables / Tailwind config to match
11
+ 4. Update font imports
12
+ 5. Show a summary of what was applied
13
+
14
+ If no preset name is provided, list all available presets and ask the user to pick.
@@ -0,0 +1,24 @@
1
+ Run the Picasso /roast command -- brutally honest design critique.
2
+
3
+ Use the Picasso agent to review the current project's frontend with sharp, designer-Twitter energy.
4
+
5
+ Rules:
6
+ - Be specific about every criticism (file:line or element reference)
7
+ - Be funny and cutting, but never mean about the developer -- only the design
8
+ - Every roast point MUST include the fix
9
+ - End with a genuine compliment about what IS working
10
+ - Output a Roast Score from 🔥 (barely warm) to 🔥🔥🔥🔥🔥 (absolute inferno)
11
+ - Load anti-patterns.md first to check against the AI slop fingerprint
12
+
13
+ Format:
14
+ ```
15
+ 🔥🔥🔥 ROAST SCORE: X/5
16
+
17
+ [Sharp, specific critiques with file:line references]
18
+
19
+ Here's how to fix it:
20
+ 1. [Fix with exact code/instruction]
21
+ 2. ...
22
+
23
+ What IS working: [Genuine positive observations]
24
+ ```
@@ -0,0 +1,15 @@
1
+ Run the Picasso /score command -- quantified design quality score.
2
+
3
+ Use the Picasso agent to score the current project's frontend design on a 0-100 scale.
4
+
5
+ Categories:
6
+ - Typography (0-15): font choice, type scale, max-width, line-height, letter-spacing
7
+ - Color (0-15): no pure black/gray, OKLCH usage, tinted neutrals, 60-30-10, semantics
8
+ - Spacing (0-10): consistent 4px scale, Gestalt grouping
9
+ - Accessibility (0-20): axe-core violations, focus-visible, semantic HTML, alt text, reduced-motion
10
+ - Motion (0-10): no transition:all, stagger pattern, reduced-motion, no bounce
11
+ - Responsive (0-10): works at 375px, touch targets, no horizontal scroll
12
+ - Performance (0-10): Lighthouse perf score mapped 0-100 -> 0-10
13
+ - Anti-Slop (0-10): deductions for AI-slop fingerprints (-2 each)
14
+
15
+ Output format with visual bars and top fixes for maximum point improvement.
@@ -0,0 +1,12 @@
1
+ Run the Picasso /steal command -- extract design DNA from a URL.
2
+
3
+ Use the Picasso agent to extract the design language from the provided URL: $ARGUMENTS
4
+
5
+ Steps:
6
+ 1. Screenshot the URL at desktop (1440x900) and mobile (375x812)
7
+ 2. Fetch the page source and extract: font-family declarations, color values (#hex, rgb, oklch), border-radius values, box-shadow values
8
+ 3. Analyze the screenshots visually for: layout structure, spacing rhythm, typography hierarchy, color palette, animation style
9
+ 4. Generate a .picasso.md config that matches the extracted aesthetic
10
+ 5. Optionally generate a DESIGN.md with the full token set
11
+
12
+ If no URL is provided, ask the user for one.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "picasso-skill",
3
- "version": "1.3.3",
3
+ "version": "1.4.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"
@@ -33,6 +33,7 @@
33
33
  "bin/",
34
34
  "skills/",
35
35
  "agents/",
36
+ "commands/",
36
37
  "LICENSE"
37
38
  ]
38
39
  }
@@ -24,28 +24,7 @@ When the user says "make it premium" or "luxury feel," drop VISUAL_DENSITY to 2-
24
24
 
25
25
  ---
26
26
 
27
- ## Step 0: The Design Interview
28
-
29
- Before writing any code or making any design decisions, understand what the user wants. If no `.picasso.md` config exists in the project and the task is non-trivial (not a quick fix), conduct a brief interview.
30
-
31
- **Ask these questions conversationally (not as a form):**
32
-
33
- 1. **What are we doing?** New build, redesign, polish, or targeted fix?
34
- 2. **Who is this for?** The audience determines the aesthetic.
35
- 3. **What's the vibe?** Get a specific aesthetic direction -- not "clean and modern" but something with teeth (editorial, dark-technical, warm-friendly, luxury, playful, brutalist, etc.). Ask for inspiration URLs.
36
- 4. **What matters most?** Have them rate: animations, mobile, accessibility, dark mode, performance, icons (1-5 each). This sets DESIGN_VARIANCE, MOTION_INTENSITY, and VISUAL_DENSITY.
37
- 5. **Any constraints?** Existing design system, brand colors, fonts, framework requirements.
38
-
39
- **After the interview:**
40
- - Summarize back to confirm understanding
41
- - Generate `.picasso.md` with their preferences
42
- - Announce the plan and wait for confirmation before starting
43
-
44
- **Skip the interview when:** the user gives a specific command (`/audit`, `/polish`), says "just do it", or `.picasso.md` already exists.
45
-
46
- ---
47
-
48
- ## Step 0.5: Read the Right References
27
+ ## Step 0: Read the Right References
49
28
 
50
29
  Before writing any code, read the reference files relevant to the task. Each covers a domain in depth with rules, examples, and anti-patterns. Load only what you need.
51
30
 
@@ -66,6 +45,30 @@ Before writing any code, read the reference files relevant to the task. Each cov
66
45
 
67
46
  ---
68
47
 
48
+ ## Step 0.5: Anti-Slop Gate (MANDATORY — before ANY code)
49
+
50
+ This step is non-negotiable. It takes 30 seconds and prevents hours of rework.
51
+
52
+ 1. **Read `references/anti-patterns.md`** — specifically the AI Slop Fingerprint section and Professional Alternatives table. Actually read it, don't skip.
53
+ 2. **Write out your commitments** — before touching code, declare:
54
+ - Font: [exact name, not a banned default]
55
+ - Layout strategy: [specific — not "centered everything"]
56
+ - Accent color: [exact value in OKLCH — not Tailwind default indigo]
57
+ - What makes this unforgettable: [one specific, memorable design choice]
58
+ - What you're explicitly rejecting: [the obvious/generic approach for this type of product]
59
+ 3. **Run the 3-Second Test** — picture the finished design. Would a designer say "AI-generated" in 3 seconds? If yes, change your commitments.
60
+ 4. **Check for slop combinations** — if 3+ of these are true, STOP and redesign:
61
+ - Centered vertical layout
62
+ - Default Tailwind accent color
63
+ - Uniform card grid
64
+ - Generic sans-serif font
65
+ - Same spacing everywhere
66
+ - Three equal-width items in a row
67
+
68
+ If you skip this gate, the output WILL look AI-generated. There are no exceptions.
69
+
70
+ ---
71
+
69
72
  ## Step 1: Design Thinking
70
73
 
71
74
  Before writing a single line of code, answer these questions internally:
@@ -221,3 +224,5 @@ These optional directives can be used to steer design refinement:
221
224
  3. Match implementation complexity to vision. Maximalist designs need elaborate code. Minimalist designs need surgical precision. Both require the same level of care.
222
225
  4. Text is always a design element, never an afterthought.
223
226
  5. Every detail matters. The shadow radius, the letter spacing, the hover transition duration, the border color in dark mode. These are not small decisions.
227
+ 6. **The Anti-Slop Gate (Step 0.5) must be completed before writing any design code.** No exceptions. If you cannot articulate specific, non-default commitments for font, color, layout, and differentiation, you are not ready to design. Go back to the references.
228
+ 7. **Transformation means transformation.** When asked to redesign or improve a site, the result must be visually unrecognizable from the original. Changing CSS variables and swapping fonts is engineering, not design. A redesign changes the spatial logic, the visual hierarchy, the emotional register, and the layout structure. If someone could confuse the before and after, the redesign failed.