get-shit-pretty 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +15 -9
  3. package/agents/{gsp-accessibility-auditor.md → gsp-auditor.md} +17 -14
  4. package/agents/gsp-brand-auditor.md +97 -0
  5. package/agents/gsp-brand-strategist.md +64 -27
  6. package/agents/{gsp-design-engineer.md → gsp-builder.md} +12 -9
  7. package/agents/gsp-campaign-director.md +50 -11
  8. package/agents/gsp-codebase-scanner.md +171 -0
  9. package/agents/gsp-critic.md +18 -13
  10. package/agents/gsp-designer.md +126 -0
  11. package/agents/gsp-identity-designer.md +90 -0
  12. package/agents/gsp-project-researcher.md +102 -0
  13. package/agents/gsp-researcher.md +54 -18
  14. package/agents/gsp-reviewer.md +66 -0
  15. package/agents/gsp-scoper.md +103 -0
  16. package/agents/gsp-system-architect.md +91 -26
  17. package/agents/gsp-verbal-strategist.md +84 -0
  18. package/bin/install.js +161 -5
  19. package/commands/gsp/brand-audit.md +116 -0
  20. package/commands/gsp/brand-discover.md +17 -0
  21. package/commands/gsp/brand-identity.md +200 -0
  22. package/commands/gsp/brand-patterns.md +223 -0
  23. package/commands/gsp/brand-research.md +99 -0
  24. package/commands/gsp/brand-strategy.md +140 -0
  25. package/commands/gsp/brand-system.md +17 -0
  26. package/commands/gsp/brand-verbal.md +94 -0
  27. package/commands/gsp/brand.md +9 -83
  28. package/commands/gsp/brief.md +142 -0
  29. package/commands/gsp/build.md +49 -41
  30. package/commands/gsp/critique.md +140 -0
  31. package/commands/gsp/design.md +65 -50
  32. package/commands/gsp/discover.md +17 -0
  33. package/commands/gsp/doctor.md +319 -0
  34. package/commands/gsp/help.md +85 -38
  35. package/commands/gsp/identity.md +18 -0
  36. package/commands/gsp/launch.md +55 -35
  37. package/commands/gsp/new-project.md +5 -86
  38. package/commands/gsp/new.md +237 -0
  39. package/commands/gsp/plan.md +18 -0
  40. package/commands/gsp/progress.md +58 -26
  41. package/commands/gsp/research.md +91 -34
  42. package/commands/gsp/review.md +115 -59
  43. package/commands/gsp/strategy.md +18 -0
  44. package/commands/gsp/system.md +8 -65
  45. package/commands/gsp/update.md +102 -0
  46. package/commands/gsp/verbal.md +18 -0
  47. package/package.json +2 -2
  48. package/prompts/01-design-system-architect.md +35 -3
  49. package/prompts/03-ui-ux-pattern-master.md +11 -1
  50. package/prompts/09-design-to-code-translator.md +9 -0
  51. package/prompts/10-project-scoper.md +51 -0
  52. package/prompts/11-deliverable-reviewer.md +58 -0
  53. package/prompts/12-project-researcher.md +57 -0
  54. package/references/brand-archetypes.md +151 -0
  55. package/references/brand-prism.md +138 -0
  56. package/references/chunk-format.md +48 -0
  57. package/references/design-trends.md +47 -0
  58. package/references/positioning-frameworks.md +197 -0
  59. package/references/questioning.md +1 -1
  60. package/references/trends/aurora-gradients.md +245 -0
  61. package/references/trends/bento-grid.md +473 -0
  62. package/references/trends/claymorphism.md +232 -0
  63. package/references/trends/dark-mode-oled.md +282 -0
  64. package/references/trends/glassmorphism.md +455 -0
  65. package/references/trends/kinetic-typography.md +277 -0
  66. package/references/trends/liquid-glass.md +236 -0
  67. package/references/trends/micro-interactions.md +307 -0
  68. package/references/trends/neubrutalism.md +276 -0
  69. package/references/voice-tone.md +193 -0
  70. package/scripts/gsp-statusline.js +1 -1
  71. package/templates/branding/brief.md +74 -0
  72. package/templates/branding/config.json +26 -0
  73. package/templates/branding/roadmap.md +43 -0
  74. package/templates/branding/state.md +29 -0
  75. package/templates/changelog.md +4 -0
  76. package/templates/codebase-inventory.md +71 -0
  77. package/templates/exports-index.md +93 -0
  78. package/templates/manifest.md +19 -0
  79. package/templates/phases/brief.md +53 -0
  80. package/templates/phases/build.md +24 -48
  81. package/templates/phases/critique.md +68 -0
  82. package/templates/phases/design.md +54 -32
  83. package/templates/phases/discover.md +60 -0
  84. package/templates/phases/identity.md +78 -0
  85. package/templates/phases/launch.md +48 -55
  86. package/templates/phases/research.md +75 -47
  87. package/templates/phases/review.md +27 -75
  88. package/templates/phases/strategy.md +67 -0
  89. package/templates/phases/system.md +84 -78
  90. package/templates/phases/verbal.md +63 -0
  91. package/templates/{project.md → projects/brief.md} +13 -17
  92. package/templates/projects/config.json +32 -0
  93. package/templates/projects/roadmap.md +59 -0
  94. package/templates/{state.md → projects/state.md} +19 -9
  95. package/agents/gsp-spec-engineer.md +0 -121
  96. package/agents/gsp-ui-designer.md +0 -59
  97. package/commands/gsp/spec.md +0 -88
  98. package/templates/config.json +0 -26
  99. package/templates/phases/brand.md +0 -60
  100. package/templates/phases/spec.md +0 -46
  101. package/templates/roadmap.md +0 -62
