picasso-skill 2.6.0 → 2.6.1

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
@@ -83,7 +83,7 @@ This is what makes Picasso different from every other design tool. Generate a ga
83
83
 
84
84
  5. Also generate a single `/tmp/picasso-gallery/index.html` that shows a thumbnail grid of all samples -- each as a small card (200px wide) with the sample number and the key differentiator (font name + primary color + one-word mood).
85
85
 
86
- 6. Open the index page with Playwright MCP, screenshot at 1440x900, view with Read.
86
+ 6. Screenshot via Bash: `npx playwright screenshot /tmp/picasso-gallery/index.html /tmp/picasso-gallery.png --viewport-size=1200,800`. View: `Read /tmp/picasso-gallery.png`.
87
87
 
88
88
  7. Present: "Here are {N} directions for your app. React to what you see -- which ones do you like? Which do you hate? Anything close but needs tweaking? You can also open `/tmp/picasso-gallery/index.html` in your browser to browse them all."
89
89
 
@@ -158,7 +158,7 @@ Do NOT jump to code. Present a **Design Brief** -- a short, opinionated creative
158
158
  - Generate a self-contained HTML page showing a representative layout in the committed design tokens (nav + hero + card + buttons + input)
159
159
  - Use the Full Page Mood Preview structure from `references/visual-preview.md`
160
160
  - Write to `/tmp/picasso-brief-preview.html`
161
- - Open with Playwright MCP, screenshot, view with Read
161
+ - Screenshot via Bash: `npx playwright screenshot /tmp/picasso-brief-preview.html /tmp/picasso-brief-preview.png --viewport-size=1200,800`. View with `Read`.
162
162
  - Present alongside the text brief: "Here's what I'm proposing -- the reasoning and a visual preview."
163
163
 
164
164
  4. **Generate `.picasso.md`** from the answers and save to project root.
package/commands/mood.md CHANGED
@@ -35,7 +35,8 @@ If no mood word is provided, ask the user for one.
35
35
  - Footer with muted text
36
36
  - Load fonts using the Font Mapping table from `references/visual-preview.md`
37
37
  - Write to `/tmp/picasso-mood-{word}.html`
38
- - Open via Playwright MCP, screenshot at 1440x900, view with Read tool
38
+ - Screenshot via Bash: `npx playwright screenshot /tmp/picasso-mood-{word}.html /tmp/picasso-mood-{word}.png --viewport-size=1200,800`
39
+ - View: `Read /tmp/picasso-mood-{word}.png`
39
40
  - Present to user: "This is what '{word}' looks like as a design system. Does this feel right, or should I adjust?"
40
41
 
41
42
  3. **Wait for confirmation.** Do not write `.picasso.md` or `DESIGN.md` until the user approves the visual direction.
@@ -48,4 +49,4 @@ If no mood word is provided, ask the user for one.
48
49
 
49
50
  - Never write config files before showing the visual preview
50
51
  - If the user says "adjust" or "not quite", iterate on the tokens and regenerate the preview
51
- - If Playwright MCP is unavailable, write the HTML and tell user the path to open manually
52
+ - If npx playwright is unavailable, write the HTML and tell user the path to open manually
@@ -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. Open with Playwright MCP, screenshot at 1440x900, view with Read
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`
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
 
@@ -41,4 +41,4 @@ The preset name: `$ARGUMENTS`
41
41
  ## Rules
42
42
 
43
43
  - Never apply a preset without showing a visual preview first
44
- - If Playwright MCP is unavailable, write the HTML and give the user the file path
44
+ - If npx playwright is unavailable, write the HTML and give the user the file path
@@ -24,8 +24,8 @@ Generate and display visual previews of design options.
24
24
  - Nav bar, hero section, card grid, form, footer
25
25
  - All styled with the project's committed tokens
26
26
  5. Write to `/tmp/picasso-preview.html`
27
- 6. Open via Playwright MCP (`mcp__playwright__browser_navigate` to `file:///tmp/picasso-preview.html`)
28
- 7. Screenshot at 1440x900, view with Read tool
27
+ 6. Screenshot via Bash: `npx playwright screenshot /tmp/picasso-preview.html /tmp/picasso-preview.png --viewport-size=1200,800`
28
+ 7. View: `Read /tmp/picasso-preview.png`
29
29
  8. Present to user: "Here's what your current design tokens look like rendered. Open `/tmp/picasso-preview.html` in your browser for full resolution."
30
30
 
31
31
  ### `/preview <preset-name>`
@@ -47,6 +47,6 @@ Generate and display visual previews of design options.
47
47
  ## Rules
48
48
 
49
49
  - Always load font URLs from the Font Mapping table in `references/visual-preview.md`
50
- - If Playwright MCP is unavailable, write the file and tell the user the path to open manually
50
+ - If npx playwright is unavailable, write the file and tell the user the path to open manually
51
51
  - Never describe what the preview looks like without viewing the screenshot first
52
52
  - The HTML must be fully self-contained (inline styles, external font imports only)
