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
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# Voice & Tone Framework
|
|
2
|
+
|
|
3
|
+
## Voice vs Tone
|
|
4
|
+
|
|
5
|
+
**Voice** is the consistent personality of the brand. It doesn't change.
|
|
6
|
+
**Tone** is how voice flexes based on context. It adapts to situation.
|
|
7
|
+
|
|
8
|
+
Analogy: Your voice is who you are. Your tone is how you speak at a wedding vs a funeral vs a bar.
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## 1. Voice Attribute Framework
|
|
13
|
+
|
|
14
|
+
### Defining Voice Attributes
|
|
15
|
+
Choose 3-5 attributes that describe how the brand communicates. Each attribute needs:
|
|
16
|
+
|
|
17
|
+
1. **The attribute** (e.g., "Confident")
|
|
18
|
+
2. **What it means** (e.g., "We speak with authority and certainty")
|
|
19
|
+
3. **What it doesn't mean** (e.g., "Not arrogant, dismissive, or condescending")
|
|
20
|
+
4. **Example** (e.g., "We know this works" vs "We're the best and everyone else is wrong")
|
|
21
|
+
|
|
22
|
+
### Template
|
|
23
|
+
|
|
24
|
+
| Attribute | Means | Doesn't Mean | Do | Don't |
|
|
25
|
+
|-----------|-------|-------------|-----|-------|
|
|
26
|
+
| Confident | Assured, knowledgeable | Arrogant, dismissive | "Here's the best approach" | "Obviously, anyone would know" |
|
|
27
|
+
| Warm | Friendly, approachable | Overly casual, unprofessional | "We're here to help" | "Hey bestie! lol" |
|
|
28
|
+
| Clear | Direct, simple | Dumbed down, patronizing | "Sign up in 3 steps" | "Even a child could do it" |
|
|
29
|
+
|
|
30
|
+
### Common Voice Attribute Pairs
|
|
31
|
+
- **Confident but not arrogant** — authority without superiority
|
|
32
|
+
- **Playful but not childish** — fun without being unserious
|
|
33
|
+
- **Expert but not elitist** — knowledgeable without excluding
|
|
34
|
+
- **Warm but not saccharine** — friendly without being fake
|
|
35
|
+
- **Bold but not aggressive** — daring without being off-putting
|
|
36
|
+
- **Casual but not sloppy** — relaxed without being unprofessional
|
|
37
|
+
- **Technical but not jargony** — precise without being inaccessible
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 2. Tone Spectrum
|
|
42
|
+
|
|
43
|
+
### The 5 Spectrums
|
|
44
|
+
|
|
45
|
+
Plot the brand's default position on each scale (1-5):
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
Formal 1 ─── 2 ─── 3 ─── 4 ─── 5 Casual
|
|
49
|
+
Serious 1 ─── 2 ─── 3 ─── 4 ─── 5 Playful
|
|
50
|
+
Authoritative 1 ─── 2 ─── 3 ─── 4 ─── 5 Friendly
|
|
51
|
+
Technical 1 ─── 2 ─── 3 ─── 4 ─── 5 Simple
|
|
52
|
+
Reserved 1 ─── 2 ─── 3 ─── 4 ─── 5 Enthusiastic
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### Tone Shift by Context
|
|
56
|
+
|
|
57
|
+
The default position shifts based on context. Map the range:
|
|
58
|
+
|
|
59
|
+
| Context | Formal↔Casual | Serious↔Playful | Auth↔Friendly |
|
|
60
|
+
|---------|:------------:|:--------------:|:-------------:|
|
|
61
|
+
| Homepage | 3 | 3 | 3 |
|
|
62
|
+
| Error message | 2 | 2 | 4 |
|
|
63
|
+
| Success state | 3 | 4 | 4 |
|
|
64
|
+
| Marketing email | 4 | 4 | 3 |
|
|
65
|
+
| Legal/terms | 1 | 1 | 2 |
|
|
66
|
+
| Social media | 4 | 5 | 5 |
|
|
67
|
+
| Customer support | 2 | 2 | 5 |
|
|
68
|
+
| Onboarding | 3 | 3 | 4 |
|
|
69
|
+
| Empty state | 3 | 4 | 4 |
|
|
70
|
+
| Loading state | 3 | 3 | 3 |
|
|
71
|
+
|
|
72
|
+
---
|
|
73
|
+
|
|
74
|
+
## 3. Voice Chart (Do / Don't)
|
|
75
|
+
|
|
76
|
+
### Per-Attribute Chart
|
|
77
|
+
|
|
78
|
+
For each voice attribute, provide concrete writing examples:
|
|
79
|
+
|
|
80
|
+
**Attribute: Confident**
|
|
81
|
+
|
|
82
|
+
| Do | Don't |
|
|
83
|
+
|-----|-------|
|
|
84
|
+
| "Your data is protected with 256-bit encryption" | "We think your data should be pretty safe" |
|
|
85
|
+
| "Here's what we recommend" | "You might maybe want to consider" |
|
|
86
|
+
| "This will save you 3 hours per week" | "This could potentially help save some time" |
|
|
87
|
+
|
|
88
|
+
**Attribute: Warm**
|
|
89
|
+
|
|
90
|
+
| Do | Don't |
|
|
91
|
+
|-----|-------|
|
|
92
|
+
| "Welcome back! Here's what's new" | "User session resumed. New items: 3" |
|
|
93
|
+
| "We're here if you need anything" | "Submit a ticket for assistance" |
|
|
94
|
+
| "Great choice!" | "Selection confirmed" |
|
|
95
|
+
|
|
96
|
+
### Grammar & Style Rules
|
|
97
|
+
- **Contractions:** Yes/No (Casual brands: yes. Formal: no.)
|
|
98
|
+
- **Oxford comma:** Yes/No
|
|
99
|
+
- **Exclamation marks:** Never / Sparingly / Freely
|
|
100
|
+
- **Emoji:** Never / In social only / Everywhere
|
|
101
|
+
- **First person:** "We" / "I" / Varies
|
|
102
|
+
- **Addressing user:** "You" / Name / Formal
|
|
103
|
+
- **Sentence length:** Short (avg 15 words) / Medium (20) / Long (25+)
|
|
104
|
+
- **Jargon:** Avoid / Define on first use / Use freely (technical audience)
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 4. Messaging Matrix
|
|
109
|
+
|
|
110
|
+
### Structure
|
|
111
|
+
|
|
112
|
+
| Audience Segment | Key Message | Supporting Points | Tone Shift | Proof Point | Priority Channel |
|
|
113
|
+
|-----------------|-------------|-------------------|-----------|------------|-----------------|
|
|
114
|
+
| Primary persona | Core value prop for this segment | 2-3 supporting messages | How tone adapts | Evidence/social proof | Where to reach them |
|
|
115
|
+
|
|
116
|
+
### Building the Matrix
|
|
117
|
+
1. List audience segments from brand brief / personas
|
|
118
|
+
2. For each segment, identify their primary motivation (what they care about most)
|
|
119
|
+
3. Craft a key message that connects brand benefit to their motivation
|
|
120
|
+
4. Add supporting points that build the case
|
|
121
|
+
5. Note how tone shifts for this audience
|
|
122
|
+
6. Provide proof points (data, testimonials, case studies)
|
|
123
|
+
7. Identify the primary channel to reach them
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 5. Content Types Reference
|
|
128
|
+
|
|
129
|
+
### Tone Guidelines by Content Type
|
|
130
|
+
|
|
131
|
+
**Headlines:** Bold, concise, lead with benefit. 6-10 words.
|
|
132
|
+
**Body copy:** Conversational, scannable, substantive. Short paragraphs.
|
|
133
|
+
**CTAs:** Action-oriented, specific, urgent without pressure. 2-5 words.
|
|
134
|
+
**Error messages:** Helpful, blame-free, solution-focused. State what happened + what to do.
|
|
135
|
+
**Success messages:** Celebratory, brief, confirm what happened. Move forward.
|
|
136
|
+
**Empty states:** Encouraging, instructional, not apologetic. Guide next action.
|
|
137
|
+
**Tooltips:** Ultra-concise, single purpose, no fluff. One sentence.
|
|
138
|
+
**Notifications:** Contextual, actionable, respectful of attention. Clear priority.
|
|
139
|
+
**Onboarding:** Friendly, progressive, encouraging. Build confidence.
|
|
140
|
+
**Legal:** Clear, plain language where possible. Accessible but accurate.
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## 6. Brand Narrative Arc
|
|
145
|
+
|
|
146
|
+
### The 4-Part Story Structure
|
|
147
|
+
|
|
148
|
+
**1. Setup (Context)**
|
|
149
|
+
Establish the world as it is. What's the status quo? What does the audience experience daily?
|
|
150
|
+
|
|
151
|
+
**2. Tension (Problem)**
|
|
152
|
+
Introduce the conflict. What's broken, frustrating, or missing? Why can't things stay the way they are?
|
|
153
|
+
|
|
154
|
+
**3. Resolution (Solution)**
|
|
155
|
+
Present the brand as the answer. How does it address the tension? What changes?
|
|
156
|
+
|
|
157
|
+
**4. Transformation (Outcome)**
|
|
158
|
+
Show the new reality. How is life different now? What has the audience gained?
|
|
159
|
+
|
|
160
|
+
### Example: Slack
|
|
161
|
+
1. **Setup:** Teams communicate through email, meetings, and scattered tools
|
|
162
|
+
2. **Tension:** Information is lost, context-switching is exhausting, work feels fragmented
|
|
163
|
+
3. **Resolution:** Slack brings all communication into organized channels with searchable history
|
|
164
|
+
4. **Transformation:** Teams move faster, stay aligned, and actually enjoy working together
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## 7. Naming Conventions
|
|
169
|
+
|
|
170
|
+
### Naming Principles
|
|
171
|
+
1. **Memorability:** Easy to say, spell, and remember
|
|
172
|
+
2. **Meaning:** Communicates something about the brand or product
|
|
173
|
+
3. **Distinctiveness:** Different from competitors
|
|
174
|
+
4. **Scalability:** Works as the brand grows
|
|
175
|
+
5. **Availability:** Domain, social handles, trademarks
|
|
176
|
+
|
|
177
|
+
### Naming Approaches
|
|
178
|
+
- **Descriptive:** Says what it does (General Electric, PayPal)
|
|
179
|
+
- **Suggestive:** Hints at benefit (Pinterest, Slack)
|
|
180
|
+
- **Abstract:** Invented word (Kodak, Xerox)
|
|
181
|
+
- **Acronym:** Initials (IBM, BMW)
|
|
182
|
+
- **Founder:** Named after creator (Ford, Chanel)
|
|
183
|
+
- **Metaphor:** Borrowed meaning (Amazon, Apple)
|
|
184
|
+
|
|
185
|
+
### Product/Feature Naming
|
|
186
|
+
- Consistent pattern across products (Apple: i-prefix, Google: single words)
|
|
187
|
+
- Hierarchy should be clear (Brand > Product > Feature > Sub-feature)
|
|
188
|
+
- Internal names vs external names — keep them separate
|
|
189
|
+
|
|
190
|
+
## Sources
|
|
191
|
+
- Flaxton, K. (2020). *Voice and Tone in UX Writing*. A List Apart.
|
|
192
|
+
- Content Design London. *Content Design* methodology.
|
|
193
|
+
- NN/g. *Writing for the Web: Tone of Voice* research.
|
|
@@ -151,7 +151,7 @@ process.stdin.on('end', () => {
|
|
|
151
151
|
(lParts[0] === iParts[0] && lParts[1] > iParts[1]) ||
|
|
152
152
|
(lParts[0] === iParts[0] && lParts[1] === iParts[1] && lParts[2] > iParts[2]);
|
|
153
153
|
if (isNewer) {
|
|
154
|
-
updateTag = ` \x1b[33m\u2191
|
|
154
|
+
updateTag = ` \x1b[33m\u2191 /gsp:update\x1b[0m`;
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Brand Brief
|
|
2
|
+
|
|
3
|
+
## Brand
|
|
4
|
+
- **Name:** {BRAND_NAME}
|
|
5
|
+
- **Date:** {DATE}
|
|
6
|
+
|
|
7
|
+
## Company
|
|
8
|
+
- **Company name:** {COMPANY}
|
|
9
|
+
- **Industry:** {INDUSTRY}
|
|
10
|
+
- **Founded:** {YEAR}
|
|
11
|
+
- **Size:** {SIZE}
|
|
12
|
+
- **Existing brand?** {YES_NO}
|
|
13
|
+
|
|
14
|
+
## Brand Mode
|
|
15
|
+
- **Mode:** {new | evolve}
|
|
16
|
+
- **Reason:** {why — market shift, audience change, product pivot, staleness}
|
|
17
|
+
|
|
18
|
+
### Existing Brand State (evolve only)
|
|
19
|
+
- **Current brand age:** {years}
|
|
20
|
+
- **Existing guidelines?** {yes — description | no}
|
|
21
|
+
- **Brand equity:** {what's working}
|
|
22
|
+
- **Pain points:** {what's not working}
|
|
23
|
+
|
|
24
|
+
### Evolution Scope (evolve only)
|
|
25
|
+
- **Preserve:** {elements to keep}
|
|
26
|
+
- **Evolve:** {elements to refresh}
|
|
27
|
+
- **Replace:** {elements to redo}
|
|
28
|
+
|
|
29
|
+
## Mission & Vision
|
|
30
|
+
- **Mission:** {MISSION}
|
|
31
|
+
- **Vision:** {VISION}
|
|
32
|
+
- **Values:** {VALUES}
|
|
33
|
+
|
|
34
|
+
## Audience
|
|
35
|
+
- **Primary:** {PRIMARY_AUDIENCE}
|
|
36
|
+
- **Secondary:** {SECONDARY_AUDIENCE}
|
|
37
|
+
- **Demographics:** {DEMOGRAPHICS}
|
|
38
|
+
- **Psychographics:** {PSYCHOGRAPHICS}
|
|
39
|
+
|
|
40
|
+
## Personality
|
|
41
|
+
- **Brand personality:** {PERSONALITY}
|
|
42
|
+
- **Tone:** {TONE}
|
|
43
|
+
- **How should the brand feel?** {FEELING}
|
|
44
|
+
|
|
45
|
+
## Competitive Landscape
|
|
46
|
+
- **Direct competitors:** {COMPETITORS}
|
|
47
|
+
- **What sets you apart?** {DIFFERENTIATORS}
|
|
48
|
+
- **Brands admired:** {BRANDS}
|
|
49
|
+
|
|
50
|
+
## Inspiration
|
|
51
|
+
- **Styles liked:** {STYLES}
|
|
52
|
+
- **Styles to avoid:** {AVOID}
|
|
53
|
+
- **Existing assets:** {ASSETS}
|
|
54
|
+
|
|
55
|
+
## Constraints
|
|
56
|
+
- **Timeline:** {TIMELINE}
|
|
57
|
+
- **Budget:** {BUDGET}
|
|
58
|
+
- **Must-haves:** {MUST_HAVES}
|
|
59
|
+
- **Non-negotiables:** {NON_NEGOTIABLES}
|
|
60
|
+
|
|
61
|
+
## Goals
|
|
62
|
+
- **Business goal:** {BUSINESS_GOAL}
|
|
63
|
+
- **Brand goal:** {BRAND_GOAL}
|
|
64
|
+
- **Success metrics:** {METRICS}
|
|
65
|
+
|
|
66
|
+
## Deliverables
|
|
67
|
+
- [ ] Discovery & research
|
|
68
|
+
- [ ] Brand strategy
|
|
69
|
+
- [ ] Verbal identity
|
|
70
|
+
- [ ] Visual identity
|
|
71
|
+
- [ ] Color palettes
|
|
72
|
+
|
|
73
|
+
## Notes
|
|
74
|
+
{ADDITIONAL_NOTES}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "0.4.0",
|
|
3
|
+
"project_type": "brand",
|
|
4
|
+
"brand": {
|
|
5
|
+
"name": "",
|
|
6
|
+
"created": ""
|
|
7
|
+
},
|
|
8
|
+
"brand_mode": "new",
|
|
9
|
+
"evolution_scope": {
|
|
10
|
+
"preserve": [],
|
|
11
|
+
"evolve": [],
|
|
12
|
+
"replace": []
|
|
13
|
+
},
|
|
14
|
+
"phases": {
|
|
15
|
+
"audit": { "status": "skipped", "output": "audit/" },
|
|
16
|
+
"discover": { "status": "pending", "output": "discover/" },
|
|
17
|
+
"strategy": { "status": "pending", "output": "strategy/" },
|
|
18
|
+
"verbal": { "status": "pending", "output": "verbal/" },
|
|
19
|
+
"identity": { "status": "pending", "output": "identity/" },
|
|
20
|
+
"system": { "status": "pending", "output": "system/" }
|
|
21
|
+
},
|
|
22
|
+
"system_config": {
|
|
23
|
+
"tech_stack": "",
|
|
24
|
+
"system_strategy": "generate"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Brand Roadmap
|
|
2
|
+
|
|
3
|
+
## Brand: {BRAND_NAME}
|
|
4
|
+
**Created:** {DATE}
|
|
5
|
+
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
## Phase 0: Audit (optional)
|
|
9
|
+
**Status:** skipped
|
|
10
|
+
**Command:** `/gsp:brand-audit`
|
|
11
|
+
**Input:** Existing brand assets + BRIEF.md
|
|
12
|
+
**Output:** `audit/`
|
|
13
|
+
**Goal:** Audit existing brand. Assess coherence, market fit, equity. Produce evolution map.
|
|
14
|
+
**When:** Run when evolving an existing brand. Skip for new brands.
|
|
15
|
+
|
|
16
|
+
## Phase 1: Research
|
|
17
|
+
**Status:** pending
|
|
18
|
+
**Command:** `/gsp:brand-research`
|
|
19
|
+
**Input:** BRIEF.md
|
|
20
|
+
**Output:** `discover/`
|
|
21
|
+
**Goal:** Research market landscape, audience personas, competitive positioning, trends.
|
|
22
|
+
|
|
23
|
+
## Phase 2: Strategy
|
|
24
|
+
**Status:** pending
|
|
25
|
+
**Command:** `/gsp:brand-strategy`
|
|
26
|
+
**Input:** BRIEF.md + discover/
|
|
27
|
+
**Output:** `strategy/`
|
|
28
|
+
**Goal:** Define brand positioning — archetype, positioning map, personality, messaging.
|
|
29
|
+
|
|
30
|
+
## Phases 3-4: Identity (Verbal + Visual)
|
|
31
|
+
**Status:** pending
|
|
32
|
+
**Command:** `/gsp:brand-identity`
|
|
33
|
+
**Input:** BRIEF.md + strategy/
|
|
34
|
+
**Output:** `verbal/` + `identity/` + `palettes.json`
|
|
35
|
+
**Goal:** Build verbal and visual identity — voice, tone, logo, color, typography.
|
|
36
|
+
**Granular re-run:** `/gsp:brand-verbal` (phase 3 only)
|
|
37
|
+
|
|
38
|
+
## Phase 5: Patterns (Design System)
|
|
39
|
+
**Status:** pending
|
|
40
|
+
**Command:** `/gsp:brand-patterns`
|
|
41
|
+
**Input:** Identity + Strategy + Verbal + BRIEF.md
|
|
42
|
+
**Output:** `system/` (foundations, components, tokens.json) + `preview.html`
|
|
43
|
+
**Goal:** Build design system, generate brand preview, transition to project diamond.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Brand State
|
|
2
|
+
|
|
3
|
+
## Brand: {BRAND_NAME}
|
|
4
|
+
**Started:** {DATE}
|
|
5
|
+
**Mode:** {new | evolve}
|
|
6
|
+
**Current Phase:** 0 (Not started)
|
|
7
|
+
**Prettiness Level:** 0%
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Phase Progress
|
|
12
|
+
|
|
13
|
+
| # | Phase | Status | Started | Completed |
|
|
14
|
+
|---|-------|--------|---------|-----------|
|
|
15
|
+
| 0 | Audit | skipped | — | — |
|
|
16
|
+
| 1 | Discover | pending | — | — |
|
|
17
|
+
| 2 | Strategy | pending | — | — |
|
|
18
|
+
| 3 | Verbal | pending | — | — |
|
|
19
|
+
| 4 | Identity | pending | — | — |
|
|
20
|
+
| 5 | System | pending | — | — |
|
|
21
|
+
|
|
22
|
+
## Status Values
|
|
23
|
+
<!-- pending | in-progress | complete | needs-revision | skipped -->
|
|
24
|
+
|
|
25
|
+
## Decisions
|
|
26
|
+
<!-- Key brand decisions and rationale -->
|
|
27
|
+
|
|
28
|
+
## Notes
|
|
29
|
+
<!-- Session notes, observations, blockers -->
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
# Codebase Inventory
|
|
2
|
+
|
|
3
|
+
> Auto-generated by `/gsp:new` during codebase analysis.
|
|
4
|
+
> Downstream phases consume this instead of rescanning.
|
|
5
|
+
|
|
6
|
+
## Classification
|
|
7
|
+
|
|
8
|
+
**Codebase type:** `{greenfield | boilerplate | existing}`
|
|
9
|
+
|
|
10
|
+
**Rationale:** {Why this classification — e.g., "Fresh create-next-app with no custom components", "Has 12 custom components and a theme system"}
|
|
11
|
+
|
|
12
|
+
## Tech Stack
|
|
13
|
+
|
|
14
|
+
| Layer | Value |
|
|
15
|
+
|-------|-------|
|
|
16
|
+
| Framework | {e.g., Next.js 14, Expo 51, Vite + React} |
|
|
17
|
+
| Language | {e.g., TypeScript, JavaScript} |
|
|
18
|
+
| Styling | {e.g., Tailwind CSS, CSS Modules, StyleSheet} |
|
|
19
|
+
| UI Kit | {e.g., shadcn/ui, RN Reusables, none} |
|
|
20
|
+
| Package Manager | {e.g., npm, pnpm, bun, yarn} |
|
|
21
|
+
| Build Tool | {e.g., Next.js built-in, Vite, Metro} |
|
|
22
|
+
|
|
23
|
+
## Existing Components
|
|
24
|
+
|
|
25
|
+
| Component | Path | Props / Variants | Reusable? | Notes |
|
|
26
|
+
|-----------|------|------------------|-----------|-------|
|
|
27
|
+
| {name} | {path} | {key props} | {yes/no/partially} | {notes} |
|
|
28
|
+
|
|
29
|
+
## Tokens & Theming
|
|
30
|
+
|
|
31
|
+
**Token source:** {e.g., `tailwind.config.ts`, `globals.css`, `theme.ts`, `tokens.json`}
|
|
32
|
+
**Format:** {e.g., CSS custom properties, Tailwind theme, JS object, JSON tokens}
|
|
33
|
+
|
|
34
|
+
| Category | Defined? | Details |
|
|
35
|
+
|----------|----------|---------|
|
|
36
|
+
| Colors | {yes/no} | {e.g., "Custom palette in tailwind.config.ts extend.colors"} |
|
|
37
|
+
| Typography | {yes/no} | {e.g., "Custom fonts via next/font, scale in Tailwind"} |
|
|
38
|
+
| Spacing | {yes/no} | {e.g., "Default Tailwind spacing"} |
|
|
39
|
+
| Radii | {yes/no} | {details} |
|
|
40
|
+
| Shadows | {yes/no} | {details} |
|
|
41
|
+
| Dark mode | {yes/no} | {e.g., "CSS class strategy via next-themes"} |
|
|
42
|
+
|
|
43
|
+
## Architecture Patterns
|
|
44
|
+
|
|
45
|
+
| Pattern | Value |
|
|
46
|
+
|---------|-------|
|
|
47
|
+
| Component style | {e.g., functional components, forwardRef wrappers, compound components} |
|
|
48
|
+
| State management | {e.g., React Context, Zustand, Redux, useState only} |
|
|
49
|
+
| Data fetching | {e.g., Server Components, React Query, SWR, fetch in useEffect} |
|
|
50
|
+
| Routing | {e.g., Next.js App Router, Expo Router, React Router} |
|
|
51
|
+
| File organization | {e.g., feature-based, type-based, flat} |
|
|
52
|
+
|
|
53
|
+
## Conventions
|
|
54
|
+
|
|
55
|
+
| Convention | Value |
|
|
56
|
+
|------------|-------|
|
|
57
|
+
| Naming | {e.g., PascalCase components, kebab-case files, camelCase utils} |
|
|
58
|
+
| Exports | {e.g., named exports, default exports, barrel files} |
|
|
59
|
+
| Styling approach | {e.g., `cn()` utility, `className` strings, `StyleSheet.create`} |
|
|
60
|
+
| Import aliases | {e.g., `@/` → `src/`, `~/` → project root} |
|
|
61
|
+
|
|
62
|
+
## Key Paths
|
|
63
|
+
|
|
64
|
+
| Path | Purpose |
|
|
65
|
+
|------|---------|
|
|
66
|
+
| Components | {e.g., `src/components/`, `components/ui/`} |
|
|
67
|
+
| Layouts | {e.g., `src/app/layout.tsx`, `app/(tabs)/_layout.tsx`} |
|
|
68
|
+
| Pages / Screens | {e.g., `src/app/`, `app/(tabs)/`} |
|
|
69
|
+
| Tokens / Theme | {e.g., `tailwind.config.ts`, `src/styles/globals.css`} |
|
|
70
|
+
| Config | {e.g., `next.config.js`, `app.json`} |
|
|
71
|
+
| Public / Assets | {e.g., `public/`, `assets/`} |
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# GSP Design Exports
|
|
2
|
+
|
|
3
|
+
> Load this file first, then load only the chunks needed for your task.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
This file is the entry point for coding agents consuming GSP design output.
|
|
8
|
+
|
|
9
|
+
1. Read this file to find chunk paths for your task
|
|
10
|
+
2. Load only the chunks relevant to your current screen or component
|
|
11
|
+
3. Each chunk is self-contained — follow `## Related` links for cross-references
|
|
12
|
+
|
|
13
|
+
## Quick Reference
|
|
14
|
+
|
|
15
|
+
- Building a screen? → Design table → load screen chunk + referenced components
|
|
16
|
+
- Need a component spec? → Components table (in brand system)
|
|
17
|
+
- Need color/type/spacing? → Foundations table (in brand system)
|
|
18
|
+
- Need project scope? → Brief table
|
|
19
|
+
- Need UX patterns or reference specs? → Research table
|
|
20
|
+
|
|
21
|
+
## Design System (Brand-Level)
|
|
22
|
+
|
|
23
|
+
<!-- BEGIN:system -->
|
|
24
|
+
| Section | Chunk | Lines |
|
|
25
|
+
|---------|-------|-------|
|
|
26
|
+
| _(populated by /gsp:brand-system — lives in brand directory)_ | | |
|
|
27
|
+
|
|
28
|
+
### Foundations
|
|
29
|
+
|
|
30
|
+
| Foundation | File | Tokens |
|
|
31
|
+
|------------|------|--------|
|
|
32
|
+
| | | |
|
|
33
|
+
|
|
34
|
+
### Components
|
|
35
|
+
|
|
36
|
+
| Component | File | States | Variants |
|
|
37
|
+
|-----------|------|--------|----------|
|
|
38
|
+
| | | | |
|
|
39
|
+
<!-- END:system -->
|
|
40
|
+
|
|
41
|
+
## Project Brief
|
|
42
|
+
|
|
43
|
+
<!-- BEGIN:brief -->
|
|
44
|
+
| Section | File |
|
|
45
|
+
|---------|------|
|
|
46
|
+
| _(populated by /gsp:brief)_ | |
|
|
47
|
+
<!-- END:brief -->
|
|
48
|
+
|
|
49
|
+
## Project Research
|
|
50
|
+
|
|
51
|
+
<!-- BEGIN:research -->
|
|
52
|
+
| Section | File |
|
|
53
|
+
|---------|------|
|
|
54
|
+
| _(populated by /gsp:research)_ | |
|
|
55
|
+
<!-- END:research -->
|
|
56
|
+
|
|
57
|
+
## Design
|
|
58
|
+
|
|
59
|
+
<!-- BEGIN:design -->
|
|
60
|
+
| # | Screen | File | Components Used |
|
|
61
|
+
|---|--------|------|-----------------|
|
|
62
|
+
| _(populated by /gsp:design)_ | | | |
|
|
63
|
+
|
|
64
|
+
### Shared
|
|
65
|
+
|
|
66
|
+
| Section | File |
|
|
67
|
+
|---------|------|
|
|
68
|
+
| | |
|
|
69
|
+
<!-- END:design -->
|
|
70
|
+
|
|
71
|
+
## Design Critique
|
|
72
|
+
|
|
73
|
+
<!-- BEGIN:critique -->
|
|
74
|
+
| Section | File |
|
|
75
|
+
|---------|------|
|
|
76
|
+
| _(populated by /gsp:critique)_ | |
|
|
77
|
+
<!-- END:critique -->
|
|
78
|
+
|
|
79
|
+
## Deliverable Review
|
|
80
|
+
|
|
81
|
+
<!-- BEGIN:review -->
|
|
82
|
+
| Section | File |
|
|
83
|
+
|---------|------|
|
|
84
|
+
| _(populated by /gsp:review)_ | |
|
|
85
|
+
<!-- END:review -->
|
|
86
|
+
|
|
87
|
+
## Launch Campaign (Optional)
|
|
88
|
+
|
|
89
|
+
<!-- BEGIN:launch -->
|
|
90
|
+
| Section | File |
|
|
91
|
+
|---------|------|
|
|
92
|
+
| _(populated by /gsp:launch — optional)_ | |
|
|
93
|
+
<!-- END:launch -->
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Build Manifest: {project-name}
|
|
2
|
+
> Brand: {brand} | Built: {DATE} | Status: {complete|partial}
|
|
3
|
+
> Branch: {branch or "—"} | PR: {pr-url or "—"}
|
|
4
|
+
|
|
5
|
+
## Components
|
|
6
|
+
|
|
7
|
+
| # | Component | Path | Action |
|
|
8
|
+
|---|-----------|------|--------|
|
|
9
|
+
{rows — one per component built. Action: added | modified}
|
|
10
|
+
|
|
11
|
+
## Patterns
|
|
12
|
+
|
|
13
|
+
| # | Pattern | Description |
|
|
14
|
+
|---|---------|-------------|
|
|
15
|
+
{rows — conventions established by this project, or "No new patterns."}
|
|
16
|
+
|
|
17
|
+
## Files Touched
|
|
18
|
+
|
|
19
|
+
{flat list of all target file paths, one per line with `- ` prefix}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Project Brief
|
|
2
|
+
|
|
3
|
+
## Project: {PROJECT_NAME}
|
|
4
|
+
**Brand:** {BRAND_NAME}
|
|
5
|
+
**Date:** {DATE}
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
> This phase scopes the project. Produces planning chunks + INDEX.md in the `brief/` directory.
|
|
10
|
+
|
|
11
|
+
## Chunk Mapping
|
|
12
|
+
|
|
13
|
+
### Brief Chunks (`brief/`)
|
|
14
|
+
|
|
15
|
+
| Chunk File | Content |
|
|
16
|
+
|-----------|---------|
|
|
17
|
+
| `scope.md` | Screen/component list, priorities, project boundaries |
|
|
18
|
+
| `target-adaptations.md` | Project-specific component adaptations from the brand system |
|
|
19
|
+
| `install-manifest.md` | Install commands for needed components (conditional — shadcn/rn-reusables only) |
|
|
20
|
+
| `gap-analysis.md` | Components/tokens in design but not in codebase (conditional — existing target only) |
|
|
21
|
+
| `file-references.md` | Paths to existing components/tokens being used (conditional — existing target only) |
|
|
22
|
+
|
|
23
|
+
## Content Reference
|
|
24
|
+
|
|
25
|
+
Each chunk follows the format in `references/chunk-format.md`. Below is the structural reference for what each chunk should contain:
|
|
26
|
+
|
|
27
|
+
### scope.md
|
|
28
|
+
- **Screen list:** prioritized list of screens to design and build
|
|
29
|
+
- **Component scope:** which brand system components this project uses
|
|
30
|
+
- **Project boundaries:** what's in scope and out of scope
|
|
31
|
+
- **Success criteria:** measurable outcomes for the project
|
|
32
|
+
- **Dependencies:** external systems, APIs, content needs
|
|
33
|
+
- **Issue framing:** how this project maps to bounded issues/PRs
|
|
34
|
+
|
|
35
|
+
### target-adaptations.md
|
|
36
|
+
- **Token overrides:** project-specific token adjustments (if any)
|
|
37
|
+
- **Component adaptations:** brand components that need project-specific variants
|
|
38
|
+
- **Platform considerations:** platform-specific adjustments (mobile, desktop, etc.)
|
|
39
|
+
- **Implementation target mapping:** design components → target primitives (shadcn, rn-reusables, existing, code)
|
|
40
|
+
- Links to brand system components: `{BRAND_PATH}/system/components/{name}.md`
|
|
41
|
+
|
|
42
|
+
### install-manifest.md
|
|
43
|
+
- Install commands for all needed components
|
|
44
|
+
- Only produced for shadcn/rn-reusables targets
|
|
45
|
+
|
|
46
|
+
### gap-analysis.md
|
|
47
|
+
- Components in brand system but not in project codebase
|
|
48
|
+
- Tokens in brand system but not in project codebase
|
|
49
|
+
- Only produced for existing target codebases
|
|
50
|
+
|
|
51
|
+
### file-references.md
|
|
52
|
+
- Paths to all existing components/tokens being used
|
|
53
|
+
- Only produced for existing target codebases
|