picasso-skill 1.4.0 → 1.5.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
@@ -1,4 +1,5 @@
1
1
  <p align="center">
2
+ <img src="logo.png" alt="Picasso" width="200" /><br/><br/>
2
3
  <strong>PICASSO</strong><br/>
3
4
  The most comprehensive AI design skill ever built.
4
5
  </p>
package/agents/picasso.md CHANGED
@@ -496,6 +496,8 @@ When the user invokes these commands, execute the corresponding workflow:
496
496
  | `/design-system-sync` | Detect and fix drift between DESIGN.md and code |
497
497
  | `/preset <name>` | Apply a curated community design preset |
498
498
  | `/godmode` | The ultimate command: interview + audit + score + roast + fix everything + before/after report |
499
+ | `/quick-audit` | 5-minute fast audit: font, color, spacing, a11y, anti-slop — skip the deep dive |
500
+ | `/autorefine` | Binary evaluation loop: define 6 criteria, mutate one thing at a time, iterate to 95%+ pass rate |
499
501
 
500
502
  ## /godmode -- The Ultimate Design Transformation
501
503
 
@@ -1043,6 +1045,78 @@ failed.forEach(a => console.log(' FAIL: ' + a.id + ' - ' + a.title));
1043
1045
 
1044
1046
  Combine results from all three tools, deduplicate overlapping findings, and report with severity levels.
1045
1047
 
