@hegemonart/get-design-done 1.14.8 → 1.16.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.
Files changed (58) hide show
  1. package/.claude-plugin/marketplace.json +5 -3
  2. package/.claude-plugin/plugin.json +15 -5
  3. package/CHANGELOG.md +97 -0
  4. package/README.md +30 -0
  5. package/SKILL.md +4 -1
  6. package/agents/a11y-mapper.md +25 -0
  7. package/agents/component-benchmark-harvester.md +112 -0
  8. package/agents/component-benchmark-synthesizer.md +88 -0
  9. package/agents/design-auditor.md +92 -8
  10. package/agents/design-context-builder.md +6 -0
  11. package/agents/design-executor.md +5 -2
  12. package/agents/design-pattern-mapper.md +2 -0
  13. package/agents/design-verifier.md +11 -0
  14. package/agents/motion-mapper.md +45 -0
  15. package/agents/token-mapper.md +36 -0
  16. package/agents/visual-hierarchy-mapper.md +29 -0
  17. package/connections/design-corpora.md +158 -0
  18. package/package.json +16 -2
  19. package/reference/anti-patterns.md +69 -0
  20. package/reference/audit-scoring.md +34 -3
  21. package/reference/brand-voice.md +199 -0
  22. package/reference/checklists.md +30 -3
  23. package/reference/components/README.md +90 -0
  24. package/reference/components/TEMPLATE.md +184 -0
  25. package/reference/components/accordion.md +217 -0
  26. package/reference/components/button.md +195 -0
  27. package/reference/components/card.md +200 -0
  28. package/reference/components/checkbox.md +207 -0
  29. package/reference/components/drawer.md +201 -0
  30. package/reference/components/input.md +208 -0
  31. package/reference/components/label.md +200 -0
  32. package/reference/components/link.md +193 -0
  33. package/reference/components/modal-dialog.md +210 -0
  34. package/reference/components/popover.md +197 -0
  35. package/reference/components/radio.md +203 -0
  36. package/reference/components/select-combobox.md +219 -0
  37. package/reference/components/switch.md +194 -0
  38. package/reference/components/tabs.md +213 -0
  39. package/reference/components/tooltip.md +201 -0
  40. package/reference/data/google-fonts.csv +51 -0
  41. package/reference/data/palettes.csv +41 -0
  42. package/reference/data/styles.csv +39 -0
  43. package/reference/design-system-guidance.md +177 -0
  44. package/reference/design-systems-catalog.md +151 -0
  45. package/reference/framer-motion-patterns.md +411 -0
  46. package/reference/gestalt.md +219 -0
  47. package/reference/iconography.md +231 -0
  48. package/reference/motion.md +102 -0
  49. package/reference/palette-catalog.md +82 -0
  50. package/reference/performance.md +304 -0
  51. package/reference/registry.json +359 -28
  52. package/reference/registry.schema.json +2 -1
  53. package/reference/review-format.md +2 -2
  54. package/reference/style-vocabulary.md +62 -0
  55. package/reference/surfaces.md +114 -0
  56. package/reference/typography.md +80 -0
  57. package/reference/visual-hierarchy-layout.md +306 -0
  58. package/skills/benchmark/SKILL.md +105 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: design-auditor
3
- description: Retrospective 6-pillar audit (copy, visual hierarchy, color, typography, layout/spacing, experience) with 1–4 scores. Writes .design/DESIGN-AUDIT.md. SUPPLEMENTS the existing 7-category 0-10 system; does not replace it. Spawned by verify stage BEFORE design-verifier.
3
+ description: Retrospective 7-pillar audit (copy, visual hierarchy, color, typography, layout/spacing, experience, micro-polish) with 1–4 scores. Writes .design/DESIGN-AUDIT.md. SUPPLEMENTS the existing 7-category 0-10 system; does not replace it. Spawned by verify stage BEFORE design-verifier.
4
4
  tools: Read, Write, Bash, Grep, Glob
5
5
  color: green
6
6
  model: inherit
@@ -20,7 +20,7 @@ writes:
20
20
 
21
21
  ## Role
22
22
 
23
- You are a retrospective qualitative audit agent. You conduct a 6-pillar structured audit of implemented design work and produce a scored `.design/DESIGN-AUDIT.md` report with a priority fix list.
23
+ You are a retrospective qualitative audit agent. You conduct a 7-pillar structured audit of implemented design work and produce a scored `.design/DESIGN-AUDIT.md` report with a priority fix list.
24
24
 
25
25
  You are spawned by the verify stage **BEFORE** design-verifier. Your output — `.design/DESIGN-AUDIT.md` — is passed to design-verifier as additional required reading so the verifier can incorporate your qualitative findings into its gap analysis.
26
26
 
@@ -30,9 +30,9 @@ You run once per verify session. You do NOT remediate gaps, spawn other agents,
30
30
 
31
31
  **This audit SUPPLEMENTS the existing 7-category 0-10 scoring system in `reference/audit-scoring.md`. It does NOT replace it.**
32
32
 
