get-shit-pretty 0.6.2 → 0.6.3

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 (121) hide show
  1. package/README.md +7 -12
  2. package/bin/install.js +96 -71
  3. package/gsp/agents/gsp-accessibility-auditor.md +3 -3
  4. package/gsp/agents/gsp-ascii-artist.md +1 -1
  5. package/gsp/agents/gsp-brand-auditor.md +2 -2
  6. package/gsp/agents/gsp-brand-engineer.md +131 -0
  7. package/gsp/agents/gsp-brand-strategist.md +2 -2
  8. package/gsp/agents/gsp-brand-syncer.md +8 -7
  9. package/gsp/agents/gsp-builder.md +48 -5
  10. package/gsp/agents/gsp-campaign-director.md +2 -3
  11. package/gsp/agents/gsp-creative-director.md +80 -0
  12. package/gsp/agents/gsp-critic.md +99 -17
  13. package/gsp/agents/gsp-designer.md +51 -4
  14. package/gsp/agents/gsp-project-researcher.md +3 -3
  15. package/gsp/agents/gsp-researcher.md +4 -4
  16. package/gsp/agents/gsp-reviewer.md +2 -2
  17. package/gsp/agents/gsp-scoper.md +2 -2
  18. package/gsp/hooks/hooks.json +5 -5
  19. package/gsp/references/design-trends.md +4 -4
  20. package/gsp/references/phase-transitions.md +12 -12
  21. package/gsp/references/questioning.md +1 -1
  22. package/gsp/references/token-mapping.md +329 -0
  23. package/gsp/skills/gsp-3d/SKILL.md +112 -0
  24. package/gsp/skills/gsp-accessibility/SKILL.md +11 -11
  25. package/gsp/skills/gsp-accessibility-audit/SKILL.md +6 -7
  26. package/gsp/skills/gsp-add-reference/SKILL.md +1 -1
  27. package/gsp/skills/gsp-art/SKILL.md +1 -1
  28. package/gsp/skills/gsp-brand-audit/SKILL.md +3 -3
  29. package/gsp/skills/gsp-brand-guidelines/SKILL.md +233 -0
  30. package/gsp/skills/gsp-brand-identity/SKILL.md +27 -18
  31. package/gsp/skills/gsp-brand-refine/SKILL.md +29 -22
  32. package/gsp/skills/gsp-brand-research/SKILL.md +2 -2
  33. package/gsp/skills/gsp-brand-strategy/SKILL.md +3 -3
  34. package/gsp/skills/gsp-brand-sync/SKILL.md +7 -7
  35. package/gsp/skills/gsp-color/SKILL.md +105 -0
  36. package/gsp/skills/gsp-design-system/SKILL.md +4 -4
  37. package/gsp/skills/gsp-doctor/SKILL.md +25 -18
  38. package/gsp/skills/gsp-help/SKILL.md +28 -28
  39. package/gsp/skills/gsp-icons/SKILL.md +108 -0
  40. package/gsp/skills/gsp-images/SKILL.md +197 -0
  41. package/gsp/skills/gsp-launch/SKILL.md +2 -3
  42. package/gsp/skills/gsp-logo/SKILL.md +173 -0
  43. package/gsp/skills/gsp-palette/SKILL.md +13 -13
  44. package/gsp/skills/gsp-pretty/SKILL.md +2 -2
  45. package/gsp/skills/gsp-progress/SKILL.md +20 -20
  46. package/gsp/skills/gsp-project-brief/SKILL.md +7 -8
  47. package/gsp/skills/gsp-project-build/SKILL.md +21 -21
  48. package/gsp/skills/gsp-project-critique/SKILL.md +13 -14
  49. package/gsp/skills/gsp-project-design/SKILL.md +17 -17
  50. package/gsp/skills/gsp-project-research/SKILL.md +5 -6
  51. package/gsp/skills/gsp-project-review/SKILL.md +7 -9
  52. package/gsp/skills/gsp-scaffold/SKILL.md +3 -3
  53. package/gsp/skills/gsp-start/SKILL.md +14 -14
  54. package/gsp/skills/gsp-style/SKILL.md +41 -43
  55. package/gsp/skills/gsp-style/styles/INDEX.yml +1 -1
  56. package/gsp/skills/gsp-style/styles/academia.yml +80 -0
  57. package/gsp/skills/gsp-style/styles/art-deco.yml +81 -0
  58. package/gsp/skills/gsp-style/styles/bauhaus.yml +78 -0
  59. package/gsp/skills/gsp-style/styles/bold-typography.yml +73 -0
  60. package/gsp/skills/gsp-style/styles/botanical.yml +78 -0
  61. package/gsp/skills/gsp-style/styles/claymorphism.yml +84 -0
  62. package/gsp/skills/gsp-style/styles/cyberpunk.yml +87 -0
  63. package/gsp/skills/gsp-style/styles/enterprise.yml +81 -0
  64. package/gsp/skills/gsp-style/styles/flat-design.yml +67 -0
  65. package/gsp/skills/gsp-style/styles/fluent.yml +82 -0
  66. package/gsp/skills/gsp-style/styles/glassmorphism.yml +83 -0
  67. package/gsp/skills/gsp-style/styles/humanist-literary.yml +74 -0
  68. package/gsp/skills/gsp-style/styles/industrial.yml +82 -0
  69. package/gsp/skills/gsp-style/styles/kinetic.yml +94 -0
  70. package/gsp/skills/gsp-style/styles/liquid-glass.yml +91 -0
  71. package/gsp/skills/gsp-style/styles/luxury.yml +83 -0
  72. package/gsp/skills/gsp-style/styles/material.yml +83 -0
  73. package/gsp/skills/gsp-style/styles/maximalism.yml +92 -0
  74. package/gsp/skills/gsp-style/styles/minimal-dark.yml +75 -0
  75. package/gsp/skills/gsp-style/styles/modern-dark.yml +88 -0
  76. package/gsp/skills/gsp-style/styles/monochrome.yml +68 -0
  77. package/gsp/skills/gsp-style/styles/neubrutalism.yml +83 -0
  78. package/gsp/skills/gsp-style/styles/neumorphism.yml +77 -0
  79. package/gsp/skills/gsp-style/styles/newsprint.yml +81 -0
  80. package/gsp/skills/gsp-style/styles/organic.yml +77 -0
  81. package/gsp/skills/gsp-style/styles/playful-geometric.yml +90 -0
  82. package/gsp/skills/gsp-style/styles/professional.yml +67 -0
  83. package/gsp/skills/gsp-style/styles/retro.yml +85 -0
  84. package/gsp/skills/gsp-style/styles/saas.yml +83 -0
  85. package/gsp/skills/gsp-style/styles/sketch.yml +86 -0
  86. package/gsp/skills/gsp-style/styles/swiss-minimalist.yml +69 -0
  87. package/gsp/skills/gsp-style/styles/terminal.yml +83 -0
  88. package/gsp/skills/gsp-style/styles/vaporwave.yml +84 -0
  89. package/gsp/skills/gsp-style/styles/web3.yml +82 -0
  90. package/gsp/skills/gsp-textures/SKILL.md +132 -0
  91. package/gsp/skills/gsp-typescale/SKILL.md +11 -11
  92. package/gsp/skills/gsp-typography/SKILL.md +108 -0
  93. package/gsp/skills/gsp-update/SKILL.md +1 -2
  94. package/gsp/skills/gsp-video/SKILL.md +101 -0
  95. package/gsp/templates/branding/config.json +1 -1
  96. package/gsp/templates/branding/roadmap.md +9 -9
  97. package/gsp/templates/exports-index.md +8 -8
  98. package/gsp/templates/phases/build.md +1 -1
  99. package/gsp/templates/phases/design.md +1 -1
  100. package/gsp/templates/phases/patterns.md +60 -71
  101. package/gsp/templates/phases/style.md +158 -0
  102. package/gsp/templates/projects/config.json +1 -1
  103. package/gsp/templates/projects/roadmap.md +7 -7
  104. package/gsp/templates/projects/state.md +1 -1
  105. package/package.json +1 -2
  106. package/.claude-plugin/plugin.json +0 -24
  107. package/gsp/agents/gsp-identity-designer.md +0 -74
  108. package/gsp/agents/gsp-pattern-architect.md +0 -189
  109. package/gsp/prompts/01-design-system-architect.md +0 -19
  110. package/gsp/prompts/02-brand-identity-creator.md +0 -16
  111. package/gsp/prompts/03-ui-ux-pattern-master.md +0 -21
  112. package/gsp/prompts/04-marketing-asset-factory.md +0 -14
  113. package/gsp/prompts/05-implementation-spec-expert.md +0 -15
  114. package/gsp/prompts/06-design-critique-partner.md +0 -14
  115. package/gsp/prompts/07-design-trend-synthesizer.md +0 -3
  116. package/gsp/prompts/08-accessibility-auditor.md +0 -23
  117. package/gsp/prompts/09-design-to-code-translator.md +0 -49
  118. package/gsp/prompts/10-project-scoper.md +0 -17
  119. package/gsp/prompts/11-deliverable-reviewer.md +0 -18
  120. package/gsp/prompts/12-project-researcher.md +0 -18
  121. package/gsp/skills/gsp-brand-patterns/SKILL.md +0 -240