@@ -10,15 +10,17 @@ allowed-tools:
10
10
  - Glob
11
11
  ---
12
12
  <context>
13
- Phase 4 of the GSP design pipeline. Uses the UI/UX Pattern Master prompt to design core screens following Apple HIG and the project's design system.
13
+ Phase 3 of the GSP project diamond. Uses the UI/UX Pattern Master prompt to design core screens following Apple HIG and the brand's design system.
14
+
15
+ Works with the dual-diamond architecture: reads brand system from `.design/branding/{brand}/system/` via `brand.ref`, reads/writes project assets in `.design/projects/{project}/`.
14
16
  </context>
15
17
 
16
18
  <objective>
17
19
  Design core UI/UX screens and interaction flows.
18
20
 
19
- **Input:** `.design/system/SYSTEM.md` + `.design/BRIEF.md`
20
- **Output:** `.design/screens/SCREENS.md`
21
- **Agent:** `gsp-ui-designer`
21
+ **Input:** Research + brief + brand system + project BRIEF.md
22
+ **Output:** `{project}/design/` (screen chunks + shared/ + INDEX.md) + exports/INDEX.md update
23
+ **Agent:** `gsp-designer`
22
24
  </objective>
23
25
 
24
26
  <execution_context>
@@ -28,69 +30,82 @@ Design core UI/UX screens and interaction flows.
28
30
  </execution_context>
29
31
 
30
32
  <process>
33
+ ## Step 0: Resolve project and brand
34
+
35
+ Scan `.design/projects/` for project directories. If only one project exists, use it. If multiple, ask the user which project to work on.
36
+
37
+ Set `PROJECT_PATH` = `.design/projects/{project}`
38
+
39
+ Read `{PROJECT_PATH}/brand.ref` to resolve brand path:
40
+ - Set `BRAND_PATH` = `.design/branding/{brand}`
41
+
31
42
  ## Step 1: Load context
32
43
 
33
- Read:
34
- - `.design/BRIEF.md` — app type, audience, goals
35
- - `.design/system/SYSTEM.md` — design system to use
36
- - `.design/brand/IDENTITY.md` — brand personality
37
- - `.design/config.json` — get `implementation_target`
44
+ Read `{PROJECT_PATH}/config.json` — get `implementation_target`, `design_scope`.
45
+ Read `{PROJECT_PATH}/BRIEF.md` — app type, audience, goals.
38
46
 
39
- If SYSTEM.md doesn't exist, tell the user to run `/gsp:system` first.
47
+ ### Brand system (chunk-first)
40
48
 
41
- ## Step 2: Scan codebase for existing components
49
+ Read `{BRAND_PATH}/system/INDEX.md`. If it exists, load all foundation chunks + selective component chunks.
42
50
 
43
- When `implementation_target` is `shadcn`, `rn-reusables`, `existing`, or `code` (anything except `figma`):
51
+ Fallback: read `{BRAND_PATH}/system/SYSTEM.md` (legacy monolith). Log: "⚠️ Legacy system format detected — consider re-running /gsp:brand-system for chunk output."
44
52
 
45
- Scan the codebase for existing layouts and components:
46
- - Look for `components/`, `src/components/`, `components/ui/`, `lib/components/`
47
- - Look for shadcn `components/ui/` or RN Reusables `components/ui/`
48
- - Look for Expo `app/` layouts, Next.js `app/` layouts, or other layout files
49
- - Look for page/screen files to understand existing structure
53
+ If neither exists, tell the user to run `/gsp:brand-system` first.
50
54
 
51
- Build an **Existing Components** inventory summarizing what's already built and reusable.
55
+ ### Brand context (selective)
52
56
 
53
- Pass this inventory to the agent so screen designs can reference existing components.
57
+ Read `{BRAND_PATH}/identity/INDEX.md`. If it exists, load `color-system.md` and `typography.md`.
58
+ Fallback: read `{BRAND_PATH}/identity/IDENTITY.md`.
54
59
 