33
- The existing system (7 categories: Accessibility, Visual Hierarchy, Typography, Color, Layout & Spacing, Anti-Pattern Compliance, Interaction & Motion — each scored 0–10 with weighted totals) continues to be the primary quantitative score used by design-verifier in its Phase 1 evaluation. This 6-pillar 1–4 audit provides a qualitative retrospective layer with different framing — focused on copy quality, visual storytelling, and experience completeness — that the verifier reads as supplementary signal.
33
+ The existing system (7 categories: Accessibility, Visual Hierarchy, Typography, Color, Layout & Spacing, Anti-Pattern Compliance, Interaction & Motion — each scored 0–10 with weighted totals) continues to be the primary quantitative score used by design-verifier in its Phase 1 evaluation. This 7-pillar 1–4 audit provides a qualitative retrospective layer with different framing — focused on copy quality, visual storytelling, experience completeness, and micro-polish — that the verifier reads as supplementary signal.
34
34
 
35
- Do not compute a weighted 0–100 score. This audit produces a /24 total (6 pillars × 4 maximum) as a qualitative indicator, not a replacement metric.
35
+ Do not compute a weighted 0–100 score. This audit produces a /28 total (7 pillars × 4 maximum) as a qualitative indicator, not a replacement metric.
36
36
 
37
37
  ## Required Reading
38
38
 
@@ -45,6 +45,13 @@ Minimum expected files:
45
45
  - `.design/DESIGN-PLAN.md` — planned tasks and acceptance criteria
46
46
  - `.design/tasks/` — what was actually done (glob all task files)
47
47
  - `reference/audit-scoring.md` — existing 7-category scoring rubric (understand, do not duplicate)
48
+ - `reference/brand-voice.md` — voice axes, archetype library, and tone-by-context table (use when auditing Pillar 1: Copy)
49
+ - `reference/gestalt.md` — 8 Gestalt principles with scoring rubrics (use when auditing Pillar 2: Visual Hierarchy)
50
+ - `reference/visual-hierarchy-layout.md` — Z-order, whitespace, grids, and reading-order patterns (use when auditing Pillar 2: Visual Hierarchy)
51
+ - `reference/iconography.md` — icon sizing, metaphors, library catalog, touch targets, animation guidelines
52
+ - `reference/performance.md` — Core Web Vitals budgets, JS/font/image budgets, React runtime performance
53
+ - `reference/style-vocabulary.md` — UI aesthetic catalog; use when scoring Pillar 3 (Color) style-coherence sub-check and Pillar 2 (Visual Hierarchy) signature-effects verification
54
+ - `reference/design-systems-catalog.md` — 18-system index for identifying pattern precedents and system alignment
48
55
 
49
56
  ---
50
57
 
@@ -124,6 +131,8 @@ grep -rEn "btn-primary" src/ --include="*.tsx" --include="*.jsx" 2>/dev/null | h
124
131
 
125
132
  **What this measures:** Palette harmony, semantic role consistency (red = danger only), avoidance of AI-default palettes, dark mode quality if applicable.
126
133
 
134
+ **Style-vocabulary cross-check:** Before scoring, read the `D-0N` style decision from `.design/DESIGN-CONTEXT.md` (e.g., "Glassmorphism", "Neubrutalism", "Data Dense"). Look up that style name verbatim in `reference/style-vocabulary.md` — the Light/Dark column tells you whether dark mode is required, the Signature Effects column tells you what color techniques are canonical for the style, and the Avoid For column tells you whether this style is structurally mismatched to the product type. A palette that is internally consistent but inconsistent with the declared style (e.g., hard flat fills implemented for a Glassmorphism direction) is a style coherence defect and should reduce the score by 1 point. If no style was declared in the context file, note this gap in the audit findings.
135
+
127
136
  **Audit method:**
128
137
 
