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.
- package/LICENSE +21 -0
- package/README.md +15 -9
- package/agents/{gsp-accessibility-auditor.md → gsp-auditor.md} +17 -14
- package/agents/gsp-brand-auditor.md +97 -0
- package/agents/gsp-brand-strategist.md +64 -27
- package/agents/{gsp-design-engineer.md → gsp-builder.md} +12 -9
- package/agents/gsp-campaign-director.md +50 -11
- package/agents/gsp-codebase-scanner.md +171 -0
- package/agents/gsp-critic.md +18 -13
- package/agents/gsp-designer.md +126 -0
- package/agents/gsp-identity-designer.md +90 -0
- package/agents/gsp-project-researcher.md +102 -0
- package/agents/gsp-researcher.md +54 -18
- package/agents/gsp-reviewer.md +66 -0
- package/agents/gsp-scoper.md +103 -0
- package/agents/gsp-system-architect.md +91 -26
- package/agents/gsp-verbal-strategist.md +84 -0
- package/bin/install.js +161 -5
- package/commands/gsp/brand-audit.md +116 -0
- package/commands/gsp/brand-discover.md +17 -0
- package/commands/gsp/brand-identity.md +200 -0
- package/commands/gsp/brand-patterns.md +223 -0
- package/commands/gsp/brand-research.md +99 -0
- package/commands/gsp/brand-strategy.md +140 -0
- package/commands/gsp/brand-system.md +17 -0
- package/commands/gsp/brand-verbal.md +94 -0
- package/commands/gsp/brand.md +9 -83
- package/commands/gsp/brief.md +142 -0
- package/commands/gsp/build.md +49 -41
- package/commands/gsp/critique.md +140 -0
- package/commands/gsp/design.md +65 -50
- package/commands/gsp/discover.md +17 -0
- package/commands/gsp/doctor.md +319 -0
- package/commands/gsp/help.md +85 -38
- package/commands/gsp/identity.md +18 -0
- package/commands/gsp/launch.md +55 -35
- package/commands/gsp/new-project.md +5 -86
- package/commands/gsp/new.md +237 -0
- package/commands/gsp/plan.md +18 -0
- package/commands/gsp/progress.md +58 -26
- package/commands/gsp/research.md +91 -34
- package/commands/gsp/review.md +115 -59
- package/commands/gsp/strategy.md +18 -0
- package/commands/gsp/system.md +8 -65
- package/commands/gsp/update.md +102 -0
- package/commands/gsp/verbal.md +18 -0
- package/package.json +2 -2
- package/prompts/01-design-system-architect.md +35 -3
- package/prompts/03-ui-ux-pattern-master.md +11 -1
- package/prompts/09-design-to-code-translator.md +9 -0
- package/prompts/10-project-scoper.md +51 -0
- package/prompts/11-deliverable-reviewer.md +58 -0
- package/prompts/12-project-researcher.md +57 -0
- package/references/brand-archetypes.md +151 -0
- package/references/brand-prism.md +138 -0
- package/references/chunk-format.md +48 -0
- package/references/design-trends.md +47 -0
- package/references/positioning-frameworks.md +197 -0
- package/references/questioning.md +1 -1
- package/references/trends/aurora-gradients.md +245 -0
- package/references/trends/bento-grid.md +473 -0
- package/references/trends/claymorphism.md +232 -0
- package/references/trends/dark-mode-oled.md +282 -0
- package/references/trends/glassmorphism.md +455 -0
- package/references/trends/kinetic-typography.md +277 -0
- package/references/trends/liquid-glass.md +236 -0
- package/references/trends/micro-interactions.md +307 -0
- package/references/trends/neubrutalism.md +276 -0
- package/references/voice-tone.md +193 -0
- package/scripts/gsp-statusline.js +1 -1
- package/templates/branding/brief.md +74 -0
- package/templates/branding/config.json +26 -0
- package/templates/branding/roadmap.md +43 -0
- package/templates/branding/state.md +29 -0
- package/templates/changelog.md +4 -0
- package/templates/codebase-inventory.md +71 -0
- package/templates/exports-index.md +93 -0
- package/templates/manifest.md +19 -0
- package/templates/phases/brief.md +53 -0
- package/templates/phases/build.md +24 -48
- package/templates/phases/critique.md +68 -0
- package/templates/phases/design.md +54 -32
- package/templates/phases/discover.md +60 -0
- package/templates/phases/identity.md +78 -0
- package/templates/phases/launch.md +48 -55
- package/templates/phases/research.md +75 -47
- package/templates/phases/review.md +27 -75
- package/templates/phases/strategy.md +67 -0
- package/templates/phases/system.md +84 -78
- package/templates/phases/verbal.md +63 -0
- package/templates/{project.md → projects/brief.md} +13 -17
- package/templates/projects/config.json +32 -0
- package/templates/projects/roadmap.md +59 -0
- package/templates/{state.md → projects/state.md} +19 -9
- package/agents/gsp-spec-engineer.md +0 -121
- package/agents/gsp-ui-designer.md +0 -59
- package/commands/gsp/spec.md +0 -88
- package/templates/config.json +0 -26
- package/templates/phases/brand.md +0 -60
- package/templates/phases/spec.md +0 -46
- package/templates/roadmap.md +0 -62
package/commands/gsp/design.md
CHANGED
|
@@ -10,15 +10,17 @@ allowed-tools:
|
|
|
10
10
|
- Glob
|
|
11
11
|
---
|
|
12
12
|
<context>
|
|
13
|
-
Phase
|
|
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:**
|
|
20
|
-
**Output:**
|
|
21
|
-
**Agent:** `gsp-
|
|
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
|
-
|
|
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
|
-
|
|
47
|
+
### Brand system (chunk-first)
|
|
40
48
|
|
|
41
|
-
|
|
49
|
+
Read `{BRAND_PATH}/system/INDEX.md`. If it exists, load all foundation chunks + selective component chunks.
|
|
42
50
|
|
|
43
|
-
|
|
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
|
-
|
|
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
|
-
|
|
55
|
+
### Brand context (selective)
|
|
52
56
|
|
|
53
|
-
|
|
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
|
-
|
|
60
|
+
### Brief (chunk-first)
|
|
56
61
|
|
|
57
|
-
|
|
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
|
-
|
|
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
|
-
|
|
66
|
+
### Research (chunk-first)
|
|
78
67
|
|
|
79
|
-
|
|
68
|
+
Read `{PROJECT_PATH}/research/INDEX.md`. If it exists, load `ux-patterns.md`, `recommendations.md`, and `reference-specs.md`.
|
|
80
69
|
|
|
81
|
-
|
|
70
|
+
If research doesn't exist, proceed without it (research is informative, not blocking).
|
|
82
71
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
|
83
|
+
## Step 2: Load existing components inventory
|
|
88
84
|
|
|
89
|
-
|
|
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
|
-
|
|
92
|
-
"Run `/gsp:review` for design critique and accessibility audit."
|
|
107
|
+
## Step 5: Route next
|
|
93
108
|
|
|
94
|
-
|
|
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>
|
package/commands/gsp/help.md
CHANGED
|
@@ -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
|
-
|
|
24
|
-
/gsp:new
|
|
23
|
+
GETTING STARTED
|
|
24
|
+
/gsp:new Smart entry — start a brand or project
|
|
25
25
|
/gsp:help Show this command reference
|
|
26
|
-
/gsp:
|
|
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
|
-
|
|
29
|
-
/gsp:
|
|
30
|
-
/gsp:brand
|
|
31
|
-
/gsp:
|
|
32
|
-
/gsp:
|
|
33
|
-
/gsp:
|
|
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 0 — Audit: assess existing brand, produce evolution map (optional)
|
|
32
|
+
/gsp:brand-research Phase 1 — Research: competitive audit, personas, SWOT, trends
|
|
33
|
+
/gsp:brand-strategy Phase 2 — Strategy: 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
|
-
|
|
39
|
-
|
|
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
|
|
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
|
-
├──
|
|
47
|
-
|
|
48
|
-
├──
|
|
49
|
-
├──
|
|
50
|
-
├──
|
|
51
|
-
├──
|
|
52
|
-
├──
|
|
53
|
-
├──
|
|
54
|
-
├──
|
|
55
|
-
├──
|
|
56
|
-
├──
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
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
|
-
•
|
|
64
|
-
•
|
|
65
|
-
•
|
|
66
|
-
•
|
|
104
|
+
• Start with /gsp:new — it 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>
|