@@ -1,6 +1,6 @@
1
1
  # Design Trends Reference — Index
2
2
 
3
- Production-ready style presets and deep engineering references for current design trends. Consolidated in the `/gsp:style` skill.
3
+ Production-ready style presets and deep engineering references for current design trends. Consolidated in the `/gsp-style` skill.
4
4
 
5
5
  Last updated: 2026-03-14
6
6
 
@@ -8,13 +8,13 @@ Last updated: 2026-03-14
8
8
 
9
9
  ## Style Presets (34)
10
10
 
11
- Style presets with structured tokens live in the `/gsp:style` skill at `skills/gsp-style/styles/`. Each preset is a YAML file with color, typography, shape, elevation, spacing, and motion tokens ready for W3C Design Token expansion.
11
+ Style presets with structured tokens live in the `/gsp-style` skill at `skills/gsp-style/styles/`. Each preset is a YAML file with color, typography, shape, elevation, spacing, and motion tokens ready for W3C Design Token expansion.
12
12
 
13
- Run `/gsp:style --list` to see all available styles, or read `skills/gsp-style/styles/INDEX.yml` for the full catalog with tags and vibes.
13
+ Run `/gsp-style --list` to see all available styles, or read `skills/gsp-style/styles/INDEX.yml` for the full catalog with tags and vibes.
14
14
 
