@unified-product-graph/core 0.36.0 → 0.38.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/CHANGELOG.md +55 -0
- package/dist/index.cjs +517 -506
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +130 -6
- package/dist/index.d.ts +130 -6
- package/dist/index.js +517 -506
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,3 +1,507 @@
|
|
|
1
|
+
// src/registry/entity-meta.ts
|
|
2
|
+
var UPG_ENTITY_META = [
|
|
3
|
+
// Foundations (0.9.12): shared specifications + the primitives they define.
|
|
4
|
+
{ name: "specification", type_id: "ent_352", maturity: "proposed", since: "0.9.12", portfolio_shared: true },
|
|
5
|
+
{ name: "primitive", type_id: "ent_353", maturity: "proposed", since: "0.9.12", portfolio_shared: true },
|
|
6
|
+
{ name: "operating_lifecycle", type_id: "ent_355", maturity: "proposed", since: "0.11.6", portfolio_shared: true },
|
|
7
|
+
{ name: "operating_stage", type_id: "ent_356", maturity: "proposed", since: "0.11.6", portfolio_shared: true },
|
|
8
|
+
// ── Strategic ──
|
|
9
|
+
{ name: "product", type_id: "ent_001", maturity: "stable", since: "0.1.0" },
|
|
10
|
+
{ name: "outcome", type_id: "ent_002", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
11
|
+
{ name: "kpi", type_id: "ent_003", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
12
|
+
{ name: "objective", type_id: "ent_004", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
13
|
+
{ name: "key_result", type_id: "ent_005", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
14
|
+
{ name: "metric", type_id: "ent_006", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
15
|
+
// F7 (UPG-673): graduated proposed → stable at v0.9.x — proposed since 0.2.2,
|
|
16
|
+
// the metric-quality assessment artefact is settled with no open restructure.
|
|
17
|
+
{ name: "metric_quality_assessment", type_id: "ent_339", maturity: "stable", since: "0.2.2" },
|
|
18
|
+
{ name: "vision", type_id: "ent_007", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
19
|
+
{ name: "mission", type_id: "ent_008", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
20
|
+
{ name: "strategic_theme", type_id: "ent_009", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
21
|
+
{ name: "initiative", type_id: "ent_010", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
22
|
+
{ name: "capability", type_id: "ent_011", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
23
|
+
{ name: "value_stream", type_id: "ent_012", maturity: "stable", since: "0.1.0" },
|
|
24
|
+
{ name: "strategic_pillar", type_id: "ent_013", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
25
|
+
{ name: "assumption", type_id: "ent_014", maturity: "stable", since: "0.1.0" },
|
|
26
|
+
{ name: "decision", type_id: "ent_015", maturity: "stable", since: "0.1.0" },
|
|
27
|
+
{ name: "constraint", type_id: "ent_348", maturity: "stable", since: "0.4.3" },
|
|
28
|
+
// (0.17.4) Strategy-domain sibling of research_question / design_question,
|
|
29
|
+
// completing the domain-question triad. An open coordination/ownership question
|
|
30
|
+
// a plan is exposed to (distinct from `assumption`, which the plan is built on).
|
|
31
|
+
{ name: "strategic_question", type_id: "ent_357", maturity: "proposed", since: "0.17.4" },
|
|
32
|
+
// ── User ──
|
|
33
|
+
{ name: "persona", type_id: "ent_016", maturity: "stable", since: "0.1.0" },
|
|
34
|
+
{ name: "job", type_id: "ent_017", maturity: "stable", since: "0.1.0" },
|
|
35
|
+
{ name: "jtbd", type_id: "ent_332", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "job" },
|
|
36
|
+
{ name: "pain_point", type_id: "ent_018", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "need" },
|
|
37
|
+
{ name: "desired_outcome", type_id: "ent_019", maturity: "stable", since: "0.1.0" },
|
|
38
|
+
{ name: "job_step", type_id: "ent_020", maturity: "stable", since: "0.1.0" },
|
|
39
|
+
{ name: "user_need", type_id: "ent_021", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "need" },
|
|
40
|
+
{ name: "need", type_id: "ent_313", maturity: "stable", since: "0.1.0" },
|
|
41
|
+
{ name: "switching_cost", type_id: "ent_022", maturity: "stable", since: "0.1.0" },
|
|
42
|
+
// ── Discovery ──
|
|
43
|
+
{ name: "opportunity", type_id: "ent_023", maturity: "stable", since: "0.1.0", default_frameworks: ["opportunity-sizing", "rice-scoring"] },
|
|
44
|
+
{ name: "solution", type_id: "ent_024", maturity: "stable", since: "0.1.0", default_frameworks: ["rice-scoring"] },
|
|
45
|
+
{ name: "feasibility_study", type_id: "ent_025", maturity: "stable", since: "0.1.0" },
|
|
46
|
+
{ name: "design_sprint", type_id: "ent_026", maturity: "stable", since: "0.1.0" },
|
|
47
|
+
// ── Validation ──
|
|
48
|
+
// (since v0.4.0) `hypothesis` re-promoted to canonical-stable. The
|
|
49
|
+
// v0.2.8 rename to `hypothesis_claim` was over-split: "claim" is implied
|
|
50
|
+
// by being a hypothesis. Canonical name reverts; HypothesisClaimProperties
|
|
51
|
+
// renamed to HypothesisProperties. `hypothesis_claim` is now deprecated
|
|
52
|
+
// (→ `hypothesis`). `hypothesis_evidence` deprecated (→ `evidence`): the
|
|
53
|
+
// dual evidence_type enum smell resolved by enriching canonical `evidence`
|
|
54
|
+
// with evidence_rigor + evidence_source axes. Edge pattern switches to
|
|
55
|
+
// `hypothesis_has_evidence` (neutral, direction on node).
|
|
56
|
+
{ name: "hypothesis", type_id: "ent_027", maturity: "stable", since: "0.1.0" },
|
|
57
|
+
{ name: "hypothesis_claim", type_id: "ent_344", maturity: "deprecated", since: "0.2.8", deprecated_in: "0.4.0", replacement: "hypothesis" },
|
|
58
|
+
{ name: "hypothesis_evidence", type_id: "ent_345", maturity: "deprecated", since: "0.2.8", deprecated_in: "0.4.0", replacement: "evidence" },
|
|
59
|
+
// `experiment` is canonical (UPG-664). It has its own property schema
|
|
60
|
+
// (method, start_date, end_date, sample_size, expected_lift) and is the
|
|
61
|
+
// canonical unit of a structured test. The validation flow is
|
|
62
|
+
// `hypothesis → experiment_plan → experiment → experiment_run`: the plan is
|
|
63
|
+
// the validation design, the experiment is the structured test, the run is
|
|
64
|
+
// the optional multi-run/replication child.
|
|
65
|
+
{ name: "experiment", type_id: "ent_028", maturity: "stable", since: "0.1.0" },
|
|
66
|
+
// experiment_plan graduated proposed → stable (UPG-664). It is the canonical
|
|
67
|
+
// validation PLAN type — it absorbed `test_plan`'s planning properties
|
|
68
|
+
// (method / success_criteria / sample_size) when `test_plan` re-homed to the
|
|
69
|
+
// QA/testing domain (UPG-678).
|
|
70
|
+
{ name: "experiment_plan", type_id: "ent_340", maturity: "stable", since: "0.2.6" },
|
|
71
|
+
{ name: "experiment_run", type_id: "ent_341", maturity: "stable", since: "0.2.6" },
|
|
72
|
+
{ name: "learning", type_id: "ent_029", maturity: "stable", since: "0.1.0" },
|
|
73
|
+
// test_plan re-homed validation → testing/QA (UPG-678). It is the QA
|
|
74
|
+
// verification-procedure plan (test scope / environments / pass criteria);
|
|
75
|
+
// its former validation-planning role is carried by experiment_plan.
|
|
76
|
+
{ name: "test_plan", type_id: "ent_030", maturity: "stable", since: "0.1.0" },
|
|
77
|
+
{ name: "evidence", type_id: "ent_031", maturity: "stable", since: "0.1.0" },
|
|
78
|
+
{ name: "research_plan", type_id: "ent_032", maturity: "stable", since: "0.1.0" },
|
|
79
|
+
// ── Market Intelligence ──
|
|
80
|
+
{ name: "competitor", type_id: "ent_033", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
81
|
+
{ name: "competitor_feature", type_id: "ent_034", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
82
|
+
{ name: "competitor_signal", type_id: "ent_354", maturity: "proposed", since: "0.10.0", portfolio_shared: true },
|
|
83
|
+
{ name: "market_trend", type_id: "ent_035", maturity: "stable", since: "0.1.0" },
|
|
84
|
+
{ name: "market_segment", type_id: "ent_036", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
85
|
+
{ name: "competitive_analysis", type_id: "ent_037", maturity: "stable", since: "0.1.0" },
|
|
86
|
+
// Classification taxonomy hosted by competitive_analysis.
|
|
87
|
+
// F7 (UPG-673): graduated proposed → stable at v0.9.x — two minor releases
|
|
88
|
+
// stable since 0.4.0, the taxonomy-axis/value pair backs the competitive-
|
|
89
|
+
// analysis classification spine with no open rename/restructure ticket.
|
|
90
|
+
{ name: "classification_axis", type_id: "ent_346", maturity: "stable", since: "0.4.0", portfolio_shared: true },
|
|
91
|
+
{ name: "classification_value", type_id: "ent_347", maturity: "stable", since: "0.4.0", portfolio_shared: true },
|
|
92
|
+
// ── UX Research ──
|
|
93
|
+
{ name: "research_study", type_id: "ent_038", maturity: "stable", since: "0.1.0" },
|
|
94
|
+
{ name: "research_insight", type_id: "ent_039", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "insight" },
|
|
95
|
+
{ name: "insight", type_id: "ent_040", maturity: "stable", since: "0.1.0" },
|
|
96
|
+
{ name: "participant", type_id: "ent_041", maturity: "stable", since: "0.1.0" },
|
|
97
|
+
{ name: "observation", type_id: "ent_042", maturity: "stable", since: "0.1.0" },
|
|
98
|
+
{ name: "quote", type_id: "ent_043", maturity: "stable", since: "0.1.0" },
|
|
99
|
+
{ name: "affinity_cluster", type_id: "ent_044", maturity: "stable", since: "0.1.0" },
|
|
100
|
+
{ name: "research_question", type_id: "ent_045", maturity: "stable", since: "0.1.0" },
|
|
101
|
+
{ name: "interview_guide", type_id: "ent_046", maturity: "stable", since: "0.1.0" },
|
|
102
|
+
{ name: "finding", type_id: "ent_047", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "insight" },
|
|
103
|
+
{ name: "survey_response", type_id: "ent_048", maturity: "stable", since: "0.1.0" },
|
|
104
|
+
{ name: "highlight", type_id: "ent_049", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "observation" },
|
|
105
|
+
// ── Design ──
|
|
106
|
+
{ name: "user_journey", type_id: "ent_050", maturity: "stable", since: "0.1.0" },
|
|
107
|
+
{ name: "journey_step", type_id: "ent_051", maturity: "stable", since: "0.1.0" },
|
|
108
|
+
{ name: "ux_insight", type_id: "ent_052", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "insight" },
|
|
109
|
+
{ name: "design_question", type_id: "ent_053", maturity: "stable", since: "0.1.0" },
|
|
110
|
+
{ name: "how_might_we", type_id: "ent_333", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "design_question" },
|
|
111
|
+
{ name: "design_concept", type_id: "ent_054", maturity: "stable", since: "0.1.0" },
|
|
112
|
+
{ name: "prototype", type_id: "ent_055", maturity: "stable", since: "0.1.0" },
|
|
113
|
+
{ name: "design_component", type_id: "ent_056", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
114
|
+
{ name: "design_token", type_id: "ent_057", maturity: "stable", since: "0.1.0" },
|
|
115
|
+
{ name: "brand_identity", type_id: "ent_058", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
116
|
+
{ name: "brand_colour", type_id: "ent_059", maturity: "stable", since: "0.1.0" },
|
|
117
|
+
{ name: "brand_typography", type_id: "ent_060", maturity: "stable", since: "0.1.0" },
|
|
118
|
+
{ name: "brand_voice", type_id: "ent_061", maturity: "stable", since: "0.1.0" },
|
|
119
|
+
{ name: "wireframe", type_id: "ent_062", maturity: "stable", since: "0.1.0" },
|
|
120
|
+
{ name: "design_pattern", type_id: "ent_063", maturity: "stable", since: "0.1.0" },
|
|
121
|
+
{ name: "design_guideline", type_id: "ent_064", maturity: "stable", since: "0.1.0" },
|
|
122
|
+
{ name: "annotation", type_id: "ent_065", maturity: "stable", since: "0.1.0" },
|
|
123
|
+
{ name: "interaction_spec", type_id: "ent_066", maturity: "stable", since: "0.1.0" },
|
|
124
|
+
{ name: "design_system", type_id: "ent_067", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
125
|
+
{ name: "user_flow", type_id: "ent_068", maturity: "stable", since: "0.1.0" },
|
|
126
|
+
{ name: "screen", type_id: "ent_069", maturity: "stable", since: "0.1.0" },
|
|
127
|
+
{ name: "screen_state", type_id: "ent_070", maturity: "stable", since: "0.1.0" },
|
|
128
|
+
// surface (0.27.0): the place inside a screen. `screen` is route-level
|
|
129
|
+
// (route / viewport / access_level); `surface` is the contested slot within
|
|
130
|
+
// it, carrying its occupants and the rule that arbitrates between them.
|
|
131
|
+
// Enters `proposed` per the maturity rubric (precedent: planning_cycle 0.20.0).
|
|
132
|
+
{ name: "surface", type_id: "ent_359", maturity: "proposed", since: "0.27.0" },
|
|
133
|
+
{ name: "configuration_axis", type_id: "ent_360", maturity: "proposed", since: "0.30.0" },
|
|
134
|
+
{ name: "journey_phase", type_id: "ent_330", maturity: "proposed", since: "0.2.0" },
|
|
135
|
+
{ name: "journey_action", type_id: "ent_331", maturity: "proposed", since: "0.2.0" },
|
|
136
|
+
{ name: "design_decision", type_id: "ent_319", maturity: "deprecated", since: "0.2.0", deprecated_in: "0.2.0", replacement: "decision" },
|
|
137
|
+
// F7 (UPG-673): graduated proposed → stable at v0.9.x — proposed since 0.2.0,
|
|
138
|
+
// the brand-identity set (logo + imagery) is settled with no open rename.
|
|
139
|
+
{ name: "brand_logo", type_id: "ent_321", maturity: "stable", since: "0.2.0" },
|
|
140
|
+
{ name: "brand_imagery", type_id: "ent_322", maturity: "stable", since: "0.2.0" },
|
|
141
|
+
// ── Product Spec ──
|
|
142
|
+
{ name: "feature_area", type_id: "ent_314", maturity: "stable", since: "0.1.0" },
|
|
143
|
+
{ name: "feature", type_id: "ent_071", maturity: "stable", since: "0.1.0" },
|
|
144
|
+
{ name: "epic", type_id: "ent_072", maturity: "stable", since: "0.1.0" },
|
|
145
|
+
// `user_story` is the templated "As X, I want Y so Z" promise: a stable,
|
|
146
|
+
// lifecycle-free design artefact (UCS pattern P5). The v0.2.7 split EXTRACTED
|
|
147
|
+
// the engineering work into a separate `task` (the lifecycle-bearing work-unit,
|
|
148
|
+
// linked via `task_implements_user_story`); the split was right. But the
|
|
149
|
+
// surviving statement half was renamed to the coined `story_statement`, which
|
|
150
|
+
// raised the adoption barrier. "user story" is the universally-recognised
|
|
151
|
+
// industry term for exactly this artefact. v0.7.0 (UPG-571) re-canonicalises
|
|
152
|
+
// the statement under `user_story`; `story_statement` becomes a deprecated
|
|
153
|
+
// alias. `story_task` (the original work half) was already collapsed into
|
|
154
|
+
// canonical `task` at v0.4.0. So the canonical shape is: user_story (statement)
|
|
155
|
+
// + task (work), linked by `task_implements_user_story`.
|
|
156
|
+
//
|
|
157
|
+
// F7 (UPG-673) — DEFERRED, deliberately kept `proposed`. The audit flagged
|
|
158
|
+
// user_story as a stable-spine candidate, but the v0.7.0 re-canon contract
|
|
159
|
+
// (UPG-571) freezes maturity at `proposed` until the re-canonicalised name
|
|
160
|
+
// has soaked across a full migration window. `user-story-split.test.ts`
|
|
161
|
+
// ("user_story is canonical again (ent_073, proposed, not deprecated)")
|
|
162
|
+
// asserts `proposed` as the post-re-canon invariant. Graduating here would
|
|
163
|
+
// break that contract; promotion is a separate, ticketed decision once the
|
|
164
|
+
// story_statement → user_story migration has fully aged out.
|
|
165
|
+
{ name: "user_story", type_id: "ent_073", maturity: "stable", since: "0.1.0" },
|
|
166
|
+
{ name: "story_statement", type_id: "ent_342", maturity: "deprecated", since: "0.2.7", deprecated_in: "0.7.0", replacement: "user_story" },
|
|
167
|
+
{ name: "story_task", type_id: "ent_343", maturity: "deprecated", since: "0.2.7", deprecated_in: "0.4.0", replacement: "task" },
|
|
168
|
+
{ name: "acceptance_criterion", type_id: "ent_074", maturity: "stable", since: "0.1.0" },
|
|
169
|
+
{ name: "release", type_id: "ent_075", maturity: "stable", since: "0.1.0" },
|
|
170
|
+
{ name: "task", type_id: "ent_076", maturity: "stable", since: "0.1.0" },
|
|
171
|
+
{ name: "bug", type_id: "ent_077", maturity: "stable", since: "0.1.0" },
|
|
172
|
+
{ name: "roadmap", type_id: "ent_078", maturity: "stable", since: "0.1.0" },
|
|
173
|
+
{ name: "roadmap_item", type_id: "ent_079", maturity: "stable", since: "0.1.0" },
|
|
174
|
+
{ name: "theme", type_id: "ent_080", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.9.0", replacement: "roadmap_theme" },
|
|
175
|
+
{ name: "roadmap_theme", type_id: "ent_351", maturity: "stable", since: "0.1.0" },
|
|
176
|
+
{ name: "changelog", type_id: "ent_081", maturity: "stable", since: "0.1.0" },
|
|
177
|
+
// (0.20.0) The cadence axis: a named, dated interval that work flows through
|
|
178
|
+
// and which nests (a program-increment contains iterations; a cycle contains
|
|
179
|
+
// its cooldown). One self-nesting type with a `cadence_kind` discriminator
|
|
180
|
+
// spans sprint / iteration / quarter / PI / cooldown rather than minting a
|
|
181
|
+
// type per methodology. `portfolio_shared` because a coarse cycle is an
|
|
182
|
+
// org-shared interval an objective in a rollup graph and a story in a product
|
|
183
|
+
// graph both schedule into.
|
|
184
|
+
{ name: "planning_cycle", type_id: "ent_358", maturity: "proposed", since: "0.20.0", portfolio_shared: true },
|
|
185
|
+
// ── Engineering ──
|
|
186
|
+
{ name: "bounded_context", type_id: "ent_082", maturity: "stable", since: "0.1.0" },
|
|
187
|
+
{ name: "service", type_id: "ent_083", maturity: "stable", since: "0.1.0" },
|
|
188
|
+
{ name: "domain_event", type_id: "ent_084", maturity: "stable", since: "0.1.0" },
|
|
189
|
+
{ name: "api_contract", type_id: "ent_085", maturity: "stable", since: "0.1.0" },
|
|
190
|
+
{ name: "architecture_decision", type_id: "ent_086", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "decision" },
|
|
191
|
+
{ name: "technical_debt_item", type_id: "ent_087", maturity: "stable", since: "0.1.0" },
|
|
192
|
+
{ name: "feature_flag", type_id: "ent_088", maturity: "stable", since: "0.1.0" },
|
|
193
|
+
{ name: "deployment", type_id: "ent_089", maturity: "stable", since: "0.1.0" },
|
|
194
|
+
{ name: "aggregate", type_id: "ent_090", maturity: "stable", since: "0.1.0" },
|
|
195
|
+
{ name: "domain_entity", type_id: "ent_091", maturity: "stable", since: "0.1.0" },
|
|
196
|
+
{ name: "value_object", type_id: "ent_092", maturity: "stable", since: "0.1.0" },
|
|
197
|
+
{ name: "command", type_id: "ent_093", maturity: "stable", since: "0.1.0" },
|
|
198
|
+
{ name: "read_model", type_id: "ent_094", maturity: "stable", since: "0.1.0" },
|
|
199
|
+
{ name: "api_endpoint", type_id: "ent_095", maturity: "stable", since: "0.1.0" },
|
|
200
|
+
{ name: "database_schema", type_id: "ent_096", maturity: "stable", since: "0.1.0" },
|
|
201
|
+
{ name: "queue_topic", type_id: "ent_097", maturity: "stable", since: "0.1.0" },
|
|
202
|
+
{ name: "build_artifact", type_id: "ent_098", maturity: "stable", since: "0.1.0" },
|
|
203
|
+
{ name: "code_repository", type_id: "ent_099", maturity: "stable", since: "0.1.0" },
|
|
204
|
+
{ name: "library_dependency", type_id: "ent_100", maturity: "stable", since: "0.1.0" },
|
|
205
|
+
{ name: "integration_pattern", type_id: "ent_101", maturity: "stable", since: "0.1.0" },
|
|
206
|
+
{ name: "external_api", type_id: "ent_102", maturity: "stable", since: "0.1.0" },
|
|
207
|
+
{ name: "data_flow", type_id: "ent_103", maturity: "stable", since: "0.1.0" },
|
|
208
|
+
{ name: "investigation", type_id: "ent_315", maturity: "stable", since: "0.2.0" },
|
|
209
|
+
{ name: "root_cause", type_id: "ent_316", maturity: "stable", since: "0.2.0" },
|
|
210
|
+
{ name: "symptom", type_id: "ent_317", maturity: "stable", since: "0.2.0" },
|
|
211
|
+
{ name: "fix", type_id: "ent_318", maturity: "stable", since: "0.2.0" },
|
|
212
|
+
// ── Growth ──
|
|
213
|
+
{ name: "north_star_metric", type_id: "ent_104", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
214
|
+
{ name: "input_metric", type_id: "ent_105", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
215
|
+
{ name: "funnel", type_id: "ent_106", maturity: "stable", since: "0.1.0" },
|
|
216
|
+
{ name: "funnel_step", type_id: "ent_107", maturity: "stable", since: "0.1.0" },
|
|
217
|
+
{ name: "acquisition_channel", type_id: "ent_108", maturity: "stable", since: "0.1.0" },
|
|
218
|
+
{ name: "growth_campaign", type_id: "ent_109", maturity: "stable", since: "0.1.0" },
|
|
219
|
+
{ name: "campaign", type_id: "ent_337", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "growth_campaign" },
|
|
220
|
+
{ name: "cohort", type_id: "ent_110", maturity: "stable", since: "0.1.0" },
|
|
221
|
+
{ name: "behavioral_segment", type_id: "ent_111", maturity: "stable", since: "0.1.0" },
|
|
222
|
+
{ name: "segment", type_id: "ent_338", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "behavioral_segment" },
|
|
223
|
+
{ name: "growth_loop", type_id: "ent_112", maturity: "stable", since: "0.1.0" },
|
|
224
|
+
{ name: "growth_experiment", type_id: "ent_113", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "experiment" },
|
|
225
|
+
{ name: "variant", type_id: "ent_114", maturity: "stable", since: "0.1.0" },
|
|
226
|
+
{ name: "attribution_model", type_id: "ent_115", maturity: "stable", since: "0.1.0" },
|
|
227
|
+
// ── Business Model ──
|
|
228
|
+
{ name: "business_model", type_id: "ent_116", maturity: "stable", since: "0.1.0" },
|
|
229
|
+
{ name: "value_proposition", type_id: "ent_117", maturity: "stable", since: "0.1.0" },
|
|
230
|
+
{ name: "revenue_stream", type_id: "ent_118", maturity: "stable", since: "0.1.0" },
|
|
231
|
+
{ name: "pricing_tier", type_id: "ent_119", maturity: "stable", since: "0.1.0" },
|
|
232
|
+
{ name: "cost_structure", type_id: "ent_120", maturity: "stable", since: "0.1.0" },
|
|
233
|
+
{ name: "unit_economics", type_id: "ent_121", maturity: "stable", since: "0.1.0" },
|
|
234
|
+
{ name: "partnership", type_id: "ent_122", maturity: "stable", since: "0.1.0" },
|
|
235
|
+
{ name: "key_resource", type_id: "ent_123", maturity: "stable", since: "0.1.0" },
|
|
236
|
+
{ name: "key_activity", type_id: "ent_124", maturity: "stable", since: "0.1.0" },
|
|
237
|
+
{ name: "customer_segment_bm", type_id: "ent_125", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "market_segment" },
|
|
238
|
+
{ name: "channel_bm", type_id: "ent_126", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "distribution_channel" },
|
|
239
|
+
{ name: "target_customer_segment", type_id: "ent_329", maturity: "deprecated", since: "0.2.0", deprecated_in: "0.2.0", replacement: "market_segment" },
|
|
240
|
+
{ name: "customer_relationship", type_id: "ent_127", maturity: "stable", since: "0.1.0" },
|
|
241
|
+
{ name: "distribution_channel", type_id: "ent_128", maturity: "stable", since: "0.1.0" },
|
|
242
|
+
// ── Go-To-Market ──
|
|
243
|
+
{ name: "gtm_strategy", type_id: "ent_129", maturity: "stable", since: "0.1.0" },
|
|
244
|
+
{ name: "ideal_customer_profile", type_id: "ent_130", maturity: "stable", since: "0.1.0" },
|
|
245
|
+
{ name: "positioning", type_id: "ent_131", maturity: "stable", since: "0.1.0" },
|
|
246
|
+
{ name: "messaging", type_id: "ent_132", maturity: "stable", since: "0.1.0" },
|
|
247
|
+
{ name: "launch", type_id: "ent_133", maturity: "stable", since: "0.1.0" },
|
|
248
|
+
{ name: "content_strategy", type_id: "ent_134", maturity: "stable", since: "0.1.0" },
|
|
249
|
+
{ name: "sales_motion", type_id: "ent_135", maturity: "stable", since: "0.1.0" },
|
|
250
|
+
{ name: "competitive_battle_card", type_id: "ent_136", maturity: "stable", since: "0.1.0" },
|
|
251
|
+
{ name: "demand_gen_program", type_id: "ent_137", maturity: "stable", since: "0.1.0" },
|
|
252
|
+
{ name: "territory", type_id: "ent_138", maturity: "stable", since: "0.1.0" },
|
|
253
|
+
{ name: "objection", type_id: "ent_139", maturity: "stable", since: "0.1.0" },
|
|
254
|
+
{ name: "rebuttal", type_id: "ent_140", maturity: "stable", since: "0.1.0" },
|
|
255
|
+
{ name: "proof_point", type_id: "ent_141", maturity: "stable", since: "0.1.0" },
|
|
256
|
+
// ── Team & Organisation ──
|
|
257
|
+
{ name: "team", type_id: "ent_142", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
258
|
+
{ name: "role", type_id: "ent_143", maturity: "stable", since: "0.1.0" },
|
|
259
|
+
{ name: "stakeholder", type_id: "ent_144", maturity: "stable", since: "0.1.0" },
|
|
260
|
+
{ name: "person", type_id: "ent_349", maturity: "stable", since: "0.5.0" },
|
|
261
|
+
{ name: "product_decision", type_id: "ent_145", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "decision" },
|
|
262
|
+
{ name: "team_okr", type_id: "ent_146", maturity: "stable", since: "0.1.0" },
|
|
263
|
+
{ name: "retrospective", type_id: "ent_147", maturity: "stable", since: "0.1.0" },
|
|
264
|
+
{ name: "dependency", type_id: "ent_148", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
265
|
+
{ name: "department", type_id: "ent_149", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
266
|
+
{ name: "skill", type_id: "ent_150", maturity: "stable", since: "0.1.0" },
|
|
267
|
+
{ name: "ceremony", type_id: "ent_151", maturity: "stable", since: "0.1.0" },
|
|
268
|
+
{ name: "capacity_plan", type_id: "ent_152", maturity: "stable", since: "0.1.0" },
|
|
269
|
+
// ── Data & Analytics ──
|
|
270
|
+
{ name: "data_source", type_id: "ent_153", maturity: "stable", since: "0.1.0" },
|
|
271
|
+
{ name: "metric_definition", type_id: "ent_154", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
272
|
+
{ name: "event_schema", type_id: "ent_155", maturity: "stable", since: "0.1.0" },
|
|
273
|
+
{ name: "dashboard", type_id: "ent_156", maturity: "stable", since: "0.1.0" },
|
|
274
|
+
{ name: "ab_test", type_id: "ent_157", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "experiment" },
|
|
275
|
+
{ name: "data_model", type_id: "ent_158", maturity: "stable", since: "0.1.0" },
|
|
276
|
+
{ name: "data_quality_rule", type_id: "ent_159", maturity: "stable", since: "0.1.0" },
|
|
277
|
+
{ name: "data_product", type_id: "ent_160", maturity: "stable", since: "0.1.0" },
|
|
278
|
+
{ name: "data_pipeline", type_id: "ent_161", maturity: "stable", since: "0.1.0" },
|
|
279
|
+
{ name: "data_lineage", type_id: "ent_162", maturity: "stable", since: "0.1.0" },
|
|
280
|
+
{ name: "glossary_term", type_id: "ent_163", maturity: "stable", since: "0.1.0" },
|
|
281
|
+
{ name: "data_domain", type_id: "ent_164", maturity: "stable", since: "0.1.0" },
|
|
282
|
+
{ name: "report", type_id: "ent_165", maturity: "stable", since: "0.1.0" },
|
|
283
|
+
// ── Content & Knowledge ──
|
|
284
|
+
{ name: "content_piece", type_id: "ent_166", maturity: "stable", since: "0.1.0" },
|
|
285
|
+
{ name: "knowledge_base_article", type_id: "ent_167", maturity: "stable", since: "0.1.0" },
|
|
286
|
+
{ name: "brand_asset", type_id: "ent_168", maturity: "stable", since: "0.1.0" },
|
|
287
|
+
{ name: "internal_doc", type_id: "ent_169", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "document" },
|
|
288
|
+
{ name: "prompt_template", type_id: "ent_170", maturity: "stable", since: "0.1.0" },
|
|
289
|
+
{ name: "content_calendar", type_id: "ent_171", maturity: "stable", since: "0.1.0" },
|
|
290
|
+
{ name: "content_theme", type_id: "ent_172", maturity: "stable", since: "0.1.0" },
|
|
291
|
+
{ name: "documentation_template", type_id: "ent_173", maturity: "stable", since: "0.1.0" },
|
|
292
|
+
{ name: "document", type_id: "ent_320", maturity: "stable", since: "0.2.0" },
|
|
293
|
+
// ── Legal & Compliance ──
|
|
294
|
+
{ name: "compliance_requirement", type_id: "ent_174", maturity: "stable", since: "0.1.0" },
|
|
295
|
+
{ name: "risk", type_id: "ent_175", maturity: "stable", since: "0.1.0" },
|
|
296
|
+
{ name: "data_contract", type_id: "ent_176", maturity: "stable", since: "0.1.0" },
|
|
297
|
+
{ name: "legal_entity", type_id: "ent_177", maturity: "stable", since: "0.1.0" },
|
|
298
|
+
{ name: "ip_asset", type_id: "ent_178", maturity: "stable", since: "0.1.0" },
|
|
299
|
+
{ name: "audit_log_policy", type_id: "ent_179", maturity: "stable", since: "0.1.0" },
|
|
300
|
+
{ name: "contract", type_id: "ent_180", maturity: "stable", since: "0.1.0" },
|
|
301
|
+
{ name: "contract_clause", type_id: "ent_181", maturity: "stable", since: "0.1.0" },
|
|
302
|
+
{ name: "privacy_policy", type_id: "ent_182", maturity: "stable", since: "0.1.0" },
|
|
303
|
+
{ name: "compliance_framework", type_id: "ent_183", maturity: "stable", since: "0.1.0" },
|
|
304
|
+
{ name: "security_audit", type_id: "ent_184", maturity: "stable", since: "0.1.0" },
|
|
305
|
+
// ── DevOps & Platform ──
|
|
306
|
+
{ name: "service_level_indicator", type_id: "ent_185", maturity: "stable", since: "0.1.0" },
|
|
307
|
+
{ name: "sli", type_id: "ent_334", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "service_level_indicator" },
|
|
308
|
+
{ name: "service_level_objective", type_id: "ent_186", maturity: "stable", since: "0.1.0" },
|
|
309
|
+
{ name: "slo", type_id: "ent_335", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "service_level_objective" },
|
|
310
|
+
{ name: "error_budget", type_id: "ent_187", maturity: "stable", since: "0.1.0" },
|
|
311
|
+
{ name: "incident", type_id: "ent_188", maturity: "stable", since: "0.1.0" },
|
|
312
|
+
{ name: "postmortem", type_id: "ent_189", maturity: "stable", since: "0.1.0" },
|
|
313
|
+
{ name: "runbook", type_id: "ent_190", maturity: "stable", since: "0.1.0" },
|
|
314
|
+
{ name: "monitor", type_id: "ent_191", maturity: "stable", since: "0.1.0" },
|
|
315
|
+
{ name: "alert_rule", type_id: "ent_192", maturity: "stable", since: "0.1.0" },
|
|
316
|
+
{ name: "ci_pipeline", type_id: "ent_193", maturity: "stable", since: "0.1.0" },
|
|
317
|
+
{ name: "release_strategy", type_id: "ent_194", maturity: "stable", since: "0.1.0" },
|
|
318
|
+
{ name: "on_call_rotation", type_id: "ent_195", maturity: "stable", since: "0.1.0" },
|
|
319
|
+
{ name: "infrastructure_component", type_id: "ent_196", maturity: "stable", since: "0.1.0" },
|
|
320
|
+
// ── Security ──
|
|
321
|
+
{ name: "threat_model", type_id: "ent_197", maturity: "stable", since: "0.1.0" },
|
|
322
|
+
{ name: "threat", type_id: "ent_198", maturity: "stable", since: "0.1.0" },
|
|
323
|
+
{ name: "vulnerability", type_id: "ent_199", maturity: "stable", since: "0.1.0" },
|
|
324
|
+
{ name: "security_control", type_id: "ent_200", maturity: "stable", since: "0.1.0" },
|
|
325
|
+
{ name: "security_policy", type_id: "ent_201", maturity: "stable", since: "0.1.0" },
|
|
326
|
+
{ name: "security_incident", type_id: "ent_202", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "incident" },
|
|
327
|
+
{ name: "penetration_test", type_id: "ent_203", maturity: "stable", since: "0.1.0" },
|
|
328
|
+
{ name: "security_review", type_id: "ent_204", maturity: "stable", since: "0.1.0" },
|
|
329
|
+
{ name: "data_classification", type_id: "ent_205", maturity: "stable", since: "0.1.0" },
|
|
330
|
+
{ name: "access_policy", type_id: "ent_206", maturity: "stable", since: "0.1.0" },
|
|
331
|
+
// ── Accessibility ──
|
|
332
|
+
{ name: "a11y_standard", type_id: "ent_207", maturity: "stable", since: "0.1.0" },
|
|
333
|
+
{ name: "a11y_guideline", type_id: "ent_208", maturity: "stable", since: "0.1.0" },
|
|
334
|
+
{ name: "a11y_audit", type_id: "ent_209", maturity: "stable", since: "0.1.0" },
|
|
335
|
+
{ name: "a11y_issue", type_id: "ent_210", maturity: "stable", since: "0.1.0" },
|
|
336
|
+
{ name: "a11y_annotation", type_id: "ent_211", maturity: "stable", since: "0.1.0" },
|
|
337
|
+
// ── QA & Testing ──
|
|
338
|
+
{ name: "test_suite", type_id: "ent_212", maturity: "stable", since: "0.1.0" },
|
|
339
|
+
{ name: "test_case", type_id: "ent_213", maturity: "stable", since: "0.1.0" },
|
|
340
|
+
{ name: "qa_session", type_id: "ent_214", maturity: "stable", since: "0.1.0" },
|
|
341
|
+
{ name: "regression_test", type_id: "ent_215", maturity: "stable", since: "0.1.0" },
|
|
342
|
+
{ name: "test_coverage_report", type_id: "ent_216", maturity: "stable", since: "0.1.0" },
|
|
343
|
+
{ name: "test_environment", type_id: "ent_217", maturity: "stable", since: "0.1.0" },
|
|
344
|
+
{ name: "defect_report", type_id: "ent_218", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "support_ticket" },
|
|
345
|
+
{ name: "test_result", type_id: "ent_327", maturity: "proposed", since: "0.2.0" },
|
|
346
|
+
// ── Feedback & Voice of Customer ──
|
|
347
|
+
{ name: "feedback_program", type_id: "ent_219", maturity: "stable", since: "0.1.0" },
|
|
348
|
+
{ name: "feature_request", type_id: "ent_220", maturity: "stable", since: "0.1.0" },
|
|
349
|
+
{ name: "feedback_vote", type_id: "ent_221", maturity: "stable", since: "0.1.0" },
|
|
350
|
+
{ name: "nps_campaign", type_id: "ent_222", maturity: "stable", since: "0.1.0" },
|
|
351
|
+
{ name: "user_advisory_board", type_id: "ent_223", maturity: "stable", since: "0.1.0" },
|
|
352
|
+
{ name: "beta_program", type_id: "ent_224", maturity: "stable", since: "0.1.0" },
|
|
353
|
+
{ name: "feedback_theme", type_id: "ent_225", maturity: "stable", since: "0.1.0" },
|
|
354
|
+
// ── Pricing & Packaging ──
|
|
355
|
+
{ name: "pricing_strategy", type_id: "ent_226", maturity: "stable", since: "0.1.0" },
|
|
356
|
+
{ name: "pricing_experiment", type_id: "ent_227", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "experiment" },
|
|
357
|
+
{ name: "package", type_id: "ent_228", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "pricing_tier" },
|
|
358
|
+
{ name: "discount_strategy", type_id: "ent_229", maturity: "stable", since: "0.1.0" },
|
|
359
|
+
{ name: "trial_config", type_id: "ent_230", maturity: "stable", since: "0.1.0" },
|
|
360
|
+
{ name: "paywall", type_id: "ent_231", maturity: "stable", since: "0.1.0" },
|
|
361
|
+
// ── AI/ML Operations ──
|
|
362
|
+
{ name: "ai_model", type_id: "ent_232", maturity: "stable", since: "0.1.0" },
|
|
363
|
+
{ name: "prompt_version", type_id: "ent_233", maturity: "stable", since: "0.1.0" },
|
|
364
|
+
{ name: "eval_benchmark", type_id: "ent_234", maturity: "stable", since: "0.1.0" },
|
|
365
|
+
{ name: "eval_run", type_id: "ent_235", maturity: "stable", since: "0.1.0" },
|
|
366
|
+
{ name: "ai_cost_tracker", type_id: "ent_236", maturity: "stable", since: "0.1.0" },
|
|
367
|
+
{ name: "hallucination_report", type_id: "ent_237", maturity: "stable", since: "0.1.0" },
|
|
368
|
+
{ name: "ai_guardrail", type_id: "ent_238", maturity: "stable", since: "0.1.0" },
|
|
369
|
+
{ name: "model_comparison", type_id: "ent_239", maturity: "stable", since: "0.1.0" },
|
|
370
|
+
{ name: "ai_experiment", type_id: "ent_323", maturity: "proposed", since: "0.2.0" },
|
|
371
|
+
{ name: "ai_dataset", type_id: "ent_324", maturity: "proposed", since: "0.2.0" },
|
|
372
|
+
{ name: "ai_trace", type_id: "ent_325", maturity: "proposed", since: "0.2.0" },
|
|
373
|
+
// ── Agentic Workflows ──
|
|
374
|
+
{ name: "workflow_template", type_id: "ent_240", maturity: "stable", since: "0.1.0" },
|
|
375
|
+
{ name: "workflow_run", type_id: "ent_241", maturity: "stable", since: "0.1.0" },
|
|
376
|
+
{ name: "agent_definition", type_id: "ent_242", maturity: "stable", since: "0.1.0" },
|
|
377
|
+
{ name: "agent_session", type_id: "ent_243", maturity: "stable", since: "0.1.0" },
|
|
378
|
+
{ name: "review_gate", type_id: "ent_244", maturity: "stable", since: "0.1.0" },
|
|
379
|
+
{ name: "approval_record", type_id: "ent_245", maturity: "stable", since: "0.1.0" },
|
|
380
|
+
{ name: "agent_skill", type_id: "ent_246", maturity: "stable", since: "0.1.0" },
|
|
381
|
+
{ name: "agent_hook", type_id: "ent_247", maturity: "stable", since: "0.1.0" },
|
|
382
|
+
{ name: "workflow_artifact", type_id: "ent_248", maturity: "stable", since: "0.1.0" },
|
|
383
|
+
{ name: "agent_task", type_id: "ent_326", maturity: "proposed", since: "0.2.0" },
|
|
384
|
+
// ── Portfolio ──
|
|
385
|
+
{ name: "organization", type_id: "ent_249", maturity: "stable", since: "0.1.0" },
|
|
386
|
+
{ name: "portfolio", type_id: "ent_250", maturity: "stable", since: "0.1.0" },
|
|
387
|
+
{ name: "product_area", type_id: "ent_251", maturity: "stable", since: "0.1.0" },
|
|
388
|
+
// ── Sales & Revenue ──
|
|
389
|
+
{ name: "account", type_id: "ent_252", maturity: "stable", since: "0.1.0" },
|
|
390
|
+
{ name: "contact", type_id: "ent_253", maturity: "stable", since: "0.1.0" },
|
|
391
|
+
{ name: "lead", type_id: "ent_254", maturity: "stable", since: "0.1.0" },
|
|
392
|
+
{ name: "deal", type_id: "ent_255", maturity: "stable", since: "0.1.0" },
|
|
393
|
+
{ name: "pipeline_sales", type_id: "ent_256", maturity: "stable", since: "0.1.0" },
|
|
394
|
+
{ name: "pipeline_stage", type_id: "ent_257", maturity: "stable", since: "0.1.0" },
|
|
395
|
+
{ name: "quote_document", type_id: "ent_258", maturity: "stable", since: "0.1.0" },
|
|
396
|
+
{ name: "subscription", type_id: "ent_259", maturity: "stable", since: "0.1.0" },
|
|
397
|
+
{ name: "invoice", type_id: "ent_260", maturity: "stable", since: "0.1.0" },
|
|
398
|
+
{ name: "forecast", type_id: "ent_261", maturity: "stable", since: "0.1.0" },
|
|
399
|
+
// ── Program Management ──
|
|
400
|
+
{ name: "program", type_id: "ent_262", maturity: "stable", since: "0.1.0" },
|
|
401
|
+
{ name: "project", type_id: "ent_263", maturity: "stable", since: "0.1.0" },
|
|
402
|
+
// `portfolio_shared` (0.25.1 feedback): a milestone is often a cross-team gate,
|
|
403
|
+
// not one project's checkpoint — an org-wide "Open Beta" that several products'
|
|
404
|
+
// projects must all satisfy. Shared tier lets `project_targets_milestone` (and
|
|
405
|
+
// the other milestone edges) pass the cross-scope gate as `provisional`, same
|
|
406
|
+
// as `project_implements_initiative`. Precedent: `planning_cycle` (0.20.0).
|
|
407
|
+
{ name: "milestone", type_id: "ent_264", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
408
|
+
{ name: "risk_register", type_id: "ent_265", maturity: "stable", since: "0.1.0" },
|
|
409
|
+
{ name: "risk_item", type_id: "ent_266", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "risk" },
|
|
410
|
+
{ name: "change_request", type_id: "ent_267", maturity: "stable", since: "0.1.0" },
|
|
411
|
+
{ name: "deliverable", type_id: "ent_268", maturity: "stable", since: "0.1.0" },
|
|
412
|
+
{ name: "resource_allocation", type_id: "ent_269", maturity: "stable", since: "0.1.0" },
|
|
413
|
+
{ name: "status_report", type_id: "ent_270", maturity: "stable", since: "0.1.0" },
|
|
414
|
+
// ── Marketing Operations ──
|
|
415
|
+
{ name: "marketing_strategy", type_id: "ent_271", maturity: "stable", since: "0.1.0" },
|
|
416
|
+
{ name: "marketing_channel", type_id: "ent_272", maturity: "stable", since: "0.1.0" },
|
|
417
|
+
{ name: "marketing_campaign_plan", type_id: "ent_273", maturity: "stable", since: "0.1.0" },
|
|
418
|
+
{ name: "email_sequence", type_id: "ent_274", maturity: "stable", since: "0.1.0" },
|
|
419
|
+
{ name: "social_post", type_id: "ent_275", maturity: "stable", since: "0.1.0" },
|
|
420
|
+
{ name: "seo_keyword", type_id: "ent_276", maturity: "stable", since: "0.1.0" },
|
|
421
|
+
{ name: "ad_creative", type_id: "ent_277", maturity: "stable", since: "0.1.0" },
|
|
422
|
+
{ name: "press_release", type_id: "ent_278", maturity: "stable", since: "0.1.0" },
|
|
423
|
+
{ name: "event", type_id: "ent_279", maturity: "stable", since: "0.1.0" },
|
|
424
|
+
{ name: "community_initiative", type_id: "ent_280", maturity: "stable", since: "0.1.0" },
|
|
425
|
+
// ── Operations & Customer Success ──
|
|
426
|
+
{ name: "support_ticket", type_id: "ent_281", maturity: "stable", since: "0.1.0" },
|
|
427
|
+
{ name: "customer_feedback", type_id: "ent_282", maturity: "stable", since: "0.1.0" },
|
|
428
|
+
{ name: "churn_reason", type_id: "ent_283", maturity: "stable", since: "0.1.0" },
|
|
429
|
+
{ name: "onboarding_flow", type_id: "ent_284", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "user_flow" },
|
|
430
|
+
{ name: "customer_health_score", type_id: "ent_285", maturity: "stable", since: "0.1.0" },
|
|
431
|
+
{ name: "playbook", type_id: "ent_286", maturity: "stable", since: "0.1.0" },
|
|
432
|
+
{ name: "service_level_agreement", type_id: "ent_287", maturity: "stable", since: "0.1.0" },
|
|
433
|
+
{ name: "sla", type_id: "ent_336", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "service_level_agreement" },
|
|
434
|
+
{ name: "customer_journey_stage", type_id: "ent_288", maturity: "stable", since: "0.1.0" },
|
|
435
|
+
{ name: "touchpoint", type_id: "ent_289", maturity: "stable", since: "0.1.0" },
|
|
436
|
+
{ name: "success_milestone", type_id: "ent_290", maturity: "stable", since: "0.1.0" },
|
|
437
|
+
{ name: "service_blueprint", type_id: "ent_291", maturity: "stable", since: "0.1.0" },
|
|
438
|
+
{ name: "nps_score", type_id: "ent_292", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "nps_campaign" },
|
|
439
|
+
// ── Localisation & i18n ──
|
|
440
|
+
{ name: "locale", type_id: "ent_293", maturity: "stable", since: "0.1.0" },
|
|
441
|
+
{ name: "translation_key", type_id: "ent_294", maturity: "stable", since: "0.1.0" },
|
|
442
|
+
{ name: "translation_bundle", type_id: "ent_295", maturity: "stable", since: "0.1.0" },
|
|
443
|
+
{ name: "locale_config", type_id: "ent_296", maturity: "stable", since: "0.1.0" },
|
|
444
|
+
{ name: "cultural_adaptation", type_id: "ent_297", maturity: "stable", since: "0.1.0" },
|
|
445
|
+
{ name: "regional_pricing", type_id: "ent_298", maturity: "stable", since: "0.1.0" },
|
|
446
|
+
// ── Customer Education ──
|
|
447
|
+
{ name: "education_program", type_id: "ent_299", maturity: "stable", since: "0.1.0" },
|
|
448
|
+
{ name: "tutorial", type_id: "ent_300", maturity: "stable", since: "0.1.0" },
|
|
449
|
+
{ name: "walkthrough", type_id: "ent_301", maturity: "stable", since: "0.1.0" },
|
|
450
|
+
{ name: "webinar", type_id: "ent_302", maturity: "stable", since: "0.1.0" },
|
|
451
|
+
{ name: "certification", type_id: "ent_303", maturity: "stable", since: "0.1.0" },
|
|
452
|
+
{ name: "help_video", type_id: "ent_304", maturity: "stable", since: "0.1.0" },
|
|
453
|
+
{ name: "learning_path", type_id: "ent_305", maturity: "stable", since: "0.1.0" },
|
|
454
|
+
// ── Partners & Ecosystem ──
|
|
455
|
+
{ name: "partner_program", type_id: "ent_306", maturity: "stable", since: "0.1.0" },
|
|
456
|
+
{ name: "partner_tier", type_id: "ent_307", maturity: "stable", since: "0.1.0" },
|
|
457
|
+
{ name: "api_ecosystem", type_id: "ent_308", maturity: "stable", since: "0.1.0" },
|
|
458
|
+
{ name: "marketplace_listing", type_id: "ent_309", maturity: "stable", since: "0.1.0" },
|
|
459
|
+
{ name: "developer_portal", type_id: "ent_310", maturity: "stable", since: "0.1.0" },
|
|
460
|
+
{ name: "integration_partner", type_id: "ent_311", maturity: "stable", since: "0.1.0" },
|
|
461
|
+
{ name: "partner_revenue_share", type_id: "ent_312", maturity: "stable", since: "0.1.0" },
|
|
462
|
+
// ── Workspace ──
|
|
463
|
+
{ name: "workspace", type_id: "ent_328", maturity: "proposed", since: "0.2.0" },
|
|
464
|
+
{ name: "framework_exercise", type_id: "ent_350", maturity: "proposed", since: "0.8.4" },
|
|
465
|
+
{ name: "composition", type_id: "ent_361", maturity: "proposed", since: "0.31.0" },
|
|
466
|
+
// A dated, hashed rendition of a node that is already in the graph. Enters
|
|
467
|
+
// `proposed` per the maturity rubric (precedent: composition 0.31.0).
|
|
468
|
+
{ name: "capture", type_id: "ent_362", maturity: "proposed", since: "0.32.0" }
|
|
469
|
+
];
|
|
470
|
+
var DEFERRED_PROPOSED_BY_CONTRACT = {
|
|
471
|
+
// user_story (UPG-571) and experiment_run (UPG-664) graduated to stable in
|
|
472
|
+
// 0.12.6 — Captain lifted both freezes ("we are using them"). Their contracts
|
|
473
|
+
// are settled; they are now stable, not deferred.
|
|
474
|
+
ai_experiment: "UPG-665: AI prompt/model restructure (open ADR).",
|
|
475
|
+
ai_dataset: "UPG-665: AI prompt/model restructure (open ADR).",
|
|
476
|
+
ai_trace: "UPG-665: AI prompt/model restructure (open ADR)."
|
|
477
|
+
};
|
|
478
|
+
var UPG_ENTITY_META_BY_NAME = new Map(
|
|
479
|
+
UPG_ENTITY_META.map((m) => [m.name, m])
|
|
480
|
+
);
|
|
481
|
+
var UPG_ENTITY_META_BY_ID = new Map(
|
|
482
|
+
UPG_ENTITY_META.map((m) => [m.type_id, m])
|
|
483
|
+
);
|
|
484
|
+
var UPG_ACTIVE_TYPES = UPG_ENTITY_META.filter((m) => m.maturity === "stable" || m.maturity === "proposed").map((m) => m.name);
|
|
485
|
+
var UPG_DEPRECATED_TYPES = UPG_ENTITY_META.filter((m) => m.maturity === "deprecated").map((m) => m.name);
|
|
486
|
+
var UPG_PORTFOLIO_SHARED_TYPES = UPG_ENTITY_META.filter((m) => m.portfolio_shared === true).map((m) => m.name);
|
|
487
|
+
function isPortfolioSharedType(name) {
|
|
488
|
+
return UPG_ENTITY_META_BY_NAME.get(name)?.portfolio_shared === true;
|
|
489
|
+
}
|
|
490
|
+
function isDeprecatedType(name) {
|
|
491
|
+
const meta = UPG_ENTITY_META_BY_NAME.get(name);
|
|
492
|
+
return meta?.maturity === "deprecated";
|
|
493
|
+
}
|
|
494
|
+
function getReplacementType(name) {
|
|
495
|
+
const meta = UPG_ENTITY_META_BY_NAME.get(name);
|
|
496
|
+
return meta?.replacement;
|
|
497
|
+
}
|
|
498
|
+
function getTypeId(name) {
|
|
499
|
+
return UPG_ENTITY_META_BY_NAME.get(name)?.type_id;
|
|
500
|
+
}
|
|
501
|
+
function getTypeName(typeId) {
|
|
502
|
+
return UPG_ENTITY_META_BY_ID.get(typeId)?.name;
|
|
503
|
+
}
|
|
504
|
+
|
|
1
505
|
// src/registry/domains.ts
|
|
2
506
|
var UPG_DOMAINS = [
|
|
3
507
|
{
|
|
@@ -509,516 +1013,23 @@ function getTypes() {
|
|
|
509
1013
|
return UPG_DOMAINS.flatMap((d) => [...d.types]);
|
|
510
1014
|
}
|
|
511
1015
|
function getDomainForType(entityType) {
|
|
512
|
-
|
|
1016
|
+
const direct = UPG_DOMAINS.find((d) => d.types.includes(entityType));
|
|
1017
|
+
if (direct) return direct;
|
|
1018
|
+
let name = entityType;
|
|
1019
|
+
for (let hop = 0; hop < 3; hop++) {
|
|
1020
|
+
if (!isDeprecatedType(name)) return void 0;
|
|
1021
|
+
const replacement = getReplacementType(name);
|
|
1022
|
+
if (!replacement) return void 0;
|
|
1023
|
+
const viaReplacement = UPG_DOMAINS.find((d) => d.types.includes(replacement));
|
|
1024
|
+
if (viaReplacement) return viaReplacement;
|
|
1025
|
+
name = replacement;
|
|
1026
|
+
}
|
|
1027
|
+
return void 0;
|
|
513
1028
|
}
|
|
514
1029
|
function getDomainIdForType(entityType) {
|
|
515
1030
|
return UPG_ENTITY_TO_DOMAIN[entityType];
|
|
516
1031
|
}
|
|
517
1032
|
|
|
518
|
-
// src/registry/entity-meta.ts
|
|
519
|
-
var UPG_ENTITY_META = [
|
|
520
|
-
// Foundations (0.9.12): shared specifications + the primitives they define.
|
|
521
|
-
{ name: "specification", type_id: "ent_352", maturity: "proposed", since: "0.9.12", portfolio_shared: true },
|
|
522
|
-
{ name: "primitive", type_id: "ent_353", maturity: "proposed", since: "0.9.12", portfolio_shared: true },
|
|
523
|
-
{ name: "operating_lifecycle", type_id: "ent_355", maturity: "proposed", since: "0.11.6", portfolio_shared: true },
|
|
524
|
-
{ name: "operating_stage", type_id: "ent_356", maturity: "proposed", since: "0.11.6", portfolio_shared: true },
|
|
525
|
-
// ── Strategic ──
|
|
526
|
-
{ name: "product", type_id: "ent_001", maturity: "stable", since: "0.1.0" },
|
|
527
|
-
{ name: "outcome", type_id: "ent_002", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
528
|
-
{ name: "kpi", type_id: "ent_003", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
529
|
-
{ name: "objective", type_id: "ent_004", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
530
|
-
{ name: "key_result", type_id: "ent_005", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
531
|
-
{ name: "metric", type_id: "ent_006", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
532
|
-
// F7 (UPG-673): graduated proposed → stable at v0.9.x — proposed since 0.2.2,
|
|
533
|
-
// the metric-quality assessment artefact is settled with no open restructure.
|
|
534
|
-
{ name: "metric_quality_assessment", type_id: "ent_339", maturity: "stable", since: "0.2.2" },
|
|
535
|
-
{ name: "vision", type_id: "ent_007", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
536
|
-
{ name: "mission", type_id: "ent_008", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
537
|
-
{ name: "strategic_theme", type_id: "ent_009", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
538
|
-
{ name: "initiative", type_id: "ent_010", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
539
|
-
{ name: "capability", type_id: "ent_011", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
540
|
-
{ name: "value_stream", type_id: "ent_012", maturity: "stable", since: "0.1.0" },
|
|
541
|
-
{ name: "strategic_pillar", type_id: "ent_013", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
542
|
-
{ name: "assumption", type_id: "ent_014", maturity: "stable", since: "0.1.0" },
|
|
543
|
-
{ name: "decision", type_id: "ent_015", maturity: "stable", since: "0.1.0" },
|
|
544
|
-
{ name: "constraint", type_id: "ent_348", maturity: "stable", since: "0.4.3" },
|
|
545
|
-
// (0.17.4) Strategy-domain sibling of research_question / design_question,
|
|
546
|
-
// completing the domain-question triad. An open coordination/ownership question
|
|
547
|
-
// a plan is exposed to (distinct from `assumption`, which the plan is built on).
|
|
548
|
-
{ name: "strategic_question", type_id: "ent_357", maturity: "proposed", since: "0.17.4" },
|
|
549
|
-
// ── User ──
|
|
550
|
-
{ name: "persona", type_id: "ent_016", maturity: "stable", since: "0.1.0" },
|
|
551
|
-
{ name: "job", type_id: "ent_017", maturity: "stable", since: "0.1.0" },
|
|
552
|
-
{ name: "jtbd", type_id: "ent_332", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "job" },
|
|
553
|
-
{ name: "pain_point", type_id: "ent_018", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "need" },
|
|
554
|
-
{ name: "desired_outcome", type_id: "ent_019", maturity: "stable", since: "0.1.0" },
|
|
555
|
-
{ name: "job_step", type_id: "ent_020", maturity: "stable", since: "0.1.0" },
|
|
556
|
-
{ name: "user_need", type_id: "ent_021", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "need" },
|
|
557
|
-
{ name: "need", type_id: "ent_313", maturity: "stable", since: "0.1.0" },
|
|
558
|
-
{ name: "switching_cost", type_id: "ent_022", maturity: "stable", since: "0.1.0" },
|
|
559
|
-
// ── Discovery ──
|
|
560
|
-
{ name: "opportunity", type_id: "ent_023", maturity: "stable", since: "0.1.0", default_frameworks: ["opportunity-sizing", "rice-scoring"] },
|
|
561
|
-
{ name: "solution", type_id: "ent_024", maturity: "stable", since: "0.1.0", default_frameworks: ["rice-scoring"] },
|
|
562
|
-
{ name: "feasibility_study", type_id: "ent_025", maturity: "stable", since: "0.1.0" },
|
|
563
|
-
{ name: "design_sprint", type_id: "ent_026", maturity: "stable", since: "0.1.0" },
|
|
564
|
-
// ── Validation ──
|
|
565
|
-
// (since v0.4.0) `hypothesis` re-promoted to canonical-stable. The
|
|
566
|
-
// v0.2.8 rename to `hypothesis_claim` was over-split: "claim" is implied
|
|
567
|
-
// by being a hypothesis. Canonical name reverts; HypothesisClaimProperties
|
|
568
|
-
// renamed to HypothesisProperties. `hypothesis_claim` is now deprecated
|
|
569
|
-
// (→ `hypothesis`). `hypothesis_evidence` deprecated (→ `evidence`): the
|
|
570
|
-
// dual evidence_type enum smell resolved by enriching canonical `evidence`
|
|
571
|
-
// with evidence_rigor + evidence_source axes. Edge pattern switches to
|
|
572
|
-
// `hypothesis_has_evidence` (neutral, direction on node).
|
|
573
|
-
{ name: "hypothesis", type_id: "ent_027", maturity: "stable", since: "0.1.0" },
|
|
574
|
-
{ name: "hypothesis_claim", type_id: "ent_344", maturity: "deprecated", since: "0.2.8", deprecated_in: "0.4.0", replacement: "hypothesis" },
|
|
575
|
-
{ name: "hypothesis_evidence", type_id: "ent_345", maturity: "deprecated", since: "0.2.8", deprecated_in: "0.4.0", replacement: "evidence" },
|
|
576
|
-
// `experiment` is canonical (UPG-664). It has its own property schema
|
|
577
|
-
// (method, start_date, end_date, sample_size, expected_lift) and is the
|
|
578
|
-
// canonical unit of a structured test. The validation flow is
|
|
579
|
-
// `hypothesis → experiment_plan → experiment → experiment_run`: the plan is
|
|
580
|
-
// the validation design, the experiment is the structured test, the run is
|
|
581
|
-
// the optional multi-run/replication child.
|
|
582
|
-
{ name: "experiment", type_id: "ent_028", maturity: "stable", since: "0.1.0" },
|
|
583
|
-
// experiment_plan graduated proposed → stable (UPG-664). It is the canonical
|
|
584
|
-
// validation PLAN type — it absorbed `test_plan`'s planning properties
|
|
585
|
-
// (method / success_criteria / sample_size) when `test_plan` re-homed to the
|
|
586
|
-
// QA/testing domain (UPG-678).
|
|
587
|
-
{ name: "experiment_plan", type_id: "ent_340", maturity: "stable", since: "0.2.6" },
|
|
588
|
-
{ name: "experiment_run", type_id: "ent_341", maturity: "stable", since: "0.2.6" },
|
|
589
|
-
{ name: "learning", type_id: "ent_029", maturity: "stable", since: "0.1.0" },
|
|
590
|
-
// test_plan re-homed validation → testing/QA (UPG-678). It is the QA
|
|
591
|
-
// verification-procedure plan (test scope / environments / pass criteria);
|
|
592
|
-
// its former validation-planning role is carried by experiment_plan.
|
|
593
|
-
{ name: "test_plan", type_id: "ent_030", maturity: "stable", since: "0.1.0" },
|
|
594
|
-
{ name: "evidence", type_id: "ent_031", maturity: "stable", since: "0.1.0" },
|
|
595
|
-
{ name: "research_plan", type_id: "ent_032", maturity: "stable", since: "0.1.0" },
|
|
596
|
-
// ── Market Intelligence ──
|
|
597
|
-
{ name: "competitor", type_id: "ent_033", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
598
|
-
{ name: "competitor_feature", type_id: "ent_034", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
599
|
-
{ name: "competitor_signal", type_id: "ent_354", maturity: "proposed", since: "0.10.0", portfolio_shared: true },
|
|
600
|
-
{ name: "market_trend", type_id: "ent_035", maturity: "stable", since: "0.1.0" },
|
|
601
|
-
{ name: "market_segment", type_id: "ent_036", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
602
|
-
{ name: "competitive_analysis", type_id: "ent_037", maturity: "stable", since: "0.1.0" },
|
|
603
|
-
// Classification taxonomy hosted by competitive_analysis.
|
|
604
|
-
// F7 (UPG-673): graduated proposed → stable at v0.9.x — two minor releases
|
|
605
|
-
// stable since 0.4.0, the taxonomy-axis/value pair backs the competitive-
|
|
606
|
-
// analysis classification spine with no open rename/restructure ticket.
|
|
607
|
-
{ name: "classification_axis", type_id: "ent_346", maturity: "stable", since: "0.4.0", portfolio_shared: true },
|
|
608
|
-
{ name: "classification_value", type_id: "ent_347", maturity: "stable", since: "0.4.0", portfolio_shared: true },
|
|
609
|
-
// ── UX Research ──
|
|
610
|
-
{ name: "research_study", type_id: "ent_038", maturity: "stable", since: "0.1.0" },
|
|
611
|
-
{ name: "research_insight", type_id: "ent_039", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "insight" },
|
|
612
|
-
{ name: "insight", type_id: "ent_040", maturity: "stable", since: "0.1.0" },
|
|
613
|
-
{ name: "participant", type_id: "ent_041", maturity: "stable", since: "0.1.0" },
|
|
614
|
-
{ name: "observation", type_id: "ent_042", maturity: "stable", since: "0.1.0" },
|
|
615
|
-
{ name: "quote", type_id: "ent_043", maturity: "stable", since: "0.1.0" },
|
|
616
|
-
{ name: "affinity_cluster", type_id: "ent_044", maturity: "stable", since: "0.1.0" },
|
|
617
|
-
{ name: "research_question", type_id: "ent_045", maturity: "stable", since: "0.1.0" },
|
|
618
|
-
{ name: "interview_guide", type_id: "ent_046", maturity: "stable", since: "0.1.0" },
|
|
619
|
-
{ name: "finding", type_id: "ent_047", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "insight" },
|
|
620
|
-
{ name: "survey_response", type_id: "ent_048", maturity: "stable", since: "0.1.0" },
|
|
621
|
-
{ name: "highlight", type_id: "ent_049", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "observation" },
|
|
622
|
-
// ── Design ──
|
|
623
|
-
{ name: "user_journey", type_id: "ent_050", maturity: "stable", since: "0.1.0" },
|
|
624
|
-
{ name: "journey_step", type_id: "ent_051", maturity: "stable", since: "0.1.0" },
|
|
625
|
-
{ name: "ux_insight", type_id: "ent_052", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "insight" },
|
|
626
|
-
{ name: "design_question", type_id: "ent_053", maturity: "stable", since: "0.1.0" },
|
|
627
|
-
{ name: "how_might_we", type_id: "ent_333", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "design_question" },
|
|
628
|
-
{ name: "design_concept", type_id: "ent_054", maturity: "stable", since: "0.1.0" },
|
|
629
|
-
{ name: "prototype", type_id: "ent_055", maturity: "stable", since: "0.1.0" },
|
|
630
|
-
{ name: "design_component", type_id: "ent_056", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
631
|
-
{ name: "design_token", type_id: "ent_057", maturity: "stable", since: "0.1.0" },
|
|
632
|
-
{ name: "brand_identity", type_id: "ent_058", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
633
|
-
{ name: "brand_colour", type_id: "ent_059", maturity: "stable", since: "0.1.0" },
|
|
634
|
-
{ name: "brand_typography", type_id: "ent_060", maturity: "stable", since: "0.1.0" },
|
|
635
|
-
{ name: "brand_voice", type_id: "ent_061", maturity: "stable", since: "0.1.0" },
|
|
636
|
-
{ name: "wireframe", type_id: "ent_062", maturity: "stable", since: "0.1.0" },
|
|
637
|
-
{ name: "design_pattern", type_id: "ent_063", maturity: "stable", since: "0.1.0" },
|
|
638
|
-
{ name: "design_guideline", type_id: "ent_064", maturity: "stable", since: "0.1.0" },
|
|
639
|
-
{ name: "annotation", type_id: "ent_065", maturity: "stable", since: "0.1.0" },
|
|
640
|
-
{ name: "interaction_spec", type_id: "ent_066", maturity: "stable", since: "0.1.0" },
|
|
641
|
-
{ name: "design_system", type_id: "ent_067", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
642
|
-
{ name: "user_flow", type_id: "ent_068", maturity: "stable", since: "0.1.0" },
|
|
643
|
-
{ name: "screen", type_id: "ent_069", maturity: "stable", since: "0.1.0" },
|
|
644
|
-
{ name: "screen_state", type_id: "ent_070", maturity: "stable", since: "0.1.0" },
|
|
645
|
-
// surface (0.27.0): the place inside a screen. `screen` is route-level
|
|
646
|
-
// (route / viewport / access_level); `surface` is the contested slot within
|
|
647
|
-
// it, carrying its occupants and the rule that arbitrates between them.
|
|
648
|
-
// Enters `proposed` per the maturity rubric (precedent: planning_cycle 0.20.0).
|
|
649
|
-
{ name: "surface", type_id: "ent_359", maturity: "proposed", since: "0.27.0" },
|
|
650
|
-
{ name: "configuration_axis", type_id: "ent_360", maturity: "proposed", since: "0.30.0" },
|
|
651
|
-
{ name: "journey_phase", type_id: "ent_330", maturity: "proposed", since: "0.2.0" },
|
|
652
|
-
{ name: "journey_action", type_id: "ent_331", maturity: "proposed", since: "0.2.0" },
|
|
653
|
-
{ name: "design_decision", type_id: "ent_319", maturity: "deprecated", since: "0.2.0", deprecated_in: "0.2.0", replacement: "decision" },
|
|
654
|
-
// F7 (UPG-673): graduated proposed → stable at v0.9.x — proposed since 0.2.0,
|
|
655
|
-
// the brand-identity set (logo + imagery) is settled with no open rename.
|
|
656
|
-
{ name: "brand_logo", type_id: "ent_321", maturity: "stable", since: "0.2.0" },
|
|
657
|
-
{ name: "brand_imagery", type_id: "ent_322", maturity: "stable", since: "0.2.0" },
|
|
658
|
-
// ── Product Spec ──
|
|
659
|
-
{ name: "feature_area", type_id: "ent_314", maturity: "stable", since: "0.1.0" },
|
|
660
|
-
{ name: "feature", type_id: "ent_071", maturity: "stable", since: "0.1.0" },
|
|
661
|
-
{ name: "epic", type_id: "ent_072", maturity: "stable", since: "0.1.0" },
|
|
662
|
-
// `user_story` is the templated "As X, I want Y so Z" promise: a stable,
|
|
663
|
-
// lifecycle-free design artefact (UCS pattern P5). The v0.2.7 split EXTRACTED
|
|
664
|
-
// the engineering work into a separate `task` (the lifecycle-bearing work-unit,
|
|
665
|
-
// linked via `task_implements_user_story`); the split was right. But the
|
|
666
|
-
// surviving statement half was renamed to the coined `story_statement`, which
|
|
667
|
-
// raised the adoption barrier. "user story" is the universally-recognised
|
|
668
|
-
// industry term for exactly this artefact. v0.7.0 (UPG-571) re-canonicalises
|
|
669
|
-
// the statement under `user_story`; `story_statement` becomes a deprecated
|
|
670
|
-
// alias. `story_task` (the original work half) was already collapsed into
|
|
671
|
-
// canonical `task` at v0.4.0. So the canonical shape is: user_story (statement)
|
|
672
|
-
// + task (work), linked by `task_implements_user_story`.
|
|
673
|
-
//
|
|
674
|
-
// F7 (UPG-673) — DEFERRED, deliberately kept `proposed`. The audit flagged
|
|
675
|
-
// user_story as a stable-spine candidate, but the v0.7.0 re-canon contract
|
|
676
|
-
// (UPG-571) freezes maturity at `proposed` until the re-canonicalised name
|
|
677
|
-
// has soaked across a full migration window. `user-story-split.test.ts`
|
|
678
|
-
// ("user_story is canonical again (ent_073, proposed, not deprecated)")
|
|
679
|
-
// asserts `proposed` as the post-re-canon invariant. Graduating here would
|
|
680
|
-
// break that contract; promotion is a separate, ticketed decision once the
|
|
681
|
-
// story_statement → user_story migration has fully aged out.
|
|
682
|
-
{ name: "user_story", type_id: "ent_073", maturity: "stable", since: "0.1.0" },
|
|
683
|
-
{ name: "story_statement", type_id: "ent_342", maturity: "deprecated", since: "0.2.7", deprecated_in: "0.7.0", replacement: "user_story" },
|
|
684
|
-
{ name: "story_task", type_id: "ent_343", maturity: "deprecated", since: "0.2.7", deprecated_in: "0.4.0", replacement: "task" },
|
|
685
|
-
{ name: "acceptance_criterion", type_id: "ent_074", maturity: "stable", since: "0.1.0" },
|
|
686
|
-
{ name: "release", type_id: "ent_075", maturity: "stable", since: "0.1.0" },
|
|
687
|
-
{ name: "task", type_id: "ent_076", maturity: "stable", since: "0.1.0" },
|
|
688
|
-
{ name: "bug", type_id: "ent_077", maturity: "stable", since: "0.1.0" },
|
|
689
|
-
{ name: "roadmap", type_id: "ent_078", maturity: "stable", since: "0.1.0" },
|
|
690
|
-
{ name: "roadmap_item", type_id: "ent_079", maturity: "stable", since: "0.1.0" },
|
|
691
|
-
{ name: "theme", type_id: "ent_080", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.9.0", replacement: "roadmap_theme" },
|
|
692
|
-
{ name: "roadmap_theme", type_id: "ent_351", maturity: "stable", since: "0.1.0" },
|
|
693
|
-
{ name: "changelog", type_id: "ent_081", maturity: "stable", since: "0.1.0" },
|
|
694
|
-
// (0.20.0) The cadence axis: a named, dated interval that work flows through
|
|
695
|
-
// and which nests (a program-increment contains iterations; a cycle contains
|
|
696
|
-
// its cooldown). One self-nesting type with a `cadence_kind` discriminator
|
|
697
|
-
// spans sprint / iteration / quarter / PI / cooldown rather than minting a
|
|
698
|
-
// type per methodology. `portfolio_shared` because a coarse cycle is an
|
|
699
|
-
// org-shared interval an objective in a rollup graph and a story in a product
|
|
700
|
-
// graph both schedule into.
|
|
701
|
-
{ name: "planning_cycle", type_id: "ent_358", maturity: "proposed", since: "0.20.0", portfolio_shared: true },
|
|
702
|
-
// ── Engineering ──
|
|
703
|
-
{ name: "bounded_context", type_id: "ent_082", maturity: "stable", since: "0.1.0" },
|
|
704
|
-
{ name: "service", type_id: "ent_083", maturity: "stable", since: "0.1.0" },
|
|
705
|
-
{ name: "domain_event", type_id: "ent_084", maturity: "stable", since: "0.1.0" },
|
|
706
|
-
{ name: "api_contract", type_id: "ent_085", maturity: "stable", since: "0.1.0" },
|
|
707
|
-
{ name: "architecture_decision", type_id: "ent_086", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "decision" },
|
|
708
|
-
{ name: "technical_debt_item", type_id: "ent_087", maturity: "stable", since: "0.1.0" },
|
|
709
|
-
{ name: "feature_flag", type_id: "ent_088", maturity: "stable", since: "0.1.0" },
|
|
710
|
-
{ name: "deployment", type_id: "ent_089", maturity: "stable", since: "0.1.0" },
|
|
711
|
-
{ name: "aggregate", type_id: "ent_090", maturity: "stable", since: "0.1.0" },
|
|
712
|
-
{ name: "domain_entity", type_id: "ent_091", maturity: "stable", since: "0.1.0" },
|
|
713
|
-
{ name: "value_object", type_id: "ent_092", maturity: "stable", since: "0.1.0" },
|
|
714
|
-
{ name: "command", type_id: "ent_093", maturity: "stable", since: "0.1.0" },
|
|
715
|
-
{ name: "read_model", type_id: "ent_094", maturity: "stable", since: "0.1.0" },
|
|
716
|
-
{ name: "api_endpoint", type_id: "ent_095", maturity: "stable", since: "0.1.0" },
|
|
717
|
-
{ name: "database_schema", type_id: "ent_096", maturity: "stable", since: "0.1.0" },
|
|
718
|
-
{ name: "queue_topic", type_id: "ent_097", maturity: "stable", since: "0.1.0" },
|
|
719
|
-
{ name: "build_artifact", type_id: "ent_098", maturity: "stable", since: "0.1.0" },
|
|
720
|
-
{ name: "code_repository", type_id: "ent_099", maturity: "stable", since: "0.1.0" },
|
|
721
|
-
{ name: "library_dependency", type_id: "ent_100", maturity: "stable", since: "0.1.0" },
|
|
722
|
-
{ name: "integration_pattern", type_id: "ent_101", maturity: "stable", since: "0.1.0" },
|
|
723
|
-
{ name: "external_api", type_id: "ent_102", maturity: "stable", since: "0.1.0" },
|
|
724
|
-
{ name: "data_flow", type_id: "ent_103", maturity: "stable", since: "0.1.0" },
|
|
725
|
-
{ name: "investigation", type_id: "ent_315", maturity: "stable", since: "0.2.0" },
|
|
726
|
-
{ name: "root_cause", type_id: "ent_316", maturity: "stable", since: "0.2.0" },
|
|
727
|
-
{ name: "symptom", type_id: "ent_317", maturity: "stable", since: "0.2.0" },
|
|
728
|
-
{ name: "fix", type_id: "ent_318", maturity: "stable", since: "0.2.0" },
|
|
729
|
-
// ── Growth ──
|
|
730
|
-
{ name: "north_star_metric", type_id: "ent_104", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
731
|
-
{ name: "input_metric", type_id: "ent_105", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
732
|
-
{ name: "funnel", type_id: "ent_106", maturity: "stable", since: "0.1.0" },
|
|
733
|
-
{ name: "funnel_step", type_id: "ent_107", maturity: "stable", since: "0.1.0" },
|
|
734
|
-
{ name: "acquisition_channel", type_id: "ent_108", maturity: "stable", since: "0.1.0" },
|
|
735
|
-
{ name: "growth_campaign", type_id: "ent_109", maturity: "stable", since: "0.1.0" },
|
|
736
|
-
{ name: "campaign", type_id: "ent_337", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "growth_campaign" },
|
|
737
|
-
{ name: "cohort", type_id: "ent_110", maturity: "stable", since: "0.1.0" },
|
|
738
|
-
{ name: "behavioral_segment", type_id: "ent_111", maturity: "stable", since: "0.1.0" },
|
|
739
|
-
{ name: "segment", type_id: "ent_338", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "behavioral_segment" },
|
|
740
|
-
{ name: "growth_loop", type_id: "ent_112", maturity: "stable", since: "0.1.0" },
|
|
741
|
-
{ name: "growth_experiment", type_id: "ent_113", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "experiment" },
|
|
742
|
-
{ name: "variant", type_id: "ent_114", maturity: "stable", since: "0.1.0" },
|
|
743
|
-
{ name: "attribution_model", type_id: "ent_115", maturity: "stable", since: "0.1.0" },
|
|
744
|
-
// ── Business Model ──
|
|
745
|
-
{ name: "business_model", type_id: "ent_116", maturity: "stable", since: "0.1.0" },
|
|
746
|
-
{ name: "value_proposition", type_id: "ent_117", maturity: "stable", since: "0.1.0" },
|
|
747
|
-
{ name: "revenue_stream", type_id: "ent_118", maturity: "stable", since: "0.1.0" },
|
|
748
|
-
{ name: "pricing_tier", type_id: "ent_119", maturity: "stable", since: "0.1.0" },
|
|
749
|
-
{ name: "cost_structure", type_id: "ent_120", maturity: "stable", since: "0.1.0" },
|
|
750
|
-
{ name: "unit_economics", type_id: "ent_121", maturity: "stable", since: "0.1.0" },
|
|
751
|
-
{ name: "partnership", type_id: "ent_122", maturity: "stable", since: "0.1.0" },
|
|
752
|
-
{ name: "key_resource", type_id: "ent_123", maturity: "stable", since: "0.1.0" },
|
|
753
|
-
{ name: "key_activity", type_id: "ent_124", maturity: "stable", since: "0.1.0" },
|
|
754
|
-
{ name: "customer_segment_bm", type_id: "ent_125", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "market_segment" },
|
|
755
|
-
{ name: "channel_bm", type_id: "ent_126", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "distribution_channel" },
|
|
756
|
-
{ name: "target_customer_segment", type_id: "ent_329", maturity: "deprecated", since: "0.2.0", deprecated_in: "0.2.0", replacement: "market_segment" },
|
|
757
|
-
{ name: "customer_relationship", type_id: "ent_127", maturity: "stable", since: "0.1.0" },
|
|
758
|
-
{ name: "distribution_channel", type_id: "ent_128", maturity: "stable", since: "0.1.0" },
|
|
759
|
-
// ── Go-To-Market ──
|
|
760
|
-
{ name: "gtm_strategy", type_id: "ent_129", maturity: "stable", since: "0.1.0" },
|
|
761
|
-
{ name: "ideal_customer_profile", type_id: "ent_130", maturity: "stable", since: "0.1.0" },
|
|
762
|
-
{ name: "positioning", type_id: "ent_131", maturity: "stable", since: "0.1.0" },
|
|
763
|
-
{ name: "messaging", type_id: "ent_132", maturity: "stable", since: "0.1.0" },
|
|
764
|
-
{ name: "launch", type_id: "ent_133", maturity: "stable", since: "0.1.0" },
|
|
765
|
-
{ name: "content_strategy", type_id: "ent_134", maturity: "stable", since: "0.1.0" },
|
|
766
|
-
{ name: "sales_motion", type_id: "ent_135", maturity: "stable", since: "0.1.0" },
|
|
767
|
-
{ name: "competitive_battle_card", type_id: "ent_136", maturity: "stable", since: "0.1.0" },
|
|
768
|
-
{ name: "demand_gen_program", type_id: "ent_137", maturity: "stable", since: "0.1.0" },
|
|
769
|
-
{ name: "territory", type_id: "ent_138", maturity: "stable", since: "0.1.0" },
|
|
770
|
-
{ name: "objection", type_id: "ent_139", maturity: "stable", since: "0.1.0" },
|
|
771
|
-
{ name: "rebuttal", type_id: "ent_140", maturity: "stable", since: "0.1.0" },
|
|
772
|
-
{ name: "proof_point", type_id: "ent_141", maturity: "stable", since: "0.1.0" },
|
|
773
|
-
// ── Team & Organisation ──
|
|
774
|
-
{ name: "team", type_id: "ent_142", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
775
|
-
{ name: "role", type_id: "ent_143", maturity: "stable", since: "0.1.0" },
|
|
776
|
-
{ name: "stakeholder", type_id: "ent_144", maturity: "stable", since: "0.1.0" },
|
|
777
|
-
{ name: "person", type_id: "ent_349", maturity: "stable", since: "0.5.0" },
|
|
778
|
-
{ name: "product_decision", type_id: "ent_145", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "decision" },
|
|
779
|
-
{ name: "team_okr", type_id: "ent_146", maturity: "stable", since: "0.1.0" },
|
|
780
|
-
{ name: "retrospective", type_id: "ent_147", maturity: "stable", since: "0.1.0" },
|
|
781
|
-
{ name: "dependency", type_id: "ent_148", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
782
|
-
{ name: "department", type_id: "ent_149", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
783
|
-
{ name: "skill", type_id: "ent_150", maturity: "stable", since: "0.1.0" },
|
|
784
|
-
{ name: "ceremony", type_id: "ent_151", maturity: "stable", since: "0.1.0" },
|
|
785
|
-
{ name: "capacity_plan", type_id: "ent_152", maturity: "stable", since: "0.1.0" },
|
|
786
|
-
// ── Data & Analytics ──
|
|
787
|
-
{ name: "data_source", type_id: "ent_153", maturity: "stable", since: "0.1.0" },
|
|
788
|
-
{ name: "metric_definition", type_id: "ent_154", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
789
|
-
{ name: "event_schema", type_id: "ent_155", maturity: "stable", since: "0.1.0" },
|
|
790
|
-
{ name: "dashboard", type_id: "ent_156", maturity: "stable", since: "0.1.0" },
|
|
791
|
-
{ name: "ab_test", type_id: "ent_157", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "experiment" },
|
|
792
|
-
{ name: "data_model", type_id: "ent_158", maturity: "stable", since: "0.1.0" },
|
|
793
|
-
{ name: "data_quality_rule", type_id: "ent_159", maturity: "stable", since: "0.1.0" },
|
|
794
|
-
{ name: "data_product", type_id: "ent_160", maturity: "stable", since: "0.1.0" },
|
|
795
|
-
{ name: "data_pipeline", type_id: "ent_161", maturity: "stable", since: "0.1.0" },
|
|
796
|
-
{ name: "data_lineage", type_id: "ent_162", maturity: "stable", since: "0.1.0" },
|
|
797
|
-
{ name: "glossary_term", type_id: "ent_163", maturity: "stable", since: "0.1.0" },
|
|
798
|
-
{ name: "data_domain", type_id: "ent_164", maturity: "stable", since: "0.1.0" },
|
|
799
|
-
{ name: "report", type_id: "ent_165", maturity: "stable", since: "0.1.0" },
|
|
800
|
-
// ── Content & Knowledge ──
|
|
801
|
-
{ name: "content_piece", type_id: "ent_166", maturity: "stable", since: "0.1.0" },
|
|
802
|
-
{ name: "knowledge_base_article", type_id: "ent_167", maturity: "stable", since: "0.1.0" },
|
|
803
|
-
{ name: "brand_asset", type_id: "ent_168", maturity: "stable", since: "0.1.0" },
|
|
804
|
-
{ name: "internal_doc", type_id: "ent_169", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "document" },
|
|
805
|
-
{ name: "prompt_template", type_id: "ent_170", maturity: "stable", since: "0.1.0" },
|
|
806
|
-
{ name: "content_calendar", type_id: "ent_171", maturity: "stable", since: "0.1.0" },
|
|
807
|
-
{ name: "content_theme", type_id: "ent_172", maturity: "stable", since: "0.1.0" },
|
|
808
|
-
{ name: "documentation_template", type_id: "ent_173", maturity: "stable", since: "0.1.0" },
|
|
809
|
-
{ name: "document", type_id: "ent_320", maturity: "stable", since: "0.2.0" },
|
|
810
|
-
// ── Legal & Compliance ──
|
|
811
|
-
{ name: "compliance_requirement", type_id: "ent_174", maturity: "stable", since: "0.1.0" },
|
|
812
|
-
{ name: "risk", type_id: "ent_175", maturity: "stable", since: "0.1.0" },
|
|
813
|
-
{ name: "data_contract", type_id: "ent_176", maturity: "stable", since: "0.1.0" },
|
|
814
|
-
{ name: "legal_entity", type_id: "ent_177", maturity: "stable", since: "0.1.0" },
|
|
815
|
-
{ name: "ip_asset", type_id: "ent_178", maturity: "stable", since: "0.1.0" },
|
|
816
|
-
{ name: "audit_log_policy", type_id: "ent_179", maturity: "stable", since: "0.1.0" },
|
|
817
|
-
{ name: "contract", type_id: "ent_180", maturity: "stable", since: "0.1.0" },
|
|
818
|
-
{ name: "contract_clause", type_id: "ent_181", maturity: "stable", since: "0.1.0" },
|
|
819
|
-
{ name: "privacy_policy", type_id: "ent_182", maturity: "stable", since: "0.1.0" },
|
|
820
|
-
{ name: "compliance_framework", type_id: "ent_183", maturity: "stable", since: "0.1.0" },
|
|
821
|
-
{ name: "security_audit", type_id: "ent_184", maturity: "stable", since: "0.1.0" },
|
|
822
|
-
// ── DevOps & Platform ──
|
|
823
|
-
{ name: "service_level_indicator", type_id: "ent_185", maturity: "stable", since: "0.1.0" },
|
|
824
|
-
{ name: "sli", type_id: "ent_334", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "service_level_indicator" },
|
|
825
|
-
{ name: "service_level_objective", type_id: "ent_186", maturity: "stable", since: "0.1.0" },
|
|
826
|
-
{ name: "slo", type_id: "ent_335", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "service_level_objective" },
|
|
827
|
-
{ name: "error_budget", type_id: "ent_187", maturity: "stable", since: "0.1.0" },
|
|
828
|
-
{ name: "incident", type_id: "ent_188", maturity: "stable", since: "0.1.0" },
|
|
829
|
-
{ name: "postmortem", type_id: "ent_189", maturity: "stable", since: "0.1.0" },
|
|
830
|
-
{ name: "runbook", type_id: "ent_190", maturity: "stable", since: "0.1.0" },
|
|
831
|
-
{ name: "monitor", type_id: "ent_191", maturity: "stable", since: "0.1.0" },
|
|
832
|
-
{ name: "alert_rule", type_id: "ent_192", maturity: "stable", since: "0.1.0" },
|
|
833
|
-
{ name: "ci_pipeline", type_id: "ent_193", maturity: "stable", since: "0.1.0" },
|
|
834
|
-
{ name: "release_strategy", type_id: "ent_194", maturity: "stable", since: "0.1.0" },
|
|
835
|
-
{ name: "on_call_rotation", type_id: "ent_195", maturity: "stable", since: "0.1.0" },
|
|
836
|
-
{ name: "infrastructure_component", type_id: "ent_196", maturity: "stable", since: "0.1.0" },
|
|
837
|
-
// ── Security ──
|
|
838
|
-
{ name: "threat_model", type_id: "ent_197", maturity: "stable", since: "0.1.0" },
|
|
839
|
-
{ name: "threat", type_id: "ent_198", maturity: "stable", since: "0.1.0" },
|
|
840
|
-
{ name: "vulnerability", type_id: "ent_199", maturity: "stable", since: "0.1.0" },
|
|
841
|
-
{ name: "security_control", type_id: "ent_200", maturity: "stable", since: "0.1.0" },
|
|
842
|
-
{ name: "security_policy", type_id: "ent_201", maturity: "stable", since: "0.1.0" },
|
|
843
|
-
{ name: "security_incident", type_id: "ent_202", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "incident" },
|
|
844
|
-
{ name: "penetration_test", type_id: "ent_203", maturity: "stable", since: "0.1.0" },
|
|
845
|
-
{ name: "security_review", type_id: "ent_204", maturity: "stable", since: "0.1.0" },
|
|
846
|
-
{ name: "data_classification", type_id: "ent_205", maturity: "stable", since: "0.1.0" },
|
|
847
|
-
{ name: "access_policy", type_id: "ent_206", maturity: "stable", since: "0.1.0" },
|
|
848
|
-
// ── Accessibility ──
|
|
849
|
-
{ name: "a11y_standard", type_id: "ent_207", maturity: "stable", since: "0.1.0" },
|
|
850
|
-
{ name: "a11y_guideline", type_id: "ent_208", maturity: "stable", since: "0.1.0" },
|
|
851
|
-
{ name: "a11y_audit", type_id: "ent_209", maturity: "stable", since: "0.1.0" },
|
|
852
|
-
{ name: "a11y_issue", type_id: "ent_210", maturity: "stable", since: "0.1.0" },
|
|
853
|
-
{ name: "a11y_annotation", type_id: "ent_211", maturity: "stable", since: "0.1.0" },
|
|
854
|
-
// ── QA & Testing ──
|
|
855
|
-
{ name: "test_suite", type_id: "ent_212", maturity: "stable", since: "0.1.0" },
|
|
856
|
-
{ name: "test_case", type_id: "ent_213", maturity: "stable", since: "0.1.0" },
|
|
857
|
-
{ name: "qa_session", type_id: "ent_214", maturity: "stable", since: "0.1.0" },
|
|
858
|
-
{ name: "regression_test", type_id: "ent_215", maturity: "stable", since: "0.1.0" },
|
|
859
|
-
{ name: "test_coverage_report", type_id: "ent_216", maturity: "stable", since: "0.1.0" },
|
|
860
|
-
{ name: "test_environment", type_id: "ent_217", maturity: "stable", since: "0.1.0" },
|
|
861
|
-
{ name: "defect_report", type_id: "ent_218", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "support_ticket" },
|
|
862
|
-
{ name: "test_result", type_id: "ent_327", maturity: "proposed", since: "0.2.0" },
|
|
863
|
-
// ── Feedback & Voice of Customer ──
|
|
864
|
-
{ name: "feedback_program", type_id: "ent_219", maturity: "stable", since: "0.1.0" },
|
|
865
|
-
{ name: "feature_request", type_id: "ent_220", maturity: "stable", since: "0.1.0" },
|
|
866
|
-
{ name: "feedback_vote", type_id: "ent_221", maturity: "stable", since: "0.1.0" },
|
|
867
|
-
{ name: "nps_campaign", type_id: "ent_222", maturity: "stable", since: "0.1.0" },
|
|
868
|
-
{ name: "user_advisory_board", type_id: "ent_223", maturity: "stable", since: "0.1.0" },
|
|
869
|
-
{ name: "beta_program", type_id: "ent_224", maturity: "stable", since: "0.1.0" },
|
|
870
|
-
{ name: "feedback_theme", type_id: "ent_225", maturity: "stable", since: "0.1.0" },
|
|
871
|
-
// ── Pricing & Packaging ──
|
|
872
|
-
{ name: "pricing_strategy", type_id: "ent_226", maturity: "stable", since: "0.1.0" },
|
|
873
|
-
{ name: "pricing_experiment", type_id: "ent_227", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "experiment" },
|
|
874
|
-
{ name: "package", type_id: "ent_228", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "pricing_tier" },
|
|
875
|
-
{ name: "discount_strategy", type_id: "ent_229", maturity: "stable", since: "0.1.0" },
|
|
876
|
-
{ name: "trial_config", type_id: "ent_230", maturity: "stable", since: "0.1.0" },
|
|
877
|
-
{ name: "paywall", type_id: "ent_231", maturity: "stable", since: "0.1.0" },
|
|
878
|
-
// ── AI/ML Operations ──
|
|
879
|
-
{ name: "ai_model", type_id: "ent_232", maturity: "stable", since: "0.1.0" },
|
|
880
|
-
{ name: "prompt_version", type_id: "ent_233", maturity: "stable", since: "0.1.0" },
|
|
881
|
-
{ name: "eval_benchmark", type_id: "ent_234", maturity: "stable", since: "0.1.0" },
|
|
882
|
-
{ name: "eval_run", type_id: "ent_235", maturity: "stable", since: "0.1.0" },
|
|
883
|
-
{ name: "ai_cost_tracker", type_id: "ent_236", maturity: "stable", since: "0.1.0" },
|
|
884
|
-
{ name: "hallucination_report", type_id: "ent_237", maturity: "stable", since: "0.1.0" },
|
|
885
|
-
{ name: "ai_guardrail", type_id: "ent_238", maturity: "stable", since: "0.1.0" },
|
|
886
|
-
{ name: "model_comparison", type_id: "ent_239", maturity: "stable", since: "0.1.0" },
|
|
887
|
-
{ name: "ai_experiment", type_id: "ent_323", maturity: "proposed", since: "0.2.0" },
|
|
888
|
-
{ name: "ai_dataset", type_id: "ent_324", maturity: "proposed", since: "0.2.0" },
|
|
889
|
-
{ name: "ai_trace", type_id: "ent_325", maturity: "proposed", since: "0.2.0" },
|
|
890
|
-
// ── Agentic Workflows ──
|
|
891
|
-
{ name: "workflow_template", type_id: "ent_240", maturity: "stable", since: "0.1.0" },
|
|
892
|
-
{ name: "workflow_run", type_id: "ent_241", maturity: "stable", since: "0.1.0" },
|
|
893
|
-
{ name: "agent_definition", type_id: "ent_242", maturity: "stable", since: "0.1.0" },
|
|
894
|
-
{ name: "agent_session", type_id: "ent_243", maturity: "stable", since: "0.1.0" },
|
|
895
|
-
{ name: "review_gate", type_id: "ent_244", maturity: "stable", since: "0.1.0" },
|
|
896
|
-
{ name: "approval_record", type_id: "ent_245", maturity: "stable", since: "0.1.0" },
|
|
897
|
-
{ name: "agent_skill", type_id: "ent_246", maturity: "stable", since: "0.1.0" },
|
|
898
|
-
{ name: "agent_hook", type_id: "ent_247", maturity: "stable", since: "0.1.0" },
|
|
899
|
-
{ name: "workflow_artifact", type_id: "ent_248", maturity: "stable", since: "0.1.0" },
|
|
900
|
-
{ name: "agent_task", type_id: "ent_326", maturity: "proposed", since: "0.2.0" },
|
|
901
|
-
// ── Portfolio ──
|
|
902
|
-
{ name: "organization", type_id: "ent_249", maturity: "stable", since: "0.1.0" },
|
|
903
|
-
{ name: "portfolio", type_id: "ent_250", maturity: "stable", since: "0.1.0" },
|
|
904
|
-
{ name: "product_area", type_id: "ent_251", maturity: "stable", since: "0.1.0" },
|
|
905
|
-
// ── Sales & Revenue ──
|
|
906
|
-
{ name: "account", type_id: "ent_252", maturity: "stable", since: "0.1.0" },
|
|
907
|
-
{ name: "contact", type_id: "ent_253", maturity: "stable", since: "0.1.0" },
|
|
908
|
-
{ name: "lead", type_id: "ent_254", maturity: "stable", since: "0.1.0" },
|
|
909
|
-
{ name: "deal", type_id: "ent_255", maturity: "stable", since: "0.1.0" },
|
|
910
|
-
{ name: "pipeline_sales", type_id: "ent_256", maturity: "stable", since: "0.1.0" },
|
|
911
|
-
{ name: "pipeline_stage", type_id: "ent_257", maturity: "stable", since: "0.1.0" },
|
|
912
|
-
{ name: "quote_document", type_id: "ent_258", maturity: "stable", since: "0.1.0" },
|
|
913
|
-
{ name: "subscription", type_id: "ent_259", maturity: "stable", since: "0.1.0" },
|
|
914
|
-
{ name: "invoice", type_id: "ent_260", maturity: "stable", since: "0.1.0" },
|
|
915
|
-
{ name: "forecast", type_id: "ent_261", maturity: "stable", since: "0.1.0" },
|
|
916
|
-
// ── Program Management ──
|
|
917
|
-
{ name: "program", type_id: "ent_262", maturity: "stable", since: "0.1.0" },
|
|
918
|
-
{ name: "project", type_id: "ent_263", maturity: "stable", since: "0.1.0" },
|
|
919
|
-
// `portfolio_shared` (0.25.1 feedback): a milestone is often a cross-team gate,
|
|
920
|
-
// not one project's checkpoint — an org-wide "Open Beta" that several products'
|
|
921
|
-
// projects must all satisfy. Shared tier lets `project_targets_milestone` (and
|
|
922
|
-
// the other milestone edges) pass the cross-scope gate as `provisional`, same
|
|
923
|
-
// as `project_implements_initiative`. Precedent: `planning_cycle` (0.20.0).
|
|
924
|
-
{ name: "milestone", type_id: "ent_264", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
925
|
-
{ name: "risk_register", type_id: "ent_265", maturity: "stable", since: "0.1.0" },
|
|
926
|
-
{ name: "risk_item", type_id: "ent_266", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "risk" },
|
|
927
|
-
{ name: "change_request", type_id: "ent_267", maturity: "stable", since: "0.1.0" },
|
|
928
|
-
{ name: "deliverable", type_id: "ent_268", maturity: "stable", since: "0.1.0" },
|
|
929
|
-
{ name: "resource_allocation", type_id: "ent_269", maturity: "stable", since: "0.1.0" },
|
|
930
|
-
{ name: "status_report", type_id: "ent_270", maturity: "stable", since: "0.1.0" },
|
|
931
|
-
// ── Marketing Operations ──
|
|
932
|
-
{ name: "marketing_strategy", type_id: "ent_271", maturity: "stable", since: "0.1.0" },
|
|
933
|
-
{ name: "marketing_channel", type_id: "ent_272", maturity: "stable", since: "0.1.0" },
|
|
934
|
-
{ name: "marketing_campaign_plan", type_id: "ent_273", maturity: "stable", since: "0.1.0" },
|
|
935
|
-
{ name: "email_sequence", type_id: "ent_274", maturity: "stable", since: "0.1.0" },
|
|
936
|
-
{ name: "social_post", type_id: "ent_275", maturity: "stable", since: "0.1.0" },
|
|
937
|
-
{ name: "seo_keyword", type_id: "ent_276", maturity: "stable", since: "0.1.0" },
|
|
938
|
-
{ name: "ad_creative", type_id: "ent_277", maturity: "stable", since: "0.1.0" },
|
|
939
|
-
{ name: "press_release", type_id: "ent_278", maturity: "stable", since: "0.1.0" },
|
|
940
|
-
{ name: "event", type_id: "ent_279", maturity: "stable", since: "0.1.0" },
|
|
941
|
-
{ name: "community_initiative", type_id: "ent_280", maturity: "stable", since: "0.1.0" },
|
|
942
|
-
// ── Operations & Customer Success ──
|
|
943
|
-
{ name: "support_ticket", type_id: "ent_281", maturity: "stable", since: "0.1.0" },
|
|
944
|
-
{ name: "customer_feedback", type_id: "ent_282", maturity: "stable", since: "0.1.0" },
|
|
945
|
-
{ name: "churn_reason", type_id: "ent_283", maturity: "stable", since: "0.1.0" },
|
|
946
|
-
{ name: "onboarding_flow", type_id: "ent_284", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "user_flow" },
|
|
947
|
-
{ name: "customer_health_score", type_id: "ent_285", maturity: "stable", since: "0.1.0" },
|
|
948
|
-
{ name: "playbook", type_id: "ent_286", maturity: "stable", since: "0.1.0" },
|
|
949
|
-
{ name: "service_level_agreement", type_id: "ent_287", maturity: "stable", since: "0.1.0" },
|
|
950
|
-
{ name: "sla", type_id: "ent_336", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "service_level_agreement" },
|
|
951
|
-
{ name: "customer_journey_stage", type_id: "ent_288", maturity: "stable", since: "0.1.0" },
|
|
952
|
-
{ name: "touchpoint", type_id: "ent_289", maturity: "stable", since: "0.1.0" },
|
|
953
|
-
{ name: "success_milestone", type_id: "ent_290", maturity: "stable", since: "0.1.0" },
|
|
954
|
-
{ name: "service_blueprint", type_id: "ent_291", maturity: "stable", since: "0.1.0" },
|
|
955
|
-
{ name: "nps_score", type_id: "ent_292", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "nps_campaign" },
|
|
956
|
-
// ── Localisation & i18n ──
|
|
957
|
-
{ name: "locale", type_id: "ent_293", maturity: "stable", since: "0.1.0" },
|
|
958
|
-
{ name: "translation_key", type_id: "ent_294", maturity: "stable", since: "0.1.0" },
|
|
959
|
-
{ name: "translation_bundle", type_id: "ent_295", maturity: "stable", since: "0.1.0" },
|
|
960
|
-
{ name: "locale_config", type_id: "ent_296", maturity: "stable", since: "0.1.0" },
|
|
961
|
-
{ name: "cultural_adaptation", type_id: "ent_297", maturity: "stable", since: "0.1.0" },
|
|
962
|
-
{ name: "regional_pricing", type_id: "ent_298", maturity: "stable", since: "0.1.0" },
|
|
963
|
-
// ── Customer Education ──
|
|
964
|
-
{ name: "education_program", type_id: "ent_299", maturity: "stable", since: "0.1.0" },
|
|
965
|
-
{ name: "tutorial", type_id: "ent_300", maturity: "stable", since: "0.1.0" },
|
|
966
|
-
{ name: "walkthrough", type_id: "ent_301", maturity: "stable", since: "0.1.0" },
|
|
967
|
-
{ name: "webinar", type_id: "ent_302", maturity: "stable", since: "0.1.0" },
|
|
968
|
-
{ name: "certification", type_id: "ent_303", maturity: "stable", since: "0.1.0" },
|
|
969
|
-
{ name: "help_video", type_id: "ent_304", maturity: "stable", since: "0.1.0" },
|
|
970
|
-
{ name: "learning_path", type_id: "ent_305", maturity: "stable", since: "0.1.0" },
|
|
971
|
-
// ── Partners & Ecosystem ──
|
|
972
|
-
{ name: "partner_program", type_id: "ent_306", maturity: "stable", since: "0.1.0" },
|
|
973
|
-
{ name: "partner_tier", type_id: "ent_307", maturity: "stable", since: "0.1.0" },
|
|
974
|
-
{ name: "api_ecosystem", type_id: "ent_308", maturity: "stable", since: "0.1.0" },
|
|
975
|
-
{ name: "marketplace_listing", type_id: "ent_309", maturity: "stable", since: "0.1.0" },
|
|
976
|
-
{ name: "developer_portal", type_id: "ent_310", maturity: "stable", since: "0.1.0" },
|
|
977
|
-
{ name: "integration_partner", type_id: "ent_311", maturity: "stable", since: "0.1.0" },
|
|
978
|
-
{ name: "partner_revenue_share", type_id: "ent_312", maturity: "stable", since: "0.1.0" },
|
|
979
|
-
// ── Workspace ──
|
|
980
|
-
{ name: "workspace", type_id: "ent_328", maturity: "proposed", since: "0.2.0" },
|
|
981
|
-
{ name: "framework_exercise", type_id: "ent_350", maturity: "proposed", since: "0.8.4" },
|
|
982
|
-
{ name: "composition", type_id: "ent_361", maturity: "proposed", since: "0.31.0" },
|
|
983
|
-
// A dated, hashed rendition of a node that is already in the graph. Enters
|
|
984
|
-
// `proposed` per the maturity rubric (precedent: composition 0.31.0).
|
|
985
|
-
{ name: "capture", type_id: "ent_362", maturity: "proposed", since: "0.32.0" }
|
|
986
|
-
];
|
|
987
|
-
var DEFERRED_PROPOSED_BY_CONTRACT = {
|
|
988
|
-
// user_story (UPG-571) and experiment_run (UPG-664) graduated to stable in
|
|
989
|
-
// 0.12.6 — Captain lifted both freezes ("we are using them"). Their contracts
|
|
990
|
-
// are settled; they are now stable, not deferred.
|
|
991
|
-
ai_experiment: "UPG-665: AI prompt/model restructure (open ADR).",
|
|
992
|
-
ai_dataset: "UPG-665: AI prompt/model restructure (open ADR).",
|
|
993
|
-
ai_trace: "UPG-665: AI prompt/model restructure (open ADR)."
|
|
994
|
-
};
|
|
995
|
-
var UPG_ENTITY_META_BY_NAME = new Map(
|
|
996
|
-
UPG_ENTITY_META.map((m) => [m.name, m])
|
|
997
|
-
);
|
|
998
|
-
var UPG_ENTITY_META_BY_ID = new Map(
|
|
999
|
-
UPG_ENTITY_META.map((m) => [m.type_id, m])
|
|
1000
|
-
);
|
|
1001
|
-
var UPG_ACTIVE_TYPES = UPG_ENTITY_META.filter((m) => m.maturity === "stable" || m.maturity === "proposed").map((m) => m.name);
|
|
1002
|
-
var UPG_DEPRECATED_TYPES = UPG_ENTITY_META.filter((m) => m.maturity === "deprecated").map((m) => m.name);
|
|
1003
|
-
var UPG_PORTFOLIO_SHARED_TYPES = UPG_ENTITY_META.filter((m) => m.portfolio_shared === true).map((m) => m.name);
|
|
1004
|
-
function isPortfolioSharedType(name) {
|
|
1005
|
-
return UPG_ENTITY_META_BY_NAME.get(name)?.portfolio_shared === true;
|
|
1006
|
-
}
|
|
1007
|
-
function isDeprecatedType(name) {
|
|
1008
|
-
const meta = UPG_ENTITY_META_BY_NAME.get(name);
|
|
1009
|
-
return meta?.maturity === "deprecated";
|
|
1010
|
-
}
|
|
1011
|
-
function getReplacementType(name) {
|
|
1012
|
-
const meta = UPG_ENTITY_META_BY_NAME.get(name);
|
|
1013
|
-
return meta?.replacement;
|
|
1014
|
-
}
|
|
1015
|
-
function getTypeId(name) {
|
|
1016
|
-
return UPG_ENTITY_META_BY_NAME.get(name)?.type_id;
|
|
1017
|
-
}
|
|
1018
|
-
function getTypeName(typeId) {
|
|
1019
|
-
return UPG_ENTITY_META_BY_ID.get(typeId)?.name;
|
|
1020
|
-
}
|
|
1021
|
-
|
|
1022
1033
|
// src/catalog/edge-catalog.ts
|
|
1023
1034
|
var UPG_WILDCARD_ENDPOINT = "node";
|
|
1024
1035
|
var CLASSIFICATION_EDGE_PROPERTY_SCHEMA = {
|
|
@@ -33852,7 +33863,7 @@ function checkHeaderSealText(text) {
|
|
|
33852
33863
|
}
|
|
33853
33864
|
|
|
33854
33865
|
// src/index.ts
|
|
33855
|
-
var UPG_VERSION = "0.
|
|
33866
|
+
var UPG_VERSION = "0.38.0";
|
|
33856
33867
|
var UPG_FORMAT_VERSION = "0.4.0";
|
|
33857
33868
|
var MARKDOWN_FORMAT_VERSION = "0.1";
|
|
33858
33869
|
var UPG_TYPES = getTypes();
|