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.
- package/README.md +7 -12
- package/bin/install.js +96 -71
- package/gsp/agents/gsp-accessibility-auditor.md +3 -3
- package/gsp/agents/gsp-ascii-artist.md +1 -1
- package/gsp/agents/gsp-brand-auditor.md +2 -2
- package/gsp/agents/gsp-brand-engineer.md +131 -0
- package/gsp/agents/gsp-brand-strategist.md +2 -2
- package/gsp/agents/gsp-brand-syncer.md +8 -7
- package/gsp/agents/gsp-builder.md +48 -5
- package/gsp/agents/gsp-campaign-director.md +2 -3
- package/gsp/agents/gsp-creative-director.md +80 -0
- package/gsp/agents/gsp-critic.md +99 -17
- package/gsp/agents/gsp-designer.md +51 -4
- package/gsp/agents/gsp-project-researcher.md +3 -3
- package/gsp/agents/gsp-researcher.md +4 -4
- package/gsp/agents/gsp-reviewer.md +2 -2
- package/gsp/agents/gsp-scoper.md +2 -2
- package/gsp/hooks/hooks.json +5 -5
- package/gsp/references/design-trends.md +4 -4
- package/gsp/references/phase-transitions.md +12 -12
- package/gsp/references/questioning.md +1 -1
- package/gsp/references/token-mapping.md +329 -0
- package/gsp/skills/gsp-3d/SKILL.md +112 -0
- package/gsp/skills/gsp-accessibility/SKILL.md +11 -11
- package/gsp/skills/gsp-accessibility-audit/SKILL.md +6 -7
- package/gsp/skills/gsp-add-reference/SKILL.md +1 -1
- package/gsp/skills/gsp-art/SKILL.md +1 -1
- package/gsp/skills/gsp-brand-audit/SKILL.md +3 -3
- package/gsp/skills/gsp-brand-guidelines/SKILL.md +233 -0
- package/gsp/skills/gsp-brand-identity/SKILL.md +27 -18
- package/gsp/skills/gsp-brand-refine/SKILL.md +29 -22
- package/gsp/skills/gsp-brand-research/SKILL.md +2 -2
- package/gsp/skills/gsp-brand-strategy/SKILL.md +3 -3
- package/gsp/skills/gsp-brand-sync/SKILL.md +7 -7
- package/gsp/skills/gsp-color/SKILL.md +105 -0
- package/gsp/skills/gsp-design-system/SKILL.md +4 -4
- package/gsp/skills/gsp-doctor/SKILL.md +25 -18
- package/gsp/skills/gsp-help/SKILL.md +28 -28
- package/gsp/skills/gsp-icons/SKILL.md +108 -0
- package/gsp/skills/gsp-images/SKILL.md +197 -0
- package/gsp/skills/gsp-launch/SKILL.md +2 -3
- package/gsp/skills/gsp-logo/SKILL.md +173 -0
- package/gsp/skills/gsp-palette/SKILL.md +13 -13
- package/gsp/skills/gsp-pretty/SKILL.md +2 -2
- package/gsp/skills/gsp-progress/SKILL.md +20 -20
- package/gsp/skills/gsp-project-brief/SKILL.md +7 -8
- package/gsp/skills/gsp-project-build/SKILL.md +21 -21
- package/gsp/skills/gsp-project-critique/SKILL.md +13 -14
- package/gsp/skills/gsp-project-design/SKILL.md +17 -17
- package/gsp/skills/gsp-project-research/SKILL.md +5 -6
- package/gsp/skills/gsp-project-review/SKILL.md +7 -9
- package/gsp/skills/gsp-scaffold/SKILL.md +3 -3
- package/gsp/skills/gsp-start/SKILL.md +14 -14
- package/gsp/skills/gsp-style/SKILL.md +41 -43
- package/gsp/skills/gsp-style/styles/INDEX.yml +1 -1
- package/gsp/skills/gsp-style/styles/academia.yml +80 -0
- package/gsp/skills/gsp-style/styles/art-deco.yml +81 -0
- package/gsp/skills/gsp-style/styles/bauhaus.yml +78 -0
- package/gsp/skills/gsp-style/styles/bold-typography.yml +73 -0
- package/gsp/skills/gsp-style/styles/botanical.yml +78 -0
- package/gsp/skills/gsp-style/styles/claymorphism.yml +84 -0
- package/gsp/skills/gsp-style/styles/cyberpunk.yml +87 -0
- package/gsp/skills/gsp-style/styles/enterprise.yml +81 -0
- package/gsp/skills/gsp-style/styles/flat-design.yml +67 -0
- package/gsp/skills/gsp-style/styles/fluent.yml +82 -0
- package/gsp/skills/gsp-style/styles/glassmorphism.yml +83 -0
- package/gsp/skills/gsp-style/styles/humanist-literary.yml +74 -0
- package/gsp/skills/gsp-style/styles/industrial.yml +82 -0
- package/gsp/skills/gsp-style/styles/kinetic.yml +94 -0
- package/gsp/skills/gsp-style/styles/liquid-glass.yml +91 -0
- package/gsp/skills/gsp-style/styles/luxury.yml +83 -0
- package/gsp/skills/gsp-style/styles/material.yml +83 -0
- package/gsp/skills/gsp-style/styles/maximalism.yml +92 -0
- package/gsp/skills/gsp-style/styles/minimal-dark.yml +75 -0
- package/gsp/skills/gsp-style/styles/modern-dark.yml +88 -0
- package/gsp/skills/gsp-style/styles/monochrome.yml +68 -0
- package/gsp/skills/gsp-style/styles/neubrutalism.yml +83 -0
- package/gsp/skills/gsp-style/styles/neumorphism.yml +77 -0
- package/gsp/skills/gsp-style/styles/newsprint.yml +81 -0
- package/gsp/skills/gsp-style/styles/organic.yml +77 -0
- package/gsp/skills/gsp-style/styles/playful-geometric.yml +90 -0
- package/gsp/skills/gsp-style/styles/professional.yml +67 -0
- package/gsp/skills/gsp-style/styles/retro.yml +85 -0
- package/gsp/skills/gsp-style/styles/saas.yml +83 -0
- package/gsp/skills/gsp-style/styles/sketch.yml +86 -0
- package/gsp/skills/gsp-style/styles/swiss-minimalist.yml +69 -0
- package/gsp/skills/gsp-style/styles/terminal.yml +83 -0
- package/gsp/skills/gsp-style/styles/vaporwave.yml +84 -0
- package/gsp/skills/gsp-style/styles/web3.yml +82 -0
- package/gsp/skills/gsp-textures/SKILL.md +132 -0
- package/gsp/skills/gsp-typescale/SKILL.md +11 -11
- package/gsp/skills/gsp-typography/SKILL.md +108 -0
- package/gsp/skills/gsp-update/SKILL.md +1 -2
- package/gsp/skills/gsp-video/SKILL.md +101 -0
- package/gsp/templates/branding/config.json +1 -1
- package/gsp/templates/branding/roadmap.md +9 -9
- package/gsp/templates/exports-index.md +8 -8
- package/gsp/templates/phases/build.md +1 -1
- package/gsp/templates/phases/design.md +1 -1
- package/gsp/templates/phases/patterns.md +60 -71
- package/gsp/templates/phases/style.md +158 -0
- package/gsp/templates/projects/config.json +1 -1
- package/gsp/templates/projects/roadmap.md +7 -7
- package/gsp/templates/projects/state.md +1 -1
- package/package.json +1 -2
- package/.claude-plugin/plugin.json +0 -24
- package/gsp/agents/gsp-identity-designer.md +0 -74
- package/gsp/agents/gsp-pattern-architect.md +0 -189
- package/gsp/prompts/01-design-system-architect.md +0 -19
- package/gsp/prompts/02-brand-identity-creator.md +0 -16
- package/gsp/prompts/03-ui-ux-pattern-master.md +0 -21
- package/gsp/prompts/04-marketing-asset-factory.md +0 -14
- package/gsp/prompts/05-implementation-spec-expert.md +0 -15
- package/gsp/prompts/06-design-critique-partner.md +0 -14
- package/gsp/prompts/07-design-trend-synthesizer.md +0 -3
- package/gsp/prompts/08-accessibility-auditor.md +0 -23
- package/gsp/prompts/09-design-to-code-translator.md +0 -49
- package/gsp/prompts/10-project-scoper.md +0 -17
- package/gsp/prompts/11-deliverable-reviewer.md +0 -18
- package/gsp/prompts/12-project-researcher.md +0 -18
- 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-
|
|
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
|
|
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
|
|
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` —
|
|
63
|
-
- `{preset-name}.md` — design philosophy
|
|
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
|
-
|
|
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
|
|
87
|
+
## Step 3: Spawn creative director
|
|
89
88
|
|
|
90
|
-
Spawn the `gsp-
|
|
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
|
|
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
|
-
-
|
|
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 +
|
|
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. `
|
|
109
|
-
|
|
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
|
|
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
|
|
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
|
|
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", "
|
|
25
|
-
**Output:** Updated `
|
|
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
|
|
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
|
-
|
|
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 `
|
|
57
|
+
Read the brand `.yml` once. Map feedback to the relevant section:
|
|
56
58
|
|
|
57
|
-
| Feedback signals |
|
|
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 | `
|
|
63
|
-
| radius, rounded, sharp, corners | `
|
|
64
|
-
|
|
65
|
-
|
|
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
|
|
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.
|
|
119
|
-
2.
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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/
|
|
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 (
|
|
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
|
|
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 `
|
|
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
|
|
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>
|