get-shit-pretty 0.7.0 → 0.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +301 -124
- package/bin/install.js +1 -1
- package/gsp/agents/gsp-accessibility-auditor.md +1 -60
- package/gsp/agents/gsp-brand-auditor.md +1 -61
- package/gsp/agents/gsp-brand-creative-director.md +10 -0
- package/gsp/agents/gsp-brand-engineer.md +1 -122
- package/gsp/agents/gsp-brand-researcher.md +11 -0
- package/gsp/agents/gsp-brand-strategist.md +1 -65
- package/gsp/agents/gsp-project-builder.md +17 -0
- package/gsp/agents/gsp-project-critic.md +11 -0
- package/gsp/agents/gsp-project-designer.md +11 -0
- package/gsp/agents/gsp-project-researcher.md +1 -74
- package/gsp/agents/gsp-project-reviewer.md +12 -0
- package/gsp/hooks/hooks.json +32 -14
- package/gsp/skills/get-shit-pretty/SKILL.md +2 -5
- package/gsp/skills/gsp-accessibility/SKILL.md +0 -1
- package/gsp/skills/gsp-accessibility-audit/SKILL.md +9 -8
- package/gsp/skills/gsp-accessibility-audit/methodology/gsp-accessibility-auditor.md +59 -0
- package/gsp/skills/gsp-add-reference/SKILL.md +0 -1
- package/gsp/skills/gsp-art/SKILL.md +13 -10
- package/gsp/skills/gsp-brand-audit/SKILL.md +4 -2
- package/gsp/skills/gsp-brand-audit/methodology/gsp-brand-auditor.md +61 -0
- package/gsp/skills/gsp-brand-brief/SKILL.md +129 -0
- package/gsp/skills/gsp-brand-guidelines/SKILL.md +13 -11
- package/gsp/skills/gsp-brand-guidelines/methodology/gsp-brand-engineer.md +122 -0
- package/gsp/skills/gsp-brand-identity/SKILL.md +19 -18
- package/gsp/{agents/gsp-creative-director.md → skills/gsp-brand-identity/methodology/gsp-brand-creative-director.md} +0 -9
- package/gsp/skills/gsp-brand-refine/SKILL.md +0 -1
- package/gsp/skills/gsp-brand-research/SKILL.md +13 -13
- package/gsp/{agents/gsp-researcher.md → skills/gsp-brand-research/methodology/gsp-brand-researcher.md} +0 -10
- package/gsp/skills/gsp-brand-strategy/SKILL.md +14 -14
- package/gsp/skills/gsp-brand-strategy/methodology/gsp-brand-strategist.md +65 -0
- package/gsp/skills/gsp-brand-sync/SKILL.md +60 -10
- package/gsp/skills/gsp-color/SKILL.md +0 -1
- package/gsp/skills/gsp-design-system/SKILL.md +0 -1
- package/gsp/skills/gsp-doctor/SKILL.md +0 -1
- package/gsp/skills/gsp-help/SKILL.md +10 -7
- package/gsp/skills/gsp-icons/SKILL.md +0 -1
- package/gsp/skills/gsp-logo/SKILL.md +0 -1
- package/gsp/skills/gsp-phase-transition/SKILL.md +0 -3
- package/gsp/skills/gsp-pretty/SKILL.md +25 -24
- package/gsp/skills/gsp-progress/SKILL.md +0 -1
- package/gsp/skills/gsp-project-brief/SKILL.md +51 -22
- package/gsp/skills/gsp-project-build/SKILL.md +216 -74
- package/gsp/skills/gsp-project-build/bento-grid.md +114 -0
- package/gsp/{agents/gsp-builder.md → skills/gsp-project-build/methodology/gsp-project-builder.md} +14 -16
- package/gsp/skills/gsp-project-critique/SKILL.md +21 -17
- package/gsp/{agents/gsp-critic.md → skills/gsp-project-critique/methodology/gsp-project-critic.md} +0 -11
- package/gsp/skills/gsp-project-design/SKILL.md +9 -6
- package/gsp/{agents/gsp-designer.md → skills/gsp-project-design/methodology/gsp-project-designer.md} +0 -11
- package/gsp/skills/gsp-project-research/SKILL.md +4 -2
- package/gsp/skills/gsp-project-research/methodology/gsp-project-researcher.md +73 -0
- package/gsp/skills/gsp-project-review/SKILL.md +8 -5
- package/gsp/{agents/gsp-reviewer.md → skills/gsp-project-review/methodology/gsp-project-reviewer.md} +0 -12
- package/gsp/skills/gsp-scaffold/SKILL.md +0 -1
- package/gsp/skills/gsp-start/SKILL.md +59 -210
- package/gsp/skills/gsp-style/SKILL.md +1 -2
- package/gsp/skills/gsp-style/styles/INDEX.yml +7 -1
- package/gsp/skills/gsp-style/styles/academia.md +751 -787
- package/gsp/skills/gsp-style/styles/art-deco.md +316 -352
- package/gsp/skills/gsp-style/styles/bauhaus.md +189 -225
- package/gsp/skills/gsp-style/styles/bold-typography.md +433 -469
- package/gsp/skills/gsp-style/styles/botanical.md +141 -177
- package/gsp/skills/gsp-style/styles/claymorphism.md +377 -413
- package/gsp/skills/gsp-style/styles/cyberpunk.md +419 -455
- package/gsp/skills/gsp-style/styles/enterprise.md +224 -260
- package/gsp/skills/gsp-style/styles/flat-design.md +119 -155
- package/gsp/skills/gsp-style/styles/fluent.md +0 -31
- package/gsp/skills/gsp-style/styles/glassmorphism.md +0 -36
- package/gsp/skills/gsp-style/styles/humanist-literary.md +0 -28
- package/gsp/skills/gsp-style/styles/industrial.md +406 -438
- package/gsp/skills/gsp-style/styles/kinetic.md +531 -563
- package/gsp/skills/gsp-style/styles/liquid-glass.md +0 -36
- package/gsp/skills/gsp-style/styles/luxury.md +402 -438
- package/gsp/skills/gsp-style/styles/material.md +555 -591
- package/gsp/skills/gsp-style/styles/maximalism.md +875 -911
- package/gsp/skills/gsp-style/styles/minimal-dark.md +442 -478
- package/gsp/skills/gsp-style/styles/modern-dark.md +390 -426
- package/gsp/skills/gsp-style/styles/monochrome.md +472 -504
- package/gsp/skills/gsp-style/styles/neubrutalism.md +354 -390
- package/gsp/skills/gsp-style/styles/neumorphism.md +195 -231
- package/gsp/skills/gsp-style/styles/newsprint.md +529 -565
- package/gsp/skills/gsp-style/styles/nothing.md +445 -0
- package/gsp/skills/gsp-style/styles/nothing.yml +146 -0
- package/gsp/skills/gsp-style/styles/organic.md +177 -213
- package/gsp/skills/gsp-style/styles/playful-geometric.md +211 -247
- package/gsp/skills/gsp-style/styles/professional.md +503 -539
- package/gsp/skills/gsp-style/styles/retro.md +664 -700
- package/gsp/skills/gsp-style/styles/saas.md +490 -526
- package/gsp/skills/gsp-style/styles/sketch.md +189 -225
- package/gsp/skills/gsp-style/styles/swiss-minimalist.md +195 -227
- package/gsp/skills/gsp-style/styles/terminal.md +99 -135
- package/gsp/skills/gsp-style/styles/vaporwave.md +356 -392
- package/gsp/skills/gsp-style/styles/web3.md +337 -373
- package/gsp/skills/gsp-typography/SKILL.md +0 -1
- package/gsp/skills/gsp-update/SKILL.md +0 -1
- package/gsp/skills/gsp-visuals/SKILL.md +0 -1
- package/gsp/templates/branding/config.json +3 -2
- package/gsp/templates/exports-index.md +0 -7
- package/gsp/templates/phases/build.md +13 -4
- package/gsp/templates/projects/config.json +3 -2
- package/gsp/templates/projects/roadmap.md +0 -7
- package/gsp/templates/projects/state.md +0 -4
- package/package.json +1 -1
- package/scripts/lint-check.sh +1 -1
- package/gsp/agents/gsp-ascii-artist.md +0 -66
- package/gsp/agents/gsp-brand-syncer.md +0 -126
- package/gsp/agents/gsp-campaign-director.md +0 -79
- package/gsp/agents/gsp-scoper.md +0 -85
- package/gsp/skills/gsp-launch/SKILL.md +0 -97
- package/gsp/skills/gsp-start/questioning.md +0 -87
- package/gsp/templates/phases/launch.md +0 -55
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
name: gsp-start
|
|
3
3
|
description: Start here — picks up where you left off
|
|
4
4
|
user-invocable: true
|
|
5
|
-
model: sonnet
|
|
6
5
|
allowed-tools:
|
|
7
6
|
- Read
|
|
8
7
|
- Write
|
|
@@ -10,69 +9,60 @@ allowed-tools:
|
|
|
10
9
|
- AskUserQuestion
|
|
11
10
|
- Glob
|
|
12
11
|
- Grep
|
|
13
|
-
- Agent
|
|
14
|
-
- WebSearch
|
|
15
|
-
- WebFetch
|
|
16
12
|
---
|
|
17
13
|
<context>
|
|
18
|
-
You are the GSP (Get Shit Pretty) entry point — a
|
|
14
|
+
You are the GSP (Get Shit Pretty) entry point — a concierge that scans the workspace, shows what exists, and routes the user to the right workflow.
|
|
19
15
|
|
|
20
16
|
GSP uses a dual-diamond architecture:
|
|
21
|
-
- **Diamond 1 — Branding** (4 skills, 4 phases): brand-research → brand-strategy → brand-identity → brand-
|
|
22
|
-
- **Diamond 2 — Project** (6 phases): brief → research → design → critique → build → review
|
|
23
|
-
- **Optional:** launch (on request)
|
|
17
|
+
- **Diamond 1 — Branding** (4 skills, 4 phases): brand-brief → brand-research → brand-strategy → brand-identity → brand-guidelines (optional: brand-audit before research for existing brands)
|
|
18
|
+
- **Diamond 2 — Project** (6 phases): project-brief → research → design → critique → build → review
|
|
24
19
|
|
|
25
20
|
Multiple brands and projects can coexist. Projects reference a brand.
|
|
26
21
|
</context>
|
|
27
22
|
|
|
28
23
|
<objective>
|
|
29
|
-
|
|
24
|
+
Detect workspace state, greet the user with what you found, and route to the right skill. No questioning, no agents, no heavy scanning — just detect and route.
|
|
30
25
|
</objective>
|
|
31
26
|
|
|
32
|
-
<execution_context>
|
|
33
|
-
@${CLAUDE_SKILL_DIR}/questioning.md
|
|
34
|
-
</execution_context>
|
|
35
|
-
|
|
36
27
|
<rules>
|
|
37
28
|
- Never infer the user's name from package metadata, git config, or file paths — those are authors, not the current user.
|
|
38
29
|
- Always use `AskUserQuestion` for user-facing questions — never raw text prompts.
|
|
30
|
+
- One decision per question — never batch multiple questions in a single message.
|
|
39
31
|
</rules>
|
|
40
32
|
|
|
41
|
-
<questioning_principles>
|
|
42
|
-
Follow these principles throughout all conversations:
|
|
43
|
-
|
|
44
|
-
1. **One decision per question** — every question must be its own `AskUserQuestion` call with exactly one decision. Never group multiple questions into a single message. Ask, wait for the answer, then ask the next thing.
|
|
45
|
-
2. **Never re-ask** — if the user already answered something (in this phase or a prior one), don't ask again. If you need to validate, confirm: "I see X from earlier — still accurate?" The user should never feel like they're repeating themselves.
|
|
46
|
-
3. **Inference over interrogation** — state assumptions, let them correct. "SaaS dashboard for enterprise" → you already know: professional, data-dense, web-first.
|
|
47
|
-
4. **Adapt and skip** — use each answer to inform the next question. If an answer reveals enough to skip a later question, skip it. Don't follow a rigid checklist.
|
|
48
|
-
5. **Concrete options over open-ended** — "More like Stripe's clean approach or Duolingo's playful style?" beats "What style do you want?"
|
|
49
|
-
6. **Know when you have enough** — fill gaps with smart defaults. Don't over-ask.
|
|
50
|
-
</questioning_principles>
|
|
51
|
-
|
|
52
33
|
<process>
|
|
53
|
-
## Step 1: Scan
|
|
34
|
+
## Step 1: Scan workspace
|
|
54
35
|
|
|
55
|
-
### Step 1a: Scan `.design/`
|
|
36
|
+
### Step 1a: Scan `.design/` state
|
|
56
37
|
|
|
57
38
|
Scan `.design/` for existing brands and projects:
|
|
58
39
|
- Check `.design/branding/` for brand directories (each has a `config.json` with `project_type: "brand"`)
|
|
59
40
|
- Check `.design/projects/` for project directories (each has a `config.json` with `project_type: "design"`)
|
|
60
41
|
- Check for legacy flat `.design/config.json` at root (pre-0.4.0 structure)
|
|
61
42
|
- For each brand/project found, read its `config.json` to get phase statuses
|
|
62
|
-
- **Migration:** For each brand, if `{brand}/system/` exists but `{brand}/patterns/` does not, rename via `mv {brand}/system/ {brand}/patterns/` and log: "Migrated {brand} system/ → patterns/"
|
|
63
|
-
- If `.design/CHANGELOG.md` doesn't exist, create it from `templates/changelog.md`
|
|
64
43
|
|
|
65
|
-
### Step 1b:
|
|
44
|
+
### Step 1b: Quick codebase check (inline — no agents)
|
|
45
|
+
|
|
46
|
+
If `package.json` exists, read it to extract:
|
|
47
|
+
- **Framework** (Next.js, Vite, Expo, etc.)
|
|
48
|
+
- **Styling** (Tailwind, CSS Modules, styled-components, etc.)
|
|
49
|
+
- **Component library** (shadcn/ui, Radix, MUI, etc.)
|
|
50
|
+
- **Classification:** greenfield (no custom code), boilerplate (scaffolded), or existing (real code)
|
|
51
|
+
|
|
52
|
+
Quick glob for component count: `src/components/**/*` or `components/**/*`.
|
|
66
53
|
|
|
67
|
-
|
|
54
|
+
Also scan for brand-relevant assets:
|
|
55
|
+
- Logo files: glob for `**/logo*.{svg,png}`, `**/icon*.{svg,png}` in public/assets directories
|
|
56
|
+
- Font files: glob for `**/*.{woff,woff2,ttf,otf}` in public/fonts or similar
|
|
57
|
+
- Color definitions: check `globals.css` or `global.css` for CSS custom properties
|
|
68
58
|
|
|
69
|
-
|
|
59
|
+
This is 2-4 fast reads — no agent spawn needed.
|
|
70
60
|
|
|
71
|
-
|
|
61
|
+
## Step 2: Greet
|
|
72
62
|
|
|
73
|
-
|
|
63
|
+
Greet based on findings from Step 1. Use `AskUserQuestion` with clickable options to guide the user into the right flow.
|
|
74
64
|
|
|
75
|
-
|
|
65
|
+
Use plain text with Unicode characters for visual hierarchy:
|
|
76
66
|
|
|
77
67
|
- **Diamonds:** `◆` complete, `◈` active/in-progress, `◇` pending
|
|
78
68
|
- **Dividers:** `─── Label ──────────────────` as section separators
|
|
@@ -80,199 +70,63 @@ Adapt the greeting based on what the scan revealed. Use plain text with Unicode
|
|
|
80
70
|
- **Summary box:** `┌──┐│└──┘` border with key-value pairs inside
|
|
81
71
|
|
|
82
72
|
**Fresh start (no `.design/`):**
|
|
83
|
-
Show ` /gsp- ◇◇\n looks like a fresh start.`
|
|
84
|
-
|
|
85
|
-
**Legacy `.design/` detected (flat structure, pre-0.4.0):**
|
|
86
|
-
Acknowledge the legacy project. Use `AskUserQuestion`: Start fresh brand, Start design project, Keep working.
|
|
87
|
-
|
|
88
|
-
**Brands exist, no projects:**
|
|
89
|
-
Show brand name + pipeline flow (compact single-line if complete, full pipeline if incomplete). Use `AskUserQuestion`: one option per existing brand + Create new brand.
|
|
73
|
+
Show ` /gsp- ◇◇\n looks like a fresh start.`
|
|
90
74
|
|
|
91
|
-
|
|
92
|
-
Show compact brand (single-line if complete) + full project pipeline flow. Then `AskUserQuestion`:
|
|
93
|
-
- **Continue {project}** — "pick up at {next phase}"
|
|
94
|
-
- **New project** — "start a new design project"
|
|
95
|
-
- **New brand** — "create a new brand identity"
|
|
96
|
-
- **View progress** — "see full progress dashboard"
|
|
97
|
-
|
|
98
|
-
When codebase has been scanned (`.design/system/STACK.md` exists), show a Summary Box using data from STACK.md and COMPONENTS.md:
|
|
75
|
+
If codebase was detected, show a summary box:
|
|
99
76
|
```
|
|
100
77
|
┌──────────────────────────────────────────┐
|
|
101
|
-
│ /gsp- ◆◈ │
|
|
102
|
-
│ │
|
|
103
78
|
│ framework Next.js 14 │
|
|
104
79
|
│ styling Tailwind + shadcn/ui │
|
|
105
80
|
│ components 47 detected │
|
|
81
|
+
│ assets logo.svg, 2 font files │
|
|
106
82
|
│ type existing codebase │
|
|
107
83
|
└──────────────────────────────────────────┘
|
|
108
84
|
```
|
|
109
85
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
- **Brand identity** → Brand flow (Step 3)
|
|
118
|
-
- **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.
|
|
119
|
-
- **Full design (brand + project)** → Brand flow (Step 3), with E2E flag so brand completion auto-transitions to project flow (Step 4)
|
|
120
|
-
- **Quick project** → Quick flow (Step 5)
|
|
121
|
-
- **Continue existing work** → route to `/gsp-progress`
|
|
122
|
-
|
|
123
|
-
## Step 3: Brand flow
|
|
124
|
-
|
|
125
|
-
Each question is its own `AskUserQuestion` call. Ask one, wait, adapt, ask the next. Skip anything you can already infer.
|
|
126
|
-
|
|
127
|
-
**Step 3a — Brand name and path selection:**
|
|
128
|
-
|
|
129
|
-
1. Ask for brand name (kebab-case, e.g., "acme-corp")
|
|
130
|
-
2. "Do you already have brand materials to work with?" — use `AskUserQuestion`:
|
|
131
|
-
- **Yes, I have an existing brand** — "I have a logo, colors, guidelines, or other assets"
|
|
132
|
-
- **No, starting fresh** — "Building a brand from scratch"
|
|
133
|
-
|
|
134
|
-
If **yes** → set `brand_mode: "evolve"`. Continue with evolve sequence (Step 3b-evolve).
|
|
135
|
-
If **no** → set `brand_mode: "new"`. Continue with new sequence (Step 3b-new).
|
|
136
|
-
|
|
137
|
-
3. Create directory structure:
|
|
138
|
-
```bash
|
|
139
|
-
mkdir -p .design/branding/{name}/{audit,discover,strategy,identity,patterns}
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
**Step 3b-evolve — Gather existing brand context:**
|
|
143
|
-
|
|
144
|
-
Ask these before business questions — the existing brand shapes everything:
|
|
145
|
-
|
|
146
|
-
3. Share your current brand materials — logo, colors, guidelines, URLs, anything you have. (open-ended — gather thoroughly here. Brand-audit will NOT re-ask for assets.)
|
|
147
|
-
4. How old is the current brand? (open-ended)
|
|
148
|
-
5. What's working well with the current brand? (open-ended)
|
|
149
|
-
6. What's not working — what are the pain points? (open-ended)
|
|
150
|
-
7. Evolution scope — use `AskUserQuestion`: **Preserve most, tweak details** / **Evolve significantly, keep core** / **Replace — start fresh**
|
|
151
|
-
|
|
152
|
-
Then continue to Step 3c (business & people), skipping anything the brand materials already reveal.
|
|
153
|
-
|
|
154
|
-
**Step 3b-new — Skip to business questions:**
|
|
155
|
-
|
|
156
|
-
Continue directly to Step 3c.
|
|
157
|
-
|
|
158
|
-
**Step 3c — Business & People:**
|
|
86
|
+
Use `AskUserQuestion` with:
|
|
87
|
+
- **New brand** — "Create a brand identity from scratch"
|
|
88
|
+
- **Evolve existing brand** — "I have brand materials to work with"
|
|
89
|
+
- **Design project** — "Start a design project (needs a brand first)"
|
|
90
|
+
- **Both (brand + project)** — "Full pipeline: brand then project"
|
|
91
|
+
- **Quick project** — "Skip branding, use a style preset"
|
|
159
92
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
10. What's the business model? (use `AskUserQuestion` with options if you can infer likely models from industry, otherwise open-ended)
|
|
163
|
-
11. Who are the main competitors? (2-3 names — open-ended)
|
|
164
|
-
12. Present an inferred primary persona — a concrete profile (name, role, frustration, aspiration) based on answers so far. Personas should feel like real people — dig into the emotional layer. Use `AskUserQuestion`: **Looks right** / **Adjust** / **Add a secondary persona**
|
|
165
|
-
|
|
166
|
-
**Step 3d — Brand Essence:**
|
|
167
|
-
|
|
168
|
-
Before presenting personality options, **internally synthesize** promise (what should someone feel?) and point of view (what does this brand disagree with?) from prior answers. Don't ask these directly — use them to ground personality options.
|
|
169
|
-
|
|
170
|
-
13. Brand personality direction — use `AskUserQuestion` with 2-3 concrete personality directions. **Each option must explain WHY it fits this brand's audience and problem** — not just a style label:
|
|
171
|
-
- Each option: **Label** (3 adjectives) / **Description** (why this personality fits their specific audience and competitive position — reference the persona by name, the problem, or the gap) / **Preview** (example sentence in that voice, using their product context)
|
|
172
|
-
- **Surprise me** — craft an unexpected direction inspired by the user's industry and personas
|
|
173
|
-
- Note: this is a high-level direction only. Brand strategy phase will deepen this into archetype + voice — don't over-refine here.
|
|
174
|
-
14. What should the brand NEVER feel like? (use `AskUserQuestion` with 2-3 anti-directions inferred from their personality pick, plus open-ended option)
|
|
175
|
-
15. Brands admired or styles to avoid? (open-ended `AskUserQuestion`)
|
|
176
|
-
|
|
177
|
-
Note: competitive landscape deep-dive happens in the research phase — don't re-confirm it here. The competitor names from Q11 are enough.
|
|
178
|
-
|
|
179
|
-
**Step 3e — Constraints & confirmation:**
|
|
180
|
-
|
|
181
|
-
16. Any non-negotiables or constraints? (timeline, budget, must-haves) — open-ended `AskUserQuestion`
|
|
182
|
-
17. **Check background scan:** If the codebase scanner has returned results, weave tech findings naturally into your summary.
|
|
183
|
-
18. State your understanding back: "Here's what I'm hearing: [summary]." Use `AskUserQuestion`:
|
|
184
|
-
- **Looks good** — "That's accurate, let's go"
|
|
185
|
-
- **Adjust something** — "I want to change or add something"
|
|
186
|
-
|
|
187
|
-
Skip any question you can already answer from prior context. Don't over-ask.
|
|
188
|
-
|
|
189
|
-
4. Read templates from `${CLAUDE_SKILL_DIR}/../../templates/branding/` and write artifacts:
|
|
190
|
-
- `.design/branding/{name}/BRIEF.md` from `brief.md` template
|
|
191
|
-
- `.design/branding/{name}/STATE.md` from `state.md` template
|
|
192
|
-
- `.design/branding/{name}/config.json` from `config.json` template
|
|
193
|
-
- `.design/branding/{name}/ROADMAP.md` from `roadmap.md` template
|
|
194
|
-
|
|
195
|
-
5. Set `brand_mode` in config.json based on Step 2 routing decision.
|
|
196
|
-
|
|
197
|
-
6. Route using `AskUserQuestion` — always offer Continue / Stop here / What happens next:
|
|
198
|
-
|
|
199
|
-
- **Brand-only, new →** continue to `/gsp-brand-research`
|
|
200
|
-
- **Brand-only, evolve →** continue to `/gsp-brand-audit`
|
|
201
|
-
- **E2E, new →** continue to `/gsp-brand-research` (complete the entire brand pipeline first — research → strategy → identity → patterns — then auto-transition to Step 4 for project setup). Set `"e2e": true` in config.json so brand-patterns knows to route to project flow after completion.
|
|
202
|
-
- **E2E, evolve →** continue to `/gsp-brand-audit` (complete full brand pipeline, then auto-transition to Step 4). Set `"e2e": true` in config.json.
|
|
203
|
-
|
|
204
|
-
## Step 4: Project flow
|
|
205
|
-
|
|
206
|
-
**Background:** Run `git branch --show-current` with `run_in_background: true` now — result will be ready by the time we need it for git context detection.
|
|
207
|
-
|
|
208
|
-
1. Show available brands with phase status. No brands → offer to create one. One complete → suggest as default. Multiple → `AskUserQuestion` with one option per brand.
|
|
209
|
-
|
|
210
|
-
2. User selects a brand.
|
|
211
|
-
|
|
212
|
-
3. Ask for project name (kebab-case, e.g., "acme-website")
|
|
213
|
-
|
|
214
|
-
4. Create directory structure:
|
|
215
|
-
```bash
|
|
216
|
-
mkdir -p .design/projects/{name}/{brief,research,design,critique,build,review,codebase,exports,references}
|
|
217
|
-
```
|
|
218
|
-
|
|
219
|
-
### Detect git context
|
|
220
|
-
|
|
221
|
-
Use the background `git branch --show-current` result. If detected, confirm branch with `AskUserQuestion`. Store in config.json `git.branch` + STATE.md `## Git`. No git repo → skip silently.
|
|
222
|
-
|
|
223
|
-
5. Write `.design/projects/{name}/brand.ref` — brand name, relative path, consumed_at ISO date, identity_hash (first 8 chars md5 of IDENTITY.md, or "pending").
|
|
224
|
-
|
|
225
|
-
6. Consume `.design/system/STACK.md` — note classification for config.json, auto-infer `implementation_target` from STACK.md + COMPONENTS.md.
|
|
226
|
-
|
|
227
|
-
7. Gather project brief as a sequential conversation. Each question is its own `AskUserQuestion` call. Ask one, wait, adapt, ask the next. Skip anything you can already infer from the codebase scan.
|
|
228
|
-
|
|
229
|
-
**Sequence — What we're building:**
|
|
93
|
+
**Legacy `.design/` detected (flat structure, pre-0.4.0):**
|
|
94
|
+
Acknowledge the legacy project. Use `AskUserQuestion`: Start fresh brand, Start design project, Keep working.
|
|
230
95
|
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
3. Platforms? — use `AskUserQuestion`: **Web** / **iOS** / **Android** / **Cross-platform** (skip if obvious from codebase)
|
|
234
|
-
4. Implementation target — use `AskUserQuestion` with options based on codebase analysis (e.g., shadcn, rn-reusables, custom, css-only)
|
|
235
|
-
5. Design scope — use `AskUserQuestion`:
|
|
236
|
-
- **Full** — "Complete design: screens, components, tokens"
|
|
237
|
-
- **Partial** — "Specific screens or flows only"
|
|
238
|
-
- **Tokens only** — "Just design tokens, no screens"
|
|
239
|
-
6. Key screens/flows needed? — open-ended `AskUserQuestion`
|
|
96
|
+
**Brands exist, no projects:**
|
|
97
|
+
Show brand name + pipeline flow (compact single-line if complete, full pipeline if incomplete). Use `AskUserQuestion`: one option per existing brand to continue + Create new brand + Start design project.
|
|
240
98
|
|
|
241
|
-
**
|
|
99
|
+
**Brands + projects exist (canonical format):**
|
|
100
|
+
Show compact brand (single-line if complete) + full project pipeline flow. Then `AskUserQuestion`:
|
|
101
|
+
- **Continue {project}** — "pick up at {next phase}"
|
|
102
|
+
- **New project** — "start a new design project"
|
|
103
|
+
- **New brand** — "create a new brand identity"
|
|
104
|
+
- **View progress** — "see full progress dashboard"
|
|
242
105
|
|
|
243
|
-
|
|
244
|
-
8. Any constraints? (timeline, budget, must-haves) — open-ended `AskUserQuestion`
|
|
245
|
-
9. State your understanding back: "Here's what I'm hearing: [summary]." Use `AskUserQuestion`:
|
|
246
|
-
- **Looks good** — "That's accurate, let's go"
|
|
247
|
-
- **Adjust something** — "I want to change or add something"
|
|
248
|
-
- **Explain this** — "Walk me through what you captured and why" → explain each section of the brief and how it'll be used in the next phases
|
|
249
|
-
- **Surprise me** — "Suggest something I haven't thought of" → propose an unexpected screen, flow, or feature angle that would elevate the project based on what you know about the brand, audience, and codebase. Present it as a suggestion the user can adopt, tweak, or skip.
|
|
106
|
+
Weave codebase signals into the greeting naturally when found.
|
|
250
107
|
|
|
251
|
-
|
|
108
|
+
## Step 3: Route
|
|
252
109
|
|
|
253
|
-
|
|
254
|
-
- `.design/projects/{name}/BRIEF.md` from `brief.md` template
|
|
255
|
-
- `.design/projects/{name}/STATE.md` from `state.md` template — populate `## Git` table with detected/confirmed branch (or "—")
|
|
256
|
-
- `.design/projects/{name}/config.json` from `config.json` template — populate `git.branch` with detected/confirmed branch (or empty string)
|
|
257
|
-
- `.design/projects/{name}/ROADMAP.md` from `roadmap.md` template
|
|
258
|
-
- `.design/projects/{name}/exports/INDEX.md` from `${CLAUDE_SKILL_DIR}/../../templates/exports-index.md`
|
|
110
|
+
From the greeting exchange, route to the right skill:
|
|
259
111
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
112
|
+
- **New brand** → invoke `/gsp-brand-brief` via Skill tool
|
|
113
|
+
- **Evolve existing brand** → invoke `/gsp-brand-audit` via Skill tool
|
|
114
|
+
- **Design project** → Check for brands first. If none exist, explain they need a brand first. Offer to create one (route to `/gsp-brand-brief` with `e2e: true`), or use a style preset (Quick flow).
|
|
115
|
+
- **Both (brand + project)** → invoke `/gsp-brand-brief` via Skill tool with `e2e: true`
|
|
116
|
+
- **Quick project** → Quick flow (Step 4)
|
|
117
|
+
- **Continue existing work** → route to `/gsp-progress`
|
|
264
118
|
|
|
265
|
-
## Step
|
|
119
|
+
## Step 4: Quick project flow
|
|
266
120
|
|
|
267
121
|
For users who want to skip branding and start designing immediately with a style preset.
|
|
268
122
|
|
|
269
|
-
###
|
|
123
|
+
### 4a: Style selection
|
|
270
124
|
|
|
271
|
-
Read `${CLAUDE_SKILL_DIR}
|
|
125
|
+
Read `${CLAUDE_SKILL_DIR}/../gsp-style/styles/INDEX.yml` and present styles grouped by category. Use `AskUserQuestion` with one option per mood group (showing 2-3 preset names as preview) plus **Surprise me**. When user picks a group, drill into specific presets. If user names a preset directly, skip the group step.
|
|
272
126
|
|
|
273
127
|
**"Surprise me" logic:** Weight by codebase type — dev tools → dark/minimal, content → editorial, SaaS → minimal/bold, e-commerce → warm/playful, unknown → random.
|
|
274
128
|
|
|
275
|
-
###
|
|
129
|
+
### 4b: Create minimal brand
|
|
276
130
|
|
|
277
131
|
1. Create brand directory:
|
|
278
132
|
```bash
|
|
@@ -304,7 +158,7 @@ mkdir -p .design/branding/_style-{preset}/patterns/
|
|
|
304
158
|
- Phase 3 (Identity): `skipped`
|
|
305
159
|
- Phase 4 (System): `complete`
|
|
306
160
|
|
|
307
|
-
###
|
|
161
|
+
### 4c: Transition to project
|
|
308
162
|
|
|
309
163
|
Display:
|
|
310
164
|
```
|
|
@@ -314,17 +168,12 @@ Display:
|
|
|
314
168
|
now let's scope your project.
|
|
315
169
|
```
|
|
316
170
|
|
|
317
|
-
|
|
318
|
-
- Skip "show available brands" — auto-select `_style-{preset}`
|
|
319
|
-
- Go straight to asking for project name
|
|
320
|
-
- Set `style_preset: "{preset}"` in the project's `config.json`
|
|
321
|
-
- Set `identity_hash: "style-only"` in `brand.ref`
|
|
322
|
-
- Proceed with the normal sequential project brief gathering
|
|
171
|
+
Route to `/gsp-project-brief` via Skill tool with the style brand pre-selected.
|
|
323
172
|
|
|
324
173
|
### Upgrade path
|
|
325
174
|
|
|
326
175
|
If a user later wants full branding, they can:
|
|
327
|
-
1. Run `/gsp-start` → "
|
|
176
|
+
1. Run `/gsp-start` → "New brand" to create a real brand
|
|
328
177
|
2. Full diamond produces identity + patterns with real tokens
|
|
329
178
|
3. Update the project's `brand.ref` to point to the new brand
|
|
330
179
|
4. Re-run build phases — they pick up the new tokens automatically
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
name: gsp-style
|
|
3
3
|
description: Apply a design style — get tokens and foundations without the branding diamond
|
|
4
4
|
user-invocable: true
|
|
5
|
-
model: sonnet
|
|
6
5
|
allowed-tools:
|
|
7
6
|
- Read
|
|
8
7
|
- Write
|
|
@@ -136,7 +135,7 @@ Read the style template from `${CLAUDE_SKILL_DIR}/../../templates/phases/style.m
|
|
|
136
135
|
|
|
137
136
|
Read BOTH source files:
|
|
138
137
|
- `styles/{name}.yml` — structured data (tokens, intensity, patterns, constraints, effects)
|
|
139
|
-
- `styles/{name}.md` — prose companion (design philosophy, CSS code hints, component styling, textures).
|
|
138
|
+
- `styles/{name}.md` — prose companion (design philosophy, CSS code hints, component styling, textures).
|
|
140
139
|
|
|
141
140
|
If the `.md` companion doesn't exist, render STYLE.md from `.yml` data only (thinner but functional).
|
|
142
141
|
|
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
# Style Preset Index
|
|
2
|
-
#
|
|
2
|
+
# 35 styles — sourced from designprompts.dev, GSP trend references, and original presets
|
|
3
3
|
# Tags enable fuzzy matching: /gsp-style "something dark and techy" → cyberpunk, terminal, modern-dark
|
|
4
4
|
|
|
5
5
|
styles:
|
|
6
|
+
# ── Industrial ────────────────────────
|
|
7
|
+
- name: nothing
|
|
8
|
+
file: nothing.yml
|
|
9
|
+
tags: [monochrome, industrial, dark, minimal, technical, instrument, mechanical, swiss]
|
|
10
|
+
vibe: "Nothing Phone DNA — OLED black, dot-matrix Doto headlines, red signal accent, zero shadows"
|
|
11
|
+
|
|
6
12
|
# ── Minimal ─────────────────────────
|
|
7
13
|
- name: swiss-minimalist
|
|
8
14
|
file: swiss-minimalist.yml
|