15
15
  ## Deep Engineering References (9)
16
16
 
17
- Detailed CSS implementation guides, framework notes, and accessibility analysis live in the `/gsp:style` skill at `skills/gsp-style/trends/`:
17
+ Detailed CSS implementation guides, framework notes, and accessibility analysis live in the `/gsp-style` skill at `skills/gsp-style/trends/`:
18
18
 
19
19
  | # | Trend | Description | Compat |
20
20
  |---|-------|-------------|--------|
@@ -70,7 +70,7 @@ Use `AskUserQuestion` with options adapted to context:
70
70
  **When in a pipeline flow** (previous phase was completed in this or a recent session):
71
71
  1. **Continue to {next}** — "{description of next phase}"
72
72
  2. **View progress** — "see the full dashboard"
73
- 3. **Done for now** — "pick up later with /gsp:start"
73
+ 3. **Done for now** — "pick up later with /gsp-start"
74
74
 
75
75
  **When standalone** (user invoked the skill directly, no clear pipeline context):
76
76
  1. **View output** — "review what was generated"
@@ -84,22 +84,22 @@ Use judgment — if the user explicitly asked for one skill, don't push them int
84
84
 
85
85
  | Phase | Completion Message | Next Phase |
86
86
  |-------|-------------------|------------|
87
- | audit | brand assessed | discover — `/gsp:brand-research` |
88
- | discover | market landscape mapped | strategy — `/gsp:brand-strategy` |
89
- | strategy | brand platform defined | identity — `/gsp:brand-identity` |
90
- | identity | visual system designed | patterns — `/gsp:brand-patterns` |
91
- | patterns | design system built | project setup — `/gsp:start` (scans codebase, gathers brief, creates project) |
87
+ | audit | brand assessed | discover — `/gsp-brand-research` |
88
+ | discover | market landscape mapped | strategy — `/gsp-brand-strategy` |
89
+ | strategy | brand platform defined | identity — `/gsp-brand-identity` |
90
+ | identity | visual system designed | patterns — `/gsp-brand-guidelines` |
91
+ | patterns | design system built | project setup — `/gsp-start` (scans codebase, gathers brief, creates project) |
92
92
 
93
93
  ### Project Phases
94
94
 
95
95
  | Phase | Completion Message | Next Phase |
96
96
  |-------|-------------------|------------|
97
- | brief | project scoped | research — `/gsp:project-research` |
98
- | research | patterns and approaches researched | design — `/gsp:project-design` |
99
- | design | screens designed | critique — `/gsp:project-critique` |
100
- | critique | designs critiqued | build — `/gsp:project-build` |
101
- | build | code implemented | review — `/gsp:project-review` |
102
- | review | implementation validated | launch — `/gsp:launch` (or done) |
97
+ | brief | project scoped | research — `/gsp-project-research` |
98
+ | research | patterns and approaches researched | design — `/gsp-project-design` |
99
+ | design | screens designed | critique — `/gsp-project-critique` |
100
+ | critique | designs critiqued | build — `/gsp-project-build` |
101
+ | build | code implemented | review — `/gsp-project-review` |
102
+ | review | implementation validated | launch — `/gsp-launch` (or done) |
103
103
  | launch | campaign assets created | done |
104
104
 
105
105
  ### Special cases
@@ -1,7 +1,7 @@
1
1
  # Brief-Gathering Techniques
2
2
 
3
3
  ## Purpose
4
- Guide brief-gathering conversations — used by `/gsp:start` for both brand briefs and project briefs.
4
+ Guide brief-gathering conversations — used by `/gsp-start` for both brand briefs and project briefs.
5
5
 
6
6
  ---
7
7
 
