@unified-product-graph/core 0.9.15 → 0.9.16
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 +15 -0
- package/dist/index.cjs +41 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +59 -2
- package/dist/index.d.ts +59 -2
- package/dist/index.js +36 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,21 @@ This project uses [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [0.9.16] - 2026-06-11
|
|
11
|
+
|
|
12
|
+
**get_tree reaches the cloud, the show-tree skill calls it, and the three "area" taxonomies get a documented cross-walk.** 0.9.15 shipped `get_tree` local-only and left the show-tree skill on its interim hardcoded chains; this release finishes the loop and closes the deferred A4 introspection gap.
|
|
13
|
+
|
|
14
|
+
### Added
|
|
15
|
+
- **`get_tree` on the cloud server** (cloud tools 94 to 95; local unchanged at 121). The assembler (`assembleTree` + the `GraphReader` interface) moved to the shared `@unified-product-graph/mcp-tooling` package, so the local file-backed server and the cloud Postgres-backed server assemble byte-identical trees from one source. The cloud handler builds an in-memory `GraphReader` from a one-shot product node+edge load. `get_tree` leaves the CLOUD_NA parity list.
|
|
16
|
+
- **`UPG_AREA_TAXONOMY`** (core): the documented cross-walk between the three overlapping "area" groupings that skills kept conflating into a stale coverage denominator: the 10 `get_graph_digest.coverage` keys, the 11 canonical regions, and the 8 "business areas". Keyed by coverage key; each row names the matching business area (null for `validation` and `operations`, which the 8-area grouping folds into discovery / omits) and the region ids its entities live in. Helpers `getCoverageKeysForRegion` / `getBusinessAreasForRegion`. Surfaced on `list_regions` (an `area_taxonomy` block plus per-region `coverage_keys` / `business_areas`) and `get_region` (per-region `coverage_keys` / `business_areas`), local and cloud. An SDK drift test pins the key sets against the runtime sources (`BUSINESS_AREAS`, `BUSINESS_AREA_META`).
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
- **`/upg-show-tree` calls `get_tree`** instead of building traverse chains and resolving edge names. The skill now renders the returned roots / children, surfaces `gaps`, and notes anchor fallback; it no longer carries the edge-name chains that drifted (the exact failure `get_tree` exists to prevent). Adds the `feature_areas` pattern. Skills ship in the mcp-server package, so this reaches users with the release.
|
|
20
|
+
|
|
21
|
+
No entity, domain, region, playbook, framework, or edge-count change, and no change to the local tool surface (entities 315, edges 980, local tools 121, regions 11).
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
10
25
|
## [0.9.15] - 2026-06-11
|
|
11
26
|
|
|
12
27
|
**get_tree: server-side tree assembly.** Tree views (OST, OKR, user, product, validation, strategy, feature areas) were assembled client-side by the show-tree skill out of multiple query calls and hardcoded edge chains that drifted with the spec. This release relocates assembly to the server, which owns the catalogue.
|
package/dist/index.cjs
CHANGED
|
@@ -44,6 +44,8 @@ __export(index_exports, {
|
|
|
44
44
|
UPG_ANTI_PATTERNS: () => UPG_ANTI_PATTERNS,
|
|
45
45
|
UPG_APPROACHES: () => UPG_APPROACHES,
|
|
46
46
|
UPG_APPROACHES_BY_ID: () => UPG_APPROACHES_BY_ID,
|
|
47
|
+
UPG_AREA_TAXONOMY: () => UPG_AREA_TAXONOMY,
|
|
48
|
+
UPG_AREA_TAXONOMY_BY_COVERAGE_KEY: () => UPG_AREA_TAXONOMY_BY_COVERAGE_KEY,
|
|
47
49
|
UPG_CANONICAL_FORMAT_VERSION: () => UPG_CANONICAL_FORMAT_VERSION,
|
|
48
50
|
UPG_CONTAINMENT_FREE_TYPES: () => UPG_CONTAINMENT_FREE_TYPES,
|
|
49
51
|
UPG_COUNT_BENCHMARKS: () => UPG_COUNT_BENCHMARKS,
|
|
@@ -121,9 +123,12 @@ __export(index_exports, {
|
|
|
121
123
|
getAntiPatterns: () => getAntiPatterns,
|
|
122
124
|
getAntiPatternsBySeverity: () => getAntiPatternsBySeverity,
|
|
123
125
|
getAntiPatternsForStage: () => getAntiPatternsForStage,
|
|
126
|
+
getAreaTaxonomyEntry: () => getAreaTaxonomyEntry,
|
|
124
127
|
getBenchmark: () => getBenchmark,
|
|
125
128
|
getBenchmarksByDomain: () => getBenchmarksByDomain,
|
|
129
|
+
getBusinessAreasForRegion: () => getBusinessAreasForRegion,
|
|
126
130
|
getCanonicalPlaybookForRegion: () => getCanonicalPlaybookForRegion,
|
|
131
|
+
getCoverageKeysForRegion: () => getCoverageKeysForRegion,
|
|
127
132
|
getDefaultLens: () => getDefaultLens,
|
|
128
133
|
getDeprecatedTypes: () => getDeprecatedTypes,
|
|
129
134
|
getDomainForType: () => getDomainForType,
|
|
@@ -19969,6 +19974,36 @@ function getTreePattern(id) {
|
|
|
19969
19974
|
return UPG_TREE_PATTERNS_BY_ID[id];
|
|
19970
19975
|
}
|
|
19971
19976
|
|
|
19977
|
+
// src/presentation/area-taxonomy.ts
|
|
19978
|
+
var UPG_AREA_TAXONOMY = [
|
|
19979
|
+
{ coverage_key: "identity", label: "Identity", business_area: "identity", regions: ["strategy_outcomes"] },
|
|
19980
|
+
{ coverage_key: "understanding", label: "Understanding", business_area: "understanding", regions: ["users_needs", "discovery_research_validation"] },
|
|
19981
|
+
{ coverage_key: "discovery", label: "Discovery", business_area: "discovery", regions: ["discovery_research_validation", "market_competitive"] },
|
|
19982
|
+
{ coverage_key: "validation", label: "Validation", business_area: null, regions: ["discovery_research_validation"] },
|
|
19983
|
+
{ coverage_key: "reaching", label: "Reaching", business_area: "reaching", regions: ["business_gtm_growth"] },
|
|
19984
|
+
{ coverage_key: "converting", label: "Converting", business_area: "converting", regions: ["business_gtm_growth"] },
|
|
19985
|
+
{ coverage_key: "building", label: "Building", business_area: "building", regions: ["product_delivery", "experience_design_brand"] },
|
|
19986
|
+
{ coverage_key: "sustaining", label: "Sustaining", business_area: "sustaining", regions: ["business_gtm_growth"] },
|
|
19987
|
+
{ coverage_key: "learning", label: "Learning", business_area: "learning", regions: ["strategy_outcomes", "analytics_data", "operations_quality"] },
|
|
19988
|
+
{ coverage_key: "operations", label: "Operations", business_area: null, regions: ["operations_quality"] }
|
|
19989
|
+
];
|
|
19990
|
+
var UPG_AREA_TAXONOMY_BY_COVERAGE_KEY = Object.fromEntries(UPG_AREA_TAXONOMY.map((e) => [e.coverage_key, e]));
|
|
19991
|
+
function getAreaTaxonomyEntry(coverageKey) {
|
|
19992
|
+
return UPG_AREA_TAXONOMY_BY_COVERAGE_KEY[coverageKey];
|
|
19993
|
+
}
|
|
19994
|
+
function getCoverageKeysForRegion(regionId) {
|
|
19995
|
+
return UPG_AREA_TAXONOMY.filter((e) => e.regions.includes(regionId)).map((e) => e.coverage_key);
|
|
19996
|
+
}
|
|
19997
|
+
function getBusinessAreasForRegion(regionId) {
|
|
19998
|
+
const out = [];
|
|
19999
|
+
for (const e of UPG_AREA_TAXONOMY) {
|
|
20000
|
+
if (e.regions.includes(regionId) && e.business_area && !out.includes(e.business_area)) {
|
|
20001
|
+
out.push(e.business_area);
|
|
20002
|
+
}
|
|
20003
|
+
}
|
|
20004
|
+
return out;
|
|
20005
|
+
}
|
|
20006
|
+
|
|
19972
20007
|
// src/playbooks/definitions/index.ts
|
|
19973
20008
|
function seqStep(order, phase, entity_types, prompt_hint, options) {
|
|
19974
20009
|
return {
|
|
@@ -28242,7 +28277,7 @@ function isCanonical(text) {
|
|
|
28242
28277
|
}
|
|
28243
28278
|
|
|
28244
28279
|
// src/index.ts
|
|
28245
|
-
var UPG_VERSION = "0.9.
|
|
28280
|
+
var UPG_VERSION = "0.9.16";
|
|
28246
28281
|
var UPG_FORMAT_VERSION = "0.4.0";
|
|
28247
28282
|
var MARKDOWN_FORMAT_VERSION = "0.1";
|
|
28248
28283
|
var UPG_TYPES = getTypes();
|
|
@@ -28331,6 +28366,8 @@ var UPG_META_COUNT = UPG_ENTITY_META.length;
|
|
|
28331
28366
|
UPG_ANTI_PATTERNS,
|
|
28332
28367
|
UPG_APPROACHES,
|
|
28333
28368
|
UPG_APPROACHES_BY_ID,
|
|
28369
|
+
UPG_AREA_TAXONOMY,
|
|
28370
|
+
UPG_AREA_TAXONOMY_BY_COVERAGE_KEY,
|
|
28334
28371
|
UPG_CANONICAL_FORMAT_VERSION,
|
|
28335
28372
|
UPG_CONTAINMENT_FREE_TYPES,
|
|
28336
28373
|
UPG_COUNT_BENCHMARKS,
|
|
@@ -28408,9 +28445,12 @@ var UPG_META_COUNT = UPG_ENTITY_META.length;
|
|
|
28408
28445
|
getAntiPatterns,
|
|
28409
28446
|
getAntiPatternsBySeverity,
|
|
28410
28447
|
getAntiPatternsForStage,
|
|
28448
|
+
getAreaTaxonomyEntry,
|
|
28411
28449
|
getBenchmark,
|
|
28412
28450
|
getBenchmarksByDomain,
|
|
28451
|
+
getBusinessAreasForRegion,
|
|
28413
28452
|
getCanonicalPlaybookForRegion,
|
|
28453
|
+
getCoverageKeysForRegion,
|
|
28414
28454
|
getDefaultLens,
|
|
28415
28455
|
getDeprecatedTypes,
|
|
28416
28456
|
getDomainForType,
|