@hegemonart/get-design-done 1.15.0 → 1.18.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 (70) hide show
  1. package/.claude-plugin/marketplace.json +9 -5
  2. package/.claude-plugin/plugin.json +19 -5
  3. package/CHANGELOG.md +122 -0
  4. package/README.md +41 -0
  5. package/SKILL.md +4 -1
  6. package/agents/component-benchmark-harvester.md +112 -0
  7. package/agents/component-benchmark-synthesizer.md +88 -0
  8. package/agents/design-auditor.md +60 -1
  9. package/agents/design-doc-writer.md +21 -0
  10. package/agents/design-executor.md +22 -4
  11. package/agents/design-pattern-mapper.md +61 -0
  12. package/agents/motion-mapper.md +74 -9
  13. package/agents/token-mapper.md +8 -0
  14. package/connections/design-corpora.md +158 -0
  15. package/package.json +13 -3
  16. package/reference/components/README.md +94 -0
  17. package/reference/components/TEMPLATE.md +184 -0
  18. package/reference/components/accordion.md +217 -0
  19. package/reference/components/alert.md +198 -0
  20. package/reference/components/badge.md +202 -0
  21. package/reference/components/breadcrumbs.md +198 -0
  22. package/reference/components/button.md +195 -0
  23. package/reference/components/card.md +200 -0
  24. package/reference/components/checkbox.md +207 -0
  25. package/reference/components/chip.md +209 -0
  26. package/reference/components/command-palette.md +228 -0
  27. package/reference/components/date-picker.md +227 -0
  28. package/reference/components/drawer.md +201 -0
  29. package/reference/components/file-upload.md +219 -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/list.md +217 -0
  34. package/reference/components/menu.md +212 -0
  35. package/reference/components/modal-dialog.md +210 -0
  36. package/reference/components/navbar.md +211 -0
  37. package/reference/components/pagination.md +205 -0
  38. package/reference/components/popover.md +197 -0
  39. package/reference/components/progress.md +210 -0
  40. package/reference/components/radio.md +203 -0
  41. package/reference/components/rich-text-editor.md +226 -0
  42. package/reference/components/select-combobox.md +219 -0
  43. package/reference/components/sidebar.md +211 -0
  44. package/reference/components/skeleton.md +197 -0
  45. package/reference/components/slider.md +208 -0
  46. package/reference/components/stepper.md +220 -0
  47. package/reference/components/switch.md +194 -0
  48. package/reference/components/table.md +229 -0
  49. package/reference/components/tabs.md +213 -0
  50. package/reference/components/toast.md +200 -0
  51. package/reference/components/tooltip.md +201 -0
  52. package/reference/components/tree.md +225 -0
  53. package/reference/css-grid-layout.md +835 -0
  54. package/reference/external/NOTICE.hyperframes +28 -0
  55. package/reference/image-optimization.md +582 -0
  56. package/reference/motion-advanced.md +754 -0
  57. package/reference/motion-easings.md +381 -0
  58. package/reference/motion-interpolate.md +282 -0
  59. package/reference/motion-spring.md +234 -0
  60. package/reference/motion-transition-taxonomy.md +155 -0
  61. package/reference/motion.md +20 -0
  62. package/reference/output-contracts/motion-map.schema.json +135 -0
  63. package/reference/registry.json +285 -0
  64. package/reference/registry.schema.json +6 -1
  65. package/reference/variable-fonts-loading.md +532 -0
  66. package/scripts/lib/easings.cjs +280 -0
  67. package/scripts/lib/parse-contract.cjs +220 -0
  68. package/scripts/lib/spring.cjs +160 -0
  69. package/scripts/tests/test-motion-provenance.sh +64 -0
  70. package/skills/benchmark/SKILL.md +105 -0
@@ -5,7 +5,8 @@ tools: Read, Write, Edit, Bash, Grep, Glob
5
5
  color: yellow
6
6
  default-tier: sonnet
7
7
  tier-rationale: "Follows an Opus-authored plan; executes rather than plans"
8
- size_budget: XL
8
+ size_budget: XXL
9
+ size_budget_rationale: "Phase 17 added Benchmark Spec Pre-Flight section for type:components (+17 lines)"
9
10
  parallel-safe: conditional-on-touches