55
- ## Step 3: Spawn UI designer
60
+ ### Brief (chunk-first)
56
61
 
57
- Spawn the `gsp-ui-designer` agent with:
58
- - All prior artifacts
59
- - The UI/UX Pattern Master prompt (03)
60
- - The design output template
61
- - The Apple HIG patterns reference
62
- - The `implementation_target` value
63
- - The existing components inventory (if gathered in Step 2)
62
+ Read `{PROJECT_PATH}/brief/INDEX.md`. If it exists, load `scope.md` and `target-adaptations.md`.
64
63
 
65
- The agent should deliver:
66
- 1. User personas with goals and pain points
67
- 2. Information architecture
68
- 3. Navigation pattern and gesture definitions
69
- 4. 8 core screens with wireframes, components, interactions
70
- 5. All states: empty, error, loading
71
- 6. Accessibility specs (WCAG, VoiceOver, Dynamic Type)
72
- 7. Micro-interactions and animations
73
- 8. Responsive behavior across breakpoints
74
- 9. **Component Plan** (when target is not `figma`)
75
- 10. Designer's notes
64
+ If brief doesn't exist, proceed without it (brief is informative, not blocking).
76
65
 
77
- ## Step 4: Write output
66
+ ### Research (chunk-first)
78
67
 
79
- Write screens to `.design/screens/SCREENS.md`.
68
+ Read `{PROJECT_PATH}/research/INDEX.md`. If it exists, load `ux-patterns.md`, `recommendations.md`, and `reference-specs.md`.
80
69
 
81
- ## Step 5: Update state
70
+ If research doesn't exist, proceed without it (research is informative, not blocking).
82
71
 
83
- Update `.design/STATE.md`:
84
- - Set Phase 4 (Design) status to `complete`
85
- - Record completion date
72
+ ## Step 1.5: Scope check
73
+
74
+ **If `design_scope` is `tokens`:**
75
+ 1. Update `{PROJECT_PATH}/STATE.md` — set Phase 3 (Design) status to `skipped`
76
+ 2. Display: "Design phase skipped — design scope is `tokens`."
77
+ 3. Route: "Run `/gsp:build`."
78
+ 4. Stop here.
79
+
80
+ **If `design_scope` is `partial`:**
81
+ Read BRIEF.md "Target screens" to get the specific screen list.
86
82
 
87
- ## Step 6: Route next
83
+ ## Step 2: Load existing components inventory
88
84
 
89
- Display screen summary (screen count, key flows) and end with:
85
+ When `implementation_target` is not `figma`:
86
+ - **If `{PROJECT_PATH}/codebase/INVENTORY.md` exists**, read it. Pass to the agent.
87
+ - **If not**, fall back to scanning the codebase.
88
+
89
+ ## Step 3: Spawn designer
90
+
91
+ Spawn the `gsp-designer` agent with all prior artifacts, the UI/UX Pattern Master prompt (03), design output template, Apple HIG patterns reference, implementation_target, design_scope, target screens (when partial), and existing components inventory.
92
+
93
+ **Output path:** `{PROJECT_PATH}/design/`
94
+
95
+ The agent writes chunks directly:
96
+ - `design/screen-{NN}-{name}.md` (one per screen)
97
+ - `design/shared/` (personas, IA, navigation, micro-interactions, responsive, component-plan)
98
+ - `design/INDEX.md`
99
+ - Updates `{PROJECT_PATH}/exports/INDEX.md` (design section)
100
+
101
+ ## Step 4: Update state
102
+
103
+ Update `{PROJECT_PATH}/STATE.md`:
104
+ - Set Phase 3 (Design) status to `complete`
105
+ - Record completion date
90
106
 
91
- **When `implementation_target` is `skip`:**
92
- "Run `/gsp:review` for design critique and accessibility audit."
107
+ ## Step 5: Route next
93
108
 
94
- **Otherwise:**
95
- "Run `/gsp:spec` to generate implementation specifications."
109
+ "Run `/gsp:critique` for design critique and accessibility audit."
96
110
  </process>