129
138
  ```bash
@@ -247,6 +256,49 @@ grep -rEn "confirm\b|Confirm\b|areYouSure|destructive|danger" src/ --include="*.
247
256
 
248
257
  ---
249
258
 
259
+ ### Pillar 7: Micro-Polish
260
+
261
+ **What this measures:** Whether fine-grained implementation details conform to polish rules — correct press scales, transition specificity, hit-area sizing, tabular numerals, and typographic text-wrap. These are the details that separate "shipped" from "crafted".
262
+
263
+ **Audit method:**
264
+
265
+ Collect findings from the micro-polish sections of the mapper outputs (`.design/map/motion.md`, `.design/map/tokens.md`, `.design/map/visual-hierarchy.md`, `.design/map/a11y.md`). If those files are not yet available, run targeted grep passes:
266
+
267
+ ```bash
268
+ # transition:all violations
269
+ grep -rEn "transition:\s*all|transition-property:\s*all" src/ --include="*.css" --include="*.scss" 2>/dev/null | head -10
270
+ grep -rEn 'className="[^"]*\btransition\b[^-]' src/ --include="*.tsx" --include="*.jsx" 2>/dev/null | head -10
271
+
272
+ # will-change:all violations
273
+ grep -rEn "will-change:\s*all" src/ --include="*.css" --include="*.scss" 2>/dev/null | head -5
274
+
275
+ # Missing AnimatePresence initial={false}
276
+ grep -rEn "<AnimatePresence" src/ --include="*.tsx" --include="*.jsx" 2>/dev/null | grep -v "initial={false}" | head -10
277
+
278
+ # scale-on-press outside canonical 0.96
279
+ grep -rEn "whileTap.*scale.*0\.9[^6]|scale.*0\.9[0-4578]" src/ --include="*.tsx" --include="*.jsx" 2>/dev/null | head -10
280
+
281
+ # Missing tabular-nums on numeric elements
282
+ grep -rEn "price|counter|timer|count|amount|balance|total" src/ --include="*.tsx" --include="*.jsx" 2>/dev/null | grep -v "tabular-nums\|tabular_nums" | head -10
283
+
284
+ # Heading text-wrap:balance
285
+ grep -rEn "<h[1-3]" src/ --include="*.tsx" --include="*.jsx" 2>/dev/null | grep -v "text-balance\|text-wrap.*balance" | head -10
286
+
287
+ # Small hit-area elements
288
+ grep -rEn "w-4 h-4|w-5 h-5|w-6 h-6" src/ --include="*.tsx" --include="*.jsx" 2>/dev/null | head -10
289
+ ```
290
+
291
+ **Scoring guide:**
292
+
293
+ | Score | Criteria |
294
+ |-------|----------|
295
+ | 4 | Zero BAN/MIFB violations; all interactive scales at 0.96; headings use text-balance; numeric elements use tabular-nums; hit areas ≥ 40×40px |
296
+ | 3 | 1–3 minor violations (e.g., a missing text-balance on one heading, one off-scale press value); no hard BAN violations |
297
+ | 2 | 4–8 violations; some transition:all or will-change:all present; tabular-nums missing on multiple numeric elements |
298
+ | 1 | Systematic violations; transition:all everywhere; no text-wrap controls; small hit areas throughout; scale values inconsistent |
299
+
300
+ ---
301
+
250
302
  ## Execution Steps
251
303
 
252
304
  ### Step 1: Load Context
@@ -262,7 +314,7 @@ find src/ -name "*.tsx" -o -name "*.jsx" -o -name "*.css" -o -name "*.scss" 2>/d
262
314
 
263
315
  ### Step 3: Audit Each Pillar
264
316
 
265
- For each of the 6 pillars:
317
+ For each of the 7 pillars:
266
318
  1. Run the audit method grep commands
267
319
  2. Review output against scoring guide
268
320
  3. Assign a score (1–4) with specific evidence
@@ -285,14 +337,14 @@ Write to `.design/DESIGN-AUDIT.md` using this structure:
285
337
  ```markdown
286
338
  ---
287
339
  audited: <ISO 8601 date>
288
- total_score: N/24
340
+ total_score: N/28
289
341
  supplement_note: "Supplements 7-category 0-10 system in reference/audit-scoring.md — does not replace it"
290
342
  ---
291
343
 
292
344
  ## Design Audit — [Target Scope from DESIGN-CONTEXT.md]
293
345
 
294
346
  **Audited:** [ISO 8601 date]
295
- **Audit type:** Qualitative 6-pillar (1–4 per pillar) — SUPPLEMENTS existing 7-category 0-10 scoring
347
+ **Audit type:** Qualitative 7-pillar (1–4 per pillar) — SUPPLEMENTS existing 7-category 0-10 scoring
296
348
  **Screenshot gap:** Code-only analysis (no Playwright-MCP or dev server screenshot capture). Visual findings are inferred from source code patterns. Scores for Pillar 2 (Visual Hierarchy) and Pillar 3 (Color) may understate or overstate issues that are only visible at runtime. Human visual inspection is recommended for these pillars.
297
349
 
298
350
  ---
@@ -307,8 +359,9 @@ supplement_note: "Supplements 7-category 0-10 system in reference/audit-scoring.
307
359
  | 4. Typography | [N]/4 | [one-line summary] |
308
360
  | 5. Layout & Spacing | [N]/4 | [one-line summary] |
309
361
  | 6. Experience Design | [N]/4 | [one-line summary] |
362
+ | 7. Micro-Polish | [N]/4 | [one-line summary] |
310
363
 
311
- **Overall: [total]/24**
364
+ **Overall: [total]/28**
312
365
 
313
366
  ---
314
367
 
@@ -348,6 +401,10 @@ Listed by impact. Top 3 fixes the verifier should weight heavily.
348
401
 
349
402
  [Evidence. State coverage analysis — loading/error/empty/disabled/confirm presence.]
350
403
 
404
+ ### Pillar 7: Micro-Polish ([score]/4)
405
+
406
+ [Evidence. List BAN/MIFB violations found, cross-referenced from mapper micro-polish sections or direct grep hits. Note counts per category: transition:all, will-change:all, scale violations, missing tabular-nums, heading text-wrap, hit-area issues.]
407
+
351
408
  ---
352
409
 
353
410
  ## Screenshot Gap
@@ -363,6 +420,33 @@ This audit is **code-only**. No Playwright-MCP and no dev server screenshot capt
363
420
 
364
421
  ---
365
422
 
