@unified-product-graph/core 0.20.2 → 0.22.0

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
@@ -5793,6 +5793,20 @@ declare const UPG_EDGE_CATALOG: {
5793
5793
  source_type: string;
5794
5794
  target_type: string;
5795
5795
  };
5796
+ organization_thinks_in_workspace: {
5797
+ forward_verb: string;
5798
+ reverse_verb: string;
5799
+ classification: "hierarchy";
5800
+ source_type: string;
5801
+ target_type: string;
5802
+ };
5803
+ product_area_thinks_in_workspace: {
5804
+ forward_verb: string;
5805
+ reverse_verb: string;
5806
+ classification: "hierarchy";
5807
+ source_type: string;
5808
+ target_type: string;
5809
+ };
5796
5810
  product_thinks_in_workspace: {
5797
5811
  forward_verb: string;
5798
5812
  reverse_verb: string;
@@ -5800,7 +5814,7 @@ declare const UPG_EDGE_CATALOG: {
5800
5814
  source_type: string;
5801
5815
  target_type: string;
5802
5816
  };
5803
- workspace_produced_decision: {
5817
+ workspace_produced_node: {
5804
5818
  forward_verb: string;
5805
5819
  reverse_verb: string;
5806
5820
  classification: "causal";
@@ -7672,7 +7686,7 @@ declare function isDeliberateOnlyEdge(type: string): boolean;
7672
7686
  /**
7673
7687
  * Canonical allow-list of edges that use the `'node'` wildcard endpoint.
7674
7688
  *
7675
- * Five semantic families are sanctioned:
7689
+ * Eight semantic families are sanctioned:
7676
7690
  *
7677
7691
  * 1. **Universal semantic verbs**: any node can inform / constrain / inspire
7678
7692
  * any other node. The meaning is deliberately abstract; consumers render
@@ -7687,6 +7701,15 @@ declare function isDeliberateOnlyEdge(type: string): boolean;
7687
7701
  * 5. **Framework exercises**: a framework_exercise can include any entity type
7688
7702
  * it scores. The technique is type-agnostic, so binding the target would
7689
7703
  * re-weld frameworks to one entity type — the limitation this edge removes.
7704
+ * 6. **Universal classification**: any node can be classified against a
7705
+ * classification_value. Classification schemes are type-agnostic.
7706
+ * 7. **Work-item issue links**: blocks/relates/duplicates spans the work-item
7707
+ * set {feature, epic, user_story, task, bug} — endpoint-polymorphic over a
7708
+ * bounded family, not the full type universe.
7709
+ * 8. **Workspace provenance** (WS3, 2026-07-05): a workspace's commit loop can
7710
+ * produce any entity type arranged in it (decision, feature, persona, ...).
7711
+ * Widened from the single-target `workspace_produced_decision`; see
7712
+ * `UPG_EDGE_MIGRATIONS` for the rename rule.
7690
7713
  *
7691
7714
  * Adding a new polymorphic edge requires extending this array AND the
7692
7715
  * spec-integrity regression test, which forces a conscious decision and
@@ -8858,7 +8881,7 @@ declare const UPG_LIFECYCLES: readonly UPGLifecycle[];
8858
8881
  *
8859
8882
  * @example
8860
8883
  * const lifecycle = getLifecycleForType('hypothesis')
8861
- * // → HYPOTHESIS_CLAIM_LIFECYCLE
8884
+ * // → VALIDATION template (untested → testing → validated | invalidated)
8862
8885
  *
8863
8886
  * const noLifecycle = getLifecycleForType('persona')
8864
8887
  * // → undefined
@@ -12430,8 +12453,6 @@ interface ScreenProperties {
12430
12453
  viewport?: 'mobile' | 'tablet' | 'desktop' | 'tv' | 'watch' | 'responsive';
12431
12454
  /** Reach */
12432
12455
  access_level?: 'public' | 'authenticated' | 'admin' | 'internal';
12433
- /** Build pipeline stage */
12434
- screen_status?: 'draft' | 'in_design' | 'built' | 'shipped' | 'deprecated';
12435
12456
  /** One-line purpose */
12436
12457
  purpose?: string;
12437
12458
  }
@@ -12629,8 +12650,6 @@ interface BrandIdentityProperties {
12629
12650
  tagline?: string;
12630
12651
  /** Mission statement: what the brand exists to do. */
12631
12652
  mission_statement?: string;
12632
- /** Current lifecycle stage of the brand */
12633
- brand_stage?: 'exploratory' | 'defined' | 'mature';
12634
12653
  /**
12635
12654
  * Core brand values. The principles the brand stands for.
12636
12655
  * @example ["innovation", "transparency", "sustainability"]
@@ -16202,8 +16221,6 @@ interface CapacityPlanProperties {
16202
16221
  * }
16203
16222
  */
16204
16223
  interface ProgramProperties {
16205
- /** Current status of the program */
16206
- program_status?: 'planning' | 'active' | 'on_hold' | 'completed' | 'cancelled';
16207
16224
  /** Program start date (ISO format) */
16208
16225
  start_date?: ISODate;
16209
16226
  /** Program end date (ISO format) */
@@ -16221,8 +16238,6 @@ interface ProgramProperties {
16221
16238
  * }
16222
16239
  */
16223
16240
  interface ProjectProperties {
16224
- /** Current status of the project */
16225
- project_status?: 'planning' | 'active' | 'on_hold' | 'completed' | 'cancelled';
16226
16241
  /** Project start date (ISO format) */
16227
16242
  start_date?: ISODate;
16228
16243
  /** Project end date (ISO format) */
@@ -16294,8 +16309,6 @@ interface DeliverableProperties {
16294
16309
  deliverable_type?: 'document' | 'prototype' | 'release' | 'design' | 'report' | 'other';
16295
16310
  /** Due date for the deliverable (ISO format) */
16296
16311
  due_date?: ISODate;
16297
- /** Current progress status */
16298
- deliverable_status?: 'not_started' | 'in_progress' | 'in_review' | 'accepted' | 'rejected';
16299
16312
  /** Criteria that must be met for the deliverable to be accepted */
16300
16313
  acceptance_criteria?: string;
16301
16314
  }
@@ -18069,8 +18082,6 @@ interface PressReleaseProperties {
18069
18082
  publish_date?: ISODate;
18070
18083
  /** Media outlets targeted for distribution */
18071
18084
  outlets?: string[];
18072
- /** Current status of the press release */
18073
- pr_status?: 'draft' | 'in_review' | 'distributed' | 'published';
18074
18085
  }
18075
18086
  /** Event.
18076
18087
  *
@@ -22507,7 +22518,7 @@ declare function isCanonical(text: string): boolean;
22507
22518
  * it stamps the `upg_version` field of every `.upg` file written by the SDK.
22508
22519
  * The `check:version-lockstep` gate enforces this at release time.
22509
22520
  */
22510
- declare const UPG_VERSION: "0.20.2";
22521
+ declare const UPG_VERSION: "0.22.0";
22511
22522
  /**
22512
22523
  * The `.upg` JSON document format version. Written to the `upg_version` field.
22513
22524
  * Evolves independently from `UPG_VERSION` (the catalogue version).
package/dist/index.d.ts CHANGED
@@ -5793,6 +5793,20 @@ declare const UPG_EDGE_CATALOG: {
5793
5793
  source_type: string;
5794
5794
  target_type: string;
5795
5795
  };
5796
+ organization_thinks_in_workspace: {
5797
+ forward_verb: string;
5798
+ reverse_verb: string;
5799
+ classification: "hierarchy";
5800
+ source_type: string;
5801
+ target_type: string;
5802
+ };
5803
+ product_area_thinks_in_workspace: {
5804
+ forward_verb: string;
5805
+ reverse_verb: string;
5806
+ classification: "hierarchy";
5807
+ source_type: string;
5808
+ target_type: string;
5809
+ };
5796
5810
  product_thinks_in_workspace: {
5797
5811
  forward_verb: string;
5798
5812
  reverse_verb: string;
@@ -5800,7 +5814,7 @@ declare const UPG_EDGE_CATALOG: {
5800
5814
  source_type: string;
5801
5815
  target_type: string;
5802
5816
  };
5803
- workspace_produced_decision: {
5817
+ workspace_produced_node: {
5804
5818
  forward_verb: string;
5805
5819
  reverse_verb: string;
5806
5820
  classification: "causal";
@@ -7672,7 +7686,7 @@ declare function isDeliberateOnlyEdge(type: string): boolean;
7672
7686
  /**
7673
7687
  * Canonical allow-list of edges that use the `'node'` wildcard endpoint.
7674
7688
  *
7675
- * Five semantic families are sanctioned:
7689
+ * Eight semantic families are sanctioned:
7676
7690
  *
7677
7691
  * 1. **Universal semantic verbs**: any node can inform / constrain / inspire
7678
7692
  * any other node. The meaning is deliberately abstract; consumers render
@@ -7687,6 +7701,15 @@ declare function isDeliberateOnlyEdge(type: string): boolean;
7687
7701
  * 5. **Framework exercises**: a framework_exercise can include any entity type
7688
7702
  * it scores. The technique is type-agnostic, so binding the target would
7689
7703
  * re-weld frameworks to one entity type — the limitation this edge removes.
7704
+ * 6. **Universal classification**: any node can be classified against a
7705
+ * classification_value. Classification schemes are type-agnostic.
7706
+ * 7. **Work-item issue links**: blocks/relates/duplicates spans the work-item
7707
+ * set {feature, epic, user_story, task, bug} — endpoint-polymorphic over a
7708
+ * bounded family, not the full type universe.
7709
+ * 8. **Workspace provenance** (WS3, 2026-07-05): a workspace's commit loop can
7710
+ * produce any entity type arranged in it (decision, feature, persona, ...).
7711
+ * Widened from the single-target `workspace_produced_decision`; see
7712
+ * `UPG_EDGE_MIGRATIONS` for the rename rule.
7690
7713
  *
7691
7714
  * Adding a new polymorphic edge requires extending this array AND the
7692
7715
  * spec-integrity regression test, which forces a conscious decision and
@@ -8858,7 +8881,7 @@ declare const UPG_LIFECYCLES: readonly UPGLifecycle[];
8858
8881
  *
8859
8882
  * @example
8860
8883
  * const lifecycle = getLifecycleForType('hypothesis')
8861
- * // → HYPOTHESIS_CLAIM_LIFECYCLE
8884
+ * // → VALIDATION template (untested → testing → validated | invalidated)
8862
8885
  *
8863
8886
  * const noLifecycle = getLifecycleForType('persona')
8864
8887
  * // → undefined
@@ -12430,8 +12453,6 @@ interface ScreenProperties {
12430
12453
  viewport?: 'mobile' | 'tablet' | 'desktop' | 'tv' | 'watch' | 'responsive';
12431
12454
  /** Reach */
12432
12455
  access_level?: 'public' | 'authenticated' | 'admin' | 'internal';
12433
- /** Build pipeline stage */
12434
- screen_status?: 'draft' | 'in_design' | 'built' | 'shipped' | 'deprecated';
12435
12456
  /** One-line purpose */
12436
12457
  purpose?: string;
12437
12458
  }
@@ -12629,8 +12650,6 @@ interface BrandIdentityProperties {
12629
12650
  tagline?: string;
12630
12651
  /** Mission statement: what the brand exists to do. */
12631
12652
  mission_statement?: string;
12632
- /** Current lifecycle stage of the brand */
12633
- brand_stage?: 'exploratory' | 'defined' | 'mature';
12634
12653
  /**
12635
12654
  * Core brand values. The principles the brand stands for.
12636
12655
  * @example ["innovation", "transparency", "sustainability"]
@@ -16202,8 +16221,6 @@ interface CapacityPlanProperties {
16202
16221
  * }
16203
16222
  */
16204
16223
  interface ProgramProperties {
16205
- /** Current status of the program */
16206
- program_status?: 'planning' | 'active' | 'on_hold' | 'completed' | 'cancelled';
16207
16224
  /** Program start date (ISO format) */
16208
16225
  start_date?: ISODate;
16209
16226
  /** Program end date (ISO format) */
@@ -16221,8 +16238,6 @@ interface ProgramProperties {
16221
16238
  * }
16222
16239
  */
16223
16240
  interface ProjectProperties {
16224
- /** Current status of the project */
16225
- project_status?: 'planning' | 'active' | 'on_hold' | 'completed' | 'cancelled';
16226
16241
  /** Project start date (ISO format) */
16227
16242
  start_date?: ISODate;
16228
16243
  /** Project end date (ISO format) */
@@ -16294,8 +16309,6 @@ interface DeliverableProperties {
16294
16309
  deliverable_type?: 'document' | 'prototype' | 'release' | 'design' | 'report' | 'other';
16295
16310
  /** Due date for the deliverable (ISO format) */
16296
16311
  due_date?: ISODate;
16297
- /** Current progress status */
16298
- deliverable_status?: 'not_started' | 'in_progress' | 'in_review' | 'accepted' | 'rejected';
16299
16312
  /** Criteria that must be met for the deliverable to be accepted */
16300
16313
  acceptance_criteria?: string;
16301
16314
  }
@@ -18069,8 +18082,6 @@ interface PressReleaseProperties {
18069
18082
  publish_date?: ISODate;
18070
18083
  /** Media outlets targeted for distribution */
18071
18084
  outlets?: string[];
18072
- /** Current status of the press release */
18073
- pr_status?: 'draft' | 'in_review' | 'distributed' | 'published';
18074
18085
  }
18075
18086
  /** Event.
18076
18087
  *
@@ -22507,7 +22518,7 @@ declare function isCanonical(text: string): boolean;
22507
22518
  * it stamps the `upg_version` field of every `.upg` file written by the SDK.
22508
22519
  * The `check:version-lockstep` gate enforces this at release time.
22509
22520
  */
22510
- declare const UPG_VERSION: "0.20.2";
22521
+ declare const UPG_VERSION: "0.22.0";
22511
22522
  /**
22512
22523
  * The `.upg` JSON document format version. Written to the `upg_version` field.
22513
22524
  * Evolves independently from `UPG_VERSION` (the catalogue version).