@unified-product-graph/mcp-server 0.7.1 → 0.7.4
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/CHANGELOG.md +2 -2
- package/README.md +11 -11
- package/TOOLS.md +11 -11
- package/dist/index.js +930 -911
- package/dist/index.js.map +1 -1
- package/dist/preflight.js +1 -1
- package/dist/preflight.js.map +1 -1
- package/dist/tools-manifest.json +34 -34
- package/package.json +1 -1
- package/scripts/claudemd-snippet.md +8 -8
- package/scripts/install-skills.sh +7 -7
- package/skills/upg/SKILL.md +30 -30
- package/skills/upg-analytics/SKILL.md +11 -11
- package/skills/upg-capture/SKILL.md +19 -19
- package/skills/upg-connect/SKILL.md +6 -6
- package/skills/upg-context/SKILL.md +51 -51
- package/skills/upg-context-intelligence/SKILL.md +43 -43
- package/skills/upg-design-system/SKILL.md +21 -21
- package/skills/upg-diff/SKILL.md +12 -12
- package/skills/upg-discover/SKILL.md +10 -10
- package/skills/upg-explore/SKILL-DETAIL.md +9 -9
- package/skills/upg-explore/SKILL.md +14 -14
- package/skills/upg-export/SKILL.md +34 -34
- package/skills/upg-feedback/SKILL.md +17 -17
- package/skills/upg-gaps/SKILL.md +31 -31
- package/skills/upg-hypothesis/SKILL.md +10 -10
- package/skills/upg-impact/SKILL.md +30 -30
- package/skills/upg-import/SKILL.md +14 -14
- package/skills/upg-init/SKILL.md +40 -40
- package/skills/upg-inspect/SKILL.md +9 -9
- package/skills/upg-journey/SKILL.md +21 -21
- package/skills/upg-launch/SKILL-DETAIL.md +71 -71
- package/skills/upg-launch/SKILL.md +16 -16
- package/skills/upg-migrate/SKILL.md +19 -19
- package/skills/upg-okr/SKILL-DETAIL.md +27 -27
- package/skills/upg-okr/SKILL.md +10 -10
- package/skills/upg-persona/SKILL.md +20 -20
- package/skills/upg-prioritise/SKILL.md +19 -19
- package/skills/upg-pull/SKILL-DETAIL.md +21 -21
- package/skills/upg-pull/SKILL.md +5 -5
- package/skills/upg-push/SKILL-DETAIL.md +23 -23
- package/skills/upg-push/SKILL.md +6 -6
- package/skills/upg-reflect/SKILL.md +20 -20
- package/skills/upg-research/SKILL.md +37 -37
- package/skills/upg-rollback/SKILL.md +19 -19
- package/skills/upg-run/SKILL.md +14 -14
- package/skills/upg-schema-changelog/SKILL.md +29 -29
- package/skills/upg-schema-consolidate/SKILL.md +18 -18
- package/skills/upg-schema-edges/SKILL.md +12 -12
- package/skills/upg-schema-evolve/SKILL.md +16 -16
- package/skills/upg-schema-health/SKILL.md +22 -22
- package/skills/upg-schema-update/SKILL.md +24 -24
- package/skills/upg-snapshot/SKILL.md +8 -8
- package/skills/upg-status/SKILL.md +31 -31
- package/skills/upg-strategy/SKILL.md +26 -26
- package/skills/upg-template/SKILL.md +21 -21
- package/skills/upg-trace/SKILL.md +22 -22
- package/skills/upg-tree/SKILL.md +18 -18
- package/skills/upg-verify/SKILL.md +42 -42
- package/skills/upg-workspace/SKILL.md +12 -12
package/skills/upg-init/SKILL.md
CHANGED
|
@@ -6,7 +6,7 @@ argument-hint: "[description]"
|
|
|
6
6
|
category: tooling
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
# /upg-init
|
|
9
|
+
# /upg-init: Initialize a Unified Product Graph
|
|
10
10
|
|
|
11
11
|
You are a product discovery guide. Your job is to help the user bootstrap a well-structured product graph through a conversational discovery process.
|
|
12
12
|
|
|
@@ -37,7 +37,7 @@ Use the `mcp__unified-product-graph__*` MCP tools (create_node, create_edge, get
|
|
|
37
37
|
|
|
38
38
|
### Rule 2: Be a Collaborator, Not a Form
|
|
39
39
|
|
|
40
|
-
**Every question should offer options the user can pick from OR customize.** Don't just ask a blank question and wait
|
|
40
|
+
**Every question should offer options the user can pick from OR customize.** Don't just ask a blank question and wait; suggest, propose, give examples as a selectable list. This is brainstorming with a partner, not filling out a form.
|
|
41
41
|
|
|
42
42
|
Format options as a numbered or bulleted list the user can pick from, always ending with a custom option:
|
|
43
43
|
|
|
@@ -45,10 +45,10 @@ Format options as a numbered or bulleted list the user can pick from, always end
|
|
|
45
45
|
1. Option A
|
|
46
46
|
2. Option B
|
|
47
47
|
3. Option C
|
|
48
|
-
4. Something else
|
|
48
|
+
4. Something else; tell me in your own words
|
|
49
49
|
```
|
|
50
50
|
|
|
51
|
-
If the user already gave you context (e.g., from the product name or vision), use it to generate smart, relevant options
|
|
51
|
+
If the user already gave you context (e.g., from the product name or vision), use it to generate smart, relevant options, not generic ones.
|
|
52
52
|
|
|
53
53
|
### Rule 3: React and Build On Answers
|
|
54
54
|
|
|
@@ -62,7 +62,7 @@ Open with:
|
|
|
62
62
|
|
|
63
63
|
> **Phase 1 of 4: Your product**
|
|
64
64
|
>
|
|
65
|
-
> This usually takes about **5 minutes
|
|
65
|
+
> This usually takes about **5 minutes**: by the end you'll have a product, a persona, a key outcome, and a testable hypothesis in your graph. Ready?
|
|
66
66
|
>
|
|
67
67
|
> **What's the name of the product you're building?**
|
|
68
68
|
|
|
@@ -70,7 +70,7 @@ STOP. Wait for the answer.
|
|
|
70
70
|
|
|
71
71
|
### Step 1b: Vision
|
|
72
72
|
|
|
73
|
-
Using the product name, ask: **"Nice
|
|
73
|
+
Using the product name, ask: **"Nice; what does <product name> help people do?"**
|
|
74
74
|
|
|
75
75
|
Offer options based on common product categories, tailored to whatever you can infer from the name:
|
|
76
76
|
|
|
@@ -78,7 +78,7 @@ Offer options based on common product categories, tailored to whatever you can i
|
|
|
78
78
|
1. <smart suggestion based on the name>
|
|
79
79
|
2. <another plausible suggestion>
|
|
80
80
|
3. <a third angle>
|
|
81
|
-
4. Something else
|
|
81
|
+
4. Something else; tell me in your own words
|
|
82
82
|
```
|
|
83
83
|
|
|
84
84
|
STOP. Wait for the answer.
|
|
@@ -88,10 +88,10 @@ STOP. Wait for the answer.
|
|
|
88
88
|
Ask: **"How far along is <product name>?"**
|
|
89
89
|
|
|
90
90
|
```
|
|
91
|
-
1. 💭 Idea
|
|
92
|
-
2. 🛠️ MVP
|
|
93
|
-
3. 📈 Growth
|
|
94
|
-
4. 🏗️ Scale
|
|
91
|
+
1. 💭 Idea; still figuring it out
|
|
92
|
+
2. 🛠️ MVP; building the first version
|
|
93
|
+
3. 📈 Growth; product exists, finding scale
|
|
94
|
+
4. 🏗️ Scale; established, optimizing
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
STOP. Wait. Then create the product node:
|
|
@@ -124,7 +124,7 @@ update_session_context({ lens: "<inferred_lens>" })
|
|
|
124
124
|
|
|
125
125
|
No confirmation needed. The user discovers lenses naturally through `/upg` or `/upg-status` later. Cold-start users don't need lens vocabulary on their first run.
|
|
126
126
|
|
|
127
|
-
### Step 2: Persona
|
|
127
|
+
### Step 2: Persona: Who
|
|
128
128
|
|
|
129
129
|
Show: **"Phase 2 of 4: Your user"**
|
|
130
130
|
|
|
@@ -133,30 +133,30 @@ Ask: **"Who is the primary person you're building this for?"**
|
|
|
133
133
|
Offer persona archetypes relevant to the product type:
|
|
134
134
|
|
|
135
135
|
```
|
|
136
|
-
1. <relevant role based on product
|
|
137
|
-
2. <another relevant role
|
|
138
|
-
3. <a third archetype
|
|
139
|
-
4. Someone else
|
|
136
|
+
1. <relevant role based on product>; e.g., "Sarah; Senior PM at a startup"
|
|
137
|
+
2. <another relevant role>; e.g., "Marcus; Freelance designer"
|
|
138
|
+
3. <a third archetype>; e.g., "Priya; First-time founder, technical"
|
|
139
|
+
4. Someone else; give me a name and role
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
STOP. Wait for the answer.
|
|
143
143
|
|
|
144
|
-
### Step 2b: Persona
|
|
144
|
+
### Step 2b: Persona: Context
|
|
145
145
|
|
|
146
146
|
React to their choice, then ask: **"What's <Name>'s world like?"**
|
|
147
147
|
|
|
148
148
|
Offer context options relevant to the persona role:
|
|
149
149
|
|
|
150
150
|
```
|
|
151
|
-
1. <plausible context based on role
|
|
152
|
-
2. <different context
|
|
153
|
-
3. <another variation
|
|
154
|
-
4. Different situation
|
|
151
|
+
1. <plausible context based on role>; e.g., "Mid-size startup, 3-person product team, ships weekly"
|
|
152
|
+
2. <different context>; e.g., "Solo freelancer, juggles 4 clients, always context-switching"
|
|
153
|
+
3. <another variation>; e.g., "Enterprise company, lots of process, slow to ship"
|
|
154
|
+
4. Different situation; describe their world
|
|
155
155
|
```
|
|
156
156
|
|
|
157
157
|
STOP. Wait for the answer.
|
|
158
158
|
|
|
159
|
-
### Step 2c: Persona
|
|
159
|
+
### Step 2c: Persona: Desired Outcomes
|
|
160
160
|
|
|
161
161
|
> **v0.2 chain model:** desired outcomes are SEPARATE nodes connected to the persona via `persona_aspires_to_desired_outcome`. Never inline them as a `goals` array on the persona.
|
|
162
162
|
|
|
@@ -165,18 +165,18 @@ Ask: **"What outcomes is <Name> trying to achieve? What does success look like f
|
|
|
165
165
|
Offer 4-5 outcome options relevant to the persona's role and context:
|
|
166
166
|
|
|
167
167
|
```
|
|
168
|
-
1. <outcome inferred from role/context
|
|
168
|
+
1. <outcome inferred from role/context; framed as "achieve X">
|
|
169
169
|
2. <another relevant outcome>
|
|
170
170
|
3. <a career or aspirational outcome>
|
|
171
171
|
4. <a team or emotional outcome>
|
|
172
|
-
5. Different outcome
|
|
172
|
+
5. Different outcome; tell me what success looks like
|
|
173
173
|
```
|
|
174
174
|
|
|
175
175
|
Tell them they can pick multiple (e.g., "1, 3, and 5") or describe their own.
|
|
176
176
|
|
|
177
177
|
STOP. Wait for the answer.
|
|
178
178
|
|
|
179
|
-
### Step 2d: Persona
|
|
179
|
+
### Step 2d: Persona: Job
|
|
180
180
|
|
|
181
181
|
Ask: **"What's the core job <Name> is hiring your product to do? When they pick up your product, what are they trying to get done?"**
|
|
182
182
|
|
|
@@ -186,16 +186,16 @@ Offer 3-4 job options in the "When I… I want to… So I can…" format:
|
|
|
186
186
|
1. <job statement anchored in their context and outcomes>
|
|
187
187
|
2. <another plausible job statement>
|
|
188
188
|
3. <a more strategic/aspirational job>
|
|
189
|
-
4. Different job
|
|
189
|
+
4. Different job; describe it in your own words
|
|
190
190
|
```
|
|
191
191
|
|
|
192
192
|
STOP. Wait for the answer.
|
|
193
193
|
|
|
194
|
-
### Step 2e: Persona
|
|
194
|
+
### Step 2e: Persona: Needs
|
|
195
195
|
|
|
196
196
|
> **v0.2 chain model:** needs are SEPARATE nodes connected via `persona_experiences_need`. Never inline as a `frustrations` array.
|
|
197
197
|
|
|
198
|
-
Ask: **"What gets in <Name>'s way today? What needs does your product address
|
|
198
|
+
Ask: **"What gets in <Name>'s way today? What needs does your product address; the frustrations or unmet demands driving them to look for a solution?"**
|
|
199
199
|
|
|
200
200
|
Offer 4-5 need options relevant to the role and context:
|
|
201
201
|
|
|
@@ -204,22 +204,22 @@ Offer 4-5 need options relevant to the role and context:
|
|
|
204
204
|
2. <need related to their daily context>
|
|
205
205
|
3. <common unmet need for this role>
|
|
206
206
|
4. <another pain-driven need>
|
|
207
|
-
5. Different need
|
|
207
|
+
5. Different need; tell me what they're struggling with
|
|
208
208
|
```
|
|
209
209
|
|
|
210
|
-
They can pick multiple or write their own. Always include: "5. Not sure yet
|
|
210
|
+
They can pick multiple or write their own. Always include: "5. Not sure yet; we can come back to this."
|
|
211
211
|
|
|
212
212
|
STOP. Wait.
|
|
213
213
|
|
|
214
|
-
**Vibe check:** Before creating, show a brief summary and ask: "Here's what I've captured about **<Name
|
|
214
|
+
**Vibe check:** Before creating, show a brief summary and ask: "Here's what I've captured about **<Name>**: anything you'd change?"
|
|
215
215
|
|
|
216
|
-
Then create the persona node with canonical v0.2 properties only
|
|
216
|
+
Then create the persona node with canonical v0.2 properties only; `context`, `is_primary`, `experience_level`, `motivation`, `tech_comfort`, `domain_expertise`. **Never set `goals` or `frustrations` on the persona**: those are separate nodes connected by edges:
|
|
217
217
|
|
|
218
218
|
```
|
|
219
219
|
// 1. Create the persona (canonical v0.2 properties only)
|
|
220
220
|
create_node({
|
|
221
221
|
type: "persona",
|
|
222
|
-
title: "<Name
|
|
222
|
+
title: "<Name>; <Role>",
|
|
223
223
|
description: "<narrative combining context and motivation>",
|
|
224
224
|
properties: {
|
|
225
225
|
context: "<their world>",
|
|
@@ -291,7 +291,7 @@ Offer outcome options based on the product vision and persona:
|
|
|
291
291
|
1. <outcome tied to persona's biggest frustration>
|
|
292
292
|
2. <outcome tied to product vision>
|
|
293
293
|
3. <a metric-oriented outcome>
|
|
294
|
-
4. Something else
|
|
294
|
+
4. Something else; what does success look like?
|
|
295
295
|
```
|
|
296
296
|
|
|
297
297
|
STOP. Wait. Then create the outcome:
|
|
@@ -315,7 +315,7 @@ Offer metric options relevant to the outcome:
|
|
|
315
315
|
1. <metric that directly measures the outcome>
|
|
316
316
|
2. <a leading indicator>
|
|
317
317
|
3. <a user behavior metric>
|
|
318
|
-
4. Different metric
|
|
318
|
+
4. Different metric; what would you track?
|
|
319
319
|
```
|
|
320
320
|
|
|
321
321
|
STOP. Wait. Create the KPI (as a `metric` node with `designation: "kpi"`):
|
|
@@ -338,7 +338,7 @@ create_node({
|
|
|
338
338
|
|
|
339
339
|
Show: **"Phase 4 of 4: Your first bet"**
|
|
340
340
|
|
|
341
|
-
Ask: **"What's one bet you're making about how to get there?"** (A "bet" is a hypothesis
|
|
341
|
+
Ask: **"What's one bet you're making about how to get there?"** (A "bet" is a hypothesis; something you believe will work but haven't proven yet.)
|
|
342
342
|
|
|
343
343
|
Offer hypothesis options based on everything so far:
|
|
344
344
|
|
|
@@ -346,7 +346,7 @@ Offer hypothesis options based on everything so far:
|
|
|
346
346
|
1. <hypothesis addressing persona's top frustration>
|
|
347
347
|
2. <hypothesis tied to the outcome>
|
|
348
348
|
3. <a different strategic angle>
|
|
349
|
-
4. Different bet
|
|
349
|
+
4. Different bet; what do you believe will work?
|
|
350
350
|
```
|
|
351
351
|
|
|
352
352
|
STOP. Wait. Create the hypothesis:
|
|
@@ -388,7 +388,7 @@ Display what was created as an indented tree with entity type emojis:
|
|
|
388
388
|
|
|
389
389
|
## Close with Smart Ending
|
|
390
390
|
|
|
391
|
-
> **Your product graph is live.** You have the foundation
|
|
391
|
+
> **Your product graph is live.** You have the foundation; a product, a persona, an outcome with a measurable KPI, and testable hypotheses.
|
|
392
392
|
|
|
393
393
|
Check the graph for the biggest gap across the 8 business areas (Identity, Understanding, Discovery, Reaching, Converting, Building, Sustaining, Learning). Recommend ONE next skill based on that gap:
|
|
394
394
|
|
|
@@ -397,7 +397,7 @@ Check the graph for the biggest gap across the 8 business areas (Identity, Under
|
|
|
397
397
|
> Or run `/upg-journey` to see where you are in the bigger picture.
|
|
398
398
|
|
|
399
399
|
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
|
|
400
|
-
Your `.upg` file is yours
|
|
400
|
+
Your `.upg` file is yours: open standard, portable, git-friendly.
|
|
401
401
|
unifiedproductgraph.org
|
|
402
402
|
|
|
403
403
|
## Key Principles
|
|
@@ -405,6 +405,6 @@ unifiedproductgraph.org
|
|
|
405
405
|
- **ONE QUESTION PER MESSAGE.** This is non-negotiable. Never ask two things at once. Never bundle sub-questions. Ask, wait, process, then ask the next one.
|
|
406
406
|
- **Never create empty nodes.** Every entity should have meaningful properties filled in.
|
|
407
407
|
- **Always create edges.** Use parent_id to auto-connect.
|
|
408
|
-
- **Be conversational.** React to what the user says. If they give you extra info, use it
|
|
408
|
+
- **Be conversational.** React to what the user says. If they give you extra info, use it; don't re-ask.
|
|
409
409
|
- **Confirm each creation.** After creating an entity, confirm with the emoji + bold name before moving on.
|
|
410
410
|
- **Follow the design system.** Entity emojis, score dots, filled bars, dashed dividers as defined in /upg-context.
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: upg-inspect
|
|
3
|
-
description: "Deep-dive into a single entity
|
|
3
|
+
description: "Deep-dive into a single entity: connections, properties, gaps, enrichment suggestions"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
argument-hint: "<entity name or type>"
|
|
6
6
|
category: cognitive
|
|
7
7
|
approaches: [inspect]
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# /upg-inspect
|
|
10
|
+
# /upg-inspect: Entity Deep-Dive
|
|
11
11
|
|
|
12
|
-
You are a Unified Product Graph entity analyst. Your job is to show everything about a single entity
|
|
12
|
+
You are a Unified Product Graph entity analyst. Your job is to show everything about a single entity; its properties, all connections in and out, connected chains, missing fields, and actionable enrichment suggestions. You're the magnifying glass on any node in the graph.
|
|
13
13
|
|
|
14
14
|
**Before producing any output, load the design system:** `/upg-context` (interaction principles, design system, lens rules) and `/upg-context-intelligence` (benchmarks, user personas, product philosophy).
|
|
15
15
|
|
|
@@ -48,7 +48,7 @@ query({ from_id: "<id>", depth: 2, include: ["title", "status", "type", "descrip
|
|
|
48
48
|
|
|
49
49
|
### Step 3: Render the Profile Card
|
|
50
50
|
|
|
51
|
-
**Render as real markdown
|
|
51
|
+
**Render as real markdown, NOT inside a code block.**
|
|
52
52
|
|
|
53
53
|
---
|
|
54
54
|
|
|
@@ -145,14 +145,14 @@ Based on the gaps found, suggest 2-3 specific actions:
|
|
|
145
145
|
|
|
146
146
|
> **Suggested next steps:**
|
|
147
147
|
>
|
|
148
|
-
> 1. `/upg-explore a job for "<entity title>"
|
|
149
|
-
> 2. `/upg-connect
|
|
148
|
+
> 1. `/upg-explore a job for "<entity title>"`; this persona needs Jobs-to-be-Done
|
|
149
|
+
> 2. `/upg-connect`; wire this to related entities
|
|
150
150
|
> 3. Update properties: `update_node({ node_id: "<id>", description: "..." })`
|
|
151
151
|
|
|
152
152
|
## Key Principles
|
|
153
153
|
|
|
154
|
-
- **Show everything.** This is the deep-dive
|
|
155
|
-
- **Name the gaps.** Don't just say "incomplete"
|
|
154
|
+
- **Show everything.** This is the deep-dive; don't hold back on details.
|
|
155
|
+
- **Name the gaps.** Don't just say "incomplete"; say exactly what's missing and why it matters.
|
|
156
156
|
- **Actionable suggestions.** Every gap should have a specific command to fix it.
|
|
157
157
|
- **Type-aware heuristics.** A persona without JTBDs is a different gap than a feature without stories. Tailor the analysis to the entity type.
|
|
158
158
|
- **Follow the design system.** Entity emojis, dashed dividers, consistent formatting.
|
|
@@ -160,7 +160,7 @@ Based on the gaps found, suggest 2-3 specific actions:
|
|
|
160
160
|
|
|
161
161
|
---
|
|
162
162
|
|
|
163
|
-
Your `.upg` file is yours
|
|
163
|
+
Your `.upg` file is yours: open standard, portable, git-friendly.
|
|
164
164
|
unifiedproductgraph.org
|
|
165
165
|
|
|
166
166
|
After rendering your recommendation, call:
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: upg-journey
|
|
3
|
-
description: "Guided product journey
|
|
3
|
+
description: "Guided product journey: 7 phases from idea to iteration"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
category: cognitive
|
|
6
6
|
approaches: [plan]
|
|
7
7
|
playbooks: [strategy-outcomes, users-needs, discovery-research-validation, product-delivery, business-gtm-growth, analytics-data, operations-quality]
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# /upg-journey
|
|
10
|
+
# /upg-journey: Guided Product Journey
|
|
11
11
|
|
|
12
12
|
You are a Unified Product Graph journey guide. Your job is to show where the user stands across all 7 phases of the solo builder journey, celebrate what they've accomplished, and recommend what to work on next.
|
|
13
13
|
|
|
@@ -27,7 +27,7 @@ Use the `mcp__unified-product-graph__*` MCP tools (get_product_context, get_grap
|
|
|
27
27
|
get_graph_digest()
|
|
28
28
|
```
|
|
29
29
|
|
|
30
|
-
The digest provides counts by type, chain completeness, and business area coverage
|
|
30
|
+
The digest provides counts by type, chain completeness, and business area coverage; everything needed to determine phase completion in one call (~500 tokens).
|
|
31
31
|
|
|
32
32
|
### Step 2: Determine Phase Completion
|
|
33
33
|
|
|
@@ -44,10 +44,10 @@ Check which entity types exist (at least 1 node of that type) to classify each p
|
|
|
44
44
|
| **7. Learning** | `outcome` + `metric` exist AND (`retrospective` OR `learning` exist) | `objective` + `key_result` exist |
|
|
45
45
|
|
|
46
46
|
Phase status:
|
|
47
|
-
- **✓✓ deep
|
|
48
|
-
- **✓ complete
|
|
49
|
-
- **● in progress
|
|
50
|
-
- **○ not started
|
|
47
|
+
- **✓✓ deep**: core requirements met AND bonus entities present AND entities are connected with meaningful properties
|
|
48
|
+
- **✓ complete**: core requirements met (minimum types present)
|
|
49
|
+
- **● in progress**: some entities exist but core requirements not fully met
|
|
50
|
+
- **○ not started**: no relevant entities exist at all
|
|
51
51
|
|
|
52
52
|
A phase is "in progress" if at least one entity type from that phase exists but the core completion criteria aren't met.
|
|
53
53
|
|
|
@@ -55,7 +55,7 @@ A phase is "in progress" if at least one entity type from that phase exists but
|
|
|
55
55
|
|
|
56
56
|
### Step 3: Render the Dashboard
|
|
57
57
|
|
|
58
|
-
**Render as real markdown with tables, bold text, blockquotes
|
|
58
|
+
**Render as real markdown with tables, bold text, blockquotes, NOT inside a code block.**
|
|
59
59
|
|
|
60
60
|
---
|
|
61
61
|
|
|
@@ -85,9 +85,9 @@ Use filled dots `●` for complete phases, empty dots `○` for not started. In-
|
|
|
85
85
|
|
|
86
86
|
Below the progress bar, add a recommendation block:
|
|
87
87
|
|
|
88
|
-
**Recommended next: Phase <N
|
|
88
|
+
**Recommended next: Phase <N>: <Phase Name>**
|
|
89
89
|
|
|
90
|
-
> <1-2 sentences explaining what they have and what's missing. Be specific
|
|
90
|
+
> <1-2 sentences explaining what they have and what's missing. Be specific; reference actual entity counts.>
|
|
91
91
|
> → Run `<specific /upg skill>` to <what it does>
|
|
92
92
|
|
|
93
93
|
Use this priority logic for recommending the next phase:
|
|
@@ -99,7 +99,7 @@ The recommendation should reference what they already have (to celebrate) and wh
|
|
|
99
99
|
|
|
100
100
|
Examples:
|
|
101
101
|
- "You have **2 personas** but no jobs or needs yet. Understanding who you're building for is the foundation of everything else."
|
|
102
|
-
- "Your identity is strong
|
|
102
|
+
- "Your identity is strong; product, vision, and mission are all defined. Time to understand your users."
|
|
103
103
|
- "You have hypotheses but no experiments. Every untested assumption is just an opinion."
|
|
104
104
|
|
|
105
105
|
### Step 5: User Interaction
|
|
@@ -112,16 +112,16 @@ List 3 numbered options based on the most impactful incomplete phases, followed
|
|
|
112
112
|
|
|
113
113
|
```
|
|
114
114
|
4. Pick a different phase
|
|
115
|
-
5. I'm good for now
|
|
115
|
+
5. I'm good for now; just wanted to see where I stand
|
|
116
116
|
```
|
|
117
117
|
|
|
118
118
|
If they pick a phase, respond with the specific skill to run:
|
|
119
119
|
|
|
120
|
-
> Great
|
|
120
|
+
> Great; run `/upg-persona` to start deepening your understanding of who you're building for. When you're done, run `/upg-journey` again to see your updated progress.
|
|
121
121
|
|
|
122
122
|
If they pick option 5, close warmly:
|
|
123
123
|
|
|
124
|
-
> Your graph is in good shape. Keep building
|
|
124
|
+
> Your graph is in good shape. Keep building; every entity you add makes the picture clearer. Run `/upg-journey` anytime to check in.
|
|
125
125
|
|
|
126
126
|
### Step 6: Completion Celebration
|
|
127
127
|
|
|
@@ -131,7 +131,7 @@ When ALL 7 phases have status ✓ complete, replace the recommendation and inter
|
|
|
131
131
|
|
|
132
132
|
All 7 phases covered!
|
|
133
133
|
|
|
134
|
-
Your product graph spans the full journey
|
|
134
|
+
Your product graph spans the full journey; from identity to learning. This isn't a hobby anymore. It's a structured, evidence-based product.
|
|
135
135
|
|
|
136
136
|
**What's next:**
|
|
137
137
|
|
|
@@ -177,7 +177,7 @@ Use this when recommending which skill to run:
|
|
|
177
177
|
Always end with:
|
|
178
178
|
|
|
179
179
|
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
|
|
180
|
-
Your `.upg` file is yours
|
|
180
|
+
Your `.upg` file is yours: open standard, portable, git-friendly.
|
|
181
181
|
unifiedproductgraph.org
|
|
182
182
|
|
|
183
183
|
After rendering your recommendation, call:
|
|
@@ -187,9 +187,9 @@ After rendering your recommendation, call:
|
|
|
187
187
|
|
|
188
188
|
Check `get_session_context()` for the current lens. Visually emphasize the most relevant phases:
|
|
189
189
|
|
|
190
|
-
- **engineering:** Highlight Phase 6 (Building) and Phase 7 (Learning)
|
|
191
|
-
- **design:** Highlight Phase 2 (Understanding) and Phase 6 (Building)
|
|
192
|
-
- **growth:** Highlight Phase 5 (Reaching) and Phase 7 (Learning)
|
|
190
|
+
- **engineering:** Highlight Phase 6 (Building) and Phase 7 (Learning); these are where engineers live. Mark other phases as "context" rather than "action needed."
|
|
191
|
+
- **design:** Highlight Phase 2 (Understanding) and Phase 6 (Building); understanding users and building the interface.
|
|
192
|
+
- **growth:** Highlight Phase 5 (Reaching) and Phase 7 (Learning); acquisition and measurement.
|
|
193
193
|
- **product (default):** All phases weighted equally.
|
|
194
194
|
|
|
195
195
|
For non-default lenses, recommend the most useful skill set:
|
|
@@ -199,9 +199,9 @@ For non-default lenses, recommend the most useful skill set:
|
|
|
199
199
|
|
|
200
200
|
## Key Principles
|
|
201
201
|
|
|
202
|
-
- **Celebrate progress.** Every completed phase is an achievement. Never shame gaps
|
|
202
|
+
- **Celebrate progress.** Every completed phase is an achievement. Never shame gaps; frame them as opportunities.
|
|
203
203
|
- **Be specific.** "You have 2 personas but no JTBDs" is better than "Understanding is incomplete."
|
|
204
204
|
- **Warm coach tone.** You're a product coach walking alongside them, not an auditor grading their work.
|
|
205
205
|
- **Read-only.** This skill never creates entities. It reads, reports, and recommends.
|
|
206
206
|
- **Follow the design system.** Entity emojis, score dots, dashed dividers, tables for structure.
|
|
207
|
-
- **The journey is a loop.** Phase 7 feeds back into Phase 2. Once all phases are covered, the work is never "done"
|
|
207
|
+
- **The journey is a loop.** Phase 7 feeds back into Phase 2. Once all phases are covered, the work is never "done"; it's iterating.
|