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
@@ -0,0 +1,233 @@
1
+ ---
2
+ name: gsp-brand-guidelines
3
+ description: Operationalize your brand — assemble tokens, STYLE.md, component mapping, and guidelines
4
+ user-invocable: true
5
+ model: opus
6
+ effort: high
7
+ allowed-tools:
8
+ - Read
9
+ - Write
10
+ - Bash
11
+ - Agent
12
+ - Grep
13
+ - Glob
14
+ ---
15
+ <context>
16
+ Phase 4 of the GSP branding diamond. Transforms the brand identity into operational artifacts that designer and builder agents consume — the `.yml` preset (source of truth), STYLE.md (agent contract), component token mapping, and `guidelines.html` (what the user sees).
17
+
18
+ Identity made the creative decisions. This phase makes them work in code.
19
+ </context>
20
+
21
+ <objective>
22
+ Operationalize brand identity into project-ready artifacts and complete the branding diamond.
23
+
24
+ **Input:** Brand identity (enriched by domain skills) + strategy + BRIEF.md
25
+ **Output:** `{brand}/patterns/` ({brand-name}.yml, STYLE.md, guidelines.html, components/, INDEX.md)
26
+ **Agent:** `gsp-brand-engineer`
27
+ </objective>
28
+
29
+ <execution_context>
30
+ @${CLAUDE_SKILL_DIR}/../../templates/phases/patterns.md
31
+ @${CLAUDE_SKILL_DIR}/../../references/design-tokens.md
32
+ </execution_context>
33
+
34
+ <rules>
35
+ - Always use `AskUserQuestion` for user-facing questions — never raw text prompts
36
+ - One decision per question — never batch multiple questions in a single message
37
+ </rules>
38
+
39
+ <process>
40
+ ## Step 0: Resolve brand
41
+
42
+ Resolve brand from `.design/branding/` (one → use it, multiple → ask). Set `BRAND_PATH`.
43
+ If BRAND_PATH doesn't exist, tell the user to run `/gsp-start` first.
44
+
45
+ ## Step 1: Load context
46
+
47
+ ### Identity (chunk-first)
48
+
49
+ Read `{BRAND_PATH}/identity/INDEX.md`. If it exists, load all identity chunks + `palettes.json`.
50
+
51
+ If INDEX.md doesn't exist, check if identity phase is complete in brand STATE.md. If not, tell the user to complete brand identity first (run `/gsp-brand-identity`).
52
+
53
+ ### Strategy (selective, chunk-first)
54
+
55
+ Read `{BRAND_PATH}/strategy/INDEX.md`. If it exists, load: voice-and-tone.md, archetype.md, positioning.md.
56
+
57
+ ### Brand context
58
+
59
+ Read:
60
+ - `{BRAND_PATH}/BRIEF.md` — business, personas, goals
61
+ - `{BRAND_PATH}/config.json` — get `system_config.system_strategy`, `system_config.tech_stack`, `system_config.style_base`
62
+
63
+ ### Style base presets
64
+
65
+ If `style_base` is a non-empty array, load each preset's files from `${CLAUDE_SKILL_DIR}/../gsp-style/styles/`:
66
+ - `{preset-name}.yml` — structural scaffold (tokens + intensity + patterns + constraints + effects)
67
+ - `{preset-name}.md` — design philosophy, bold bets, implementation patterns (CSS recipes, textures, animations)
68
+
69
+ Both files are needed: the `.yml` provides the structure to inherit from, the `.md` provides the philosophy and implementation content for STYLE.md rendering.
70
+
71
+ If `style_base` is empty or missing, load `${CLAUDE_SKILL_DIR}/../gsp-style/styles/professional.yml` and `professional.md` as the default format reference. The agent always needs at least one example to produce the custom style output.
72
+
73
+ ## Step 1.5: Codebase awareness
74
+
75
+ **Always scan:** If `.design/system/` docs don't exist, invoke `/gsp-design-system` via Skill tool to scan the codebase. If they already exist, read them. Either way, load STACK.md, COMPONENTS.md, and TOKENS.md before continuing.
76
+
77
+ Then ask the user (each as its own `AskUserQuestion`):
78
+
79
+ 1. Tech stack — if the scan detected a stack, use `AskUserQuestion`:
80
+ - **Yes, build on {framework} + {styling}** — "Use what's already here"
81
+ - **Different stack** — "I want to target a different tech stack"
82
+ If no stack detected, use open-ended `AskUserQuestion`: "What tech stack will this brand target?"
83
+ Store answer in `{BRAND_PATH}/config.json` → `system_config.tech_stack`
84
+
85
+ 2. System strategy — only ask if scan found existing tokens/components. Use `AskUserQuestion`:
86
+ - **Evolve** — "Extend the existing design system"
87
+ - **Rethink** — "Redesign from scratch, informed by what exists"
88
+ - **Ignore** — "Start fresh, don't reference the existing system"
89
+ Store strategy in `{BRAND_PATH}/config.json` → `system_config.system_strategy`
90
+ If scan found no tokens/components (greenfield/boilerplate): default to `generate`, skip this question
91
+
92
+ ## Step 2: Determine system strategy
93
+
94
+ Read `system_config.system_strategy` from config.json (defaults to `generate` if missing).
95
+
96
+ Three strategies:
97
+
98
+ **GENERATE** (when `system_strategy` is `generate` or missing):
99
+ Full system from scratch. For `boilerplate` codebases, respect existing config structure (extend tailwind.config, not replace) and output tokens in the format the existing config uses (Tailwind extend, CSS custom properties, etc).
100
+
101
+ **EXTEND** (when `system_strategy` is `extend`):
102
+ Evolve the existing system rather than replacing it.
103
+ 1. Audit existing tokens against the brand identity — keep what works, adjust what doesn't, fill gaps
104
+ 2. Classify each existing component: KEEP / RESTYLE / REFACTOR / REPLACE
105
+ 3. Design only net-new components not covered by existing ones
106
+ 4. Output delta tokens — only new and changed values
107
+ 5. Preserve existing naming conventions from `.design/system/CONVENTIONS.md`
108
+
109
+ **REFACTOR** (when `system_strategy` is `refactor`):
110
+ Redesign the system from the ground up, informed by what exists.
111
+ 1. Read and understand existing tokens, components, patterns from `.design/system/` docs
112
+ 2. Design a complete new system — same scope as GENERATE
113
+ 3. Produce a migration mapping for every change
114
+ 4. Preserve conventions unless the brand requires changes
115
+ 5. Flag breaking changes explicitly
116
+
117
+ ## Step 3: Spawn brand engineer — Pass 1: Core
118
+
119
+ Spawn the `gsp-brand-engineer` agent. **Inline all content** — the agent should not need to read input files.
120
+
121
+ Pass in the agent prompt:
122
+ - **Content of** all identity chunks + palettes.json (loaded in Step 1)
123
+ - **Content of** strategy chunks: voice-and-tone.md, archetype.md, positioning.md (loaded in Step 1)
124
+ - **Content of** BRIEF.md (loaded in Step 1)
125
+ - **Content of** style base preset `.yml` + `.md` (loaded in Step 1) — `.yml` as structural scaffold, `.md` as philosophy + implementation content for STYLE.md
126
+ - Patterns output template, design tokens reference (from execution_context)
127
+ - The `system_strategy` and `tech_stack` values
128
+ - **Output path:** `{BRAND_PATH}/patterns/`
129
+
130
+ > Produce the core brand artifacts ONLY:
131
+ > 1. `{brand-name}.yml` — source of truth (tokens + intensity + patterns + constraints + effects)
132
+ > 2. `STYLE.md` — agent contract (rendered from `.yml` + philosophy + bold bets)
133
+ > 3. `guidelines.html` — visual brand guide (what the user sees in their browser)
134
+ > 4. `INDEX.md` — core files only for now
135
+ >
136
+ > Do NOT produce component artifacts yet (token-mapping, overrides, custom specs). Those come after the user reviews the visual output.
137
+
138
+ ## Step 3.5: Visual review
139
+
140
+ Tell the user: "Open `{BRAND_PATH}/patterns/guidelines.html` in your browser — this is your brand in one page."
141
+
142
+ Present a compact summary:
143
+
144
+ ```
145
+ {brand-name} guidelines
146
+ ═══════════════════════════════════════
147
+
148
+ .yml preset
149
+ colors: {primary}, {secondary}, {accent}
150
+ typography: {primary font}, {secondary font}
151
+ intensity: variance {N}/10, motion {N}/10, density {N}/10
152
+
153
+ STYLE.md
154
+ patterns: {N} components defined
155
+ constraints: {N} never, {N} always rules
156
+ effects: {interaction vocabulary list}
157
+ bold bets: {1-line summary of boldest bet}
158
+
159
+ → open guidelines.html in your browser to preview
160
+
161
+ ─────────────────────────────────────
162
+ ```
163
+
164
+ Use `AskUserQuestion`:
165
+ - **Looks good** — "The brand looks right, build components"
166
+ - **Adjust tokens** — "I want to tweak colors, typography, or spacing"
167
+ - **Adjust patterns** — "I want to change component rules or constraints"
168
+ - **Adjust intensity** — "More/less creative, more/less motion, more/less density"
169
+
170
+ If adjustments needed, use `/gsp-brand-refine` with the feedback to surgically update the `.yml`, regenerate `STYLE.md`, and regenerate `guidelines.html`. Then re-present.
171
+
172
+ ## Step 3.75: Perspective check
173
+
174
+ Load persona profiles from `{BRAND_PATH}/BRIEF.md` and present stakeholder reactions:
175
+
176
+ "Stress-testing the brand visuals:
177
+
178
+ {primary persona name}: {would this visual language feel trustworthy and appropriate?}
179
+ Skeptic: {are the constraints too restrictive or too loose? Is the intensity calibrated right?}
180
+ {top competitor}: {is the brand visually differentiated?}"
181
+
182
+ Use `AskUserQuestion`:
183
+ - **Lock it in** — "The brand is solid, build components"
184
+ - **Adjust** — "One of these concerns resonates — I want to change something"
185
+
186
+ If adjust → use `/gsp-brand-refine` with the concern, then re-present. If confirmed → proceed to components.
187
+
188
+ ## Step 4: Spawn brand engineer — Pass 2: Components
189
+
190
+ Spawn the `gsp-brand-engineer` agent with:
191
+ - **Content of** the confirmed `{BRAND_PATH}/patterns/{brand-name}.yml`
192
+ - **Content of** `{BRAND_PATH}/patterns/STYLE.md`
193
+ - **Content of** `.design/system/STACK.md`, `COMPONENTS.md`, `TOKENS.md` (when loaded in Step 1.5)
194
+ - The `system_strategy` and `tech_stack` values
195
+ - Design tokens reference (from execution_context)
196
+ - **Output path:** `{BRAND_PATH}/patterns/`
197
+
198
+ > Produce the component artifacts:
199
+ > 1. `components/token-mapping.md` — brand tokens → library theming API (always)
200
+ > 2. Component override specs (selective — only when tokens aren't enough)
201
+ > 3. Custom component specs (selective — brand-distinctive with no library equivalent)
202
+ > 4. Update `INDEX.md` with the components section
203
+ >
204
+ > The `.yml` and `STYLE.md` are confirmed — do not modify them. Focus on mapping tokens to the detected component library and specifying overrides.
205
+
206
+ ## Step 4.5: Update state
207
+
208
+ Update `{BRAND_PATH}/STATE.md`:
209
+ - Set Phase 4 (Patterns) status to `complete`
210
+ - Record completion date
211
+ - Set Prettiness Level to 100%
212
+
213
+ ## Step 5: Phase transition output
214
+
215
+ Render phase transition (see `references/phase-transitions.md`).
216
+
217
+ **E2E mode:** Read `{BRAND_PATH}/config.json`. If `e2e` is `true`, auto-invoke `/gsp-start` via Skill tool — it will detect the completed brand and route directly to project setup (Step 4). No need to ask the user.
218
+
219
+ **Non-E2E:** When the user chooses "Start a project", invoke `/gsp-start` via the Skill tool. Do NOT attempt to handle project setup inline — `/gsp-start` has the codebase scanning, questioning rounds, and brief-writing logic needed for a proper project setup. The branding agent's context is spent on brand work and lacks the project setup methodology.
220
+
221
+ Also display a brand summary after the standard transition — this is the final branding phase:
222
+
223
+ ```
224
+ brand complete — {brand-name}
225
+
226
+ discover {key finding}
227
+ strategy {archetype}, {positioning}, {top voice attributes}
228
+ identity {colors}, {typefaces}
229
+ guidelines .yml + STYLE.md + {N} components + guidelines.html
230
+
231
+ open: {BRAND_PATH}/patterns/guidelines.html
232
+ ```
233
+ </process>
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: brand-identity
2
+ name: gsp-brand-identity
3
3
  description: Create your visual identity — logo, color, typography
4
4
  user-invocable: true
5
5
  model: opus
@@ -22,11 +22,10 @@ Build the brand's visual identity.
22
22
 
23
23
  **Input:** Strategy chunks + BRIEF.md + discover/mood-board-direction.md
24
24
  **Output:** `.design/branding/{brand}/identity/` (6 chunks + palettes.json + INDEX.md)
25
- **Agent:** `gsp-identity-designer`
25
+ **Agent:** `gsp-creative-director`
26
26
  </objective>
27
27
 
28
28
  <execution_context>
29
- @${CLAUDE_SKILL_DIR}/../../prompts/02-brand-identity-creator.md
30
29
  @${CLAUDE_SKILL_DIR}/../../templates/phases/identity.md
31
30
  @${CLAUDE_SKILL_DIR}/../../references/color-composition.md
32
31
  </execution_context>
@@ -43,12 +42,12 @@ Build the brand's visual identity.
43
42
  ## Step 0: Resolve brand
44
43
 
45
44
  Resolve brand from `.design/branding/` (one → use it, multiple → ask). Set `BRAND_PATH`.
46
- If missing, tell user to run `/gsp:start` first.
45
+ If missing, tell user to run `/gsp-start` first.
47
46
 
48
47
  ## Step 1: Validate prerequisites
49
48
 
50
49
  Read `{BRAND_PATH}/STATE.md`. Strategy (Phase 2) must be complete.
51
- If not: "Strategy isn't done yet. Run `/gsp:brand-strategy` first."
50
+ If not: "Strategy isn't done yet. Run `/gsp-brand-strategy` first."
52
51
 
53
52
  Load:
54
53
  - `{BRAND_PATH}/BRIEF.md`
@@ -59,10 +58,10 @@ Load:
59
58
  ### Style base presets
60
59
 
61
60
  If `style_base` is a non-empty array, load each preset's files from `${CLAUDE_SKILL_DIR}/../gsp-style/styles/`:
62
- - `{preset-name}.yml` — structured tokens (palette, typography, spacing)
63
- - `{preset-name}.md` — design philosophy and AI prompt
61
+ - `{preset-name}.yml` — tokens + intensity + patterns + constraints + effects (structural scaffold)
62
+ - `{preset-name}.md` — design philosophy, signature techniques, implementation patterns (creative context)
64
63
 
65
- These will be passed to the identity-designer agent as the aesthetic seed.
64
+ Both files matter: the `.yml` gives the creative-director the aesthetic rules to respect, the `.md` gives the emotional DNA and visual signatures to channel. The creative-director adapts the brand within the preset's structure — respecting intensity dials, patterns, and constraints while bringing the brand's unique personality.
66
65
 
67
66
  ## Step 2: Visual direction
68
67
 
@@ -85,28 +84,38 @@ After visual direction is confirmed, ask as a separate `AskUserQuestion`:
85
84
  - **No constraints** — "Go ahead with this direction"
86
85
  - **Add constraints** — "I have specific requirements (colors to avoid, accessibility needs, existing assets to match)"
87
86
 
88
- ## Step 3: Spawn identity designer
87
+ ## Step 3: Spawn creative director
89
88
 
90
- Spawn the `gsp-identity-designer` agent. **Inline all content** — the agent should not need to read any input files.
89
+ Spawn the `gsp-creative-director` agent. **Inline all content** — the agent should not need to read any input files.
91
90
 
92
91
  Pass in the agent prompt:
93
92
  - **Content of** BRIEF.md (loaded in Step 1)
94
93
  - **Content of** strategy chunks: archetype.md, positioning.md, brand-platform.md, voice-and-tone.md (loaded in Step 1)
95
94
  - **Content of** discover/mood-board-direction.md (loaded in Step 1)
96
- - **Content of** style base preset files `.yml` + `.md` (when loaded in Step 1)
95
+ - **Content of** style base preset `.yml` + `.md` (when loaded in Step 1) — `.yml` as structural scaffold, `.md` as design philosophy and signature techniques
97
96
  - **Content of** audit/brand-inventory.md (when loaded in Step 2)
98
- - Brand Identity Creator prompt (02), identity output template, color composition reference (from execution_context)
97
+ - Identity output template, color composition reference (from execution_context)
99
98
  - User-confirmed visual direction + constraints
100
99
  - **Output path:** `{BRAND_PATH}/identity/`
101
100
 
102
- The agent writes 5 chunks + palettes.json + INDEX.md:
101
+ The agent writes 5 chunks + INDEX.md (creative decisions only — no technical execution):
103
102
  1. `logo-directions.md`
104
- 2. `color-system.md`
105
- 3. `typography.md`
106
- 4. `imagery-style.md`
103
+ 2. `color-system.md` (chosen colors + rationale, no OKLCH/contrast math)
104
+ 3. `typography.md` (chosen typefaces + rationale, no scale math)
105
+ 4. `imagery-style.md` (creative direction, no icon library specifics)
107
106
  5. `brand-applications.md`
108
- 6. `palettes.json`
109
- 7. `INDEX.md`
107
+ 6. `INDEX.md`
108
+
109
+ ## Step 3.5: Enrich with domain skills
110
+
111
+ After the creative-director finishes, invoke domain skills to add technical precision to the creative decisions. Each skill reads the chunk the agent wrote, enriches it, and overwrites.
112
+
113
+ 1. **Invoke `/gsp-logo --enrich`** — reads `logo-directions.md`, enriches each direction with detailed construction geometry, complete variation specs, clear space rules, and minimum size calculations.
114
+ 2. **Invoke `/gsp-color --enrich`** — reads `color-system.md`, generates OKLCH palettes via tints.dev, calculates WCAG contrast, writes `palettes.json`, enriches with contrast ratios and semantic mapping.
115
+ 3. **Invoke `/gsp-typography --enrich`** — reads `typography.md`, generates mathematical type scale, adds fluid type formulas, enriches with font loading instructions.
116
+ 4. **Invoke `/gsp-images --enrich`** — reads `imagery-style.md`, adds icon library specifics, CSS texture/treatment recipes, enriches with technical implementation details.
117
+
118
+ Each skill loads its own domain references on-demand — no upfront context cost.
110
119
 
111
120
  ## Step 4: Perspective check
112
121
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: brand-refine
2
+ name: gsp-brand-refine
3
3
  description: Targeted brand adjustments mid-project — tweak colors, typography, or spacing without re-running the full branding diamond
4
4
  user-invocable: true
5
5
  model: sonnet
@@ -13,16 +13,16 @@ allowed-tools:
13
13
  - WebFetch
14
14
  ---
15
15
  <context>
16
- You are a GSP brand refinement skill. You take targeted feedback about brand visual issues and surgically update token values — no need to re-run strategy or identity.
16
+ You are a GSP brand refinement skill. You take targeted feedback about brand visual issues and surgically update the brand's `.yml` preset — no need to re-run strategy or identity.
17
17
 
18
- This skill modifies **tokens.json** and **palettes.json** only. If the user's feedback is strategic ("make the tone more playful") or narrative ("the brand story feels off"), redirect to `/gsp:brand-strategy` or `/gsp:brand-identity`.
18
+ This skill modifies **`{brand-name}.yml`** — the single source of truth for brand tokens, patterns, constraints, effects, and intensity. If the user's feedback is strategic ("make the tone more playful") or narrative ("the brand story feels off"), redirect to `/gsp-brand-strategy` or `/gsp-brand-identity`.
19
19
  </context>
20
20
 
21
21
  <objective>
22
- Accept natural language feedback about brand visuals, identify which tokens are affected, apply targeted value changes, and log what changed.
22
+ Accept natural language feedback about brand visuals, identify which `.yml` values are affected, apply targeted changes, and regenerate `STYLE.md` if it exists.
23
23
 
24
- **Input:** Natural language feedback (e.g., "accent is too muted", "heading weight too heavy")
25
- **Output:** Updated `tokens.json` and/or `palettes.json` + `REFINE-LOG.md`
24
+ **Input:** Natural language feedback (e.g., "accent is too muted", "make buttons rounder", "more motion")
25
+ **Output:** Updated `{brand-name}.yml` + regenerated `STYLE.md` (if exists) + `REFINE-LOG.md`
26
26
  **Agent:** None — inline skill, surgical edits
27
27
  </objective>
28
28
 
@@ -43,33 +43,40 @@ Accept natural language feedback about brand visuals, identify which tokens are
43
43
  <process>
44
44
  ## Step 0: Locate brand and parse feedback
45
45
 
46
- Extract feedback from the user's input (everything after `/gsp:brand-refine`).
46
+ Extract feedback from the user's input (everything after `/gsp-brand-refine`).
47
47
 
48
48
  If no feedback provided, use `AskUserQuestion`: "What would you like to adjust? (e.g., 'accent is too muted', 'heading font feels too heavy', 'spacing too tight')"
49
49
 
50
50
  Resolve brand from `.design/branding/` (one → use it, multiple → ask). Set `BRAND_PATH`.
51
- Check that `{BRAND_PATH}/patterns/tokens.json` exists. If not: "No tokens found. Run `/gsp:brand-patterns` first."
51
+ Find the brand's `.yml` file: scan `{BRAND_PATH}/patterns/` for a `.yml` file that is NOT in `foundations/` or `components/`. If not found: "No brand style found. Run `/gsp-brand-guidelines` first."
52
+
53
+ Also check if `{BRAND_PATH}/patterns/STYLE.md` exists (will need regeneration after changes).
52
54
 
53
55
  ## Step 1: Read current state
54
56
 
55
- Read `{BRAND_PATH}/patterns/tokens.json` once. Extract all sections relevant to the feedback:
57
+ Read the brand `.yml` once. Map feedback to the relevant section:
56
58
 
57
- | Feedback signals | Token section |
59
+ | Feedback signals | `.yml` section |
58
60
  |-----------------|---------------|
59
- | color, accent, muted, vibrant, contrast, tint, shade, hue | `color` |
60
- | font, heading, body, weight, size, line-height | `typography` |
61
- | spacing, padding, gap, tight, loose, dense | `spacing` |
62
- | shadow, elevation, depth, flat | `shadow` |
63
- | radius, rounded, sharp, corners | `borderRadius` |
64
-
65
- Also read `{BRAND_PATH}/identity/palettes.json` if it exists and feedback involves colors.
61
+ | color, accent, muted, vibrant, contrast, tint, shade, hue | `tokens.color` + `dark_mode.color` |
62
+ | font, heading, body, weight, size, line-height | `tokens.typography` |
63
+ | spacing, padding, gap, tight, loose, dense | `tokens.spacing` |
64
+ | shadow, elevation, depth, flat | `tokens.elevation` |
65
+ | radius, rounded, sharp, corners | `tokens.shape` |
66
+ | motion, speed, slow, fast, bounce, snap | `tokens.motion` + `intensity.motion` |
67
+ | creative, playful, restrained, chaos, calm | `intensity.variance` |
68
+ | dense, airy, packed, spacious | `intensity.density` |
69
+ | button, card, input, badge, nav | `patterns.{component}` |
70
+ | never, always, forbidden, required | `constraints` |
71
+ | hover, click, press, animation, effect | `effects` |
72
+ | dark mode, dark background, dark theme, night | `dark_mode.color` (+ any section above if the feedback applies to dark mode specifically) |
66
73
 
67
74
  ## Step 2: Propose changes
68
75
 
69
76
  Show a clear before/after for each affected token:
70
77
 
71
78
  ```
72
- /gsp:brand-refine
79
+ /gsp-brand-refine
73
80
  ═══════════════════════════════════════
74
81
 
75
82
  Feedback: "the accent is too muted"
@@ -101,7 +108,7 @@ If regenerating, call the tints.dev API:
101
108
  ```
102
109
  WebFetch: https://www.tints.dev/api/{colorName}/{hexWithoutHash}
103
110
  ```
104
- Parse the response for the 11-stop OKLCH scale (50–950) and update `palettes.json`.
111
+ Parse the response for the 11-stop OKLCH scale (50–950) and update `identity/palettes.json` as a reference artifact, then update the `.yml` color tokens from the new ramp.
105
112
 
106
113
  ### Typography changes involving scale ratio
107
114
 
@@ -115,8 +122,8 @@ Use `AskUserQuestion`:
115
122
  - **Cancel** — "keep current values"
116
123
 
117
124
  Apply confirmed changes:
118
- 1. **tokens.json** — edit values in place with `Edit`. Preserve structure.
119
- 2. **palettes.json**update if palette was regenerated.
125
+ 1. **`{brand-name}.yml`** — edit values in place with `Edit`. Preserve structure.
126
+ 2. **`STYLE.md`** — if it exists, regenerate the affected sections (Patterns tables, Constraints lists, Effects tables, or Intensity dials) to reflect the `.yml` changes. Read the template from `${CLAUDE_SKILL_DIR}/../../templates/phases/style.md` for format reference.
120
127
 
121
128
  ## Step 4: Log and finish
122
129
 
@@ -134,7 +141,7 @@ Append to `{BRAND_PATH}/REFINE-LOG.md`:
134
141
  Display summary:
135
142
 
136
143
  ```
137
- /gsp:brand-refine — {n} tokens updated
144
+ /gsp-brand-refine — {n} tokens updated
138
145
  ═══════════════════════════════════════
139
146
 
140
147
  Updated: {list of tokens}
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: brand-research
2
+ name: gsp-brand-research
3
3
  description: Research your market and competitors
4
4
  user-invocable: true
5
5
  model: sonnet
@@ -43,7 +43,7 @@ Research market context that will inform brand strategy.
43
43
 
44
44
  Resolve brand from `.design/branding/` (one → use it, multiple → ask). Set `BRAND_PATH`.
45
45
 
46
- Read `{BRAND_PATH}/BRIEF.md`. If missing, tell user to run `/gsp:start` first.
46
+ Read `{BRAND_PATH}/BRIEF.md`. If missing, tell user to run `/gsp-start` first.
47
47
  Read `{BRAND_PATH}/config.json` for `brand_mode`.
48
48
 
49
49
  ## Step 2: Confirm research scope
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: brand-strategy
2
+ name: gsp-brand-strategy
3
3
  description: Define positioning, voice, and messaging
4
4
  user-invocable: true
5
5
  model: opus
@@ -45,7 +45,7 @@ Define brand strategy and voice through interactive creative direction, then pro
45
45
  ## Step 0: Resolve brand
46
46
 
47
47
  Resolve brand from `.design/branding/` (one → use it, multiple → ask). Set `BRAND_PATH`.
48
- If missing, tell user to run `/gsp:start` first.
48
+ If missing, tell user to run `/gsp-start` first.
49
49
 
50
50
  ## Step 1: Load context
51
51
 
@@ -65,7 +65,7 @@ Frame as: "Here's where this brand can win." Keep it to 4-6 lines.
65
65
 
66
66
  ## Step 3: Archetype selection
67
67
 
68
- Read the personality direction from BRIEF.md (gathered during `/gsp:start`). Use it as the starting point — don't re-ask for personality. Deepen it into a structural archetype.
68
+ Read the personality direction from BRIEF.md (gathered during `/gsp-start`). Use it as the starting point — don't re-ask for personality. Deepen it into a structural archetype.
69
69
 
70
70
  Use `AskUserQuestion` with 2-3 archetype candidates that align with the chosen personality direction. Each option:
71
71
  - **Label:** archetype name
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: brand-sync
2
+ name: gsp-brand-sync
3
3
  description: Sync brand to match a project's shipped state — tokens, voice, visual patterns, personality
4
4
  user-invocable: true
5
5
  model: opus
@@ -17,7 +17,7 @@ allowed-tools:
17
17
  <context>
18
18
  Standalone brand feedback skill. After a project ships (or mid-development), the codebase and content may have diverged from the brand system — adjusted colors, shifted tone of voice, evolved visual patterns. This skill detects those divergences across all brand dimensions and updates the brand to match.
19
19
 
20
- This is the standalone version of the feedback loop built into `/gsp:project-build` (build-time). Use this when:
20
+ This is the standalone version of the feedback loop built into `/gsp-project-build` (build-time). Use this when:
21
21
  - A project evolved beyond its original brand during development
22
22
  - Manual tweaks were made post-build
23
23
  - The voice/tone landed differently than the strategy specified
@@ -49,7 +49,7 @@ Compare a project's shipped state against its source brand across all dimensions
49
49
  ## Step 0: Resolve brand and project
50
50
 
51
51
  Resolve brand from `.design/branding/` (one → use it, multiple → ask). Set `BRAND_PATH`.
52
- Check that the brand has at least one of: `patterns/tokens.json`, `strategy/`, `identity/`. If none exist, tell the user: "No brand system found. Run `/gsp:brand-patterns` first."
52
+ Check that the brand has at least one of: `patterns/{brand-name}.yml`, `strategy/`, `identity/`. If none exist, tell the user: "No brand system found. Run `/gsp-brand-guidelines` first."
53
53
 
54
54
  Verify the project codebase has shipped output — source files with components, copy, or styles.
55
55
 
@@ -60,7 +60,7 @@ mkdir -p {BRAND_PATH}/sync
60
60
  ```
61
61
 
62
62
  Spawn the `gsp-brand-syncer` agent with:
63
- - `BRAND_PATH` and all available brand files (tokens.json, strategy chunks, identity chunks, foundation chunks)
63
+ - `BRAND_PATH` and all available brand files ({brand-name}.yml, strategy chunks, identity chunks, foundation chunks)
64
64
  - Project codebase location (working directory)
65
65
  - **Output path:** `{BRAND_PATH}/sync/`
66
66
 
@@ -74,7 +74,7 @@ Read `{BRAND_PATH}/sync/SYNC-REPORT.md`. Present a compact summary per dimension
74
74
  - **Tokens only** — just sync the quantitative token changes
75
75
  - **Pick by dimension** — choose which dimensions to sync
76
76
  - **Review each** — walk through every divergence individually
77
- - **Refine manually** — run `/gsp:brand-refine` to make targeted token adjustments instead
77
+ - **Refine manually** — run `/gsp-brand-refine` to make targeted token adjustments instead
78
78
  - **Skip** — don't update the brand
79
79
 
80
80
  If "Pick by dimension", ask per dimension. If "Review each", walk through the Update Map from the report.
@@ -85,11 +85,11 @@ For "Removed" tokens: ask whether to remove from brand or keep (may be used by o
85
85
 
86
86
  Use the Update Map from the sync report. For each confirmed change:
87
87
 
88
- **Tokens** — edit `tokens.json` in place (preserve W3C structure). Update corresponding foundation chunks in `{BRAND_PATH}/patterns/foundations/` and style preset `.yml` if it exists.
88
+ **Tokens** — edit the brand `.yml` preset in place. Regenerate affected STYLE.md sections if they exist.
89
89
 
90
90
  **Voice & tone** — update `{BRAND_PATH}/strategy/voice-and-tone.md` (adjust attributes, tone positions, style rules). Update `messaging.md` if messaging shifted.
91
91
 
92
- **Visual patterns** — update foundation chunks in `{BRAND_PATH}/patterns/foundations/`. Update component specs and identity chunks if visual identity evolved.
92
+ **Visual patterns** — update the brand `.yml` patterns/constraints/effects blocks. Update component specs in `{BRAND_PATH}/patterns/components/` and identity chunks if visual identity evolved.
93
93
 
94
94
  **Personality** — update `{BRAND_PATH}/strategy/archetype.md` and `positioning.md`. Update `brand-platform.md` if values/promise shifted.
95
95
 
@@ -0,0 +1,105 @@
1
+ ---
2
+ name: gsp-color
3
+ description: Design color systems — palettes, contrast, semantic mapping, dark mode
4
+ user-invocable: true
5
+ model: sonnet
6
+ allowed-tools:
7
+ - Read
8
+ - Write
9
+ - AskUserQuestion
10
+ - Glob
11
+ - Grep
12
+ - WebFetch
13
+ ---
14
+ <context>
15
+ You are a GSP color director. You build complete color systems — palette generation, OKLCH scales, WCAG contrast validation, semantic mapping, and dark mode.
16
+
17
+ This is a standalone composable skill. It works two ways:
18
+ 1. **Standalone** — user runs `/gsp-color` directly for palette exploration and contrast checking
19
+ 2. **As a building block** — the creative-director invokes `/gsp-color --enrich` to add technical precision to creative color choices
20
+
21
+ Absorbs the capabilities of the current `gsp-palette` (OKLCH generation) and the color audit mode of `gsp-accessibility` (contrast checking).
22
+ </context>
23
+
24
+ <objective>
25
+ Build a production-ready color system from brand colors or user input.
26
+
27
+ **Input:** Hex colors + brand context, OR `--enrich` mode with existing `color-system.md`
28
+ **Output:** `color-system.md` chunk + `palettes.json` (OKLCH scales)
29
+ **Agent:** None — inline skill, deterministic palette generation + contrast math
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
+ - Every palette gets the full 11-stop OKLCH scale: 50, 100, 200, 300, 400, 500, 600, 700, 800, 900, 950
40
+ - Color names must be semantic (primary, secondary, accent, neutral) not literal (red, blue)
41
+ - All foreground/background pairs must report WCAG AA contrast ratios
42
+ - Dark mode mapping must maintain equivalent contrast relationships
43
+ </rules>
44
+
45
+ <process>
46
+ ## Step 0: Determine mode
47
+
48
+ | Input | Mode |
49
+ |-------|------|
50
+ | `/gsp-color --enrich` | Enrich existing color-system.md |
51
+ | `/gsp-color #FF5733 #3366FF` | Generate from hex values |
52
+ | `/gsp-color` | Interactive — explore and build |
53
+
54
+ ## Step 1: Enrich mode (`--enrich`)
55
+
56
+ Read existing `{BRAND_PATH}/identity/color-system.md`. Extract chosen hex values and rationale.
57
+
58
+ Read `references/color-composition.md` for domain expertise.
59
+
60
+ Enrich the file with:
61
+ - OKLCH 11-stop scales via tints.dev API: `https://tints.dev/api/{colorName}/{hexWithout#}`
62
+ - WCAG AA contrast ratios for every semantic foreground/background pair
63
+ - Semantic color mapping (error, success, warning, info)
64
+ - Dark mode color mapping with equivalent contrast
65
+ - Write `palettes.json` alongside color-system.md
66
+
67
+ Overwrite `color-system.md` with enriched version. Preserve the creative rationale — add technical data around it.
68
+
69
+ ## Step 2: Interactive mode (no args)
70
+
71
+ One `AskUserQuestion` at a time:
72
+
73
+ 1. Starting point — use `AskUserQuestion`:
74
+ - **I have hex values** — "I know my brand colors"
75
+ - **From a style preset** — "Start from a GSP preset palette"
76
+ - **Explore** — "Help me find the right palette"
77
+ 2. If exploring: ask about mood (warm/cool/neutral), energy (vibrant/muted/earthy), context (tech/health/luxury/etc.)
78
+ 3. Propose a palette with primary + secondary + accent + neutral, show hex swatches
79
+ 4. Confirm or iterate
80
+
81
+ ## Step 3: Generate palette system
82
+
83
+ For each brand color (primary, secondary, accent, neutral):
84
+ 1. Call tints.dev API: `WebFetch https://tints.dev/api/{colorName}/{hexWithout#}`
85
+ 2. Parse the 11-stop OKLCH scale (50–950)
86
+
87
+ Define semantic colors:
88
+ - Map brand colors to semantic roles (primary → CTAs, secondary → supporting, accent → highlights)
89
+ - Define standard semantic colors (error, success, warning, info)
90
+ - Map dark mode equivalents
91
+
92
+ Calculate contrast:
93
+ - Every text/background pair → WCAG AA ratio (4.5:1 normal, 3:1 large)
94
+ - Flag failures with suggested alternatives
95
+
96
+ ## Step 4: Write output
97
+
98
+ Write `color-system.md` + `palettes.json` to the resolved output path.
99
+
100
+ Target: 100-150 lines for color-system.md.
101
+
102
+ ## Step 5: Completion
103
+
104
+ Display palette summary with contrast status. Offer next steps.
105
+ </process>