423
+ ## Motion Anti-Pattern Check
424
+
425
+ When the codebase uses Framer Motion (detectable by `import.*framer-motion` in source files), perform this additional check after the 6-pillar audit and include findings in **Pillar 6: Experience Design** under a `### Motion (Framer Motion)` subsection.
426
+
427
+ Read `reference/framer-motion-patterns.md` for the full rationale behind these rules. The two hard violations to surface:
428
+
429
+ **Anti-pattern 1 — Non-transform animations:** Animating `width`, `height`, `margin`, `padding`, `left`, or `top` triggers layout recalculation on every frame and causes dropped frames. Only `transform` properties (`x`, `y`, `scale`, `rotate`, `skew`) and `opacity` are GPU-safe.
430
+
431
+ ```bash
432
+ # Detect non-transform animation targets in Framer Motion usage
433
+ grep -rEn "animate=\{.*\b(width|height|margin|padding|left|top|right|bottom)\b" src/ --include="*.tsx" --include="*.jsx" 2>/dev/null | head -10
434
+ ```
435
+
436
+ **Anti-pattern 2 — Missing reduced-motion guard:** Framer Motion animations must respect `prefers-reduced-motion`. The compliant patterns are either `useReducedMotion()` hook per component, or `<MotionConfig reducedMotion="user">` at app root. Absence of either is an accessibility violation.
437
+
438
+ ```bash
439
+ # Check for MotionConfig with reducedMotion at app root
440
+ grep -rEn "reducedMotion|useReducedMotion" src/ --include="*.tsx" --include="*.jsx" 2>/dev/null | head -10
441
+
442
+ # Confirm framer-motion is in use
443
+ grep -rEl "from ['\"]framer-motion['\"]" src/ --include="*.tsx" --include="*.jsx" 2>/dev/null | wc -l
444
+ ```
445
+
446
+ If framer-motion is in use and neither `reducedMotion="user"` in `MotionConfig` nor `useReducedMotion` calls are found, flag this as a high-priority accessibility gap in the Priority Fix List.
447
+
448
+ ---
449
+
366
450
  ## Constraints
367
451
 
368
452
  **MUST NOT:**
@@ -341,6 +341,10 @@ The NOT is equally important:
341
341
  - "NOT another purple-gradient AI product"
342
342
  - "NOT enterprise blue and gray"
343
343
 
344
+ **Palette proposal (palette-catalog.md):** Once the product type is known from Area 1 and the brand direction is established above, look up the matching row in `reference/palette-catalog.md`. Pre-populate `D-02` with the vertical's palette as the baseline. If the product spans two verticals, anchor on the primary revenue-model vertical and note the borrow from the secondary. Always cross-check the palette against the voice axis from `reference/brand-voice.md` — a mismatch (e.g., "authoritative navy" palette + "playful irreverent" voice) must be surfaced as a gray area.
345
+
346
+ **Style direction (style-vocabulary.md):** Ask the user to confirm or adjust the inferred UI aesthetic style before writing the context file. Infer the style from the brand direction words captured above. Look up the inferred style name verbatim in `reference/style-vocabulary.md` to confirm it is coherent with the product type (Best For / Avoid For columns) and to surface the performance cost (Performance column) in the Constraints section. Record the confirmed style name verbatim in the context file as a `D-0N` decision so downstream agents can pattern-match it. Example: `D-04: [Style] "Glassmorphism Dark" — confirmed for gaming media player context; GPU cost noted in constraints.`
347
+
344
348
  ### Area 5 — Visual References (Refero-augmented)
345
349
 
346
350
  This area uses Refero MCP when available, with graceful fallback to local brand archetypes and finally WebFetch. Refero tool names may vary — verify via ToolSearch before calling.
@@ -572,6 +576,8 @@ C-04: [other constraints]
572
576
  - ${CLAUDE_PLUGIN_ROOT}/reference/audit-scoring.md
573
577
  - ${CLAUDE_PLUGIN_ROOT}/reference/motion.md
574
578
  - ${CLAUDE_PLUGIN_ROOT}/reference/heuristics.md
579
+ - ${CLAUDE_PLUGIN_ROOT}/reference/iconography.md
580
+ - ${CLAUDE_PLUGIN_ROOT}/reference/performance.md
575
581
  </canonical_refs>
576
582
 
577
583
  <baseline_audit>
@@ -220,7 +220,9 @@ Work through the accessibility checklist:
220
220
 
221
221
  ### Type: motion
222
222
 
223
- Read `reference/motion.md` before starting.
223
+ Read `reference/motion.md` and `reference/framer-motion-patterns.md` before starting.
224
+
225
+ `reference/framer-motion-patterns.md` contains Framer Motion-specific implementation patterns that complement the framework-agnostic rules in `reference/motion.md`. When the codebase uses Framer Motion (detectable by `framer-motion` imports), apply the patterns from that file: spring/tween configuration, `AnimatePresence` with `initial={false}`, layout animations, variants with `staggerChildren`, gesture props (`whileHover`, `whileTap` at scale 0.96), `useReducedMotion` or `MotionConfig reducedMotion="user"` for a11y, and the hard constraint that `bounce: 0` for all micro-interactions.
224
226
 
225
227
  Apply the 5-question framework to every animation/transition in scope:
226
228
 
@@ -238,6 +240,7 @@ Also: verify exit animations are 60–70% of enter duration.
238
240
  ### Type: copy
239
241
 
240
242
  Read `reference/anti-patterns.md` copy section before starting.
243
+ Read `reference/brand-voice.md` — voice axes, archetype library, and tone-by-context table provide the authoritative copy standards for this task type.
241
244
 
242
245
  1. **Audit all user-visible text**: scan files in scope for button labels, error messages, empty states, tooltips, placeholder text.
243
246
  2. **Apply UX copy standards**:
@@ -266,7 +269,7 @@ Read `reference/heuristics.md` (if present) before starting. Apply NNG heuristic
266
269
 
267
270
  ### Type: tokens
268
271
 
