@unified-product-graph/core 0.8.7 → 0.8.8

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
@@ -8804,12 +8804,21 @@ interface UPGValidationWarning {
8804
8804
  * re-runs the validator and re-classifies these as policy violations so a
8805
8805
  * CI gate still fails, without making the parser refuse to read the file.
8806
8806
  */
8807
- rule?: 'property-type' | 'property-enum' | 'self-loop';
8807
+ rule?: 'property-type' | 'property-enum' | 'self-loop' | 'framework-score';
8808
8808
  }
8809
8809
  /**
8810
- * Warning `rule` codes for the content-depth checks added in UPG-632.
8810
+ * Warning `rule` codes for the content-depth checks.
8811
8811
  * `verify`/`check` treat a document carrying any of these as a policy
8812
8812
  * violation (exit 2) even though they never block the load path.
8813
+ *
8814
+ * - `property-type` / `property-enum` / `self-loop` — UPG-632.
8815
+ * - `framework-score` — UPG-638. A `framework_exercise`'s persisted per-entity
8816
+ * result (carried on its `framework_exercise_includes_node` edge properties)
8817
+ * that violates the framework's own input spec: an invalid enum bucket, a
8818
+ * non-numeric / out-of-scale / negative score, or a zero in a divisor input
8819
+ * (e.g. RICE `effort`, WSJF `job_size`). A WARNING, not an error: a drifted
8820
+ * exercise still LOADS, consistent with the severity discipline above. See
8821
+ * `validateFrameworkScores`.
8813
8822
  */
8814
8823
  declare const CONTENT_DEPTH_WARNING_RULES: ReadonlySet<NonNullable<UPGValidationWarning['rule']>>;
8815
8824
  /**
@@ -19463,6 +19472,23 @@ interface FrameworkSlot {
19463
19472
  label: string;
19464
19473
  /** The UPG entity type that fills this slot */
19465
19474
  entityTypeId: string;
19475
+ /**
19476
+ * The semantic role this slot plays in the framework, as a stable
19477
+ * machine-readable id (e.g. "pain_reliever", "accountable", "must_have").
19478
+ *
19479
+ * Distinct from `entityTypeId`: many frameworks fill several slots with the
19480
+ * SAME entity type (a Value Proposition Canvas has six `feature` slots; a RACI
19481
+ * matrix four `role` slots), and the slot role is what disambiguates them so a
19482
+ * consumer can address "the pain-reliever features" rather than just "the
19483
+ * features". Framework-local vocabulary, not a global UPG type.
19484
+ *
19485
+ * Additive and optional. It is also distinct from the COARSE structural
19486
+ * `FrameworkEntityTypeSpec.role` (item/bucket/scored_item/root/leaf/branch),
19487
+ * which describes an entity type's structural place; this is the FINE semantic
19488
+ * part a specific slot plays. Neither is a validation signal — scoring is keyed
19489
+ * off `scope: 'framework'` properties, not roles.
19490
+ */
19491
+ role?: string;
19466
19492
  /** Explanation of what this slot represents in the framework */
19467
19493
  description?: string;
19468
19494
  }
package/dist/index.d.ts CHANGED
@@ -8804,12 +8804,21 @@ interface UPGValidationWarning {
8804
8804
  * re-runs the validator and re-classifies these as policy violations so a
8805
8805
  * CI gate still fails, without making the parser refuse to read the file.
8806
8806
  */
8807
- rule?: 'property-type' | 'property-enum' | 'self-loop';
8807
+ rule?: 'property-type' | 'property-enum' | 'self-loop' | 'framework-score';
8808
8808
  }
8809
8809
  /**
8810
- * Warning `rule` codes for the content-depth checks added in UPG-632.
8810
+ * Warning `rule` codes for the content-depth checks.
8811
8811
  * `verify`/`check` treat a document carrying any of these as a policy
8812
8812
  * violation (exit 2) even though they never block the load path.
8813
+ *
8814
+ * - `property-type` / `property-enum` / `self-loop` — UPG-632.
8815
+ * - `framework-score` — UPG-638. A `framework_exercise`'s persisted per-entity
8816
+ * result (carried on its `framework_exercise_includes_node` edge properties)
8817
+ * that violates the framework's own input spec: an invalid enum bucket, a
8818
+ * non-numeric / out-of-scale / negative score, or a zero in a divisor input
8819
+ * (e.g. RICE `effort`, WSJF `job_size`). A WARNING, not an error: a drifted
8820
+ * exercise still LOADS, consistent with the severity discipline above. See
8821
+ * `validateFrameworkScores`.
8813
8822
  */
8814
8823
  declare const CONTENT_DEPTH_WARNING_RULES: ReadonlySet<NonNullable<UPGValidationWarning['rule']>>;
8815
8824
  /**
@@ -19463,6 +19472,23 @@ interface FrameworkSlot {
19463
19472
  label: string;
19464
19473
  /** The UPG entity type that fills this slot */
19465
19474
  entityTypeId: string;
19475
+ /**
19476
+ * The semantic role this slot plays in the framework, as a stable
19477
+ * machine-readable id (e.g. "pain_reliever", "accountable", "must_have").
19478
+ *
19479
+ * Distinct from `entityTypeId`: many frameworks fill several slots with the
19480
+ * SAME entity type (a Value Proposition Canvas has six `feature` slots; a RACI
19481
+ * matrix four `role` slots), and the slot role is what disambiguates them so a
19482
+ * consumer can address "the pain-reliever features" rather than just "the
19483
+ * features". Framework-local vocabulary, not a global UPG type.
19484
+ *
19485
+ * Additive and optional. It is also distinct from the COARSE structural
19486
+ * `FrameworkEntityTypeSpec.role` (item/bucket/scored_item/root/leaf/branch),
19487
+ * which describes an entity type's structural place; this is the FINE semantic
19488
+ * part a specific slot plays. Neither is a validation signal — scoring is keyed
19489
+ * off `scope: 'framework'` properties, not roles.
19490
+ */
19491
+ role?: string;
19466
19492
  /** Explanation of what this slot represents in the framework */
19467
19493
  description?: string;
19468
19494
  }