111
+ </output>
@@ -0,0 +1,17 @@
1
+ ---
2
+ name: gsp:discover
3
+ description: Brand discovery (alias for /gsp:brand-research)
4
+ allowed-tools:
5
+ - Read
6
+ ---
7
+ <process>
8
+ Display:
9
+ ```
10
+ 🎨 GSP — Redirecting...
11
+
12
+ /gsp:discover now redirects to /gsp:brand-research.
13
+ Brand commands now use the brand- prefix for clarity.
14
+ ```
15
+
16
+ Tell the user to run `/gsp:brand-research` instead.
17
+ </process>
@@ -0,0 +1,319 @@
1
+ ---
2
+ name: gsp:doctor
3
+ description: Diagnose project health — check structure, config, outputs, and brand drift
4
+ allowed-tools:
5
+ - Read
6
+ - Glob
7
+ - Grep
8
+ - Bash
9
+ ---
10
+ <context>
11
+ Diagnostic tool for GSP design projects. Runs health checks across all brands in `.design/branding/` and all projects in `.design/projects/`. Reports health issues with actionable fix suggestions.
12
+
13
+ No agents needed — this is pure pattern matching and file inspection.
14
+ </context>
15
+
16
+ <objective>
17
+ Run a health check on the current `.design/` directory and print a terminal diagnostic.
18
+
19
+ **Input:** `.design/` directory (all brands, projects, artifacts, config, state)
20
+ **Output:** Terminal-only diagnostic — no files written
21
+
22
+ **Checks:** project structure, phase ordering, stale outputs, config drift, missing chunks, broken references, review status, brand drift, upgrade detection
23
+ </objective>
24
+
25
+ <process>
26
+ ## Step 0: Find design directory
27
+
28
+ Check for `.design/` in the current directory.
29
+
30
+ If not found:
31
+ ```
32
+ 🩺 GSP Doctor — No project found
33
+ No .design/ directory detected. Run /gsp:new to start.
34
+ ```
35
+ Stop here.
36
+
37
+ ## Step 1: Detect structure type
38
+
39
+ **New dual-diamond structure:** `.design/branding/` or `.design/projects/` exists
40
+ **Legacy flat structure:** `.design/config.json` exists at root (not inside branding/ or projects/)
41
+ **Empty:** `.design/` exists but has neither
42
+
43
+ For legacy: run legacy checks (same as v0.3.0 doctor). For new: run multi-instance checks below.
44
+
45
+ ## Step 2: Scan all instances
46
+
47
+ **Brands:** List all directories in `.design/branding/` that have a `config.json` with `project_type: "brand"`
48
+ **Projects:** List all directories in `.design/projects/` that have a `config.json` with `project_type: "design"`
49
+
50
+ For each instance, read:
51
+ - `config.json` — configuration
52
+ - `STATE.md` — phase progress
53
+ - `BRIEF.md` — brief
54
+ - `brand.ref` — brand reference (projects only)
55
+
56
+ ## Step 3: Run checks per instance
57
+
58
+ ### Per-Brand Checks (5-phase)
59
+
60
+ **Check B1: Brand Structure**
61
+ Required: config.json, STATE.md, BRIEF.md
62
+ Required dirs: discover/, strategy/, verbal/, identity/, system/
63
+ Missing → FAIL
64
+
65
+ **Check B2: Brand Phase Ordering**
66
+ No phase complete if earlier phase is pending (discover < strategy < verbal < identity < system).
67
+ Exception: strategy can proceed without discover.
68
+
69
+ **Check B3: Brand Completeness**
70
+ If all 5 phases complete, check:
71
+ - `identity/INDEX.md` exists (chunk format)
72
+ - `identity/palettes.json` exists (WARN if missing)
73
+ - `system/INDEX.md` exists (chunk format)
74
+ - `system/tokens.json` exists (WARN if missing)
75
+ - If monolith exists without INDEX.md → WARN: "Legacy monolith format"
76
+
77
+ **Check B4: Legacy Monolith Detection**
78
+ For each brand phase directory (discover, strategy, verbal, identity, system):
79
+ - If monolith exists but no INDEX.md → WARN: "Legacy format in {phase}/ — re-run /gsp:brand-{phase} for chunk output"
80
+
81
+ ### Per-Project Checks (6-phase)
82
+
83
+ **Check P1: Project Structure**
84
+
85
+ **What it catches:** Missing core files, incomplete setup.
86
+
87
+ Required: config.json, STATE.md, BRIEF.md, brand.ref
88
+ Required dirs: brief/, research/, design/, critique/, build/, review/
89
+
90
+ Required when `codebase_type` is NOT `greenfield`:
91
+ - codebase/INVENTORY.md
92
+
93
+ Check each exists:
94
+ - All present → PASS
95
+ - INVENTORY.md missing for non-greenfield → WARN: "Codebase inventory missing. Re-run `/gsp:new` or create `codebase/INVENTORY.md` manually."
96
+ - Core files missing → FAIL: list which are missing, suggest `/gsp:new`
97
+
98
+ Legacy detection: if system/, screens/, specs/, plan/ dirs exist → WARN: "Legacy structure detected — project uses old phase layout"
99
+
100
+ **Check P2: Brand Reference**
101
+ Read brand.ref → check brand exists in `.design/branding/{name}/`
102
+ Check brand system is complete (system phase = complete)
103
+ WARN if brand referenced but system not complete
104
+
105
+ **Check P3: Brand Drift**
106
+ Read `identity_hash` from brand.ref
107
+ If brand identity/IDENTITY.md exists, compute current hash (first 8 chars of md5)
108
+ If hashes differ → WARN: "Brand identity has changed since project consumed it. Consider re-running `/gsp:brief`."
109
+ If identity_hash is "pending" → INFO: "Brand identity wasn't complete when project was created."
110
+
111
+ **Check P4: Phase Ordering**
112
+
113
+ **What it catches:** Phases completed out of order, skipped prerequisites.
114
+
115
+ Read STATE.md phase table. Check ordering rules:
116
+ brief < research < design < critique < build < review
117
+
118
+ 1. No phase should be `complete` if an earlier required phase is still `pending` (not `skipped` or `complete`)
119
+ 2. Valid skip scenarios (not violations):
120
+ - design skipped when `design_scope` is `tokens`
121
+ - research can proceed without brief
122
+ 3. build complete but critique pending → WARN: "Build completed without critique. Run `/gsp:critique` to audit."
123
+ 4. Any other out-of-order completion → FAIL with specifics
124
+
125
+ All phases in order (or validly skipped) → PASS
126
+
127
+ **Check P5: Stale Outputs**
128
+
129
+ **What it catches:** Output content that doesn't match current config expectations.
130
+
131
+ Only check phases that are `complete`. All paths relative to the project instance directory.
132
+
133
+ **When `system_strategy` is `extend`:**
134
+ - Check if brand's `system/` output contains "Component Audit" or "KEEP" or "RESTYLE" or "REFACTOR" or "REPLACE"
135
+ - If none found → WARN: "Strategy is `extend` but system output lacks component audit table. Re-run `/gsp:brand-patterns`."
136
+
137
+ **When `implementation_target` is `shadcn`:**
138
+ - If brief phase is complete, check brief/ output for "shadcn" or "npx shadcn"
139
+ - If not found → WARN: "Target is `shadcn` but brief doesn't reference shadcn components."
140
+
141
+ **When `implementation_target` is `rn-reusables`:**
142
+ - If brief phase is complete, check brief/ output for "reusables" or "NativeWind"
143
+ - If not found → WARN: "Target is `rn-reusables` but brief doesn't reference RN Reusables."
144
+
145
+ **When `design_scope` is `tokens`:**
146
+ - design phase should be `skipped`, not `complete`
147
+ - If `complete` → WARN: "Scope is `tokens` but design phase ran as full. Outputs may be unnecessary."
148
+
149
+ No stale outputs detected → PASS
150
+
151
+ **Check P6: Config Drift**
152
+
153
+ **What it catches:** Config says one thing, outputs reflect another.
154
+
155
+ **Check `system_strategy` alignment:**
156
+ - Config says `extend` but brand system output contains "## Components" with 30+ component specs (no audit table) → WARN: "Config says `extend` but system looks like a full `generate`. Config may be out of sync."
157
+ - Config says `generate` but brand system output contains "Component Audit" → WARN: "Config says `generate` but system contains extend-style audit."
158
+
159
+ **Check `codebase_type` alignment:**
160
+ - Config says `existing` or `boilerplate` but no INVENTORY.md → WARN (already caught by P1, don't double-count)
161
+ - Config says `greenfield` but INVENTORY.md exists → INFO: "Config says `greenfield` but INVENTORY.md exists. Not an issue, but config may be stale."
162
+
163
+ **Check `design_scope` alignment:**
164
+ - Config says `tokens` but design/ has full screen designs → WARN: "Scope is `tokens` but design/ has full screen designs."
165
+ - Config says `partial` — check BRIEF.md for "Target screens" section. If missing → WARN: "Scope is `partial` but BRIEF.md doesn't specify target screens."
166
+
167
+ No drift detected → PASS
168
+
169
+ **Check P7: Missing Chunks**
170
+
171
+ **What it catches:** Chunk directories missing, INDEX.md references broken.
172
+
173
+ For each completed project phase (brief, research, design, critique, build, review):
174
+ - Check for `{phase}/INDEX.md` — if missing → WARN: "Phase {phase} is complete but has no INDEX.md. Re-run `/gsp:{command}` to generate chunks."
175
+
176
+ **If exports/INDEX.md exists, check for broken references:**
177
+ - Read INDEX.md, extract all file paths from markdown links
178
+ - Check each referenced file exists
179
+
180
+ Broken INDEX.md references → WARN: list broken paths
181
+ INDEX.md has unpopulated BEGIN/END sections for completed phases → WARN: "INDEX.md has empty sections for completed phases."
182
+
183
+ No chunks expected yet (no phases complete) → PASS
184
+ All chunks present and references valid → PASS
185
+
186
+ Legacy path detection: if `screens/` exists instead of `design/` → WARN
187
+
188
+ **Check P8: Broken References**
189
+
190
+ **What it catches:** Cross-file references that point to non-existent content.
191
+
192
+ **design/ → brand system:**
193
+ If both exist, extract component names referenced in design chunks (look for patterns like "Uses: {ComponentName}" or component references). Check each exists in the brand's system output.
194
+
195
+ Components referenced in designs but not in system → WARN: "Design references components not defined in brand system: {list}. Re-run `/gsp:brand-patterns` to add them, or update designs."
196
+
197
+ **critique/ → design/:**
198
+ If both exist, extract screen references from critique chunks. Check each referenced screen exists in design/.
199
+
200
+ Screens referenced in critique but not in designs → WARN: "Critique references screens not in design/: {list}."
201
+
202
+ No broken references → PASS
203
+
204
+ **Check P9: Review Status**
205
+
206
+ **What it catches:** Stuck review loops, unaddressed critical issues.
207
+
208
+ Read STATE.md review loop table:
209
+ - Count review iterations
210
+ - If > 3 iterations → WARN: "Review has looped {N} times. Consider addressing root causes or accepting current state."
211
+
212
+ If critique phase status is `needs-revision`:
213
+ - Check if any later phase (build, review) is `complete` → FAIL: "Build/Review completed while critique still needs revision."
214
+
215
+ If critique/ contains chunks with "Critical" severity items:
216
+ - If critique phase status is `complete` (not `needs-revision`) → INFO: "Critique has critical items but phase is marked complete. Verify issues were addressed."
217
+
218
+ No review issues → PASS
219
+
220
+ **Check P10: Upgrade Detection**
221
+
222
+ **What it catches:** Project created with older GSP version, missing features now available.
223
+
224
+ **Config version check:**
225
+ - If `version` field exists in config.json, note it
226
+ - If version is older than current (0.4.0) → WARN: "Config version is {version}, current GSP is 0.4.0. Some features may not be active."
227
+ - If no `version` field → INFO: "Config has no version stamp. Project may predate versioned configs."
228
+
229
+ **Chunk format check:**
230
+ - If any phase is complete but has no INDEX.md and no chunk files → WARN: "Project may predate chunked exports. Consider re-running phases to get chunked output."
231
+
232
+ **palettes.json check:**
233
+ - If brand's identity phase is complete, check for `identity/palettes.json`
234
+ - If missing → INFO: "No tints.dev palettes found. Re-run `/gsp:brand-identity` to generate OKLCH color palettes."
235
+
236
+ No upgrade concerns → PASS
237
+
238
+ ### Cross-Instance Checks
239
+
240
+ **Check X1: Multiple projects, same brand**
241
+ If multiple projects reference the same brand, and brand has changed since any project consumed it → WARN with list of affected projects.
242
+
243
+ ## Step 4: Calculate health score
244
+
245
+ Score per instance (100 points each):
246
+ - Each FAIL: -15 points
247
+ - Each WARN: -5 points
248
+ - Each INFO: -0 points
249
+ - Minimum: 0
250
+
251
+ Overall score: average of all instance scores.
252
+
253
+ ## Step 5: Display diagnostic
254
+
255
+ ```
256
+ 🩺 GSP Doctor — Project Health Check
257
+ ═══════════════════════════════════════
258
+
259
+ Brands: {N} found
260
+ Projects: {N} found
261
+
262
+ Overall Health: {SCORE}/100 {emoji}
263
+ {health bar}
264
+
265
+ ─── Brand: {name} ─────────────────────
266
+ Phases: {N}/5 complete
267
+ ✅ B1. Structure .............. PASS
268
+ ✅ B2. Phase Ordering ......... PASS
269
+ ⚠️ B3. Completeness .......... WARN
270
+
271
+ ─── Project: {name} (brand: {brand}) ──
272
+ Phases: {N}/6 complete
273
+ ✅ P1. Structure .............. PASS
274
+ ✅ P2. Brand Reference ........ PASS
275
+ ⚠️ P3. Brand Drift ........... WARN
276
+ ✅ P4. Phase Ordering ......... PASS
277
+ ✅ P5. Stale Outputs .......... PASS
278
+ ✅ P6. Config Drift ........... PASS
279
+ ✅ P7. Missing Chunks ......... PASS
280
+ ✅ P8. Broken References ...... PASS
281
+ ✅ P9. Review Status .......... PASS
282
+ ✅ P10. Upgrade Detection ..... PASS
283
+
284
+ ─── Cross-Instance ────────────────────
285
+ ✅ X1. Brand Consistency ...... PASS
286
+
287
+ ─── Issues Found ──────────────────────
288
+
289
+ FAIL:
290
+ • [acme-website/P1] Missing brand.ref
291
+ → Fix: Re-run /gsp:new to set up project with brand reference
292
+
293
+ WARN:
294
+ • [acme-corp/B3] No palettes.json found
295
+ → Fix: Re-run /gsp:brand-identity to generate OKLCH palettes
296
+
297
+ INFO:
298
+ • [acme-corp/P10] Config version is 0.3.0, current GSP is 0.4.0
299
+ → Fix: Re-run /gsp:new to upgrade config
300
+
301
+ ─── Summary ───────────────────────────
302
+
303
+ {If score >= 90:} "Project is healthy. Ship it! 🚀"
304
+ {If score >= 70:} "Project has minor issues. Address warnings when convenient."
305
+ {If score >= 50:} "Project needs attention. Fix the warnings above."
306
+ {If score < 50:} "Project has significant issues. Address failures first."
307
+ ```
308
+
309
+ Health emoji: 90-100: 💚, 70-89: 💛, 50-69: 🟠, 0-49: ❤️
310
+ Health bar: 20-char using █ and ░.
311
+
312
+ ## Important Notes
313
+
314
+ - **Read-only** — do NOT modify any files
315
+ - **No agents** — run all checks directly, this is deterministic pattern matching
316
+ - **Terminal only** — no file output, all results printed to terminal
317
+ - **Be specific** — every issue names the exact file and suggests the exact command to fix it
318
+ - **Don't over-report** — if the same issue is caught by multiple checks, only report it once (in the most specific check)
319
+ </process>
@@ -17,52 +17,99 @@ Output the following reference exactly:
17
17
 
18
18
  ```
19
19
  🎨 GSP — Get Shit Pretty
20
- Command Reference
20
+ Command Reference (v0.4.0 — Dual Diamond)
21
21
  ═══════════════════════════════════════
22
22
 
23
- PROJECT SETUP
24
- /gsp:new-project Initialize design brief through guided Q&A
23
+ GETTING STARTED
24
+ /gsp:new Smart entry start a brand or project
25
25
  /gsp:help Show this command reference
26
- /gsp:progress Check project status "How pretty are we?"
26
+ /gsp:update Update GSP to latest version
27
+ /gsp:progress Check progress — "How pretty are we?"
28
+ /gsp:doctor Diagnose health across brands + projects
27
29
 
28
- DESIGN PIPELINE (run in order)
29
- /gsp:research Phase 1Trend analysis & competitive landscape
30
- /gsp:brand Phase 2Brand identity (strategy, logo, color, type)
31
- /gsp:system Phase 3Design system foundations + tokens
32
- /gsp:design Phase 4 — UI/UX screens & interaction flows
33
- /gsp:spec Phase 5 — Implementation specifications
34
- /gsp:review Phase 6 — Design critique + accessibility audit
35
- /gsp:build Phase 7 — Design-to-code translation
36
- /gsp:launch Phase 8 — Marketing campaign assets
30
+ BRANDING DIAMOND (5 commands, 6 phases)
31
+ /gsp:brand-audit Phase 0Audit: assess existing brand, produce evolution map (optional)
32
+ /gsp:brand-research Phase 1Research: competitive audit, personas, SWOT, trends
33
+ /gsp:brand-strategy Phase 2Strategy: archetype, positioning, personality (interactive)
34
+ /gsp:brand-identity Phases 3-4 — Identity: verbal + visual identity
35
+ /gsp:brand-patterns Phase 5 — Patterns: design system, tokens + brand preview
37
36
 
38
- PIPELINE FLOW
39
- new-project research brand system design → spec → review → build → launch
40
- ↑ |
41
- └── loop back ───┘
42
- (if critical issues)
37
+ Granular re-runs:
38
+ /gsp:brand-verbal Phase 3 only Voice, tone spectrum, messaging, naming
43
39
 
44
- PROJECT STRUCTURE
40
+ PROJECT DIAMOND (6 phases)
41
+ /gsp:brief Phase 1 — Project scoping, adaptations, gap analysis
42
+ /gsp:research Phase 2 — UX patterns, competitor UX, technical research, reference specs
43
+ /gsp:design Phase 3 — UI/UX screens & interaction flows
44
+ /gsp:critique Phase 4 — Design critique + accessibility audit
45
+ /gsp:build Phase 5 — Design-to-code translation
46
+ /gsp:review Phase 6 — Deliverable validation + acceptance
47
+
48
+ OPTIONAL
49
+ /gsp:launch Marketing campaign assets (on request)
50
+
51
+ E2E FLOW (5 + 6 phases + optional)
52
+ [brand-audit] → brand-research → brand-strategy → brand-identity → brand-patterns → brief → research → design → critique → build → review
53
+ |_ optional _| |___________________ branding diamond __________________________| |_____________ project diamond ___________________|
54
+ Optional: launch (after review)
55
+
56
+ WORKFLOW
57
+ Treat each project as a bounded issue (or set of issues) and a PR.
58
+ Ship small, ship complete. Break large projects into focused deliverables.
59
+
60
+ ALIASES (backwards compatible)
61
+ /gsp:new-project → redirects to /gsp:new
62
+ /gsp:brand → redirects to /gsp:brand-identity
63
+ /gsp:brand-discover → redirects to /gsp:brand-research
64
+ /gsp:brand-system → redirects to /gsp:brand-patterns
65
+ /gsp:discover → redirects to /gsp:brand-research
66
+ /gsp:strategy → redirects to /gsp:brand-strategy
67
+ /gsp:verbal → redirects to /gsp:brand-verbal
68
+ /gsp:identity → redirects to /gsp:brand-identity
69
+ /gsp:system → redirects to /gsp:brand-patterns
70
+ /gsp:spec → redirects to /gsp:brief
71
+ /gsp:plan → redirects to /gsp:brief
72
+
73
+ DIRECTORY STRUCTURE
45
74
  .design/
46
- ├── BRIEF.md Design brief
47
- ├── ROADMAP.md Phase plan
48
- ├── STATE.md Progress tracking
49
- ├── config.json Preferences
50
- ├── research/TRENDS.md Trend analysis
51
- ├── brand/IDENTITY.md Brand identity
52
- ├── system/SYSTEM.md Design system
53
- ├── system/tokens.json Design tokens
54
- ├── screens/SCREENS.md UI/UX screens
55
- ├── specs/SPECS.md Implementation specifications
56
- ├── review/CRITIQUE.md Design critique
57
- ├── review/ACCESSIBILITY.md WCAG audit
58
- ├── build/CODE.md Implementation guide
59
- ├── build/components/ Code components
60
- └── launch/CAMPAIGN.md Marketing assets
75
+ ├── branding/
76
+ │ └── {brand-name}/
77
+ ├── BRIEF.md Brand brief
78
+ ├── STATE.md Brand progress
79
+ ├── config.json Brand config
80
+ ├── audit/ Audit chunks + INDEX.md (evolve mode only)
81
+ ├── discover/ Research chunks + INDEX.md
82
+ ├── strategy/ Strategy chunks + INDEX.md
83
+ ├── verbal/ Verbal chunks + INDEX.md
84
+ ├── identity/ Identity chunks + palettes.json + INDEX.md
85
+ ├── system/ Foundations + components + tokens.json + INDEX.md
86
+ │ └── preview.html Brand preview (generated by brand-patterns)
87
+ └── projects/
88
+ └── {project-name}/
89
+ ├── BRIEF.md Project brief
90
+ ├── STATE.md Project progress
91
+ ├── config.json Project config
92
+ ├── brand.ref → brand reference
93
+ ├── brief/ Scope + adaptations + INDEX.md
94
+ ├── research/ UX patterns + competitor UX + tech research + specs + INDEX.md
95
+ ├── design/ Screen chunks + shared/ + INDEX.md
96
+ ├── critique/ Critique + accessibility chunks + INDEX.md
97
+ ├── build/CODE.md Implementation guide
98
+ ├── build/components/ Code components
99
+ ├── review/ Acceptance report + issues + INDEX.md
100
+ ├── launch/ Campaign chunks + INDEX.md (optional)
101
+ └── exports/INDEX.md Master chunk index
61
102
 
62
103
  TIPS
63
- Run phases in order each builds on the previous
64
- /gsp:review loops back if critical issues are found
65
- /gsp:progress shows your prettiness meter
66
- You can skip phases if you already have the artifacts
104
+ Start with /gsp:newit detects what exists and routes you
105
+ Multiple brands and projects can coexist
106
+ Projects reference a brand via brand.ref
107
+ /gsp:brand-identity handles both verbal + visual skips what's done
108
+ • /gsp:brand-verbal re-runs phase 3 only if you need to revise voice
109
+ • /gsp:critique loops back if critical issues found
110
+ • /gsp:doctor checks brand drift across projects
111
+ • /gsp:progress shows prettiness across all instances
112
+ • /gsp:launch is optional — run when you need marketing assets
113
+ • Treat projects as issues + PRs — bounded scope = higher quality
67
114
  ```
68
115
  </process>
@@ -0,0 +1,18 @@
1
+ ---
2
+ name: gsp:identity
3
+ description: Visual identity (alias for /gsp:brand-identity)
4
+ allowed-tools:
5
+ - Read
6
+ ---
7
+ <process>
8
+ Display:
9
+ ```
10
+ 🎨 GSP — Redirecting...
11
+
12
+ /gsp:identity now redirects to /gsp:brand-identity in GSP 0.4.0.
13
+ Brand commands now use the brand- prefix for clarity.
14
+ ```
15
+
16
+ Tell the user to run `/gsp:brand-identity` instead.
17
+ </process>
18
+ </output>