@unified-product-graph/core 0.10.2 → 0.10.3

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/dist/index.d.cts CHANGED
@@ -666,6 +666,13 @@ declare const UPG_EDGE_CATALOG: {
666
666
  source_type: string;
667
667
  target_type: string;
668
668
  };
669
+ node_classified_as_classification_value: {
670
+ forward_verb: string;
671
+ reverse_verb: string;
672
+ classification: "semantic";
673
+ source_type: string;
674
+ target_type: string;
675
+ };
669
676
  persona_anti_fit_for_classification_value: {
670
677
  forward_verb: string;
671
678
  reverse_verb: string;
@@ -7208,7 +7215,7 @@ interface UPGProduct {
7208
7215
  /** Product lifecycle stages. Covers the full arc from napkin idea to end-of-life. */
7209
7216
  type UPGProductStage = 'concept' | 'validation' | 'build' | 'beta' | 'launch' | 'growth' | 'mature' | 'maintenance' | 'sunset';
7210
7217
  /** The set of valid cross-product relationship types */
7211
- type UPGCrossEdgeType = 'shares_persona' | 'shares_competitor' | 'shares_metric' | 'depends_on_product' | 'cannibalises' | 'succeeds' | 'hosts' | 'contributes_to' | 'instance_of' | 'area_serves_persona' | 'area_targets_market_segment' | 'rolls_up_to' | 'product_implements_specification' | 'product_exposes_specification' | 'feature_conforms_to_specification' | 'api_contract_speaks_specification' | 'product_exposes_primitive' | 'feature_manipulates_primitive' | 'primitive_stored_as_data_type' | 'feature_rivals_competitor_feature' | 'competitor_signal_maps_to_feature' | 'competitor_signal_surfaces_opportunity' | 'competitor_classified_as_classification_value';
7218
+ type UPGCrossEdgeType = 'shares_persona' | 'shares_competitor' | 'shares_metric' | 'depends_on_product' | 'cannibalises' | 'succeeds' | 'hosts' | 'contributes_to' | 'instance_of' | 'area_serves_persona' | 'area_targets_market_segment' | 'rolls_up_to' | 'product_implements_specification' | 'product_exposes_specification' | 'feature_conforms_to_specification' | 'api_contract_speaks_specification' | 'product_exposes_primitive' | 'feature_manipulates_primitive' | 'primitive_stored_as_data_type' | 'feature_rivals_competitor_feature' | 'competitor_signal_maps_to_feature' | 'competitor_signal_surfaces_opportunity' | 'competitor_classified_as_classification_value' | 'node_classified_as_classification_value';
7212
7219
  /**
7213
7220
  * Runtime-checkable list of valid cross-product edge types. Mirrors
7214
7221
  * `UPGCrossEdgeType` for use in validators and writers that need to test
@@ -21438,7 +21445,7 @@ declare function isCanonical(text: string): boolean;
21438
21445
  * it stamps the `upg_version` field of every `.upg` file written by the SDK.
21439
21446
  * The `check:version-lockstep` gate enforces this at release time.
21440
21447
  */
21441
- declare const UPG_VERSION: "0.10.2";
21448
+ declare const UPG_VERSION: "0.10.3";
21442
21449
  /**
21443
21450
  * The `.upg` JSON document format version. Written to the `upg_version` field.
21444
21451
  * Evolves independently from `UPG_VERSION` (the catalogue version).
package/dist/index.d.ts CHANGED
@@ -666,6 +666,13 @@ declare const UPG_EDGE_CATALOG: {
666
666
  source_type: string;
667
667
  target_type: string;
668
668
  };
669
+ node_classified_as_classification_value: {
670
+ forward_verb: string;
671
+ reverse_verb: string;
672
+ classification: "semantic";
673
+ source_type: string;
674
+ target_type: string;
675
+ };
669
676
  persona_anti_fit_for_classification_value: {
670
677
  forward_verb: string;
671
678
  reverse_verb: string;
@@ -7208,7 +7215,7 @@ interface UPGProduct {
7208
7215
  /** Product lifecycle stages. Covers the full arc from napkin idea to end-of-life. */
7209
7216
  type UPGProductStage = 'concept' | 'validation' | 'build' | 'beta' | 'launch' | 'growth' | 'mature' | 'maintenance' | 'sunset';
7210
7217
  /** The set of valid cross-product relationship types */
7211
- type UPGCrossEdgeType = 'shares_persona' | 'shares_competitor' | 'shares_metric' | 'depends_on_product' | 'cannibalises' | 'succeeds' | 'hosts' | 'contributes_to' | 'instance_of' | 'area_serves_persona' | 'area_targets_market_segment' | 'rolls_up_to' | 'product_implements_specification' | 'product_exposes_specification' | 'feature_conforms_to_specification' | 'api_contract_speaks_specification' | 'product_exposes_primitive' | 'feature_manipulates_primitive' | 'primitive_stored_as_data_type' | 'feature_rivals_competitor_feature' | 'competitor_signal_maps_to_feature' | 'competitor_signal_surfaces_opportunity' | 'competitor_classified_as_classification_value';
7218
+ type UPGCrossEdgeType = 'shares_persona' | 'shares_competitor' | 'shares_metric' | 'depends_on_product' | 'cannibalises' | 'succeeds' | 'hosts' | 'contributes_to' | 'instance_of' | 'area_serves_persona' | 'area_targets_market_segment' | 'rolls_up_to' | 'product_implements_specification' | 'product_exposes_specification' | 'feature_conforms_to_specification' | 'api_contract_speaks_specification' | 'product_exposes_primitive' | 'feature_manipulates_primitive' | 'primitive_stored_as_data_type' | 'feature_rivals_competitor_feature' | 'competitor_signal_maps_to_feature' | 'competitor_signal_surfaces_opportunity' | 'competitor_classified_as_classification_value' | 'node_classified_as_classification_value';
7212
7219
  /**
7213
7220
  * Runtime-checkable list of valid cross-product edge types. Mirrors
7214
7221
  * `UPGCrossEdgeType` for use in validators and writers that need to test
@@ -21438,7 +21445,7 @@ declare function isCanonical(text: string): boolean;
21438
21445
  * it stamps the `upg_version` field of every `.upg` file written by the SDK.
21439
21446
  * The `check:version-lockstep` gate enforces this at release time.
21440
21447
  */
21441
- declare const UPG_VERSION: "0.10.2";
21448
+ declare const UPG_VERSION: "0.10.3";
21442
21449
  /**
21443
21450
  * The `.upg` JSON document format version. Written to the `upg_version` field.
21444
21451
  * Evolves independently from `UPG_VERSION` (the catalogue version).
package/dist/index.js CHANGED
@@ -1150,6 +1150,12 @@ var UPG_EDGE_CATALOG = {
1150
1150
  // canonical, eliminating the per-graph taxonomy node. Within-graph (the catalogue
1151
1151
  // case) here; cross-product against the registry canonical via create_cross_product_edge.
1152
1152
  competitor_classified_as_classification_value: { forward_verb: "classified_as", reverse_verb: "classification_of", classification: "semantic", source_type: "competitor", target_type: "classification_value" },
1153
+ // 0.10.3: the polymorphic, type-agnostic sibling. ANY node (a feature, a
1154
+ // product, a market_segment) classified against a classification_value, so
1155
+ // classification is not welded to the competitor type. Also dual-registered as
1156
+ // a cross-edge for the registry-canonical case. source_type:'node' (wildcard);
1157
+ // listed in UPG_POLYMORPHIC_EDGE_KEYS.
1158
+ node_classified_as_classification_value: { forward_verb: "classified_as", reverse_verb: "classification_of", classification: "semantic", source_type: "node", target_type: "classification_value" },
1153
1159
  persona_anti_fit_for_classification_value: { forward_verb: "is_anti_fit_for", reverse_verb: "should_not_be_picked_by", classification: "semantic", source_type: "persona", target_type: "classification_value" },
1154
1160
  persona_anti_fit_for_product: { forward_verb: "is_anti_fit_for", reverse_verb: "should_not_be_picked_by", classification: "semantic", source_type: "persona", target_type: "product" },
1155
1161
  persona_anti_fit_for_competitor: { forward_verb: "is_anti_fit_for", reverse_verb: "should_not_be_picked_by", classification: "semantic", source_type: "persona", target_type: "competitor" },
@@ -2987,7 +2993,9 @@ var UPG_POLYMORPHIC_EDGE_KEYS = [
2987
2993
  // Universal architecture references
2988
2994
  "node_belongs_to_bounded_context",
2989
2995
  // Framework exercises (an exercise can include any entity type)
2990
- "framework_exercise_includes_node"
2996
+ "framework_exercise_includes_node",
2997
+ // Universal classification (any node classified against a classification_value)
2998
+ "node_classified_as_classification_value"
2991
2999
  ];
2992
3000
  var _POLY_KEY_SET = new Set(UPG_POLYMORPHIC_EDGE_KEYS);
2993
3001
  function isPolymorphicEdge(key) {
@@ -3045,7 +3053,8 @@ var UPG_CROSS_EDGE_TYPES = [
3045
3053
  "feature_rivals_competitor_feature",
3046
3054
  "competitor_signal_maps_to_feature",
3047
3055
  "competitor_signal_surfaces_opportunity",
3048
- "competitor_classified_as_classification_value"
3056
+ "competitor_classified_as_classification_value",
3057
+ "node_classified_as_classification_value"
3049
3058
  ];
3050
3059
  var REGISTRY_PRODUCT_ID = "registry";
3051
3060
 
@@ -28429,7 +28438,7 @@ function isCanonical(text) {
28429
28438
  }
28430
28439
 
28431
28440
  // src/index.ts
28432
- var UPG_VERSION = "0.10.2";
28441
+ var UPG_VERSION = "0.10.3";
28433
28442
  var UPG_FORMAT_VERSION = "0.4.0";
28434
28443
  var MARKDOWN_FORMAT_VERSION = "0.1";
28435
28444
  var UPG_TYPES = getTypes();