10
11
  typical-duration-seconds: 60
11
12
  reads-only: false
@@ -128,7 +129,7 @@ For `audit` tasks: grep the codebase using patterns from `reference/anti-pattern
128
129
 
129
130
  ### Type: typography
130
131
 
131
- Read `reference/typography.md` before starting.
132
+ Read `reference/typography.md` before starting. If `reference/variable-fonts-loading.md` is present, also read it — apply variable font axis guidance, font-display trade-offs, fallback metric overrides (size-adjust, ascent-override), and FOIT/FOUT rules to any web font or @font-face decisions in this task.
132
133
 
133
134
  1. **Identify current state**: grep all font-size values in the codebase. List every unique value.
134
135
  2. **Design the target scale**: from the `<decisions>` in DESIGN-CONTEXT.md, pick the modular ratio (default: 1.25, base 16px). Compute: 12/14/16/20/24/30/36/48px (or `text-xs` through `text-5xl` in Tailwind).
@@ -177,7 +178,7 @@ before committing final values.
177
178
 
178
179
  ### Type: layout
179
180
 
180
- Read `reference/layout.md` (if present) and relevant DESIGN-CONTEXT.md decisions before starting.
181
+ Read `reference/layout.md` (if present) and relevant DESIGN-CONTEXT.md decisions before starting. If `reference/css-grid-layout.md` is present, also read it — apply modern Grid patterns (subgrid, container queries with `@container`, fluid `clamp()` typography, logical properties, safe-area insets, anchor positioning). If `reference/image-optimization.md` is present, apply it to any image-related layout decisions (format choice, srcset/sizes, lazy-loading, CDN transforms, image budget enforcement).
181
182
 
182
183
  1. **Inventory layout structure**: identify all grid, flex, and positioning patterns in scope files.
183
184
  2. **Check spacing consistency**: grep for magic spacing values (px or rem) not from a spacing scale. Map to nearest scale step.
@@ -220,7 +221,7 @@ Work through the accessibility checklist:
220
221
 
221
222
  ### Type: motion
222
223
 
223
- Read `reference/motion.md` and `reference/framer-motion-patterns.md` before starting.
224
+ Read `reference/motion.md` and `reference/framer-motion-patterns.md` before starting. If `reference/motion-advanced.md` is present, also read it — apply advanced patterns (gesture/drag mechanics, clip-path animations, blur-to-mask crossfades, CSS transitions vs keyframes for interruptible UI, WAAPI, Framer Motion hardware-accel gotcha, motion cohesion rules, next-day review process). If `reference/motion-easings.md` is present, use canonical `--ease-*` tokens rather than raw cubic-bezier strings. If `reference/motion-spring.md` is present, use named presets (gentle/wobbly/stiff/slow) for spring configurations.
224
225
 
225
226
  `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.
226
227
 
@@ -288,6 +289,23 @@ Read `reference/anti-patterns.md`, `reference/design-system-guidance.md`, and DE
288
289
 
289
290
  Read all relevant reference files for this component's concerns (typography, color, accessibility, motion) before starting.
290
291
 
292
+ #### Benchmark Spec Pre-Flight
293
+
294
+ Before executing the task, check for a benchmark spec:
295
+
296
+ ```bash
297
+ # Extract component name from task description (PascalCase → kebab-case)
298
+ ls reference/components/<name>.md 2>/dev/null
299
+ ```
300
+
301
+ If `reference/components/<name>.md` exists:
302
+ 1. Read the spec's **Anatomy**, **States**, **Variants**, and **Keyboard & Accessibility** sections
303
+ 2. Use these as the authoritative contract for the implementation — do not re-discover naming conventions, ARIA roles, or keyboard patterns that the spec already defines
304
+ 3. In the task output file (`task-NN.md`), add a line: `Spec pre-flight: reference/components/<name>.md — [N] states, [M] variants, WAI-ARIA contract applied`
305
+ 4. Flag any deviation between the task instructions and the spec in the `## Deviations` section
306
+
307
+ If no spec exists, skip silently and proceed normally (graceful degradation).
308
+
291
309
  1. **Read the component spec from the task's Action field**: understand what the component does, its states, its variants.