@@ -0,0 +1,329 @@
1
+ # Token Mapping Reference
2
+
3
+ Deterministic mapping from GSP style preset `.yml` tokens to target CSS variable systems. The builder reads the `.yml` and generates the right output for the detected stack — no separate `tokens.json` or `token-mapping.md` needed.
4
+
5
+ ## Source: `.yml` Token Structure
6
+
7
+ Every preset (and every brand `.yml`) has this structure:
8
+
9
+ ```yaml
10
+ tokens:
11
+ color:
12
+ primary: "#hex" # Brand primary
13
+ secondary: "#hex" # Brand secondary
14
+ accent: "#hex" # Brand accent
15
+ background: "#hex" # Page background
16
+ surface: "#hex" # Card/panel fill
17
+ on-primary: "#hex" # Text on primary
18
+ on-background: "#hex" # Text on background
19
+ error: "#hex"
20
+ success: "#hex"
21
+ warning: "#hex"
22
+ info: "#hex"
23
+ muted: "#hex" # Subtle text, borders (optional)
24
+
25
+ typography:
26
+ font-family-primary: "stack"
27
+ font-family-mono: "stack"
28
+ font-family-display: "stack" # optional
29
+ font-family-secondary: "stack" # optional
30
+ font-weight-heading: N
31
+ font-weight-body: N
32
+ font-size-base: "Npx"
33
+ line-height-base: N
34
+
35
+ shape:
36
+ border-radius-sm: "Npx"
37
+ border-radius-md: "Npx"
38
+ border-radius-lg: "Npx"
39
+ border-width: "Npx"
40
+ border-color: "#hex"
41
+
42
+ elevation:
43
+ shadow-sm: "css-shadow"
44
+ shadow-md: "css-shadow"
45
+ shadow-lg: "css-shadow"
46
+ shadow-xl: "css-shadow"
47
+
48
+ spacing:
49
+ base: N
50
+ scale: [N, N, ...]
51
+
52
+ motion:
53
+ duration-fast: "Nms"
54
+ duration-normal: "Nms"
55
+ easing: "css-easing"
56
+
57
+ dark_mode:
58
+ color:
59
+ background: "#hex"
60
+ surface: "#hex"
61
+ on-background: "#hex"
62
+ border-color: "#hex" # optional
63
+ muted: "#hex" # optional
64
+ ```
65
+
66
+ ---
67
+
68
+ ## Target: shadcn/ui
69
+
70
+ shadcn uses HSL CSS variables in `:root` and `.dark`. The mapping is deterministic — every `.yml` token has exactly one shadcn variable.
71
+
72
+ ### Color mapping
73
+
74
+ | `.yml` token | shadcn CSS variable | Notes |
75
+ |---|---|---|
76
+ | `color.background` | `--background` | Page background |
77
+ | `color.on-background` | `--foreground` | Primary text |
78
+ | `color.surface` | `--card` | Card background |
79
+ | `color.on-background` | `--card-foreground` | Card text (same as foreground) |
80
+ | `color.surface` | `--popover` | Popover bg (same as card) |
81
+ | `color.on-background` | `--popover-foreground` | Popover text |
82
+ | `color.primary` | `--primary` | Primary actions |
83
+ | `color.on-primary` | `--primary-foreground` | Text on primary |
84
+ | `color.secondary` | `--secondary` | Secondary actions |
85
+ | `color.on-primary` | `--secondary-foreground` | Text on secondary (derive from contrast) |
86
+ | `color.muted` | `--muted` | Muted backgrounds |
87
+ | `color.muted` | `--muted-foreground` | Muted text (use muted or derive darker) |
88
+ | `color.accent` | `--accent` | Accent highlights |
89
+ | `color.on-primary` | `--accent-foreground` | Text on accent (derive from contrast) |
90
+ | `color.error` | `--destructive` | Destructive actions |
91
+ | `color.on-primary` | `--destructive-foreground` | Text on destructive |
92
+ | `shape.border-color` | `--border` | Default borders |
93
+ | `shape.border-color` | `--input` | Input borders |
94
+ | `color.primary` | `--ring` | Focus ring |
95
+ | `color.surface` | `--sidebar-background` | Sidebar bg |
96
+ | `color.on-background` | `--sidebar-foreground` | Sidebar text |
97
+ | `color.primary` | `--sidebar-primary` | Sidebar active |
98
+ | `color.on-primary` | `--sidebar-primary-foreground` | Sidebar active text |
99
+ | `color.accent` | `--sidebar-accent` | Sidebar accent |
100
+ | `color.on-background` | `--sidebar-accent-foreground` | Sidebar accent text |
101
+ | `shape.border-color` | `--sidebar-border` | Sidebar borders |
102
+ | `color.primary` | `--sidebar-ring` | Sidebar focus ring |
103
+ | | `--chart-1` through `--chart-5` | Derive from primary, secondary, accent, info, success |
104
+
105
+ ### Shape mapping
106
+
107
+ | `.yml` token | shadcn CSS variable |
108
+ |---|---|
109
+ | `shape.border-radius-lg` | `--radius` |
110
+
111
+ shadcn derives `--radius` down: `calc(var(--radius) - 2px)` for md, `calc(var(--radius) - 4px)` for sm.
112
+
113
+ ### Typography
114
+
115
+ shadcn doesn't use CSS variables for fonts — set in `tailwind.config` `fontFamily` extend:
116
+
117
+ ```js
118
+ fontFamily: {
119
+ sans: [/* from typography.font-family-primary */],
120
+ mono: [/* from typography.font-family-mono */],
121
+ }
122
+ ```
123
+
124
+ ### Dark mode
125
+
126
+ | `.yml` dark_mode token | shadcn CSS variable (`.dark` scope) |
127
+ |---|---|
128
+ | `dark_mode.color.background` | `--background` |
129
+ | `dark_mode.color.on-background` | `--foreground` |
130
+ | `dark_mode.color.surface` | `--card`, `--popover` |
131
+ | `dark_mode.color.border-color` | `--border`, `--input` |
132
+ | `dark_mode.color.muted` | `--muted`, `--muted-foreground` |
133
+
134
+ Tokens not listed in `dark_mode` inherit their light-mode value.
135
+
136
+ ### Color format conversion
137
+
138
+ shadcn expects HSL channel values (no `hsl()` wrapper): `210 40% 98%`
139
+
140
+ **Conversion:** hex → HSL → extract H S% L% as space-separated string.
141
+
142
+ ```
143
+ #1E40AF → hsl(221, 72%, 40%) → "221 72% 40%"
144
+ ```
145
+
146
+ ### Complete output example
147
+
148
+ Given `professional.yml`:
149
+
150
+ ```css
151
+ @layer base {
152
+ :root {
153
+ --background: 0 0% 100%;
154
+ --foreground: 222 47% 11%;
155
+ --card: 210 40% 98%;
156
+ --card-foreground: 222 47% 11%;
157
+ --popover: 210 40% 98%;
158
+ --popover-foreground: 222 47% 11%;
159
+ --primary: 221 72% 40%;
160
+ --primary-foreground: 0 0% 100%;
161
+ --secondary: 215 16% 47%;
162
+ --secondary-foreground: 0 0% 100%;
163
+ --muted: 213 27% 84%;
164
+ --muted-foreground: 215 16% 47%;
165
+ --accent: 199 89% 48%;
166
+ --accent-foreground: 0 0% 100%;
167
+ --destructive: 0 72% 51%;
168
+ --destructive-foreground: 0 0% 100%;
169
+ --border: 214 32% 91%;
170
+ --input: 214 32% 91%;
171
+ --ring: 221 72% 40%;
172
+ --radius: 0.75rem;
173
+ --chart-1: 221 72% 40%;
174
+ --chart-2: 215 16% 47%;
175
+ --chart-3: 199 89% 48%;
176
+ --chart-4: 217 91% 60%;
177
+ --chart-5: 142 71% 45%;
178
+ }
179
+
180
+ .dark {
181
+ --background: 222 47% 11%;
182
+ --foreground: 210 40% 96%;
183
+ --card: 217 33% 17%;
184
+ --card-foreground: 210 40% 96%;
185
+ --popover: 217 33% 17%;
186
+ --popover-foreground: 210 40% 96%;
187
+ --border: 217 19% 27%;
188
+ --input: 217 19% 27%;
189
+ --muted: 215 20% 65%;
190
+ --muted-foreground: 215 20% 65%;
191
+ }
192
+ }
193
+ ```
194
+
195
+ ---
196
+
197
+ ## Target: Tailwind (no component library)
198
+
199
+ For codebases using Tailwind without shadcn, map directly to `tailwind.config` `extend`:
200
+
201
+ ```js
202
+ theme: {
203
+ extend: {
204
+ colors: {
205
+ primary: "var(--color-primary)",
206
+ secondary: "var(--color-secondary)",
207
+ accent: "var(--color-accent)",
208
+ background: "var(--color-background)",
209
+ surface: "var(--color-surface)",
210
+ foreground: "var(--color-foreground)",
211
+ muted: "var(--color-muted)",
212
+ error: "var(--color-error)",
213
+ success: "var(--color-success)",
214
+ warning: "var(--color-warning)",
215
+ },
216
+ fontFamily: {
217
+ sans: [/* typography.font-family-primary */],
218
+ mono: [/* typography.font-family-mono */],
219
+ },
220
+ borderRadius: {
221
+ sm: "var(--radius-sm)",
222
+ md: "var(--radius-md)",
223
+ lg: "var(--radius-lg)",
224
+ },
225
+ boxShadow: {
226
+ sm: "var(--shadow-sm)",
227
+ md: "var(--shadow-md)",
228
+ lg: "var(--shadow-lg)",
229
+ xl: "var(--shadow-xl)",
230
+ },
231
+ }
232
+ }
233
+ ```
234
+
235
+ CSS variables use hex directly (no HSL conversion needed):
236
+
237
+ ```css
238
+ :root {
239
+ --color-primary: #1E40AF;
240
+ --color-secondary: #475569;
241
+ --color-background: #FFFFFF;
242
+ --color-surface: #F8FAFC;
243
+ --color-foreground: #0F172A;
244
+ --color-muted: #94A3B8;
245
+ --radius-sm: 6px;
246
+ --radius-md: 8px;
247
+ --radius-lg: 12px;
248
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
249
+ --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07);
250
+ }
251
+ ```
252
+
253
+ ---
254
+
255
+ ## Target: Vanilla CSS
256
+
257
+ For non-Tailwind codebases, generate a CSS custom property system with semantic class recipes:
258
+
259
+ ```css
260
+ :root {
261
+ /* Brand */
262
+ --color-primary: #1E40AF;
263
+ --color-secondary: #475569;
264
+ --color-accent: #0EA5E9;
265
+ --color-bg: #FFFFFF;
266
+ --color-surface: #F8FAFC;
267
+ --color-text: #0F172A;
268
+ --color-muted: #94A3B8;
269
+ --color-border: #E2E8F0;
270
+
271
+ /* Semantic */
272
+ --color-error: #DC2626;
273
+ --color-success: #16A34A;
274
+ --color-warning: #D97706;
275
+
276
+ /* Shape */
277
+ --radius-sm: 6px;
278
+ --radius-md: 8px;
279
+ --radius-lg: 12px;
280
+ --border-width: 1px;
281
+
282
+ /* Elevation */
283
+ --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
284
+ --shadow-md: 0 4px 6px rgba(0, 0, 0, 0.07);
285
+
286
+ /* Spacing */
287
+ --space-1: 4px;
288
+ --space-2: 8px;
289
+ --space-3: 12px;
290
+ --space-4: 16px;
291
+ --space-6: 24px;
292
+ --space-8: 32px;
293
+ --space-12: 48px;
294
+ --space-16: 64px;
295
+
296
+ /* Motion */
297
+ --duration-fast: 150ms;
298
+ --duration-normal: 250ms;
299
+ --easing: cubic-bezier(0.4, 0, 0.2, 1);
300
+
301
+ /* Typography */
302
+ --font-sans: Inter, system-ui, sans-serif;
303
+ --font-mono: SF Mono, Menlo, monospace;
304
+ --font-weight-heading: 600;
305
+ --font-weight-body: 400;
306
+ --font-size-base: 16px;
307
+ --line-height-base: 1.6;
308
+ }
309
+ ```
310
+
311
+ ---
312
+
313
+ ## Layered resolution
314
+
315
+ The builder resolves tokens in this order (last wins):
316
+
317
+ 1. **Preset `.yml`** — base tokens from the style preset (e.g., `professional.yml`)
318
+ 2. **Brand `.yml`** — overrides from branding process (e.g., `acme.yml` with `style_base: professional`)
319
+ 3. **Dark mode** — `dark_mode.color.*` overrides for `.dark` scope
320
+
321
+ If only a preset exists (quick project), step 2 is skipped. The builder generates CSS from whatever `.yml` it receives.
322
+
323
+ ## When to generate extended files
324
+
325
+ | Scenario | Files produced |
326
+ |----------|---------------|
327
+ | Quick project (`/gsp-style`) | Preset `.yml` (base) → CSS vars generated at build time |
328
+ | Full branding (customized) | Brand `.yml` (inherits preset) + `STYLE.md` |
329
+ | Full branding (unchanged from preset) | Only `STYLE.md` (brand `.yml` not needed if identical to preset) |
@@ -0,0 +1,112 @@
1
+ ---
2
+ name: gsp-3d
3
+ description: Define 3D & WebGL direction — render style, materials, lighting, camera, interactive scenes
4
+ user-invocable: true
5
+ model: sonnet
6
+ allowed-tools:
7
+ - Read
8
+ - Write
9
+ - AskUserQuestion
10
+ - Glob
11
+ - Grep
12
+ - WebSearch
13
+ ---
14
+ <context>
15
+ You are a GSP 3D director. You define the brand's 3D and WebGL visual language — render aesthetic, material philosophy, lighting direction, camera behavior, and interactive scene design.
16
+
17
+ This is a standalone composable skill. It works two ways:
18
+ 1. **Standalone** — user runs `/gsp-3d` directly for 3D direction
19
+ 2. **As a building block** — invoked during identity or project phases when the brand needs 3D/WebGL content direction
20
+
21
+ 3D is no longer a niche — product configurators, immersive heroes, interactive showcases, and spatial UI are becoming standard. A consistent 3D language ensures renders and scenes feel like the same brand.
22
+ </context>
23
+
24
+ <objective>
25
+ Define 3D and WebGL visual direction for a brand or project.
26
+
27
+ **Input:** Brand context or user description, OR `--enrich` mode
28
+ **Output:** `3d-direction.md` chunk with render style, materials, lighting, camera, and interaction specs
29
+ **Agent:** None — inline skill with structured questioning
30
+ </objective>
31
+
32
+ <execution_context>
33
+ @${CLAUDE_SKILL_DIR}/../../references/chunk-format.md
34
+ </execution_context>
35
+
36
+ <rules>
37
+ - Always use `AskUserQuestion` for user interaction — never prompt via plain text
38
+ - One decision per question — never batch multiple questions in a single message
39
+ - 3D direction must align with brand's 2D aesthetic — if flat design, renders should be clean/minimal; if neubrutalism, renders can be bold/graphic
40
+ - Specify concrete tools/libraries where applicable (Three.js, React Three Fiber, Spline, Blender)
41
+ - Performance constraints matter — specify polygon budget, texture resolution, loading strategy
42
+ </rules>
43
+
44
+ <process>
45
+ ## Step 0: Determine mode
46
+
47
+ | Input | Mode |
48
+ |-------|------|
49
+ | `/gsp-3d --enrich` | Enrich existing 3D direction |
50
+ | `/gsp-3d` | Interactive — define 3D language |
51
+
52
+ ## Step 1: Enrich mode (`--enrich`)
53
+
54
+ Read existing brand context (`.yml` tokens, STYLE.md patterns/constraints). Derive 3D direction that's coherent with the 2D visual language.
55
+
56
+ ## Step 2: Interactive mode
57
+
58
+ One `AskUserQuestion` at a time:
59
+
60
+ 1. 3D use case — use `AskUserQuestion`:
61
+ - **Product showcase** — "product renders, configurators, 360 views"
62
+ - **Immersive hero** — "3D scene as page background or hero"
63
+ - **Interactive experience** — "explorable scenes, spatial navigation"
64
+ - **Data visualization** — "3D charts, network graphs, spatial data"
65
+ - **UI elements** — "3D icons, buttons, decorative elements"
66
+ - **Multiple** — "we need several types"
67
+ 2. Render aesthetic — use `AskUserQuestion`:
68
+ - **Photorealistic** — "physically accurate, studio-quality"
69
+ - **Stylized** — "non-photorealistic, illustrated, graphic"
70
+ - **Minimal** — "clean geometry, soft shadows, white studio"
71
+ - **Abstract** — "generative, particle systems, noise-driven"
72
+ - **Clay/soft** — "rounded, matte, toy-like (matches claymorphism)"
73
+
74
+ ## Step 3: Define 3D direction
75
+
76
+ ### Render Style
77
+ - **Aesthetic:** photorealistic / stylized / minimal / abstract
78
+ - **Geometry:** smooth/faceted, organic/geometric, detail level
79
+ - **Color:** brand palette integration, tint strategy for materials
80
+
81
+ ### Materials
82
+ - **Primary material:** matte, glossy, metallic, glass, emissive
83
+ - **Surface quality:** smooth, textured, rough, reflective
84
+ - **Brand material:** the signature material (e.g., "frosted glass for glassmorphism brands", "clay for claymorphism")
85
+
86
+ ### Lighting
87
+ - **Setup:** studio (3-point), environmental, dramatic, flat
88
+ - **Key light:** direction, color temperature, intensity
89
+ - **Ambient:** environment map, HDRI direction, ambient occlusion level
90
+ - **Shadows:** soft/hard, contact shadows, shadow color
91
+
92
+ ### Camera
93
+ - **Perspective:** focal length range (35mm-85mm), depth of field
94
+ - **Movement:** orbit, dolly, static, scroll-driven
95
+ - **Framing:** centered, rule-of-thirds, dynamic
96
+
97
+ ### Interaction (WebGL)
98
+ - **Library:** Three.js, React Three Fiber, Spline, PlayCanvas
99
+ - **Controls:** orbit, scroll-driven animation, mouse parallax, click interaction
100
+ - **Performance budget:** target FPS, polygon count, texture resolution
101
+ - **Loading:** progressive loading, LOD strategy, placeholder
102
+ - **Fallback:** what to show when WebGL isn't available (static image, CSS-only)
103
+
104
+ ### Integration with 2D
105
+ - **How 3D meets flat UI:** floating above page, embedded in sections, full-page takeover
106
+ - **Z-depth relationship:** 3D behind UI, 3D as UI element, mixed
107
+ - **Transition:** how the user moves between 3D and 2D contexts
108
+
109
+ ## Step 4: Write output + completion
110
+
111
+ Write `3d-direction.md` chunk. Target: 80-120 lines.
112
+ </process>
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: accessibility
2
+ name: gsp-accessibility
3
3
  description: Quick contrast checks and token WCAG audits — inline, no agent
