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/launch.md
CHANGED
|
@@ -9,14 +9,16 @@ allowed-tools:
|
|
|
9
9
|
- WebSearch
|
|
10
10
|
---
|
|
11
11
|
<context>
|
|
12
|
-
|
|
12
|
+
Optional GSP project phase. Uses the Marketing Asset Factory prompt to create a full campaign asset library across channels. Not a mandatory phase — run when needed.
|
|
13
|
+
|
|
14
|
+
Works with the dual-diamond architecture: reads brand identity from `.design/branding/{brand}/` via `brand.ref`, reads/writes project assets in `.design/projects/{project}/`.
|
|
13
15
|
</context>
|
|
14
16
|
|
|
15
17
|
<objective>
|
|
16
18
|
Create marketing campaign assets for product launch.
|
|
17
19
|
|
|
18
|
-
**Input:**
|
|
19
|
-
**Output:**
|
|
20
|
+
**Input:** Brand identity + verbal chunks (selective) + screen chunks
|
|
21
|
+
**Output:** `{project}/launch/` (6 chunks + INDEX.md) + exports/INDEX.md update
|
|
20
22
|
**Agent:** `gsp-campaign-director`
|
|
21
23
|
</objective>
|
|
22
24
|
|
|
@@ -26,50 +28,68 @@ Create marketing campaign assets for product launch.
|
|
|
26
28
|
</execution_context>
|
|
27
29
|
|
|
28
30
|
<process>
|
|
31
|
+
## Step 0: Resolve project and brand
|
|
32
|
+
|
|
33
|
+
Scan `.design/projects/` for project directories. If only one project exists, use it. If multiple, ask the user which project to work on.
|
|
34
|
+
|
|
35
|
+
Set `PROJECT_PATH` = `.design/projects/{project}`
|
|
36
|
+
|
|
37
|
+
Read `{PROJECT_PATH}/brand.ref` to resolve brand path:
|
|
38
|
+
- Set `BRAND_PATH` = `.design/branding/{brand}`
|
|
39
|
+
|
|
29
40
|
## Step 1: Load context
|
|
30
41
|
|
|
31
|
-
Read
|
|
32
|
-
- `.design/brand/IDENTITY.md` — brand voice, visual identity
|
|
33
|
-
- `.design/screens/SCREENS.md` — product screens for showcase
|
|
34
|
-
- `.design/BRIEF.md` — audience, goals, messaging
|
|
35
|
-
- `.design/system/SYSTEM.md` — design system for consistency
|
|
42
|
+
Read `{PROJECT_PATH}/config.json` to get `design_scope`.
|
|
36
43
|
|
|
37
|
-
If
|
|
44
|
+
**If `design_scope` is `tokens`:**
|
|
45
|
+
1. Display: "Launch phase skipped — tokens-only projects don't need marketing campaign assets."
|
|
46
|
+
2. **Stop here**
|
|
38
47
|
|
|
39
|
-
|
|
48
|
+
### Identity (selective, chunk-first)
|
|
49
|
+
|
|
50
|
+
Read `{BRAND_PATH}/identity/INDEX.md`. If it exists, load all identity chunks.
|
|
51
|
+
Fallback: read `{BRAND_PATH}/identity/IDENTITY.md`. Log: "⚠️ Legacy identity format detected."
|
|
52
|
+
|
|
53
|
+
If neither exists, tell the user to complete the brand identity first.
|
|
40
54
|
|
|
41
|
-
|
|
42
|
-
- Brand identity, screens, and brief
|
|
43
|
-
- The Marketing Asset Factory prompt (04)
|
|
44
|
-
- The launch output template
|
|
55
|
+
### Verbal (selective, chunk-first)
|
|
45
56
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
2. Google Ads (copy, visual direction, CTAs, A/B variants)
|
|
49
|
-
3. Meta/Instagram and TikTok ads
|
|
50
|
-
4. Email sequences (welcome, promo, nurture, re-engagement)
|
|
51
|
-
5. Landing page copy and structure
|
|
52
|
-
6. Social media posts
|
|
53
|
-
7. Sales enablement materials
|
|
54
|
-
8. Content marketing outlines
|
|
57
|
+
Read `{BRAND_PATH}/verbal/INDEX.md`. If it exists, load selective chunks (brand-voice, messaging-matrix, brand-narrative).
|
|
58
|
+
Fallback: read `{BRAND_PATH}/verbal/VERBAL.md`.
|
|
55
59
|
|
|
56
|
-
|
|
60
|
+
### Design (chunk-first)
|
|
57
61
|
|
|
58
|
-
|
|
62
|
+
Read `{PROJECT_PATH}/design/INDEX.md`. If it exists, load all screen chunks.
|
|
63
|
+
Fallback: read `{PROJECT_PATH}/screens/INDEX.md` (legacy path).
|
|
59
64
|
|
|
60
|
-
|
|
65
|
+
### Other
|
|
61
66
|
|
|
62
|
-
|
|
63
|
-
|
|
67
|
+
Read `{PROJECT_PATH}/BRIEF.md` — audience, goals.
|
|
68
|
+
|
|
69
|
+
## Step 2: Spawn campaign director
|
|
70
|
+
|
|
71
|
+
Spawn the `gsp-campaign-director` agent with identity chunks, verbal chunks, screen chunks, and brief. The Marketing Asset Factory prompt (04). The launch output template.
|
|
72
|
+
|
|
73
|
+
**Output path:** `{PROJECT_PATH}/launch/`
|
|
74
|
+
|
|
75
|
+
The agent writes chunks directly:
|
|
76
|
+
- `launch/campaign-strategy.md`
|
|
77
|
+
- `launch/digital-ads.md`
|
|
78
|
+
- `launch/email-sequences.md`
|
|
79
|
+
- `launch/landing-page.md`
|
|
80
|
+
- `launch/social-media.md`
|
|
81
|
+
- `launch/sales-content.md`
|
|
82
|
+
- `launch/INDEX.md`
|
|
83
|
+
- Updates `{PROJECT_PATH}/exports/INDEX.md` (launch section)
|
|
84
|
+
|
|
85
|
+
## Step 3: Update state
|
|
86
|
+
|
|
87
|
+
Update `{PROJECT_PATH}/STATE.md`:
|
|
88
|
+
- Add Launch status to `complete` under the Launch section
|
|
64
89
|
- Record completion date
|
|
65
|
-
- Set Prettiness Level to 100%
|
|
66
90
|
|
|
67
|
-
## Step
|
|
91
|
+
## Step 4: Done
|
|
68
92
|
|
|
69
93
|
Display campaign summary and:
|
|
70
|
-
|
|
71
|
-
🎨 Project is fully pretty! All 8 phases complete.
|
|
72
|
-
|
|
73
|
-
Run /gsp:progress to see the full journey.
|
|
74
|
-
```
|
|
94
|
+
"Launch assets complete! Run `/gsp:progress` to see the full journey."
|
|
75
95
|
</process>
|
|
@@ -1,98 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsp:new-project
|
|
3
|
-
description: Initialize a new design project
|
|
3
|
+
description: Initialize a new design project (redirects to /gsp:new)
|
|
4
4
|
allowed-tools:
|
|
5
5
|
- Read
|
|
6
|
-
- Write
|
|
7
|
-
- Bash
|
|
8
|
-
- AskUserQuestion
|
|
9
6
|
---
|
|
10
|
-
<context>
|
|
11
|
-
You are the GSP (Get Shit Pretty) project initializer. Your job is to gather design requirements through conversational Q&A and produce a complete design brief.
|
|
12
|
-
</context>
|
|
13
|
-
|
|
14
|
-
<objective>
|
|
15
|
-
Initialize a new design project through guided questioning → brief → roadmap → state.
|
|
16
|
-
|
|
17
|
-
**Creates:**
|
|
18
|
-
- `.design/BRIEF.md` — design brief (brand, audience, goals, constraints)
|
|
19
|
-
- `.design/ROADMAP.md` — phase plan (8 phases)
|
|
20
|
-
- `.design/STATE.md` — progress tracking
|
|
21
|
-
- `.design/config.json` — project preferences
|
|
22
|
-
|
|
23
|
-
**After this command:** Run `/gsp:research` to begin the design pipeline.
|
|
24
|
-
</objective>
|
|
25
|
-
|
|
26
|
-
<execution_context>
|
|
27
|
-
@/Users/jubs/.claude/get-shit-pretty/references/questioning.md
|
|
28
|
-
@/Users/jubs/.claude/get-shit-pretty/templates/project.md
|
|
29
|
-
@/Users/jubs/.claude/get-shit-pretty/templates/roadmap.md
|
|
30
|
-
@/Users/jubs/.claude/get-shit-pretty/templates/state.md
|
|
31
|
-
@/Users/jubs/.claude/get-shit-pretty/templates/config.json
|
|
32
|
-
</execution_context>
|
|
33
|
-
|
|
34
7
|
<process>
|
|
35
|
-
## Step 1: Greet and orient
|
|
36
|
-
|
|
37
8
|
Display:
|
|
38
9
|
```
|
|
39
|
-
🎨 GSP —
|
|
40
|
-
Starting new design project...
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
## Step 2: Gather the brief
|
|
44
|
-
|
|
45
|
-
Use the questioning techniques from the reference. Ask in 3 conversational rounds:
|
|
10
|
+
🎨 GSP — Redirecting...
|
|
46
11
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
- Who is it for? (audience)
|
|
50
|
-
- Why does it exist? (business goal, user need)
|
|
51
|
-
- Existing brand? Brand personality?
|
|
52
|
-
- Brands admired / styles to avoid?
|
|
53
|
-
|
|
54
|
-
**Round 2 — Scope & Constraints:**
|
|
55
|
-
- Platforms (web, iOS, Android)?
|
|
56
|
-
- Tech stack preferences?
|
|
57
|
-
- Implementation target — how will designs become code?
|
|
58
|
-
- Using a UI kit? (shadcn/ui → `shadcn`, React Native Reusables → `rn-reusables`)
|
|
59
|
-
- Existing design system already in the codebase? (`existing`)
|
|
60
|
-
- Need Figma handoff? (`figma`)
|
|
61
|
-
- Straight to code with no specific UI kit? (`code`)
|
|
62
|
-
- Skip specs entirely, build directly from screen designs? (`skip`)
|
|
63
|
-
- Default: `code`
|
|
64
|
-
- Key screens/pages needed?
|
|
65
|
-
- Accessibility level (default: WCAG 2.2 AA)?
|
|
66
|
-
- Timeline and constraints?
|
|
67
|
-
|
|
68
|
-
**Round 3 — Success & Gaps:**
|
|
69
|
-
- What does success look like?
|
|
70
|
-
- Any remaining questions based on gaps in rounds 1-2
|
|
71
|
-
|
|
72
|
-
Use inference over interrogation — state assumptions and let them correct. Offer concrete options when answers are vague.
|
|
73
|
-
|
|
74
|
-
## Step 3: Create project structure
|
|
75
|
-
|
|
76
|
-
```bash
|
|
77
|
-
mkdir -p .design/{research,brand,system,screens,specs,review,build,launch}
|
|
12
|
+
/gsp:new-project has been replaced by /gsp:new in GSP 0.4.0.
|
|
13
|
+
/gsp:new is a smart entry point that handles both brand creation and project setup.
|
|
78
14
|
```
|
|
79
15
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
Using the templates, fill in the gathered information:
|
|
83
|
-
1. Write `.design/BRIEF.md` from the project template with all gathered info
|
|
84
|
-
2. Write `.design/ROADMAP.md` from the roadmap template with project name and date
|
|
85
|
-
3. Write `.design/STATE.md` from the state template
|
|
86
|
-
4. Write `.design/config.json` from the config template with preferences (including `implementation_target` from Round 2)
|
|
87
|
-
|
|
88
|
-
## Step 5: Confirm and route
|
|
89
|
-
|
|
90
|
-
Display a summary of the brief and confirm with the user. Show:
|
|
91
|
-
- Project name and type
|
|
92
|
-
- Brand personality
|
|
93
|
-
- Target audience
|
|
94
|
-
- Key deliverables
|
|
95
|
-
- Phase roadmap overview
|
|
96
|
-
|
|
97
|
-
End with: "Run `/gsp:research` to begin trend analysis, or `/gsp:brand` to jump straight to brand identity."
|
|
16
|
+
Tell the user to run `/gsp:new` instead.
|
|
98
17
|
</process>
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsp:new
|
|
3
|
+
description: Start a new brand or design project — smart entry point
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Write
|
|
7
|
+
- Bash
|
|
8
|
+
- AskUserQuestion
|
|
9
|
+
- Glob
|
|
10
|
+
- Grep
|
|
11
|
+
- Agent
|
|
12
|
+
---
|
|
13
|
+
<context>
|
|
14
|
+
You are the GSP (Get Shit Pretty) entry point — a design lead starting a first call with a client. You scan the codebase and `.design/` directory, greet the user with what you found, and flow naturally into the right workflow.
|
|
15
|
+
|
|
16
|
+
GSP uses a dual-diamond architecture:
|
|
17
|
+
- **Diamond 1 — Branding** (5 commands, 6 phases): [brand-audit] → brand-research → brand-strategy → brand-identity → brand-patterns
|
|
18
|
+
- **Diamond 2 — Project** (6 phases): brief → research → design → critique → build → review
|
|
19
|
+
- **Optional:** launch (on request)
|
|
20
|
+
|
|
21
|
+
Multiple brands and projects can coexist. Projects reference a brand.
|
|
22
|
+
</context>
|
|
23
|
+
|
|
24
|
+
<objective>
|
|
25
|
+
Through 2-3 rounds of natural conversation, gather a complete brief and create the right project structure (brand, project, or both). Route the user to their first phase command.
|
|
26
|
+
</objective>
|
|
27
|
+
|
|
28
|
+
<execution_context>
|
|
29
|
+
@/Users/jubs/.claude/get-shit-pretty/references/questioning.md
|
|
30
|
+
@/Users/jubs/.claude/get-shit-pretty/templates/branding/brief.md
|
|
31
|
+
@/Users/jubs/.claude/get-shit-pretty/templates/branding/state.md
|
|
32
|
+
@/Users/jubs/.claude/get-shit-pretty/templates/branding/config.json
|
|
33
|
+
@/Users/jubs/.claude/get-shit-pretty/templates/branding/roadmap.md
|
|
34
|
+
@/Users/jubs/.claude/get-shit-pretty/templates/projects/brief.md
|
|
35
|
+
@/Users/jubs/.claude/get-shit-pretty/templates/projects/state.md
|
|
36
|
+
@/Users/jubs/.claude/get-shit-pretty/templates/projects/config.json
|
|
37
|
+
@/Users/jubs/.claude/get-shit-pretty/templates/projects/roadmap.md
|
|
38
|
+
@/Users/jubs/.claude/get-shit-pretty/templates/codebase-inventory.md
|
|
39
|
+
@/Users/jubs/.claude/get-shit-pretty/templates/exports-index.md
|
|
40
|
+
</execution_context>
|
|
41
|
+
|
|
42
|
+
<questioning_principles>
|
|
43
|
+
Follow these principles throughout all conversations:
|
|
44
|
+
|
|
45
|
+
1. **Inference over interrogation** — state assumptions, let them correct. "SaaS dashboard for enterprise" → you already know: professional, data-dense, web-first.
|
|
46
|
+
2. **Progressive disclosure** — don't dump all questions at once. Flow in natural rounds.
|
|
47
|
+
3. **Concrete options over open-ended** — "More like Stripe's clean approach or Duolingo's playful style?" beats "What style do you want?"
|
|
48
|
+
4. **Know when you have enough** — fill gaps with smart defaults. Don't over-ask.
|
|
49
|
+
5. **One message per round** — ask a cohesive set of related questions, not one at a time.
|
|
50
|
+
</questioning_principles>
|
|
51
|
+
|
|
52
|
+
<process>
|
|
53
|
+
## Step 1: Scan and greet (parallel)
|
|
54
|
+
|
|
55
|
+
### Step 1a: Scan `.design/` (sync — fast)
|
|
56
|
+
|
|
57
|
+
Scan `.design/` for existing brands and projects:
|
|
58
|
+
- Check `.design/branding/` for brand directories (each has a `config.json` with `project_type: "brand"`)
|
|
59
|
+
- Check `.design/projects/` for project directories (each has a `config.json` with `project_type: "design"`)
|
|
60
|
+
- Check for legacy flat `.design/config.json` at root (pre-0.4.0 structure)
|
|
61
|
+
- For each brand/project found, read its `config.json` to get phase statuses
|
|
62
|
+
- If `.design/CHANGELOG.md` doesn't exist, create it from `templates/changelog.md`
|
|
63
|
+
|
|
64
|
+
### Step 1b: Spawn codebase scanner (background)
|
|
65
|
+
|
|
66
|
+
Spawn the `gsp-codebase-scanner` agent with `run_in_background: true`:
|
|
67
|
+
- Use `subagent_type: "Explore"` with the scanner's methodology
|
|
68
|
+
- Prompt: "Scan this codebase following the gsp-codebase-scanner methodology. Return a structured report with classification, tech stack, components, tokens, architecture patterns, conventions, and key paths. Read `.design/CHANGELOG.md` and scan `.design/projects/*/STATE.md` for sibling project context. If no package.json exists, return a minimal greenfield report."
|
|
69
|
+
- Store the task reference — you'll consume results in Step 3 Round 2 or Step 4.
|
|
70
|
+
|
|
71
|
+
### Step 1c: Greet
|
|
72
|
+
|
|
73
|
+
Greet based on `.design/` findings from Step 1a. No menus, no formal option lists — just talk.
|
|
74
|
+
|
|
75
|
+
If a `package.json` exists (quick check via glob — don't wait for the full scan), add to the greeting: "I'm scanning your codebase in the background — I'll factor in what I find."
|
|
76
|
+
|
|
77
|
+
Adapt the greeting based on what the scan revealed:
|
|
78
|
+
|
|
79
|
+
**Fresh start (no `.design/`):**
|
|
80
|
+
```
|
|
81
|
+
🎨 GSP — Get Shit Pretty
|
|
82
|
+
|
|
83
|
+
Looks like a fresh start! Tell me about what you're building — I'll figure out whether we need brand work, a design project, or both.
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
**Legacy `.design/` detected (flat structure, pre-0.4.0):**
|
|
87
|
+
Acknowledge the legacy project, note it still works with current commands. Offer to start a new brand or project alongside it using the new dual-diamond structure.
|
|
88
|
+
|
|
89
|
+
**Brands exist, no projects:**
|
|
90
|
+
Show existing brands with status. Then: "Want to start a design project with one of these, or create a new brand?"
|
|
91
|
+
|
|
92
|
+
**Brands + projects exist:**
|
|
93
|
+
Show a brief overview of brands and projects with status. Then: "Starting something new, or continuing work on one of these?" If continuing → route to `/gsp:progress`.
|
|
94
|
+
|
|
95
|
+
**Codebase signals found (any state):**
|
|
96
|
+
Weave in what you found: "I see you've got a [Next.js/React Native/etc.] project here with [Tailwind/shadcn/etc.] — I'll factor that into the design scope."
|
|
97
|
+
|
|
98
|
+
**Important:** Only use `AskUserQuestion` if there's genuine ambiguity that can't be resolved conversationally — e.g., picking between 3+ existing brands. For the initial "what are you building?" — just ask in prose and let them answer naturally.
|
|
99
|
+
|
|
100
|
+
## Step 2: Route based on conversation
|
|
101
|
+
|
|
102
|
+
From the greeting exchange, determine which flow to run:
|
|
103
|
+
|
|
104
|
+
- **Brand identity (new)** → Brand flow (Step 3) with `brand_mode: "new"`
|
|
105
|
+
- **Brand identity (evolve)** → Brand flow (Step 3) with `brand_mode: "evolve"`. Detect evolve signals: user mentions existing brand, assets, guidelines, rebrand, refresh, modernize, evolve, update, redesign.
|
|
106
|
+
- **Design project** → Check for brands first. If none exist, explain they need a brand first. Offer to create one, then auto-transition to project flow.
|
|
107
|
+
- **Full design (brand + project)** → Brand flow (Step 3), with E2E flag so brand completion auto-transitions to project flow (Step 4)
|
|
108
|
+
- **Continue existing work** → route to `/gsp:progress`
|
|
109
|
+
|
|
110
|
+
## Step 3: Brand flow
|
|
111
|
+
|
|
112
|
+
1. Ask for brand name (kebab-case, e.g., "acme-corp")
|
|
113
|
+
2. Create directory structure:
|
|
114
|
+
```bash
|
|
115
|
+
mkdir -p .design/branding/{name}/{audit,discover,strategy,verbal,identity,system}
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
3. Gather brand brief in 2 rounds:
|
|
119
|
+
|
|
120
|
+
**Round 1 — Core:**
|
|
121
|
+
- Company name, industry, founding story
|
|
122
|
+
- Target audience (primary + secondary)
|
|
123
|
+
- Brand personality — how should the brand feel? Offer concrete comparisons: "More like Stripe's precision or Mailchimp's warmth?"
|
|
124
|
+
- Mission and vision
|
|
125
|
+
- Brands admired / styles to avoid
|
|
126
|
+
- What the brand should NEVER be
|
|
127
|
+
|
|
128
|
+
Use inference: if they say "fintech for Gen Z" → infer modern, mobile-first, bold. State your inferences and let them correct.
|
|
129
|
+
|
|
130
|
+
**Round 2 — Gaps & constraints:**
|
|
131
|
+
- Existing brand assets? (logo, colors, guidelines)
|
|
132
|
+
- Competitive landscape — who are the main competitors?
|
|
133
|
+
- Timeline and budget constraints
|
|
134
|
+
- Any non-negotiables?
|
|
135
|
+
- **Check background scan:** If the codebase scanner has returned results, weave tech findings into the conversation naturally — e.g., "I see you're running Next.js with Tailwind and shadcn — that'll inform the design system." If not done yet, continue without — results will be available by Step 4.
|
|
136
|
+
- State your understanding back: "Here's what I'm hearing: [summary]. Anything I'm missing?"
|
|
137
|
+
|
|
138
|
+
**Evolve mode additions (when `brand_mode` is `evolve`):**
|
|
139
|
+
Add to Round 2:
|
|
140
|
+
- Current brand age — how long has the current brand been in use?
|
|
141
|
+
- Existing guidelines? — do they have a brand book, style guide, or guidelines doc?
|
|
142
|
+
- Brand equity — what's working well with the current brand?
|
|
143
|
+
- Pain points — what's not working or feels outdated?
|
|
144
|
+
- Evolution scope — what should be preserved vs evolved vs replaced?
|
|
145
|
+
|
|
146
|
+
Fill in the Brand Mode and Existing Brand State sections of the brief template.
|
|
147
|
+
|
|
148
|
+
Skip or compress rounds if the user gives enough upfront. Don't over-ask.
|
|
149
|
+
|
|
150
|
+
4. Write artifacts:
|
|
151
|
+
- `.design/branding/{name}/BRIEF.md` from brand brief template
|
|
152
|
+
- `.design/branding/{name}/STATE.md` from brand state template
|
|
153
|
+
- `.design/branding/{name}/config.json` from brand config template
|
|
154
|
+
- `.design/branding/{name}/ROADMAP.md` from brand roadmap template
|
|
155
|
+
|
|
156
|
+
5. Set `brand_mode` in config.json based on Step 2 routing decision.
|
|
157
|
+
|
|
158
|
+
6. Route:
|
|
159
|
+
- **Brand-only, new →** "Run `/gsp:brand-research` to start brand research."
|
|
160
|
+
- **Brand-only, evolve →** "Let's audit your current brand first. Run `/gsp:brand-audit`."
|
|
161
|
+
- **E2E, new →** "Brand brief created. Now let's scope the design project." → continue to Step 4.
|
|
162
|
+
- **E2E, evolve →** "Brand brief created. Run `/gsp:brand-audit` to audit your existing brand first, then we'll scope the design project."
|
|
163
|
+
|
|
164
|
+
## Step 4: Project flow
|
|
165
|
+
|
|
166
|
+
1. Show available brands:
|
|
167
|
+
```
|
|
168
|
+
Available brands:
|
|
169
|
+
• acme-corp (complete — all 5 phases)
|
|
170
|
+
• beta-labs (in progress — 2/5 phases)
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
If no brands exist, explain that a brand is needed first and offer to create one.
|
|
174
|
+
If only one complete brand exists, suggest it as default.
|
|
175
|
+
|
|
176
|
+
2. User selects a brand.
|
|
177
|
+
|
|
178
|
+
3. Ask for project name (kebab-case, e.g., "acme-website")
|
|
179
|
+
|
|
180
|
+
4. Create directory structure:
|
|
181
|
+
```bash
|
|
182
|
+
mkdir -p .design/projects/{name}/{brief,research,design,critique,build,review,codebase,exports}
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Detect git context
|
|
186
|
+
|
|
187
|
+
1. Run `git branch --show-current` to detect current branch
|
|
188
|
+
2. If a branch is detected, present it: "I see you're on `{branch}` — I'll track this as the project branch."
|
|
189
|
+
3. Let user confirm or provide a different branch name
|
|
190
|
+
4. Store in config.json `git.branch` and STATE.md `## Git` table
|
|
191
|
+
5. If no git repo detected, skip silently — leave fields as "—"
|
|
192
|
+
|
|
193
|
+
5. Write `brand.ref`:
|
|
194
|
+
```
|
|
195
|
+
brand: {brand-name}
|
|
196
|
+
path: ../../branding/{brand-name}/
|
|
197
|
+
consumed_at: {ISO_DATE}
|
|
198
|
+
identity_hash: {first 8 chars of md5 of IDENTITY.md content, or "pending" if identity not complete}
|
|
199
|
+
```
|
|
200
|
+
Write to `.design/projects/{name}/brand.ref`
|
|
201
|
+
|
|
202
|
+
6. Consume background scan results:
|
|
203
|
+
- Retrieve the codebase scanner's structured report (guaranteed done by now — conversation has been going for multiple rounds)
|
|
204
|
+
- If **greenfield**: no INVENTORY.md needed, note classification for config.json
|
|
205
|
+
- If **boilerplate** or **existing**: write INVENTORY.md to `.design/projects/{name}/codebase/INVENTORY.md` using the scanner's report and the `templates/codebase-inventory.md` template
|
|
206
|
+
- Auto-infer `implementation_target` from the scanner's tech stack and components
|
|
207
|
+
|
|
208
|
+
7. Gather project brief in 2 rounds:
|
|
209
|
+
|
|
210
|
+
**Round 1 — What we're building:**
|
|
211
|
+
- What are we building? (app, website, dashboard, etc.)
|
|
212
|
+
- Present background scan findings: "I found a {classification} {framework} project with {details}. Want to build on that?"
|
|
213
|
+
- Platforms (web, iOS, Android)?
|
|
214
|
+
- Tech stack preferences? (confirm inferred or ask)
|
|
215
|
+
- Implementation target (present options based on codebase analysis)
|
|
216
|
+
- Design scope (full | partial | tokens)
|
|
217
|
+
- Key screens/flows needed?
|
|
218
|
+
|
|
219
|
+
Use inference from the codebase scan — don't re-ask what you can already see.
|
|
220
|
+
|
|
221
|
+
**Round 2 — Success & gaps:**
|
|
222
|
+
- Success criteria
|
|
223
|
+
- Timeline, constraints
|
|
224
|
+
- Any remaining gaps
|
|
225
|
+
- State your understanding back: "Here's what I'm hearing: [summary]. Anything I'm missing?"
|
|
226
|
+
|
|
227
|
+
Skip or compress rounds if the user gives enough upfront. Don't over-ask.
|
|
228
|
+
|
|
229
|
+
8. Write artifacts:
|
|
230
|
+
- `.design/projects/{name}/BRIEF.md` from project brief template
|
|
231
|
+
- `.design/projects/{name}/STATE.md` from project state template — populate `## Git` table with detected/confirmed branch (or "—")
|
|
232
|
+
- `.design/projects/{name}/config.json` from project config template (include `brand_ref` field) — populate `git.branch` with detected/confirmed branch (or empty string)
|
|
233
|
+
- `.design/projects/{name}/ROADMAP.md` from project roadmap template
|
|
234
|
+
- `.design/projects/{name}/exports/INDEX.md` from exports-index template
|
|
235
|
+
|
|
236
|
+
9. Route: "Run `/gsp:brief` to scope the project. Treat this project as a bounded issue (or set of issues) and a PR — ship small, ship complete."
|
|
237
|
+
</process>
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: gsp:plan
|
|
3
|
+
description: Project scoping (alias for /gsp:brief)
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
---
|
|
7
|
+
<process>
|
|
8
|
+
Display:
|
|
9
|
+
```
|
|
10
|
+
🎨 GSP — Redirecting...
|
|
11
|
+
|
|
12
|
+
/gsp:plan now redirects to /gsp:brief in GSP 0.4.0.
|
|
13
|
+
The brief phase handles project scoping, adaptations, and gap analysis.
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Tell the user to run `/gsp:brief` instead.
|
|
17
|
+
</process>
|
|
18
|
+
</output>
|
package/commands/gsp/progress.md
CHANGED
|
@@ -1,61 +1,93 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: gsp:progress
|
|
3
|
-
description: Check design
|
|
3
|
+
description: Check design progress — "How pretty are we?"
|
|
4
4
|
allowed-tools:
|
|
5
5
|
- Read
|
|
6
6
|
- Glob
|
|
7
7
|
---
|
|
8
8
|
<context>
|
|
9
|
-
Status check for GSP design projects.
|
|
9
|
+
Status check for GSP design projects. Shows progress for all brands and projects with prettiness meters.
|
|
10
10
|
</context>
|
|
11
11
|
|
|
12
12
|
<objective>
|
|
13
|
-
Display current
|
|
13
|
+
Display current progress across all brands and projects.
|
|
14
14
|
</objective>
|
|
15
15
|
|
|
16
16
|
<process>
|
|
17
|
-
## Step 1:
|
|
17
|
+
## Step 1: Scan for instances
|
|
18
18
|
|
|
19
|
-
Check for `.design/
|
|
19
|
+
Check `.design/branding/` for brand directories and `.design/projects/` for project directories.
|
|
20
20
|
|
|
21
|
-
If
|
|
22
|
-
|
|
23
|
-
No GSP project found. Run
|
|
24
|
-
```
|
|
21
|
+
If neither found, check for legacy `.design/STATE.md`:
|
|
22
|
+
- If found: show legacy progress (same as v0.3.0)
|
|
23
|
+
- If not: display "No GSP project found. Run `/gsp:new` to start one."
|
|
25
24
|
|
|
26
|
-
## Step 2: Read state
|
|
25
|
+
## Step 2: Read state for each instance
|
|
27
26
|
|
|
28
|
-
|
|
27
|
+
For each brand: read `STATE.md` and `BRIEF.md`
|
|
28
|
+
For each project: read `STATE.md`, `BRIEF.md`, and `brand.ref`
|
|
29
29
|
|
|
30
30
|
## Step 3: Calculate prettiness
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Brands: count completed/skipped phases out of 5
|
|
33
|
+
Projects: count completed/skipped phases out of 6
|
|
33
34
|
|
|
34
35
|
## Step 4: Display progress
|
|
35
36
|
|
|
36
37
|
```
|
|
37
38
|
🎨 GSP — How Pretty Are We?
|
|
38
39
|
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
─── Brands ────────────────────────────
|
|
41
|
+
|
|
42
|
+
acme-corp
|
|
43
|
+
████████████████ 100% (5/5 phases)
|
|
44
|
+
✅ Research ✅ Strategy ✅ Verbal ✅ Identity ✅ Patterns
|
|
45
|
+
|
|
46
|
+
beta-labs
|
|
47
|
+
██████░░░░░░░░░░ 40% (2/5 phases)
|
|
48
|
+
✅ Research ✅ Strategy ⬜ Verbal ⬜ Identity ⬜ Patterns
|
|
49
|
+
→ Next: /gsp:brand-identity
|
|
50
|
+
|
|
51
|
+
─── Projects ──────────────────────────
|
|
52
|
+
|
|
53
|
+
acme-website (brand: acme-corp)
|
|
54
|
+
██████████░░░░░░ 66% (4/6 phases)
|
|
55
|
+
✅ Brief ✅ Research ✅ Design ✅ Critique ⬜ Build ⬜ Review
|
|
56
|
+
→ Next: /gsp:build
|
|
41
57
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
✅
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
⬜ 5. Spec — pending
|
|
48
|
-
⬜ 6. Review — pending
|
|
49
|
-
⬜ 7. Build — pending
|
|
50
|
-
⬜ 8. Launch — pending
|
|
58
|
+
acme-mobile (brand: acme-corp)
|
|
59
|
+
███░░░░░░░░░░░░░ 16% (1/6 phases)
|
|
60
|
+
✅ Brief ⬜ Research ⬜ Design ⬜ Critique ⬜ Build ⬜ Review
|
|
61
|
+
→ Next: /gsp:research
|
|
62
|
+
📦 Launch: complete
|
|
51
63
|
|
|
52
|
-
|
|
64
|
+
─── Overall ───────────────────────────
|
|
65
|
+
|
|
66
|
+
Brands: 1 complete, 1 in progress
|
|
67
|
+
Projects: 0 complete, 2 in progress
|
|
53
68
|
```
|
|
54
69
|
|
|
55
70
|
Use ✅ for complete, ⏭️ for skipped, 🔄 for in-progress/needs-revision, ⬜ for pending.
|
|
56
71
|
|
|
72
|
+
Show Launch status separately if present (not counted in phase progress).
|
|
73
|
+
|
|
57
74
|
## Step 5: Route next
|
|
58
75
|
|
|
59
|
-
|
|
60
|
-
|
|
76
|
+
For each in-progress instance, identify the next pending phase and suggest the command:
|
|
77
|
+
|
|
78
|
+
**Brand routing:**
|
|
79
|
+
- Phase 1 (Research) pending → `/gsp:brand-research`
|
|
80
|
+
- Phase 2 (Strategy) pending → `/gsp:brand-strategy`
|
|
81
|
+
- Phase 3 or 4 (Verbal/Identity) pending → `/gsp:brand-identity` (handles both phases with skip logic)
|
|
82
|
+
- Phase 5 (Patterns) pending → `/gsp:brand-patterns`
|
|
83
|
+
|
|
84
|
+
**Project routing:**
|
|
85
|
+
- Brief pending → `/gsp:brief`
|
|
86
|
+
- Research pending → `/gsp:research`
|
|
87
|
+
- Design pending → `/gsp:design`
|
|
88
|
+
- Critique pending → `/gsp:critique`
|
|
89
|
+
- Build pending → `/gsp:build`
|
|
90
|
+
- Review pending → `/gsp:review`
|
|
91
|
+
|
|
92
|
+
If everything is complete: "All brands and projects are fully pretty! 🎨"
|
|
61
93
|
</process>
|