292
310
  2. **Apply ALL relevant reference guidelines simultaneously**: typography scale, color token usage, accessibility requirements (ARIA, focus management, keyboard nav), motion constraints.
293
311
  3. **Build the component structure**: markup, styles, and behavior per the spec.
@@ -6,6 +6,7 @@ color: green
6
6
  model: inherit
7
7
  default-tier: sonnet
8
8
  tier-rationale: "Catalogs design patterns present in codebase; open-ended classification"
9
+ size_budget: XL
9
10
  parallel-safe: always
10
11
  typical-duration-seconds: 45
11
12
  reads-only: false
@@ -117,6 +118,66 @@ Identify: CSS Modules, styled-components, Tailwind utility classes, or inline st
117
118
 
118
119
  ---
119
120
 
121
+ ## Component Convergence Detection
122
+
123
+ After pattern extraction, scan for component implementations against the benchmark corpus.
124
+
125
+ ### Step 1: Enumerate available specs
126
+
127
+ ```bash
128
+ ls reference/components/*.md 2>/dev/null | grep -v TEMPLATE | grep -v README
129
+ ```
130
+
131
+ If `reference/components/` does not exist or is empty, skip this entire section.
132
+
133
+ ### Step 2: Detect implementations per spec
134
+
135
+ For each spec file, run its **Grep Signatures** section patterns against the source root:
136
+
137
+ ```bash
138
+ # Example for button.md — adapt per spec's actual grep signatures
139
+ grep -rn "role=\"button\"\|<button\b" src/ --include="*.tsx" --include="*.jsx" -l 2>/dev/null | wc -l
140
+ ```
141
+
142
+ A component is "detected" if ≥1 signature pattern returns results.
143
+
144
+ ### Step 3: Compute convergence score per detected component
145
+
146
+ For detected components, check coverage against the spec's **States** and **Variants** tables:
147
+ - Count spec states: how many are implemented (aria attributes, CSS classes, data attributes)
148
+ - Count spec variants: how many variant prop values exist in the codebase
149
+ - Convergence % = (implemented items / total spec items) × 100, rounded to 10%
150
+
151
+ ### Step 4: Write `.design/map/component-convergence.md`
152
+
153
+ ```markdown
154
+ ---
155
+ generated: [ISO timestamp]
156
+ total_specs: [N]
157
+ detected: [M]
158
+ ---
159
+
160
+ # Component Convergence
161
+
162
+ ## Matched Components
163
+
164
+ | Component | Spec | Convergence | Key Gaps |
165
+ |-----------|------|-------------|----------|
166
+ | Button | reference/components/button.md | 90% | Missing loading aria-busy |
167
+ | Toast | reference/components/toast.md | 60% | Missing role="alert" on error variant |
168
+
169
+ ## Absent Components (spec exists, no codebase match)
170
+
171
+ - `reference/components/command-palette.md` — no implementation detected
172
+ - `reference/components/tree.md` — no implementation detected
173
+
174
+ ## Summary
175
+
176
+ **N/M specs detected** in codebase · Average convergence: X%
177
+ ```
178
+
179
+ ---
180
+
120
181
  ## DESIGN-PATTERNS.md Output Format
121
182
 
122
183
  Write to `.design/DESIGN-PATTERNS.md`. Use exactly this structure:
@@ -25,6 +25,10 @@ You inventory motion and animation patterns. Zero session memory. You do not mod
25
25
 
26
26
  - `.design/STATE.md`
27
27
  - `reference/motion.md` (if present)
28
+ - `reference/motion-advanced.md` (if present) — advanced patterns: spring physics, scroll-driven, FLIP, View Transitions API, gesture/drag mechanics, clip-path patterns, blur crossfades, Framer Motion hardware-accel gotcha
29
+ - `reference/motion-easings.md` (if present) — 12 canonical easing presets; classify each detected easing against this catalog
30
+ - `reference/motion-transition-taxonomy.md` (if present) — 8 transition families; classify page/route transitions against this taxonomy
31
+ - `reference/motion-spring.md` (if present) — spring presets; classify spring configs against gentle/wobbly/stiff/slow
28
32
  - Any files supplied by the orchestrator
29
33
 
30
34
  ## Scan Strategy
