@unified-product-graph/mcp-server 0.8.1 → 0.8.2
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 +11 -0
- package/README.md +1 -1
- package/TOOLS.md +19 -13
- package/dist/index.js +1286 -285
- package/dist/index.js.map +1 -1
- package/dist/tools-manifest.json +94 -75
- package/package.json +1 -1
- package/scripts/claudemd-snippet.md +7 -7
- package/scripts/install-skills.sh +2 -2
- package/skills/upg/SKILL.md +41 -41
- package/skills/{upg-gaps → upg-check-gaps}/SKILL.md +40 -43
- package/skills/{upg-schema-health → upg-check-schema}/SKILL.md +7 -7
- package/skills/{upg-schema-evolve → upg-check-schema-coverage}/SKILL.md +12 -12
- package/skills/{upg-schema-edges → upg-check-schema-edges}/SKILL.md +3 -3
- package/skills/{upg-schema-consolidate → upg-check-schema-merge}/SKILL.md +5 -5
- package/skills/upg-context/SKILL.md +96 -72
- package/skills/upg-context-intelligence/SKILL.md +23 -27
- package/skills/upg-design-system/SKILL.md +21 -26
- package/skills/{upg-verify → upg-find-untracked}/SKILL.md +7 -12
- package/skills/{upg-rollback → upg-fix-rollback}/SKILL.md +6 -12
- package/skills/{upg-migrate → upg-fix-types}/SKILL.md +5 -9
- package/skills/upg-link/SKILL.md +125 -0
- package/skills/{upg-discover → upg-new-discovery}/SKILL.md +42 -58
- package/skills/{upg-capture → upg-new-from-session}/SKILL.md +13 -15
- package/skills/{upg-template → upg-new-from-template}/SKILL.md +8 -12
- package/skills/{upg-init → upg-new-graph}/SKILL.md +50 -82
- package/skills/{upg-hypothesis → upg-new-hypothesis}/SKILL.md +27 -36
- package/skills/{upg-launch → upg-new-launch}/SKILL-DETAIL.md +36 -92
- package/skills/{upg-launch → upg-new-launch}/SKILL.md +8 -18
- package/skills/{upg-okr → upg-new-okr}/SKILL-DETAIL.md +28 -46
- package/skills/{upg-okr → upg-new-okr}/SKILL.md +3 -3
- package/skills/{upg-persona → upg-new-persona}/SKILL.md +35 -67
- package/skills/{upg-research → upg-new-research}/SKILL.md +25 -33
- package/skills/{upg-schema-update → upg-new-schema-type}/SKILL.md +2 -2
- package/skills/{upg-strategy → upg-new-strategy}/SKILL.md +21 -27
- package/skills/upg-prioritise/SKILL.md +4 -4
- package/skills/upg-reflect/SKILL.md +7 -7
- package/skills/{upg-feedback → upg-send-feedback}/SKILL.md +30 -51
- package/skills/{upg-diff → upg-show-diff}/SKILL.md +6 -12
- package/skills/{upg-inspect → upg-show-entity}/SKILL.md +7 -9
- package/skills/{upg-impact → upg-show-impact}/SKILL.md +11 -15
- package/skills/{upg-journey → upg-show-journey}/SKILL.md +31 -32
- package/skills/{upg-analytics → upg-show-metrics}/SKILL.md +9 -12
- package/skills/{upg-schema-changelog → upg-show-schema-changelog}/SKILL.md +5 -5
- package/skills/{upg-status → upg-show-status}/SKILL.md +39 -40
- package/skills/{upg-tree → upg-show-tree}/SKILL.md +15 -15
- package/skills/{upg-export → upg-sync-export}/SKILL.md +10 -13
- package/skills/{upg-import → upg-sync-import}/SKILL.md +7 -13
- package/skills/{upg-pull → upg-sync-pull}/SKILL-DETAIL.md +13 -17
- package/skills/{upg-pull → upg-sync-pull}/SKILL.md +3 -3
- package/skills/{upg-push → upg-sync-push}/SKILL-DETAIL.md +4 -10
- package/skills/{upg-push → upg-sync-push}/SKILL.md +4 -4
- package/skills/{upg-snapshot → upg-sync-snapshot}/SKILL.md +2 -6
- package/skills/upg-trace/SKILL.md +7 -7
- package/skills/{upg-workspace → upg-use-workspace}/SKILL.md +8 -14
- package/skills/{upg-run → upg-walk-playbook}/SKILL.md +10 -10
- package/skills/upg-walk-region/SKILL-DETAIL.md +320 -0
- package/skills/upg-walk-region/SKILL.md +89 -0
- package/skills/upg-connect/SKILL.md +0 -167
- package/skills/upg-explore/SKILL-DETAIL.md +0 -481
- package/skills/upg-explore/SKILL.md +0 -297
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: upg-
|
|
2
|
+
name: upg-show-metrics
|
|
3
3
|
description: "Product thinking metrics: hypothesis velocity, coverage ratio, evidence density"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
argument-hint: ""
|
|
@@ -7,7 +7,7 @@ category: cognitive
|
|
|
7
7
|
approaches: [inspect]
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# /upg-
|
|
10
|
+
# /upg-show-metrics: Product Thinking Metrics
|
|
11
11
|
|
|
12
12
|
You are a fast analytics dashboard. Your job: fetch metrics, render a dashboard, suggest ONE action. No questions. No interaction. Just the numbers and what they mean.
|
|
13
13
|
|
|
@@ -17,9 +17,9 @@ You are a fast analytics dashboard. Your job: fetch metrics, render a dashboard,
|
|
|
17
17
|
|
|
18
18
|
Call `get_graph_digest()` first. Check for these conditions before rendering metrics:
|
|
19
19
|
|
|
20
|
-
- **Hypothesis type mismatch**: If `by_type` shows `hypothesis_claim` nodes but zero `hypothesis` nodes, surface: "Your graph has deprecated `hypothesis_claim` entities. Run `/upg-
|
|
20
|
+
- **Hypothesis type mismatch**: If `by_type` shows `hypothesis_claim` nodes but zero `hypothesis` nodes, surface: "Your graph has deprecated `hypothesis_claim` entities. Run `/upg-fix-types` to convert them to `hypothesis` before this analysis is accurate."
|
|
21
21
|
- **Hypothesis velocity**: The "Hypothesis Velocity" metric shows a point-in-time status distribution (untested vs. tested), not a rate of change. Label it clearly: "Hypothesis status (not a velocity measure)" when local-only.
|
|
22
|
-
- **Stage
|
|
22
|
+
- **Stage benchmarks are canonical**: `product.stage` is a canonical `UPGProductStage` (`concept | validation | build | beta | launch | growth | mature | maintenance | sunset`), and the count/relationship benchmarks are keyed on those same canonical stages. Compare directly; do NOT translate to legacy `idea`/`mvp`/`scale` labels.
|
|
23
23
|
|
|
24
24
|
## Tools
|
|
25
25
|
|
|
@@ -62,7 +62,7 @@ Show each status with its status dot and count, then a filled bar for % resolved
|
|
|
62
62
|
▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░ 58% resolved
|
|
63
63
|
```
|
|
64
64
|
|
|
65
|
-
If zero hypotheses exist, show: "No hypotheses yet; run `/upg-hypothesis` to start testing your riskiest assumptions."
|
|
65
|
+
If zero hypotheses exist, show: "No hypotheses yet; run `/upg-new-hypothesis` to start testing your riskiest assumptions."
|
|
66
66
|
|
|
67
67
|
### Coverage Ratio
|
|
68
68
|
|
|
@@ -73,7 +73,7 @@ Show persona count with complete chains out of total, plus a filled bar:
|
|
|
73
73
|
▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░ 75%
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
-
If zero personas, show: "No personas yet; run `/upg-persona` to define who you're building for."
|
|
76
|
+
If zero personas, show: "No personas yet; run `/upg-new-persona` to define who you're building for."
|
|
77
77
|
|
|
78
78
|
### Evidence Density
|
|
79
79
|
|
|
@@ -116,7 +116,7 @@ One short paragraph: what stands out, and what's the single fastest win? End wit
|
|
|
116
116
|
|
|
117
117
|
Example:
|
|
118
118
|
> Your hypothesis pipeline is moving: 58% resolved. But 4 are still untested. The fastest win is picking one and designing an experiment.
|
|
119
|
-
> → `/upg-hypothesis` to test your riskiest assumption
|
|
119
|
+
> → `/upg-new-hypothesis` to test your riskiest assumption
|
|
120
120
|
|
|
121
121
|
## Key Principles
|
|
122
122
|
|
|
@@ -124,12 +124,9 @@ Example:
|
|
|
124
124
|
- **Filled bars** for all percentages; max 22 characters (▓ for filled, ░ for empty).
|
|
125
125
|
- **Interpret, don't just report.** "1.08 evidence per hypothesis <- healthy" beats "ratio: 1.08".
|
|
126
126
|
- **ONE recommendation.** Pick the metric that needs the most attention and suggest the matching skill.
|
|
127
|
-
- **This is NOT `/upg-status --quick`** (5 quick signals) or **/upg-gaps** (deep maturity scoring + action plan). This is the quantitative dashboard.
|
|
127
|
+
- **This is NOT `/upg-show-status --quick`** (5 quick signals) or **/upg-check-gaps** (deep maturity scoring + action plan). This is the quantitative dashboard.
|
|
128
128
|
- **Follow the design system.** Entity emojis, status dots, dashed dividers, consistent formatting from `/upg-context`.
|
|
129
129
|
|
|
130
|
-
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
|
|
131
|
-
Your .upg file is yours: open standard, portable, git-friendly.
|
|
132
|
-
unifiedproductgraph.org
|
|
133
130
|
|
|
134
131
|
After rendering your recommendation, call:
|
|
135
|
-
`update_session_context({ skill_invoked: "upg-
|
|
132
|
+
`update_session_context({ skill_invoked: "upg-show-metrics", recommendation: "<the next skill you recommended>" })`
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: upg-schema-changelog
|
|
2
|
+
name: upg-show-schema-changelog
|
|
3
3
|
description: "Generate a schema changelog: what changed between versions, migration notes, breaking changes"
|
|
4
4
|
user-invocable: false
|
|
5
5
|
audience: advanced
|
|
@@ -9,7 +9,7 @@ category: schema
|
|
|
9
9
|
|
|
10
10
|
> ⚠️ **Advanced skill**: intended for UPG contributors and power users who understand the spec internals. Not for general use. Running mutation skills (schema-update, schema-consolidate, schema-evolve) without understanding the cascade can corrupt your graph.
|
|
11
11
|
|
|
12
|
-
# /upg-schema-changelog: Schema Changelog Generator
|
|
12
|
+
# /upg-show-schema-changelog: Schema Changelog Generator
|
|
13
13
|
|
|
14
14
|
You are a schema changelog generator. Your job is to diff the UPG schema between versions and produce a human-readable changelog that tells adopters what changed, why, and how to migrate.
|
|
15
15
|
|
|
@@ -26,18 +26,18 @@ You are a schema changelog generator. Your job is to diff the UPG schema between
|
|
|
26
26
|
|
|
27
27
|
**Mode 1: Diff against git**
|
|
28
28
|
```
|
|
29
|
-
/upg-schema-changelog latest
|
|
29
|
+
/upg-show-schema-changelog latest
|
|
30
30
|
```
|
|
31
31
|
Compares current working state against the last tagged version.
|
|
32
32
|
|
|
33
33
|
**Mode 2: Between specific versions**
|
|
34
34
|
```
|
|
35
|
-
/upg-schema-changelog 0.1.0 0.2.0
|
|
35
|
+
/upg-show-schema-changelog 0.1.0 0.2.0
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
**Mode 3: Current PR changes**
|
|
39
39
|
```
|
|
40
|
-
/upg-schema-changelog pr
|
|
40
|
+
/upg-show-schema-changelog pr
|
|
41
41
|
```
|
|
42
42
|
Compares current branch against `origin/dev`.
|
|
43
43
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: upg-status
|
|
2
|
+
name: upg-show-status
|
|
3
3
|
description: "Product Graph Health Dashboard"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
argument-hint: "[--quick | --full | description]"
|
|
@@ -7,7 +7,7 @@ category: cognitive
|
|
|
7
7
|
approaches: [inspect]
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# /upg-status: Product Graph Health Dashboard
|
|
10
|
+
# /upg-show-status: Product Graph Health Dashboard
|
|
11
11
|
|
|
12
12
|
You are a Unified Product Graph analytics engine. Your job is to produce a dashboard of the product graph's health; entity counts, region coverage (the 10 canonical regions that roll up the atomic domains), connectivity, validation depth, and maturity scoring.
|
|
13
13
|
|
|
@@ -15,15 +15,15 @@ You are a Unified Product Graph analytics engine. Your job is to produce a dashb
|
|
|
15
15
|
|
|
16
16
|
## Modes
|
|
17
17
|
|
|
18
|
-
- `/upg-status --quick`: 10-second pulse. 5 health signals + ONE recommendation. No bars, no benchmarks, no maturity score. Use the **Quick Pulse Mode** section below.
|
|
19
|
-
- `/upg-status` or `/upg-status --full` (default); the full dashboard described below.
|
|
18
|
+
- `/upg-show-status --quick`: 10-second pulse. 5 health signals + ONE recommendation. No bars, no benchmarks, no maturity score. Use the **Quick Pulse Mode** section below.
|
|
19
|
+
- `/upg-show-status` or `/upg-show-status --full` (default); the full dashboard described below.
|
|
20
20
|
|
|
21
21
|
**Boundary, in plain English:**
|
|
22
22
|
- `--quick` answers *"is anything bleeding right now?"* (the pulse).
|
|
23
23
|
- `--full` answers *"how mature is my product graph?"* (the dashboard).
|
|
24
|
-
- `/upg-gaps` answers *"what should I do next, and why?"* (the action plan).
|
|
24
|
+
- `/upg-check-gaps` answers *"what should I do next, and why?"* (the action plan).
|
|
25
25
|
|
|
26
|
-
If a recent `/upg-gaps` run is in session context, skip the TOP GAP section in `--full` mode.
|
|
26
|
+
If a recent `/upg-check-gaps` run is in session context, skip the TOP GAP section in `--full` mode.
|
|
27
27
|
|
|
28
28
|
## Tools
|
|
29
29
|
|
|
@@ -72,10 +72,10 @@ The bar is 20 chars wide. Fill `▓` proportionally to the fraction (numerator /
|
|
|
72
72
|
The **numerator** = how many entity types in that area actually have ≥1 node in the graph.
|
|
73
73
|
The **denominator** = the total entity types expected for that area at the product's current stage tier.
|
|
74
74
|
|
|
75
|
-
**Stage → Tier mapping
|
|
76
|
-
-
|
|
77
|
-
- growth → **Small Team** (55 entities)
|
|
78
|
-
-
|
|
75
|
+
**Stage → Tier mapping** (stage is a canonical `UPGProductStage`):
|
|
76
|
+
- `concept`, `validation`, `build`, `beta` → **Solo Builder** (40 entities across 8 areas)
|
|
77
|
+
- `launch`, `growth` → **Small Team** (55 entities)
|
|
78
|
+
- `mature`, `maintenance`, `sunset` → **Scale-Up** (70 entities)
|
|
79
79
|
|
|
80
80
|
**Business Completeness Score**: render immediately after the table:
|
|
81
81
|
|
|
@@ -86,14 +86,14 @@ Business Completeness: **<covered>/<total>** (<percent>%) for <Tier Name> stage
|
|
|
86
86
|
→ ...
|
|
87
87
|
|
|
88
88
|
Only list areas where coverage < 100%. Use these suggested commands:
|
|
89
|
-
- 📣 Reaching → `/upg-launch` to define positioning and channels
|
|
90
|
-
- 💰 Converting → `/upg-
|
|
91
|
-
- 🏦 Sustaining → `/upg-
|
|
92
|
-
- 📊 Learning → `/upg-
|
|
93
|
-
- 📦 Building → `/upg-
|
|
94
|
-
- 👤 Understanding → `/upg-
|
|
95
|
-
- 💡 Discovery → `/upg-
|
|
96
|
-
- 🎯 Identity → `/upg-
|
|
89
|
+
- 📣 Reaching → `/upg-new-launch` to define positioning and channels
|
|
90
|
+
- 💰 Converting → `/upg-walk-region` to define your value proposition and pricing
|
|
91
|
+
- 🏦 Sustaining → `/upg-walk-region business_model` to build your business model
|
|
92
|
+
- 📊 Learning → `/upg-walk-region` to add metrics and retrospectives
|
|
93
|
+
- 📦 Building → `/upg-walk-region` to flesh out features and stories
|
|
94
|
+
- 👤 Understanding → `/upg-new-discovery` to deepen user research
|
|
95
|
+
- 💡 Discovery → `/upg-new-discovery` to explore more opportunities
|
|
96
|
+
- 🎯 Identity → `/upg-walk-region` to define your product identity
|
|
97
97
|
|
|
98
98
|
If all 8 areas are fully covered, instead show:
|
|
99
99
|
> *All 8 business areas covered; your graph has full business breadth.*
|
|
@@ -148,10 +148,10 @@ RECOMMENDED FRAMEWORKS
|
|
|
148
148
|
Based on the current state, suggest 2-3 frameworks that would add the most value. Use this format:
|
|
149
149
|
|
|
150
150
|
> **Opportunity Solution Tree** *(Teresa Torres, 2021)*; Your discovery chain is partially built. OST would structure outcome → opportunity → solution → experiment.
|
|
151
|
-
> Try: `/upg-tree ost`
|
|
151
|
+
> Try: `/upg-show-tree ost`
|
|
152
152
|
|
|
153
153
|
> **Hypothesis Testing** *(Eric Ries, 2011)*; 4 untested hypotheses need experiments.
|
|
154
|
-
> Try: `/upg-tree validation`
|
|
154
|
+
> Try: `/upg-show-tree validation`
|
|
155
155
|
|
|
156
156
|
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
|
|
157
157
|
|
|
@@ -167,14 +167,11 @@ QUICK ACTIONS
|
|
|
167
167
|
|
|
168
168
|
| | |
|
|
169
169
|
|---|---|
|
|
170
|
-
| `/upg-gaps` | Deep-dive into what's missing and why |
|
|
171
|
-
| `/upg-tree user` | See your persona → job → need chains |
|
|
172
|
-
| `/upg-
|
|
173
|
-
| `/upg-
|
|
170
|
+
| `/upg-check-gaps` | Deep-dive into what's missing and why |
|
|
171
|
+
| `/upg-show-tree user` | See your persona → job → need chains |
|
|
172
|
+
| `/upg-walk-region` | Add missing entities |
|
|
173
|
+
| `/upg-new-discovery` | Run a guided OST discovery session |
|
|
174
174
|
|
|
175
|
-
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
|
|
176
|
-
Your `.upg` file is yours: open standard, portable, git-friendly.
|
|
177
|
-
unifiedproductgraph.org
|
|
178
175
|
|
|
179
176
|
---
|
|
180
177
|
|
|
@@ -213,9 +210,11 @@ Check `get_session_context()` for the current lens. Adapt the dashboard:
|
|
|
213
210
|
| 🔵 Planned | N | [feature names] |
|
|
214
211
|
| ✅ Shipped | N | [feature names] |
|
|
215
212
|
|
|
216
|
-
|
|
213
|
+
A feature counts as **Blocked** when it has an inbound blocking edge (e.g. `bug_blocks_feature`, `dependency_blocks_*`, `technical_debt_item_slows_*`), NOT when it carries a `blocker` type; there is no `blocker` entity type. Map feature `status` (`proposed | in_progress | shipped | archived`) to In Progress / Planned / Shipped.
|
|
214
|
+
|
|
215
|
+
Show: `BLOCKED: N features · BUGS: N open (M critical) · DEBT: N items` (blocking signal comes from `bug` / `technical_debt_item` / `dependency` / `root_cause` entities, not a `blocker` type)
|
|
217
216
|
|
|
218
|
-
Recommend: `/upg-impact --upstream`, `/upg-impact`, `/upg-
|
|
217
|
+
Recommend: `/upg-show-impact --upstream`, `/upg-show-impact`, `/upg-walk-region engineering` (covers technical debt + architecture)
|
|
219
218
|
|
|
220
219
|
**Design lens:** Replace "BY BUSINESS AREA" with "DESIGN COVERAGE":
|
|
221
220
|
|
|
@@ -226,7 +225,7 @@ Recommend: `/upg-impact --upstream`, `/upg-impact`, `/upg-explore engineering` (
|
|
|
226
225
|
| 🔄 Flows | N complete | [list] |
|
|
227
226
|
| 🎨 Tokens | N defined | [count] |
|
|
228
227
|
|
|
229
|
-
Recommend: `/upg-
|
|
228
|
+
Recommend: `/upg-walk-region ux_design` (covers screens, flows, wireframes, design audit)
|
|
230
229
|
|
|
231
230
|
**Growth lens:** Replace "BY BUSINESS AREA" with "GROWTH STATUS":
|
|
232
231
|
|
|
@@ -234,7 +233,7 @@ Recommend: `/upg-explore ux_design` (covers screens, flows, wireframes, design a
|
|
|
234
233
|
|---------|---------|-----------|
|
|
235
234
|
| [channel name] | N | N active |
|
|
236
235
|
|
|
237
|
-
Recommend: `/upg-
|
|
236
|
+
Recommend: `/upg-walk-region growth` (funnel + experiments), `/upg-walk-region marketing` (positioning + SEO + campaigns), `/upg-new-launch` (GTM workshop)
|
|
238
237
|
|
|
239
238
|
**Product lens (default):** Show the standard business area coverage table (no change).
|
|
240
239
|
|
|
@@ -249,7 +248,7 @@ Recommend: `/upg-explore growth` (funnel + experiments), `/upg-explore marketing
|
|
|
249
248
|
|
|
250
249
|
## Business Area Entity Mapping
|
|
251
250
|
|
|
252
|
-
### Solo Builder tier (
|
|
251
|
+
### Solo Builder tier (`concept`–`beta` stage: 40 entities)
|
|
253
252
|
|
|
254
253
|
| Area | Entity Types |
|
|
255
254
|
|---|---|
|
|
@@ -262,7 +261,7 @@ Recommend: `/upg-explore growth` (funnel + experiments), `/upg-explore marketing
|
|
|
262
261
|
| 🏦 Sustaining | business_model, revenue_stream, cost_structure, unit_economics, pricing_strategy |
|
|
263
262
|
| 📊 Learning | outcome, metric, objective, key_result, retrospective |
|
|
264
263
|
|
|
265
|
-
### Small Team tier (growth stage: 55 entities)
|
|
264
|
+
### Small Team tier (`launch`–`growth` stage: 55 entities)
|
|
266
265
|
|
|
267
266
|
All Solo Builder entities plus:
|
|
268
267
|
|
|
@@ -274,7 +273,7 @@ All Solo Builder entities plus:
|
|
|
274
273
|
| 📦 Building | + team, role, dependency, prototype, wireframe, design_component, user_flow (flow_type: onboarding), roadmap, screen |
|
|
275
274
|
| 📊 Learning | + milestone, feature_request, feedback_theme |
|
|
276
275
|
|
|
277
|
-
### Scale-Up tier (
|
|
276
|
+
### Scale-Up tier (`mature`–`sunset` stage: 70 entities)
|
|
278
277
|
|
|
279
278
|
All Small Team entities plus additional entities per area to reach 70 total. Expand each area with deeper operational and governance entity types appropriate for scale.
|
|
280
279
|
|
|
@@ -291,10 +290,10 @@ get_session_context() // see what skills already ran + what was recommended
|
|
|
291
290
|
|
|
292
291
|
After rendering, register this invocation:
|
|
293
292
|
```
|
|
294
|
-
update_session_context({ skill_invoked: "upg-status", mode: "quick", recommendation: "<your recommendation>" })
|
|
293
|
+
update_session_context({ skill_invoked: "upg-show-status", mode: "quick", recommendation: "<your recommendation>" })
|
|
295
294
|
```
|
|
296
295
|
|
|
297
|
-
The digest pre-computes health metrics, chain completeness, coverage, and orphan rates server-side. No `list_nodes` needed. No maturity scoring (that's `--full` mode). No action plans (that's `/upg-gaps`).
|
|
296
|
+
The digest pre-computes health metrics, chain completeness, coverage, and orphan rates server-side. No `list_nodes` needed. No maturity scoring (that's `--full` mode). No action plans (that's `/upg-check-gaps`).
|
|
298
297
|
|
|
299
298
|
### Health Signals (5)
|
|
300
299
|
|
|
@@ -318,8 +317,8 @@ Render as real markdown, NOT inside a code block. Use this structure exactly:
|
|
|
318
317
|
|
|
319
318
|
```
|
|
320
319
|
🟡 3 hypotheses untested; ⚗️ "Wizard reduces drop-off", ⚗️ "Users prefer mobile", ⚗️ "Pricing tier works"
|
|
321
|
-
🔴 2 personas have no jobs; 👤 "Jordan", 👤 "Sam" (add JTBDs with /upg-persona)
|
|
322
|
-
🟡 5 entities below 50% complete; consider /upg-gaps for details
|
|
320
|
+
🔴 2 personas have no jobs; 👤 "Jordan", 👤 "Sam" (add JTBDs with /upg-new-persona)
|
|
321
|
+
🟡 5 entities below 50% complete; consider /upg-check-gaps for details
|
|
323
322
|
🟢 All key chains connected
|
|
324
323
|
🟢 Graph updated today
|
|
325
324
|
```
|
|
@@ -329,7 +328,7 @@ Render as real markdown, NOT inside a code block. Use this structure exactly:
|
|
|
329
328
|
One short paragraph: what's the overall health, and what's the single fastest win? End with a specific command suggestion.
|
|
330
329
|
|
|
331
330
|
> Your graph is healthy but has untested bets. The fastest win is running one experiment.
|
|
332
|
-
> → `/upg-hypothesis` to pick one and design a test
|
|
331
|
+
> → `/upg-new-hypothesis` to pick one and design a test
|
|
333
332
|
|
|
334
333
|
### Quick mode principles
|
|
335
334
|
|
|
@@ -337,4 +336,4 @@ One short paragraph: what's the overall health, and what's the single fastest wi
|
|
|
337
336
|
- **Name entities, not just counts.** "3 untested hypotheses" < naming them.
|
|
338
337
|
- **Signal colours:** 🟢 healthy, 🟡 attention needed, 🔴 action required.
|
|
339
338
|
- **ONE recommendation.** Pick the highest-impact action and suggest it.
|
|
340
|
-
- **This is NOT `--full`** (maturity score + bars + benchmarks + frameworks) or `/upg-gaps` (deep action plans). This is the 10-second pulse.
|
|
339
|
+
- **This is NOT `--full`** (maturity score + bars + benchmarks + frameworks) or `/upg-check-gaps` (deep action plans). This is the 10-second pulse.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: upg-tree
|
|
2
|
+
name: upg-show-tree
|
|
3
3
|
description: "Framework-Aware Tree View"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
argument-hint: "[pattern]"
|
|
@@ -7,7 +7,7 @@ category: cognitive
|
|
|
7
7
|
approaches: [inspect]
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
# /upg-tree: Framework-Aware Tree View
|
|
10
|
+
# /upg-show-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,13 +20,13 @@ Use `mcp__unified-product-graph__query` for tree fetching (one call per tree) an
|
|
|
20
20
|
## Usage
|
|
21
21
|
|
|
22
22
|
```
|
|
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
|
|
23
|
+
/upg-show-tree: Auto-detect best tree based on graph contents
|
|
24
|
+
/upg-show-tree ost: Opportunity Solution Tree
|
|
25
|
+
/upg-show-tree okr: Objectives & Key Results
|
|
26
|
+
/upg-show-tree user: Persona → JTBD → Pain Point chain
|
|
27
|
+
/upg-show-tree product: Product → Feature → Epic → User Story
|
|
28
|
+
/upg-show-tree validation: Hypothesis → Experiment → Learning
|
|
29
|
+
/upg-show-tree strategy: Vision → Mission → Strategic Theme → Initiative → Outcome
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
## Named Tree Patterns
|
|
@@ -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; /upg-
|
|
150
|
+
│ (no solutions; /upg-walk-region a solution)
|
|
151
151
|
│
|
|
152
152
|
└─ 💡 Onboarding asks for too much upfront
|
|
153
153
|
reach ● ● ● ● ○ pain ● ● ● ○ ○ freq ● ● ● ● ○
|
|
@@ -199,9 +199,9 @@ After the tree, display outside the code block:
|
|
|
199
199
|
|
|
200
200
|
**<N>** entities shown · **<N>** levels deep · <breakdown by type emojis>
|
|
201
201
|
|
|
202
|
-
Other views: `/upg-tree user` · `/upg-tree validation` · `/upg-tree okr`
|
|
202
|
+
Other views: `/upg-show-tree user` · `/upg-show-tree validation` · `/upg-show-tree okr`
|
|
203
203
|
|
|
204
|
-
→ `/upg-push` to sync | unifiedproductgraph.org for the standard
|
|
204
|
+
→ `/upg-sync-push` to sync | unifiedproductgraph.org for the standard
|
|
205
205
|
|
|
206
206
|
## Auto-Detection Logic
|
|
207
207
|
|
|
@@ -221,13 +221,13 @@ If the graph is empty or has no entities matching the requested pattern:
|
|
|
221
221
|
>
|
|
222
222
|
> Your graph needs: <list root entity types for this pattern>
|
|
223
223
|
>
|
|
224
|
-
> Get started: `/upg-
|
|
225
|
-
> Or: `/upg-
|
|
224
|
+
> Get started: `/upg-new-graph` to bootstrap your product graph
|
|
225
|
+
> Or: `/upg-walk-region` to add specific entity types
|
|
226
226
|
|
|
227
227
|
## Key Principles
|
|
228
228
|
|
|
229
229
|
- **Framework attribution matters.** Always credit the framework's creator.
|
|
230
230
|
- **Show properties, not just titles.** A tree of titles is useless; show the data.
|
|
231
|
-
- **Auto-detect when possible.** If the user just says `/upg-tree`, pick the most informative view.
|
|
231
|
+
- **Auto-detect when possible.** If the user just says `/upg-show-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,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: upg-export
|
|
2
|
+
name: upg-sync-export
|
|
3
3
|
description: "Export Graph as Shareable Artifact"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
argument-hint: "[description]"
|
|
6
6
|
category: tooling
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
# /upg-export: Export Graph as Shareable Artifact
|
|
9
|
+
# /upg-sync-export: Export Graph as Shareable Artifact
|
|
10
10
|
|
|
11
11
|
You are a Unified Product Graph export engine. Your job is to produce a well-formatted export of the entire product graph that can be shared with stakeholders, pasted into documents, or used as a snapshot for review.
|
|
12
12
|
|
|
@@ -20,7 +20,7 @@ Use the `mcp__unified-product-graph__*` MCP tools (get_product_context, get_grap
|
|
|
20
20
|
|
|
21
21
|
### Step 1: Choose Format
|
|
22
22
|
|
|
23
|
-
If the user specified a format as an argument (e.g., `/upg-export mermaid`), skip this step. Otherwise ask:
|
|
23
|
+
If the user specified a format as an argument (e.g., `/upg-sync-export mermaid`), skip this step. Otherwise ask:
|
|
24
24
|
|
|
25
25
|
```
|
|
26
26
|
Which export format?
|
|
@@ -52,7 +52,7 @@ Produce a markdown document with these sections:
|
|
|
52
52
|
|
|
53
53
|
> Exported from the Unified Product Graph (UPG)
|
|
54
54
|
> Date: <current date>
|
|
55
|
-
> Stage: <
|
|
55
|
+
> Stage: <concept | validation | build | beta | launch | growth | mature | maintenance | sunset>
|
|
56
56
|
|
|
57
57
|
## Product Overview
|
|
58
58
|
|
|
@@ -177,13 +177,10 @@ Produce a markdown document with these sections:
|
|
|
177
177
|
|
|
178
178
|
## Tree View
|
|
179
179
|
|
|
180
|
-
<Render the full product-rooted tree using the same format as /upg-tree>
|
|
180
|
+
<Render the full product-rooted tree using the same format as /upg-show-tree>
|
|
181
181
|
|
|
182
182
|
---
|
|
183
183
|
|
|
184
|
-
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
|
|
185
|
-
Your .upg file is yours: open standard, portable, git-friendly.
|
|
186
|
-
unifiedproductgraph.org
|
|
187
184
|
|
|
188
185
|
*Structured using the Unified Product Graph; an open standard for product knowledge.*
|
|
189
186
|
```
|
|
@@ -364,11 +361,11 @@ Stats: X entities, Y edges, Z domains
|
|
|
364
361
|
Format: <Full Markdown | Mermaid | CSV | Markdown Report>
|
|
365
362
|
|
|
366
363
|
Next steps:
|
|
367
|
-
- /upg-export <other format>: try a different format
|
|
368
|
-
- /upg-
|
|
369
|
-
- /upg-gaps: check for gaps
|
|
370
|
-
- /upg-status: live dashboard view
|
|
371
|
-
- /upg-diff: see what changed since your last commit
|
|
364
|
+
- /upg-sync-export <other format>: try a different format
|
|
365
|
+
- /upg-new-discovery: run another discovery session
|
|
366
|
+
- /upg-check-gaps: check for gaps
|
|
367
|
+
- /upg-show-status: live dashboard view
|
|
368
|
+
- /upg-show-diff: see what changed since your last commit
|
|
372
369
|
```
|
|
373
370
|
|
|
374
371
|
## Conditional Sections
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: upg-import
|
|
2
|
+
name: upg-sync-import
|
|
3
3
|
description: "Import product knowledge from external tools into your .upg graph: Markdown, GitHub, Linear, Jira, Dovetail, Vistaly, Notion, and 30+ more adapters"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
argument-hint: "[tool]"
|
|
6
6
|
category: tooling
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
# /upg-import: Import Product Knowledge
|
|
9
|
+
# /upg-sync-import: Import Product Knowledge
|
|
10
10
|
|
|
11
11
|
You are a UPG import engine. Pull structured product knowledge from external tools into the user's .upg graph.
|
|
12
12
|
|
|
@@ -24,7 +24,7 @@ You are a UPG import engine. Pull structured product knowledge from external too
|
|
|
24
24
|
|
|
25
25
|
## Step 1: Choose Source
|
|
26
26
|
|
|
27
|
-
Skip if the user provided an argument (e.g. `/upg-import github`). Otherwise present the menu:
|
|
27
|
+
Skip if the user provided an argument (e.g. `/upg-sync-import github`). Otherwise present the menu:
|
|
28
28
|
|
|
29
29
|
```
|
|
30
30
|
Where do you want to import from?
|
|
@@ -165,10 +165,10 @@ After any successful import:
|
|
|
165
165
|
|
|
166
166
|
```
|
|
167
167
|
Your graph just grew! Suggested next steps:
|
|
168
|
-
- /upg-tree: see the full structure
|
|
169
|
-
- /upg-gaps: check what's still missing
|
|
170
|
-
- /upg-status: health dashboard with completeness scores
|
|
171
|
-
- /upg-
|
|
168
|
+
- /upg-show-tree: see the full structure
|
|
169
|
+
- /upg-check-gaps: check what's still missing
|
|
170
|
+
- /upg-show-status: health dashboard with completeness scores
|
|
171
|
+
- /upg-new-discovery: AI-powered entity discovery from what you just imported
|
|
172
172
|
```
|
|
173
173
|
|
|
174
174
|
---
|
|
@@ -181,9 +181,3 @@ Your graph just grew! Suggested next steps:
|
|
|
181
181
|
- **Deduplicate.** Check existing nodes with `search_nodes` before creating. Flag potential matches.
|
|
182
182
|
- **Respect mapping_confidence.** Adapters set `'high'` / `'medium'` / `'low'`; surface `'low'` items for human review.
|
|
183
183
|
- **Never auto-emit `insight_informs_opportunity`.** This edge always requires PM judgment. Emit a warning instead.
|
|
184
|
-
|
|
185
|
-
---
|
|
186
|
-
|
|
187
|
-
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
|
|
188
|
-
37 adapters. Open standard. Your .upg file is portable and git-friendly.
|
|
189
|
-
unifiedproductgraph.org/integrations
|
|
@@ -3,7 +3,7 @@ name: upg-pull-detail
|
|
|
3
3
|
description: "Detailed pull flow, merge logic, incremental sync"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# /upg-pull: Pull Flow Detail
|
|
6
|
+
# /upg-sync-pull: Pull Flow Detail
|
|
7
7
|
|
|
8
8
|
## Pull Flow
|
|
9
9
|
|
|
@@ -21,7 +21,7 @@ To pull from The Product Creator, you need an API key configured.
|
|
|
21
21
|
2. Go to Settings → API Keys → Create New Key
|
|
22
22
|
3. Add to your .mcp.json config
|
|
23
23
|
|
|
24
|
-
Once configured, run /upg-pull again.
|
|
24
|
+
Once configured, run /upg-sync-pull again.
|
|
25
25
|
```
|
|
26
26
|
|
|
27
27
|
### Step 2: Select Product
|
|
@@ -151,7 +151,7 @@ Pulled "<Product Name>" from The Product Creator cloud.
|
|
|
151
151
|
Connections: <N>
|
|
152
152
|
Domains: <N> covered
|
|
153
153
|
|
|
154
|
-
Your graph is now local
|
|
154
|
+
Your graph is now local in a .upg file you can edit, diff, and commit.
|
|
155
155
|
```
|
|
156
156
|
|
|
157
157
|
Then show the "What You Can Do Now" section (Step 6).
|
|
@@ -188,7 +188,7 @@ If user declines, suggest:
|
|
|
188
188
|
You can:
|
|
189
189
|
- Save your current .upg file first: cp product.upg product-backup.upg
|
|
190
190
|
- Or commit it to git: git add product.upg && git commit -m "Backup before pull"
|
|
191
|
-
- Then run /upg-pull again
|
|
191
|
+
- Then run /upg-sync-pull again
|
|
192
192
|
```
|
|
193
193
|
|
|
194
194
|
---
|
|
@@ -349,7 +349,7 @@ Then show the "What You Can Do Now" section (Step 6 below).
|
|
|
349
349
|
**Cloud graph is empty:**
|
|
350
350
|
```
|
|
351
351
|
"<Product Name>" has no entities in the cloud yet.
|
|
352
|
-
Build it locally with /upg-
|
|
352
|
+
Build it locally with /upg-new-graph, then /upg-sync-push when ready.
|
|
353
353
|
```
|
|
354
354
|
|
|
355
355
|
**Very large graph (200+ entities):**
|
|
@@ -370,12 +370,12 @@ Show this section after every successful pull (full or incremental):
|
|
|
370
370
|
```
|
|
371
371
|
### What You Can Do Now
|
|
372
372
|
|
|
373
|
-
/upg-status: See your graph health dashboard
|
|
374
|
-
/upg-tree: View through framework lenses (ost, user, validation...)
|
|
375
|
-
/upg-gaps: Find strategic gaps and get action plans
|
|
376
|
-
/upg-
|
|
377
|
-
/upg-
|
|
378
|
-
/upg-push: Push local changes back to the cloud
|
|
373
|
+
/upg-show-status: See your graph health dashboard
|
|
374
|
+
/upg-show-tree: View through framework lenses (ost, user, validation...)
|
|
375
|
+
/upg-check-gaps: Find strategic gaps and get action plans
|
|
376
|
+
/upg-walk-region: Add new entities locally
|
|
377
|
+
/upg-new-discovery: Run a guided discovery session
|
|
378
|
+
/upg-sync-push: Push local changes back to the cloud
|
|
379
379
|
|
|
380
380
|
### Version Control
|
|
381
381
|
|
|
@@ -387,12 +387,8 @@ Show this section after every successful pull (full or incremental):
|
|
|
387
387
|
|
|
388
388
|
### Stay in Sync
|
|
389
389
|
|
|
390
|
-
Edit locally, then /upg-push to sync back to the cloud.
|
|
391
|
-
Pull again with /upg-pull to get the latest from your team.
|
|
390
|
+
Edit locally, then /upg-sync-push to sync back to the cloud.
|
|
391
|
+
Pull again with /upg-sync-pull to get the latest from your team.
|
|
392
392
|
The .upg file is your source of truth for local work.
|
|
393
393
|
|
|
394
|
-
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
|
|
395
|
-
Your .upg file is yours: open standard, portable, git-friendly.
|
|
396
|
-
unifiedproductgraph.org
|
|
397
394
|
```
|
|
398
|
-
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: upg-pull
|
|
2
|
+
name: upg-sync-pull
|
|
3
3
|
description: "Pull a cloud graph down to a local .upg file"
|
|
4
4
|
user-invocable: true
|
|
5
5
|
argument-hint: "[product-name]"
|
|
6
6
|
category: tooling
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
# /upg-pull: Pull Cloud Graph to Local
|
|
9
|
+
# /upg-sync-pull: Pull Cloud Graph to Local
|
|
10
10
|
|
|
11
11
|
You are a Unified Product Graph sync engine. Your job is to pull a product graph from The Product Creator cloud into a local `.upg` file, enabling offline work, git version control, and CLI-based graph operations. You support both full pulls and incremental sync.
|
|
12
12
|
|
|
@@ -48,7 +48,7 @@ The `.upg-sync` file tracks the sync state between local and cloud. It lives nex
|
|
|
48
48
|
|
|
49
49
|
## Key Principles
|
|
50
50
|
|
|
51
|
-
- **Cloud to local
|
|
51
|
+
- **Cloud to local is a real round-trip.** The pulled `.upg` file is the user's to edit and commit; nothing stays tied to the cloud.
|
|
52
52
|
- **Preserve fidelity.** Every entity, every edge, every property should survive the round-trip.
|
|
53
53
|
- **Incremental by default.** If a sync file exists, merge changes instead of overwriting.
|
|
54
54
|
- **Handle conflicts transparently.** v1 uses last-write-wins (cloud takes precedence), but always tell the user when it happens.
|
|
@@ -3,7 +3,7 @@ name: upg-push-detail
|
|
|
3
3
|
description: "Detailed push flow, sync file format, ID mapping, edge cases"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# /upg-push: Push Flow Detail
|
|
6
|
+
# /upg-sync-push: Push Flow Detail
|
|
7
7
|
|
|
8
8
|
## First-Time Push (Step 4)
|
|
9
9
|
|
|
@@ -112,7 +112,7 @@ Nothing to push; your graph hasn't changed since last sync.
|
|
|
112
112
|
|
|
113
113
|
Last synced: <last_synced_at from .upg-sync>
|
|
114
114
|
|
|
115
|
-
Make changes locally, then run /upg-push again.
|
|
115
|
+
Make changes locally, then run /upg-sync-push again.
|
|
116
116
|
```
|
|
117
117
|
Stop here.
|
|
118
118
|
|
|
@@ -295,7 +295,7 @@ View your graph: cloud.unifiedproductgraph.org/p/<product_id>
|
|
|
295
295
|
### Keep Building Locally
|
|
296
296
|
|
|
297
297
|
Your .upg file is still the source of truth for local work.
|
|
298
|
-
Run /upg-push again anytime; only your changes will be synced.
|
|
298
|
+
Run /upg-sync-push again anytime; only your changes will be synced.
|
|
299
299
|
```
|
|
300
300
|
|
|
301
301
|
**After incremental push:**
|
|
@@ -317,11 +317,6 @@ View your graph: cloud.unifiedproductgraph.org/p/<product_id>
|
|
|
317
317
|
```
|
|
318
318
|
|
|
319
319
|
**Shared footer (always append):**
|
|
320
|
-
```
|
|
321
|
-
┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
|
|
322
|
-
Your .upg file is yours: open standard, portable, git-friendly.
|
|
323
|
-
unifiedproductgraph.org
|
|
324
|
-
```
|
|
325
320
|
|
|
326
321
|
## The .upg-sync File
|
|
327
322
|
|
|
@@ -378,8 +373,7 @@ This is a large graph (<N> entities). Syncing in batches...
|
|
|
378
373
|
Use pagination on `list_nodes` and batch creates (50 at a time).
|
|
379
374
|
|
|
380
375
|
**Partial push failure:**
|
|
381
|
-
If some batch creates succeed but others fail, report what succeeded and what failed. The `.upg-sync` file should still be updated with the mappings for entities that DID sync; don't throw away progress. Suggest retrying with `/upg-push` for the remaining entities.
|
|
376
|
+
If some batch creates succeed but others fail, report what succeeded and what failed. The `.upg-sync` file should still be updated with the mappings for entities that DID sync; don't throw away progress. Suggest retrying with `/upg-sync-push` for the remaining entities.
|
|
382
377
|
|
|
383
378
|
**Node type mapping:**
|
|
384
379
|
Cloud uses the same entity types as local (`@unified-product-graph/core` shared ontology), so types map directly. Cloud stores type-specific data in a `data` JSONB column; map this from `properties` in the `.upg` format.
|
|
385
|
-
|