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 +2 -2
- package/commands/mood.md +3 -2
- package/commands/preset.md +2 -2
- package/commands/preview.md +3 -3
- package/commands/variants.md +3 -4
- package/package.json +1 -1
- package/references/visual-preview.md +17 -9
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.
|
|
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
|
-
-
|
|
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
|
-
-
|
|
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
|
|
52
|
+
- If npx playwright is unavailable, write the HTML and tell user the path to open manually
|
package/commands/preset.md
CHANGED
|
@@ -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.
|
|
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
|
|
44
|
+
- If npx playwright is unavailable, write the HTML and give the user the file path
|
package/commands/preview.md
CHANGED
|
@@ -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.
|
|
28
|
-
7.
|
|
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
|
|
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)
|
package/commands/variants.md
CHANGED
|
@@ -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
|
-
-
|
|
25
|
-
-
|
|
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
|
|
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
|
@@ -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
|
|
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. **
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
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
|
|
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
|
-
|
|
52
|
-
|
|
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 {
|