@@ -61,8 +65,37 @@ From the collected values, bucket by:
61
65
  - Normal: 200–400ms
62
66
  - Slow: >400ms
63
67
 
68
+ ## Advanced Scan Patterns (Phase 18+)
69
+
70
+ When `reference/motion-advanced.md` is present, additionally scan for:
71
+
72
+ ```bash
73
+ # Gesture / drag patterns
74
+ grep -rEn "setPointerCapture|onPointerDown.*drag|dragConstraints|useDragControls" src/ | head -40
75
+ grep -rEn "velocity|flick|swipe.*dismiss|drag.*dismiss" src/ | head -40
76
+
77
+ # Clip-path animations
78
+ grep -rEn "clip-path|clipPath|inset\(" src/ | head -40
79
+
80
+ # FLIP / View Transitions
81
+ grep -rEn "layoutId|startViewTransition|view-transition-name" src/ | head -30
82
+
83
+ # Scroll-driven
84
+ grep -rEn "animation-timeline|ScrollTimeline|useScroll\b" src/ | head -30
85
+
86
+ # WAAPI
87
+ grep -rEn "\.animate\(\[|WebAnimation|getAnimations" src/ | head -20
88
+ ```
89
+
90
+ Classify gesture patterns against `reference/motion-advanced.md` (velocity formula, pointer capture, multi-touch protection).
91
+ Classify easing values against the 12 canonical presets in `reference/motion-easings.md`; output `"custom"` with justification for anything that doesn't match.
92
+ Classify page/route transitions against the 8 families in `reference/motion-transition-taxonomy.md`.
93
+ Classify spring configs against the 4 presets in `reference/motion-spring.md`.
94
+
64
95
  ## Output Format — `.design/map/motion.md`
65
96
 
97
+ **The output MUST begin with a structured JSON block** enclosed in ` ```json ``` ` fences, followed by the prose sections. The JSON block must conform to `reference/output-contracts/motion-map.schema.json`. Malformed or missing blocks are validation failures.
98
+
66
99
  ```markdown
67
100
  ---
68
101
  generated: [ISO 8601]
@@ -70,22 +103,54 @@ generated: [ISO 8601]
70
103
 
71
104
  # Motion Map
72
105
 
106
+ ```json
107
+ {
108
+ "schema_version": "1.0.0",
109
+ "generated_at": "[ISO 8601]",
110
+ "summary": {
111
+ "total_animations": 0,
112
+ "custom_easings": 0,
113
+ "reduced_motion_compliant": false,
114
+ "libraries": []
115
+ },
116
+ "animations": [
117
+ {
118
+ "id": "example-toast-enter",
119
+ "location": { "file": "src/components/Toast.tsx", "line": 12 },
120
+ "description": "Toast enter animation — opacity + translateY",
121
+ "easing": "cubic-out",
122
+ "duration_class": "quick",
123
+ "duration_ms": 180,
124
+ "trigger": "state-change",
125
+ "library": "framer-motion",
126
+ "reduced_motion_handled": true
127
+ }
128
+ ]
129
+ }
130
+ ```
131
+
73
132
  ## CSS transitions
74
- | File | Property | Duration | Easing |
75
- |------|----------|----------|--------|
133
+ | File | Property | Duration | Easing | Canonical Easing |
134
+ |------|----------|----------|--------|-----------------|
76
135
 
77
136
  ## Library usage
78
137
  | Library | Files | Notes |
79
138
  |---------|-------|-------|
80
139
 
81
140
  ## Duration distribution
82
- - Fast (<200ms): [N]
83
- - Normal (200400ms): [N]
84
- - Slow (>400ms): [N]
85
-
86
- ## Easing functions
87
- | Easing | Count |
88
- |--------|-------|
141
+ - Instant (<100ms): [N]
142
+ - Quick (100200ms): [N]
143
+ - Standard (200–400ms): [N]
144
+ - Slow (400–800ms): [N]
145
+ - Narrative (>800ms): [N]
146
+
147
+ ## Easing classification
148
+ | Detected Easing | Canonical Name | Count | Notes |
149
+ |----------------|---------------|-------|-------|
150
+
151
+ ## Advanced patterns detected
152
+ | Pattern | Files | Notes |
153
+ |---------|-------|-------|
89
154
 
90
155
  ## Reduced-motion compliance
91
156
  - `prefers-reduced-motion` queries present: [N]
@@ -119,6 +119,14 @@ After the standard token inventory, scan and report:
119
119
  - Check if they have `font-variant-numeric: tabular-nums` or Tailwind `tabular-nums` class
120
120
  - Report missing instances
121
121
 
122
+ 5. **Easing token consolidation** (when `reference/motion-easings.md` is present)
123
+ - Grep: `cubic-bezier\(` in CSS/SCSS/styled-components/Tailwind config
124
+ - Grep: `ease:` or `easing:` in Framer Motion / GSAP configs
125
+ - For each raw easing value found, check if a canonical `--ease-*` token from `reference/motion-easings.md` would serve the same purpose
126
+ - Report raw values that map to a canonical preset (recommend the `--ease-*` token)
127
+ - Report raw values with no canonical match as informational (may warrant a custom token)
128
+ - Do NOT flag values that are already using `--ease-*` tokens
129
+
122
130
  ### Output format:
123
131
  ```
124
132
  ## Micro-polish token findings
@@ -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.15.0",
3
+ "version": "1.18.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",
@@ -66,10 +66,20 @@
66
66
  "palette-catalog",
67
67
  "style-vocabulary",
68
68
  "industry-palettes",
69
- "ui-style-vocabulary"
69
+ "ui-style-vocabulary",
70
+ "variable-fonts",
71
+ "container-queries",
72
+ "view-transitions",
73
+ "motion-vocabulary",
74
+ "motion-easings",
75
+ "transition-taxonomy",
76
+ "gesture-mechanics",
77
+ "clip-path-animation",
78
+ "component-specs",
79
+ "design-system-benchmarks"
70
80
  ],
