@unified-product-graph/core 0.13.2 → 0.14.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.cjs +64 -101
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +16 -73
- package/dist/index.d.ts +16 -73
- package/dist/index.js +64 -101
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -7605,6 +7605,53 @@ function getDeprecatedTypes() {
|
|
|
7605
7605
|
return deprecated;
|
|
7606
7606
|
}
|
|
7607
7607
|
var UPG_PROPERTY_MIGRATIONS = {
|
|
7608
|
+
// ── v0.14.0: Pattern E — remove deprecated/ghost properties (UPG-574) ────────
|
|
7609
|
+
//
|
|
7610
|
+
// Properties marked deprecated (some "Removed in 0.9.1") that were never
|
|
7611
|
+
// actually removed, plus superseded soft-aliases. The RICE / opportunity-sizing
|
|
7612
|
+
// scoring inputs were framework-scoped from 0.9.0: their value lives on the
|
|
7613
|
+
// `framework_exercise` includes-edge of the rice-scoring / opportunity-sizing
|
|
7614
|
+
// framework, not on the entity. The remaining four are superseded by a sibling
|
|
7615
|
+
// (cause_category, rule_strength, size_estimate, effort). Loaders drop the
|
|
7616
|
+
// stranded keys; the values were never canonical on the entity.
|
|
7617
|
+
"0.14.0": [
|
|
7618
|
+
{
|
|
7619
|
+
kind: "drop_props",
|
|
7620
|
+
type: "opportunity",
|
|
7621
|
+
drop_props: ["reach", "frequency", "pain", "opportunity_score"],
|
|
7622
|
+
reason: "UPG-574: opportunity scoring (reach/frequency/pain/opportunity_score) was framework-scoped from 0.9.0 (opportunity-sizing). Apply the framework and read the value off the framework_exercise edge; the entity props are removed in 0.14.0."
|
|
7623
|
+
},
|
|
7624
|
+
{
|
|
7625
|
+
kind: "drop_props",
|
|
7626
|
+
type: "solution",
|
|
7627
|
+
drop_props: ["reach", "impact", "confidence", "effort", "rice_score"],
|
|
7628
|
+
reason: "UPG-574: RICE inputs (reach/impact/confidence/effort) and the computed rice_score were framework-scoped from 0.9.0 (rice-scoring). Apply the framework and read the score off the framework_exercise edge; the entity props are removed in 0.14.0."
|
|
7629
|
+
},
|
|
7630
|
+
{
|
|
7631
|
+
kind: "drop_props",
|
|
7632
|
+
type: "root_cause",
|
|
7633
|
+
drop_props: ["category", "verified"],
|
|
7634
|
+
reason: "UPG-574: root_cause.category was a legacy free-form field superseded by the closed-enum cause_category; verified duplicated cause_confidence === confirmed. Both removed in 0.14.0."
|
|
7635
|
+
},
|
|
7636
|
+
{
|
|
7637
|
+
kind: "drop_props",
|
|
7638
|
+
type: "design_guideline",
|
|
7639
|
+
drop_props: ["strictness"],
|
|
7640
|
+
reason: "UPG-574: design_guideline.strictness was superseded by rule_strength (a richer imperative-force enum). Removed in 0.14.0."
|
|
7641
|
+
},
|
|
7642
|
+
{
|
|
7643
|
+
kind: "drop_props",
|
|
7644
|
+
type: "behavioral_segment",
|
|
7645
|
+
drop_props: ["size"],
|
|
7646
|
+
reason: "UPG-574: behavioral_segment.size was a v0.2 alias for size_estimate. Removed in 0.14.0; use size_estimate."
|
|
7647
|
+
},
|
|
7648
|
+
{
|
|
7649
|
+
kind: "drop_props",
|
|
7650
|
+
type: "task",
|
|
7651
|
+
drop_props: ["estimate"],
|
|
7652
|
+
reason: "UPG-574: task.estimate was a story_task-collapse relic that duplicated effort. Removed in 0.14.0; use effort."
|
|
7653
|
+
}
|
|
7654
|
+
],
|
|
7608
7655
|
// ── v0.12.0: P14 Bucket C — drop the one non-derived denormalized aggregate ──
|
|
7609
7656
|
//
|
|
7610
7657
|
// The count caches (feature_count, evidence_count, workflow step_count /
|
|
@@ -10284,8 +10331,7 @@ var UPG_PROPERTY_SCHEMA = {
|
|
|
10284
10331
|
source: { type: "string", enum: ["clickstream", "survey", "interview", "mixed", "inferred", "imported"], description: "Membership data source. Drives confidence weighting and refresh policy." },
|
|
10285
10332
|
included_behaviors: { type: "string[]", description: "Qualifying behaviours (positive criteria, free-text labels)" },
|
|
10286
10333
|
excluded_behaviors: { type: "string[]", description: "Excluding behaviours (negative criteria, free-text labels)" },
|
|
10287
|
-
size_estimate: { type: "number", description: "Estimated current size. Snapshot value." },
|
|
10288
|
-
size: { type: "number", description: "Size. Alias retained for the v0.2 baseline." },
|
|
10334
|
+
size_estimate: { type: "number", description: "Estimated current size. Snapshot value. (`size`, the v0.2 alias, removed in 0.14.0, UPG-574.)" },
|
|
10289
10335
|
validity_period_start: { type: "string", description: "ISO start of the validity window. Behavioural definitions decay; outside the window the snapshot should be re-computed." },
|
|
10290
10336
|
validity_period_end: { type: "string", description: "End of the window over which the segment definition is considered valid (ISO format)" }
|
|
10291
10337
|
},
|
|
@@ -10902,8 +10948,7 @@ var UPG_PROPERTY_SCHEMA = {
|
|
|
10902
10948
|
guideline_category: { type: "string", enum: ["spacing", "color", "typography", "layout", "interaction", "content"], description: "Category covered" },
|
|
10903
10949
|
applies_to: { type: "string", description: "Applicable elements or contexts" },
|
|
10904
10950
|
rationale: { type: "string", description: "Reasoning. Why this rule exists." },
|
|
10905
|
-
rule_strength: { type: "string", enum: ["must", "must_not", "exception", "warning", "guideline"], description: "Imperative force.
|
|
10906
|
-
strictness: { type: "string", enum: ["must", "should", "may"], description: "RFC-2119-flavoured binding strength" },
|
|
10951
|
+
rule_strength: { type: "string", enum: ["must", "must_not", "exception", "warning", "guideline"], description: "Imperative force. (Superseded the removed `strictness` field in 0.14.0, UPG-574.)" },
|
|
10907
10952
|
exception_policy: { type: "string", description: "Exception request or documentation process" }
|
|
10908
10953
|
},
|
|
10909
10954
|
// DesignPatternProperties: Reusable design pattern.
|
|
@@ -12030,46 +12075,11 @@ var UPG_PROPERTY_SCHEMA = {
|
|
|
12030
12075
|
rotation_cadence: { type: "string", enum: ["daily", "weekly", "biweekly", "custom"], description: "Cycle cadence. `weekly` for standard team rotations. `daily` for high-incident-volume teams." },
|
|
12031
12076
|
handoff_time: { type: "string", description: 'Shift handoff time. Affects team coordination and sleep. @example "09:00 UTC", "17:00 local"' }
|
|
12032
12077
|
},
|
|
12033
|
-
// OpportunityProperties: A problem worth solving, grounded in user need and business value
|
|
12034
|
-
|
|
12035
|
-
|
|
12036
|
-
|
|
12037
|
-
|
|
12038
|
-
description: "How many users experience this problem. @deprecated 0.9.0:a framework-scoped scoring input, not an intrinsic property. Apply the `opportunity-sizing` framework; the value lives on the framework_exercise includes-edge. Removed in 0.9.1.",
|
|
12039
|
-
properties: {
|
|
12040
|
-
value: { type: "number", description: "The numeric value, used for computation." },
|
|
12041
|
-
label: { type: "string", description: "The qualitative label (what the assessor meant)." },
|
|
12042
|
-
scale_id: { type: "string", description: "Which assessment scale this was rated on (optional)." },
|
|
12043
|
-
normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
|
|
12044
|
-
},
|
|
12045
|
-
required: ["value", "label"]
|
|
12046
|
-
},
|
|
12047
|
-
frequency: {
|
|
12048
|
-
type: "assessment",
|
|
12049
|
-
scale_id: "frequency_5",
|
|
12050
|
-
description: "How often users experience this problem. @deprecated 0.9.0:framework-scoped (opportunity-sizing). Removed in 0.9.1.",
|
|
12051
|
-
properties: {
|
|
12052
|
-
value: { type: "number", description: "The numeric value, used for computation." },
|
|
12053
|
-
label: { type: "string", description: "The qualitative label (what the assessor meant)." },
|
|
12054
|
-
scale_id: { type: "string", description: "Which assessment scale this was rated on (optional)." },
|
|
12055
|
-
normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
|
|
12056
|
-
},
|
|
12057
|
-
required: ["value", "label"]
|
|
12058
|
-
},
|
|
12059
|
-
pain: {
|
|
12060
|
-
type: "assessment",
|
|
12061
|
-
scale_id: "pain_5",
|
|
12062
|
-
description: "How painful it is when unaddressed. @deprecated 0.9.0:framework-scoped (opportunity-sizing). Removed in 0.9.1.",
|
|
12063
|
-
properties: {
|
|
12064
|
-
value: { type: "number", description: "The numeric value, used for computation." },
|
|
12065
|
-
label: { type: "string", description: "The qualitative label (what the assessor meant)." },
|
|
12066
|
-
scale_id: { type: "string", description: "Which assessment scale this was rated on (optional)." },
|
|
12067
|
-
normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
|
|
12068
|
-
},
|
|
12069
|
-
required: ["value", "label"]
|
|
12070
|
-
},
|
|
12071
|
-
opportunity_score: { type: "number", description: "Computed: normalized_reach x normalized_frequency x normalized_pain (0-1). @deprecated 0.9.0:computed by the `opportunity-sizing` framework on its application edge, not stored on the entity. Removed in 0.9.1." }
|
|
12072
|
-
},
|
|
12078
|
+
// OpportunityProperties: A problem worth solving, grounded in user need and business value.
|
|
12079
|
+
// No intrinsic scalar properties — defined by edges + framework-scoped scoring
|
|
12080
|
+
// (reach/frequency/pain/opportunity_score live on the `opportunity-sizing`
|
|
12081
|
+
// framework_exercise edge). Former props removed in 0.14.0 (UPG-574).
|
|
12082
|
+
opportunity: {},
|
|
12073
12083
|
// OrganizationProperties: Organization entity.
|
|
12074
12084
|
organization: {
|
|
12075
12085
|
logo_url: { type: "string", description: "URL of the organisation's logo" },
|
|
@@ -12529,9 +12539,8 @@ var UPG_PROPERTY_SCHEMA = {
|
|
|
12529
12539
|
cause_category: { type: "string", enum: ["code", "config", "process", "dependency", "data", "infrastructure", "human_error", "other"], description: "Closed-enum cause category for RCA reporting and dashboards. Distinct from the legacy free-form `category`." },
|
|
12530
12540
|
cause_confidence: { type: "string", enum: ["hypothesised", "likely", "confirmed"], description: "Team certainty about this cause. `hypothesised` = educated guess. `likely` = evidence points here. `confirmed` = reproduced. Renamed from `confidence` in v0.4.0 to disambiguate from the entity-wide `UPGAssessment`-typed epistemic confidence used elsewhere. The 3-tier shape stays as a discrete RCA-lifecycle marker." },
|
|
12531
12541
|
evidence_summary: { type: "string", description: "One-paragraph evidence summary. Log lines, traces, repro steps. Detailed artefacts go on linked `evidence` nodes." },
|
|
12532
|
-
|
|
12533
|
-
|
|
12534
|
-
verified: { type: "boolean", description: "Verified through investigation" }
|
|
12542
|
+
affected_area: { type: "string", description: "Affected area of the system" }
|
|
12543
|
+
// `category` (legacy, -> `cause_category`) and `verified` (= `cause_confidence === 'confirmed'`) removed in 0.14.0 (UPG-574).
|
|
12535
12544
|
},
|
|
12536
12545
|
// RunbookProperties: Runbook.
|
|
12537
12546
|
runbook: {
|
|
@@ -12684,58 +12693,12 @@ var UPG_PROPERTY_SCHEMA = {
|
|
|
12684
12693
|
post_type: { type: "string", enum: ["text", "image", "video", "carousel", "story"], description: "Format of the post" },
|
|
12685
12694
|
scheduled_date: { type: "string", description: "Date the post is scheduled to publish (ISO format)" }
|
|
12686
12695
|
},
|
|
12687
|
-
// SolutionProperties: A proposed response to an opportunity
|
|
12696
|
+
// SolutionProperties: A proposed response to an opportunity.
|
|
12697
|
+
// RICE scoring inputs (reach/impact/confidence/effort) + computed rice_score
|
|
12698
|
+
// were framework-scoped from 0.9.0 and removed in 0.14.0 (UPG-574): they live
|
|
12699
|
+
// on the `rice-scoring` framework_exercise edge, not the entity.
|
|
12688
12700
|
solution: {
|
|
12689
|
-
timeline: { type: "string", description: "Estimated delivery or target timeline" }
|
|
12690
|
-
reach: {
|
|
12691
|
-
type: "assessment",
|
|
12692
|
-
scale_id: "reach_5",
|
|
12693
|
-
description: "How many users this solution reaches (1 = few, 5 = most). @deprecated 0.9.0:a framework-scoped scoring input, not an intrinsic property. Apply the `rice-scoring` framework; the value lives on the framework_exercise includes-edge. Removed in 0.9.1.",
|
|
12694
|
-
properties: {
|
|
12695
|
-
value: { type: "number", description: "The numeric value, used for computation." },
|
|
12696
|
-
label: { type: "string", description: "The qualitative label (what the assessor meant)." },
|
|
12697
|
-
scale_id: { type: "string", description: "Which assessment scale this was rated on (optional)." },
|
|
12698
|
-
normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
|
|
12699
|
-
},
|
|
12700
|
-
required: ["value", "label"]
|
|
12701
|
-
},
|
|
12702
|
-
impact: {
|
|
12703
|
-
type: "assessment",
|
|
12704
|
-
scale_id: "impact_5",
|
|
12705
|
-
description: "Expected impact on the target outcome (1 = minimal, 5 = transformative). @deprecated 0.9.0:framework-scoped (rice-scoring). Removed in 0.9.1.",
|
|
12706
|
-
properties: {
|
|
12707
|
-
value: { type: "number", description: "The numeric value, used for computation." },
|
|
12708
|
-
label: { type: "string", description: "The qualitative label (what the assessor meant)." },
|
|
12709
|
-
scale_id: { type: "string", description: "Which assessment scale this was rated on (optional)." },
|
|
12710
|
-
normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
|
|
12711
|
-
},
|
|
12712
|
-
required: ["value", "label"]
|
|
12713
|
-
},
|
|
12714
|
-
confidence: {
|
|
12715
|
-
type: "assessment",
|
|
12716
|
-
scale_id: "confidence_5",
|
|
12717
|
-
description: "How confident the team is in this solution (1 = speculative, 5 = proven). @deprecated 0.9.0:framework-scoped (rice-scoring). Removed in 0.9.1.",
|
|
12718
|
-
properties: {
|
|
12719
|
-
value: { type: "number", description: "The numeric value, used for computation." },
|
|
12720
|
-
label: { type: "string", description: "The qualitative label (what the assessor meant)." },
|
|
12721
|
-
scale_id: { type: "string", description: "Which assessment scale this was rated on (optional)." },
|
|
12722
|
-
normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
|
|
12723
|
-
},
|
|
12724
|
-
required: ["value", "label"]
|
|
12725
|
-
},
|
|
12726
|
-
effort: {
|
|
12727
|
-
type: "assessment",
|
|
12728
|
-
scale_id: "effort_5",
|
|
12729
|
-
description: "Level of effort required to implement (1 = trivial, 5 = very large). @deprecated 0.9.0:effort is a framework-scoped scoring input (it varies by assessor and method), not an intrinsic property. Removed in 0.9.1.",
|
|
12730
|
-
properties: {
|
|
12731
|
-
value: { type: "number", description: "The numeric value, used for computation." },
|
|
12732
|
-
label: { type: "string", description: "The qualitative label (what the assessor meant)." },
|
|
12733
|
-
scale_id: { type: "string", description: "Which assessment scale this was rated on (optional)." },
|
|
12734
|
-
normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
|
|
12735
|
-
},
|
|
12736
|
-
required: ["value", "label"]
|
|
12737
|
-
},
|
|
12738
|
-
rice_score: { type: "number", description: "Computed: (reach \xD7 impact \xD7 confidence) / effort. @deprecated 0.9.0:computed by the `rice-scoring` framework on its application edge, not stored on the entity. Removed in 0.9.1." }
|
|
12701
|
+
timeline: { type: "string", description: "Estimated delivery or target timeline" }
|
|
12739
12702
|
},
|
|
12740
12703
|
// SpecificationProperties: A governed specification: a query language, protocol, data format, encoding,
|
|
12741
12704
|
specification: {
|
|
@@ -12893,8 +12856,8 @@ var UPG_PROPERTY_SCHEMA = {
|
|
|
12893
12856
|
effort: { type: "string", description: 'Effort estimate (e.g. "2h", "1d", "3 points"). Use a consistent unit within your team.' },
|
|
12894
12857
|
priority: { type: "string", enum: ["urgent", "high", "medium", "low", "none"], description: "Relative importance against other tasks" },
|
|
12895
12858
|
due_date: { type: "string", description: "ISO date due. Typically bounded by the containing story's due date." },
|
|
12896
|
-
labels: { type: "string[]", description: "Free-form classification tags. Applied uniformly across work item types." }
|
|
12897
|
-
|
|
12859
|
+
labels: { type: "string[]", description: "Free-form classification tags. Applied uniformly across work item types." }
|
|
12860
|
+
// `estimate` (story_task collapse relic, duplicated `effort`) removed in 0.14.0 (UPG-574).
|
|
12898
12861
|
},
|
|
12899
12862
|
// TeamProperties: Team entity.
|
|
12900
12863
|
team: {
|
|
@@ -29544,7 +29507,7 @@ function isCanonical(text) {
|
|
|
29544
29507
|
}
|
|
29545
29508
|
|
|
29546
29509
|
// src/index.ts
|
|
29547
|
-
var UPG_VERSION = "0.
|
|
29510
|
+
var UPG_VERSION = "0.14.0";
|
|
29548
29511
|
var UPG_FORMAT_VERSION = "0.4.0";
|
|
29549
29512
|
var MARKDOWN_FORMAT_VERSION = "0.1";
|
|
29550
29513
|
var UPG_TYPES = getTypes();
|