4
4
  user-invocable: true
5
5
  model: sonnet
@@ -13,12 +13,12 @@ allowed-tools:
13
13
  ---
14
14
  <context>
15
15
  Standalone composable accessibility skill. Works two ways:
16
- 1. **Standalone** — user runs `/gsp:accessibility` directly for quick contrast checks or token audits
16
+ 1. **Standalone** — user runs `/gsp-accessibility` directly for quick contrast checks or token audits
17
17
  2. **As a building block** — critique and review phases detect prior accessibility output and reuse it
18
18
 
19
19
  Follows the composable pattern: deterministic modes, predictable output paths, filesystem as integration layer.
20
20
 
21
- For full design audits, code audits, or statement generation, use `/gsp:accessibility-audit`.
21
+ For full design audits, code audits, or statement generation, use `/gsp-accessibility-audit`.
22
22
  </context>
23
23
 
24
24
  <objective>
@@ -59,10 +59,10 @@ If no arguments provided, use `AskUserQuestion`:
59
59
 
60
60
  **"What would you like to do?"**
61
61
  - **Quick contrast check** — "check specific color pairs for WCAG contrast compliance"
62
- - **Token audit** — "audit tokens.json for WCAG compliance"
63
- - **Full design/code audit** — "run `/gsp:accessibility-audit` for full WCAG audits, code audits, or statement generation"
62
+ - **Token audit** — "audit brand `.yml` tokens for WCAG compliance"
63
+ - **Full design/code audit** — "run `/gsp-accessibility-audit` for full WCAG audits, code audits, or statement generation"
64
64
 