71
81
  "skills": [
72
82
  "SKILL.md"
73
83
  ],
74
84
  "hooks": "hooks/hooks.json"
75
- }
85
+ }
@@ -0,0 +1,94 @@
1
+ # Component Benchmark Corpus
2
+
3
+ Per-component design specifications harvested from 18 major design systems.
4
+ Each spec is ≤350 lines, greppable, diff-friendly, and agent-consumable.
5
+
6
+ **Spec shape**: `TEMPLATE.md` — Purpose · Anatomy · Variants · States · Sizing ·
7
+ Typography · Keyboard/a11y · Motion · Do/Don't · Anti-patterns · Citations · Grep signatures
8
+
9
+ **Harvest source list**: `connections/design-corpora.md` (18 systems)
10
+ **Tooling**: `agents/component-benchmark-harvester.md` → `agents/component-benchmark-synthesizer.md`
11
+ **CLI**: `/gdd:benchmark <component>` — see `skills/benchmark/SKILL.md`
12
+
13
+ ---
14
+
15
+ ## Wave 1 — Inputs (foundational)
16
+
17
+ | Component | Spec | Purpose |
18
+ |-----------|------|---------|
19
+ | Button | [button.md](button.md) | Triggers actions; primary, secondary, ghost, destructive variants |
20
+ | Input | [input.md](input.md) | Single-line text entry with label, error, helper text |
21
+ | Select / Combobox | [select-combobox.md](select-combobox.md) | Choose one option from a list; keyboard-navigable dropdown |
22
+ | Checkbox | [checkbox.md](checkbox.md) | Binary or indeterminate choice; groupable with fieldset |
23
+ | Radio | [radio.md](radio.md) | Mutually exclusive choice within a group |
24
+ | Switch | [switch.md](switch.md) | Binary toggle with immediate effect (vs. checkbox form submission) |
25
+ | Link | [link.md](link.md) | Navigation anchor; inline or standalone; external-link pattern |
26
+ | Label | [label.md](label.md) | Accessible association between caption and form control |
27
+
28
+ ---
29
+
30
+ ## Wave 2 — Containers
31
+
32
+ | Component | Spec | Purpose |
33
+ |-----------|------|---------|
34
+ | Card | [card.md](card.md) | Contained content surface; clickable or static |
35
+ | Modal / Dialog | [modal-dialog.md](modal-dialog.md) | Blocking overlay with focus trap and backdrop |
36
+ | Drawer / Sheet | [drawer.md](drawer.md) | Side or bottom sliding panel |
37
+ | Popover | [popover.md](popover.md) | Anchored overlay; dismisses on outside-click or Escape |
38
+ | Tooltip | [tooltip.md](tooltip.md) | Hover/focus-triggered label; no interactive content |
39
+ | Accordion | [accordion.md](accordion.md) | Collapsible content sections; single or multi-open |
40
+ | Tabs | [tabs.md](tabs.md) | Horizontal/vertical tab navigation with keyboard support |
41
+
42
+ ---
43
+
44
+ ## Wave 3 — Feedback
45
+
46
+ | Component | Spec | Purpose |
47
+ |-----------|------|---------|
48
+ | Toast / Snackbar | [toast.md](toast.md) | Ephemeral status notification; auto-dismisses 4–8s |
49
+ | Alert / Banner | [alert.md](alert.md) | Persistent inline status message; four severity variants |
50
+ | Progress | [progress.md](progress.md) | Linear and circular completion indicator; determinate + indeterminate |
51
+ | Skeleton | [skeleton.md](skeleton.md) | Loading placeholder matching content shape |
52
+ | Badge | [badge.md](badge.md) | Numeric or status indicator overlaid on another element |
53
+ | Chip / Tag | [chip.md](chip.md) | Compact toggleable/removable label; filter, input, suggestion, display |
54
+
55
+ ---
56
+
57
+ ## Wave 4 — Navigation & Data *(v1.17.0 · plan 17-02)*
58
+
59
+ | Component | Spec | Purpose |
60
+ |-----------|------|---------|
61
+ | Menu | [menu.md](menu.md) | Dropdown and context menu; action list with ARIA menu roles |
62
+ | Navbar | [navbar.md](navbar.md) | Top navigation bar; primary nav + skip link + mobile hamburger |
63
+ | Sidebar | [sidebar.md](sidebar.md) | Collapsible side navigation panel; icon+label / icon-only states |
64
+ | Breadcrumbs | [breadcrumbs.md](breadcrumbs.md) | Hierarchical location trail; aria-current + hidden separators |
65
+ | Pagination | [pagination.md](pagination.md) | Page-set navigation; previous/next + page buttons + per-page |
66
+ | Table | [table.md](table.md) | Data table with sorting, selection, sticky header, virtualisation |
67
+ | List | [list.md](list.md) | Display list (`<ul>/<ol>`) and interactive listbox (`role="listbox"`) |
68
+ | Tree | [tree.md](tree.md) | Hierarchical tree view; expand/collapse with full ARIA tree roles |
69
+ | Command Palette | [command-palette.md](command-palette.md) | Global Cmd/Ctrl+K launcher; dialog + combobox + listbox pattern |
70
+
71
+ ---
72
+
73
+ ## Wave 5 — Data & Advanced
74
+
75
+ | Component | Spec | Purpose |
76
+ |-----------|------|---------|
77
+ | Date Picker | [date-picker.md](date-picker.md) | Calendar-based date/range selection; input + popover variants |
78
+ | Slider | [slider.md](slider.md) | Single-value and range thumb on a track; full keyboard contract |
79
+ | File Upload | [file-upload.md](file-upload.md) | Drag-drop zone + accessible file input; per-file progress list |
80
+ | Rich-Text Editor | [rich-text-editor.md](rich-text-editor.md) | WYSIWYG authoring with contenteditable + toolbar + mentions |
81
+ | Stepper / Wizard | [stepper.md](stepper.md) | Sequential multi-step flow; role="list" (not tablist) |
82
+
83
+ ---
84
+
85
+ ## Coverage Summary
86
+
87
+ | Wave | Specs | Status |
88
+ |------|-------|--------|
89
+ | Wave 1 — Inputs | 8 | v1.16.0 |
90
+ | Wave 2 — Containers | 7 | v1.16.0 |
91
+ | Wave 3 — Feedback | 6 | v1.17.0 |
92
+ | Wave 4 — Navigation & Data | 9 | v1.17.0 |
93
+ | Wave 5 — Data & Advanced | 5 | v1.17.0 |
94
+ | **Total** | **35** | — |