@@ -21,9 +21,8 @@ Generate 2-3 genuinely different aesthetic directions and show them as a side-by
21
21
  - For each direction, render a preview card showing: color palette strip, nav bar, heading, body text, sample card, primary/secondary buttons, input field -- all in that direction's tokens
22
22
  - Load fonts using the Font Mapping table from `references/visual-preview.md`
23
23
  - Write the comparison HTML to `/tmp/picasso-variants.html`
24
- - Open via Playwright MCP: `mcp__playwright__browser_navigate` to `file:///tmp/picasso-variants.html`
25
- - Screenshot at 1440x900 viewport
26
- - View the screenshot with the Read tool
24
+ - Screenshot via Bash: `npx playwright screenshot /tmp/picasso-variants.html /tmp/picasso-variants.png --viewport-size=1200,800`
25
+ - View the screenshot: `Read /tmp/picasso-variants.png`
27
26
  6. Present the visual comparison to the user: "Here are the directions. Which speaks to you? Pick one, combine elements, or reject all."
28
27
  7. Also tell the user: "Open `/tmp/picasso-variants.html` in your browser for full resolution."
29
28
 
@@ -33,5 +32,5 @@ Generate 2-3 genuinely different aesthetic directions and show them as a side-by
33
32
  - No two directions can share the same heading font
34
33
  - At least one direction must be surprising or unconventional
35
34
  - Always include one "safe" option and one "bold" option
36
- - Visual preview is MANDATORY, not optional. If Playwright MCP is unavailable, write the HTML file and tell the user the path to open manually.
35
+ - Visual preview is MANDATORY, not optional. If npx playwright is unavailable, write the HTML file and tell the user the path to open manually.
37
36
  - Never describe what the directions look like without viewing the screenshot first
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "picasso-skill",
3
- "version": "2.6.0",
3
+ "version": "2.6.1",
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"
@@ -10,19 +10,28 @@ Every time Picasso presents 2+ aesthetic options for the user to choose from, ge
10
10
 
11
11
  ### Standard Flow
12
12
 
13
- 1. **Generate** a self-contained HTML file with inline styles and font imports
13
+ 1. **Generate** a self-contained HTML file with inline styles (NO external font imports -- use `system-ui` with font name labels)
14
14
  2. **Write** to `/tmp/picasso-preview-{name}.html`
15
- 3. **Open** via Playwright MCP: `mcp__playwright__browser_navigate` to `file:///tmp/picasso-preview-{name}.html`
16
- 4. **Screenshot** via `mcp__playwright__browser_take_screenshot`
17
- 5. **View** the screenshot with `Read` tool (mandatory -- never skip this)
18
- 6. **Present** to the user with the file path so they can also open it in their browser
15
+ 3. **Screenshot** via Bash: `npx playwright screenshot /tmp/picasso-preview-{name}.html /tmp/picasso-preview-{name}.png --viewport-size=1200,800`
16
+ - `npx playwright screenshot` accepts file paths directly (no `file://` prefix needed)
17
+ - Do NOT use `mcp__playwright__browser_navigate` + `mcp__playwright__browser_take_screenshot` -- these timeout on external font loading and block `file://` protocol
18
+ 4. **View** the screenshot with `Read /tmp/picasso-preview-{name}.png` (mandatory -- never skip this)
19
+ 5. **Present** to the user with both paths (HTML for full-res browser viewing, PNG for quick preview)
19
20
 
20
- ### If Playwright MCP Is Unavailable
21
+ ### If npx playwright Is Unavailable
21
22
 
22
23
  1. Write the HTML file to `/tmp/`
23
24
  2. Tell the user: "I've generated a visual preview at `/tmp/picasso-preview-{name}.html` -- open it in your browser to see the options."
24
25
  3. Do NOT make visual claims about what the preview looks like without viewing it
25
26
 
27
+ ### Font Rule for Previews
28
+
29
+ Do NOT import Google Fonts or Fontshare fonts via `<link>` or `@import` in preview HTML. External font loading causes screenshot timeouts. Instead:
30
+ - Use `system-ui, -apple-system, sans-serif` for body text
31
+ - Use `Georgia, serif` for serif directions
32
+ - Use `ui-monospace, monospace` for mono directions
33
+ - **Label the intended font** in each preview card: "Font: Satoshi + DM Sans" so the user knows what will be used in the real implementation
34
+
26
35
  ### File Naming
27
36
 
28
37
  - Interview aesthetics: `/tmp/picasso-interview-vibes.html`
@@ -48,9 +57,8 @@ Generate the full HTML dynamically. For each direction, substitute the actual fo
48
57
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
49
58
  <title>Picasso: Choose a Direction</title>
50
59
  <!-- Import fonts for all directions shown -->
51
- <link rel="preconnect" href="https://fonts.googleapis.com">
52
- <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
53
- <link href="https://fonts.googleapis.com/css2?family={FONT_1}&family={FONT_2}&family={FONT_3}&display=swap" rel="stylesheet">
60
+ <!-- No external font imports -- use system fonts to avoid screenshot timeouts -->
61
+ <!-- Label intended fonts in the .font-info footer of each card -->
54
62
  <style>
55
63
  * { margin: 0; padding: 0; box-sizing: border-box; }
56
64
  body {