65
- If user picks "Full design/code audit", tell them to run `/gsp:accessibility-audit` and stop.
65
+ If user picks "Full design/code audit", tell them to run `/gsp-accessibility-audit` and stop.
66
66
 
67
67
  ### Quick check mode (`--check`)
68
68
 
@@ -84,7 +84,7 @@ Convert hex to relative luminance (sRGB linearization), then:
84
84
  ### Display results
85
85
 
86
86
  ```
87
- /gsp:accessibility — contrast check
87
+ /gsp-accessibility — contrast check
88
88
  ═══════════════════════════════════════
89
89
 
90
90
  Foreground: {FG_HEX} Background: {BG_HEX}
@@ -126,7 +126,7 @@ Determine final conformance level:
126
126
  Read from the brand/project:
127
127
  - `{BRAND_PATH}/identity/palettes.json`
128
128
  - `{BRAND_PATH}/identity/color-system.md`
129
- - `{BRAND_PATH}/patterns/tokens.json`
129
+ - `{BRAND_PATH}/patterns/*.yml` (brand style preset)
130
130
  - `{BRAND_PATH}/identity/typography.md`
131
131
 
132
132
  If files don't exist, report which are missing and stop.
@@ -134,7 +134,7 @@ If files don't exist, report which are missing and stop.
134
134
  ### Token checks
135
135
 
136
136
  **4.1 Contrast Pairs:**
137
- - Extract every semantic foreground/background pair from tokens.json
137
+ - Extract every semantic foreground/background pair from the brand `.yml` preset
138
138
  - Calculate WCAG 2.x contrast ratio for each pair
139
139
  - Flag failures: normal text < 4.5:1, large text < 3:1, non-text < 3:1
140
140
 
@@ -202,8 +202,8 @@ Conformance target: {level}
202
202
  ### Completion
203
203
 
204
204
  Display result and use `AskUserQuestion`:
205
- - **Run full design audit** — "run `/gsp:accessibility-audit` for full WCAG design audit"
206
- - **Run code audit** — "run `/gsp:accessibility-audit --code` to check the codebase"
205
+ - **Run full design audit** — "run `/gsp-accessibility-audit` for full WCAG design audit"
206
+ - **Run code audit** — "run `/gsp-accessibility-audit --code` to check the codebase"
207
207
  - **Done** — "that's all for now"
208
208
 
209
209
  ## Step 5: Update STATE.md
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: accessibility-audit
2
+ name: gsp-accessibility-audit
3
3
  description: Full WCAG accessibility audit — design screens, codebase, or generate compliance statement
4
4
  user-invocable: true
5
5
  model: opus
@@ -16,10 +16,10 @@ allowed-tools:
16
16
  ---
17
17
  <context>
18
18
  Full accessibility audit skill that spawns the `gsp-accessibility-auditor` agent for deep WCAG analysis. Works two ways:
19
- 1. **Standalone** — user runs `/gsp:accessibility-audit` directly for design, code, or statement generation
19
+ 1. **Standalone** — user runs `/gsp-accessibility-audit` directly for design, code, or statement generation
20
20
  2. **As a building block** — critique and review phases detect prior accessibility output and reuse it
21
21
 
22
- For quick contrast checks or token audits, use `/gsp:accessibility` instead.
22
+ For quick contrast checks or token audits, use `/gsp-accessibility` instead.
23
23
 
24
24
  Follows the composable pattern: deterministic modes, predictable output paths, filesystem as integration layer.
25
25
  </context>
@@ -33,7 +33,6 @@ Run full accessibility audits — design screen reviews, codebase ARIA/keyboard/
33
33
  </objective>
34
34
 
35
35
  <execution_context>
36
- @${CLAUDE_SKILL_DIR}/../../prompts/08-accessibility-auditor.md
37
36
  @${CLAUDE_SKILL_DIR}/../../references/wcag-checklist.md
38
37
  </execution_context>
39
38
 
@@ -96,7 +95,7 @@ Spawn `gsp-accessibility-auditor` with:
96
95
  Display result:
97
96
 
98
97
  ```
99
- /gsp:accessibility-audit — design audit complete
98
+ /gsp-accessibility-audit — design audit complete
100
99
  ═══════════════════════════════════════
101
100
 
102
101
  {PROJECT_PATH}/critique/
@@ -107,7 +106,7 @@ Display result:
107
106
  ```
108
107
 
109
108
  Use `AskUserQuestion`:
110
- - **Run token audit** — "run `/gsp:accessibility --tokens` to check design token contrast pairs"
109
+ - **Run token audit** — "run `/gsp-accessibility --tokens` to check design token contrast pairs"
111
110
  - **Continue to build** — "implement designs in the codebase"
112
111
  - **View audit** — "read the accessibility report"
113
112
  - **Done** — "that's all for now"
@@ -134,7 +133,7 @@ Spawn `gsp-accessibility-auditor` with:
134
133
  Display result:
135
134
 
136
135
  ```
137
- /gsp:accessibility-audit --code — code audit complete
136
+ /gsp-accessibility-audit --code — code audit complete
138
137
  ═══════════════════════════════════════
139
138
 
140
139
  {PROJECT_PATH}/review/
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: add-reference
2
+ name: gsp-add-reference
3
3
  description: Add reference material to a project
4
4
  user-invocable: true
5
5
  model: sonnet
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: art
2
+ name: gsp-art
3
3
  description: "Craft ASCII art interactively — you direct, the artist creates"
4
4
  user-invocable: true
5
5
  model: sonnet
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: brand-audit
2
+ name: gsp-brand-audit
3
3
  description: Audit an existing brand before evolving it
4
4
  user-invocable: true
5
5
  model: opus
@@ -44,11 +44,11 @@ Resolve brand from `.design/branding/` (one → use it, multiple → ask). Set `
44
44
  Read `{BRAND_PATH}/BRIEF.md` for aspirational direction.
45
45
  Read `{BRAND_PATH}/config.json` to confirm `brand_mode` is `evolve`.
46
46
 
47
- If missing, tell user to run `/gsp:start` first.
47
+ If missing, tell user to run `/gsp-start` first.
48
48
 
49
49
  ## Step 2: Load brand assets from brief
50
50
 
51
- Read `{BRAND_PATH}/BRIEF.md` — brand assets were already gathered during `/gsp:start`. Extract any logos, colors, guidelines, URLs, or descriptions the user provided.
51
+ Read `{BRAND_PATH}/BRIEF.md` — brand assets were already gathered during `/gsp-start`. Extract any logos, colors, guidelines, URLs, or descriptions the user provided.
52
52
 
53
53
  If the brief has no asset information (legacy or incomplete brief), use `AskUserQuestion`:
54
54
  - **Share assets now** — "I have guidelines, colors, fonts, voice samples, or URLs to share"