get-shit-pretty 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,69 +1,173 @@
1
- # GSP — Get Shit Pretty
1
+ <div align="center">
2
2
 
3
- A design engineering system for AI coding tools. GSP guides you through a phased design pipeline — from research to launch — using specialized prompts and agents.
3
+ # GET SHIT PRETTY
4
4
 
5
- ## Install
5
+ **Design engineering for AI coding tools.**
6
+
7
+ **Research, brand, design system, UI, specs, review, build, launch — from your terminal.**
8
+
9
+ [![npm version](https://img.shields.io/npm/v/get-shit-pretty?style=for-the-badge&logo=npm&logoColor=white&color=CB3837)](https://www.npmjs.com/package/get-shit-pretty)
10
+ [![npm downloads](https://img.shields.io/npm/dm/get-shit-pretty?style=for-the-badge&logo=npm&logoColor=white&color=CB3837)](https://www.npmjs.com/package/get-shit-pretty)
11
+ [![GitHub stars](https://img.shields.io/github/stars/jubscodes/get-shit-pretty?style=for-the-badge&logo=github&color=181717)](https://github.com/jubscodes/get-shit-pretty)
12
+ [![License](https://img.shields.io/badge/license-MIT-blue?style=for-the-badge)](LICENSE)
13
+
14
+ <br>
6
15
 
7
16
  ```bash
8
17
  npx get-shit-pretty
9
18
  ```
10
19
 
11
- Or with flags:
20
+ **Works on Mac, Windows, and Linux.**
12
21
 
13
- ```bash
14
- # Claude Code (global)
15
- npx get-shit-pretty --claude --global
22
+ <br>
16
23
 
17
- # All runtimes
18
- npx get-shit-pretty --all --global
24
+ *"Vibe-coded apps work. They also all look the same. GSP fixes that."*
19
25
 
20
- # Uninstall
21
- npx get-shit-pretty --claude --global --uninstall
26
+ <br>
27
+
28
+ [Why GSP Exists](#why-gsp-exists) · [How It Works](#how-it-works) · [Commands](#commands) · [Agents & Prompts](#agents--prompts) · [AI Tool Support](#ai-coding-tool-support)
29
+
30
+ </div>
31
+
32
+ ---
33
+
34
+ ## Why GSP Exists
35
+
36
+ The gap between design and code is shrinking — but only from one direction.
37
+
38
+ Figma ships Code Connect, Dev Mode, MCP servers. Design tools are learning to speak code. That bridge is being built.
39
+
40
+ Coding tools aren't learning to speak design.
41
+
42
+ You can vibe-code an entire app in an afternoon. It works. It also looks like every other vibe-coded app — the same shadcn components, the same layouts, the same sea of sameness. No research, no brand thinking, no system, no critique. AI coding tools are powerful builders with zero design process.
43
+
44
+ AI didn't cause this. Skipping design thinking did.
45
+
46
+ GSP brings design fundamentals into the tools developers already use. Research. Brand. Design systems. UI patterns. Accessibility. Critique. The process that makes design consistent — running in your terminal.
47
+
48
+ For designers, it's the other direction. Code-first environments without giving up your process. Your design decisions become tokens, specs, and components — not a Figma file someone rebuilds from scratch.
49
+
50
+ Both disciplines. Same pipeline. Same environment. Design engineering — not designers learning to code or developers learning to design, but both working through the same system.
51
+
52
+ The missing half of the bridge.
53
+
54
+ ---
55
+
56
+ ## How It Works
57
+
58
+ ### 1. Start a Project
59
+
60
+ ```
61
+ /gsp:new-project
22
62
  ```
23
63
 
24
- <details>
25
- <summary>Legacy install (bash)</summary>
64
+ Answer questions about your product — what it does, who it's for, the vibe you're going for. GSP creates a design brief that guides everything downstream.
65
+
66
+ **Creates:** `.design/BRIEF.md`
67
+
68
+ ---
69
+
70
+ ### 2. Research
26
71
 
27
- ```bash
28
- git clone https://github.com/jubscodes/get-shit-pretty.git ~/get-shit-pretty
29
- cd ~/get-shit-pretty
30
- chmod +x install.sh
31
- ./install.sh
72
+ ```
73
+ /gsp:research
32
74
  ```
33
75
 
34
- </details>
76
+ Analyzes design trends in your space — competitor patterns, emerging styles, what's working and what's not. Start with context, not guesses.
35
77
 
36
- ## AI Coding Tool Support
78
+ **Creates:** `.design/research/TRENDS.md`
37
79
 
38
- | Feature | Claude Code | OpenCode | Gemini CLI | Codex CLI |
39
- |---------|:-----------:|:--------:|:----------:|:---------:|
40
- | Slash commands | /gsp:command | /gsp-command | /gsp:command | $gsp-command |
41
- | Agents | Yes | Yes | Yes | Yes |
42
- | Prompts bundle | Yes | Yes | Yes | Yes |
43
- | Templates bundle | Yes | Yes | Yes | Yes |
44
- | References bundle | Yes | Yes | Yes | Yes |
45
- | Statusline | Yes | — | — | — |
46
- | Interactive install | Yes | Yes | Yes | Yes |
47
- | Global install | ~/.claude | ~/.config/opencode | ~/.gemini | ~/.codex |
48
- | Local install | .claude/ | .opencode/ | .gemini/ | .codex/ |
80
+ ---
49
81
 
50
- ## Commands
82
+ ### 3. Brand
51
83
 
52
- | Command | Description |
53
- |---------|-------------|
54
- | `/gsp:new-project` | Initialize a design brief through guided Q&A |
55
- | `/gsp:research` | Analyze design trends for your industry |
56
- | `/gsp:brand` | Create brand identity (strategy, logo, color, type) |
57
- | `/gsp:system` | Build design system foundations + tokens |
58
- | `/gsp:design` | Design UI/UX screens and flows |
59
- | `/gsp:spec` | Generate Figma-ready specifications |
60
- | `/gsp:review` | Design critique + accessibility audit |
61
- | `/gsp:build` | Translate designs to production code |
62
- | `/gsp:launch` | Create marketing campaign assets |
63
- | `/gsp:progress` | Check project status — "How pretty are we?" |
64
- | `/gsp:help` | Show command reference |
84
+ ```
85
+ /gsp:brand
86
+ ```
87
+
88
+ Builds your complete identity positioning, personality, logo directions, color palette, typography system. Your brand, not a default theme.
89
+
90
+ **Creates:** `.design/brand/IDENTITY.md`
91
+
92
+ ---
93
+
94
+ ### 4. Design System
95
+
96
+ ```
97
+ /gsp:system
98
+ ```
99
+
100
+ Translates your brand into a functional design system — color scales, type scales, spacing, component foundations, and design tokens. Your system, in code.
101
+
102
+ **Creates:** `.design/system/SYSTEM.md`, `tokens.json`
103
+
104
+ ---
105
+
106
+ ### 5. UI Design
107
+
108
+ ```
109
+ /gsp:design
110
+ ```
111
+
112
+ Designs your screens and interaction flows following Apple HIG patterns. Layout, navigation, states, responsive behavior — all documented with enough detail to build from.
113
+
114
+ **Creates:** `.design/screens/SCREENS.md`
115
+
116
+ ---
117
+
118
+ ### 6. Implementation Specs
119
+
120
+ ```
121
+ /gsp:spec
122
+ ```
123
+
124
+ Maps your screen designs to your implementation target — shadcn/ui components, React Native Reusables, an existing design system, Figma specs, or lightweight code specs. Bridges design decisions to whatever UI framework your project uses.
125
+
126
+ **Creates:** `.design/specs/SPECS.md`
127
+
128
+ ---
129
+
130
+ ### 7. Review
131
+
132
+ ```
133
+ /gsp:review
134
+ ```
135
+
136
+ Two parallel agents audit your designs:
137
+ - **Design Critique** — Structured critique using Nielsen's 10 usability heuristics
138
+ - **Accessibility Audit** — WCAG 2.2 AA compliance check
139
+
140
+ If issues are found, loop back to fix before building.
141
+
142
+ **Creates:** `.design/review/CRITIQUE.md`, `ACCESSIBILITY.md`
65
143
 
66
- ## Pipeline
144
+ ---
145
+
146
+ ### 8. Build
147
+
148
+ ```
149
+ /gsp:build
150
+ ```
151
+
152
+ Translates reviewed designs into production-ready frontend code. Components, styles, interactions — built from your design system and tokens, not generic defaults.
153
+
154
+ **Creates:** `.design/build/CODE.md`, `components/`
155
+
156
+ ---
157
+
158
+ ### 9. Launch
159
+
160
+ ```
161
+ /gsp:launch
162
+ ```
163
+
164
+ Creates marketing campaign assets — landing page copy, social media content, launch materials. Your product ships with a story, not just code.
165
+
166
+ **Creates:** `.design/launch/CAMPAIGN.md`
167
+
168
+ ---
169
+
170
+ ### The Full Pipeline
67
171
 
68
172
  ```
69
173
  /gsp:new-project → BRIEF.md
@@ -76,7 +180,7 @@ chmod +x install.sh
76
180
 
77
181
  /gsp:design → .design/screens/SCREENS.md
78
182
 
79
- /gsp:spec → .design/specs/FIGMA-SPECS.md
183
+ /gsp:spec → .design/specs/SPECS.md
80
184
 
81
185
  /gsp:review → .design/review/CRITIQUE.md + ACCESSIBILITY.md
82
186
  ↓ (loop back if issues found)
@@ -87,25 +191,135 @@ chmod +x install.sh
87
191
 
88
192
  All artifacts live in `.design/` within your project directory.
89
193
 
90
- ## Prompts
194
+ ---
195
+
196
+ ## Commands
197
+
198
+ | Command | What it does |
199
+ |---------|--------------|
200
+ | `/gsp:new-project` | Initialize a design brief through guided Q&A |
201
+ | `/gsp:research` | Analyze design trends for your industry |
202
+ | `/gsp:brand` | Create brand identity (strategy, logo, color, type) |
203
+ | `/gsp:system` | Build design system foundations + tokens |
204
+ | `/gsp:design` | Design UI/UX screens and flows |
205
+ | `/gsp:spec` | Generate implementation specifications |
206
+ | `/gsp:review` | Design critique + accessibility audit |
207
+ | `/gsp:build` | Translate designs to production code |
208
+ | `/gsp:launch` | Create marketing campaign assets |
209
+ | `/gsp:progress` | Check project status |
210
+ | `/gsp:help` | Show command reference |
211
+
212
+ ---
213
+
214
+ ## Agents & Prompts
215
+
216
+ GSP ships with 9 specialized agents, each modeled after a real design discipline:
217
+
218
+ | Agent | Role |
219
+ |-------|------|
220
+ | **Design System Architect** | Complete design systems (Apple Principal Designer level) |
221
+ | **Brand Identity Creator** | Full brand identities (Pentagram Creative Director level) |
222
+ | **UI/UX Pattern Master** | App UI design following Apple HIG |
223
+ | **Marketing Asset Factory** | Campaign asset libraries |
224
+ | **Implementation Spec Engineer** | Implementation specifications for any UI target |
225
+ | **Design Critique Partner** | Structured critiques using Nielsen's 10 heuristics |
226
+ | **Design Trend Synthesizer** | Industry trend analysis and competitive research |
227
+ | **Accessibility Auditor** | WCAG 2.2 AA compliance auditing |
228
+ | **Design-to-Code Translator** | Design to production-ready frontend code |
229
+
230
+ Each agent has deep reference material — Apple HIG patterns, Nielsen's heuristics, WCAG checklists, design token standards — baked into its prompts.
231
+
232
+ ---
233
+
234
+ ## AI Coding Tool Support
235
+
236
+ GSP works across all major AI coding tools:
237
+
238
+ | Feature | Claude Code | OpenCode | Gemini CLI | Codex CLI |
239
+ |---------|:-----------:|:--------:|:----------:|:---------:|
240
+ | Slash commands | `/gsp:command` | `/gsp-command` | `/gsp:command` | `$gsp-command` |
241
+ | Agents | Yes | Yes | Yes | Yes |
242
+ | Prompts | Yes | Yes | Yes | Yes |
243
+ | Templates | Yes | Yes | Yes | Yes |
244
+ | References | Yes | Yes | Yes | Yes |
245
+ | Statusline | Yes | — | — | — |
246
+ | Global install | `~/.claude` | `~/.config/opencode` | `~/.gemini` | `~/.codex` |
247
+ | Local install | `.claude/` | `.opencode/` | `.gemini/` | `.codex/` |
248
+
249
+ ---
250
+
251
+ ## Install
252
+
253
+ ```bash
254
+ npx get-shit-pretty
255
+ ```
256
+
257
+ The installer prompts you to choose:
258
+ 1. **Runtime** — Claude Code, OpenCode, Gemini, Codex, or all
259
+ 2. **Location** — Global (all projects) or local (current project only)
260
+
261
+ <details>
262
+ <summary><strong>Non-interactive install</strong></summary>
263
+
264
+ ```bash
265
+ # Claude Code
266
+ npx get-shit-pretty --claude --global
267
+ npx get-shit-pretty --claude --local
91
268
 
92
- GSP bundles 9 specialized design prompts:
269
+ # OpenCode
270
+ npx get-shit-pretty --opencode --global
93
271
 
94
- 1. **Design System Architect** — Complete design systems (Apple Principal Designer)
95
- 2. **Brand Identity Creator** — Full brand identities (Pentagram Creative Director)
96
- 3. **UI/UX Pattern Master** — App UI design (Apple HIG)
97
- 4. **Marketing Asset Factory** — Campaign asset libraries
98
- 5. **Figma Auto-Layout Expert** — Figma-ready specifications
99
- 6. **Design Critique Partner** — Structured critiques (Nielsen's 10)
100
- 7. **Design Trend Synthesizer** — Industry trend analysis
101
- 8. **Accessibility Auditor** — WCAG 2.2 AA compliance
102
- 9. **Design-to-Code Translator** — Design to production code
272
+ # Gemini CLI
273
+ npx get-shit-pretty --gemini --global
274
+
275
+ # Codex CLI
276
+ npx get-shit-pretty --codex --global
277
+
278
+ # All runtimes
279
+ npx get-shit-pretty --all --global
280
+ ```
281
+
282
+ </details>
283
+
284
+ <details>
285
+ <summary><strong>Uninstall</strong></summary>
286
+
287
+ ```bash
288
+ npx get-shit-pretty --claude --global --uninstall
289
+ npx get-shit-pretty --opencode --global --uninstall
290
+ npx get-shit-pretty --codex --global --uninstall
291
+ ```
292
+
293
+ </details>
294
+
295
+ <details>
296
+ <summary><strong>Legacy install (bash)</strong></summary>
297
+
298
+ ```bash
299
+ git clone https://github.com/jubscodes/get-shit-pretty.git ~/get-shit-pretty
300
+ cd ~/get-shit-pretty
301
+ chmod +x install.sh
302
+ ./install.sh
303
+ ```
304
+
305
+ </details>
306
+
307
+ ---
103
308
 
104
309
  ## Requirements
105
310
 
106
311
  - An AI coding tool: [Claude Code](https://claude.ai/claude-code), [OpenCode](https://opencode.ai), [Gemini CLI](https://github.com/google-gemini/gemini-cli), or [Codex CLI](https://github.com/openai/codex)
107
- - GitHub CLI (`gh`) for repo creation
312
+
313
+ ---
108
314
 
109
315
  ## License
110
316
 
111
- MIT
317
+ MIT License. See [LICENSE](LICENSE) for details.
318
+
319
+ ---
320
+
321
+ <div align="center">
322
+
323
+ **Your code works. GSP makes it yours.**
324
+
325
+ </div>
@@ -19,10 +19,11 @@ Use trend insights (if available) to ensure the identity feels current while rem
19
19
  1. **Absorb context** — Read BRIEF.md for company, industry, audience, personality. Read TRENDS.md for market positioning opportunities.
20
20
  2. **Define strategy** — Brand story, archetype, voice matrix, messaging hierarchy
21
21
  3. **Explore visual directions** — 3 distinct logo concepts that each express the strategy differently
22
- 4. **Build color system** — Full color palette with Hex, RGB, Pantone, CMYK, contrast ratios, dark mode, and strategic rationale
23
- 5. **Define typography** — Primary and secondary typefaces with scale and usage rules
24
- 6. **Specify imagery** — Photography, illustration, and iconography style
25
- 7. **Apply** — Show brand in context across key applications
22
+ 4. **Build color system** — Define primary, secondary, and accent hex colors with strategic rationale
23
+ 5. **Generate palettes** — Use the [tints.dev](https://tints.dev) API by [Simeon Griggs](https://github.com/SimeonGriggs/tints.dev) to generate 11-stop Tailwind palettes for each brand color. Fetch `https://tints.dev/api/{name}/{hex}` (hex without #). Store results in `.design/brand/palettes.json` with OKLCH values (stops 50–950). Include Hex, RGB, Pantone, CMYK, contrast ratios, and dark mode mapping in IDENTITY.md.
24
+ 6. **Define typography** — Primary and secondary typefaces with scale and usage rules
25
+ 7. **Specify imagery** — Photography, illustration, and iconography style
26
+ 8. **Apply** — Show brand in context across key applications
26
27
 
27
28
  ## Quality Standards
28
29
  - Every decision needs strategic rationale ("We chose X because Y")
@@ -8,7 +8,14 @@ color: magenta
8
8
  <role>
9
9
  You are a GSP design engineer spawned by `/gsp:build`.
10
10
 
11
- Act as a Vercel Design Engineer. Your job is to convert the Figma specifications and design system into production-ready frontend code — components, layouts, accessibility, animations, and styling.
11
+ Act as a Vercel Design Engineer. Your job is to convert the implementation specifications and design system into production-ready frontend code — components, layouts, accessibility, animations, and styling.
12
+
13
+ You adapt your approach based on the `implementation_target`:
14
+ - **`shadcn`** — Use shadcn/ui primitives, install via `npx shadcn@latest add`, extend with custom variants
15
+ - **`rn-reusables`** — Use React Native Reusables, install via `npx @react-native-reusables/cli add`, configure NativeWind
16
+ - **`existing`** — Build on the existing design system in the codebase, follow its patterns
17
+ - **`figma` / `code`** — Derive component structure from specs or screen designs
18
+ - **`skip` (no SPECS.md)** — Build directly from SCREENS.md + SYSTEM.md, derive component architecture yourself
12
19
 
13
20
  Write real, copy-paste-ready code. Not pseudocode. Not "implementation left as exercise." Production code.
14
21
  </role>
@@ -16,7 +23,7 @@ Write real, copy-paste-ready code. Not pseudocode. Not "implementation left as e
16
23
  <methodology>
17
24
  ## Translation Process
18
25
 
19
- 1. **Map component hierarchy** — From specs, define the component tree with props, state, and data flow
26
+ 1. **Map component hierarchy** — From specs (or screens if spec was skipped), define the component tree with props, state, and data flow
20
27
  2. **Implement foundations** — Design tokens as CSS variables or Tailwind config, theme setup, global styles
21
28
  3. **Build components** — One file per component with full implementation
22
29
  4. **Add accessibility** — ARIA roles, keyboard handlers, focus management, screen reader support
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: gsp-spec-engineer
3
- description: Converts screen designs into Figma-ready specifications. Spawned by /gsp:spec.
3
+ description: Converts screen designs into implementation specifications. Spawned by /gsp:spec.
4
4
  tools: Read, Write, Bash
5
5
  color: magenta
6
6
  ---
@@ -8,38 +8,114 @@ color: magenta
8
8
  <role>
9
9
  You are a GSP spec engineer spawned by `/gsp:spec`.
10
10
 
11
- Act as a Figma Design Ops Specialist. Your job is to convert the screen designs into precise Figma-ready specifications — frame structure, auto-layout, component architecture, prototype flows, and dev handoff documentation.
11
+ Act as an Implementation Spec Engineer. Your job is to convert screen designs into precise implementation specifications — mapping design decisions to the project's UI framework, component architecture, token integration, and dev-ready documentation.
12
12
 
13
- Specs should be detailed enough for a designer to build pixel-perfect Figma files without guessing.
13
+ Your output adapts based on the `implementation_target` from `.design/config.json`.
14
14
  </role>
15
15
 
16
16
  <methodology>
17
- ## Spec Process
17
+ ## Spec Process (adapts per target)
18
18
 
19
- 1. **Structure frames** — Page organization, frame hierarchy, naming convention
20
- 2. **Define grids and constraints** — Per-frame grid specs, constraint rules, responsive behavior
21
- 3. **Specify auto-layout** — Every component: direction, padding (top/right/bottom/left), spacing, alignment, resizing behavior
22
- 4. **Architect components** — Variants, properties, boolean toggles, slot definitions
23
- 5. **Map tokens** — Connect design system tokens to Figma token format
24
- 6. **Define prototype flows** — Triggers, animations, transitions, timing
25
- 7. **Prepare handoff** — CSS mapping, export formats, naming conventions
19
+ 1. **Analyze screens** — Parse SCREENS.md for all components, layouts, and interactions
20
+ 2. **Map to target** — Translate design components to the implementation target's primitives
21
+ 3. **Define architecture** — Component hierarchy, props, state, composition patterns
22
+ 4. **Map tokens** — Connect design system tokens to the target's theming format
23
+ 5. **Specify behavior** — Interactions, transitions, responsive rules
24
+ 6. **Prepare handoff** — Target-specific installation, setup, and implementation notes
25
+
26
+ ## Implementation Targets
27
+
28
+ ### When `figma`:
29
+ - Frame structure, page organization, naming convention
30
+ - Per-frame grid specs, constraint rules, responsive behavior
31
+ - Auto-layout per component: direction, padding, spacing, alignment, resizing
32
+ - Component architecture with variants, properties, boolean toggles, slots
33
+ - Design tokens mapped to Figma token format
34
+ - Prototype flows: triggers, animations, transitions, timing
35
+ - Dev handoff: CSS mapping, export formats, naming conventions
36
+
37
+ ### When `shadcn`:
38
+ - Map each screen component to shadcn/ui primitives (Button, Card, Dialog, etc.)
39
+ - Define variant overrides and custom props per component
40
+ - Map GSP design tokens to shadcn CSS variables (`--primary`, `--secondary`, `--muted`, etc.)
41
+ - Specify which shadcn components to install (`npx shadcn@latest add ...`)
42
+ - Define composition patterns (how primitives combine into screen layouts)
43
+ - Note any custom components needed beyond shadcn
44
+ - Include tailwind.config extensions for custom tokens
45
+
46
+ ### When `rn-reusables`:
47
+ - Map each screen component to React Native Reusables primitives (reusables.dev — the RN port of shadcn/ui)
48
+ - Define variant overrides and custom props per component
49
+ - Map GSP design tokens to RN Reusables CSS variables / NativeWind theme config
50
+ - Specify which reusables to install (`npx @react-native-reusables/cli add ...`)
51
+ - Define composition patterns for RN screens (Stack, Tabs, navigation structure)
52
+ - Handle platform differences (iOS vs Android styling, safe areas, gestures)
53
+ - Note any custom native components needed beyond reusables
54
+
55
+ ### When `existing`:
56
+ - Read the existing design system from the codebase (component files, token files, theme config)
57
+ - Map GSP design decisions to existing components and tokens
58
+ - Identify gaps (components/tokens that exist in GSP design but not in the codebase DS)
59
+ - Define adaptation strategy for gaps (extend existing? create new?)
60
+ - Include file paths to existing components being referenced
61
+
62
+ ### When `code`:
63
+ - Component architecture with props, state, data flow
64
+ - Token-to-CSS-variable mapping
65
+ - Responsive rules and breakpoint behavior
66
+ - No tool-specific specs (no Figma frames, no shadcn primitives)
67
+ - Framework-agnostic component contracts
26
68
 
27
69
  ## Quality Standards
28
- - Every component must have complete auto-layout specs (no ambiguity)
29
- - Variants cover all states from design system
70
+ - Every component must have complete specs for the target (no ambiguity)
30
71
  - Token mapping is complete and consistent
31
- - Prototype flows cover all user journeys from SCREENS.md
32
- - Dev handoff includes CSS for every unique element
72
+ - All user journeys from SCREENS.md are covered
73
+ - Responsive behavior is specified per breakpoint
33
74
  </methodology>
34
75
 
35
76
  <output>
36
- Write specs to `.design/specs/FIGMA-SPECS.md`:
77
+ Write specs to `.design/specs/SPECS.md`:
37
78
 
79
+ ### When `figma`:
38
80
  1. **Frame Structure** — Page names, frame hierarchy, naming convention
39
81
  2. **Grid & Constraints** — Per-breakpoint grid specs, constraint rules
40
- 3. **Auto-Layout Specs** — Per-component: direction, padding, spacing, alignment, horizontal/vertical resizing
82
+ 3. **Auto-Layout Specs** — Per-component: direction, padding, spacing, alignment, resizing
41
83
  4. **Component Architecture** — Variants table, properties, boolean toggles, slots
42
84
  5. **Design Tokens** — Figma token mapping (colors, text styles, effects)
43
85
  6. **Prototype Flows** — Flow name, trigger, animation type, duration, easing
44
86
  7. **Dev Handoff** — CSS mapping, export specs, naming conventions, accessibility annotations
87
+
88
+ ### When `shadcn`:
89
+ 1. **Component Mapping** — Screen component → shadcn primitive mapping table
90
+ 2. **Install Manifest** — `npx shadcn@latest add` commands for all needed components
91
+ 3. **Variant Overrides** — Custom variants, props, and extensions per component
92
+ 4. **Token Mapping** — GSP tokens → shadcn CSS variables (`--primary`, `--secondary`, etc.)
93
+ 5. **Composition Patterns** — How primitives combine into screen layouts
94
+ 6. **Custom Components** — Components not covered by shadcn, with architecture specs
95
+ 7. **Tailwind Extensions** — Custom theme values for `tailwind.config`
96
+
97
+ ### When `rn-reusables`:
98
+ 1. **Component Mapping** — Screen component → RN Reusables primitive mapping table
99
+ 2. **Install Manifest** — `npx @react-native-reusables/cli add` commands
100
+ 3. **Variant Overrides** — Custom variants, props, and extensions per component
101
+ 4. **Token Mapping** — GSP tokens → NativeWind theme config / CSS variables
102
+ 5. **Composition Patterns** — Navigation structure (Stack, Tabs), screen layouts
103
+ 6. **Platform Specs** — iOS vs Android differences, safe areas, gestures
104
+ 7. **Custom Components** — Native components needed beyond reusables
105
+
106
+ ### When `existing`:
107
+ 1. **Component Mapping** — GSP design component → existing codebase component
108
+ 2. **Token Mapping** — GSP tokens → existing theme/token values
109
+ 3. **Gap Analysis** — Components and tokens in design but not in codebase
110
+ 4. **Adaptation Strategy** — Per gap: extend existing, create new, or substitute
111
+ 5. **File Reference** — Paths to all existing components and tokens being used
112
+ 6. **Integration Notes** — How new components fit into existing architecture
113
+
114
+ ### When `code`:
115
+ 1. **Component Architecture** — Hierarchy tree with props, state, and data flow
116
+ 2. **Token Mapping** — Design tokens → CSS custom properties
117
+ 3. **Responsive Specs** — Breakpoints, layout shifts, component adaptations
118
+ 4. **Interaction Specs** — Triggers, state transitions, animation descriptions
119
+ 5. **Accessibility Specs** — ARIA roles, keyboard navigation, focus management
120
+ 6. **Implementation Notes** — Key decisions, patterns, and constraints
45
121
  </output>
@@ -16,7 +16,7 @@ The system should be production-ready: every value specified, every state define
16
16
  <methodology>
17
17
  ## System Building Process
18
18
 
19
- 1. **Extract foundations from identity** — Map brand colors to semantic system, establish type scale from brand typography
19
+ 1. **Extract foundations from identity** — Map brand colors to semantic system using the tints.dev palettes from `.design/brand/palettes.json` (generated by [tints.dev](https://tints.dev) by [Simeon Griggs](https://github.com/SimeonGriggs/tints.dev)). Use the 11-stop OKLCH scales as the color foundation for tokens. Establish type scale from brand typography
20
20
  2. **Define grid and spacing** — 12-column grid, 8px base spacing system
21
21
  3. **Build component library** — 30+ components with all states, anatomy, usage rules
22
22
  4. **Export tokens** — Machine-readable JSON following W3C Design Tokens format
@@ -11,6 +11,8 @@ You are a GSP UI designer spawned by `/gsp:design`.
11
11
  Act as a Senior Apple UI Designer. Your job is to design the complete UI for the project — screens, flows, interactions, and responsive behavior — using the established design system and following Apple HIG principles.
12
12
 
13
13
  Design for real users with real goals. Every screen should solve a specific problem.
14
+
15
+ When an **Existing Components** inventory is provided (for `shadcn`, `rn-reusables`, `existing`, or `code` targets), incorporate existing components into your designs and include a Component Plan in your output.
14
16
  </role>
15
17
 
16
18
  <methodology>
@@ -22,6 +24,7 @@ Design for real users with real goals. Every screen should solve a specific prob
22
24
  4. **Design 8 core screens** — Each with wireframe description, component usage, interactions, and all states
23
25
  5. **Specify accessibility** — WCAG compliance, VoiceOver order, Dynamic Type behavior
24
26
  6. **Define micro-interactions** — Meaningful animations that communicate state changes
27
+ 7. **Build component plan** — When existing components inventory is provided, annotate which components to reuse, refactor, or create new
25
28
 
26
29
  ## Quality Standards
27
30
  - Every screen needs all 4 states: default, empty, loading, error
@@ -47,5 +50,10 @@ Write screens to `.design/screens/SCREENS.md`:
47
50
  - Accessibility notes (VoiceOver order, focus management)
48
51
  5. **Micro-interactions** — Table of trigger → animation → duration → easing
49
52
  6. **Responsive Behavior** — Mobile, tablet, desktop breakpoint adaptations
50
- 7. **Designer's Notes** Key decisions and rationale
53
+ 7. **Component Plan** (when `implementation_target` is not `figma`):
54
+ - **Reuse** — Existing components used as-is
55
+ - **Refactor** — Existing components that need changes (with what changes)
56
+ - **New (shared)** — New components needed across multiple screens
57
+ - **New (local)** — Screen-specific components
58
+ 8. **Designer's Notes** — Key decisions and rationale
51
59
  </output>
package/bin/install.js CHANGED
@@ -755,14 +755,23 @@ function install(isGlobal, runtime = 'claude') {
755
755
 
756
756
  // ── Statusline (Claude Code only) ──
757
757
  if (runtime === 'claude') {
758
+ const hooksDest = path.join(targetDir, 'hooks');
759
+ fs.mkdirSync(hooksDest, { recursive: true });
760
+
761
+ // Copy GSP statusline
758
762
  const statuslineSrc = path.join(src, 'scripts', 'gsp-statusline.js');
759
763
  if (fs.existsSync(statuslineSrc)) {
760
- const hooksDest = path.join(targetDir, 'hooks');
761
- fs.mkdirSync(hooksDest, { recursive: true });
762
764
  let content = fs.readFileSync(statuslineSrc, 'utf8');
763
765
  content = content.replace(/'\.claude'/g, getConfigDirFromHome(runtime, isGlobal));
764
766
  fs.writeFileSync(path.join(hooksDest, 'gsp-statusline.js'), content);
765
- console.log(` ${green}+${reset} Installed statusline hook`);
767
+ console.log(` ${green}+${reset} Installed GSP statusline`);
768
+ }
769
+
770
+ // Copy dispatcher (routes to GSP or GSD based on project type)
771
+ const dispatcherSrc = path.join(src, 'scripts', 'statusline-dispatcher.js');
772
+ if (fs.existsSync(dispatcherSrc)) {
773
+ fs.copyFileSync(dispatcherSrc, path.join(hooksDest, 'statusline-dispatcher.js'));
774
+ console.log(` ${green}+${reset} Installed statusline dispatcher`);
766
775
  }
767
776
  }
768
777
 
@@ -776,8 +785,8 @@ function install(isGlobal, runtime = 'claude') {
776
785
  const settings = readSettings(settingsPath);
777
786
 
778
787
  const statuslineCommand = isGlobal
779
- ? `node "${targetDir.replace(/\\/g, '/')}/hooks/gsp-statusline.js"`
780
- : `node ${dirName}/hooks/gsp-statusline.js`;
788
+ ? `node "${targetDir.replace(/\\/g, '/')}/hooks/statusline-dispatcher.js"`
789
+ : `node ${dirName}/hooks/statusline-dispatcher.js`;
781
790
 
782
791
  return { settingsPath, settings, statuslineCommand, runtime };
783
792
  }
@@ -866,12 +875,14 @@ function uninstall(isGlobal, runtime = 'claude') {
866
875
  }
867
876
  }
868
877
 
869
- // Remove statusline hook
870
- const statuslineHook = path.join(targetDir, 'hooks', 'gsp-statusline.js');
871
- if (fs.existsSync(statuslineHook)) {
872
- fs.unlinkSync(statuslineHook);
873
- removedCount++;
874
- console.log(` ${green}+${reset} Removed statusline hook`);
878
+ // Remove statusline hooks
879
+ for (const hook of ['gsp-statusline.js', 'statusline-dispatcher.js']) {
880
+ const hookPath = path.join(targetDir, 'hooks', hook);
881
+ if (fs.existsSync(hookPath)) {
882
+ fs.unlinkSync(hookPath);
883
+ removedCount++;
884
+ console.log(` ${green}+${reset} Removed ${hook}`);
885
+ }
875
886
  }
876
887
 
877
888
  // Clean up settings.json (statusline only — no hooks to clean)
@@ -881,7 +892,7 @@ function uninstall(isGlobal, runtime = 'claude') {
881
892
  let modified = false;
882
893
 
883
894
  if (settings.statusLine && settings.statusLine.command &&
884
- settings.statusLine.command.includes('gsp-statusline')) {
895
+ (settings.statusLine.command.includes('gsp-statusline') || settings.statusLine.command.includes('statusline-dispatcher'))) {
885
896
  delete settings.statusLine;
886
897
  modified = true;
887
898
  console.log(` ${green}+${reset} Removed GSP statusline from settings`);