@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.
Files changed (61) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +1 -1
  3. package/TOOLS.md +19 -13
  4. package/dist/index.js +1286 -285
  5. package/dist/index.js.map +1 -1
  6. package/dist/tools-manifest.json +94 -75
  7. package/package.json +1 -1
  8. package/scripts/claudemd-snippet.md +7 -7
  9. package/scripts/install-skills.sh +2 -2
  10. package/skills/upg/SKILL.md +41 -41
  11. package/skills/{upg-gaps → upg-check-gaps}/SKILL.md +40 -43
  12. package/skills/{upg-schema-health → upg-check-schema}/SKILL.md +7 -7
  13. package/skills/{upg-schema-evolve → upg-check-schema-coverage}/SKILL.md +12 -12
  14. package/skills/{upg-schema-edges → upg-check-schema-edges}/SKILL.md +3 -3
  15. package/skills/{upg-schema-consolidate → upg-check-schema-merge}/SKILL.md +5 -5
  16. package/skills/upg-context/SKILL.md +96 -72
  17. package/skills/upg-context-intelligence/SKILL.md +23 -27
  18. package/skills/upg-design-system/SKILL.md +21 -26
  19. package/skills/{upg-verify → upg-find-untracked}/SKILL.md +7 -12
  20. package/skills/{upg-rollback → upg-fix-rollback}/SKILL.md +6 -12
  21. package/skills/{upg-migrate → upg-fix-types}/SKILL.md +5 -9
  22. package/skills/upg-link/SKILL.md +125 -0
  23. package/skills/{upg-discover → upg-new-discovery}/SKILL.md +42 -58
  24. package/skills/{upg-capture → upg-new-from-session}/SKILL.md +13 -15
  25. package/skills/{upg-template → upg-new-from-template}/SKILL.md +8 -12
  26. package/skills/{upg-init → upg-new-graph}/SKILL.md +50 -82
  27. package/skills/{upg-hypothesis → upg-new-hypothesis}/SKILL.md +27 -36
  28. package/skills/{upg-launch → upg-new-launch}/SKILL-DETAIL.md +36 -92
  29. package/skills/{upg-launch → upg-new-launch}/SKILL.md +8 -18
  30. package/skills/{upg-okr → upg-new-okr}/SKILL-DETAIL.md +28 -46
  31. package/skills/{upg-okr → upg-new-okr}/SKILL.md +3 -3
  32. package/skills/{upg-persona → upg-new-persona}/SKILL.md +35 -67
  33. package/skills/{upg-research → upg-new-research}/SKILL.md +25 -33
  34. package/skills/{upg-schema-update → upg-new-schema-type}/SKILL.md +2 -2
  35. package/skills/{upg-strategy → upg-new-strategy}/SKILL.md +21 -27
  36. package/skills/upg-prioritise/SKILL.md +4 -4
  37. package/skills/upg-reflect/SKILL.md +7 -7
  38. package/skills/{upg-feedback → upg-send-feedback}/SKILL.md +30 -51
  39. package/skills/{upg-diff → upg-show-diff}/SKILL.md +6 -12
  40. package/skills/{upg-inspect → upg-show-entity}/SKILL.md +7 -9
  41. package/skills/{upg-impact → upg-show-impact}/SKILL.md +11 -15
  42. package/skills/{upg-journey → upg-show-journey}/SKILL.md +31 -32
  43. package/skills/{upg-analytics → upg-show-metrics}/SKILL.md +9 -12
  44. package/skills/{upg-schema-changelog → upg-show-schema-changelog}/SKILL.md +5 -5
  45. package/skills/{upg-status → upg-show-status}/SKILL.md +39 -40
  46. package/skills/{upg-tree → upg-show-tree}/SKILL.md +15 -15
  47. package/skills/{upg-export → upg-sync-export}/SKILL.md +10 -13
  48. package/skills/{upg-import → upg-sync-import}/SKILL.md +7 -13
  49. package/skills/{upg-pull → upg-sync-pull}/SKILL-DETAIL.md +13 -17
  50. package/skills/{upg-pull → upg-sync-pull}/SKILL.md +3 -3
  51. package/skills/{upg-push → upg-sync-push}/SKILL-DETAIL.md +4 -10
  52. package/skills/{upg-push → upg-sync-push}/SKILL.md +4 -4
  53. package/skills/{upg-snapshot → upg-sync-snapshot}/SKILL.md +2 -6
  54. package/skills/upg-trace/SKILL.md +7 -7
  55. package/skills/{upg-workspace → upg-use-workspace}/SKILL.md +8 -14
  56. package/skills/{upg-run → upg-walk-playbook}/SKILL.md +10 -10
  57. package/skills/upg-walk-region/SKILL-DETAIL.md +320 -0
  58. package/skills/upg-walk-region/SKILL.md +89 -0
  59. package/skills/upg-connect/SKILL.md +0 -167
  60. package/skills/upg-explore/SKILL-DETAIL.md +0 -481
  61. package/skills/upg-explore/SKILL.md +0 -297
