@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-tree/SKILL.md
CHANGED
|
@@ -7,7 +7,7 @@ category: cognitive
|
|
|
7
7
|
approaches: [inspect]
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# /upg-tree
|
|
10
|
+
# /upg-tree: Framework-Aware Tree View
|
|
11
11
|
|
|
12
12
|
You are a Unified Product Graph tree renderer. Your job is to display the product graph as a hierarchical tree, optionally filtered through a named framework pattern. You know the frameworks and can render any tree archetype.
|
|
13
13
|
|
|
@@ -20,49 +20,49 @@ Use `mcp__unified-product-graph__query` for tree fetching (one call per tree) an
|
|
|
20
20
|
## Usage
|
|
21
21
|
|
|
22
22
|
```
|
|
23
|
-
/upg-tree
|
|
24
|
-
/upg-tree ost
|
|
25
|
-
/upg-tree okr
|
|
26
|
-
/upg-tree user
|
|
27
|
-
/upg-tree product
|
|
28
|
-
/upg-tree validation
|
|
29
|
-
/upg-tree strategy
|
|
23
|
+
/upg-tree: Auto-detect best tree based on graph contents
|
|
24
|
+
/upg-tree ost: Opportunity Solution Tree
|
|
25
|
+
/upg-tree okr: Objectives & Key Results
|
|
26
|
+
/upg-tree user: Persona → JTBD → Pain Point chain
|
|
27
|
+
/upg-tree product: Product → Feature → Epic → User Story
|
|
28
|
+
/upg-tree validation: Hypothesis → Experiment → Learning
|
|
29
|
+
/upg-tree strategy: Vision → Mission → Strategic Theme → Initiative → Outcome
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
## Named Tree Patterns
|
|
33
33
|
|
|
34
|
-
### `ost
|
|
34
|
+
### `ost`: Opportunity Solution Tree
|
|
35
35
|
|
|
36
36
|
**Origin:** Teresa Torres, *"Continuous Discovery Habits"*, 2021
|
|
37
37
|
**Question:** "How do we discover the best path from outcome to solution?"
|
|
38
38
|
**Chain:** 🎯 outcome → 💡 opportunity → 🔧 solution → ⚗️ hypothesis → 🧪 experiment_plan
|
|
39
39
|
**Edges:** outcome_reveals_opportunity → opportunity_drives_solution → solution_proposes_hypothesis → hypothesis_requires_experiment_plan
|
|
40
40
|
|
|
41
|
-
### `okr
|
|
41
|
+
### `okr`: Objectives & Key Results
|
|
42
42
|
|
|
43
43
|
**Origin:** John Doerr, adapted from Andy Grove (Intel), 1999
|
|
44
44
|
**Question:** "What are we trying to achieve, and how do we know?"
|
|
45
45
|
**Chain:** 🎯 objective → 🎯 key_result → 🎯 initiative
|
|
46
46
|
|
|
47
|
-
### `user
|
|
47
|
+
### `user`: User Discovery Tree
|
|
48
48
|
|
|
49
49
|
**Origin:** Clayton Christensen, Jobs-to-be-Done theory, 2003
|
|
50
50
|
**Question:** "Who are our users, what jobs are they hiring us for, and where does it hurt?"
|
|
51
51
|
**Chain:** 👤 persona → 💼 job → 🔥 need
|
|
52
52
|
|
|
53
|
-
### `product
|
|
53
|
+
### `product`: Product Breakdown Tree
|
|
54
54
|
|
|
55
55
|
**Origin:** Standard agile product management
|
|
56
56
|
**Question:** "What are we shipping, and how is it broken down?"
|
|
57
57
|
**Chain:** 🎯 product → 📦 feature → 📋 epic → 📄 user_story
|
|
58
58
|
|
|
59
|
-
### `validation
|
|
59
|
+
### `validation`: Validation Tree
|
|
60
60
|
|
|
61
61
|
**Origin:** Eric Ries, *"The Lean Startup"*, 2011
|
|
62
62
|
**Question:** "What are we betting, how are we testing, and what have we learned?"
|
|
63
63
|
**Chain:** ⚗️ hypothesis → 🧪 experiment → 📝 learning
|
|
64
64
|
|
|
65
|
-
### `strategy
|
|
65
|
+
### `strategy`: Strategic Cascade
|
|
66
66
|
|
|
67
67
|
**Origin:** Roger Martin, *"Playing to Win"*, 2013
|
|
68
68
|
**Question:** "How does the vision cascade down to measurable outcomes?"
|
|
@@ -147,7 +147,7 @@ Example rendering (OST):
|
|
|
147
147
|
│
|
|
148
148
|
├─ 💡 Users don't get value in first 5 min
|
|
149
149
|
│ reach ● ● ● ● ● pain ● ● ● ● ○ freq ● ● ● ○ ○
|
|
150
|
-
│ (no solutions
|
|
150
|
+
│ (no solutions; /upg-explore a solution)
|
|
151
151
|
│
|
|
152
152
|
└─ 💡 Onboarding asks for too much upfront
|
|
153
153
|
reach ● ● ● ● ○ pain ● ● ● ○ ○ freq ● ● ● ● ○
|
|
@@ -157,7 +157,7 @@ Example rendering (OST):
|
|
|
157
157
|
Example rendering (User tree):
|
|
158
158
|
|
|
159
159
|
```
|
|
160
|
-
👤 Sarah Chen
|
|
160
|
+
👤 Sarah Chen: Senior PM at Series B Startup
|
|
161
161
|
│
|
|
162
162
|
├─ 💼 Track decisions on mobile
|
|
163
163
|
│ │ type: functional
|
|
@@ -195,7 +195,7 @@ After the tree, display outside the code block:
|
|
|
195
195
|
|
|
196
196
|
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
|
|
197
197
|
|
|
198
|
-
*<Framework Name
|
|
198
|
+
*<Framework Name>*; <Creator>, <Year>
|
|
199
199
|
|
|
200
200
|
**<N>** entities shown · **<N>** levels deep · <breakdown by type emojis>
|
|
201
201
|
|
|
@@ -227,7 +227,7 @@ If the graph is empty or has no entities matching the requested pattern:
|
|
|
227
227
|
## Key Principles
|
|
228
228
|
|
|
229
229
|
- **Framework attribution matters.** Always credit the framework's creator.
|
|
230
|
-
- **Show properties, not just titles.** A tree of titles is useless
|
|
230
|
+
- **Show properties, not just titles.** A tree of titles is useless; show the data.
|
|
231
231
|
- **Auto-detect when possible.** If the user just says `/upg-tree`, pick the most informative view.
|
|
232
232
|
- **Suggest other views.** After rendering one tree, mention the other available patterns.
|
|
233
233
|
- **Follow the design system.** Entity emojis, score dots, filled bars, nested blocks, annotation arrows.
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: upg-verify
|
|
3
|
-
description: "Code-to-graph sync audit
|
|
3
|
+
description: "Code-to-graph sync audit: find product knowledge in your codebase that isn't in the graph yet"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
argument-hint: "[scope]"
|
|
6
6
|
category: cognitive
|
|
7
7
|
approaches: [inspect]
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# /upg-verify
|
|
10
|
+
# /upg-verify: Code-to-Graph Sync Audit
|
|
11
11
|
|
|
12
12
|
You are a Unified Product Graph consistency auditor. Your job is to scan the user's codebase and documentation for product knowledge that should be in the graph but isn't. You bridge the gap between where thinking lives (code, docs, plans, vision files) and where it's structured (the `.upg` graph).
|
|
13
13
|
|
|
@@ -38,24 +38,24 @@ If the user provided a scope argument, use that. Otherwise, ask:
|
|
|
38
38
|
```
|
|
39
39
|
What should I audit? Pick one (or say "full"):
|
|
40
40
|
|
|
41
|
-
1. **Features
|
|
42
|
-
2. **Personas
|
|
43
|
-
3. **Decisions
|
|
44
|
-
4. **Research
|
|
45
|
-
5. **Architecture
|
|
46
|
-
6. **Full audit
|
|
41
|
+
1. **Features**: capabilities in your code not modeled in the graph
|
|
42
|
+
2. **Personas**: user types referenced in docs but missing from the graph
|
|
43
|
+
3. **Decisions**: strategic decisions documented but not captured
|
|
44
|
+
4. **Research**: user evidence and insights scattered across docs
|
|
45
|
+
5. **Architecture**: system structure that maps to product entities
|
|
46
|
+
6. **Full audit**: all of the above
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
### Step 3: Scan the Codebase
|
|
50
50
|
|
|
51
|
-
Based on the chosen scope, scan relevant files. Be targeted
|
|
51
|
+
Based on the chosen scope, scan relevant files. Be targeted; don't read the entire codebase.
|
|
52
52
|
|
|
53
53
|
#### Features scope
|
|
54
54
|
Scan for product capabilities not in the graph:
|
|
55
|
-
- **App route definitions
|
|
56
|
-
- **Feature flags or config
|
|
57
|
-
- **README files
|
|
58
|
-
- **CHANGELOG or release notes
|
|
55
|
+
- **App route definitions**: `app/**/page.tsx`, route groups, API routes → feature-worthy surfaces
|
|
56
|
+
- **Feature flags or config**: search for `feature_flag`, `FEATURES`, `enabled` in config files
|
|
57
|
+
- **README files**: feature lists in project READMEs
|
|
58
|
+
- **CHANGELOG or release notes**: shipped features
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
61
|
# Example scans
|
|
@@ -65,32 +65,32 @@ find apps/ -name "page.tsx" -path "*/app/*"
|
|
|
65
65
|
|
|
66
66
|
#### Personas scope
|
|
67
67
|
Scan for user types referenced but not in graph:
|
|
68
|
-
- **AGENTS.md / CLAUDE.md files
|
|
69
|
-
- **Vision documents
|
|
70
|
-
- **Skill / prompt files
|
|
71
|
-
- **Comments and docs
|
|
68
|
+
- **AGENTS.md / CLAUDE.md files**: persona names, user descriptions
|
|
69
|
+
- **Vision documents**: wherever your team keeps vision / strategy docs
|
|
70
|
+
- **Skill / prompt files**: persona references in agent prompts
|
|
71
|
+
- **Comments and docs**: "users", "customers", named user types
|
|
72
72
|
|
|
73
73
|
Search terms: persona names, "user", "customer", "builder", "creator", named roles.
|
|
74
74
|
|
|
75
75
|
#### Decisions scope
|
|
76
76
|
Scan for strategic decisions not captured as graph entities:
|
|
77
|
-
- **Decision docs / ADRs
|
|
78
|
-
- **Plan files
|
|
79
|
-
- **AGENTS.md / CLAUDE.md
|
|
77
|
+
- **Decision docs / ADRs**: wherever your team records architecture decisions
|
|
78
|
+
- **Plan files**: completed plans = decisions
|
|
79
|
+
- **AGENTS.md / CLAUDE.md**: documented decisions and conventions
|
|
80
80
|
|
|
81
81
|
#### Research scope
|
|
82
82
|
Scan for user evidence and insights:
|
|
83
|
-
- **Session logs
|
|
84
|
-
- **Progress logs
|
|
85
|
-
- **Vision docs
|
|
86
|
-
- **Plan files
|
|
83
|
+
- **Session logs**: dated session / standup notes
|
|
84
|
+
- **Progress logs**: release notes, weekly digests
|
|
85
|
+
- **Vision docs**: user research references, quotes, findings
|
|
86
|
+
- **Plan files**: research findings that motivated the plan
|
|
87
87
|
|
|
88
88
|
#### Architecture scope
|
|
89
89
|
Scan for system structure that maps to product entities:
|
|
90
|
-
- **App directories
|
|
91
|
-
- **Package structure
|
|
92
|
-
- **Database schemas
|
|
93
|
-
- **API surface
|
|
90
|
+
- **App directories**: each app could be a `product_area` or `bounded_context`
|
|
91
|
+
- **Package structure**: shared packages as `capability` or `service` entities
|
|
92
|
+
- **Database schemas**: Supabase schemas, migrations
|
|
93
|
+
- **API surface**: API routes, MCP tools, external integrations
|
|
94
94
|
|
|
95
95
|
#### Full audit
|
|
96
96
|
Run all five scopes sequentially. Present each scope's findings, then a combined summary.
|
|
@@ -101,9 +101,9 @@ For each discovered item:
|
|
|
101
101
|
1. Search the graph: `search_nodes(title_or_keyword)`
|
|
102
102
|
2. Also check by type: `list_nodes({ type: 'likely_type' })`
|
|
103
103
|
3. Classify:
|
|
104
|
-
- **In graph
|
|
105
|
-
- **Partially in graph
|
|
106
|
-
- **Not in graph
|
|
104
|
+
- **In graph**: already captured, no action needed
|
|
105
|
+
- **Partially in graph**: exists but missing detail or connections
|
|
106
|
+
- **Not in graph**: gap, needs to be added
|
|
107
107
|
|
|
108
108
|
### Step 5: Score Confidence
|
|
109
109
|
|
|
@@ -113,7 +113,7 @@ Each discovered item gets a confidence score:
|
|
|
113
113
|
|-------|---------|--------|
|
|
114
114
|
| ⚪ Low (1-2) | Mentioned once, might be exploratory | Ask: "Is this real or just brainstorming?" |
|
|
115
115
|
| 🟡 Medium (3) | Referenced in multiple places or formally documented | Suggest adding with `/upg-explore` |
|
|
116
|
-
| 🟢 High (4-5) | Clearly intentional
|
|
116
|
+
| 🟢 High (4-5) | Clearly intentional; appears in code, docs, AND discussions | Strongly recommend adding |
|
|
117
117
|
|
|
118
118
|
**Confidence factors:**
|
|
119
119
|
- Mentioned in multiple files → +1
|
|
@@ -130,18 +130,18 @@ Format as a clear, scannable report:
|
|
|
130
130
|
## Verify Report: [Scope]
|
|
131
131
|
|
|
132
132
|
### Graph Inventory
|
|
133
|
-
📊 **[Product Name]
|
|
133
|
+
📊 **[Product Name]**: [N] entities, [M] edges
|
|
134
134
|
Stage: [stage]
|
|
135
135
|
|
|
136
136
|
### Findings
|
|
137
137
|
|
|
138
138
|
#### 🟢 High Confidence (should be in graph)
|
|
139
139
|
|
|
140
|
-
1. 👤 **Kai
|
|
140
|
+
1. 👤 **Kai: Technical Solo Founder**
|
|
141
141
|
Found in: CLAUDE.md, skills/upg-context/SKILL.md, docs/vision.md
|
|
142
142
|
Graph status: ❌ Not found
|
|
143
143
|
Suggested type: persona
|
|
144
|
-
→ `/upg-explore persona "Kai
|
|
144
|
+
→ `/upg-explore persona "Kai; Technical Solo Founder"`
|
|
145
145
|
|
|
146
146
|
2. 📦 **Clean URL Routing**
|
|
147
147
|
Found in: PR #747, plans/2026-03-22-graph-clean-url-routing.md
|
|
@@ -164,10 +164,10 @@ Format as a clear, scannable report:
|
|
|
164
164
|
→ Probably an internal process, not a product entity. Skip?
|
|
165
165
|
|
|
166
166
|
### Summary
|
|
167
|
-
🟢 High: [X] items
|
|
168
|
-
🟡 Medium: [Y] items
|
|
169
|
-
⚪ Low: [Z] items
|
|
170
|
-
✅ Already in graph: [W] items
|
|
167
|
+
🟢 High: [X] items; strongly recommend adding
|
|
168
|
+
🟡 Medium: [Y] items; worth considering
|
|
169
|
+
⚪ Low: [Z] items; probably not graph-worthy
|
|
170
|
+
✅ Already in graph: [W] items; no action needed
|
|
171
171
|
|
|
172
172
|
Coverage: [%] of discovered items are in the graph
|
|
173
173
|
```
|
|
@@ -180,9 +180,9 @@ For high-confidence items, offer batch creation:
|
|
|
180
180
|
Want me to add the [X] high-confidence items to your graph?
|
|
181
181
|
I'll create them as individual entities with the suggested types.
|
|
182
182
|
|
|
183
|
-
1. Yes
|
|
183
|
+
1. Yes; add all [X] items
|
|
184
184
|
2. Let me pick which ones
|
|
185
|
-
3. Not now
|
|
185
|
+
3. Not now; I'll do it manually later
|
|
186
186
|
```
|
|
187
187
|
|
|
188
188
|
If the user picks option 1 or 2, use `mcp__unified-product-graph__create_node` for each, following the entity confirmation pattern from `/upg-context`.
|
|
@@ -196,7 +196,7 @@ Follow the smart ending pattern from `/upg-context`:
|
|
|
196
196
|
|
|
197
197
|
```
|
|
198
198
|
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
|
|
199
|
-
Your .upg file is yours
|
|
199
|
+
Your .upg file is yours: open standard, portable, git-friendly.
|
|
200
200
|
unifiedproductgraph.org
|
|
201
201
|
```
|
|
202
202
|
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: upg-workspace
|
|
3
|
-
description: "Manage your UPG workspace
|
|
3
|
+
description: "Manage your UPG workspace: list products, switch between them, add new ones"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
argument-hint: "[list|switch|add|init]"
|
|
6
6
|
category: tooling
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
# /upg-workspace
|
|
9
|
+
# /upg-workspace: Manage Your Product Workspace
|
|
10
10
|
|
|
11
11
|
Manage multiple product graphs. Fast, direct, sub-commands keep it tight. Read `/upg-context` before producing output.
|
|
12
12
|
|
|
@@ -20,13 +20,13 @@ Manage multiple product graphs. Fast, direct, sub-commands keep it tight. Read `
|
|
|
20
20
|
|
|
21
21
|
Check if `.upg/workspace.json` exists (Bash). Call `list_local_products` for entity counts.
|
|
22
22
|
|
|
23
|
-
**Workspace mode** (workspace.json exists)
|
|
23
|
+
**Workspace mode** (workspace.json exists); read `default_product` to mark active:
|
|
24
24
|
```
|
|
25
25
|
## Your UPG Workspace
|
|
26
26
|
📁 .upg/ (workspace mode)
|
|
27
|
-
1. ● My SaaS (active)
|
|
28
|
-
2. ○ Client Project
|
|
29
|
-
3. ○ Internal Tools
|
|
27
|
+
1. ● My SaaS (active); 42 entities, mvp stage
|
|
28
|
+
2. ○ Client Project; 12 entities, idea stage
|
|
29
|
+
3. ○ Internal Tools; 8 entities, idea stage
|
|
30
30
|
Switch: /upg-workspace switch <number>
|
|
31
31
|
Add: /upg-workspace add
|
|
32
32
|
```
|
|
@@ -35,7 +35,7 @@ Check if `.upg/workspace.json` exists (Bash). Call `list_local_products` for ent
|
|
|
35
35
|
```
|
|
36
36
|
## Your UPG Workspace
|
|
37
37
|
📄 Single-file mode (product.upg)
|
|
38
|
-
● My SaaS
|
|
38
|
+
● My SaaS; 42 entities, mvp stage
|
|
39
39
|
Want multiple products? Run /upg-workspace init
|
|
40
40
|
```
|
|
41
41
|
If multiple loose files, number them and suggest `init`. If zero files, point to `/upg-init`.
|
|
@@ -52,7 +52,7 @@ If multiple loose files, number them and suggest `init`. If zero files, point to
|
|
|
52
52
|
|
|
53
53
|
## `add`
|
|
54
54
|
|
|
55
|
-
1. Ask: **"What's the name of the new product?"
|
|
55
|
+
1. Ask: **"What's the name of the new product?"**: one question, STOP, wait.
|
|
56
56
|
2. Create blank .upg file via Bash. Path: `.upg/<kebab-slug>.upg` if workspace mode, else `<kebab-slug>.upg` in cwd. Generate id: `node -e "import('nanoid').then(m => console.log(m.nanoid(16)))"`. File structure:
|
|
57
57
|
```json
|
|
58
58
|
{ "upg_version": "0.5.0", "exported_at": "<now>",
|
|
@@ -60,8 +60,8 @@ If multiple loose files, number them and suggest `init`. If zero files, point to
|
|
|
60
60
|
"product": { "id": "<nanoid>", "title": "<title>", "stage": "idea" },
|
|
61
61
|
"nodes": [], "edges": [] }
|
|
62
62
|
```
|
|
63
|
-
3. If workspace mode, update workspace.json
|
|
64
|
-
4. Confirm: `✓ Created **Client Project** (.upg/client-project.upg)
|
|
63
|
+
3. If workspace mode, update workspace.json; add to `products` array.
|
|
64
|
+
4. Confirm: `✓ Created **Client Project** (.upg/client-project.upg)`, then ask "Switch to it now? [Y/n]". If yes, run switch logic.
|
|
65
65
|
|
|
66
66
|
---
|
|
67
67
|
|
|
@@ -93,11 +93,11 @@ Otherwise:
|
|
|
93
93
|
- Active product = `●` filled dot. Others = `○` open dot.
|
|
94
94
|
- Number products starting at 1. Users switch by number, not file path.
|
|
95
95
|
- Show entity count (nodes) and stage for each product.
|
|
96
|
-
- No unnecessary questions
|
|
96
|
+
- No unnecessary questions: `list` and `switch` need zero extra input.
|
|
97
97
|
- Standard footer on every output:
|
|
98
98
|
|
|
99
99
|
```
|
|
100
100
|
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
|
|
101
|
-
Your .upg file is yours
|
|
101
|
+
Your .upg file is yours: open standard, portable, git-friendly.
|
|
102
102
|
unifiedproductgraph.org
|
|
103
103
|
```
|