269
- Read `reference/anti-patterns.md` and DESIGN-CONTEXT.md before starting.
272
+ Read `reference/anti-patterns.md`, `reference/design-system-guidance.md`, and DESIGN-CONTEXT.md before starting. The design-system-guidance file provides the semantic-layer naming conventions, multi-brand token architecture, and component API conventions that govern how tokens should be named and structured.
270
273
 
271
274
  1. **Audit magic values**: grep all literal CSS values (px, rem, #hex, rgb(), etc.) across scope files.
272
275
  2. **Organize by role**: group values into categories — color, spacing, typography, radius, shadow, z-index.
@@ -36,6 +36,7 @@ The orchestrating stage supplies a `<required_reading>` block in the prompt pass
36
36
  - `.design/STATE.md` — current pipeline position and source roots
37
37
  - `.design/DESIGN-CONTEXT.md` — goals, decisions, must-haves, baseline audit, domain, scopes
38
38
  - `reference/audit-scoring.md` — maps task types to scoring categories
39
+ - `reference/brand-voice.md` — voice axis defaults and industry context (use when classifying copy-system patterns and inferring brand register from existing UI text)
39
40
 
40
41
  **Invariant:** Read every file in the `<required_reading>` block before taking any other action.
41
42
 
@@ -186,6 +187,7 @@ _Dominant styling approach: [CSS Modules | Tailwind | styled-components | inline
186
187
  | `spacing-system` | Padding, margin, gap, spacing scale |
187
188
  | `typography-system` | Font size, weight, family, line-height |
188
189
  | `component-styling` | How components apply styles (CSS Modules, Tailwind, etc.) |
190
+ | `iconography-system` | Icon library in use, stroke weight, sizing conventions, touch targets |
189
191
 
190
192
  **DO NOT use:** controller, service, middleware, CRUD, data flow, request-response, event-driven. Those are code-architecture terms and have no meaning in design pattern analysis.
191
193
 
@@ -120,6 +120,11 @@ Anti-Patterns (weight 10%):
120
120
  Motion (weight 5%):
121
121
  Score: [N]/10
122
122
  Evidence: [easing values, reduced-motion presence, duration range]
123
+
124
+ Micro-Polish (qualitative supplement — from DESIGN-AUDIT.md Pillar 7):
125
+ Score: [N]/4 (not weighted into the 0–100 total; reported as supplementary signal)
126
+ Violations flagged: [list BAN/MIFB hits from mapper micro-polish sections]
127
+ Notes: [brief summary — 0 violations = clean; list categories with hits]
123
128
  ```
124
129
 
125
130
  **Weighted total:**
@@ -128,6 +133,8 @@ Score = (Accessibility × 0.25) + (Visual Hierarchy × 0.20) + (Typography × 0.
128
133
  + (Color × 0.15) + (Layout × 0.10) + (Anti-Patterns × 0.10) + (Motion × 0.05)
129
134
  ```
130
135
 
136
+ Note: Micro-Polish is a qualitative supplement (drawn from DESIGN-AUDIT.md Pillar 7) and is reported alongside the weighted total but does not alter the 0–100 score. If Pillar 7 score is 1 or 2 and violations are systemic, flag as a MINOR or MAJOR gap in Phase 5.
137
+
131
138
  **Delta vs baseline:**
132
139
  ```
133
140
  Before: [baseline_score from DESIGN-CONTEXT.md]/100
@@ -149,6 +156,8 @@ Before → After
149
156
  ─────────────────────────────────
150
157
  Total: [baseline]/100 → [new]/100 ([+N] improvement)
151
158
  Grade: [before grade] → [after grade]
159
+ ─────────────────────────────────
160
+ Micro-Polish (suppl.): [N]/4 — [N] violations *(not weighted)*
152
161
  ━━━━━━━━━━━━━━━━━━━━━
153
162
  ```
154
163
 
@@ -383,6 +392,7 @@ If no `.pen` files: skip silently. Print: `pencil.dev spec diff: no .pen files
383
392
 
384
393
  Collect all failures from Phases 1–4:
385
394
  - Phase 1: category scores still below 7 (despite design pass)
395
+ - Phase 1 (micro-polish supplement): Pillar 7 score of 1 or 2 with systemic violations → MINOR or MAJOR gap
386
396
  - Phase 2: `✗ FAIL` must-haves
387
397
  - Phase 3: NNG scores of 0 or 1 on any heuristic
388
398
  - Phase 4: visual UAT `no` responses
@@ -487,6 +497,7 @@ cosmetics: N
487
497
  | Anti-Patterns | [N]/10 | [N]/10 | [±N] | 10% | [N] |
488
498
  | Motion | [N]/10 | [N]/10 | [±N] | 5% | [N] |
489
499
  | **Total** | **[N]/100** | **[N]/100** | **[±N]** | | |
500
+ | Micro-Polish *(suppl.)* | [N]/4 | [N]/4 | [±N] | — | *(not weighted)* |
490
501
 
491
502
  Grade: [before] → [after]
492
503
 
@@ -94,6 +94,51 @@ generated: [ISO 8601]
94
94
  ## Score
95
95
  Reduced-motion compliance: [Full | Partial | None]
96
96
  Motion consistency: [Consistent | Mixed | Chaotic]
97
+
98
+ ## Micro-motion findings
99
+
100
+ After the standard motion inventory, emit a "Micro-motion findings" section with grep-driven hits:
101
+
102
+ ### Patterns to scan for:
103
+
104
+ 1. **transition:all violations**
105
+ - Grep: `transition:\s*all|transition-property:\s*all`
106
+ - Also Tailwind bare: `className="[^"]*\btransition\b[^-]` (transition class without modifier)
107
+ - Report: file:line, the exact declaration, fix pointer → replace with specific properties
108
+
109
+ 2. **will-change:all violations**
110
+ - Grep: `will-change:\s*all`
111
+ - Report: file:line, the declaration, fix pointer → `will-change: transform`
112
+
113
+ 3. **Keyframe-driven interactive elements**
114
+ - Grep: `animation:.*forwards|@keyframes.*\{` on elements that also have `:hover` or `:active` or `onClick`
115
+ - Report: these should use CSS transitions, not keyframe animations
116
+
117
+ 4. **Missing AnimatePresence initial={false}**
118
+ - Grep: `<AnimatePresence(?![^>]*initial=\{false\})` — AnimatePresence without initial={false}
119
+ - Report: file:line; check if the wrapped component is persistent UI (not route-level transitions)
120
+
121
+ 5. **Icon cross-fade with wrong bounce**
122
+ - Grep: `bounce:\s*[^0]` inside framer-motion spring config near icon-related components
123
+ - Report: bounce must be 0 for icon animations; non-zero bounce creates invasive pop effect
124
+
125
+ 6. **scale-on-press outside canonical range**
126
+ - Grep: `scale.*0\.9[578]|scale.*0\.9[0-4]|whileTap.*scale.*0\.9[578]`
127
+ - Report: file:line; canonical press scale is 0.96 — not 0.95, 0.97, 0.98
128
+
129
+ ### Output format for this section:
130
+ ```
131
+ ## Micro-motion findings
132
+
133
+ | Finding | File | Line | Issue | Fix |
134
+ |---------|------|------|-------|-----|
135
+ | transition:all | src/components/Button.tsx | 23 | `transition: all 200ms` | Replace with `transition: background-color 200ms, color 200ms` |
136
+ | ... | ... | ... | ... | ... |
137
+
138
+ Total: N violations found. (0 = clean)
139
+ ```
140
+
141
+ If no violations found, emit: `## Micro-motion findings — CLEAN (0 violations)`
97
142
  ```
98
143
 
99
144
  ## Constraints
@@ -94,6 +94,42 @@ figma_augmented: [true|false]
94
94
 
95
95
  ## Observations
96
96
  - [Dominant color space, typography scale coherence, grid adherence]
97
+
98
+ ## Micro-polish token findings
99
+
100
+ After the standard token inventory, scan and report:
101
+
102
+ 1. **Tinted image outlines**
103
+ - Grep: `outline-(slate|zinc|neutral|gray|stone|blue|red|green|yellow|purple|orange)-\d+` on `<img>` elements
104
+ - Grep CSS: `img\s*\{[^}]*outline:[^}]*#[0-9a-fA-F]{3,8}`
105
+ - Fix: `outline: 1px solid rgba(0,0,0,0.08)` or `rgba(255,255,255,0.08)` only
106
+
107
+ 2. **Shadow tokens drifting from 3-layer formula**
108
+ - Grep for `box-shadow` values that use a single layer or non-rgba values
109
+ - Flag: shadows that don't follow the 3-layer pattern (0 1px 2px / 0 4px 8px / 0 8px 16px)
110
+ - Report as informational (not hard violation) unless the design system has a shadow token system
111
+
112
+ 3. **Missing root-level font-smoothing**
113
+ - Grep: `-webkit-font-smoothing` and `-moz-osx-font-smoothing`
114
+ - If found NOT on `:root` or `body` → flag as per-element misapplication
115
+ - If not found at all → flag as missing root antialiasing
116
+
117
+ 4. **Missing tabular-nums on dynamic numerals**
118
+ - Grep for elements with className containing: `price`, `counter`, `timer`, `count`, `amount`, `balance`, `total`
119
+ - Check if they have `font-variant-numeric: tabular-nums` or Tailwind `tabular-nums` class
120
+ - Report missing instances
121
+
122
+ ### Output format:
123
+ ```
124
+ ## Micro-polish token findings
125
+
126
+ | Finding | File | Line | Issue | Fix |
127
+ |---------|------|------|-------|-----|
128
+ | tinted-outline | ... | ... | `outline-slate-200` on img | Use `outline: 1px solid rgba(0,0,0,0.08)` |
129
+ | missing-tabular-nums | ... | ... | `.price` element lacks tabular-nums | Add `font-variant-numeric: tabular-nums` |
130
+
131
+ Total: N findings. (0 = clean)
132
+ ```
97
133
  ```
98
134
 
99
135
  ## Constraints
@@ -86,6 +86,35 @@ Scale coherence: [Well-defined | Flat | Inverted | Chaotic]
86
86
 
87
87
  ## Score
88
88
  Overall hierarchy health: [Well-defined | Flat | Inverted]
89
+
90
+ ## Micro-polish hierarchy findings
91
+
92
+ After the standard visual hierarchy map, scan and report:
93
+
94
+ 1. **Same border-radius on nested surfaces**
95
+ - Grep (Tailwind): look for identical `rounded-*` class on a container AND its immediate child within a padded block
96
+ - Grep CSS: `border-radius:\s*[0-9]+` appearing on both parent and child in the same component
97
+ - Fix: apply concentric formula `innerRadius = outerRadius − padding`
98
+
99
+ 2. **Headings without text-wrap:balance**
100
+ - Grep: `<h[1-3]` elements or `.heading`, `.title` elements without `text-wrap: balance` or Tailwind `text-balance`
101
+ - Report: file:line; add `text-wrap: balance` to all headings
102
+
103
+ 3. **Missing text-wrap:pretty on body text**
104
+ - Grep: `<p>`, `.body`, `.description`, `.caption` without `text-wrap: pretty` or `text-pretty`
105
+ - This is an informational finding (enhancement, not violation)
106
+
107
+ ### Output format:
108
+ ```
109
+ ## Micro-polish hierarchy findings
110
+
111
+ | Finding | Severity | File | Description | Fix |
112
+ |---------|----------|------|-------------|-----|
113
+ | same-radius-nested | HIGH | ... | Card (rounded-xl) + inner button (rounded-xl) at 16px padding | inner should be rounded-none (16-16=0) |
114
+ | heading-no-balance | MED | ... | h2 missing text-wrap:balance | Add text-balance class |
115
+
116
+ Total: N findings.
117
+ ```
89
118
  ```
90
119
 
91
120
  ## Constraints
@@ -0,0 +1,158 @@
1
+ # Design Corpora — Component Benchmark Sources
2
+
3
+ This file is the canonical source list for `agents/component-benchmark-harvester.md`.
4
+ It catalogs the 18 design systems used when harvesting per-component benchmarks,
5
+ with licensing notes and a documented fallback chain.
6
+
7
+ ## Fallback Chain
8
+
9
+ When a primary URL is unreachable, try in order:
10
+
11
+ 1. **Canonical URL** — documented per-system below
12
+ 2. **archive.org snapshot** — `https://web.archive.org/web/*/` + canonical URL
13
+ 3. **Refero MCP search** — `mcp__refero__search` with component name + system name
14
+ 4. **Pinterest MCP visual search** — `mcp__pinterest__search` with component name + system name
15
+
16
+ Document which tier was used in the raw harvest file under `Source tier:`.
17
+
18
+ ---
19
+
20
+ ## Design Systems Catalog
21
+
22
+ ### 1. Material Design 3 (Google)
23
+ - **Canonical**: https://m3.material.io/components
24
+ - **License**: Apache 2.0 (docs: Creative Commons BY 4.0)
25
+ - **Coverage**: Full component set with anatomy, variants, accessibility, theming tokens
26
+ - **Notes**: Use `/components/<slug>` path. Best for density, motion, and adaptive layout guidance.
27
+
28
+ ### 2. Apple HIG
29
+ - **Canonical**: https://developer.apple.com/design/human-interface-guidelines/
30
+ - **License**: © Apple Inc. — educational fair use for benchmarking
31
+ - **Coverage**: iOS, macOS, visionOS, watchOS; focus on a11y, gestures, platform norms
32
+ - **Notes**: Crawl per-platform variant pages. Best for accessibility contracts and iOS-native patterns.
33
+
34
+ ### 3. Radix UI Primitives + WAI-ARIA APG
35
+ - **Canonical (Radix)**: https://www.radix-ui.com/primitives/docs/components/
36
+ - **Canonical (WAI-ARIA APG)**: https://www.w3.org/WAI/ARIA/apg/patterns/
37
+ - **License**: MIT (Radix); W3C (WAI-ARIA APG — freely usable)
38
+ - **Coverage**: Unstyled primitives + full ARIA keyboard contracts
39
+ - **Notes**: WAI-ARIA APG keyboard contracts should be quoted verbatim. Radix wraps them with implementation detail.
40
+
41
+ ### 4. shadcn/ui
42
+ - **Canonical**: https://ui.shadcn.com/docs/components/
43
+ - **License**: MIT
44
+ - **Coverage**: Radix-based, Tailwind-styled components; real-world usage patterns
45
+ - **Notes**: Best for "what real teams ship" convergence signal alongside spec systems.
46
+
47
+ ### 5. Polaris (Shopify)
48
+ - **Canonical**: https://polaris.shopify.com/components/
49
+ - **License**: Creative Commons BY-NC-SA 4.0 (docs)
50
+ - **Coverage**: E-commerce-optimised components; excellent do/don't examples
51
+ - **Notes**: Polaris has unusually detailed do/don't guidance — mine it for anti-pattern blocks.
52
+
53
+ ### 6. Carbon Design System (IBM)
54
+ - **Canonical**: https://carbondesignsystem.com/components/
55
+ - **License**: Apache 2.0
56
+ - **Coverage**: Enterprise UI; data-heavy components; full accessibility matrix
57
+ - **Notes**: Best for data-dense table/form contexts and enterprise accessibility contracts.
58
+
59
+ ### 7. Fluent 2 (Microsoft)
60
+ - **Canonical**: https://fluent2.microsoft.design/components/web/
61
+ - **License**: MIT
62
+ - **Coverage**: Windows / Microsoft 365 design language; dense information hierarchy
63
+ - **Notes**: Good for focus-management patterns in complex workflows.
64
+
65
+ ### 8. Primer (GitHub)
66
+ - **Canonical**: https://primer.style/components/
67
+ - **License**: MIT
68
+ - **Coverage**: Developer tools UI; markdown + code contexts; icon integration
69
+ - **Notes**: Best for developer-tool and productivity-app component norms.
70
+
71
+ ### 9. Atlassian Design System
72
+ - **Canonical**: https://atlassian.design/components/
73
+ - **License**: Atlassian Design System License (educational fair use)
74
+ - **Coverage**: Collaboration software; complex overlays; strong focus management
75
+ - **Notes**: Excellent focus-trap and dialog accessibility guidance.
76
+
77
+ ### 10. Ant Design
78
+ - **Canonical**: https://ant.design/components/
79
+ - **License**: MIT
80
+ - **Coverage**: Large enterprise component set; Asian market conventions
81
+ - **Notes**: High component density; useful for form and data-table convergence.
82
+
83
+ ### 11. Mantine
84
+ - **Canonical**: https://mantine.dev/
85
+ - **License**: MIT
86
+ - **Coverage**: Full-featured React library; excellent composability patterns
87
+ - **Notes**: Good for controlled vs uncontrolled patterns and React-idiomatic API design.
88
+
89
+ ### 12. Chakra UI
90
+ - **Canonical**: https://chakra-ui.com/docs/components/
91
+ - **License**: MIT
92
+ - **Coverage**: Accessible by default; strong theming; popular in SaaS
93
+ - **Notes**: Good accessibility defaults baseline; useful for theming-token convergence.
94
+
95
+ ### 13. Base Web (Uber)
96
+ - **Canonical**: https://baseweb.design/components/
97
+ - **License**: MIT
98
+ - **Coverage**: High-density, internationalization-aware components
99
+ - **Notes**: Good for RTL, i18n, and high-density layout patterns.
100
+
101
+ ### 14. Nord Design System (Trivago)
102
+ - **Canonical**: https://nordhealth.design/components/
103
+ - **License**: MIT
104
+ - **Coverage**: Healthcare / hospitality UI; strong accessibility focus
105
+ - **Notes**: Smaller corpus; useful for healthcare context accessibility norms.
106
+
107
+ ### 15. Spectrum (Adobe)
108
+ - **Canonical**: https://spectrum.adobe.com/page/component-list/
109
+ - **License**: Apache 2.0
110
+ - **Coverage**: Creative tools UI; multi-surface (web, mobile, desktop)
111
+ - **Notes**: Best for creative-tool contexts and platform-adaptive component behavior.
112
+
113
+ ### 16. Lightning Design System (Salesforce)
114
+ - **Canonical**: https://www.lightningdesignsystem.com/components/
115
+ - **License**: BSD 3-Clause (Salesforce SLDS license)
116
+ - **Coverage**: CRM / enterprise SaaS; dense forms; complex data grids
117
+ - **Notes**: Good for enterprise form validation patterns and data-heavy contexts.
118
+
119
+ ### 17. Evergreen (Segment)
120
+ - **Canonical**: https://evergreen.segment.com/components/
121
+ - **License**: MIT
122
+ - **Coverage**: Analytics / data SaaS; compact components
123
+ - **Notes**: Small system; useful as a convergence signal for SaaS-optimised defaults.
124
+
125
+ ### 18. Gestalt (Pinterest)
126
+ - **Canonical**: https://gestalt.pinterest.systems/
127
+ - **License**: Apache 2.0
128
+ - **Coverage**: Visual-content feed; strong image + card patterns
129
+ - **Notes**: Best for card / masonry / visual-content component norms.
130
+
131
+ ---
132
+
133
+ ## Supplemental Source
134
+
135
+ ### Phase 15 Impeccable Salvage
136
+ - **Path**: `.planning/research/impeccable-salvage/`
137
+ - **License**: MIT (internal port)
138
+ - **Notes**: Harvested design-knowledge prose from the pre-Phase-15 impeccable plugin.
139
+ The harvester should consume this directory for any component-relevant excerpts before
140
+ reaching out to external URLs.
141
+
142
+ ---
143
+
144
+ ## Attribution Convention
145
+
146
+ Every excerpt written to `.planning/benchmarks/raw/<component>.md` must carry a
147
+ source-attribution line in the format:
148
+
149
+ ```
150
+ > Source: [System Name](<canonical-url>) — [license] — accessed <date>
151
+ ```
152
+
153
+ For WAI-ARIA APG keyboard contracts quoted verbatim, use:
154
+
155
+ ```
156
+ > Source: WAI-ARIA Authoring Practices Guide (<url>) — W3C — accessed <date>
157
+ > Quoted verbatim per W3C document license.
158
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hegemonart/get-design-done",
3
- "version": "1.14.8",
3
+ "version": "1.16.0",
4
4
  "description": "A Claude Code plugin for systematic design improvement",
5
5
  "author": "Hegemon",
6
6
  "homepage": "https://github.com/hegemonart/get-design-done",
@@ -54,7 +54,21 @@
54
54
  "self-improvement",
55
55
  "reflection",
56
56
  "tested",
57
- "ci"
57
+ "ci",
58
+ "iconography",
59
+ "brand-voice",
60
+ "performance-budget",
61
+ "framer-motion",
62
+ "motion-design",
63
+ "micro-polish",
64
+ "surfaces",
65
+ "make-interfaces-feel-better",
66
+ "palette-catalog",
67
+ "style-vocabulary",
68
+ "industry-palettes",
69
+ "ui-style-vocabulary",
70
+ "component-specs",
71
+ "design-system-benchmarks"
58
72
  ],
59
73
  "skills": [
60
74
  "SKILL.md"