1048
+ ## /quick-audit -- 5-Minute Fast Audit
1049
+
1050
+ When time is short or you need a triage before committing to a full audit. Takes 5 minutes, not 30.
1051
+
1052
+ Check exactly these 6 things and report pass/fail for each:
1053
+
1054
+ 1. **Font** -- Is it a banned default (Inter, Roboto, Arial, system-ui)? → FAIL/PASS
1055
+ 2. **Color** -- Are neutrals pure gray (#808080, #ccc) or tinted? → FAIL/PASS
1056
+ 3. **Layout** -- Is everything centered on one axis with no spatial variation? → FAIL/PASS
1057
+ 4. **Spacing** -- Is spacing uniform everywhere or does it follow gestalt grouping? → FAIL/PASS
1058
+ 5. **Accessibility** -- Does `outline: none` exist without `:focus-visible` replacement? → FAIL/PASS
1059
+ 6. **Anti-Slop** -- Do 3+ AI-slop fingerprints appear simultaneously? → FAIL/PASS
1060
+
1061
+ Output format:
1062
+ ```
1063
+ ## Quick Audit: [project name]
1064
+
1065
+ Font: PASS ✓ (Cabinet Grotesk + DM Sans)
1066
+ Color: FAIL ✗ (pure #808080 in 4 places)
1067
+ Layout: PASS ✓ (asymmetric grid with primary card dominant)
1068
+ Spacing: FAIL ✗ (uniform 32px between all sections)
1069
+ Accessibility: PASS ✓ (focus-visible defined globally)
1070
+ Anti-Slop: FAIL ✗ (4 fingerprints: centered layout + uniform cards + indigo accent + same spacing)
1071
+
1072
+ Result: 3/6 — Needs work. Start with color and spacing.
1073
+ ```
1074
+
1075
+ ## /autorefine -- Binary Evaluation Loop
1076
+
1077
+ Iterative improvement using binary (pass/fail) criteria. Inspired by SkillForge's autoresearch pattern that improved one skill from 56% to 92%.
1078
+
1079
+ ### How It Works
1080
+
1081
+ 1. **Define 6 binary criteria** (exactly 6 -- fewer is insufficient signal, more is over-optimization):
1082
+ ```
1083
+ 1. Typography: Non-default font used? (yes/no)
1084
+ 2. Color: OKLCH or tinted neutrals? (yes/no)
1085
+ 3. Spacing: Follows 4px scale with gestalt grouping? (yes/no)
1086
+ 4. Anti-slop: Fewer than 3 slop fingerprints? (yes/no)
1087
+ 5. Motion: prefers-reduced-motion respected? (yes/no)
1088
+ 6. Accessibility: No axe-core critical violations? (yes/no)
1089
+ ```
1090
+
1091
+ 2. **Run baseline evaluation** -- check all 6 criteria against current state. Report pass rate (e.g., 3/6 = 50%).
1092
+
1093
+ 3. **Mutate one thing at a time.** Pick the highest-impact failing criterion. Make the smallest change that flips it from FAIL to PASS. Do NOT change multiple things simultaneously -- you need to know what worked.
1094
+
1095
+ 4. **Re-evaluate all 6 criteria** after each mutation. Sometimes fixing one thing breaks another.
1096
+
1097
+ 5. **Iterate until 95%+ pass rate** (at least 6/6) across 3 consecutive evaluations. If a criterion keeps flipping between PASS and FAIL, the fix is unstable -- investigate root cause.
1098
+
1099
+ 6. **Stop after 8 mutations maximum.** If you haven't hit 95% by then, the remaining issues are structural and need a `/redesign`, not incremental fixes.
1100
+
1101
+ ### Output format per iteration:
1102
+ ```
1103
+ ## Autorefine: Iteration 3
1104
+
1105
+ Mutation: Replaced pure grays with blue-tinted OKLCH neutrals in globals.css
1106
+
1107
+ Typography: PASS ✓
1108
+ Color: PASS ✓ ← flipped from FAIL
1109
+ Spacing: PASS ✓
1110
+ Anti-slop: PASS ✓
1111
+ Motion: FAIL ✗
1112
+ Accessibility: PASS ✓
1113
+
1114
+ Pass rate: 5/6 (83%) — up from 67%
1115
+ Next: Add prefers-reduced-motion guard to animations
1116
+ ```
1117
+
1118
+ ---
1119
+
1046
1120
  ## Rules
1047
1121
 
1048
1122
  1. Never suggest Inter, Roboto, Arial, Helvetica, or system-ui as primary fonts
@@ -0,0 +1,6 @@
1
+ ---
2
+ name: autorefine
3
+ description: "Binary evaluation loop: define 6 criteria, mutate one thing at a time, iterate to 95%+ pass rate"
4
+ ---
5
+
6
+ Run the Picasso /autorefine command. Define 6 binary criteria, evaluate current state, then mutate one thing at a time until 95%+ pass rate. Max 8 iterations.
@@ -0,0 +1,6 @@
1
+ ---
2
+ name: quick-audit
3
+ description: "5-minute fast design audit: 6 binary checks (font, color, layout, spacing, a11y, anti-slop)"
4
+ ---
5
+
6
+ Run the Picasso /quick-audit command. Check exactly 6 things and report pass/fail for each. Takes 5 minutes, not 30.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "picasso-skill",
3
- "version": "1.4.0",
3
+ "version": "1.5.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"
@@ -217,6 +217,26 @@ These optional directives can be used to steer design refinement:
217
217
 
218
218
  ---
219
219
 
220
+ ## Gotchas (Real Failure Points)
221
+
222
+ These are not best practices. These are things that actually break in production and that AI agents get wrong repeatedly. Each one has burned real time.
223
+
224
+ 1. **Font loading race condition.** Google Fonts `@import` in CSS blocks rendering. The page flashes in the system font, then shifts when the custom font loads. Fix: use `<link rel="preload" as="font">` in the `<head>`, add `font-display: swap`, and always declare a fallback stack with similar metrics. If you skip this, your type scale is wrong for the first 500ms.
225
+
226
+ 2. **Dark mode contrast passes WCAG but is unreadable.** OKLCH `0.55 0.02 230` on `0.11 0.02 230` passes the 4.5:1 ratio check but looks washed out on cheap laptop screens. Always test with a screenshot on an actual dark background, not just the contrast calculator. Text below `0.60` lightness in OKLCH needs extra chroma or a bump to `0.65+`.
227
+
228
+ 3. **`transition: all` causes invisible layout jank.** It transitions `width`, `height`, `padding` -- properties that trigger reflow. The page looks fine at 60fps on your M-series Mac but stutters on a 2019 Chromebook. Always specify exact properties: `transition: opacity 0.2s, transform 0.3s`.
229
+
230
+ 4. **Staggered animations fire on every re-render.** CSS `animation-delay` on child elements replays every time React re-renders the parent. Either use `animation-fill-mode: both` with a one-shot class that gets removed, or gate the animation behind a `data-entered` attribute set once on mount.
231
+
232
+ 5. **Responsive "works at breakpoints" but breaks between them.** Testing at 375px and 768px looks fine, but at 520px the layout collapses because you used fixed `grid-template-columns: repeat(2, 1fr)` instead of `repeat(auto-fill, minmax(280px, 1fr))`. Always test at 480px and 600px too -- these are the kill zones.
233
+
234
+ 6. **Tailwind class strings over 200 characters.** Once a class string hits 200+ characters the component is unmaintainable. Extract to a CSS class with `@apply`, or better yet, use a `cn()` utility with conditional objects. This isn't a style preference -- it's a readability threshold.
235
+
236
+ 7. **Icon SVGs without `aria-hidden="true"`.** Every inline SVG icon announces itself to screen readers as "image" with no label. Decorative icons need `aria-hidden="true"`. Icons that ARE the only content (icon-only buttons) need `aria-label` on the button instead.
237
+
238
+ ---
239
+
220
240
  ## The Non-Negotiables
221
241
 
222
242
  1. No design should ever look like "AI made this." No purple gradients on white. No Inter font. No centered everything. No cards nested in cards. No gray text on colored backgrounds.