@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.cjs
CHANGED
|
@@ -293,6 +293,510 @@ __export(index_exports, {
|
|
|
293
293
|
});
|
|
294
294
|
module.exports = __toCommonJS(index_exports);
|
|
295
295
|
|
|
296
|
+
// src/registry/entity-meta.ts
|
|
297
|
+
var UPG_ENTITY_META = [
|
|
298
|
+
// Foundations (0.9.12): shared specifications + the primitives they define.
|
|
299
|
+
{ name: "specification", type_id: "ent_352", maturity: "proposed", since: "0.9.12", portfolio_shared: true },
|
|
300
|
+
{ name: "primitive", type_id: "ent_353", maturity: "proposed", since: "0.9.12", portfolio_shared: true },
|
|
301
|
+
{ name: "operating_lifecycle", type_id: "ent_355", maturity: "proposed", since: "0.11.6", portfolio_shared: true },
|
|
302
|
+
{ name: "operating_stage", type_id: "ent_356", maturity: "proposed", since: "0.11.6", portfolio_shared: true },
|
|
303
|
+
// ── Strategic ──
|
|
304
|
+
{ name: "product", type_id: "ent_001", maturity: "stable", since: "0.1.0" },
|
|
305
|
+
{ name: "outcome", type_id: "ent_002", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
306
|
+
{ name: "kpi", type_id: "ent_003", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
307
|
+
{ name: "objective", type_id: "ent_004", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
308
|
+
{ name: "key_result", type_id: "ent_005", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
309
|
+
{ name: "metric", type_id: "ent_006", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
310
|
+
// F7 (UPG-673): graduated proposed → stable at v0.9.x — proposed since 0.2.2,
|
|
311
|
+
// the metric-quality assessment artefact is settled with no open restructure.
|
|
312
|
+
{ name: "metric_quality_assessment", type_id: "ent_339", maturity: "stable", since: "0.2.2" },
|
|
313
|
+
{ name: "vision", type_id: "ent_007", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
314
|
+
{ name: "mission", type_id: "ent_008", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
315
|
+
{ name: "strategic_theme", type_id: "ent_009", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
316
|
+
{ name: "initiative", type_id: "ent_010", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
317
|
+
{ name: "capability", type_id: "ent_011", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
318
|
+
{ name: "value_stream", type_id: "ent_012", maturity: "stable", since: "0.1.0" },
|
|
319
|
+
{ name: "strategic_pillar", type_id: "ent_013", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
320
|
+
{ name: "assumption", type_id: "ent_014", maturity: "stable", since: "0.1.0" },
|
|
321
|
+
{ name: "decision", type_id: "ent_015", maturity: "stable", since: "0.1.0" },
|
|
322
|
+
{ name: "constraint", type_id: "ent_348", maturity: "stable", since: "0.4.3" },
|
|
323
|
+
// (0.17.4) Strategy-domain sibling of research_question / design_question,
|
|
324
|
+
// completing the domain-question triad. An open coordination/ownership question
|
|
325
|
+
// a plan is exposed to (distinct from `assumption`, which the plan is built on).
|
|
326
|
+
{ name: "strategic_question", type_id: "ent_357", maturity: "proposed", since: "0.17.4" },
|
|
327
|
+
// ── User ──
|
|
328
|
+
{ name: "persona", type_id: "ent_016", maturity: "stable", since: "0.1.0" },
|
|
329
|
+
{ name: "job", type_id: "ent_017", maturity: "stable", since: "0.1.0" },
|
|
330
|
+
{ name: "jtbd", type_id: "ent_332", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "job" },
|
|
331
|
+
{ name: "pain_point", type_id: "ent_018", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "need" },
|
|
332
|
+
{ name: "desired_outcome", type_id: "ent_019", maturity: "stable", since: "0.1.0" },
|
|
333
|
+
{ name: "job_step", type_id: "ent_020", maturity: "stable", since: "0.1.0" },
|
|
334
|
+
{ name: "user_need", type_id: "ent_021", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "need" },
|
|
335
|
+
{ name: "need", type_id: "ent_313", maturity: "stable", since: "0.1.0" },
|
|
336
|
+
{ name: "switching_cost", type_id: "ent_022", maturity: "stable", since: "0.1.0" },
|
|
337
|
+
// ── Discovery ──
|
|
338
|
+
{ name: "opportunity", type_id: "ent_023", maturity: "stable", since: "0.1.0", default_frameworks: ["opportunity-sizing", "rice-scoring"] },
|
|
339
|
+
{ name: "solution", type_id: "ent_024", maturity: "stable", since: "0.1.0", default_frameworks: ["rice-scoring"] },
|
|
340
|
+
{ name: "feasibility_study", type_id: "ent_025", maturity: "stable", since: "0.1.0" },
|
|
341
|
+
{ name: "design_sprint", type_id: "ent_026", maturity: "stable", since: "0.1.0" },
|
|
342
|
+
// ── Validation ──
|
|
343
|
+
// (since v0.4.0) `hypothesis` re-promoted to canonical-stable. The
|
|
344
|
+
// v0.2.8 rename to `hypothesis_claim` was over-split: "claim" is implied
|
|
345
|
+
// by being a hypothesis. Canonical name reverts; HypothesisClaimProperties
|
|
346
|
+
// renamed to HypothesisProperties. `hypothesis_claim` is now deprecated
|
|
347
|
+
// (→ `hypothesis`). `hypothesis_evidence` deprecated (→ `evidence`): the
|
|
348
|
+
// dual evidence_type enum smell resolved by enriching canonical `evidence`
|
|
349
|
+
// with evidence_rigor + evidence_source axes. Edge pattern switches to
|
|
350
|
+
// `hypothesis_has_evidence` (neutral, direction on node).
|
|
351
|
+
{ name: "hypothesis", type_id: "ent_027", maturity: "stable", since: "0.1.0" },
|
|
352
|
+
{ name: "hypothesis_claim", type_id: "ent_344", maturity: "deprecated", since: "0.2.8", deprecated_in: "0.4.0", replacement: "hypothesis" },
|
|
353
|
+
{ name: "hypothesis_evidence", type_id: "ent_345", maturity: "deprecated", since: "0.2.8", deprecated_in: "0.4.0", replacement: "evidence" },
|
|
354
|
+
// `experiment` is canonical (UPG-664). It has its own property schema
|
|
355
|
+
// (method, start_date, end_date, sample_size, expected_lift) and is the
|
|
356
|
+
// canonical unit of a structured test. The validation flow is
|
|
357
|
+
// `hypothesis → experiment_plan → experiment → experiment_run`: the plan is
|
|
358
|
+
// the validation design, the experiment is the structured test, the run is
|
|
359
|
+
// the optional multi-run/replication child.
|
|
360
|
+
{ name: "experiment", type_id: "ent_028", maturity: "stable", since: "0.1.0" },
|
|
361
|
+
// experiment_plan graduated proposed → stable (UPG-664). It is the canonical
|
|
362
|
+
// validation PLAN type — it absorbed `test_plan`'s planning properties
|
|
363
|
+
// (method / success_criteria / sample_size) when `test_plan` re-homed to the
|
|
364
|
+
// QA/testing domain (UPG-678).
|
|
365
|
+
{ name: "experiment_plan", type_id: "ent_340", maturity: "stable", since: "0.2.6" },
|
|
366
|
+
{ name: "experiment_run", type_id: "ent_341", maturity: "stable", since: "0.2.6" },
|
|
367
|
+
{ name: "learning", type_id: "ent_029", maturity: "stable", since: "0.1.0" },
|
|
368
|
+
// test_plan re-homed validation → testing/QA (UPG-678). It is the QA
|
|
369
|
+
// verification-procedure plan (test scope / environments / pass criteria);
|
|
370
|
+
// its former validation-planning role is carried by experiment_plan.
|
|
371
|
+
{ name: "test_plan", type_id: "ent_030", maturity: "stable", since: "0.1.0" },
|
|
372
|
+
{ name: "evidence", type_id: "ent_031", maturity: "stable", since: "0.1.0" },
|
|
373
|
+
{ name: "research_plan", type_id: "ent_032", maturity: "stable", since: "0.1.0" },
|
|
374
|
+
// ── Market Intelligence ──
|
|
375
|
+
{ name: "competitor", type_id: "ent_033", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
376
|
+
{ name: "competitor_feature", type_id: "ent_034", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
377
|
+
{ name: "competitor_signal", type_id: "ent_354", maturity: "proposed", since: "0.10.0", portfolio_shared: true },
|
|
378
|
+
{ name: "market_trend", type_id: "ent_035", maturity: "stable", since: "0.1.0" },
|
|
379
|
+
{ name: "market_segment", type_id: "ent_036", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
380
|
+
{ name: "competitive_analysis", type_id: "ent_037", maturity: "stable", since: "0.1.0" },
|
|
381
|
+
// Classification taxonomy hosted by competitive_analysis.
|
|
382
|
+
// F7 (UPG-673): graduated proposed → stable at v0.9.x — two minor releases
|
|
383
|
+
// stable since 0.4.0, the taxonomy-axis/value pair backs the competitive-
|
|
384
|
+
// analysis classification spine with no open rename/restructure ticket.
|
|
385
|
+
{ name: "classification_axis", type_id: "ent_346", maturity: "stable", since: "0.4.0", portfolio_shared: true },
|
|
386
|
+
{ name: "classification_value", type_id: "ent_347", maturity: "stable", since: "0.4.0", portfolio_shared: true },
|
|
387
|
+
// ── UX Research ──
|
|
388
|
+
{ name: "research_study", type_id: "ent_038", maturity: "stable", since: "0.1.0" },
|
|
389
|
+
{ name: "research_insight", type_id: "ent_039", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "insight" },
|
|
390
|
+
{ name: "insight", type_id: "ent_040", maturity: "stable", since: "0.1.0" },
|
|
391
|
+
{ name: "participant", type_id: "ent_041", maturity: "stable", since: "0.1.0" },
|
|
392
|
+
{ name: "observation", type_id: "ent_042", maturity: "stable", since: "0.1.0" },
|
|
393
|
+
{ name: "quote", type_id: "ent_043", maturity: "stable", since: "0.1.0" },
|
|
394
|
+
{ name: "affinity_cluster", type_id: "ent_044", maturity: "stable", since: "0.1.0" },
|
|
395
|
+
{ name: "research_question", type_id: "ent_045", maturity: "stable", since: "0.1.0" },
|
|
396
|
+
{ name: "interview_guide", type_id: "ent_046", maturity: "stable", since: "0.1.0" },
|
|
397
|
+
{ name: "finding", type_id: "ent_047", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "insight" },
|
|
398
|
+
{ name: "survey_response", type_id: "ent_048", maturity: "stable", since: "0.1.0" },
|
|
399
|
+
{ name: "highlight", type_id: "ent_049", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "observation" },
|
|
400
|
+
// ── Design ──
|
|
401
|
+
{ name: "user_journey", type_id: "ent_050", maturity: "stable", since: "0.1.0" },
|
|
402
|
+
{ name: "journey_step", type_id: "ent_051", maturity: "stable", since: "0.1.0" },
|
|
403
|
+
{ name: "ux_insight", type_id: "ent_052", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "insight" },
|
|
404
|
+
{ name: "design_question", type_id: "ent_053", maturity: "stable", since: "0.1.0" },
|
|
405
|
+
{ name: "how_might_we", type_id: "ent_333", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "design_question" },
|
|
406
|
+
{ name: "design_concept", type_id: "ent_054", maturity: "stable", since: "0.1.0" },
|
|
407
|
+
{ name: "prototype", type_id: "ent_055", maturity: "stable", since: "0.1.0" },
|
|
408
|
+
{ name: "design_component", type_id: "ent_056", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
409
|
+
{ name: "design_token", type_id: "ent_057", maturity: "stable", since: "0.1.0" },
|
|
410
|
+
{ name: "brand_identity", type_id: "ent_058", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
411
|
+
{ name: "brand_colour", type_id: "ent_059", maturity: "stable", since: "0.1.0" },
|
|
412
|
+
{ name: "brand_typography", type_id: "ent_060", maturity: "stable", since: "0.1.0" },
|
|
413
|
+
{ name: "brand_voice", type_id: "ent_061", maturity: "stable", since: "0.1.0" },
|
|
414
|
+
{ name: "wireframe", type_id: "ent_062", maturity: "stable", since: "0.1.0" },
|
|
415
|
+
{ name: "design_pattern", type_id: "ent_063", maturity: "stable", since: "0.1.0" },
|
|
416
|
+
{ name: "design_guideline", type_id: "ent_064", maturity: "stable", since: "0.1.0" },
|
|
417
|
+
{ name: "annotation", type_id: "ent_065", maturity: "stable", since: "0.1.0" },
|
|
418
|
+
{ name: "interaction_spec", type_id: "ent_066", maturity: "stable", since: "0.1.0" },
|
|
419
|
+
{ name: "design_system", type_id: "ent_067", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
420
|
+
{ name: "user_flow", type_id: "ent_068", maturity: "stable", since: "0.1.0" },
|
|
421
|
+
{ name: "screen", type_id: "ent_069", maturity: "stable", since: "0.1.0" },
|
|
422
|
+
{ name: "screen_state", type_id: "ent_070", maturity: "stable", since: "0.1.0" },
|
|
423
|
+
// surface (0.27.0): the place inside a screen. `screen` is route-level
|
|
424
|
+
// (route / viewport / access_level); `surface` is the contested slot within
|
|
425
|
+
// it, carrying its occupants and the rule that arbitrates between them.
|
|
426
|
+
// Enters `proposed` per the maturity rubric (precedent: planning_cycle 0.20.0).
|
|
427
|
+
{ name: "surface", type_id: "ent_359", maturity: "proposed", since: "0.27.0" },
|
|
428
|
+
{ name: "configuration_axis", type_id: "ent_360", maturity: "proposed", since: "0.30.0" },
|
|
429
|
+
{ name: "journey_phase", type_id: "ent_330", maturity: "proposed", since: "0.2.0" },
|
|
430
|
+
{ name: "journey_action", type_id: "ent_331", maturity: "proposed", since: "0.2.0" },
|
|
431
|
+
{ name: "design_decision", type_id: "ent_319", maturity: "deprecated", since: "0.2.0", deprecated_in: "0.2.0", replacement: "decision" },
|
|
432
|
+
// F7 (UPG-673): graduated proposed → stable at v0.9.x — proposed since 0.2.0,
|
|
433
|
+
// the brand-identity set (logo + imagery) is settled with no open rename.
|
|
434
|
+
{ name: "brand_logo", type_id: "ent_321", maturity: "stable", since: "0.2.0" },
|
|
435
|
+
{ name: "brand_imagery", type_id: "ent_322", maturity: "stable", since: "0.2.0" },
|
|
436
|
+
// ── Product Spec ──
|
|
437
|
+
{ name: "feature_area", type_id: "ent_314", maturity: "stable", since: "0.1.0" },
|
|
438
|
+
{ name: "feature", type_id: "ent_071", maturity: "stable", since: "0.1.0" },
|
|
439
|
+
{ name: "epic", type_id: "ent_072", maturity: "stable", since: "0.1.0" },
|
|
440
|
+
// `user_story` is the templated "As X, I want Y so Z" promise: a stable,
|
|
441
|
+
// lifecycle-free design artefact (UCS pattern P5). The v0.2.7 split EXTRACTED
|
|
442
|
+
// the engineering work into a separate `task` (the lifecycle-bearing work-unit,
|
|
443
|
+
// linked via `task_implements_user_story`); the split was right. But the
|
|
444
|
+
// surviving statement half was renamed to the coined `story_statement`, which
|
|
445
|
+
// raised the adoption barrier. "user story" is the universally-recognised
|
|
446
|
+
// industry term for exactly this artefact. v0.7.0 (UPG-571) re-canonicalises
|
|
447
|
+
// the statement under `user_story`; `story_statement` becomes a deprecated
|
|
448
|
+
// alias. `story_task` (the original work half) was already collapsed into
|
|
449
|
+
// canonical `task` at v0.4.0. So the canonical shape is: user_story (statement)
|
|
450
|
+
// + task (work), linked by `task_implements_user_story`.
|
|
451
|
+
//
|
|
452
|
+
// F7 (UPG-673) — DEFERRED, deliberately kept `proposed`. The audit flagged
|
|
453
|
+
// user_story as a stable-spine candidate, but the v0.7.0 re-canon contract
|
|
454
|
+
// (UPG-571) freezes maturity at `proposed` until the re-canonicalised name
|
|
455
|
+
// has soaked across a full migration window. `user-story-split.test.ts`
|
|
456
|
+
// ("user_story is canonical again (ent_073, proposed, not deprecated)")
|
|
457
|
+
// asserts `proposed` as the post-re-canon invariant. Graduating here would
|
|
458
|
+
// break that contract; promotion is a separate, ticketed decision once the
|
|
459
|
+
// story_statement → user_story migration has fully aged out.
|
|
460
|
+
{ name: "user_story", type_id: "ent_073", maturity: "stable", since: "0.1.0" },
|
|
461
|
+
{ name: "story_statement", type_id: "ent_342", maturity: "deprecated", since: "0.2.7", deprecated_in: "0.7.0", replacement: "user_story" },
|
|
462
|
+
{ name: "story_task", type_id: "ent_343", maturity: "deprecated", since: "0.2.7", deprecated_in: "0.4.0", replacement: "task" },
|
|
463
|
+
{ name: "acceptance_criterion", type_id: "ent_074", maturity: "stable", since: "0.1.0" },
|
|
464
|
+
{ name: "release", type_id: "ent_075", maturity: "stable", since: "0.1.0" },
|
|
465
|
+
{ name: "task", type_id: "ent_076", maturity: "stable", since: "0.1.0" },
|
|
466
|
+
{ name: "bug", type_id: "ent_077", maturity: "stable", since: "0.1.0" },
|
|
467
|
+
{ name: "roadmap", type_id: "ent_078", maturity: "stable", since: "0.1.0" },
|
|
468
|
+
{ name: "roadmap_item", type_id: "ent_079", maturity: "stable", since: "0.1.0" },
|
|
469
|
+
{ name: "theme", type_id: "ent_080", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.9.0", replacement: "roadmap_theme" },
|
|
470
|
+
{ name: "roadmap_theme", type_id: "ent_351", maturity: "stable", since: "0.1.0" },
|
|
471
|
+
{ name: "changelog", type_id: "ent_081", maturity: "stable", since: "0.1.0" },
|
|
472
|
+
// (0.20.0) The cadence axis: a named, dated interval that work flows through
|
|
473
|
+
// and which nests (a program-increment contains iterations; a cycle contains
|
|
474
|
+
// its cooldown). One self-nesting type with a `cadence_kind` discriminator
|
|
475
|
+
// spans sprint / iteration / quarter / PI / cooldown rather than minting a
|
|
476
|
+
// type per methodology. `portfolio_shared` because a coarse cycle is an
|
|
477
|
+
// org-shared interval an objective in a rollup graph and a story in a product
|
|
478
|
+
// graph both schedule into.
|
|
479
|
+
{ name: "planning_cycle", type_id: "ent_358", maturity: "proposed", since: "0.20.0", portfolio_shared: true },
|
|
480
|
+
// ── Engineering ──
|
|
481
|
+
{ name: "bounded_context", type_id: "ent_082", maturity: "stable", since: "0.1.0" },
|
|
482
|
+
{ name: "service", type_id: "ent_083", maturity: "stable", since: "0.1.0" },
|
|
483
|
+
{ name: "domain_event", type_id: "ent_084", maturity: "stable", since: "0.1.0" },
|
|
484
|
+
{ name: "api_contract", type_id: "ent_085", maturity: "stable", since: "0.1.0" },
|
|
485
|
+
{ name: "architecture_decision", type_id: "ent_086", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "decision" },
|
|
486
|
+
{ name: "technical_debt_item", type_id: "ent_087", maturity: "stable", since: "0.1.0" },
|
|
487
|
+
{ name: "feature_flag", type_id: "ent_088", maturity: "stable", since: "0.1.0" },
|
|
488
|
+
{ name: "deployment", type_id: "ent_089", maturity: "stable", since: "0.1.0" },
|
|
489
|
+
{ name: "aggregate", type_id: "ent_090", maturity: "stable", since: "0.1.0" },
|
|
490
|
+
{ name: "domain_entity", type_id: "ent_091", maturity: "stable", since: "0.1.0" },
|
|
491
|
+
{ name: "value_object", type_id: "ent_092", maturity: "stable", since: "0.1.0" },
|
|
492
|
+
{ name: "command", type_id: "ent_093", maturity: "stable", since: "0.1.0" },
|
|
493
|
+
{ name: "read_model", type_id: "ent_094", maturity: "stable", since: "0.1.0" },
|
|
494
|
+
{ name: "api_endpoint", type_id: "ent_095", maturity: "stable", since: "0.1.0" },
|
|
495
|
+
{ name: "database_schema", type_id: "ent_096", maturity: "stable", since: "0.1.0" },
|
|
496
|
+
{ name: "queue_topic", type_id: "ent_097", maturity: "stable", since: "0.1.0" },
|
|
497
|
+
{ name: "build_artifact", type_id: "ent_098", maturity: "stable", since: "0.1.0" },
|
|
498
|
+
{ name: "code_repository", type_id: "ent_099", maturity: "stable", since: "0.1.0" },
|
|
499
|
+
{ name: "library_dependency", type_id: "ent_100", maturity: "stable", since: "0.1.0" },
|
|
500
|
+
{ name: "integration_pattern", type_id: "ent_101", maturity: "stable", since: "0.1.0" },
|
|
501
|
+
{ name: "external_api", type_id: "ent_102", maturity: "stable", since: "0.1.0" },
|
|
502
|
+
{ name: "data_flow", type_id: "ent_103", maturity: "stable", since: "0.1.0" },
|
|
503
|
+
{ name: "investigation", type_id: "ent_315", maturity: "stable", since: "0.2.0" },
|
|
504
|
+
{ name: "root_cause", type_id: "ent_316", maturity: "stable", since: "0.2.0" },
|
|
505
|
+
{ name: "symptom", type_id: "ent_317", maturity: "stable", since: "0.2.0" },
|
|
506
|
+
{ name: "fix", type_id: "ent_318", maturity: "stable", since: "0.2.0" },
|
|
507
|
+
// ── Growth ──
|
|
508
|
+
{ name: "north_star_metric", type_id: "ent_104", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
509
|
+
{ name: "input_metric", type_id: "ent_105", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
510
|
+
{ name: "funnel", type_id: "ent_106", maturity: "stable", since: "0.1.0" },
|
|
511
|
+
{ name: "funnel_step", type_id: "ent_107", maturity: "stable", since: "0.1.0" },
|
|
512
|
+
{ name: "acquisition_channel", type_id: "ent_108", maturity: "stable", since: "0.1.0" },
|
|
513
|
+
{ name: "growth_campaign", type_id: "ent_109", maturity: "stable", since: "0.1.0" },
|
|
514
|
+
{ name: "campaign", type_id: "ent_337", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "growth_campaign" },
|
|
515
|
+
{ name: "cohort", type_id: "ent_110", maturity: "stable", since: "0.1.0" },
|
|
516
|
+
{ name: "behavioral_segment", type_id: "ent_111", maturity: "stable", since: "0.1.0" },
|
|
517
|
+
{ name: "segment", type_id: "ent_338", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "behavioral_segment" },
|
|
518
|
+
{ name: "growth_loop", type_id: "ent_112", maturity: "stable", since: "0.1.0" },
|
|
519
|
+
{ name: "growth_experiment", type_id: "ent_113", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "experiment" },
|
|
520
|
+
{ name: "variant", type_id: "ent_114", maturity: "stable", since: "0.1.0" },
|
|
521
|
+
{ name: "attribution_model", type_id: "ent_115", maturity: "stable", since: "0.1.0" },
|
|
522
|
+
// ── Business Model ──
|
|
523
|
+
{ name: "business_model", type_id: "ent_116", maturity: "stable", since: "0.1.0" },
|
|
524
|
+
{ name: "value_proposition", type_id: "ent_117", maturity: "stable", since: "0.1.0" },
|
|
525
|
+
{ name: "revenue_stream", type_id: "ent_118", maturity: "stable", since: "0.1.0" },
|
|
526
|
+
{ name: "pricing_tier", type_id: "ent_119", maturity: "stable", since: "0.1.0" },
|
|
527
|
+
{ name: "cost_structure", type_id: "ent_120", maturity: "stable", since: "0.1.0" },
|
|
528
|
+
{ name: "unit_economics", type_id: "ent_121", maturity: "stable", since: "0.1.0" },
|
|
529
|
+
{ name: "partnership", type_id: "ent_122", maturity: "stable", since: "0.1.0" },
|
|
530
|
+
{ name: "key_resource", type_id: "ent_123", maturity: "stable", since: "0.1.0" },
|
|
531
|
+
{ name: "key_activity", type_id: "ent_124", maturity: "stable", since: "0.1.0" },
|
|
532
|
+
{ name: "customer_segment_bm", type_id: "ent_125", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "market_segment" },
|
|
533
|
+
{ name: "channel_bm", type_id: "ent_126", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "distribution_channel" },
|
|
534
|
+
{ name: "target_customer_segment", type_id: "ent_329", maturity: "deprecated", since: "0.2.0", deprecated_in: "0.2.0", replacement: "market_segment" },
|
|
535
|
+
{ name: "customer_relationship", type_id: "ent_127", maturity: "stable", since: "0.1.0" },
|
|
536
|
+
{ name: "distribution_channel", type_id: "ent_128", maturity: "stable", since: "0.1.0" },
|
|
537
|
+
// ── Go-To-Market ──
|
|
538
|
+
{ name: "gtm_strategy", type_id: "ent_129", maturity: "stable", since: "0.1.0" },
|
|
539
|
+
{ name: "ideal_customer_profile", type_id: "ent_130", maturity: "stable", since: "0.1.0" },
|
|
540
|
+
{ name: "positioning", type_id: "ent_131", maturity: "stable", since: "0.1.0" },
|
|
541
|
+
{ name: "messaging", type_id: "ent_132", maturity: "stable", since: "0.1.0" },
|
|
542
|
+
{ name: "launch", type_id: "ent_133", maturity: "stable", since: "0.1.0" },
|
|
543
|
+
{ name: "content_strategy", type_id: "ent_134", maturity: "stable", since: "0.1.0" },
|
|
544
|
+
{ name: "sales_motion", type_id: "ent_135", maturity: "stable", since: "0.1.0" },
|
|
545
|
+
{ name: "competitive_battle_card", type_id: "ent_136", maturity: "stable", since: "0.1.0" },
|
|
546
|
+
{ name: "demand_gen_program", type_id: "ent_137", maturity: "stable", since: "0.1.0" },
|
|
547
|
+
{ name: "territory", type_id: "ent_138", maturity: "stable", since: "0.1.0" },
|
|
548
|
+
{ name: "objection", type_id: "ent_139", maturity: "stable", since: "0.1.0" },
|
|
549
|
+
{ name: "rebuttal", type_id: "ent_140", maturity: "stable", since: "0.1.0" },
|
|
550
|
+
{ name: "proof_point", type_id: "ent_141", maturity: "stable", since: "0.1.0" },
|
|
551
|
+
// ── Team & Organisation ──
|
|
552
|
+
{ name: "team", type_id: "ent_142", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
553
|
+
{ name: "role", type_id: "ent_143", maturity: "stable", since: "0.1.0" },
|
|
554
|
+
{ name: "stakeholder", type_id: "ent_144", maturity: "stable", since: "0.1.0" },
|
|
555
|
+
{ name: "person", type_id: "ent_349", maturity: "stable", since: "0.5.0" },
|
|
556
|
+
{ name: "product_decision", type_id: "ent_145", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "decision" },
|
|
557
|
+
{ name: "team_okr", type_id: "ent_146", maturity: "stable", since: "0.1.0" },
|
|
558
|
+
{ name: "retrospective", type_id: "ent_147", maturity: "stable", since: "0.1.0" },
|
|
559
|
+
{ name: "dependency", type_id: "ent_148", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
560
|
+
{ name: "department", type_id: "ent_149", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
561
|
+
{ name: "skill", type_id: "ent_150", maturity: "stable", since: "0.1.0" },
|
|
562
|
+
{ name: "ceremony", type_id: "ent_151", maturity: "stable", since: "0.1.0" },
|
|
563
|
+
{ name: "capacity_plan", type_id: "ent_152", maturity: "stable", since: "0.1.0" },
|
|
564
|
+
// ── Data & Analytics ──
|
|
565
|
+
{ name: "data_source", type_id: "ent_153", maturity: "stable", since: "0.1.0" },
|
|
566
|
+
{ name: "metric_definition", type_id: "ent_154", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
567
|
+
{ name: "event_schema", type_id: "ent_155", maturity: "stable", since: "0.1.0" },
|
|
568
|
+
{ name: "dashboard", type_id: "ent_156", maturity: "stable", since: "0.1.0" },
|
|
569
|
+
{ name: "ab_test", type_id: "ent_157", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "experiment" },
|
|
570
|
+
{ name: "data_model", type_id: "ent_158", maturity: "stable", since: "0.1.0" },
|
|
571
|
+
{ name: "data_quality_rule", type_id: "ent_159", maturity: "stable", since: "0.1.0" },
|
|
572
|
+
{ name: "data_product", type_id: "ent_160", maturity: "stable", since: "0.1.0" },
|
|
573
|
+
{ name: "data_pipeline", type_id: "ent_161", maturity: "stable", since: "0.1.0" },
|
|
574
|
+
{ name: "data_lineage", type_id: "ent_162", maturity: "stable", since: "0.1.0" },
|
|
575
|
+
{ name: "glossary_term", type_id: "ent_163", maturity: "stable", since: "0.1.0" },
|
|
576
|
+
{ name: "data_domain", type_id: "ent_164", maturity: "stable", since: "0.1.0" },
|
|
577
|
+
{ name: "report", type_id: "ent_165", maturity: "stable", since: "0.1.0" },
|
|
578
|
+
// ── Content & Knowledge ──
|
|
579
|
+
{ name: "content_piece", type_id: "ent_166", maturity: "stable", since: "0.1.0" },
|
|
580
|
+
{ name: "knowledge_base_article", type_id: "ent_167", maturity: "stable", since: "0.1.0" },
|
|
581
|
+
{ name: "brand_asset", type_id: "ent_168", maturity: "stable", since: "0.1.0" },
|
|
582
|
+
{ name: "internal_doc", type_id: "ent_169", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "document" },
|
|
583
|
+
{ name: "prompt_template", type_id: "ent_170", maturity: "stable", since: "0.1.0" },
|
|
584
|
+
{ name: "content_calendar", type_id: "ent_171", maturity: "stable", since: "0.1.0" },
|
|
585
|
+
{ name: "content_theme", type_id: "ent_172", maturity: "stable", since: "0.1.0" },
|
|
586
|
+
{ name: "documentation_template", type_id: "ent_173", maturity: "stable", since: "0.1.0" },
|
|
587
|
+
{ name: "document", type_id: "ent_320", maturity: "stable", since: "0.2.0" },
|
|
588
|
+
// ── Legal & Compliance ──
|
|
589
|
+
{ name: "compliance_requirement", type_id: "ent_174", maturity: "stable", since: "0.1.0" },
|
|
590
|
+
{ name: "risk", type_id: "ent_175", maturity: "stable", since: "0.1.0" },
|
|
591
|
+
{ name: "data_contract", type_id: "ent_176", maturity: "stable", since: "0.1.0" },
|
|
592
|
+
{ name: "legal_entity", type_id: "ent_177", maturity: "stable", since: "0.1.0" },
|
|
593
|
+
{ name: "ip_asset", type_id: "ent_178", maturity: "stable", since: "0.1.0" },
|
|
594
|
+
{ name: "audit_log_policy", type_id: "ent_179", maturity: "stable", since: "0.1.0" },
|
|
595
|
+
{ name: "contract", type_id: "ent_180", maturity: "stable", since: "0.1.0" },
|
|
596
|
+
{ name: "contract_clause", type_id: "ent_181", maturity: "stable", since: "0.1.0" },
|
|
597
|
+
{ name: "privacy_policy", type_id: "ent_182", maturity: "stable", since: "0.1.0" },
|
|
598
|
+
{ name: "compliance_framework", type_id: "ent_183", maturity: "stable", since: "0.1.0" },
|
|
599
|
+
{ name: "security_audit", type_id: "ent_184", maturity: "stable", since: "0.1.0" },
|
|
600
|
+
// ── DevOps & Platform ──
|
|
601
|
+
{ name: "service_level_indicator", type_id: "ent_185", maturity: "stable", since: "0.1.0" },
|
|
602
|
+
{ name: "sli", type_id: "ent_334", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "service_level_indicator" },
|
|
603
|
+
{ name: "service_level_objective", type_id: "ent_186", maturity: "stable", since: "0.1.0" },
|
|
604
|
+
{ name: "slo", type_id: "ent_335", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "service_level_objective" },
|
|
605
|
+
{ name: "error_budget", type_id: "ent_187", maturity: "stable", since: "0.1.0" },
|
|
606
|
+
{ name: "incident", type_id: "ent_188", maturity: "stable", since: "0.1.0" },
|
|
607
|
+
{ name: "postmortem", type_id: "ent_189", maturity: "stable", since: "0.1.0" },
|
|
608
|
+
{ name: "runbook", type_id: "ent_190", maturity: "stable", since: "0.1.0" },
|
|
609
|
+
{ name: "monitor", type_id: "ent_191", maturity: "stable", since: "0.1.0" },
|
|
610
|
+
{ name: "alert_rule", type_id: "ent_192", maturity: "stable", since: "0.1.0" },
|
|
611
|
+
{ name: "ci_pipeline", type_id: "ent_193", maturity: "stable", since: "0.1.0" },
|
|
612
|
+
{ name: "release_strategy", type_id: "ent_194", maturity: "stable", since: "0.1.0" },
|
|
613
|
+
{ name: "on_call_rotation", type_id: "ent_195", maturity: "stable", since: "0.1.0" },
|
|
614
|
+
{ name: "infrastructure_component", type_id: "ent_196", maturity: "stable", since: "0.1.0" },
|
|
615
|
+
// ── Security ──
|
|
616
|
+
{ name: "threat_model", type_id: "ent_197", maturity: "stable", since: "0.1.0" },
|
|
617
|
+
{ name: "threat", type_id: "ent_198", maturity: "stable", since: "0.1.0" },
|
|
618
|
+
{ name: "vulnerability", type_id: "ent_199", maturity: "stable", since: "0.1.0" },
|
|
619
|
+
{ name: "security_control", type_id: "ent_200", maturity: "stable", since: "0.1.0" },
|
|
620
|
+
{ name: "security_policy", type_id: "ent_201", maturity: "stable", since: "0.1.0" },
|
|
621
|
+
{ name: "security_incident", type_id: "ent_202", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "incident" },
|
|
622
|
+
{ name: "penetration_test", type_id: "ent_203", maturity: "stable", since: "0.1.0" },
|
|
623
|
+
{ name: "security_review", type_id: "ent_204", maturity: "stable", since: "0.1.0" },
|
|
624
|
+
{ name: "data_classification", type_id: "ent_205", maturity: "stable", since: "0.1.0" },
|
|
625
|
+
{ name: "access_policy", type_id: "ent_206", maturity: "stable", since: "0.1.0" },
|
|
626
|
+
// ── Accessibility ──
|
|
627
|
+
{ name: "a11y_standard", type_id: "ent_207", maturity: "stable", since: "0.1.0" },
|
|
628
|
+
{ name: "a11y_guideline", type_id: "ent_208", maturity: "stable", since: "0.1.0" },
|
|
629
|
+
{ name: "a11y_audit", type_id: "ent_209", maturity: "stable", since: "0.1.0" },
|
|
630
|
+
{ name: "a11y_issue", type_id: "ent_210", maturity: "stable", since: "0.1.0" },
|
|
631
|
+
{ name: "a11y_annotation", type_id: "ent_211", maturity: "stable", since: "0.1.0" },
|
|
632
|
+
// ── QA & Testing ──
|
|
633
|
+
{ name: "test_suite", type_id: "ent_212", maturity: "stable", since: "0.1.0" },
|
|
634
|
+
{ name: "test_case", type_id: "ent_213", maturity: "stable", since: "0.1.0" },
|
|
635
|
+
{ name: "qa_session", type_id: "ent_214", maturity: "stable", since: "0.1.0" },
|
|
636
|
+
{ name: "regression_test", type_id: "ent_215", maturity: "stable", since: "0.1.0" },
|
|
637
|
+
{ name: "test_coverage_report", type_id: "ent_216", maturity: "stable", since: "0.1.0" },
|
|
638
|
+
{ name: "test_environment", type_id: "ent_217", maturity: "stable", since: "0.1.0" },
|
|
639
|
+
{ name: "defect_report", type_id: "ent_218", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "support_ticket" },
|
|
640
|
+
{ name: "test_result", type_id: "ent_327", maturity: "proposed", since: "0.2.0" },
|
|
641
|
+
// ── Feedback & Voice of Customer ──
|
|
642
|
+
{ name: "feedback_program", type_id: "ent_219", maturity: "stable", since: "0.1.0" },
|
|
643
|
+
{ name: "feature_request", type_id: "ent_220", maturity: "stable", since: "0.1.0" },
|
|
644
|
+
{ name: "feedback_vote", type_id: "ent_221", maturity: "stable", since: "0.1.0" },
|
|
645
|
+
{ name: "nps_campaign", type_id: "ent_222", maturity: "stable", since: "0.1.0" },
|
|
646
|
+
{ name: "user_advisory_board", type_id: "ent_223", maturity: "stable", since: "0.1.0" },
|
|
647
|
+
{ name: "beta_program", type_id: "ent_224", maturity: "stable", since: "0.1.0" },
|
|
648
|
+
{ name: "feedback_theme", type_id: "ent_225", maturity: "stable", since: "0.1.0" },
|
|
649
|
+
// ── Pricing & Packaging ──
|
|
650
|
+
{ name: "pricing_strategy", type_id: "ent_226", maturity: "stable", since: "0.1.0" },
|
|
651
|
+
{ name: "pricing_experiment", type_id: "ent_227", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "experiment" },
|
|
652
|
+
{ name: "package", type_id: "ent_228", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "pricing_tier" },
|
|
653
|
+
{ name: "discount_strategy", type_id: "ent_229", maturity: "stable", since: "0.1.0" },
|
|
654
|
+
{ name: "trial_config", type_id: "ent_230", maturity: "stable", since: "0.1.0" },
|
|
655
|
+
{ name: "paywall", type_id: "ent_231", maturity: "stable", since: "0.1.0" },
|
|
656
|
+
// ── AI/ML Operations ──
|
|
657
|
+
{ name: "ai_model", type_id: "ent_232", maturity: "stable", since: "0.1.0" },
|
|
658
|
+
{ name: "prompt_version", type_id: "ent_233", maturity: "stable", since: "0.1.0" },
|
|
659
|
+
{ name: "eval_benchmark", type_id: "ent_234", maturity: "stable", since: "0.1.0" },
|
|
660
|
+
{ name: "eval_run", type_id: "ent_235", maturity: "stable", since: "0.1.0" },
|
|
661
|
+
{ name: "ai_cost_tracker", type_id: "ent_236", maturity: "stable", since: "0.1.0" },
|
|
662
|
+
{ name: "hallucination_report", type_id: "ent_237", maturity: "stable", since: "0.1.0" },
|
|
663
|
+
{ name: "ai_guardrail", type_id: "ent_238", maturity: "stable", since: "0.1.0" },
|
|
664
|
+
{ name: "model_comparison", type_id: "ent_239", maturity: "stable", since: "0.1.0" },
|
|
665
|
+
{ name: "ai_experiment", type_id: "ent_323", maturity: "proposed", since: "0.2.0" },
|
|
666
|
+
{ name: "ai_dataset", type_id: "ent_324", maturity: "proposed", since: "0.2.0" },
|
|
667
|
+
{ name: "ai_trace", type_id: "ent_325", maturity: "proposed", since: "0.2.0" },
|
|
668
|
+
// ── Agentic Workflows ──
|
|
669
|
+
{ name: "workflow_template", type_id: "ent_240", maturity: "stable", since: "0.1.0" },
|
|
670
|
+
{ name: "workflow_run", type_id: "ent_241", maturity: "stable", since: "0.1.0" },
|
|
671
|
+
{ name: "agent_definition", type_id: "ent_242", maturity: "stable", since: "0.1.0" },
|
|
672
|
+
{ name: "agent_session", type_id: "ent_243", maturity: "stable", since: "0.1.0" },
|
|
673
|
+
{ name: "review_gate", type_id: "ent_244", maturity: "stable", since: "0.1.0" },
|
|
674
|
+
{ name: "approval_record", type_id: "ent_245", maturity: "stable", since: "0.1.0" },
|
|
675
|
+
{ name: "agent_skill", type_id: "ent_246", maturity: "stable", since: "0.1.0" },
|
|
676
|
+
{ name: "agent_hook", type_id: "ent_247", maturity: "stable", since: "0.1.0" },
|
|
677
|
+
{ name: "workflow_artifact", type_id: "ent_248", maturity: "stable", since: "0.1.0" },
|
|
678
|
+
{ name: "agent_task", type_id: "ent_326", maturity: "proposed", since: "0.2.0" },
|
|
679
|
+
// ── Portfolio ──
|
|
680
|
+
{ name: "organization", type_id: "ent_249", maturity: "stable", since: "0.1.0" },
|
|
681
|
+
{ name: "portfolio", type_id: "ent_250", maturity: "stable", since: "0.1.0" },
|
|
682
|
+
{ name: "product_area", type_id: "ent_251", maturity: "stable", since: "0.1.0" },
|
|
683
|
+
// ── Sales & Revenue ──
|
|
684
|
+
{ name: "account", type_id: "ent_252", maturity: "stable", since: "0.1.0" },
|
|
685
|
+
{ name: "contact", type_id: "ent_253", maturity: "stable", since: "0.1.0" },
|
|
686
|
+
{ name: "lead", type_id: "ent_254", maturity: "stable", since: "0.1.0" },
|
|
687
|
+
{ name: "deal", type_id: "ent_255", maturity: "stable", since: "0.1.0" },
|
|
688
|
+
{ name: "pipeline_sales", type_id: "ent_256", maturity: "stable", since: "0.1.0" },
|
|
689
|
+
{ name: "pipeline_stage", type_id: "ent_257", maturity: "stable", since: "0.1.0" },
|
|
690
|
+
{ name: "quote_document", type_id: "ent_258", maturity: "stable", since: "0.1.0" },
|
|
691
|
+
{ name: "subscription", type_id: "ent_259", maturity: "stable", since: "0.1.0" },
|
|
692
|
+
{ name: "invoice", type_id: "ent_260", maturity: "stable", since: "0.1.0" },
|
|
693
|
+
{ name: "forecast", type_id: "ent_261", maturity: "stable", since: "0.1.0" },
|
|
694
|
+
// ── Program Management ──
|
|
695
|
+
{ name: "program", type_id: "ent_262", maturity: "stable", since: "0.1.0" },
|
|
696
|
+
{ name: "project", type_id: "ent_263", maturity: "stable", since: "0.1.0" },
|
|
697
|
+
// `portfolio_shared` (0.25.1 feedback): a milestone is often a cross-team gate,
|
|
698
|
+
// not one project's checkpoint — an org-wide "Open Beta" that several products'
|
|
699
|
+
// projects must all satisfy. Shared tier lets `project_targets_milestone` (and
|
|
700
|
+
// the other milestone edges) pass the cross-scope gate as `provisional`, same
|
|
701
|
+
// as `project_implements_initiative`. Precedent: `planning_cycle` (0.20.0).
|
|
702
|
+
{ name: "milestone", type_id: "ent_264", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
703
|
+
{ name: "risk_register", type_id: "ent_265", maturity: "stable", since: "0.1.0" },
|
|
704
|
+
{ name: "risk_item", type_id: "ent_266", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "risk" },
|
|
705
|
+
{ name: "change_request", type_id: "ent_267", maturity: "stable", since: "0.1.0" },
|
|
706
|
+
{ name: "deliverable", type_id: "ent_268", maturity: "stable", since: "0.1.0" },
|
|
707
|
+
{ name: "resource_allocation", type_id: "ent_269", maturity: "stable", since: "0.1.0" },
|
|
708
|
+
{ name: "status_report", type_id: "ent_270", maturity: "stable", since: "0.1.0" },
|
|
709
|
+
// ── Marketing Operations ──
|
|
710
|
+
{ name: "marketing_strategy", type_id: "ent_271", maturity: "stable", since: "0.1.0" },
|
|
711
|
+
{ name: "marketing_channel", type_id: "ent_272", maturity: "stable", since: "0.1.0" },
|
|
712
|
+
{ name: "marketing_campaign_plan", type_id: "ent_273", maturity: "stable", since: "0.1.0" },
|
|
713
|
+
{ name: "email_sequence", type_id: "ent_274", maturity: "stable", since: "0.1.0" },
|
|
714
|
+
{ name: "social_post", type_id: "ent_275", maturity: "stable", since: "0.1.0" },
|
|
715
|
+
{ name: "seo_keyword", type_id: "ent_276", maturity: "stable", since: "0.1.0" },
|
|
716
|
+
{ name: "ad_creative", type_id: "ent_277", maturity: "stable", since: "0.1.0" },
|
|
717
|
+
{ name: "press_release", type_id: "ent_278", maturity: "stable", since: "0.1.0" },
|
|
718
|
+
{ name: "event", type_id: "ent_279", maturity: "stable", since: "0.1.0" },
|
|
719
|
+
{ name: "community_initiative", type_id: "ent_280", maturity: "stable", since: "0.1.0" },
|
|
720
|
+
// ── Operations & Customer Success ──
|
|
721
|
+
{ name: "support_ticket", type_id: "ent_281", maturity: "stable", since: "0.1.0" },
|
|
722
|
+
{ name: "customer_feedback", type_id: "ent_282", maturity: "stable", since: "0.1.0" },
|
|
723
|
+
{ name: "churn_reason", type_id: "ent_283", maturity: "stable", since: "0.1.0" },
|
|
724
|
+
{ name: "onboarding_flow", type_id: "ent_284", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "user_flow" },
|
|
725
|
+
{ name: "customer_health_score", type_id: "ent_285", maturity: "stable", since: "0.1.0" },
|
|
726
|
+
{ name: "playbook", type_id: "ent_286", maturity: "stable", since: "0.1.0" },
|
|
727
|
+
{ name: "service_level_agreement", type_id: "ent_287", maturity: "stable", since: "0.1.0" },
|
|
728
|
+
{ name: "sla", type_id: "ent_336", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "service_level_agreement" },
|
|
729
|
+
{ name: "customer_journey_stage", type_id: "ent_288", maturity: "stable", since: "0.1.0" },
|
|
730
|
+
{ name: "touchpoint", type_id: "ent_289", maturity: "stable", since: "0.1.0" },
|
|
731
|
+
{ name: "success_milestone", type_id: "ent_290", maturity: "stable", since: "0.1.0" },
|
|
732
|
+
{ name: "service_blueprint", type_id: "ent_291", maturity: "stable", since: "0.1.0" },
|
|
733
|
+
{ name: "nps_score", type_id: "ent_292", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "nps_campaign" },
|
|
734
|
+
// ── Localisation & i18n ──
|
|
735
|
+
{ name: "locale", type_id: "ent_293", maturity: "stable", since: "0.1.0" },
|
|
736
|
+
{ name: "translation_key", type_id: "ent_294", maturity: "stable", since: "0.1.0" },
|
|
737
|
+
{ name: "translation_bundle", type_id: "ent_295", maturity: "stable", since: "0.1.0" },
|
|
738
|
+
{ name: "locale_config", type_id: "ent_296", maturity: "stable", since: "0.1.0" },
|
|
739
|
+
{ name: "cultural_adaptation", type_id: "ent_297", maturity: "stable", since: "0.1.0" },
|
|
740
|
+
{ name: "regional_pricing", type_id: "ent_298", maturity: "stable", since: "0.1.0" },
|
|
741
|
+
// ── Customer Education ──
|
|
742
|
+
{ name: "education_program", type_id: "ent_299", maturity: "stable", since: "0.1.0" },
|
|
743
|
+
{ name: "tutorial", type_id: "ent_300", maturity: "stable", since: "0.1.0" },
|
|
744
|
+
{ name: "walkthrough", type_id: "ent_301", maturity: "stable", since: "0.1.0" },
|
|
745
|
+
{ name: "webinar", type_id: "ent_302", maturity: "stable", since: "0.1.0" },
|
|
746
|
+
{ name: "certification", type_id: "ent_303", maturity: "stable", since: "0.1.0" },
|
|
747
|
+
{ name: "help_video", type_id: "ent_304", maturity: "stable", since: "0.1.0" },
|
|
748
|
+
{ name: "learning_path", type_id: "ent_305", maturity: "stable", since: "0.1.0" },
|
|
749
|
+
// ── Partners & Ecosystem ──
|
|
750
|
+
{ name: "partner_program", type_id: "ent_306", maturity: "stable", since: "0.1.0" },
|
|
751
|
+
{ name: "partner_tier", type_id: "ent_307", maturity: "stable", since: "0.1.0" },
|
|
752
|
+
{ name: "api_ecosystem", type_id: "ent_308", maturity: "stable", since: "0.1.0" },
|
|
753
|
+
{ name: "marketplace_listing", type_id: "ent_309", maturity: "stable", since: "0.1.0" },
|
|
754
|
+
{ name: "developer_portal", type_id: "ent_310", maturity: "stable", since: "0.1.0" },
|
|
755
|
+
{ name: "integration_partner", type_id: "ent_311", maturity: "stable", since: "0.1.0" },
|
|
756
|
+
{ name: "partner_revenue_share", type_id: "ent_312", maturity: "stable", since: "0.1.0" },
|
|
757
|
+
// ── Workspace ──
|
|
758
|
+
{ name: "workspace", type_id: "ent_328", maturity: "proposed", since: "0.2.0" },
|
|
759
|
+
{ name: "framework_exercise", type_id: "ent_350", maturity: "proposed", since: "0.8.4" },
|
|
760
|
+
{ name: "composition", type_id: "ent_361", maturity: "proposed", since: "0.31.0" },
|
|
761
|
+
// A dated, hashed rendition of a node that is already in the graph. Enters
|
|
762
|
+
// `proposed` per the maturity rubric (precedent: composition 0.31.0).
|
|
763
|
+
{ name: "capture", type_id: "ent_362", maturity: "proposed", since: "0.32.0" }
|
|
764
|
+
];
|
|
765
|
+
var DEFERRED_PROPOSED_BY_CONTRACT = {
|
|
766
|
+
// user_story (UPG-571) and experiment_run (UPG-664) graduated to stable in
|
|
767
|
+
// 0.12.6 — Captain lifted both freezes ("we are using them"). Their contracts
|
|
768
|
+
// are settled; they are now stable, not deferred.
|
|
769
|
+
ai_experiment: "UPG-665: AI prompt/model restructure (open ADR).",
|
|
770
|
+
ai_dataset: "UPG-665: AI prompt/model restructure (open ADR).",
|
|
771
|
+
ai_trace: "UPG-665: AI prompt/model restructure (open ADR)."
|
|
772
|
+
};
|
|
773
|
+
var UPG_ENTITY_META_BY_NAME = new Map(
|
|
774
|
+
UPG_ENTITY_META.map((m) => [m.name, m])
|
|
775
|
+
);
|
|
776
|
+
var UPG_ENTITY_META_BY_ID = new Map(
|
|
777
|
+
UPG_ENTITY_META.map((m) => [m.type_id, m])
|
|
778
|
+
);
|
|
779
|
+
var UPG_ACTIVE_TYPES = UPG_ENTITY_META.filter((m) => m.maturity === "stable" || m.maturity === "proposed").map((m) => m.name);
|
|
780
|
+
var UPG_DEPRECATED_TYPES = UPG_ENTITY_META.filter((m) => m.maturity === "deprecated").map((m) => m.name);
|
|
781
|
+
var UPG_PORTFOLIO_SHARED_TYPES = UPG_ENTITY_META.filter((m) => m.portfolio_shared === true).map((m) => m.name);
|
|
782
|
+
function isPortfolioSharedType(name) {
|
|
783
|
+
return UPG_ENTITY_META_BY_NAME.get(name)?.portfolio_shared === true;
|
|
784
|
+
}
|
|
785
|
+
function isDeprecatedType(name) {
|
|
786
|
+
const meta = UPG_ENTITY_META_BY_NAME.get(name);
|
|
787
|
+
return meta?.maturity === "deprecated";
|
|
788
|
+
}
|
|
789
|
+
function getReplacementType(name) {
|
|
790
|
+
const meta = UPG_ENTITY_META_BY_NAME.get(name);
|
|
791
|
+
return meta?.replacement;
|
|
792
|
+
}
|
|
793
|
+
function getTypeId(name) {
|
|
794
|
+
return UPG_ENTITY_META_BY_NAME.get(name)?.type_id;
|
|
795
|
+
}
|
|
796
|
+
function getTypeName(typeId) {
|
|
797
|
+
return UPG_ENTITY_META_BY_ID.get(typeId)?.name;
|
|
798
|
+
}
|
|
799
|
+
|
|
296
800
|
// src/registry/domains.ts
|
|
297
801
|
var UPG_DOMAINS = [
|
|
298
802
|
{
|
|
@@ -804,516 +1308,23 @@ function getTypes() {
|
|
|
804
1308
|
return UPG_DOMAINS.flatMap((d) => [...d.types]);
|
|
805
1309
|
}
|
|
806
1310
|
function getDomainForType(entityType) {
|
|
807
|
-
|
|
1311
|
+
const direct = UPG_DOMAINS.find((d) => d.types.includes(entityType));
|
|
1312
|
+
if (direct) return direct;
|
|
1313
|
+
let name = entityType;
|
|
1314
|
+
for (let hop = 0; hop < 3; hop++) {
|
|
1315
|
+
if (!isDeprecatedType(name)) return void 0;
|
|
1316
|
+
const replacement = getReplacementType(name);
|
|
1317
|
+
if (!replacement) return void 0;
|
|
1318
|
+
const viaReplacement = UPG_DOMAINS.find((d) => d.types.includes(replacement));
|
|
1319
|
+
if (viaReplacement) return viaReplacement;
|
|
1320
|
+
name = replacement;
|
|
1321
|
+
}
|
|
1322
|
+
return void 0;
|
|
808
1323
|
}
|
|
809
1324
|
function getDomainIdForType(entityType) {
|
|
810
1325
|
return UPG_ENTITY_TO_DOMAIN[entityType];
|
|
811
1326
|
}
|
|
812
1327
|
|
|
813
|
-
// src/registry/entity-meta.ts
|
|
814
|
-
var UPG_ENTITY_META = [
|
|
815
|
-
// Foundations (0.9.12): shared specifications + the primitives they define.
|
|
816
|
-
{ name: "specification", type_id: "ent_352", maturity: "proposed", since: "0.9.12", portfolio_shared: true },
|
|
817
|
-
{ name: "primitive", type_id: "ent_353", maturity: "proposed", since: "0.9.12", portfolio_shared: true },
|
|
818
|
-
{ name: "operating_lifecycle", type_id: "ent_355", maturity: "proposed", since: "0.11.6", portfolio_shared: true },
|
|
819
|
-
{ name: "operating_stage", type_id: "ent_356", maturity: "proposed", since: "0.11.6", portfolio_shared: true },
|
|
820
|
-
// ── Strategic ──
|
|
821
|
-
{ name: "product", type_id: "ent_001", maturity: "stable", since: "0.1.0" },
|
|
822
|
-
{ name: "outcome", type_id: "ent_002", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
823
|
-
{ name: "kpi", type_id: "ent_003", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
824
|
-
{ name: "objective", type_id: "ent_004", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
825
|
-
{ name: "key_result", type_id: "ent_005", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
826
|
-
{ name: "metric", type_id: "ent_006", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
827
|
-
// F7 (UPG-673): graduated proposed → stable at v0.9.x — proposed since 0.2.2,
|
|
828
|
-
// the metric-quality assessment artefact is settled with no open restructure.
|
|
829
|
-
{ name: "metric_quality_assessment", type_id: "ent_339", maturity: "stable", since: "0.2.2" },
|
|
830
|
-
{ name: "vision", type_id: "ent_007", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
831
|
-
{ name: "mission", type_id: "ent_008", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
832
|
-
{ name: "strategic_theme", type_id: "ent_009", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
833
|
-
{ name: "initiative", type_id: "ent_010", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
834
|
-
{ name: "capability", type_id: "ent_011", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
835
|
-
{ name: "value_stream", type_id: "ent_012", maturity: "stable", since: "0.1.0" },
|
|
836
|
-
{ name: "strategic_pillar", type_id: "ent_013", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
837
|
-
{ name: "assumption", type_id: "ent_014", maturity: "stable", since: "0.1.0" },
|
|
838
|
-
{ name: "decision", type_id: "ent_015", maturity: "stable", since: "0.1.0" },
|
|
839
|
-
{ name: "constraint", type_id: "ent_348", maturity: "stable", since: "0.4.3" },
|
|
840
|
-
// (0.17.4) Strategy-domain sibling of research_question / design_question,
|
|
841
|
-
// completing the domain-question triad. An open coordination/ownership question
|
|
842
|
-
// a plan is exposed to (distinct from `assumption`, which the plan is built on).
|
|
843
|
-
{ name: "strategic_question", type_id: "ent_357", maturity: "proposed", since: "0.17.4" },
|
|
844
|
-
// ── User ──
|
|
845
|
-
{ name: "persona", type_id: "ent_016", maturity: "stable", since: "0.1.0" },
|
|
846
|
-
{ name: "job", type_id: "ent_017", maturity: "stable", since: "0.1.0" },
|
|
847
|
-
{ name: "jtbd", type_id: "ent_332", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "job" },
|
|
848
|
-
{ name: "pain_point", type_id: "ent_018", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "need" },
|
|
849
|
-
{ name: "desired_outcome", type_id: "ent_019", maturity: "stable", since: "0.1.0" },
|
|
850
|
-
{ name: "job_step", type_id: "ent_020", maturity: "stable", since: "0.1.0" },
|
|
851
|
-
{ name: "user_need", type_id: "ent_021", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "need" },
|
|
852
|
-
{ name: "need", type_id: "ent_313", maturity: "stable", since: "0.1.0" },
|
|
853
|
-
{ name: "switching_cost", type_id: "ent_022", maturity: "stable", since: "0.1.0" },
|
|
854
|
-
// ── Discovery ──
|
|
855
|
-
{ name: "opportunity", type_id: "ent_023", maturity: "stable", since: "0.1.0", default_frameworks: ["opportunity-sizing", "rice-scoring"] },
|
|
856
|
-
{ name: "solution", type_id: "ent_024", maturity: "stable", since: "0.1.0", default_frameworks: ["rice-scoring"] },
|
|
857
|
-
{ name: "feasibility_study", type_id: "ent_025", maturity: "stable", since: "0.1.0" },
|
|
858
|
-
{ name: "design_sprint", type_id: "ent_026", maturity: "stable", since: "0.1.0" },
|
|
859
|
-
// ── Validation ──
|
|
860
|
-
// (since v0.4.0) `hypothesis` re-promoted to canonical-stable. The
|
|
861
|
-
// v0.2.8 rename to `hypothesis_claim` was over-split: "claim" is implied
|
|
862
|
-
// by being a hypothesis. Canonical name reverts; HypothesisClaimProperties
|
|
863
|
-
// renamed to HypothesisProperties. `hypothesis_claim` is now deprecated
|
|
864
|
-
// (→ `hypothesis`). `hypothesis_evidence` deprecated (→ `evidence`): the
|
|
865
|
-
// dual evidence_type enum smell resolved by enriching canonical `evidence`
|
|
866
|
-
// with evidence_rigor + evidence_source axes. Edge pattern switches to
|
|
867
|
-
// `hypothesis_has_evidence` (neutral, direction on node).
|
|
868
|
-
{ name: "hypothesis", type_id: "ent_027", maturity: "stable", since: "0.1.0" },
|
|
869
|
-
{ name: "hypothesis_claim", type_id: "ent_344", maturity: "deprecated", since: "0.2.8", deprecated_in: "0.4.0", replacement: "hypothesis" },
|
|
870
|
-
{ name: "hypothesis_evidence", type_id: "ent_345", maturity: "deprecated", since: "0.2.8", deprecated_in: "0.4.0", replacement: "evidence" },
|
|
871
|
-
// `experiment` is canonical (UPG-664). It has its own property schema
|
|
872
|
-
// (method, start_date, end_date, sample_size, expected_lift) and is the
|
|
873
|
-
// canonical unit of a structured test. The validation flow is
|
|
874
|
-
// `hypothesis → experiment_plan → experiment → experiment_run`: the plan is
|
|
875
|
-
// the validation design, the experiment is the structured test, the run is
|
|
876
|
-
// the optional multi-run/replication child.
|
|
877
|
-
{ name: "experiment", type_id: "ent_028", maturity: "stable", since: "0.1.0" },
|
|
878
|
-
// experiment_plan graduated proposed → stable (UPG-664). It is the canonical
|
|
879
|
-
// validation PLAN type — it absorbed `test_plan`'s planning properties
|
|
880
|
-
// (method / success_criteria / sample_size) when `test_plan` re-homed to the
|
|
881
|
-
// QA/testing domain (UPG-678).
|
|
882
|
-
{ name: "experiment_plan", type_id: "ent_340", maturity: "stable", since: "0.2.6" },
|
|
883
|
-
{ name: "experiment_run", type_id: "ent_341", maturity: "stable", since: "0.2.6" },
|
|
884
|
-
{ name: "learning", type_id: "ent_029", maturity: "stable", since: "0.1.0" },
|
|
885
|
-
// test_plan re-homed validation → testing/QA (UPG-678). It is the QA
|
|
886
|
-
// verification-procedure plan (test scope / environments / pass criteria);
|
|
887
|
-
// its former validation-planning role is carried by experiment_plan.
|
|
888
|
-
{ name: "test_plan", type_id: "ent_030", maturity: "stable", since: "0.1.0" },
|
|
889
|
-
{ name: "evidence", type_id: "ent_031", maturity: "stable", since: "0.1.0" },
|
|
890
|
-
{ name: "research_plan", type_id: "ent_032", maturity: "stable", since: "0.1.0" },
|
|
891
|
-
// ── Market Intelligence ──
|
|
892
|
-
{ name: "competitor", type_id: "ent_033", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
893
|
-
{ name: "competitor_feature", type_id: "ent_034", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
894
|
-
{ name: "competitor_signal", type_id: "ent_354", maturity: "proposed", since: "0.10.0", portfolio_shared: true },
|
|
895
|
-
{ name: "market_trend", type_id: "ent_035", maturity: "stable", since: "0.1.0" },
|
|
896
|
-
{ name: "market_segment", type_id: "ent_036", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
897
|
-
{ name: "competitive_analysis", type_id: "ent_037", maturity: "stable", since: "0.1.0" },
|
|
898
|
-
// Classification taxonomy hosted by competitive_analysis.
|
|
899
|
-
// F7 (UPG-673): graduated proposed → stable at v0.9.x — two minor releases
|
|
900
|
-
// stable since 0.4.0, the taxonomy-axis/value pair backs the competitive-
|
|
901
|
-
// analysis classification spine with no open rename/restructure ticket.
|
|
902
|
-
{ name: "classification_axis", type_id: "ent_346", maturity: "stable", since: "0.4.0", portfolio_shared: true },
|
|
903
|
-
{ name: "classification_value", type_id: "ent_347", maturity: "stable", since: "0.4.0", portfolio_shared: true },
|
|
904
|
-
// ── UX Research ──
|
|
905
|
-
{ name: "research_study", type_id: "ent_038", maturity: "stable", since: "0.1.0" },
|
|
906
|
-
{ name: "research_insight", type_id: "ent_039", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "insight" },
|
|
907
|
-
{ name: "insight", type_id: "ent_040", maturity: "stable", since: "0.1.0" },
|
|
908
|
-
{ name: "participant", type_id: "ent_041", maturity: "stable", since: "0.1.0" },
|
|
909
|
-
{ name: "observation", type_id: "ent_042", maturity: "stable", since: "0.1.0" },
|
|
910
|
-
{ name: "quote", type_id: "ent_043", maturity: "stable", since: "0.1.0" },
|
|
911
|
-
{ name: "affinity_cluster", type_id: "ent_044", maturity: "stable", since: "0.1.0" },
|
|
912
|
-
{ name: "research_question", type_id: "ent_045", maturity: "stable", since: "0.1.0" },
|
|
913
|
-
{ name: "interview_guide", type_id: "ent_046", maturity: "stable", since: "0.1.0" },
|
|
914
|
-
{ name: "finding", type_id: "ent_047", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "insight" },
|
|
915
|
-
{ name: "survey_response", type_id: "ent_048", maturity: "stable", since: "0.1.0" },
|
|
916
|
-
{ name: "highlight", type_id: "ent_049", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "observation" },
|
|
917
|
-
// ── Design ──
|
|
918
|
-
{ name: "user_journey", type_id: "ent_050", maturity: "stable", since: "0.1.0" },
|
|
919
|
-
{ name: "journey_step", type_id: "ent_051", maturity: "stable", since: "0.1.0" },
|
|
920
|
-
{ name: "ux_insight", type_id: "ent_052", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "insight" },
|
|
921
|
-
{ name: "design_question", type_id: "ent_053", maturity: "stable", since: "0.1.0" },
|
|
922
|
-
{ name: "how_might_we", type_id: "ent_333", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "design_question" },
|
|
923
|
-
{ name: "design_concept", type_id: "ent_054", maturity: "stable", since: "0.1.0" },
|
|
924
|
-
{ name: "prototype", type_id: "ent_055", maturity: "stable", since: "0.1.0" },
|
|
925
|
-
{ name: "design_component", type_id: "ent_056", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
926
|
-
{ name: "design_token", type_id: "ent_057", maturity: "stable", since: "0.1.0" },
|
|
927
|
-
{ name: "brand_identity", type_id: "ent_058", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
928
|
-
{ name: "brand_colour", type_id: "ent_059", maturity: "stable", since: "0.1.0" },
|
|
929
|
-
{ name: "brand_typography", type_id: "ent_060", maturity: "stable", since: "0.1.0" },
|
|
930
|
-
{ name: "brand_voice", type_id: "ent_061", maturity: "stable", since: "0.1.0" },
|
|
931
|
-
{ name: "wireframe", type_id: "ent_062", maturity: "stable", since: "0.1.0" },
|
|
932
|
-
{ name: "design_pattern", type_id: "ent_063", maturity: "stable", since: "0.1.0" },
|
|
933
|
-
{ name: "design_guideline", type_id: "ent_064", maturity: "stable", since: "0.1.0" },
|
|
934
|
-
{ name: "annotation", type_id: "ent_065", maturity: "stable", since: "0.1.0" },
|
|
935
|
-
{ name: "interaction_spec", type_id: "ent_066", maturity: "stable", since: "0.1.0" },
|
|
936
|
-
{ name: "design_system", type_id: "ent_067", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
937
|
-
{ name: "user_flow", type_id: "ent_068", maturity: "stable", since: "0.1.0" },
|
|
938
|
-
{ name: "screen", type_id: "ent_069", maturity: "stable", since: "0.1.0" },
|
|
939
|
-
{ name: "screen_state", type_id: "ent_070", maturity: "stable", since: "0.1.0" },
|
|
940
|
-
// surface (0.27.0): the place inside a screen. `screen` is route-level
|
|
941
|
-
// (route / viewport / access_level); `surface` is the contested slot within
|
|
942
|
-
// it, carrying its occupants and the rule that arbitrates between them.
|
|
943
|
-
// Enters `proposed` per the maturity rubric (precedent: planning_cycle 0.20.0).
|
|
944
|
-
{ name: "surface", type_id: "ent_359", maturity: "proposed", since: "0.27.0" },
|
|
945
|
-
{ name: "configuration_axis", type_id: "ent_360", maturity: "proposed", since: "0.30.0" },
|
|
946
|
-
{ name: "journey_phase", type_id: "ent_330", maturity: "proposed", since: "0.2.0" },
|
|
947
|
-
{ name: "journey_action", type_id: "ent_331", maturity: "proposed", since: "0.2.0" },
|
|
948
|
-
{ name: "design_decision", type_id: "ent_319", maturity: "deprecated", since: "0.2.0", deprecated_in: "0.2.0", replacement: "decision" },
|
|
949
|
-
// F7 (UPG-673): graduated proposed → stable at v0.9.x — proposed since 0.2.0,
|
|
950
|
-
// the brand-identity set (logo + imagery) is settled with no open rename.
|
|
951
|
-
{ name: "brand_logo", type_id: "ent_321", maturity: "stable", since: "0.2.0" },
|
|
952
|
-
{ name: "brand_imagery", type_id: "ent_322", maturity: "stable", since: "0.2.0" },
|
|
953
|
-
// ── Product Spec ──
|
|
954
|
-
{ name: "feature_area", type_id: "ent_314", maturity: "stable", since: "0.1.0" },
|
|
955
|
-
{ name: "feature", type_id: "ent_071", maturity: "stable", since: "0.1.0" },
|
|
956
|
-
{ name: "epic", type_id: "ent_072", maturity: "stable", since: "0.1.0" },
|
|
957
|
-
// `user_story` is the templated "As X, I want Y so Z" promise: a stable,
|
|
958
|
-
// lifecycle-free design artefact (UCS pattern P5). The v0.2.7 split EXTRACTED
|
|
959
|
-
// the engineering work into a separate `task` (the lifecycle-bearing work-unit,
|
|
960
|
-
// linked via `task_implements_user_story`); the split was right. But the
|
|
961
|
-
// surviving statement half was renamed to the coined `story_statement`, which
|
|
962
|
-
// raised the adoption barrier. "user story" is the universally-recognised
|
|
963
|
-
// industry term for exactly this artefact. v0.7.0 (UPG-571) re-canonicalises
|
|
964
|
-
// the statement under `user_story`; `story_statement` becomes a deprecated
|
|
965
|
-
// alias. `story_task` (the original work half) was already collapsed into
|
|
966
|
-
// canonical `task` at v0.4.0. So the canonical shape is: user_story (statement)
|
|
967
|
-
// + task (work), linked by `task_implements_user_story`.
|
|
968
|
-
//
|
|
969
|
-
// F7 (UPG-673) — DEFERRED, deliberately kept `proposed`. The audit flagged
|
|
970
|
-
// user_story as a stable-spine candidate, but the v0.7.0 re-canon contract
|
|
971
|
-
// (UPG-571) freezes maturity at `proposed` until the re-canonicalised name
|
|
972
|
-
// has soaked across a full migration window. `user-story-split.test.ts`
|
|
973
|
-
// ("user_story is canonical again (ent_073, proposed, not deprecated)")
|
|
974
|
-
// asserts `proposed` as the post-re-canon invariant. Graduating here would
|
|
975
|
-
// break that contract; promotion is a separate, ticketed decision once the
|
|
976
|
-
// story_statement → user_story migration has fully aged out.
|
|
977
|
-
{ name: "user_story", type_id: "ent_073", maturity: "stable", since: "0.1.0" },
|
|
978
|
-
{ name: "story_statement", type_id: "ent_342", maturity: "deprecated", since: "0.2.7", deprecated_in: "0.7.0", replacement: "user_story" },
|
|
979
|
-
{ name: "story_task", type_id: "ent_343", maturity: "deprecated", since: "0.2.7", deprecated_in: "0.4.0", replacement: "task" },
|
|
980
|
-
{ name: "acceptance_criterion", type_id: "ent_074", maturity: "stable", since: "0.1.0" },
|
|
981
|
-
{ name: "release", type_id: "ent_075", maturity: "stable", since: "0.1.0" },
|
|
982
|
-
{ name: "task", type_id: "ent_076", maturity: "stable", since: "0.1.0" },
|
|
983
|
-
{ name: "bug", type_id: "ent_077", maturity: "stable", since: "0.1.0" },
|
|
984
|
-
{ name: "roadmap", type_id: "ent_078", maturity: "stable", since: "0.1.0" },
|
|
985
|
-
{ name: "roadmap_item", type_id: "ent_079", maturity: "stable", since: "0.1.0" },
|
|
986
|
-
{ name: "theme", type_id: "ent_080", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.9.0", replacement: "roadmap_theme" },
|
|
987
|
-
{ name: "roadmap_theme", type_id: "ent_351", maturity: "stable", since: "0.1.0" },
|
|
988
|
-
{ name: "changelog", type_id: "ent_081", maturity: "stable", since: "0.1.0" },
|
|
989
|
-
// (0.20.0) The cadence axis: a named, dated interval that work flows through
|
|
990
|
-
// and which nests (a program-increment contains iterations; a cycle contains
|
|
991
|
-
// its cooldown). One self-nesting type with a `cadence_kind` discriminator
|
|
992
|
-
// spans sprint / iteration / quarter / PI / cooldown rather than minting a
|
|
993
|
-
// type per methodology. `portfolio_shared` because a coarse cycle is an
|
|
994
|
-
// org-shared interval an objective in a rollup graph and a story in a product
|
|
995
|
-
// graph both schedule into.
|
|
996
|
-
{ name: "planning_cycle", type_id: "ent_358", maturity: "proposed", since: "0.20.0", portfolio_shared: true },
|
|
997
|
-
// ── Engineering ──
|
|
998
|
-
{ name: "bounded_context", type_id: "ent_082", maturity: "stable", since: "0.1.0" },
|
|
999
|
-
{ name: "service", type_id: "ent_083", maturity: "stable", since: "0.1.0" },
|
|
1000
|
-
{ name: "domain_event", type_id: "ent_084", maturity: "stable", since: "0.1.0" },
|
|
1001
|
-
{ name: "api_contract", type_id: "ent_085", maturity: "stable", since: "0.1.0" },
|
|
1002
|
-
{ name: "architecture_decision", type_id: "ent_086", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "decision" },
|
|
1003
|
-
{ name: "technical_debt_item", type_id: "ent_087", maturity: "stable", since: "0.1.0" },
|
|
1004
|
-
{ name: "feature_flag", type_id: "ent_088", maturity: "stable", since: "0.1.0" },
|
|
1005
|
-
{ name: "deployment", type_id: "ent_089", maturity: "stable", since: "0.1.0" },
|
|
1006
|
-
{ name: "aggregate", type_id: "ent_090", maturity: "stable", since: "0.1.0" },
|
|
1007
|
-
{ name: "domain_entity", type_id: "ent_091", maturity: "stable", since: "0.1.0" },
|
|
1008
|
-
{ name: "value_object", type_id: "ent_092", maturity: "stable", since: "0.1.0" },
|
|
1009
|
-
{ name: "command", type_id: "ent_093", maturity: "stable", since: "0.1.0" },
|
|
1010
|
-
{ name: "read_model", type_id: "ent_094", maturity: "stable", since: "0.1.0" },
|
|
1011
|
-
{ name: "api_endpoint", type_id: "ent_095", maturity: "stable", since: "0.1.0" },
|
|
1012
|
-
{ name: "database_schema", type_id: "ent_096", maturity: "stable", since: "0.1.0" },
|
|
1013
|
-
{ name: "queue_topic", type_id: "ent_097", maturity: "stable", since: "0.1.0" },
|
|
1014
|
-
{ name: "build_artifact", type_id: "ent_098", maturity: "stable", since: "0.1.0" },
|
|
1015
|
-
{ name: "code_repository", type_id: "ent_099", maturity: "stable", since: "0.1.0" },
|
|
1016
|
-
{ name: "library_dependency", type_id: "ent_100", maturity: "stable", since: "0.1.0" },
|
|
1017
|
-
{ name: "integration_pattern", type_id: "ent_101", maturity: "stable", since: "0.1.0" },
|
|
1018
|
-
{ name: "external_api", type_id: "ent_102", maturity: "stable", since: "0.1.0" },
|
|
1019
|
-
{ name: "data_flow", type_id: "ent_103", maturity: "stable", since: "0.1.0" },
|
|
1020
|
-
{ name: "investigation", type_id: "ent_315", maturity: "stable", since: "0.2.0" },
|
|
1021
|
-
{ name: "root_cause", type_id: "ent_316", maturity: "stable", since: "0.2.0" },
|
|
1022
|
-
{ name: "symptom", type_id: "ent_317", maturity: "stable", since: "0.2.0" },
|
|
1023
|
-
{ name: "fix", type_id: "ent_318", maturity: "stable", since: "0.2.0" },
|
|
1024
|
-
// ── Growth ──
|
|
1025
|
-
{ name: "north_star_metric", type_id: "ent_104", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
1026
|
-
{ name: "input_metric", type_id: "ent_105", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
1027
|
-
{ name: "funnel", type_id: "ent_106", maturity: "stable", since: "0.1.0" },
|
|
1028
|
-
{ name: "funnel_step", type_id: "ent_107", maturity: "stable", since: "0.1.0" },
|
|
1029
|
-
{ name: "acquisition_channel", type_id: "ent_108", maturity: "stable", since: "0.1.0" },
|
|
1030
|
-
{ name: "growth_campaign", type_id: "ent_109", maturity: "stable", since: "0.1.0" },
|
|
1031
|
-
{ name: "campaign", type_id: "ent_337", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "growth_campaign" },
|
|
1032
|
-
{ name: "cohort", type_id: "ent_110", maturity: "stable", since: "0.1.0" },
|
|
1033
|
-
{ name: "behavioral_segment", type_id: "ent_111", maturity: "stable", since: "0.1.0" },
|
|
1034
|
-
{ name: "segment", type_id: "ent_338", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "behavioral_segment" },
|
|
1035
|
-
{ name: "growth_loop", type_id: "ent_112", maturity: "stable", since: "0.1.0" },
|
|
1036
|
-
{ name: "growth_experiment", type_id: "ent_113", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "experiment" },
|
|
1037
|
-
{ name: "variant", type_id: "ent_114", maturity: "stable", since: "0.1.0" },
|
|
1038
|
-
{ name: "attribution_model", type_id: "ent_115", maturity: "stable", since: "0.1.0" },
|
|
1039
|
-
// ── Business Model ──
|
|
1040
|
-
{ name: "business_model", type_id: "ent_116", maturity: "stable", since: "0.1.0" },
|
|
1041
|
-
{ name: "value_proposition", type_id: "ent_117", maturity: "stable", since: "0.1.0" },
|
|
1042
|
-
{ name: "revenue_stream", type_id: "ent_118", maturity: "stable", since: "0.1.0" },
|
|
1043
|
-
{ name: "pricing_tier", type_id: "ent_119", maturity: "stable", since: "0.1.0" },
|
|
1044
|
-
{ name: "cost_structure", type_id: "ent_120", maturity: "stable", since: "0.1.0" },
|
|
1045
|
-
{ name: "unit_economics", type_id: "ent_121", maturity: "stable", since: "0.1.0" },
|
|
1046
|
-
{ name: "partnership", type_id: "ent_122", maturity: "stable", since: "0.1.0" },
|
|
1047
|
-
{ name: "key_resource", type_id: "ent_123", maturity: "stable", since: "0.1.0" },
|
|
1048
|
-
{ name: "key_activity", type_id: "ent_124", maturity: "stable", since: "0.1.0" },
|
|
1049
|
-
{ name: "customer_segment_bm", type_id: "ent_125", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "market_segment" },
|
|
1050
|
-
{ name: "channel_bm", type_id: "ent_126", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "distribution_channel" },
|
|
1051
|
-
{ name: "target_customer_segment", type_id: "ent_329", maturity: "deprecated", since: "0.2.0", deprecated_in: "0.2.0", replacement: "market_segment" },
|
|
1052
|
-
{ name: "customer_relationship", type_id: "ent_127", maturity: "stable", since: "0.1.0" },
|
|
1053
|
-
{ name: "distribution_channel", type_id: "ent_128", maturity: "stable", since: "0.1.0" },
|
|
1054
|
-
// ── Go-To-Market ──
|
|
1055
|
-
{ name: "gtm_strategy", type_id: "ent_129", maturity: "stable", since: "0.1.0" },
|
|
1056
|
-
{ name: "ideal_customer_profile", type_id: "ent_130", maturity: "stable", since: "0.1.0" },
|
|
1057
|
-
{ name: "positioning", type_id: "ent_131", maturity: "stable", since: "0.1.0" },
|
|
1058
|
-
{ name: "messaging", type_id: "ent_132", maturity: "stable", since: "0.1.0" },
|
|
1059
|
-
{ name: "launch", type_id: "ent_133", maturity: "stable", since: "0.1.0" },
|
|
1060
|
-
{ name: "content_strategy", type_id: "ent_134", maturity: "stable", since: "0.1.0" },
|
|
1061
|
-
{ name: "sales_motion", type_id: "ent_135", maturity: "stable", since: "0.1.0" },
|
|
1062
|
-
{ name: "competitive_battle_card", type_id: "ent_136", maturity: "stable", since: "0.1.0" },
|
|
1063
|
-
{ name: "demand_gen_program", type_id: "ent_137", maturity: "stable", since: "0.1.0" },
|
|
1064
|
-
{ name: "territory", type_id: "ent_138", maturity: "stable", since: "0.1.0" },
|
|
1065
|
-
{ name: "objection", type_id: "ent_139", maturity: "stable", since: "0.1.0" },
|
|
1066
|
-
{ name: "rebuttal", type_id: "ent_140", maturity: "stable", since: "0.1.0" },
|
|
1067
|
-
{ name: "proof_point", type_id: "ent_141", maturity: "stable", since: "0.1.0" },
|
|
1068
|
-
// ── Team & Organisation ──
|
|
1069
|
-
{ name: "team", type_id: "ent_142", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
1070
|
-
{ name: "role", type_id: "ent_143", maturity: "stable", since: "0.1.0" },
|
|
1071
|
-
{ name: "stakeholder", type_id: "ent_144", maturity: "stable", since: "0.1.0" },
|
|
1072
|
-
{ name: "person", type_id: "ent_349", maturity: "stable", since: "0.5.0" },
|
|
1073
|
-
{ name: "product_decision", type_id: "ent_145", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "decision" },
|
|
1074
|
-
{ name: "team_okr", type_id: "ent_146", maturity: "stable", since: "0.1.0" },
|
|
1075
|
-
{ name: "retrospective", type_id: "ent_147", maturity: "stable", since: "0.1.0" },
|
|
1076
|
-
{ name: "dependency", type_id: "ent_148", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
1077
|
-
{ name: "department", type_id: "ent_149", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
1078
|
-
{ name: "skill", type_id: "ent_150", maturity: "stable", since: "0.1.0" },
|
|
1079
|
-
{ name: "ceremony", type_id: "ent_151", maturity: "stable", since: "0.1.0" },
|
|
1080
|
-
{ name: "capacity_plan", type_id: "ent_152", maturity: "stable", since: "0.1.0" },
|
|
1081
|
-
// ── Data & Analytics ──
|
|
1082
|
-
{ name: "data_source", type_id: "ent_153", maturity: "stable", since: "0.1.0" },
|
|
1083
|
-
{ name: "metric_definition", type_id: "ent_154", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "metric" },
|
|
1084
|
-
{ name: "event_schema", type_id: "ent_155", maturity: "stable", since: "0.1.0" },
|
|
1085
|
-
{ name: "dashboard", type_id: "ent_156", maturity: "stable", since: "0.1.0" },
|
|
1086
|
-
{ name: "ab_test", type_id: "ent_157", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "experiment" },
|
|
1087
|
-
{ name: "data_model", type_id: "ent_158", maturity: "stable", since: "0.1.0" },
|
|
1088
|
-
{ name: "data_quality_rule", type_id: "ent_159", maturity: "stable", since: "0.1.0" },
|
|
1089
|
-
{ name: "data_product", type_id: "ent_160", maturity: "stable", since: "0.1.0" },
|
|
1090
|
-
{ name: "data_pipeline", type_id: "ent_161", maturity: "stable", since: "0.1.0" },
|
|
1091
|
-
{ name: "data_lineage", type_id: "ent_162", maturity: "stable", since: "0.1.0" },
|
|
1092
|
-
{ name: "glossary_term", type_id: "ent_163", maturity: "stable", since: "0.1.0" },
|
|
1093
|
-
{ name: "data_domain", type_id: "ent_164", maturity: "stable", since: "0.1.0" },
|
|
1094
|
-
{ name: "report", type_id: "ent_165", maturity: "stable", since: "0.1.0" },
|
|
1095
|
-
// ── Content & Knowledge ──
|
|
1096
|
-
{ name: "content_piece", type_id: "ent_166", maturity: "stable", since: "0.1.0" },
|
|
1097
|
-
{ name: "knowledge_base_article", type_id: "ent_167", maturity: "stable", since: "0.1.0" },
|
|
1098
|
-
{ name: "brand_asset", type_id: "ent_168", maturity: "stable", since: "0.1.0" },
|
|
1099
|
-
{ name: "internal_doc", type_id: "ent_169", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "document" },
|
|
1100
|
-
{ name: "prompt_template", type_id: "ent_170", maturity: "stable", since: "0.1.0" },
|
|
1101
|
-
{ name: "content_calendar", type_id: "ent_171", maturity: "stable", since: "0.1.0" },
|
|
1102
|
-
{ name: "content_theme", type_id: "ent_172", maturity: "stable", since: "0.1.0" },
|
|
1103
|
-
{ name: "documentation_template", type_id: "ent_173", maturity: "stable", since: "0.1.0" },
|
|
1104
|
-
{ name: "document", type_id: "ent_320", maturity: "stable", since: "0.2.0" },
|
|
1105
|
-
// ── Legal & Compliance ──
|
|
1106
|
-
{ name: "compliance_requirement", type_id: "ent_174", maturity: "stable", since: "0.1.0" },
|
|
1107
|
-
{ name: "risk", type_id: "ent_175", maturity: "stable", since: "0.1.0" },
|
|
1108
|
-
{ name: "data_contract", type_id: "ent_176", maturity: "stable", since: "0.1.0" },
|
|
1109
|
-
{ name: "legal_entity", type_id: "ent_177", maturity: "stable", since: "0.1.0" },
|
|
1110
|
-
{ name: "ip_asset", type_id: "ent_178", maturity: "stable", since: "0.1.0" },
|
|
1111
|
-
{ name: "audit_log_policy", type_id: "ent_179", maturity: "stable", since: "0.1.0" },
|
|
1112
|
-
{ name: "contract", type_id: "ent_180", maturity: "stable", since: "0.1.0" },
|
|
1113
|
-
{ name: "contract_clause", type_id: "ent_181", maturity: "stable", since: "0.1.0" },
|
|
1114
|
-
{ name: "privacy_policy", type_id: "ent_182", maturity: "stable", since: "0.1.0" },
|
|
1115
|
-
{ name: "compliance_framework", type_id: "ent_183", maturity: "stable", since: "0.1.0" },
|
|
1116
|
-
{ name: "security_audit", type_id: "ent_184", maturity: "stable", since: "0.1.0" },
|
|
1117
|
-
// ── DevOps & Platform ──
|
|
1118
|
-
{ name: "service_level_indicator", type_id: "ent_185", maturity: "stable", since: "0.1.0" },
|
|
1119
|
-
{ name: "sli", type_id: "ent_334", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "service_level_indicator" },
|
|
1120
|
-
{ name: "service_level_objective", type_id: "ent_186", maturity: "stable", since: "0.1.0" },
|
|
1121
|
-
{ name: "slo", type_id: "ent_335", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "service_level_objective" },
|
|
1122
|
-
{ name: "error_budget", type_id: "ent_187", maturity: "stable", since: "0.1.0" },
|
|
1123
|
-
{ name: "incident", type_id: "ent_188", maturity: "stable", since: "0.1.0" },
|
|
1124
|
-
{ name: "postmortem", type_id: "ent_189", maturity: "stable", since: "0.1.0" },
|
|
1125
|
-
{ name: "runbook", type_id: "ent_190", maturity: "stable", since: "0.1.0" },
|
|
1126
|
-
{ name: "monitor", type_id: "ent_191", maturity: "stable", since: "0.1.0" },
|
|
1127
|
-
{ name: "alert_rule", type_id: "ent_192", maturity: "stable", since: "0.1.0" },
|
|
1128
|
-
{ name: "ci_pipeline", type_id: "ent_193", maturity: "stable", since: "0.1.0" },
|
|
1129
|
-
{ name: "release_strategy", type_id: "ent_194", maturity: "stable", since: "0.1.0" },
|
|
1130
|
-
{ name: "on_call_rotation", type_id: "ent_195", maturity: "stable", since: "0.1.0" },
|
|
1131
|
-
{ name: "infrastructure_component", type_id: "ent_196", maturity: "stable", since: "0.1.0" },
|
|
1132
|
-
// ── Security ──
|
|
1133
|
-
{ name: "threat_model", type_id: "ent_197", maturity: "stable", since: "0.1.0" },
|
|
1134
|
-
{ name: "threat", type_id: "ent_198", maturity: "stable", since: "0.1.0" },
|
|
1135
|
-
{ name: "vulnerability", type_id: "ent_199", maturity: "stable", since: "0.1.0" },
|
|
1136
|
-
{ name: "security_control", type_id: "ent_200", maturity: "stable", since: "0.1.0" },
|
|
1137
|
-
{ name: "security_policy", type_id: "ent_201", maturity: "stable", since: "0.1.0" },
|
|
1138
|
-
{ name: "security_incident", type_id: "ent_202", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "incident" },
|
|
1139
|
-
{ name: "penetration_test", type_id: "ent_203", maturity: "stable", since: "0.1.0" },
|
|
1140
|
-
{ name: "security_review", type_id: "ent_204", maturity: "stable", since: "0.1.0" },
|
|
1141
|
-
{ name: "data_classification", type_id: "ent_205", maturity: "stable", since: "0.1.0" },
|
|
1142
|
-
{ name: "access_policy", type_id: "ent_206", maturity: "stable", since: "0.1.0" },
|
|
1143
|
-
// ── Accessibility ──
|
|
1144
|
-
{ name: "a11y_standard", type_id: "ent_207", maturity: "stable", since: "0.1.0" },
|
|
1145
|
-
{ name: "a11y_guideline", type_id: "ent_208", maturity: "stable", since: "0.1.0" },
|
|
1146
|
-
{ name: "a11y_audit", type_id: "ent_209", maturity: "stable", since: "0.1.0" },
|
|
1147
|
-
{ name: "a11y_issue", type_id: "ent_210", maturity: "stable", since: "0.1.0" },
|
|
1148
|
-
{ name: "a11y_annotation", type_id: "ent_211", maturity: "stable", since: "0.1.0" },
|
|
1149
|
-
// ── QA & Testing ──
|
|
1150
|
-
{ name: "test_suite", type_id: "ent_212", maturity: "stable", since: "0.1.0" },
|
|
1151
|
-
{ name: "test_case", type_id: "ent_213", maturity: "stable", since: "0.1.0" },
|
|
1152
|
-
{ name: "qa_session", type_id: "ent_214", maturity: "stable", since: "0.1.0" },
|
|
1153
|
-
{ name: "regression_test", type_id: "ent_215", maturity: "stable", since: "0.1.0" },
|
|
1154
|
-
{ name: "test_coverage_report", type_id: "ent_216", maturity: "stable", since: "0.1.0" },
|
|
1155
|
-
{ name: "test_environment", type_id: "ent_217", maturity: "stable", since: "0.1.0" },
|
|
1156
|
-
{ name: "defect_report", type_id: "ent_218", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "support_ticket" },
|
|
1157
|
-
{ name: "test_result", type_id: "ent_327", maturity: "proposed", since: "0.2.0" },
|
|
1158
|
-
// ── Feedback & Voice of Customer ──
|
|
1159
|
-
{ name: "feedback_program", type_id: "ent_219", maturity: "stable", since: "0.1.0" },
|
|
1160
|
-
{ name: "feature_request", type_id: "ent_220", maturity: "stable", since: "0.1.0" },
|
|
1161
|
-
{ name: "feedback_vote", type_id: "ent_221", maturity: "stable", since: "0.1.0" },
|
|
1162
|
-
{ name: "nps_campaign", type_id: "ent_222", maturity: "stable", since: "0.1.0" },
|
|
1163
|
-
{ name: "user_advisory_board", type_id: "ent_223", maturity: "stable", since: "0.1.0" },
|
|
1164
|
-
{ name: "beta_program", type_id: "ent_224", maturity: "stable", since: "0.1.0" },
|
|
1165
|
-
{ name: "feedback_theme", type_id: "ent_225", maturity: "stable", since: "0.1.0" },
|
|
1166
|
-
// ── Pricing & Packaging ──
|
|
1167
|
-
{ name: "pricing_strategy", type_id: "ent_226", maturity: "stable", since: "0.1.0" },
|
|
1168
|
-
{ name: "pricing_experiment", type_id: "ent_227", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "experiment" },
|
|
1169
|
-
{ name: "package", type_id: "ent_228", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "pricing_tier" },
|
|
1170
|
-
{ name: "discount_strategy", type_id: "ent_229", maturity: "stable", since: "0.1.0" },
|
|
1171
|
-
{ name: "trial_config", type_id: "ent_230", maturity: "stable", since: "0.1.0" },
|
|
1172
|
-
{ name: "paywall", type_id: "ent_231", maturity: "stable", since: "0.1.0" },
|
|
1173
|
-
// ── AI/ML Operations ──
|
|
1174
|
-
{ name: "ai_model", type_id: "ent_232", maturity: "stable", since: "0.1.0" },
|
|
1175
|
-
{ name: "prompt_version", type_id: "ent_233", maturity: "stable", since: "0.1.0" },
|
|
1176
|
-
{ name: "eval_benchmark", type_id: "ent_234", maturity: "stable", since: "0.1.0" },
|
|
1177
|
-
{ name: "eval_run", type_id: "ent_235", maturity: "stable", since: "0.1.0" },
|
|
1178
|
-
{ name: "ai_cost_tracker", type_id: "ent_236", maturity: "stable", since: "0.1.0" },
|
|
1179
|
-
{ name: "hallucination_report", type_id: "ent_237", maturity: "stable", since: "0.1.0" },
|
|
1180
|
-
{ name: "ai_guardrail", type_id: "ent_238", maturity: "stable", since: "0.1.0" },
|
|
1181
|
-
{ name: "model_comparison", type_id: "ent_239", maturity: "stable", since: "0.1.0" },
|
|
1182
|
-
{ name: "ai_experiment", type_id: "ent_323", maturity: "proposed", since: "0.2.0" },
|
|
1183
|
-
{ name: "ai_dataset", type_id: "ent_324", maturity: "proposed", since: "0.2.0" },
|
|
1184
|
-
{ name: "ai_trace", type_id: "ent_325", maturity: "proposed", since: "0.2.0" },
|
|
1185
|
-
// ── Agentic Workflows ──
|
|
1186
|
-
{ name: "workflow_template", type_id: "ent_240", maturity: "stable", since: "0.1.0" },
|
|
1187
|
-
{ name: "workflow_run", type_id: "ent_241", maturity: "stable", since: "0.1.0" },
|
|
1188
|
-
{ name: "agent_definition", type_id: "ent_242", maturity: "stable", since: "0.1.0" },
|
|
1189
|
-
{ name: "agent_session", type_id: "ent_243", maturity: "stable", since: "0.1.0" },
|
|
1190
|
-
{ name: "review_gate", type_id: "ent_244", maturity: "stable", since: "0.1.0" },
|
|
1191
|
-
{ name: "approval_record", type_id: "ent_245", maturity: "stable", since: "0.1.0" },
|
|
1192
|
-
{ name: "agent_skill", type_id: "ent_246", maturity: "stable", since: "0.1.0" },
|
|
1193
|
-
{ name: "agent_hook", type_id: "ent_247", maturity: "stable", since: "0.1.0" },
|
|
1194
|
-
{ name: "workflow_artifact", type_id: "ent_248", maturity: "stable", since: "0.1.0" },
|
|
1195
|
-
{ name: "agent_task", type_id: "ent_326", maturity: "proposed", since: "0.2.0" },
|
|
1196
|
-
// ── Portfolio ──
|
|
1197
|
-
{ name: "organization", type_id: "ent_249", maturity: "stable", since: "0.1.0" },
|
|
1198
|
-
{ name: "portfolio", type_id: "ent_250", maturity: "stable", since: "0.1.0" },
|
|
1199
|
-
{ name: "product_area", type_id: "ent_251", maturity: "stable", since: "0.1.0" },
|
|
1200
|
-
// ── Sales & Revenue ──
|
|
1201
|
-
{ name: "account", type_id: "ent_252", maturity: "stable", since: "0.1.0" },
|
|
1202
|
-
{ name: "contact", type_id: "ent_253", maturity: "stable", since: "0.1.0" },
|
|
1203
|
-
{ name: "lead", type_id: "ent_254", maturity: "stable", since: "0.1.0" },
|
|
1204
|
-
{ name: "deal", type_id: "ent_255", maturity: "stable", since: "0.1.0" },
|
|
1205
|
-
{ name: "pipeline_sales", type_id: "ent_256", maturity: "stable", since: "0.1.0" },
|
|
1206
|
-
{ name: "pipeline_stage", type_id: "ent_257", maturity: "stable", since: "0.1.0" },
|
|
1207
|
-
{ name: "quote_document", type_id: "ent_258", maturity: "stable", since: "0.1.0" },
|
|
1208
|
-
{ name: "subscription", type_id: "ent_259", maturity: "stable", since: "0.1.0" },
|
|
1209
|
-
{ name: "invoice", type_id: "ent_260", maturity: "stable", since: "0.1.0" },
|
|
1210
|
-
{ name: "forecast", type_id: "ent_261", maturity: "stable", since: "0.1.0" },
|
|
1211
|
-
// ── Program Management ──
|
|
1212
|
-
{ name: "program", type_id: "ent_262", maturity: "stable", since: "0.1.0" },
|
|
1213
|
-
{ name: "project", type_id: "ent_263", maturity: "stable", since: "0.1.0" },
|
|
1214
|
-
// `portfolio_shared` (0.25.1 feedback): a milestone is often a cross-team gate,
|
|
1215
|
-
// not one project's checkpoint — an org-wide "Open Beta" that several products'
|
|
1216
|
-
// projects must all satisfy. Shared tier lets `project_targets_milestone` (and
|
|
1217
|
-
// the other milestone edges) pass the cross-scope gate as `provisional`, same
|
|
1218
|
-
// as `project_implements_initiative`. Precedent: `planning_cycle` (0.20.0).
|
|
1219
|
-
{ name: "milestone", type_id: "ent_264", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
1220
|
-
{ name: "risk_register", type_id: "ent_265", maturity: "stable", since: "0.1.0" },
|
|
1221
|
-
{ name: "risk_item", type_id: "ent_266", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "risk" },
|
|
1222
|
-
{ name: "change_request", type_id: "ent_267", maturity: "stable", since: "0.1.0" },
|
|
1223
|
-
{ name: "deliverable", type_id: "ent_268", maturity: "stable", since: "0.1.0" },
|
|
1224
|
-
{ name: "resource_allocation", type_id: "ent_269", maturity: "stable", since: "0.1.0" },
|
|
1225
|
-
{ name: "status_report", type_id: "ent_270", maturity: "stable", since: "0.1.0" },
|
|
1226
|
-
// ── Marketing Operations ──
|
|
1227
|
-
{ name: "marketing_strategy", type_id: "ent_271", maturity: "stable", since: "0.1.0" },
|
|
1228
|
-
{ name: "marketing_channel", type_id: "ent_272", maturity: "stable", since: "0.1.0" },
|
|
1229
|
-
{ name: "marketing_campaign_plan", type_id: "ent_273", maturity: "stable", since: "0.1.0" },
|
|
1230
|
-
{ name: "email_sequence", type_id: "ent_274", maturity: "stable", since: "0.1.0" },
|
|
1231
|
-
{ name: "social_post", type_id: "ent_275", maturity: "stable", since: "0.1.0" },
|
|
1232
|
-
{ name: "seo_keyword", type_id: "ent_276", maturity: "stable", since: "0.1.0" },
|
|
1233
|
-
{ name: "ad_creative", type_id: "ent_277", maturity: "stable", since: "0.1.0" },
|
|
1234
|
-
{ name: "press_release", type_id: "ent_278", maturity: "stable", since: "0.1.0" },
|
|
1235
|
-
{ name: "event", type_id: "ent_279", maturity: "stable", since: "0.1.0" },
|
|
1236
|
-
{ name: "community_initiative", type_id: "ent_280", maturity: "stable", since: "0.1.0" },
|
|
1237
|
-
// ── Operations & Customer Success ──
|
|
1238
|
-
{ name: "support_ticket", type_id: "ent_281", maturity: "stable", since: "0.1.0" },
|
|
1239
|
-
{ name: "customer_feedback", type_id: "ent_282", maturity: "stable", since: "0.1.0" },
|
|
1240
|
-
{ name: "churn_reason", type_id: "ent_283", maturity: "stable", since: "0.1.0" },
|
|
1241
|
-
{ name: "onboarding_flow", type_id: "ent_284", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "user_flow" },
|
|
1242
|
-
{ name: "customer_health_score", type_id: "ent_285", maturity: "stable", since: "0.1.0" },
|
|
1243
|
-
{ name: "playbook", type_id: "ent_286", maturity: "stable", since: "0.1.0" },
|
|
1244
|
-
{ name: "service_level_agreement", type_id: "ent_287", maturity: "stable", since: "0.1.0" },
|
|
1245
|
-
{ name: "sla", type_id: "ent_336", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.2.0", replacement: "service_level_agreement" },
|
|
1246
|
-
{ name: "customer_journey_stage", type_id: "ent_288", maturity: "stable", since: "0.1.0" },
|
|
1247
|
-
{ name: "touchpoint", type_id: "ent_289", maturity: "stable", since: "0.1.0" },
|
|
1248
|
-
{ name: "success_milestone", type_id: "ent_290", maturity: "stable", since: "0.1.0" },
|
|
1249
|
-
{ name: "service_blueprint", type_id: "ent_291", maturity: "stable", since: "0.1.0" },
|
|
1250
|
-
{ name: "nps_score", type_id: "ent_292", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "nps_campaign" },
|
|
1251
|
-
// ── Localisation & i18n ──
|
|
1252
|
-
{ name: "locale", type_id: "ent_293", maturity: "stable", since: "0.1.0" },
|
|
1253
|
-
{ name: "translation_key", type_id: "ent_294", maturity: "stable", since: "0.1.0" },
|
|
1254
|
-
{ name: "translation_bundle", type_id: "ent_295", maturity: "stable", since: "0.1.0" },
|
|
1255
|
-
{ name: "locale_config", type_id: "ent_296", maturity: "stable", since: "0.1.0" },
|
|
1256
|
-
{ name: "cultural_adaptation", type_id: "ent_297", maturity: "stable", since: "0.1.0" },
|
|
1257
|
-
{ name: "regional_pricing", type_id: "ent_298", maturity: "stable", since: "0.1.0" },
|
|
1258
|
-
// ── Customer Education ──
|
|
1259
|
-
{ name: "education_program", type_id: "ent_299", maturity: "stable", since: "0.1.0" },
|
|
1260
|
-
{ name: "tutorial", type_id: "ent_300", maturity: "stable", since: "0.1.0" },
|
|
1261
|
-
{ name: "walkthrough", type_id: "ent_301", maturity: "stable", since: "0.1.0" },
|
|
1262
|
-
{ name: "webinar", type_id: "ent_302", maturity: "stable", since: "0.1.0" },
|
|
1263
|
-
{ name: "certification", type_id: "ent_303", maturity: "stable", since: "0.1.0" },
|
|
1264
|
-
{ name: "help_video", type_id: "ent_304", maturity: "stable", since: "0.1.0" },
|
|
1265
|
-
{ name: "learning_path", type_id: "ent_305", maturity: "stable", since: "0.1.0" },
|
|
1266
|
-
// ── Partners & Ecosystem ──
|
|
1267
|
-
{ name: "partner_program", type_id: "ent_306", maturity: "stable", since: "0.1.0" },
|
|
1268
|
-
{ name: "partner_tier", type_id: "ent_307", maturity: "stable", since: "0.1.0" },
|
|
1269
|
-
{ name: "api_ecosystem", type_id: "ent_308", maturity: "stable", since: "0.1.0" },
|
|
1270
|
-
{ name: "marketplace_listing", type_id: "ent_309", maturity: "stable", since: "0.1.0" },
|
|
1271
|
-
{ name: "developer_portal", type_id: "ent_310", maturity: "stable", since: "0.1.0" },
|
|
1272
|
-
{ name: "integration_partner", type_id: "ent_311", maturity: "stable", since: "0.1.0" },
|
|
1273
|
-
{ name: "partner_revenue_share", type_id: "ent_312", maturity: "stable", since: "0.1.0" },
|
|
1274
|
-
// ── Workspace ──
|
|
1275
|
-
{ name: "workspace", type_id: "ent_328", maturity: "proposed", since: "0.2.0" },
|
|
1276
|
-
{ name: "framework_exercise", type_id: "ent_350", maturity: "proposed", since: "0.8.4" },
|
|
1277
|
-
{ name: "composition", type_id: "ent_361", maturity: "proposed", since: "0.31.0" },
|
|
1278
|
-
// A dated, hashed rendition of a node that is already in the graph. Enters
|
|
1279
|
-
// `proposed` per the maturity rubric (precedent: composition 0.31.0).
|
|
1280
|
-
{ name: "capture", type_id: "ent_362", maturity: "proposed", since: "0.32.0" }
|
|
1281
|
-
];
|
|
1282
|
-
var DEFERRED_PROPOSED_BY_CONTRACT = {
|
|
1283
|
-
// user_story (UPG-571) and experiment_run (UPG-664) graduated to stable in
|
|
1284
|
-
// 0.12.6 — Captain lifted both freezes ("we are using them"). Their contracts
|
|
1285
|
-
// are settled; they are now stable, not deferred.
|
|
1286
|
-
ai_experiment: "UPG-665: AI prompt/model restructure (open ADR).",
|
|
1287
|
-
ai_dataset: "UPG-665: AI prompt/model restructure (open ADR).",
|
|
1288
|
-
ai_trace: "UPG-665: AI prompt/model restructure (open ADR)."
|
|
1289
|
-
};
|
|
1290
|
-
var UPG_ENTITY_META_BY_NAME = new Map(
|
|
1291
|
-
UPG_ENTITY_META.map((m) => [m.name, m])
|
|
1292
|
-
);
|
|
1293
|
-
var UPG_ENTITY_META_BY_ID = new Map(
|
|
1294
|
-
UPG_ENTITY_META.map((m) => [m.type_id, m])
|
|
1295
|
-
);
|
|
1296
|
-
var UPG_ACTIVE_TYPES = UPG_ENTITY_META.filter((m) => m.maturity === "stable" || m.maturity === "proposed").map((m) => m.name);
|
|
1297
|
-
var UPG_DEPRECATED_TYPES = UPG_ENTITY_META.filter((m) => m.maturity === "deprecated").map((m) => m.name);
|
|
1298
|
-
var UPG_PORTFOLIO_SHARED_TYPES = UPG_ENTITY_META.filter((m) => m.portfolio_shared === true).map((m) => m.name);
|
|
1299
|
-
function isPortfolioSharedType(name) {
|
|
1300
|
-
return UPG_ENTITY_META_BY_NAME.get(name)?.portfolio_shared === true;
|
|
1301
|
-
}
|
|
1302
|
-
function isDeprecatedType(name) {
|
|
1303
|
-
const meta = UPG_ENTITY_META_BY_NAME.get(name);
|
|
1304
|
-
return meta?.maturity === "deprecated";
|
|
1305
|
-
}
|
|
1306
|
-
function getReplacementType(name) {
|
|
1307
|
-
const meta = UPG_ENTITY_META_BY_NAME.get(name);
|
|
1308
|
-
return meta?.replacement;
|
|
1309
|
-
}
|
|
1310
|
-
function getTypeId(name) {
|
|
1311
|
-
return UPG_ENTITY_META_BY_NAME.get(name)?.type_id;
|
|
1312
|
-
}
|
|
1313
|
-
function getTypeName(typeId) {
|
|
1314
|
-
return UPG_ENTITY_META_BY_ID.get(typeId)?.name;
|
|
1315
|
-
}
|
|
1316
|
-
|
|
1317
1328
|
// src/catalog/edge-catalog.ts
|
|
1318
1329
|
var UPG_WILDCARD_ENDPOINT = "node";
|
|
1319
1330
|
var CLASSIFICATION_EDGE_PROPERTY_SCHEMA = {
|
|
@@ -34147,7 +34158,7 @@ function checkHeaderSealText(text) {
|
|
|
34147
34158
|
}
|
|
34148
34159
|
|
|
34149
34160
|
// src/index.ts
|
|
34150
|
-
var UPG_VERSION = "0.
|
|
34161
|
+
var UPG_VERSION = "0.38.0";
|
|
34151
34162
|
var UPG_FORMAT_VERSION = "0.4.0";
|
|
34152
34163
|
var MARKDOWN_FORMAT_VERSION = "0.1";
|
|
34153
34164
|
var UPG_TYPES = getTypes();
|