brandspec 0.1.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 +230 -0
- package/dist/cli.js +1516 -0
- package/dist/index.cjs +773 -0
- package/dist/index.d.cts +402 -0
- package/dist/index.d.ts +402 -0
- package/dist/index.js +718 -0
- package/package.json +61 -0
- package/schema/spec/assets.md +219 -0
- package/schema/spec/core.md +203 -0
- package/schema/spec/guidelines.md +110 -0
- package/schema/spec/tokens.md +389 -0
- package/schema/v0.1.0.yaml +201 -0
- package/workshop/SKILL.md +218 -0
- package/workshop/flow.md +181 -0
- package/workshop/phases/01-discovery.md +156 -0
- package/workshop/phases/02-concept.md +234 -0
- package/workshop/phases/03-visual.md +271 -0
- package/workshop/phases/04-documentation.md +99 -0
- package/workshop/templates/_workshop/decisions.yml +15 -0
- package/workshop/templates/_workshop/memo.md +23 -0
- package/workshop/templates/_workshop/position.yml +9 -0
- package/workshop/templates/_workshop/session.md +28 -0
- package/workshop/templates/brand.yaml +112 -0
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
# brandspec workshop
|
|
2
|
+
|
|
3
|
+
A Brand Identity forge. Through dialogue — pressure, refinement, and sharpening — produce a complete `brand.yaml` and brand assets.
|
|
4
|
+
|
|
5
|
+
Compatible spec: brandspec v0.x
|
|
6
|
+
|
|
7
|
+
## Related Resources
|
|
8
|
+
|
|
9
|
+
- Repository: https://github.com/brandspec/brandspec
|
|
10
|
+
- SaaS: https://brandspec.tools
|
|
11
|
+
|
|
12
|
+
## Specification Knowledge (MUST READ)
|
|
13
|
+
|
|
14
|
+
The following files define how `brand.yaml` works. Read these before facilitating:
|
|
15
|
+
|
|
16
|
+
- `../schema/spec/core.md` — Core fields: essence, tagline, personality, voice structure (tone + principles)
|
|
17
|
+
- `../schema/spec/tokens.md` — Token format, color system (oklch, variants, dark mode), typography, spacing, radius, export mapping
|
|
18
|
+
- `../schema/spec/assets.md` — Asset structure, roles, variants, file naming, logo system patterns
|
|
19
|
+
- `../schema/spec/guidelines.md` — Guidelines structure, linting rules, severity levels
|
|
20
|
+
- `../schema/v0.1.0.yaml` — JSON Schema for validation
|
|
21
|
+
|
|
22
|
+
## Purpose
|
|
23
|
+
|
|
24
|
+
Brand Forger — forge a Brand Identity through dialogue with the user, producing a standalone brandspec repository.
|
|
25
|
+
|
|
26
|
+
The workshop is a forge. Apply pressure to raw material, refine it, put an edge on it. The resulting `brand.yaml` becomes a SSoT of Consistent Polymorphism — ensuring the same brand appears with different faces at every touchpoint.
|
|
27
|
+
|
|
28
|
+
## Deliverables
|
|
29
|
+
|
|
30
|
+
The workshop populates the `brandspec/` directory created by `brandspec init`.
|
|
31
|
+
|
|
32
|
+
```
|
|
33
|
+
brandspec/ ← inside your project
|
|
34
|
+
├── brand.yaml # SSoT — everything expands polymorphically from here
|
|
35
|
+
├── assets/ # brand assets (logos, icons, etc.)
|
|
36
|
+
└── _workshop/ # process records (keep for AI resumability)
|
|
37
|
+
├── decisions.yml
|
|
38
|
+
├── memo.md
|
|
39
|
+
└── session.md
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Flow
|
|
43
|
+
|
|
44
|
+
4 phases. See [`flow.md`](flow.md) for details.
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
Discovery → Concept → Visual Identity → Documentation
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Activation Triggers
|
|
51
|
+
|
|
52
|
+
Activate this skill on utterances like:
|
|
53
|
+
|
|
54
|
+
- "I want to create a brand identity"
|
|
55
|
+
- "Let's define a brand"
|
|
56
|
+
- "I want to create a brandspec"
|
|
57
|
+
- "Let's decide on colors and logo"
|
|
58
|
+
- "I want to define the brand direction"
|
|
59
|
+
|
|
60
|
+
## Initialization Sequence
|
|
61
|
+
|
|
62
|
+
1. **Ask session language**: Ask the user which language they prefer for the workshop session. Record as the first decision (`session_language`). Conduct the entire session in that language from this point forward.
|
|
63
|
+
2. Confirm brand name
|
|
64
|
+
3. Read `_workshop/position.yml` to determine current position
|
|
65
|
+
4. Load the corresponding phase `.md`
|
|
66
|
+
|
|
67
|
+
## Session Language
|
|
68
|
+
|
|
69
|
+
The workshop supports any language. The session language is determined at initialization and recorded in `decisions.yml`:
|
|
70
|
+
|
|
71
|
+
```yaml
|
|
72
|
+
- id: "d001"
|
|
73
|
+
timestamp: "..."
|
|
74
|
+
phase: 0
|
|
75
|
+
step: "init"
|
|
76
|
+
key: "session_language"
|
|
77
|
+
value: "en" # or "ja", "zh", "ko", "fr", etc.
|
|
78
|
+
rationale: "User preference"
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
**Rules:**
|
|
82
|
+
- All facilitator dialogue, questions, and explanations MUST be in the session language
|
|
83
|
+
- `brand.yaml` field keys remain English (they are part of the spec)
|
|
84
|
+
- `brand.yaml` values (essence, tagline, personality, etc.) are written in the session language unless the user prefers otherwise
|
|
85
|
+
- `decisions.yml` values follow the session language
|
|
86
|
+
- On session resume, read `session_language` from decisions and continue in that language
|
|
87
|
+
|
|
88
|
+
## State Management
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
_workshop/
|
|
92
|
+
├── position.yml # current phase/step
|
|
93
|
+
├── decisions.yml # confirmed decisions (append-only)
|
|
94
|
+
├── memo.md # working notes (overwritable)
|
|
95
|
+
└── session.md # session handoff summary
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### position.yml
|
|
99
|
+
|
|
100
|
+
```yaml
|
|
101
|
+
phase: 1 # 1-4
|
|
102
|
+
step: "product" # step within phase
|
|
103
|
+
mode: "facilitation" # facilitation | execution
|
|
104
|
+
revision: 1 # +1 when backtracking
|
|
105
|
+
updated: ""
|
|
106
|
+
completed_at: null # ISO date when workshop finishes
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### decisions.yml
|
|
110
|
+
|
|
111
|
+
```yaml
|
|
112
|
+
decisions: []
|
|
113
|
+
# Decision schema:
|
|
114
|
+
# - id: "d001"
|
|
115
|
+
# timestamp: "ISO 8601"
|
|
116
|
+
# phase: 1
|
|
117
|
+
# step: "product"
|
|
118
|
+
# key: "product_essence"
|
|
119
|
+
# value: "..."
|
|
120
|
+
# rationale: "..."
|
|
121
|
+
# supersedes: null # or "d00X" if overriding a previous decision
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Operating Modes
|
|
125
|
+
|
|
126
|
+
| Mode | AI Role | When |
|
|
127
|
+
|------|---------|------|
|
|
128
|
+
| facilitation | Present options, user decides | Exploring, direction unclear |
|
|
129
|
+
| execution | AI works autonomously | Direction is clear |
|
|
130
|
+
|
|
131
|
+
Switch via user utterance:
|
|
132
|
+
- "Show me options" / "Let me decide" → facilitation
|
|
133
|
+
- "You decide" / "Just do it" → execution
|
|
134
|
+
|
|
135
|
+
## Phase Details
|
|
136
|
+
|
|
137
|
+
See files in `phases/`:
|
|
138
|
+
|
|
139
|
+
- [`phases/01-discovery.md`](phases/01-discovery.md) — Discovery
|
|
140
|
+
- [`phases/02-concept.md`](phases/02-concept.md) — Concept
|
|
141
|
+
- [`phases/03-visual.md`](phases/03-visual.md) — Visual Identity
|
|
142
|
+
- [`phases/04-documentation.md`](phases/04-documentation.md) — Documentation
|
|
143
|
+
|
|
144
|
+
## Key Rules
|
|
145
|
+
|
|
146
|
+
1. **Record all decisions in decisions.yml** (use `supersedes` to reference overridden decisions)
|
|
147
|
+
2. **Update position.yml at each step completion**
|
|
148
|
+
3. **Use memo.md for working hypotheses and candidates (overwrite OK)**
|
|
149
|
+
4. **Update session.md at session end (for handoff)**
|
|
150
|
+
5. **Never advance phases without user approval**
|
|
151
|
+
6. **Increment revision in position.yml when backtracking**
|
|
152
|
+
|
|
153
|
+
## Flow Control Guidance
|
|
154
|
+
|
|
155
|
+
### Phase 3.2 Colors: Progressive Defaults
|
|
156
|
+
|
|
157
|
+
Colors is the most complex step. To reduce user burden, use a progressive approach:
|
|
158
|
+
|
|
159
|
+
1. Ask the user to decide only the primary and secondary direction
|
|
160
|
+
2. AI auto-generates the rest (surfaces, semantics, destructive) from the primary hue
|
|
161
|
+
3. Present the full palette: "Does this look right? Anything to adjust?"
|
|
162
|
+
4. Handle individual adjustments if needed, otherwise proceed
|
|
163
|
+
|
|
164
|
+
Only walk through subsections 3.2.1–3.2.5 if the user requests detailed control.
|
|
165
|
+
|
|
166
|
+
## Session Resume Algorithm
|
|
167
|
+
|
|
168
|
+
When context is lost (new session, different AI, long gap), fully restore using this procedure:
|
|
169
|
+
|
|
170
|
+
```
|
|
171
|
+
1. Read position.yml → get current phase / step / mode / revision
|
|
172
|
+
2. Read decisions.yml → load all decisions
|
|
173
|
+
3. Resolve supersedes chains:
|
|
174
|
+
- Collect decisions where supersedes != null
|
|
175
|
+
- For each key, keep only the latest (non-superseded) decision
|
|
176
|
+
4. Reconstruct current state from active decisions:
|
|
177
|
+
- Phase 1 complete? → product_essence, primary_user, positioning
|
|
178
|
+
- Phase 2 complete? → personality, voice, name, tagline
|
|
179
|
+
- Phase 3 complete? → mood, colors, typography, logo
|
|
180
|
+
5. Check session_language decision → continue session in that language
|
|
181
|
+
6. Read session.md for supplementary context (not required)
|
|
182
|
+
7. Present state summary to user:
|
|
183
|
+
"Restored your previous session.
|
|
184
|
+
Current: Phase {N}, Step {step}
|
|
185
|
+
Confirmed: {summary of active decisions}
|
|
186
|
+
Next action: {step description}
|
|
187
|
+
Continue?"
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
This algorithm enables full restoration from `decisions.yml` + `position.yml` alone. `session.md` is supplementary context, not required.
|
|
191
|
+
|
|
192
|
+
## Session Start Example
|
|
193
|
+
|
|
194
|
+
```
|
|
195
|
+
Let's start the brandspec workshop.
|
|
196
|
+
|
|
197
|
+
First — what language would you like to use for this session?
|
|
198
|
+
(e.g. English, 日本語, 中文, etc.)
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
After language is confirmed:
|
|
202
|
+
|
|
203
|
+
```
|
|
204
|
+
Great. Let's forge your brand.
|
|
205
|
+
|
|
206
|
+
Current status:
|
|
207
|
+
- Phase: Discovery
|
|
208
|
+
- Step: product
|
|
209
|
+
|
|
210
|
+
Tell me about your product.
|
|
211
|
+
What are you building? What problem does it solve?
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
## Session End
|
|
215
|
+
|
|
216
|
+
1. Record progress summary in `session.md`
|
|
217
|
+
2. Note next actions clearly
|
|
218
|
+
3. Report completion to user
|
package/workshop/flow.md
ADDED
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
# Workshop Flow
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
7
|
+
│ brandspec workshop │
|
|
8
|
+
├─────────────┬─────────────┬─────────────────┬───────────────────┤
|
|
9
|
+
│ Phase 1 │ Phase 2 │ Phase 3 │ Phase 4 │
|
|
10
|
+
│ Discovery │ Concept │ Visual Identity │ Documentation │
|
|
11
|
+
├─────────────┼─────────────┼─────────────────┼───────────────────┤
|
|
12
|
+
│ • product │ • personality│ • mood │ • defaults confirm│
|
|
13
|
+
│ • users │ • voice │ • colors │ • yaml generation │
|
|
14
|
+
│ • context │ • naming │ • typography │ • final review │
|
|
15
|
+
│ │ • tagline │ • logo │ │
|
|
16
|
+
└─────────────┴─────────────┴─────────────────┴───────────────────┘
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Output
|
|
20
|
+
|
|
21
|
+
Workshop populates the `brandspec/` directory created by `brandspec init`:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
brandspec/
|
|
25
|
+
├── brand.yaml # source of truth
|
|
26
|
+
├── assets/ # brand assets
|
|
27
|
+
└── _workshop/ # process records
|
|
28
|
+
├── position.yml
|
|
29
|
+
├── decisions.yml
|
|
30
|
+
├── memo.md
|
|
31
|
+
└── session.md
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## [Phase 1: Discovery](phases/01-discovery.md)
|
|
35
|
+
|
|
36
|
+
**Goal**: Understand what we're branding
|
|
37
|
+
|
|
38
|
+
### Steps
|
|
39
|
+
|
|
40
|
+
1. **product** - What is the product? What problem does it solve?
|
|
41
|
+
2. **users** - Who are the users? What do they need?
|
|
42
|
+
3. **context** - Market position, competitors, constraints
|
|
43
|
+
|
|
44
|
+
### Outputs
|
|
45
|
+
|
|
46
|
+
- Product essence statement
|
|
47
|
+
- User personas (brief)
|
|
48
|
+
- Competitive insights
|
|
49
|
+
|
|
50
|
+
### Complete When
|
|
51
|
+
|
|
52
|
+
- [ ] Product can be explained in one sentence
|
|
53
|
+
- [ ] Target user is clearly defined
|
|
54
|
+
- [ ] Market position is understood
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## [Phase 2: Concept](phases/02-concept.md)
|
|
59
|
+
|
|
60
|
+
**Goal**: Define brand personality and voice
|
|
61
|
+
|
|
62
|
+
### Steps
|
|
63
|
+
|
|
64
|
+
1. **personality** - Brand personality traits (3-5 adjectives)
|
|
65
|
+
2. **voice** - Tone, principles, examples
|
|
66
|
+
3. **naming** - Brand name (if not decided)
|
|
67
|
+
4. **tagline** - Tagline or slogan
|
|
68
|
+
|
|
69
|
+
### Outputs
|
|
70
|
+
|
|
71
|
+
- Personality traits
|
|
72
|
+
- Voice & tone guidelines
|
|
73
|
+
- Name (confirmed)
|
|
74
|
+
- Tagline options → final selection
|
|
75
|
+
|
|
76
|
+
### Complete When
|
|
77
|
+
|
|
78
|
+
- [ ] Personality traits selected
|
|
79
|
+
- [ ] Voice principles documented
|
|
80
|
+
- [ ] Name confirmed
|
|
81
|
+
- [ ] Tagline selected
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## [Phase 3: Visual Identity](phases/03-visual.md)
|
|
86
|
+
|
|
87
|
+
**Goal**: Create visual language
|
|
88
|
+
|
|
89
|
+
### Steps
|
|
90
|
+
|
|
91
|
+
1. **mood** - Visual direction, references, mood
|
|
92
|
+
2. **colors** - Color palette (primary, secondary, etc.)
|
|
93
|
+
3. **typography** - Font selection
|
|
94
|
+
4. **logo** - Logo direction/concept
|
|
95
|
+
|
|
96
|
+
### Outputs
|
|
97
|
+
|
|
98
|
+
- Mood references
|
|
99
|
+
- Color palette (oklch values)
|
|
100
|
+
- Typography selection
|
|
101
|
+
- Logo brief (actual logo creation may be external)
|
|
102
|
+
|
|
103
|
+
### Complete When
|
|
104
|
+
|
|
105
|
+
- [ ] Color palette finalized
|
|
106
|
+
- [ ] Typography selected
|
|
107
|
+
- [ ] Logo direction documented
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## [Phase 4: Documentation](phases/04-documentation.md)
|
|
112
|
+
|
|
113
|
+
**Goal**: Generate final deliverables into brandspec repository
|
|
114
|
+
|
|
115
|
+
### Steps
|
|
116
|
+
|
|
117
|
+
1. **defaults** - Confirm standard spacing/radius (customize if needed)
|
|
118
|
+
2. **yaml** - Generate `brand.yaml` (+ register assets if any)
|
|
119
|
+
3. **review** - Final review and approval
|
|
120
|
+
|
|
121
|
+
### Outputs
|
|
122
|
+
|
|
123
|
+
- `brand.yaml` - Machine-readable spec (brandspec directory root)
|
|
124
|
+
- `assets/` - Brand assets (if any)
|
|
125
|
+
- `_workshop/` - Process records (decisions.yml, memo.md, session.md)
|
|
126
|
+
|
|
127
|
+
### Complete When
|
|
128
|
+
|
|
129
|
+
- [ ] `brand.yaml` generated and valid
|
|
130
|
+
- [ ] User has reviewed and approved
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## State Transitions
|
|
135
|
+
|
|
136
|
+
```
|
|
137
|
+
Discovery ──[all steps complete]──> Concept
|
|
138
|
+
Concept ──[all steps complete]──> Visual Identity
|
|
139
|
+
Visual ──[all steps complete]──> Documentation
|
|
140
|
+
Documentation ──[approved]──────> COMPLETE
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Backtracking Rules
|
|
144
|
+
|
|
145
|
+
Going back to a previous phase is allowed. When backtracking:
|
|
146
|
+
|
|
147
|
+
1. Increment `revision` in `position.yml` by 1
|
|
148
|
+
2. New decisions MUST include `supersedes` referencing the previous decision ID
|
|
149
|
+
3. When generating YAML in Phase 4, use only the latest (non-superseded) decisions
|
|
150
|
+
4. Superseded decisions remain in `decisions.yml` (append-only is preserved)
|
|
151
|
+
|
|
152
|
+
## Operating Modes
|
|
153
|
+
|
|
154
|
+
### Facilitation Mode (Default)
|
|
155
|
+
|
|
156
|
+
AI presents options, user decides.
|
|
157
|
+
|
|
158
|
+
```
|
|
159
|
+
AI: "Here are 3 personality directions:
|
|
160
|
+
a) Professional & Trustworthy
|
|
161
|
+
b) Playful & Approachable
|
|
162
|
+
c) Bold & Innovative
|
|
163
|
+
Which resonates?"
|
|
164
|
+
|
|
165
|
+
User: "b"
|
|
166
|
+
|
|
167
|
+
AI: [Records decision, moves forward]
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Execution Mode
|
|
171
|
+
|
|
172
|
+
AI makes decisions autonomously.
|
|
173
|
+
|
|
174
|
+
```
|
|
175
|
+
User: "Just create a brand for a productivity app"
|
|
176
|
+
|
|
177
|
+
AI: [Runs through all phases]
|
|
178
|
+
[Presents complete brandspec for review]
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Switch with: "Let me decide" / "You decide"
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
# Phase 1: Discovery
|
|
2
|
+
|
|
3
|
+
## Goal
|
|
4
|
+
|
|
5
|
+
Understand what we're branding before we brand it.
|
|
6
|
+
|
|
7
|
+
## Steps
|
|
8
|
+
|
|
9
|
+
### 1.1 Product
|
|
10
|
+
|
|
11
|
+
**Questions to answer:**
|
|
12
|
+
|
|
13
|
+
- What is the product/service/company?
|
|
14
|
+
- What problem does it solve?
|
|
15
|
+
- What makes it unique?
|
|
16
|
+
- What's the core value proposition?
|
|
17
|
+
|
|
18
|
+
**Facilitation prompts:**
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
Describe your product in one sentence.
|
|
22
|
+
What would users miss most if it disappeared?
|
|
23
|
+
How is this different from alternatives?
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Output: Product Essence**
|
|
27
|
+
|
|
28
|
+
A single sentence capturing the core of what this is.
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
# Example
|
|
32
|
+
product_essence: "AI-powered writing assistant that helps non-native speakers write confidently"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
### 1.2 Users
|
|
38
|
+
|
|
39
|
+
**Questions to answer:**
|
|
40
|
+
|
|
41
|
+
- Who is the primary user?
|
|
42
|
+
- What are their goals?
|
|
43
|
+
- What are their pain points?
|
|
44
|
+
- What's their context (B2B/B2C, technical level, etc.)?
|
|
45
|
+
|
|
46
|
+
**Facilitation prompts:**
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
Who uses this? Paint a picture of your ideal user.
|
|
50
|
+
What's frustrating them right now?
|
|
51
|
+
Where do they encounter your product?
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**Output: User Definition**
|
|
55
|
+
|
|
56
|
+
```yaml
|
|
57
|
+
# Example
|
|
58
|
+
primary_user:
|
|
59
|
+
who: "Non-native English speakers in professional settings"
|
|
60
|
+
goals:
|
|
61
|
+
- "Write emails that sound natural"
|
|
62
|
+
- "Avoid embarrassing mistakes"
|
|
63
|
+
pain_points:
|
|
64
|
+
- "Unsure if their writing sounds professional"
|
|
65
|
+
- "Existing tools feel like cheating"
|
|
66
|
+
context: "B2C, used during work hours"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
### 1.3 Context
|
|
72
|
+
|
|
73
|
+
**Questions to answer:**
|
|
74
|
+
|
|
75
|
+
- Who are the competitors?
|
|
76
|
+
- What's the market position?
|
|
77
|
+
- Are there constraints (regulatory, technical, budget)?
|
|
78
|
+
- What's the timeline/stage?
|
|
79
|
+
|
|
80
|
+
**Facilitation prompts:**
|
|
81
|
+
|
|
82
|
+
```
|
|
83
|
+
What alternatives do users have today?
|
|
84
|
+
Where do you want to position relative to competitors?
|
|
85
|
+
Any constraints I should know about?
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
**Output: Market Context**
|
|
89
|
+
|
|
90
|
+
```yaml
|
|
91
|
+
# Example
|
|
92
|
+
competitors:
|
|
93
|
+
- name: "Grammarly"
|
|
94
|
+
position: "Mass market, feature-heavy"
|
|
95
|
+
- name: "Hemingway"
|
|
96
|
+
position: "Simplicity-focused"
|
|
97
|
+
|
|
98
|
+
positioning: "Premium feel, focused on confidence not correction"
|
|
99
|
+
|
|
100
|
+
constraints:
|
|
101
|
+
- "Launch in 3 months"
|
|
102
|
+
- "Small team, can't maintain complex brand"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Phase Complete Checklist
|
|
108
|
+
|
|
109
|
+
- [ ] Product essence defined (one sentence)
|
|
110
|
+
- [ ] Primary user identified
|
|
111
|
+
- [ ] Competitive context understood
|
|
112
|
+
- [ ] All recorded in `decisions.yml`
|
|
113
|
+
|
|
114
|
+
## Transition to Phase 2
|
|
115
|
+
|
|
116
|
+
When all items are checked:
|
|
117
|
+
|
|
118
|
+
```yaml
|
|
119
|
+
# Update position.yml
|
|
120
|
+
phase: 2
|
|
121
|
+
step: "personality"
|
|
122
|
+
mode: "facilitation"
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Example Session
|
|
126
|
+
|
|
127
|
+
```
|
|
128
|
+
AI: Let's start with Discovery. Tell me about your product.
|
|
129
|
+
What are you building?
|
|
130
|
+
|
|
131
|
+
User: It's a SaaS for managing Brand Identity files.
|
|
132
|
+
|
|
133
|
+
AI: Interesting! What problem does this solve? Why would someone
|
|
134
|
+
choose this over just using Google Drive?
|
|
135
|
+
|
|
136
|
+
User: Designers hand off brand assets but they get lost,
|
|
137
|
+
outdated versions get used, there's no single source of truth.
|
|
138
|
+
|
|
139
|
+
AI: Got it. So the core value is "Single source of truth for brand assets."
|
|
140
|
+
Let me capture that:
|
|
141
|
+
|
|
142
|
+
Product essence: "Single source of truth for Brand Identity
|
|
143
|
+
that ensures teams always use the right assets."
|
|
144
|
+
|
|
145
|
+
Does that capture it?
|
|
146
|
+
|
|
147
|
+
User: Yes, but also add that it works with their existing tools.
|
|
148
|
+
|
|
149
|
+
AI: Updated:
|
|
150
|
+
"Single source of truth for Brand Identity that integrates
|
|
151
|
+
with existing design and development workflows."
|
|
152
|
+
|
|
153
|
+
[Records to decisions.yml]
|
|
154
|
+
|
|
155
|
+
Now let's talk about users. Who's buying and who's using?
|
|
156
|
+
```
|