package/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  All notable changes to `@unified-product-graph/mcp-server` are documented in this file. Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
4
4
 
5
+ ## [0.8.2] - 2026-06-02
6
+
7
+ Co-version with the @unified-product-graph/* 0.8.2 release train.
8
+
9
+ ### Changed
10
+ - Tool handlers now enforce the shared write-validation policy directly: `batch_create_edges` rejects invalid edge types, `update_node` honours property unset and rejects invalid status, and session-context updates reject invalid lenses.
11
+ - Bundled skills renamed to a consistent verb-based grammar and reworked to be MCP-first: schemas, lifecycles, and edges are fetched from the server before writes rather than hard-coded.
12
+
13
+ ### Added
14
+ - `skill_audit` all-mode for full-surface review.
15
+
5
16
  ## [0.7.6] - 2026-05-30
6
17
 
7
18
  ### Added
package/README.md CHANGED
@@ -134,7 +134,7 @@ All spec-introspection handlers are read-only and snapshot from the spec package
134
134
 
135
135
  ## Installing Skills (Claude Code)
136
136
 
137
- The server provides the raw MCP tools. For a guided experience with slash commands (`/upg`, `/upg-init`, `/upg-journey`), install the skill files:
137
+ The server provides the raw MCP tools. For a guided experience with slash commands (`/upg`, `/upg-new-graph`, `/upg-show-journey`), install the skill files:
138
138
 
139
139
  ```bash
140
140
  bash scripts/install-skills.sh
package/TOOLS.md CHANGED
@@ -160,10 +160,10 @@ succeed or fail independently of the session update.`
160
160
  | ---- | ---- | -------- | ----------- |
161
161
  | `custom` | object | | Arbitrary key-value pairs for cross-skill state |
162
162
  | `focus_area` | string | | Set the current focus area (e.g. "strategy", "validation", "user_research") |
163
- | `lens` | `product` \| `engineering` \| `design` \| `growth` | | Switch the active lens. Changes what context, skills, and gaps are surfaced first. |
163
+ | `lens` | `product` \| `ux_design` \| `engineering` \| `growth` \| `business` \| `research` \| `marketing` \| `full` | | Switch the active lens. Changes what context, skills, and gaps are surfaced first. Canonical lens ids (derived from core): product, ux_design, engineering, growth, business, research, marketing, full. |
164
164
  | `persist_lens` | boolean | | If true, also save the lens to the .upg file so it persists across sessions |
165
- | `recommendation` | string | | Record a recommendation given to the user (e.g. "Run /upg-strategy to fill strategy gap") |
166
- | `skill_invoked` | string | | Register that this skill was just invoked (e.g. "upg-status") |
165
+ | `recommendation` | string | | Record a recommendation given to the user (e.g. "Run /upg-new-strategy to fill strategy gap") |
166
+ | `skill_invoked` | string | | Register that this skill was just invoked (e.g. "upg-show-status") |
167
167
 
168
168
  **Returns:**
169
169
 
@@ -648,20 +648,22 @@ shallow-merge patches.`
648
648
  | `tags` | array | | |
649
649
  | `title` | string | | |
650
650
  | `type` | string | | Change the entity type. Atomic single-node migration: validates against UPG_TYPES, rewrites incident edges to canonical types. |
651
+ | `unset_properties` | array | | Property keys to DELETE. Applied after the `properties` merge, so one call can set some keys and drop others. Writing `{ key: null }` only stores a literal null; use this to actually remove a key. Unknown keys are ignored. |
651
652
 
652
653
  **Returns:**
653
654
 
654
- JSON: `{ node, warning?, unknown_properties? }`. `warning`
655
- aggregates lifecycle-status hints, migration warnings, and any
656
- unknown-property notice. `unknown_properties` lists property
657
- keys not in the entity's schema. Pass `strict: true` to reject unknown
658
- properties instead of warning.
655
+ JSON: `{ node, warning?, unknown_properties?, unset? }`. `warning`
656
+ aggregates migration warnings and any unknown-property notice.
657
+ `unknown_properties` lists property keys not in the entity's schema.
658
+ `unset` lists the keys actually removed. Pass `strict: true` to reject
659
+ unknown properties instead of warning.
659
660
 
660
661
  **Throws:**
661
662
 
662
663
  - Returns a textError when `node_id` is missing, the type migration
663
- fails, when `strict: true` and unknown properties are present, or when
664
- the underlying store rejects the patch.
664
+ fails, the `status` is not a valid lifecycle phase for the type, when
665
+ `strict: true` and unknown properties are present, or when the underlying
666
+ store rejects the patch.
665
667
 
666
668
  **See also:** `migrate_type`, `batch_update_nodes`
667
669
 
@@ -1212,6 +1214,9 @@ _No arguments._
1212
1214
  **Returns:**
1213
1215
 
1214
1216
  JSON: `{ products: Array<{ file, title, stage, nodes, edges }> }`.
1217
+ `stage` is the CANONICAL UPGProductStage (legacy values like `idea` are
1218
+ coerced to `concept`), or `null` when unset — matching what
1219
+ `get_product_context` reports for the same product (UPG-611 / DT-MCP-3).
1215
1220
 
1216
1221
  **See also:** `switch_product`, `get_workspace_info`
1217
1222
 
@@ -1759,7 +1764,7 @@ JSON: `{ parent_type, valid_children: string[] }`
1759
1764
 
1760
1765
  ### `inspect`
1761
1766
 
1762
- [LLM-mediated] This tool returns a routing envelope, not computed results. For user-facing inspection, invoke the /upg-inspect skill instead of calling this tool directly. Inspect approach: path of arrival to "what's broken?". Returns the Inspect record + invocation params in the family-resemblance envelope. The LLM consumes `signature_hint` and emits `{ violations: [{ severity, kind, entity_id, description, fix_hint }] }` against `UPG_ANTI_PATTERNS` + the live graph. Optional `region` or `entities[]` scope the audit.
1767
+ [LLM-mediated] This tool returns a routing envelope, not computed results. For user-facing inspection, invoke the /upg-show-entity skill instead of calling this tool directly. Inspect approach: path of arrival to "what's broken?". Returns the Inspect record + invocation params in the family-resemblance envelope. The LLM consumes `signature_hint` and emits `{ violations: [{ severity, kind, entity_id, description, fix_hint }] }` against `UPG_ANTI_PATTERNS` + the live graph. Optional `region` or `entities[]` scope the audit.
1763
1768
 
1764
1769
  **Atomicity:** `atomic (read-only)`
1765
1770
 
@@ -2184,7 +2189,7 @@ JSON: `{ migrations: [{ from, to, since }], total: number }`
2184
2189
 
2185
2190
  ### `plan`
2186
2191
 
2187
- Plan approach: path of arrival to "what should I build next?". Returns the Plan record + invocation params wrapped in `{ approach_id, scope, generated_at, approach, params }`. The LLM consumes `signature_hint` and synthesises `{ missing_entities, coverage_score }` against the live graph. Optional `region` narrows scope.
2192
+ Plan approach: path of arrival to "what should I build next?". Returns the Plan record + invocation params wrapped in `{ approach_id, scope, generated_at, approach, params }`. The LLM consumes `signature_hint` and synthesises `{ missing_entities, coverage_score }` against the live graph. Optional `region` narrows scope; omit `region` to scope to the product's ACTIVE regions; pass `exhaustive:true` to score the full type universe (UPG-601).
2188
2193
 
2189
2194
  **Atomicity:** `atomic (read-only)`
2190
2195
 
@@ -2192,7 +2197,8 @@ Plan approach: path of arrival to "what should I build next?". Returns the Plan
2192
2197
 
2193
2198
  | Name | Type | Required | Description |
2194
2199
  | ---- | ---- | -------- | ----------- |
2195
- | `region` | string | | Optional UPGRegionId. Narrows planning scope to a single region (e.g. "users_needs", "business_gtm_growth"). Omit for whole-graph planning. |
2200
+ | `exhaustive` | boolean | | If true, score against the entire 312-type universe (every domain creation sequence). Off by default; whole-universe gap scoring is noisy for a focused product. Only applies when `region` is omitted. |
2201
+ | `region` | string | | Optional UPGRegionId or atomic-domain id. Narrows planning scope to a single region (e.g. "users_needs", "business_gtm_growth"). Omit to scope to the product's active regions. |
2196
2202
 
2197
2203
  **Returns:**
2198
2204