@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.d.cts
CHANGED
|
@@ -10542,72 +10542,31 @@ interface SwitchingCostProperties {
|
|
|
10542
10542
|
* pain: 4,
|
|
10543
10543
|
* }
|
|
10544
10544
|
*/
|
|
10545
|
+
/**
|
|
10546
|
+
* Opportunity carries no intrinsic scalar properties: it is defined by its
|
|
10547
|
+
* title/description and its edges (to the problems/needs it addresses and the
|
|
10548
|
+
* solutions proposed against it). Its former scoring inputs (`reach`,
|
|
10549
|
+
* `frequency`, `pain`, `opportunity_score`) were framework-scoped from 0.9.0 —
|
|
10550
|
+
* they live on the `framework_exercise` includes-edge of the `opportunity-sizing`
|
|
10551
|
+
* framework, not on the entity. Removed from the schema in 0.14.0 (UPG-574).
|
|
10552
|
+
*/
|
|
10545
10553
|
interface OpportunityProperties {
|
|
10546
|
-
/**
|
|
10547
|
-
* How many users experience this problem.
|
|
10548
|
-
* @deprecated 0.9.0:a framework-scoped scoring input, not an intrinsic
|
|
10549
|
-
* property. Apply the `opportunity-sizing` framework; the value lives on the
|
|
10550
|
-
* framework_exercise includes-edge. Removed in 0.9.1.
|
|
10551
|
-
*/
|
|
10552
|
-
reach?: UPGAssessment;
|
|
10553
|
-
/**
|
|
10554
|
-
* How often users experience this problem.
|
|
10555
|
-
* @deprecated 0.9.0:framework-scoped (opportunity-sizing). Removed in 0.9.1.
|
|
10556
|
-
*/
|
|
10557
|
-
frequency?: UPGAssessment;
|
|
10558
|
-
/**
|
|
10559
|
-
* How painful it is when unaddressed.
|
|
10560
|
-
* @deprecated 0.9.0:framework-scoped (opportunity-sizing). Removed in 0.9.1.
|
|
10561
|
-
*/
|
|
10562
|
-
pain?: UPGAssessment;
|
|
10563
|
-
/**
|
|
10564
|
-
* Computed: normalized_reach x normalized_frequency x normalized_pain (0-1).
|
|
10565
|
-
* @deprecated 0.9.0:computed by the `opportunity-sizing` framework on its
|
|
10566
|
-
* application edge, not stored on the entity. Removed in 0.9.1.
|
|
10567
|
-
*/
|
|
10568
|
-
opportunity_score?: number;
|
|
10569
10554
|
}
|
|
10570
10555
|
/** A proposed response to an opportunity
|
|
10571
10556
|
*
|
|
10572
10557
|
* @example
|
|
10573
10558
|
* const properties: SolutionProperties = {
|
|
10574
10559
|
* timeline: 'Kickoff 2026-04-22, results by 2026-05-15.',
|
|
10575
|
-
* reach: 4,
|
|
10576
|
-
* impact: 4,
|
|
10577
10560
|
* }
|
|
10561
|
+
*
|
|
10562
|
+
* RICE scoring inputs (`reach`, `impact`, `confidence`, `effort`) and the
|
|
10563
|
+
* computed `rice_score` were framework-scoped from 0.9.0 and removed from the
|
|
10564
|
+
* schema in 0.14.0 (UPG-574): apply the `rice-scoring` framework and read the
|
|
10565
|
+
* score off the `framework_exercise` includes-edge, not the entity.
|
|
10578
10566
|
*/
|
|
10579
10567
|
interface SolutionProperties {
|
|
10580
10568
|
/** Estimated delivery or target timeline */
|
|
10581
10569
|
timeline?: string;
|
|
10582
|
-
/**
|
|
10583
|
-
* How many users this solution reaches (1 = few, 5 = most).
|
|
10584
|
-
* @deprecated 0.9.0:a framework-scoped scoring input, not an intrinsic
|
|
10585
|
-
* property. Apply the `rice-scoring` framework; the value lives on the
|
|
10586
|
-
* framework_exercise includes-edge. Removed in 0.9.1.
|
|
10587
|
-
*/
|
|
10588
|
-
reach?: UPGAssessment;
|
|
10589
|
-
/**
|
|
10590
|
-
* Expected impact on the target outcome (1 = minimal, 5 = transformative).
|
|
10591
|
-
* @deprecated 0.9.0:framework-scoped (rice-scoring). Removed in 0.9.1.
|
|
10592
|
-
*/
|
|
10593
|
-
impact?: UPGAssessment;
|
|
10594
|
-
/**
|
|
10595
|
-
* How confident the team is in this solution (1 = speculative, 5 = proven).
|
|
10596
|
-
* @deprecated 0.9.0:framework-scoped (rice-scoring). Removed in 0.9.1.
|
|
10597
|
-
*/
|
|
10598
|
-
confidence?: UPGAssessment;
|
|
10599
|
-
/**
|
|
10600
|
-
* Level of effort required to implement (1 = trivial, 5 = very large).
|
|
10601
|
-
* @deprecated 0.9.0:effort is a framework-scoped scoring input (it varies by
|
|
10602
|
-
* assessor and method), not an intrinsic property. Removed in 0.9.1.
|
|
10603
|
-
*/
|
|
10604
|
-
effort?: UPGAssessment;
|
|
10605
|
-
/**
|
|
10606
|
-
* Computed: (reach × impact × confidence) / effort.
|
|
10607
|
-
* @deprecated 0.9.0:computed by the `rice-scoring` framework on its
|
|
10608
|
-
* application edge, not stored on the entity. Removed in 0.9.1.
|
|
10609
|
-
*/
|
|
10610
|
-
rice_score?: number;
|
|
10611
10570
|
}
|
|
10612
10571
|
/** FeasibilityStudy entity.
|
|
10613
10572
|
*
|
|
@@ -12133,10 +12092,8 @@ interface DesignGuidelineProperties {
|
|
|
12133
12092
|
applies_to?: string;
|
|
12134
12093
|
/** Reasoning. Why this rule exists. */
|
|
12135
12094
|
rationale?: string;
|
|
12136
|
-
/** Imperative force.
|
|
12095
|
+
/** Imperative force. (Superseded the removed `strictness` field in 0.14.0, UPG-574.) */
|
|
12137
12096
|
rule_strength?: RuleStrength;
|
|
12138
|
-
/** RFC-2119-flavoured binding strength */
|
|
12139
|
-
strictness?: 'must' | 'should' | 'may';
|
|
12140
12097
|
/** Exception request or documentation process */
|
|
12141
12098
|
exception_policy?: string;
|
|
12142
12099
|
}
|
|
@@ -12661,12 +12618,6 @@ interface TaskProperties {
|
|
|
12661
12618
|
due_date?: ISODate;
|
|
12662
12619
|
/** Free-form classification tags. Applied uniformly across work item types. */
|
|
12663
12620
|
labels?: string[];
|
|
12664
|
-
/**
|
|
12665
|
-
* Story-point or sizing estimate. String to support fibonacci, t-shirt sizes,
|
|
12666
|
-
* or custom scales (e.g. "5", "M", "3 pts"). Absorbed from `StoryTaskProperties`
|
|
12667
|
-
* when `story_task` collapsed into `task` (v0.4.0).
|
|
12668
|
-
*/
|
|
12669
|
-
estimate?: string;
|
|
12670
12621
|
}
|
|
12671
12622
|
/** Bug report.
|
|
12672
12623
|
*
|
|
@@ -13455,9 +13406,7 @@ interface InvestigationProperties {
|
|
|
13455
13406
|
* severity: 4,
|
|
13456
13407
|
* cause_confidence: 'confirmed',
|
|
13457
13408
|
* evidence_summary: 'Trace shows retry loop on 4xx responses; reproduced in staging with synthetic 401.',
|
|
13458
|
-
* category: 'architecture',
|
|
13459
13409
|
* affected_area: 'Billing settlement service',
|
|
13460
|
-
* verified: true,
|
|
13461
13410
|
* }
|
|
13462
13411
|
*/
|
|
13463
13412
|
interface RootCauseProperties {
|
|
@@ -13480,12 +13429,8 @@ interface RootCauseProperties {
|
|
|
13480
13429
|
cause_confidence?: CauseConfidence;
|
|
13481
13430
|
/** One-paragraph evidence summary. Log lines, traces, repro steps. Detailed artefacts go on linked `evidence` nodes. */
|
|
13482
13431
|
evidence_summary?: string;
|
|
13483
|
-
/** Legacy free-form category. Retained for v0.2 baseline; new graphs prefer `cause_category`. */
|
|
13484
|
-
category?: 'architecture' | 'design' | 'data' | 'infrastructure' | 'process' | 'dependency' | 'other';
|
|
13485
13432
|
/** Affected area of the system */
|
|
13486
13433
|
affected_area?: string;
|
|
13487
|
-
/** Verified through investigation */
|
|
13488
|
-
verified?: boolean;
|
|
13489
13434
|
}
|
|
13490
13435
|
/** Observable behaviour produced by a root cause.
|
|
13491
13436
|
*
|
|
@@ -16855,10 +16800,8 @@ interface BehavioralSegmentProperties {
|
|
|
16855
16800
|
included_behaviors?: string[];
|
|
16856
16801
|
/** Excluding behaviours (negative criteria, free-text labels) */
|
|
16857
16802
|
excluded_behaviors?: string[];
|
|
16858
|
-
/** Estimated current size. Snapshot value. */
|
|
16803
|
+
/** Estimated current size. Snapshot value. (`size`, the v0.2 alias, removed in 0.14.0, UPG-574.) */
|
|
16859
16804
|
size_estimate?: number;
|
|
16860
|
-
/** Size. Alias retained for the v0.2 baseline. */
|
|
16861
|
-
size?: number;
|
|
16862
16805
|
/** ISO start of the validity window. Behavioural definitions decay; outside the window the snapshot should be re-computed. */
|
|
16863
16806
|
validity_period_start?: ISODate;
|
|
16864
16807
|
/** End of the window over which the segment definition is considered valid (ISO format) */
|
|
@@ -21941,7 +21884,7 @@ declare function isCanonical(text: string): boolean;
|
|
|
21941
21884
|
* it stamps the `upg_version` field of every `.upg` file written by the SDK.
|
|
21942
21885
|
* The `check:version-lockstep` gate enforces this at release time.
|
|
21943
21886
|
*/
|
|
21944
|
-
declare const UPG_VERSION: "0.
|
|
21887
|
+
declare const UPG_VERSION: "0.14.0";
|
|
21945
21888
|
/**
|
|
21946
21889
|
* The `.upg` JSON document format version. Written to the `upg_version` field.
|
|
21947
21890
|
* Evolves independently from `UPG_VERSION` (the catalogue version).
|
package/dist/index.d.ts
CHANGED
|
@@ -10542,72 +10542,31 @@ interface SwitchingCostProperties {
|
|
|
10542
10542
|
* pain: 4,
|
|
10543
10543
|
* }
|
|
10544
10544
|
*/
|
|
10545
|
+
/**
|
|
10546
|
+
* Opportunity carries no intrinsic scalar properties: it is defined by its
|
|
10547
|
+
* title/description and its edges (to the problems/needs it addresses and the
|
|
10548
|
+
* solutions proposed against it). Its former scoring inputs (`reach`,
|
|
10549
|
+
* `frequency`, `pain`, `opportunity_score`) were framework-scoped from 0.9.0 —
|
|
10550
|
+
* they live on the `framework_exercise` includes-edge of the `opportunity-sizing`
|
|
10551
|
+
* framework, not on the entity. Removed from the schema in 0.14.0 (UPG-574).
|
|
10552
|
+
*/
|
|
10545
10553
|
interface OpportunityProperties {
|
|
10546
|
-
/**
|
|
10547
|
-
* How many users experience this problem.
|
|
10548
|
-
* @deprecated 0.9.0:a framework-scoped scoring input, not an intrinsic
|
|
10549
|
-
* property. Apply the `opportunity-sizing` framework; the value lives on the
|
|
10550
|
-
* framework_exercise includes-edge. Removed in 0.9.1.
|
|
10551
|
-
*/
|
|
10552
|
-
reach?: UPGAssessment;
|
|
10553
|
-
/**
|
|
10554
|
-
* How often users experience this problem.
|
|
10555
|
-
* @deprecated 0.9.0:framework-scoped (opportunity-sizing). Removed in 0.9.1.
|
|
10556
|
-
*/
|
|
10557
|
-
frequency?: UPGAssessment;
|
|
10558
|
-
/**
|
|
10559
|
-
* How painful it is when unaddressed.
|
|
10560
|
-
* @deprecated 0.9.0:framework-scoped (opportunity-sizing). Removed in 0.9.1.
|
|
10561
|
-
*/
|
|
10562
|
-
pain?: UPGAssessment;
|
|
10563
|
-
/**
|
|
10564
|
-
* Computed: normalized_reach x normalized_frequency x normalized_pain (0-1).
|
|
10565
|
-
* @deprecated 0.9.0:computed by the `opportunity-sizing` framework on its
|
|
10566
|
-
* application edge, not stored on the entity. Removed in 0.9.1.
|
|
10567
|
-
*/
|
|
10568
|
-
opportunity_score?: number;
|
|
10569
10554
|
}
|
|
10570
10555
|
/** A proposed response to an opportunity
|
|
10571
10556
|
*
|
|
10572
10557
|
* @example
|
|
10573
10558
|
* const properties: SolutionProperties = {
|
|
10574
10559
|
* timeline: 'Kickoff 2026-04-22, results by 2026-05-15.',
|
|
10575
|
-
* reach: 4,
|
|
10576
|
-
* impact: 4,
|
|
10577
10560
|
* }
|
|
10561
|
+
*
|
|
10562
|
+
* RICE scoring inputs (`reach`, `impact`, `confidence`, `effort`) and the
|
|
10563
|
+
* computed `rice_score` were framework-scoped from 0.9.0 and removed from the
|
|
10564
|
+
* schema in 0.14.0 (UPG-574): apply the `rice-scoring` framework and read the
|
|
10565
|
+
* score off the `framework_exercise` includes-edge, not the entity.
|
|
10578
10566
|
*/
|
|
10579
10567
|
interface SolutionProperties {
|
|
10580
10568
|
/** Estimated delivery or target timeline */
|
|
10581
10569
|
timeline?: string;
|
|
10582
|
-
/**
|
|
10583
|
-
* How many users this solution reaches (1 = few, 5 = most).
|
|
10584
|
-
* @deprecated 0.9.0:a framework-scoped scoring input, not an intrinsic
|
|
10585
|
-
* property. Apply the `rice-scoring` framework; the value lives on the
|
|
10586
|
-
* framework_exercise includes-edge. Removed in 0.9.1.
|
|
10587
|
-
*/
|
|
10588
|
-
reach?: UPGAssessment;
|
|
10589
|
-
/**
|
|
10590
|
-
* Expected impact on the target outcome (1 = minimal, 5 = transformative).
|
|
10591
|
-
* @deprecated 0.9.0:framework-scoped (rice-scoring). Removed in 0.9.1.
|
|
10592
|
-
*/
|
|
10593
|
-
impact?: UPGAssessment;
|
|
10594
|
-
/**
|
|
10595
|
-
* How confident the team is in this solution (1 = speculative, 5 = proven).
|
|
10596
|
-
* @deprecated 0.9.0:framework-scoped (rice-scoring). Removed in 0.9.1.
|
|
10597
|
-
*/
|
|
10598
|
-
confidence?: UPGAssessment;
|
|
10599
|
-
/**
|
|
10600
|
-
* Level of effort required to implement (1 = trivial, 5 = very large).
|
|
10601
|
-
* @deprecated 0.9.0:effort is a framework-scoped scoring input (it varies by
|
|
10602
|
-
* assessor and method), not an intrinsic property. Removed in 0.9.1.
|
|
10603
|
-
*/
|
|
10604
|
-
effort?: UPGAssessment;
|
|
10605
|
-
/**
|
|
10606
|
-
* Computed: (reach × impact × confidence) / effort.
|
|
10607
|
-
* @deprecated 0.9.0:computed by the `rice-scoring` framework on its
|
|
10608
|
-
* application edge, not stored on the entity. Removed in 0.9.1.
|
|
10609
|
-
*/
|
|
10610
|
-
rice_score?: number;
|
|
10611
10570
|
}
|
|
10612
10571
|
/** FeasibilityStudy entity.
|
|
10613
10572
|
*
|
|
@@ -12133,10 +12092,8 @@ interface DesignGuidelineProperties {
|
|
|
12133
12092
|
applies_to?: string;
|
|
12134
12093
|
/** Reasoning. Why this rule exists. */
|
|
12135
12094
|
rationale?: string;
|
|
12136
|
-
/** Imperative force.
|
|
12095
|
+
/** Imperative force. (Superseded the removed `strictness` field in 0.14.0, UPG-574.) */
|
|
12137
12096
|
rule_strength?: RuleStrength;
|
|
12138
|
-
/** RFC-2119-flavoured binding strength */
|
|
12139
|
-
strictness?: 'must' | 'should' | 'may';
|
|
12140
12097
|
/** Exception request or documentation process */
|
|
12141
12098
|
exception_policy?: string;
|
|
12142
12099
|
}
|
|
@@ -12661,12 +12618,6 @@ interface TaskProperties {
|
|
|
12661
12618
|
due_date?: ISODate;
|
|
12662
12619
|
/** Free-form classification tags. Applied uniformly across work item types. */
|
|
12663
12620
|
labels?: string[];
|
|
12664
|
-
/**
|
|
12665
|
-
* Story-point or sizing estimate. String to support fibonacci, t-shirt sizes,
|
|
12666
|
-
* or custom scales (e.g. "5", "M", "3 pts"). Absorbed from `StoryTaskProperties`
|
|
12667
|
-
* when `story_task` collapsed into `task` (v0.4.0).
|
|
12668
|
-
*/
|
|
12669
|
-
estimate?: string;
|
|
12670
12621
|
}
|
|
12671
12622
|
/** Bug report.
|
|
12672
12623
|
*
|
|
@@ -13455,9 +13406,7 @@ interface InvestigationProperties {
|
|
|
13455
13406
|
* severity: 4,
|
|
13456
13407
|
* cause_confidence: 'confirmed',
|
|
13457
13408
|
* evidence_summary: 'Trace shows retry loop on 4xx responses; reproduced in staging with synthetic 401.',
|
|
13458
|
-
* category: 'architecture',
|
|
13459
13409
|
* affected_area: 'Billing settlement service',
|
|
13460
|
-
* verified: true,
|
|
13461
13410
|
* }
|
|
13462
13411
|
*/
|
|
13463
13412
|
interface RootCauseProperties {
|
|
@@ -13480,12 +13429,8 @@ interface RootCauseProperties {
|
|
|
13480
13429
|
cause_confidence?: CauseConfidence;
|
|
13481
13430
|
/** One-paragraph evidence summary. Log lines, traces, repro steps. Detailed artefacts go on linked `evidence` nodes. */
|
|
13482
13431
|
evidence_summary?: string;
|
|
13483
|
-
/** Legacy free-form category. Retained for v0.2 baseline; new graphs prefer `cause_category`. */
|
|
13484
|
-
category?: 'architecture' | 'design' | 'data' | 'infrastructure' | 'process' | 'dependency' | 'other';
|
|
13485
13432
|
/** Affected area of the system */
|
|
13486
13433
|
affected_area?: string;
|
|
13487
|
-
/** Verified through investigation */
|
|
13488
|
-
verified?: boolean;
|
|
13489
13434
|
}
|
|
13490
13435
|
/** Observable behaviour produced by a root cause.
|
|
13491
13436
|
*
|
|
@@ -16855,10 +16800,8 @@ interface BehavioralSegmentProperties {
|
|
|
16855
16800
|
included_behaviors?: string[];
|
|
16856
16801
|
/** Excluding behaviours (negative criteria, free-text labels) */
|
|
16857
16802
|
excluded_behaviors?: string[];
|
|
16858
|
-
/** Estimated current size. Snapshot value. */
|
|
16803
|
+
/** Estimated current size. Snapshot value. (`size`, the v0.2 alias, removed in 0.14.0, UPG-574.) */
|
|
16859
16804
|
size_estimate?: number;
|
|
16860
|
-
/** Size. Alias retained for the v0.2 baseline. */
|
|
16861
|
-
size?: number;
|
|
16862
16805
|
/** ISO start of the validity window. Behavioural definitions decay; outside the window the snapshot should be re-computed. */
|
|
16863
16806
|
validity_period_start?: ISODate;
|
|
16864
16807
|
/** End of the window over which the segment definition is considered valid (ISO format) */
|
|
@@ -21941,7 +21884,7 @@ declare function isCanonical(text: string): boolean;
|
|
|
21941
21884
|
* it stamps the `upg_version` field of every `.upg` file written by the SDK.
|
|
21942
21885
|
* The `check:version-lockstep` gate enforces this at release time.
|
|
21943
21886
|
*/
|
|
21944
|
-
declare const UPG_VERSION: "0.
|
|
21887
|
+
declare const UPG_VERSION: "0.14.0";
|
|
21945
21888
|
/**
|
|
21946
21889
|
* The `.upg` JSON document format version. Written to the `upg_version` field.
|
|
21947
21890
|
* Evolves independently from `UPG_VERSION` (the catalogue version).
|
package/dist/index.js
CHANGED
|
@@ -7381,6 +7381,53 @@ function getDeprecatedTypes() {
|
|
|
7381
7381
|
return deprecated;
|
|
7382
7382
|
}
|
|
7383
7383
|
var UPG_PROPERTY_MIGRATIONS = {
|
|
7384
|
+
// ── v0.14.0: Pattern E — remove deprecated/ghost properties (UPG-574) ────────
|
|
7385
|
+
//
|
|
7386
|
+
// Properties marked deprecated (some "Removed in 0.9.1") that were never
|
|
7387
|
+
// actually removed, plus superseded soft-aliases. The RICE / opportunity-sizing
|
|
7388
|
+
// scoring inputs were framework-scoped from 0.9.0: their value lives on the
|
|
7389
|
+
// `framework_exercise` includes-edge of the rice-scoring / opportunity-sizing
|
|
7390
|
+
// framework, not on the entity. The remaining four are superseded by a sibling
|
|
7391
|
+
// (cause_category, rule_strength, size_estimate, effort). Loaders drop the
|
|
7392
|
+
// stranded keys; the values were never canonical on the entity.
|
|
7393
|
+
"0.14.0": [
|
|
7394
|
+
{
|
|
7395
|
+
kind: "drop_props",
|
|
7396
|
+
type: "opportunity",
|
|
7397
|
+
drop_props: ["reach", "frequency", "pain", "opportunity_score"],
|
|
7398
|
+
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."
|
|
7399
|
+
},
|
|
7400
|
+
{
|
|
7401
|
+
kind: "drop_props",
|
|
7402
|
+
type: "solution",
|
|
7403
|
+
drop_props: ["reach", "impact", "confidence", "effort", "rice_score"],
|
|
7404
|
+
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."
|
|
7405
|
+
},
|
|
7406
|
+
{
|
|
7407
|
+
kind: "drop_props",
|
|
7408
|
+
type: "root_cause",
|
|
7409
|
+
drop_props: ["category", "verified"],
|
|
7410
|
+
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."
|
|
7411
|
+
},
|
|
7412
|
+
{
|
|
7413
|
+
kind: "drop_props",
|
|
7414
|
+
type: "design_guideline",
|
|
7415
|
+
drop_props: ["strictness"],
|
|
7416
|
+
reason: "UPG-574: design_guideline.strictness was superseded by rule_strength (a richer imperative-force enum). Removed in 0.14.0."
|
|
7417
|
+
},
|
|
7418
|
+
{
|
|
7419
|
+
kind: "drop_props",
|
|
7420
|
+
type: "behavioral_segment",
|
|
7421
|
+
drop_props: ["size"],
|
|
7422
|
+
reason: "UPG-574: behavioral_segment.size was a v0.2 alias for size_estimate. Removed in 0.14.0; use size_estimate."
|
|
7423
|
+
},
|
|
7424
|
+
{
|
|
7425
|
+
kind: "drop_props",
|
|
7426
|
+
type: "task",
|
|
7427
|
+
drop_props: ["estimate"],
|
|
7428
|
+
reason: "UPG-574: task.estimate was a story_task-collapse relic that duplicated effort. Removed in 0.14.0; use effort."
|
|
7429
|
+
}
|
|
7430
|
+
],
|
|
7384
7431
|
// ── v0.12.0: P14 Bucket C — drop the one non-derived denormalized aggregate ──
|
|
7385
7432
|
//
|
|
7386
7433
|
// The count caches (feature_count, evidence_count, workflow step_count /
|
|
@@ -10060,8 +10107,7 @@ var UPG_PROPERTY_SCHEMA = {
|
|
|
10060
10107
|
source: { type: "string", enum: ["clickstream", "survey", "interview", "mixed", "inferred", "imported"], description: "Membership data source. Drives confidence weighting and refresh policy." },
|
|
10061
10108
|
included_behaviors: { type: "string[]", description: "Qualifying behaviours (positive criteria, free-text labels)" },
|
|
10062
10109
|
excluded_behaviors: { type: "string[]", description: "Excluding behaviours (negative criteria, free-text labels)" },
|
|
10063
|
-
size_estimate: { type: "number", description: "Estimated current size. Snapshot value." },
|
|
10064
|
-
size: { type: "number", description: "Size. Alias retained for the v0.2 baseline." },
|
|
10110
|
+
size_estimate: { type: "number", description: "Estimated current size. Snapshot value. (`size`, the v0.2 alias, removed in 0.14.0, UPG-574.)" },
|
|
10065
10111
|
validity_period_start: { type: "string", description: "ISO start of the validity window. Behavioural definitions decay; outside the window the snapshot should be re-computed." },
|
|
10066
10112
|
validity_period_end: { type: "string", description: "End of the window over which the segment definition is considered valid (ISO format)" }
|
|
10067
10113
|
},
|
|
@@ -10678,8 +10724,7 @@ var UPG_PROPERTY_SCHEMA = {
|
|
|
10678
10724
|
guideline_category: { type: "string", enum: ["spacing", "color", "typography", "layout", "interaction", "content"], description: "Category covered" },
|
|
10679
10725
|
applies_to: { type: "string", description: "Applicable elements or contexts" },
|
|
10680
10726
|
rationale: { type: "string", description: "Reasoning. Why this rule exists." },
|
|
10681
|
-
rule_strength: { type: "string", enum: ["must", "must_not", "exception", "warning", "guideline"], description: "Imperative force.
|
|
10682
|
-
strictness: { type: "string", enum: ["must", "should", "may"], description: "RFC-2119-flavoured binding strength" },
|
|
10727
|
+
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.)" },
|
|
10683
10728
|
exception_policy: { type: "string", description: "Exception request or documentation process" }
|
|
10684
10729
|
},
|
|
10685
10730
|
// DesignPatternProperties: Reusable design pattern.
|
|
@@ -11806,46 +11851,11 @@ var UPG_PROPERTY_SCHEMA = {
|
|
|
11806
11851
|
rotation_cadence: { type: "string", enum: ["daily", "weekly", "biweekly", "custom"], description: "Cycle cadence. `weekly` for standard team rotations. `daily` for high-incident-volume teams." },
|
|
11807
11852
|
handoff_time: { type: "string", description: 'Shift handoff time. Affects team coordination and sleep. @example "09:00 UTC", "17:00 local"' }
|
|
11808
11853
|
},
|
|
11809
|
-
// OpportunityProperties: A problem worth solving, grounded in user need and business value
|
|
11810
|
-
|
|
11811
|
-
|
|
11812
|
-
|
|
11813
|
-
|
|
11814
|
-
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.",
|
|
11815
|
-
properties: {
|
|
11816
|
-
value: { type: "number", description: "The numeric value, used for computation." },
|
|
11817
|
-
label: { type: "string", description: "The qualitative label (what the assessor meant)." },
|
|
11818
|
-
scale_id: { type: "string", description: "Which assessment scale this was rated on (optional)." },
|
|
11819
|
-
normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
|
|
11820
|
-
},
|
|
11821
|
-
required: ["value", "label"]
|
|
11822
|
-
},
|
|
11823
|
-
frequency: {
|
|
11824
|
-
type: "assessment",
|
|
11825
|
-
scale_id: "frequency_5",
|
|
11826
|
-
description: "How often users experience this problem. @deprecated 0.9.0:framework-scoped (opportunity-sizing). Removed in 0.9.1.",
|
|
11827
|
-
properties: {
|
|
11828
|
-
value: { type: "number", description: "The numeric value, used for computation." },
|
|
11829
|
-
label: { type: "string", description: "The qualitative label (what the assessor meant)." },
|
|
11830
|
-
scale_id: { type: "string", description: "Which assessment scale this was rated on (optional)." },
|
|
11831
|
-
normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
|
|
11832
|
-
},
|
|
11833
|
-
required: ["value", "label"]
|
|
11834
|
-
},
|
|
11835
|
-
pain: {
|
|
11836
|
-
type: "assessment",
|
|
11837
|
-
scale_id: "pain_5",
|
|
11838
|
-
description: "How painful it is when unaddressed. @deprecated 0.9.0:framework-scoped (opportunity-sizing). Removed in 0.9.1.",
|
|
11839
|
-
properties: {
|
|
11840
|
-
value: { type: "number", description: "The numeric value, used for computation." },
|
|
11841
|
-
label: { type: "string", description: "The qualitative label (what the assessor meant)." },
|
|
11842
|
-
scale_id: { type: "string", description: "Which assessment scale this was rated on (optional)." },
|
|
11843
|
-
normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
|
|
11844
|
-
},
|
|
11845
|
-
required: ["value", "label"]
|
|
11846
|
-
},
|
|
11847
|
-
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." }
|
|
11848
|
-
},
|
|
11854
|
+
// OpportunityProperties: A problem worth solving, grounded in user need and business value.
|
|
11855
|
+
// No intrinsic scalar properties — defined by edges + framework-scoped scoring
|
|
11856
|
+
// (reach/frequency/pain/opportunity_score live on the `opportunity-sizing`
|
|
11857
|
+
// framework_exercise edge). Former props removed in 0.14.0 (UPG-574).
|
|
11858
|
+
opportunity: {},
|
|
11849
11859
|
// OrganizationProperties: Organization entity.
|
|
11850
11860
|
organization: {
|
|
11851
11861
|
logo_url: { type: "string", description: "URL of the organisation's logo" },
|
|
@@ -12305,9 +12315,8 @@ var UPG_PROPERTY_SCHEMA = {
|
|
|
12305
12315
|
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`." },
|
|
12306
12316
|
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." },
|
|
12307
12317
|
evidence_summary: { type: "string", description: "One-paragraph evidence summary. Log lines, traces, repro steps. Detailed artefacts go on linked `evidence` nodes." },
|
|
12308
|
-
|
|
12309
|
-
|
|
12310
|
-
verified: { type: "boolean", description: "Verified through investigation" }
|
|
12318
|
+
affected_area: { type: "string", description: "Affected area of the system" }
|
|
12319
|
+
// `category` (legacy, -> `cause_category`) and `verified` (= `cause_confidence === 'confirmed'`) removed in 0.14.0 (UPG-574).
|
|
12311
12320
|
},
|
|
12312
12321
|
// RunbookProperties: Runbook.
|
|
12313
12322
|
runbook: {
|
|
@@ -12460,58 +12469,12 @@ var UPG_PROPERTY_SCHEMA = {
|
|
|
12460
12469
|
post_type: { type: "string", enum: ["text", "image", "video", "carousel", "story"], description: "Format of the post" },
|
|
12461
12470
|
scheduled_date: { type: "string", description: "Date the post is scheduled to publish (ISO format)" }
|
|
12462
12471
|
},
|
|
12463
|
-
// SolutionProperties: A proposed response to an opportunity
|
|
12472
|
+
// SolutionProperties: A proposed response to an opportunity.
|
|
12473
|
+
// RICE scoring inputs (reach/impact/confidence/effort) + computed rice_score
|
|
12474
|
+
// were framework-scoped from 0.9.0 and removed in 0.14.0 (UPG-574): they live
|
|
12475
|
+
// on the `rice-scoring` framework_exercise edge, not the entity.
|
|
12464
12476
|
solution: {
|
|
12465
|
-
timeline: { type: "string", description: "Estimated delivery or target timeline" }
|
|
12466
|
-
reach: {
|
|
12467
|
-
type: "assessment",
|
|
12468
|
-
scale_id: "reach_5",
|
|
12469
|
-
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.",
|
|
12470
|
-
properties: {
|
|
12471
|
-
value: { type: "number", description: "The numeric value, used for computation." },
|
|
12472
|
-
label: { type: "string", description: "The qualitative label (what the assessor meant)." },
|
|
12473
|
-
scale_id: { type: "string", description: "Which assessment scale this was rated on (optional)." },
|
|
12474
|
-
normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
|
|
12475
|
-
},
|
|
12476
|
-
required: ["value", "label"]
|
|
12477
|
-
},
|
|
12478
|
-
impact: {
|
|
12479
|
-
type: "assessment",
|
|
12480
|
-
scale_id: "impact_5",
|
|
12481
|
-
description: "Expected impact on the target outcome (1 = minimal, 5 = transformative). @deprecated 0.9.0:framework-scoped (rice-scoring). Removed in 0.9.1.",
|
|
12482
|
-
properties: {
|
|
12483
|
-
value: { type: "number", description: "The numeric value, used for computation." },
|
|
12484
|
-
label: { type: "string", description: "The qualitative label (what the assessor meant)." },
|
|
12485
|
-
scale_id: { type: "string", description: "Which assessment scale this was rated on (optional)." },
|
|
12486
|
-
normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
|
|
12487
|
-
},
|
|
12488
|
-
required: ["value", "label"]
|
|
12489
|
-
},
|
|
12490
|
-
confidence: {
|
|
12491
|
-
type: "assessment",
|
|
12492
|
-
scale_id: "confidence_5",
|
|
12493
|
-
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.",
|
|
12494
|
-
properties: {
|
|
12495
|
-
value: { type: "number", description: "The numeric value, used for computation." },
|
|
12496
|
-
label: { type: "string", description: "The qualitative label (what the assessor meant)." },
|
|
12497
|
-
scale_id: { type: "string", description: "Which assessment scale this was rated on (optional)." },
|
|
12498
|
-
normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
|
|
12499
|
-
},
|
|
12500
|
-
required: ["value", "label"]
|
|
12501
|
-
},
|
|
12502
|
-
effort: {
|
|
12503
|
-
type: "assessment",
|
|
12504
|
-
scale_id: "effort_5",
|
|
12505
|
-
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.",
|
|
12506
|
-
properties: {
|
|
12507
|
-
value: { type: "number", description: "The numeric value, used for computation." },
|
|
12508
|
-
label: { type: "string", description: "The qualitative label (what the assessor meant)." },
|
|
12509
|
-
scale_id: { type: "string", description: "Which assessment scale this was rated on (optional)." },
|
|
12510
|
-
normalized: { type: "number", description: "Normalized 0-1 value for cross-tool comparison (optional)." }
|
|
12511
|
-
},
|
|
12512
|
-
required: ["value", "label"]
|
|
12513
|
-
},
|
|
12514
|
-
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." }
|
|
12477
|
+
timeline: { type: "string", description: "Estimated delivery or target timeline" }
|
|
12515
12478
|
},
|
|
12516
12479
|
// SpecificationProperties: A governed specification: a query language, protocol, data format, encoding,
|
|
12517
12480
|
specification: {
|
|
@@ -12669,8 +12632,8 @@ var UPG_PROPERTY_SCHEMA = {
|
|
|
12669
12632
|
effort: { type: "string", description: 'Effort estimate (e.g. "2h", "1d", "3 points"). Use a consistent unit within your team.' },
|
|
12670
12633
|
priority: { type: "string", enum: ["urgent", "high", "medium", "low", "none"], description: "Relative importance against other tasks" },
|
|
12671
12634
|
due_date: { type: "string", description: "ISO date due. Typically bounded by the containing story's due date." },
|
|
12672
|
-
labels: { type: "string[]", description: "Free-form classification tags. Applied uniformly across work item types." }
|
|
12673
|
-
|
|
12635
|
+
labels: { type: "string[]", description: "Free-form classification tags. Applied uniformly across work item types." }
|
|
12636
|
+
// `estimate` (story_task collapse relic, duplicated `effort`) removed in 0.14.0 (UPG-574).
|
|
12674
12637
|
},
|
|
12675
12638
|
// TeamProperties: Team entity.
|
|
12676
12639
|
team: {
|
|
@@ -29320,7 +29283,7 @@ function isCanonical(text) {
|
|
|
29320
29283
|
}
|
|
29321
29284
|
|
|
29322
29285
|
// src/index.ts
|
|
29323
|
-
var UPG_VERSION = "0.
|
|
29286
|
+
var UPG_VERSION = "0.14.0";
|
|
29324
29287
|
var UPG_FORMAT_VERSION = "0.4.0";
|
|
29325
29288
|
var MARKDOWN_FORMAT_VERSION = "0.1";
|
|
29326
29289
|
var UPG_TYPES = getTypes();
|