@unified-product-graph/core 0.25.1 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +341 -161
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +30 -2
- package/dist/index.d.ts +30 -2
- package/dist/index.js +341 -161
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1164,7 +1164,12 @@ var UPG_ENTITY_META = [
|
|
|
1164
1164
|
// ── Program Management ──
|
|
1165
1165
|
{ name: "program", type_id: "ent_262", maturity: "stable", since: "0.1.0" },
|
|
1166
1166
|
{ name: "project", type_id: "ent_263", maturity: "stable", since: "0.1.0" },
|
|
1167
|
-
|
|
1167
|
+
// `portfolio_shared` (0.25.1 feedback): a milestone is often a cross-team gate,
|
|
1168
|
+
// not one project's checkpoint — an org-wide "Open Beta" that several products'
|
|
1169
|
+
// projects must all satisfy. Shared tier lets `project_targets_milestone` (and
|
|
1170
|
+
// the other milestone edges) pass the cross-scope gate as `provisional`, same
|
|
1171
|
+
// as `project_implements_initiative`. Precedent: `planning_cycle` (0.20.0).
|
|
1172
|
+
{ name: "milestone", type_id: "ent_264", maturity: "stable", since: "0.1.0", portfolio_shared: true },
|
|
1168
1173
|
{ name: "risk_register", type_id: "ent_265", maturity: "stable", since: "0.1.0" },
|
|
1169
1174
|
{ name: "risk_item", type_id: "ent_266", maturity: "deprecated", since: "0.1.0", deprecated_in: "0.1.0", replacement: "risk" },
|
|
1170
1175
|
{ name: "change_request", type_id: "ent_267", maturity: "stable", since: "0.1.0" },
|
|
@@ -4457,54 +4462,63 @@ var PRODUCT_LIFECYCLE = {
|
|
|
4457
4462
|
phases: [
|
|
4458
4463
|
{
|
|
4459
4464
|
id: "concept",
|
|
4465
|
+
status_category: "triage",
|
|
4460
4466
|
label: "Concept",
|
|
4461
4467
|
description: "Napkin idea. Problem shape and solution sketch, pre-validation.",
|
|
4462
4468
|
transitions_to: ["validation", "build", "beta", "launch", "growth", "mature", "sunset"]
|
|
4463
4469
|
},
|
|
4464
4470
|
{
|
|
4465
4471
|
id: "validation",
|
|
4472
|
+
status_category: "started",
|
|
4466
4473
|
label: "Validation",
|
|
4467
4474
|
description: "Testing demand. User conversations and experiments pressure-test assumptions before build commits.",
|
|
4468
4475
|
transitions_to: ["build", "beta", "launch", "growth", "mature", "sunset"]
|
|
4469
4476
|
},
|
|
4470
4477
|
{
|
|
4471
4478
|
id: "build",
|
|
4479
|
+
status_category: "started",
|
|
4472
4480
|
label: "Build",
|
|
4473
4481
|
description: "Actively developing v1. Core functionality is being authored, pre-user.",
|
|
4474
4482
|
transitions_to: ["beta", "launch", "growth", "mature", "sunset"]
|
|
4475
4483
|
},
|
|
4476
4484
|
{
|
|
4477
4485
|
id: "beta",
|
|
4486
|
+
status_category: "started",
|
|
4478
4487
|
label: "Beta",
|
|
4479
4488
|
description: "Early users, iterating. Feature-complete enough to learn from, still changing weekly.",
|
|
4480
4489
|
transitions_to: ["launch", "growth", "mature", "maintenance", "sunset"]
|
|
4481
4490
|
},
|
|
4482
4491
|
{
|
|
4483
4492
|
id: "launch",
|
|
4493
|
+
status_category: "started",
|
|
4484
4494
|
label: "Launch",
|
|
4485
4495
|
description: "Generally available. Announced to the target audience, open past beta access.",
|
|
4486
4496
|
transitions_to: ["growth", "mature", "maintenance", "sunset"]
|
|
4487
4497
|
},
|
|
4488
4498
|
{
|
|
4489
4499
|
id: "growth",
|
|
4500
|
+
status_category: "started",
|
|
4490
4501
|
label: "Growth",
|
|
4491
4502
|
description: "Scaling users and revenue. Product fit validated; focus is acquisition, retention, expansion.",
|
|
4492
4503
|
transitions_to: ["mature", "maintenance", "sunset"]
|
|
4493
4504
|
},
|
|
4494
4505
|
{
|
|
4495
4506
|
id: "mature",
|
|
4507
|
+
status_category: "started",
|
|
4496
4508
|
label: "Mature",
|
|
4497
4509
|
description: "Stable. Growth levelled; investment weights toward optimisation, efficiency, and durability.",
|
|
4498
4510
|
transitions_to: ["maintenance", "sunset"]
|
|
4499
4511
|
},
|
|
4500
4512
|
{
|
|
4501
4513
|
id: "maintenance",
|
|
4514
|
+
status_category: "started",
|
|
4502
4515
|
label: "Maintenance",
|
|
4503
4516
|
description: "Sustaining. Minimal investment keeps the product running for existing users. Can transition back to `mature` on a strategic revival.",
|
|
4504
4517
|
transitions_to: ["mature", "sunset"]
|
|
4505
4518
|
},
|
|
4506
4519
|
{
|
|
4507
4520
|
id: "sunset",
|
|
4521
|
+
status_category: "completed",
|
|
4508
4522
|
label: "Sunset",
|
|
4509
4523
|
description: "Winding down or retired. Existing users are being migrated or offboarded.",
|
|
4510
4524
|
transitions_to: []
|
|
@@ -4518,18 +4532,21 @@ var NEED_LIFECYCLE = {
|
|
|
4518
4532
|
phases: [
|
|
4519
4533
|
{
|
|
4520
4534
|
id: "raw",
|
|
4535
|
+
status_category: "triage",
|
|
4521
4536
|
label: "Raw",
|
|
4522
4537
|
description: "Captured from an interview, observation, or support ticket. Articulation may be rough; may duplicate an existing need.",
|
|
4523
4538
|
transitions_to: ["validated"]
|
|
4524
4539
|
},
|
|
4525
4540
|
{
|
|
4526
4541
|
id: "validated",
|
|
4542
|
+
status_category: "started",
|
|
4527
4543
|
label: "Validated",
|
|
4528
4544
|
description: "Corroborated by multiple data points or targeted research. The team agrees it is a real, recurring need.",
|
|
4529
4545
|
transitions_to: ["prioritized"]
|
|
4530
4546
|
},
|
|
4531
4547
|
{
|
|
4532
4548
|
id: "prioritized",
|
|
4549
|
+
status_category: "completed",
|
|
4533
4550
|
label: "Prioritized",
|
|
4534
4551
|
description: "Ranked against other needs. Ready to inform opportunity definition and solution exploration.",
|
|
4535
4552
|
transitions_to: []
|
|
@@ -4543,18 +4560,21 @@ var OPPORTUNITY_LIFECYCLE = {
|
|
|
4543
4560
|
phases: [
|
|
4544
4561
|
{
|
|
4545
4562
|
id: "identified",
|
|
4563
|
+
status_category: "triage",
|
|
4546
4564
|
label: "Identified",
|
|
4547
4565
|
description: "A problem worth solving has been named. Sources include needs, insights, market trends, or competitive signals. Sizing and validation come next.",
|
|
4548
4566
|
transitions_to: ["validated", "deferred"]
|
|
4549
4567
|
},
|
|
4550
4568
|
{
|
|
4551
4569
|
id: "validated",
|
|
4570
|
+
status_category: "started",
|
|
4552
4571
|
label: "Validated",
|
|
4553
4572
|
description: "Research and evidence support pursuit. The problem is real, frequent, and painful enough to justify investment.",
|
|
4554
4573
|
transitions_to: ["deferred"]
|
|
4555
4574
|
},
|
|
4556
4575
|
{
|
|
4557
4576
|
id: "deferred",
|
|
4577
|
+
status_category: "backlog",
|
|
4558
4578
|
label: "Deferred",
|
|
4559
4579
|
description: "Acknowledged but parked. Capacity, priority, or strategic timing reasons. Can be reopened.",
|
|
4560
4580
|
transitions_to: ["identified"]
|
|
@@ -4568,24 +4588,28 @@ var SOLUTION_LIFECYCLE = {
|
|
|
4568
4588
|
phases: [
|
|
4569
4589
|
{
|
|
4570
4590
|
id: "proposed",
|
|
4591
|
+
status_category: "triage",
|
|
4571
4592
|
label: "Proposed",
|
|
4572
4593
|
description: "Identified as a possible response to an opportunity. Pre-commitment, pre-feasibility.",
|
|
4573
4594
|
transitions_to: ["in_progress", "deferred"]
|
|
4574
4595
|
},
|
|
4575
4596
|
{
|
|
4576
4597
|
id: "in_progress",
|
|
4598
|
+
status_category: "started",
|
|
4577
4599
|
label: "In Progress",
|
|
4578
4600
|
description: "A team is actively building, testing, or refining the solution.",
|
|
4579
4601
|
transitions_to: ["shipped", "deferred"]
|
|
4580
4602
|
},
|
|
4581
4603
|
{
|
|
4582
4604
|
id: "shipped",
|
|
4605
|
+
status_category: "completed",
|
|
4583
4606
|
label: "Shipped",
|
|
4584
4607
|
description: "Delivered to users. Live in the product.",
|
|
4585
4608
|
transitions_to: ["deferred"]
|
|
4586
4609
|
},
|
|
4587
4610
|
{
|
|
4588
4611
|
id: "deferred",
|
|
4612
|
+
status_category: "backlog",
|
|
4589
4613
|
label: "Deferred",
|
|
4590
4614
|
description: "Acknowledged but parked. Capacity, priority, or a change in direction. Can be reopened.",
|
|
4591
4615
|
transitions_to: ["proposed"]
|
|
@@ -4599,24 +4623,28 @@ var EXPERIMENT_PLAN_LIFECYCLE = {
|
|
|
4599
4623
|
phases: [
|
|
4600
4624
|
{
|
|
4601
4625
|
id: "drafted",
|
|
4626
|
+
status_category: "unstarted",
|
|
4602
4627
|
label: "Drafted",
|
|
4603
4628
|
description: "The plan is being written. Method, success criteria, target metric, projected reach/impact, ownership, and planned dates are being defined. Not yet approved.",
|
|
4604
4629
|
transitions_to: ["scheduled", "cancelled"]
|
|
4605
4630
|
},
|
|
4606
4631
|
{
|
|
4607
4632
|
id: "scheduled",
|
|
4633
|
+
status_category: "unstarted",
|
|
4608
4634
|
label: "Scheduled",
|
|
4609
4635
|
description: "The plan is approved and slotted for execution. Resources committed; awaiting start date.",
|
|
4610
4636
|
transitions_to: ["approved", "cancelled"]
|
|
4611
4637
|
},
|
|
4612
4638
|
{
|
|
4613
4639
|
id: "approved",
|
|
4640
|
+
status_category: "completed",
|
|
4614
4641
|
label: "Approved",
|
|
4615
4642
|
description: "Past scheduling: at least one run has started or completed against this plan. The plan is now a stable design artefact; future updates create a new plan.",
|
|
4616
4643
|
transitions_to: []
|
|
4617
4644
|
},
|
|
4618
4645
|
{
|
|
4619
4646
|
id: "cancelled",
|
|
4647
|
+
status_category: "cancelled",
|
|
4620
4648
|
label: "Cancelled",
|
|
4621
4649
|
description: "The plan was abandoned before any run started. Reason should be documented in description or via an attached decision.",
|
|
4622
4650
|
transitions_to: []
|
|
@@ -4630,24 +4658,28 @@ var RESEARCH_PLAN_LIFECYCLE = {
|
|
|
4630
4658
|
phases: [
|
|
4631
4659
|
{
|
|
4632
4660
|
id: "draft",
|
|
4661
|
+
status_category: "started",
|
|
4633
4662
|
label: "Draft",
|
|
4634
4663
|
description: "The plan is being written. Research question, suggested methods, and evidence threshold are being defined. Not yet approved for execution.",
|
|
4635
4664
|
transitions_to: ["active"]
|
|
4636
4665
|
},
|
|
4637
4666
|
{
|
|
4638
4667
|
id: "active",
|
|
4668
|
+
status_category: "started",
|
|
4639
4669
|
label: "Active",
|
|
4640
4670
|
description: "The plan has been approved and is being executed. Research sessions are underway or scheduled.",
|
|
4641
4671
|
transitions_to: ["completed", "abandoned"]
|
|
4642
4672
|
},
|
|
4643
4673
|
{
|
|
4644
4674
|
id: "completed",
|
|
4675
|
+
status_category: "completed",
|
|
4645
4676
|
label: "Completed",
|
|
4646
4677
|
description: "The planned research has been carried out and learnings have been captured. The plan is a historical record.",
|
|
4647
4678
|
transitions_to: []
|
|
4648
4679
|
},
|
|
4649
4680
|
{
|
|
4650
4681
|
id: "abandoned",
|
|
4682
|
+
status_category: "cancelled",
|
|
4651
4683
|
label: "Abandoned",
|
|
4652
4684
|
description: "Not executed: changing priorities, a decision no longer needing validation, or resource constraints.",
|
|
4653
4685
|
transitions_to: []
|
|
@@ -4661,24 +4693,28 @@ var FEEDBACK_PROGRAM_LIFECYCLE = {
|
|
|
4661
4693
|
phases: [
|
|
4662
4694
|
{
|
|
4663
4695
|
id: "planning",
|
|
4696
|
+
status_category: "unstarted",
|
|
4664
4697
|
label: "Planning",
|
|
4665
4698
|
description: "The program is being designed. Goals, audience, collection method, and cadence are being defined. No feedback is being collected yet.",
|
|
4666
4699
|
transitions_to: ["active"]
|
|
4667
4700
|
},
|
|
4668
4701
|
{
|
|
4669
4702
|
id: "active",
|
|
4703
|
+
status_category: "started",
|
|
4670
4704
|
label: "Active",
|
|
4671
4705
|
description: "The program is running. Feedback is being collected and processed on the defined cadence.",
|
|
4672
4706
|
transitions_to: ["paused", "retired"]
|
|
4673
4707
|
},
|
|
4674
4708
|
{
|
|
4675
4709
|
id: "paused",
|
|
4710
|
+
status_category: "backlog",
|
|
4676
4711
|
label: "Paused",
|
|
4677
4712
|
description: "Collection has been temporarily suspended. The program will resume.",
|
|
4678
4713
|
transitions_to: ["active", "retired"]
|
|
4679
4714
|
},
|
|
4680
4715
|
{
|
|
4681
4716
|
id: "retired",
|
|
4717
|
+
status_category: "completed",
|
|
4682
4718
|
label: "Retired",
|
|
4683
4719
|
description: "The program has ended. It is no longer collecting feedback. Historical data is preserved.",
|
|
4684
4720
|
transitions_to: []
|
|
@@ -4692,36 +4728,42 @@ var FEATURE_REQUEST_LIFECYCLE = {
|
|
|
4692
4728
|
phases: [
|
|
4693
4729
|
{
|
|
4694
4730
|
id: "new",
|
|
4731
|
+
status_category: "triage",
|
|
4695
4732
|
label: "New",
|
|
4696
4733
|
description: "The request has been submitted. It has not yet been reviewed by the product team.",
|
|
4697
4734
|
transitions_to: ["under_review"]
|
|
4698
4735
|
},
|
|
4699
4736
|
{
|
|
4700
4737
|
id: "under_review",
|
|
4738
|
+
status_category: "triage",
|
|
4701
4739
|
label: "Under Review",
|
|
4702
4740
|
description: "The request is being triaged. The product team is assessing feasibility, demand, and strategic fit.",
|
|
4703
4741
|
transitions_to: ["planned", "wont_do"]
|
|
4704
4742
|
},
|
|
4705
4743
|
{
|
|
4706
4744
|
id: "planned",
|
|
4745
|
+
status_category: "unstarted",
|
|
4707
4746
|
label: "Planned",
|
|
4708
4747
|
description: "The request has been accepted and is on the roadmap. It is scheduled for a future release cycle.",
|
|
4709
4748
|
transitions_to: ["in_progress", "wont_do"]
|
|
4710
4749
|
},
|
|
4711
4750
|
{
|
|
4712
4751
|
id: "in_progress",
|
|
4752
|
+
status_category: "started",
|
|
4713
4753
|
label: "In Progress",
|
|
4714
4754
|
description: "Work on fulfilling the request is actively underway.",
|
|
4715
4755
|
transitions_to: ["shipped"]
|
|
4716
4756
|
},
|
|
4717
4757
|
{
|
|
4718
4758
|
id: "shipped",
|
|
4759
|
+
status_category: "completed",
|
|
4719
4760
|
label: "Shipped",
|
|
4720
4761
|
description: "The requested capability has been delivered to users.",
|
|
4721
4762
|
transitions_to: []
|
|
4722
4763
|
},
|
|
4723
4764
|
{
|
|
4724
4765
|
id: "wont_do",
|
|
4766
|
+
status_category: "cancelled",
|
|
4725
4767
|
label: "Won't Do",
|
|
4726
4768
|
description: "Declined: strategic misalignment, infeasibility, or insufficient demand.",
|
|
4727
4769
|
transitions_to: []
|
|
@@ -4735,24 +4777,28 @@ var BETA_PROGRAM_LIFECYCLE = {
|
|
|
4735
4777
|
phases: [
|
|
4736
4778
|
{
|
|
4737
4779
|
id: "recruiting",
|
|
4780
|
+
status_category: "started",
|
|
4738
4781
|
label: "Recruiting",
|
|
4739
4782
|
description: "The program is accepting applications. Beta participants are being identified and onboarded.",
|
|
4740
4783
|
transitions_to: ["active"]
|
|
4741
4784
|
},
|
|
4742
4785
|
{
|
|
4743
4786
|
id: "active",
|
|
4787
|
+
status_category: "started",
|
|
4744
4788
|
label: "Active",
|
|
4745
4789
|
description: "Beta participants have access and are using the feature. Feedback is being collected.",
|
|
4746
4790
|
transitions_to: ["graduated", "closed"]
|
|
4747
4791
|
},
|
|
4748
4792
|
{
|
|
4749
4793
|
id: "graduated",
|
|
4794
|
+
status_category: "completed",
|
|
4750
4795
|
label: "Graduated",
|
|
4751
4796
|
description: "The beta was successful and the feature has progressed to general availability.",
|
|
4752
4797
|
transitions_to: []
|
|
4753
4798
|
},
|
|
4754
4799
|
{
|
|
4755
4800
|
id: "closed",
|
|
4801
|
+
status_category: "completed",
|
|
4756
4802
|
label: "Closed",
|
|
4757
4803
|
description: "The beta ended without graduating to GA. The feature was deprioritised, pivoted, or missed exit criteria.",
|
|
4758
4804
|
transitions_to: []
|
|
@@ -4766,24 +4812,28 @@ var USER_ADVISORY_BOARD_LIFECYCLE = {
|
|
|
4766
4812
|
phases: [
|
|
4767
4813
|
{
|
|
4768
4814
|
id: "recruiting",
|
|
4815
|
+
status_category: "started",
|
|
4769
4816
|
label: "Recruiting",
|
|
4770
4817
|
description: "Members are being identified and invited. The board is not yet convened.",
|
|
4771
4818
|
transitions_to: ["active"]
|
|
4772
4819
|
},
|
|
4773
4820
|
{
|
|
4774
4821
|
id: "active",
|
|
4822
|
+
status_category: "started",
|
|
4775
4823
|
label: "Active",
|
|
4776
4824
|
description: "The board is convened and meeting regularly. Members are providing strategic input.",
|
|
4777
4825
|
transitions_to: ["paused", "retired"]
|
|
4778
4826
|
},
|
|
4779
4827
|
{
|
|
4780
4828
|
id: "paused",
|
|
4829
|
+
status_category: "backlog",
|
|
4781
4830
|
label: "Paused",
|
|
4782
4831
|
description: "Board activities are temporarily suspended. Membership is retained and sessions will resume.",
|
|
4783
4832
|
transitions_to: ["active", "retired"]
|
|
4784
4833
|
},
|
|
4785
4834
|
{
|
|
4786
4835
|
id: "retired",
|
|
4836
|
+
status_category: "completed",
|
|
4787
4837
|
label: "Retired",
|
|
4788
4838
|
description: "The board has been disbanded. Members are no longer engaged in an advisory capacity.",
|
|
4789
4839
|
transitions_to: []
|
|
@@ -4797,30 +4847,35 @@ var OBJECTIVE_LIFECYCLE = {
|
|
|
4797
4847
|
phases: [
|
|
4798
4848
|
{
|
|
4799
4849
|
id: "draft",
|
|
4850
|
+
status_category: "started",
|
|
4800
4851
|
label: "Draft",
|
|
4801
4852
|
description: "The objective is being written. Key results have not yet been attached or approved.",
|
|
4802
4853
|
transitions_to: ["active"]
|
|
4803
4854
|
},
|
|
4804
4855
|
{
|
|
4805
4856
|
id: "active",
|
|
4857
|
+
status_category: "started",
|
|
4806
4858
|
label: "Active",
|
|
4807
4859
|
description: "The objective is in the current planning period. Key results are being measured and progress is tracked.",
|
|
4808
4860
|
transitions_to: ["achieved", "missed", "deferred"]
|
|
4809
4861
|
},
|
|
4810
4862
|
{
|
|
4811
4863
|
id: "achieved",
|
|
4864
|
+
status_category: "completed",
|
|
4812
4865
|
label: "Achieved",
|
|
4813
4866
|
description: "The objective was met or exceeded within the planning period.",
|
|
4814
4867
|
transitions_to: []
|
|
4815
4868
|
},
|
|
4816
4869
|
{
|
|
4817
4870
|
id: "missed",
|
|
4871
|
+
status_category: "completed",
|
|
4818
4872
|
label: "Missed",
|
|
4819
4873
|
description: "The planning period ended without achieving the objective. Learnings inform the next cycle.",
|
|
4820
4874
|
transitions_to: []
|
|
4821
4875
|
},
|
|
4822
4876
|
{
|
|
4823
4877
|
id: "deferred",
|
|
4878
|
+
status_category: "backlog",
|
|
4824
4879
|
label: "Deferred",
|
|
4825
4880
|
description: "The objective was not completed this period and is being carried forward. Can be reopened as active.",
|
|
4826
4881
|
transitions_to: ["active"]
|
|
@@ -4834,24 +4889,28 @@ var KEY_RESULT_LIFECYCLE = {
|
|
|
4834
4889
|
phases: [
|
|
4835
4890
|
{
|
|
4836
4891
|
id: "on_track",
|
|
4892
|
+
status_category: "started",
|
|
4837
4893
|
label: "On Track",
|
|
4838
4894
|
description: "Current measured value is progressing at a rate that should reach the target by the deadline.",
|
|
4839
4895
|
transitions_to: ["at_risk", "behind", "achieved"]
|
|
4840
4896
|
},
|
|
4841
4897
|
{
|
|
4842
4898
|
id: "at_risk",
|
|
4899
|
+
status_category: "started",
|
|
4843
4900
|
label: "At Risk",
|
|
4844
4901
|
description: "Progress is slowing. Without intervention, the target may not be reached by the deadline.",
|
|
4845
4902
|
transitions_to: ["on_track", "behind", "achieved"]
|
|
4846
4903
|
},
|
|
4847
4904
|
{
|
|
4848
4905
|
id: "behind",
|
|
4906
|
+
status_category: "started",
|
|
4849
4907
|
label: "Behind",
|
|
4850
4908
|
description: "Unlikely to reach the target at the current rate. The team needs to reassess strategy or accept a miss.",
|
|
4851
4909
|
transitions_to: ["on_track", "at_risk", "achieved"]
|
|
4852
4910
|
},
|
|
4853
4911
|
{
|
|
4854
4912
|
id: "achieved",
|
|
4913
|
+
status_category: "completed",
|
|
4855
4914
|
label: "Achieved",
|
|
4856
4915
|
description: "The target value has been reached or exceeded.",
|
|
4857
4916
|
transitions_to: []
|
|
@@ -4865,18 +4924,21 @@ var STRATEGIC_THEME_LIFECYCLE = {
|
|
|
4865
4924
|
phases: [
|
|
4866
4925
|
{
|
|
4867
4926
|
id: "active",
|
|
4927
|
+
status_category: "started",
|
|
4868
4928
|
label: "Active",
|
|
4869
4929
|
description: "The theme is a current organisational focus. Initiatives and objectives are being run under it.",
|
|
4870
4930
|
transitions_to: ["completed", "paused"]
|
|
4871
4931
|
},
|
|
4872
4932
|
{
|
|
4873
4933
|
id: "paused",
|
|
4934
|
+
status_category: "backlog",
|
|
4874
4935
|
label: "Paused",
|
|
4875
4936
|
description: "The theme is deprioritised for this period but is not being retired. It will resume.",
|
|
4876
4937
|
transitions_to: ["active", "completed"]
|
|
4877
4938
|
},
|
|
4878
4939
|
{
|
|
4879
4940
|
id: "completed",
|
|
4941
|
+
status_category: "completed",
|
|
4880
4942
|
label: "Completed",
|
|
4881
4943
|
description: "The theme has run its course. The focus area has been addressed or superseded by a new theme.",
|
|
4882
4944
|
transitions_to: []
|
|
@@ -4890,24 +4952,28 @@ var INITIATIVE_LIFECYCLE = {
|
|
|
4890
4952
|
phases: [
|
|
4891
4953
|
{
|
|
4892
4954
|
id: "proposed",
|
|
4955
|
+
status_category: "triage",
|
|
4893
4956
|
label: "Proposed",
|
|
4894
4957
|
description: "The initiative has been put forward but not yet approved for resourcing. Business case is being evaluated.",
|
|
4895
4958
|
transitions_to: ["in_progress", "abandoned"]
|
|
4896
4959
|
},
|
|
4897
4960
|
{
|
|
4898
4961
|
id: "in_progress",
|
|
4962
|
+
status_category: "started",
|
|
4899
4963
|
label: "In Progress",
|
|
4900
4964
|
description: "The initiative has been approved and work is underway. Teams are executing against it.",
|
|
4901
4965
|
transitions_to: ["completed", "abandoned"]
|
|
4902
4966
|
},
|
|
4903
4967
|
{
|
|
4904
4968
|
id: "completed",
|
|
4969
|
+
status_category: "completed",
|
|
4905
4970
|
label: "Completed",
|
|
4906
4971
|
description: "The initiative has achieved its goals and been formally closed.",
|
|
4907
4972
|
transitions_to: []
|
|
4908
4973
|
},
|
|
4909
4974
|
{
|
|
4910
4975
|
id: "abandoned",
|
|
4976
|
+
status_category: "cancelled",
|
|
4911
4977
|
label: "Abandoned",
|
|
4912
4978
|
description: "Stopped before completion: changing strategy, resource constraints, or learning that the goal is no longer relevant.",
|
|
4913
4979
|
transitions_to: []
|
|
@@ -4921,18 +4987,21 @@ var STRATEGIC_PILLAR_LIFECYCLE = {
|
|
|
4921
4987
|
phases: [
|
|
4922
4988
|
{
|
|
4923
4989
|
id: "proposed",
|
|
4990
|
+
status_category: "triage",
|
|
4924
4991
|
label: "Proposed",
|
|
4925
4992
|
description: "The pillar has been articulated but not yet ratified by leadership as a strategic commitment.",
|
|
4926
4993
|
transitions_to: ["active"]
|
|
4927
4994
|
},
|
|
4928
4995
|
{
|
|
4929
4996
|
id: "active",
|
|
4997
|
+
status_category: "started",
|
|
4930
4998
|
label: "Active",
|
|
4931
4999
|
description: "The pillar is a live strategic commitment. Decisions, themes, and initiatives are aligned to it.",
|
|
4932
5000
|
transitions_to: ["sunset"]
|
|
4933
5001
|
},
|
|
4934
5002
|
{
|
|
4935
5003
|
id: "sunset",
|
|
5004
|
+
status_category: "completed",
|
|
4936
5005
|
label: "Sunset",
|
|
4937
5006
|
description: "Retired: achieved, superseded by a new direction, or no longer reflects strategic reality.",
|
|
4938
5007
|
transitions_to: []
|
|
@@ -4944,8 +5013,8 @@ var STRATEGIC_QUESTION_LIFECYCLE = {
|
|
|
4944
5013
|
initial_phase: "open",
|
|
4945
5014
|
terminal_phases: ["resolved"],
|
|
4946
5015
|
phases: [
|
|
4947
|
-
{ id: "open", label: "Open", description: "The question has been raised but not yet answered. The plan is exposed to it.", transitions_to: ["resolved"] },
|
|
4948
|
-
{ id: "resolved", label: "Resolved", description: "The question has been answered; the resolution is captured. The plan is no longer exposed to it. May reopen if the answer unravels.", transitions_to: ["open"] }
|
|
5016
|
+
{ id: "open", status_category: "triage", label: "Open", description: "The question has been raised but not yet answered. The plan is exposed to it.", transitions_to: ["resolved"] },
|
|
5017
|
+
{ id: "resolved", status_category: "completed", label: "Resolved", description: "The question has been answered; the resolution is captured. The plan is no longer exposed to it. May reopen if the answer unravels.", transitions_to: ["open"] }
|
|
4949
5018
|
]
|
|
4950
5019
|
};
|
|
4951
5020
|
var OUTCOME_LIFECYCLE = {
|
|
@@ -4953,10 +5022,10 @@ var OUTCOME_LIFECYCLE = {
|
|
|
4953
5022
|
initial_phase: "identified",
|
|
4954
5023
|
terminal_phases: ["achieved", "abandoned"],
|
|
4955
5024
|
phases: [
|
|
4956
|
-
{ id: "identified", label: "Identified", description: "The outcome has been named: the team agrees on what success looks like, but is not yet measuring it.", transitions_to: ["measuring", "abandoned"] },
|
|
4957
|
-
{ id: "measuring", label: "Measuring", description: "Instrumentation is live. Progress is being tracked against the outcome.", transitions_to: ["achieved", "abandoned"] },
|
|
4958
|
-
{ id: "achieved", label: "Achieved", description: "The outcome was reached. Captured for the record; no further pursuit required.", transitions_to: [] },
|
|
4959
|
-
{ id: "abandoned", label: "Abandoned", description: "Pursuit was stopped. Strategy shifted, the outcome lost relevance, or the cost outweighed value. May resume to `measuring` if the team revisits it.", transitions_to: ["measuring"] }
|
|
5025
|
+
{ id: "identified", status_category: "triage", label: "Identified", description: "The outcome has been named: the team agrees on what success looks like, but is not yet measuring it.", transitions_to: ["measuring", "abandoned"] },
|
|
5026
|
+
{ id: "measuring", status_category: "started", label: "Measuring", description: "Instrumentation is live. Progress is being tracked against the outcome.", transitions_to: ["achieved", "abandoned"] },
|
|
5027
|
+
{ id: "achieved", status_category: "completed", label: "Achieved", description: "The outcome was reached. Captured for the record; no further pursuit required.", transitions_to: [] },
|
|
5028
|
+
{ id: "abandoned", status_category: "cancelled", label: "Abandoned", description: "Pursuit was stopped. Strategy shifted, the outcome lost relevance, or the cost outweighed value. May resume to `measuring` if the team revisits it.", transitions_to: ["measuring"] }
|
|
4960
5029
|
]
|
|
4961
5030
|
};
|
|
4962
5031
|
var VISION_LIFECYCLE = {
|
|
@@ -4964,10 +5033,10 @@ var VISION_LIFECYCLE = {
|
|
|
4964
5033
|
initial_phase: "drafting",
|
|
4965
5034
|
terminal_phases: ["ratified", "revised", "archived"],
|
|
4966
5035
|
phases: [
|
|
4967
|
-
{ id: "drafting", label: "Drafting", description: "Vision is being authored or rewritten. Not yet adopted.", transitions_to: ["ratified", "archived"] },
|
|
4968
|
-
{ id: "ratified", label: "Ratified", description: "The current, in-force vision. The team has aligned around it.", transitions_to: ["revised", "archived"] },
|
|
4969
|
-
{ id: "revised", label: "Revised", description: "Superseded by a newer vision but kept as a recorded milestone. May reopen to drafting if revisited.", transitions_to: ["drafting"] },
|
|
4970
|
-
{ id: "archived", label: "Archived", description: "No longer in force. Retained for historical reference.", transitions_to: ["drafting"] }
|
|
5036
|
+
{ id: "drafting", status_category: "started", label: "Drafting", description: "Vision is being authored or rewritten. Not yet adopted.", transitions_to: ["ratified", "archived"] },
|
|
5037
|
+
{ id: "ratified", status_category: "completed", label: "Ratified", description: "The current, in-force vision. The team has aligned around it.", transitions_to: ["revised", "archived"] },
|
|
5038
|
+
{ id: "revised", status_category: "completed", label: "Revised", description: "Superseded by a newer vision but kept as a recorded milestone. May reopen to drafting if revisited.", transitions_to: ["drafting"] },
|
|
5039
|
+
{ id: "archived", status_category: "completed", label: "Archived", description: "No longer in force. Retained for historical reference.", transitions_to: ["drafting"] }
|
|
4971
5040
|
]
|
|
4972
5041
|
};
|
|
4973
5042
|
var MISSION_LIFECYCLE = {
|
|
@@ -4975,9 +5044,9 @@ var MISSION_LIFECYCLE = {
|
|
|
4975
5044
|
initial_phase: "drafting",
|
|
4976
5045
|
terminal_phases: ["active", "archived"],
|
|
4977
5046
|
phases: [
|
|
4978
|
-
{ id: "drafting", label: "Drafting", description: "Mission is being authored or rewritten. Not yet adopted.", transitions_to: ["active", "archived"] },
|
|
4979
|
-
{ id: "active", label: "Active", description: "The current, in-force mission. Guides product and organisational decisions.", transitions_to: ["archived"] },
|
|
4980
|
-
{ id: "archived", label: "Archived", description: "No longer in force. May reopen to drafting if the team revisits.", transitions_to: ["drafting"] }
|
|
5047
|
+
{ id: "drafting", status_category: "started", label: "Drafting", description: "Mission is being authored or rewritten. Not yet adopted.", transitions_to: ["active", "archived"] },
|
|
5048
|
+
{ id: "active", status_category: "started", label: "Active", description: "The current, in-force mission. Guides product and organisational decisions.", transitions_to: ["archived"] },
|
|
5049
|
+
{ id: "archived", status_category: "completed", label: "Archived", description: "No longer in force. May reopen to drafting if the team revisits.", transitions_to: ["drafting"] }
|
|
4981
5050
|
]
|
|
4982
5051
|
};
|
|
4983
5052
|
var CAPABILITY_LIFECYCLE = {
|
|
@@ -4985,10 +5054,10 @@ var CAPABILITY_LIFECYCLE = {
|
|
|
4985
5054
|
initial_phase: "planned",
|
|
4986
5055
|
terminal_phases: ["operational", "retired"],
|
|
4987
5056
|
phases: [
|
|
4988
|
-
{ id: "planned", label: "Planned", description: "Capability has been identified as needed but development has not started.", transitions_to: ["building", "retired"] },
|
|
4989
|
-
{ id: "building", label: "Building", description: "Active development: people, processes, or systems are being put in place.", transitions_to: ["operational", "retired"] },
|
|
4990
|
-
{ id: "operational", label: "Operational", description: "Capability is in place and functioning. The organisation can rely on it.", transitions_to: ["retired"] },
|
|
4991
|
-
{ id: "retired", label: "Retired", description: "No longer maintained. May reopen to building if the capability is reinvested in.", transitions_to: ["building"] }
|
|
5057
|
+
{ id: "planned", status_category: "unstarted", label: "Planned", description: "Capability has been identified as needed but development has not started.", transitions_to: ["building", "retired"] },
|
|
5058
|
+
{ id: "building", status_category: "started", label: "Building", description: "Active development: people, processes, or systems are being put in place.", transitions_to: ["operational", "retired"] },
|
|
5059
|
+
{ id: "operational", status_category: "started", label: "Operational", description: "Capability is in place and functioning. The organisation can rely on it.", transitions_to: ["retired"] },
|
|
5060
|
+
{ id: "retired", status_category: "completed", label: "Retired", description: "No longer maintained. May reopen to building if the capability is reinvested in.", transitions_to: ["building"] }
|
|
4992
5061
|
]
|
|
4993
5062
|
};
|
|
4994
5063
|
var FEATURE_AREA_LIFECYCLE = {
|
|
@@ -4998,18 +5067,21 @@ var FEATURE_AREA_LIFECYCLE = {
|
|
|
4998
5067
|
phases: [
|
|
4999
5068
|
{
|
|
5000
5069
|
id: "planned",
|
|
5070
|
+
status_category: "unstarted",
|
|
5001
5071
|
label: "Planned",
|
|
5002
5072
|
description: "The feature area has been defined as an organising concept but no features have been built under it yet.",
|
|
5003
5073
|
transitions_to: ["active"]
|
|
5004
5074
|
},
|
|
5005
5075
|
{
|
|
5006
5076
|
id: "active",
|
|
5077
|
+
status_category: "started",
|
|
5007
5078
|
label: "Active",
|
|
5008
5079
|
description: "The feature area contains live features and is actively being developed.",
|
|
5009
5080
|
transitions_to: ["deprecated"]
|
|
5010
5081
|
},
|
|
5011
5082
|
{
|
|
5012
5083
|
id: "deprecated",
|
|
5084
|
+
status_category: "completed",
|
|
5013
5085
|
label: "Deprecated",
|
|
5014
5086
|
description: "The feature area is no longer being developed. It may still exist in the product but no new features are being added.",
|
|
5015
5087
|
transitions_to: []
|
|
@@ -5023,24 +5095,28 @@ var FEATURE_LIFECYCLE = {
|
|
|
5023
5095
|
phases: [
|
|
5024
5096
|
{
|
|
5025
5097
|
id: "proposed",
|
|
5098
|
+
status_category: "triage",
|
|
5026
5099
|
label: "Proposed",
|
|
5027
5100
|
description: "The feature has been suggested and is under consideration. It is not yet on the roadmap.",
|
|
5028
5101
|
transitions_to: ["in_progress", "archived"]
|
|
5029
5102
|
},
|
|
5030
5103
|
{
|
|
5031
5104
|
id: "in_progress",
|
|
5105
|
+
status_category: "started",
|
|
5032
5106
|
label: "In Progress",
|
|
5033
5107
|
description: "The feature is actively being designed and built.",
|
|
5034
5108
|
transitions_to: ["shipped"]
|
|
5035
5109
|
},
|
|
5036
5110
|
{
|
|
5037
5111
|
id: "shipped",
|
|
5112
|
+
status_category: "completed",
|
|
5038
5113
|
label: "Shipped",
|
|
5039
5114
|
description: "The feature is live in the product and available to users.",
|
|
5040
5115
|
transitions_to: ["archived"]
|
|
5041
5116
|
},
|
|
5042
5117
|
{
|
|
5043
5118
|
id: "archived",
|
|
5119
|
+
status_category: "completed",
|
|
5044
5120
|
label: "Archived",
|
|
5045
5121
|
description: "The feature has been removed from the product or superseded. It is retained as a historical record.",
|
|
5046
5122
|
transitions_to: []
|
|
@@ -5054,18 +5130,21 @@ var RELEASE_LIFECYCLE = {
|
|
|
5054
5130
|
phases: [
|
|
5055
5131
|
{
|
|
5056
5132
|
id: "planned",
|
|
5133
|
+
status_category: "unstarted",
|
|
5057
5134
|
label: "Planned",
|
|
5058
5135
|
description: "The release is defined and scheduled. Features are scoped but not all completed.",
|
|
5059
5136
|
transitions_to: ["in_progress"]
|
|
5060
5137
|
},
|
|
5061
5138
|
{
|
|
5062
5139
|
id: "in_progress",
|
|
5140
|
+
status_category: "started",
|
|
5063
5141
|
label: "In Progress",
|
|
5064
5142
|
description: "Features are being built. The release is open for development.",
|
|
5065
5143
|
transitions_to: ["shipped"]
|
|
5066
5144
|
},
|
|
5067
5145
|
{
|
|
5068
5146
|
id: "shipped",
|
|
5147
|
+
status_category: "completed",
|
|
5069
5148
|
label: "Shipped",
|
|
5070
5149
|
description: "The release has been deployed to production and is available to users.",
|
|
5071
5150
|
transitions_to: []
|
|
@@ -5079,24 +5158,28 @@ var ROADMAP_ITEM_LIFECYCLE = {
|
|
|
5079
5158
|
phases: [
|
|
5080
5159
|
{
|
|
5081
5160
|
id: "planned",
|
|
5161
|
+
status_category: "unstarted",
|
|
5082
5162
|
label: "Planned",
|
|
5083
5163
|
description: "The item is on the roadmap and scheduled for a future period.",
|
|
5084
5164
|
transitions_to: ["in_progress", "deferred"]
|
|
5085
5165
|
},
|
|
5086
5166
|
{
|
|
5087
5167
|
id: "in_progress",
|
|
5168
|
+
status_category: "started",
|
|
5088
5169
|
label: "In Progress",
|
|
5089
5170
|
description: "Work on this roadmap item is underway.",
|
|
5090
5171
|
transitions_to: ["shipped", "deferred"]
|
|
5091
5172
|
},
|
|
5092
5173
|
{
|
|
5093
5174
|
id: "shipped",
|
|
5175
|
+
status_category: "completed",
|
|
5094
5176
|
label: "Shipped",
|
|
5095
5177
|
description: "The roadmap item has been delivered.",
|
|
5096
5178
|
transitions_to: []
|
|
5097
5179
|
},
|
|
5098
5180
|
{
|
|
5099
5181
|
id: "deferred",
|
|
5182
|
+
status_category: "backlog",
|
|
5100
5183
|
label: "Deferred",
|
|
5101
5184
|
description: "The item has been pushed to a later period. It remains on the roadmap.",
|
|
5102
5185
|
transitions_to: ["planned"]
|
|
@@ -5110,30 +5193,35 @@ var IP_ASSET_LIFECYCLE = {
|
|
|
5110
5193
|
phases: [
|
|
5111
5194
|
{
|
|
5112
5195
|
id: "filed",
|
|
5196
|
+
status_category: "started",
|
|
5113
5197
|
label: "Filed",
|
|
5114
5198
|
description: "The IP application has been submitted to the relevant authority. Acknowledgement of filing is pending.",
|
|
5115
5199
|
transitions_to: ["pending", "abandoned"]
|
|
5116
5200
|
},
|
|
5117
5201
|
{
|
|
5118
5202
|
id: "pending",
|
|
5203
|
+
status_category: "started",
|
|
5119
5204
|
label: "Pending",
|
|
5120
5205
|
description: "The application has been acknowledged and is under examination by the relevant authority.",
|
|
5121
5206
|
transitions_to: ["granted", "abandoned"]
|
|
5122
5207
|
},
|
|
5123
5208
|
{
|
|
5124
5209
|
id: "granted",
|
|
5210
|
+
status_category: "completed",
|
|
5125
5211
|
label: "Granted",
|
|
5126
5212
|
description: "The IP right has been formally granted. Protection is in force.",
|
|
5127
5213
|
transitions_to: ["expired", "abandoned"]
|
|
5128
5214
|
},
|
|
5129
5215
|
{
|
|
5130
5216
|
id: "expired",
|
|
5217
|
+
status_category: "completed",
|
|
5131
5218
|
label: "Expired",
|
|
5132
5219
|
description: "The IP protection period has ended naturally.",
|
|
5133
5220
|
transitions_to: []
|
|
5134
5221
|
},
|
|
5135
5222
|
{
|
|
5136
5223
|
id: "abandoned",
|
|
5224
|
+
status_category: "cancelled",
|
|
5137
5225
|
label: "Abandoned",
|
|
5138
5226
|
description: "Abandoned: non-payment of renewal fees, withdrawal of the application, or a decision to stop defending it.",
|
|
5139
5227
|
transitions_to: []
|
|
@@ -5147,36 +5235,42 @@ var CONTRACT_LIFECYCLE = {
|
|
|
5147
5235
|
phases: [
|
|
5148
5236
|
{
|
|
5149
5237
|
id: "draft",
|
|
5238
|
+
status_category: "started",
|
|
5150
5239
|
label: "Draft",
|
|
5151
5240
|
description: "The contract is being written. Terms are not yet agreed by all parties.",
|
|
5152
5241
|
transitions_to: ["in_review"]
|
|
5153
5242
|
},
|
|
5154
5243
|
{
|
|
5155
5244
|
id: "in_review",
|
|
5245
|
+
status_category: "started",
|
|
5156
5246
|
label: "In Review",
|
|
5157
5247
|
description: "The draft is under review by legal counsel or the counterparty. Negotiations may be ongoing.",
|
|
5158
5248
|
transitions_to: ["signed", "draft"]
|
|
5159
5249
|
},
|
|
5160
5250
|
{
|
|
5161
5251
|
id: "signed",
|
|
5252
|
+
status_category: "completed",
|
|
5162
5253
|
label: "Signed",
|
|
5163
5254
|
description: "All parties have signed. The contract is executed and legally binding, but the effective period may not have started yet.",
|
|
5164
5255
|
transitions_to: ["active"]
|
|
5165
5256
|
},
|
|
5166
5257
|
{
|
|
5167
5258
|
id: "active",
|
|
5259
|
+
status_category: "started",
|
|
5168
5260
|
label: "Active",
|
|
5169
5261
|
description: "The contract is in its effective period. Obligations are in force.",
|
|
5170
5262
|
transitions_to: ["expired", "terminated"]
|
|
5171
5263
|
},
|
|
5172
5264
|
{
|
|
5173
5265
|
id: "expired",
|
|
5266
|
+
status_category: "completed",
|
|
5174
5267
|
label: "Expired",
|
|
5175
5268
|
description: "The contract has reached its end date naturally.",
|
|
5176
5269
|
transitions_to: []
|
|
5177
5270
|
},
|
|
5178
5271
|
{
|
|
5179
5272
|
id: "terminated",
|
|
5273
|
+
status_category: "cancelled",
|
|
5180
5274
|
label: "Terminated",
|
|
5181
5275
|
description: "Ended before natural expiry: mutual agreement, breach, or exercise of a termination clause.",
|
|
5182
5276
|
transitions_to: []
|
|
@@ -5190,24 +5284,28 @@ var DESIGN_CONCEPT_LIFECYCLE = {
|
|
|
5190
5284
|
phases: [
|
|
5191
5285
|
{
|
|
5192
5286
|
id: "sketched",
|
|
5287
|
+
status_category: "started",
|
|
5193
5288
|
label: "Sketched",
|
|
5194
5289
|
description: "The concept has been captured in early, rough form. It is an idea worth exploring but has not been refined or evaluated.",
|
|
5195
5290
|
transitions_to: ["refined", "selected", "rejected"]
|
|
5196
5291
|
},
|
|
5197
5292
|
{
|
|
5198
5293
|
id: "refined",
|
|
5294
|
+
status_category: "started",
|
|
5199
5295
|
label: "Refined",
|
|
5200
5296
|
description: "The concept has been developed with more detail. It is being compared to other concepts in the selection process.",
|
|
5201
5297
|
transitions_to: ["selected", "rejected"]
|
|
5202
5298
|
},
|
|
5203
5299
|
{
|
|
5204
5300
|
id: "selected",
|
|
5301
|
+
status_category: "completed",
|
|
5205
5302
|
label: "Selected",
|
|
5206
5303
|
description: "This concept has been chosen to move forward into prototyping or implementation.",
|
|
5207
5304
|
transitions_to: []
|
|
5208
5305
|
},
|
|
5209
5306
|
{
|
|
5210
5307
|
id: "rejected",
|
|
5308
|
+
status_category: "cancelled",
|
|
5211
5309
|
label: "Rejected",
|
|
5212
5310
|
description: "This concept was evaluated and not selected. It is retained as a record of design exploration.",
|
|
5213
5311
|
transitions_to: []
|
|
@@ -5221,18 +5319,21 @@ var BRAND_IDENTITY_LIFECYCLE = {
|
|
|
5221
5319
|
phases: [
|
|
5222
5320
|
{
|
|
5223
5321
|
id: "exploratory",
|
|
5322
|
+
status_category: "started",
|
|
5224
5323
|
label: "Exploratory",
|
|
5225
5324
|
description: "The brand is in early formation. Names, values, visual directions, and positioning are being explored without commitment.",
|
|
5226
5325
|
transitions_to: ["defined"]
|
|
5227
5326
|
},
|
|
5228
5327
|
{
|
|
5229
5328
|
id: "defined",
|
|
5329
|
+
status_category: "started",
|
|
5230
5330
|
label: "Defined",
|
|
5231
5331
|
description: "Core brand elements have been decided. Name, values, visual identity, and voice are articulated. The brand is being applied but may still be evolving.",
|
|
5232
5332
|
transitions_to: ["mature"]
|
|
5233
5333
|
},
|
|
5234
5334
|
{
|
|
5235
5335
|
id: "mature",
|
|
5336
|
+
status_category: "completed",
|
|
5236
5337
|
label: "Mature",
|
|
5237
5338
|
description: "The brand identity is fully articulated and consistently applied. Guidelines are documented and followed across all touchpoints.",
|
|
5238
5339
|
transitions_to: []
|
|
@@ -5246,30 +5347,35 @@ var SCREEN_LIFECYCLE = {
|
|
|
5246
5347
|
phases: [
|
|
5247
5348
|
{
|
|
5248
5349
|
id: "draft",
|
|
5350
|
+
status_category: "started",
|
|
5249
5351
|
label: "Draft",
|
|
5250
5352
|
description: "The screen is a rough idea: named and scoped, but not yet worked in a design tool.",
|
|
5251
5353
|
transitions_to: ["in_design"]
|
|
5252
5354
|
},
|
|
5253
5355
|
{
|
|
5254
5356
|
id: "in_design",
|
|
5357
|
+
status_category: "started",
|
|
5255
5358
|
label: "In Design",
|
|
5256
5359
|
description: "The screen is being designed: wireframes, mockups, or prototypes are in progress. May fall back to `draft` if the approach is rethought from scratch.",
|
|
5257
5360
|
transitions_to: ["built", "draft"]
|
|
5258
5361
|
},
|
|
5259
5362
|
{
|
|
5260
5363
|
id: "built",
|
|
5364
|
+
status_category: "started",
|
|
5261
5365
|
label: "Built",
|
|
5262
5366
|
description: "The screen has been implemented in code. It exists in a build but is not yet live for users. May return to `in_design` if implementation surfaces a design gap.",
|
|
5263
5367
|
transitions_to: ["shipped", "in_design"]
|
|
5264
5368
|
},
|
|
5265
5369
|
{
|
|
5266
5370
|
id: "shipped",
|
|
5371
|
+
status_category: "completed",
|
|
5267
5372
|
label: "Shipped",
|
|
5268
5373
|
description: "The screen is live in production and reachable by users.",
|
|
5269
5374
|
transitions_to: ["deprecated"]
|
|
5270
5375
|
},
|
|
5271
5376
|
{
|
|
5272
5377
|
id: "deprecated",
|
|
5378
|
+
status_category: "completed",
|
|
5273
5379
|
label: "Deprecated",
|
|
5274
5380
|
description: "The screen has been retired. It is no longer reachable, or is being phased out in favour of a replacement.",
|
|
5275
5381
|
transitions_to: []
|
|
@@ -5283,24 +5389,28 @@ var SERVICE_LIFECYCLE = {
|
|
|
5283
5389
|
phases: [
|
|
5284
5390
|
{
|
|
5285
5391
|
id: "development",
|
|
5392
|
+
status_category: "started",
|
|
5286
5393
|
label: "Development",
|
|
5287
5394
|
description: "The service is being built. It is not available in any shared environment.",
|
|
5288
5395
|
transitions_to: ["staging"]
|
|
5289
5396
|
},
|
|
5290
5397
|
{
|
|
5291
5398
|
id: "staging",
|
|
5399
|
+
status_category: "started",
|
|
5292
5400
|
label: "Staging",
|
|
5293
5401
|
description: "The service is deployed to a staging environment for integration testing and pre-release validation.",
|
|
5294
5402
|
transitions_to: ["production", "development"]
|
|
5295
5403
|
},
|
|
5296
5404
|
{
|
|
5297
5405
|
id: "production",
|
|
5406
|
+
status_category: "started",
|
|
5298
5407
|
label: "Production",
|
|
5299
5408
|
description: "The service is live and serving real users.",
|
|
5300
5409
|
transitions_to: ["deprecated"]
|
|
5301
5410
|
},
|
|
5302
5411
|
{
|
|
5303
5412
|
id: "deprecated",
|
|
5413
|
+
status_category: "completed",
|
|
5304
5414
|
label: "Deprecated",
|
|
5305
5415
|
description: "The service is being phased out. A successor service is in place or the capability is no longer needed.",
|
|
5306
5416
|
transitions_to: []
|
|
@@ -5314,18 +5424,21 @@ var DEPLOYMENT_LIFECYCLE = {
|
|
|
5314
5424
|
phases: [
|
|
5315
5425
|
{
|
|
5316
5426
|
id: "rolling",
|
|
5427
|
+
status_category: "started",
|
|
5317
5428
|
label: "Rolling",
|
|
5318
5429
|
description: "The deployment is in progress. Instances are being updated. Not all traffic has shifted yet.",
|
|
5319
5430
|
transitions_to: ["success", "failure"]
|
|
5320
5431
|
},
|
|
5321
5432
|
{
|
|
5322
5433
|
id: "success",
|
|
5434
|
+
status_category: "completed",
|
|
5323
5435
|
label: "Success",
|
|
5324
5436
|
description: "The deployment completed successfully. All instances are running the new version.",
|
|
5325
5437
|
transitions_to: []
|
|
5326
5438
|
},
|
|
5327
5439
|
{
|
|
5328
5440
|
id: "failure",
|
|
5441
|
+
status_category: "completed",
|
|
5329
5442
|
label: "Failure",
|
|
5330
5443
|
description: "The deployment failed or was rolled back. The previous version is restored.",
|
|
5331
5444
|
transitions_to: []
|
|
@@ -5339,18 +5452,21 @@ var FEATURE_FLAG_LIFECYCLE = {
|
|
|
5339
5452
|
phases: [
|
|
5340
5453
|
{
|
|
5341
5454
|
id: "off",
|
|
5455
|
+
status_category: "backlog",
|
|
5342
5456
|
label: "Off",
|
|
5343
5457
|
description: "The flag is disabled. The associated feature or code path is not active for any users.",
|
|
5344
5458
|
transitions_to: ["rollout", "on"]
|
|
5345
5459
|
},
|
|
5346
5460
|
{
|
|
5347
5461
|
id: "rollout",
|
|
5462
|
+
status_category: "started",
|
|
5348
5463
|
label: "Rollout",
|
|
5349
5464
|
description: "The flag is partially enabled. A percentage of users or a target segment has access.",
|
|
5350
5465
|
transitions_to: ["on", "off"]
|
|
5351
5466
|
},
|
|
5352
5467
|
{
|
|
5353
5468
|
id: "on",
|
|
5469
|
+
status_category: "completed",
|
|
5354
5470
|
label: "On",
|
|
5355
5471
|
description: "The flag is fully enabled for all users. The feature is live. The flag can be cleaned up.",
|
|
5356
5472
|
transitions_to: []
|
|
@@ -5364,30 +5480,35 @@ var INVESTIGATION_LIFECYCLE = {
|
|
|
5364
5480
|
phases: [
|
|
5365
5481
|
{
|
|
5366
5482
|
id: "open",
|
|
5483
|
+
status_category: "triage",
|
|
5367
5484
|
label: "Open",
|
|
5368
5485
|
description: "The investigation has been opened. A problem has been identified but not yet actively worked.",
|
|
5369
5486
|
transitions_to: ["active"]
|
|
5370
5487
|
},
|
|
5371
5488
|
{
|
|
5372
5489
|
id: "active",
|
|
5490
|
+
status_category: "started",
|
|
5373
5491
|
label: "Active",
|
|
5374
5492
|
description: "The investigation is being actively worked. Evidence is being gathered and hypotheses are being tested.",
|
|
5375
5493
|
transitions_to: ["paused", "resolved", "abandoned"]
|
|
5376
5494
|
},
|
|
5377
5495
|
{
|
|
5378
5496
|
id: "paused",
|
|
5497
|
+
status_category: "backlog",
|
|
5379
5498
|
label: "Paused",
|
|
5380
5499
|
description: "On hold: awaiting additional data, unblocking conditions, or reprioritisation.",
|
|
5381
5500
|
transitions_to: ["active", "abandoned"]
|
|
5382
5501
|
},
|
|
5383
5502
|
{
|
|
5384
5503
|
id: "resolved",
|
|
5504
|
+
status_category: "completed",
|
|
5385
5505
|
label: "Resolved",
|
|
5386
5506
|
description: "Root cause has been identified and documented. The investigation is closed.",
|
|
5387
5507
|
transitions_to: []
|
|
5388
5508
|
},
|
|
5389
5509
|
{
|
|
5390
5510
|
id: "abandoned",
|
|
5511
|
+
status_category: "cancelled",
|
|
5391
5512
|
label: "Abandoned",
|
|
5392
5513
|
description: "Closed without resolution: the problem could not be reproduced, was deemed not worth pursuing, or became moot.",
|
|
5393
5514
|
transitions_to: []
|
|
@@ -5401,24 +5522,28 @@ var EXTERNAL_API_LIFECYCLE = {
|
|
|
5401
5522
|
phases: [
|
|
5402
5523
|
{
|
|
5403
5524
|
id: "beta",
|
|
5525
|
+
status_category: "started",
|
|
5404
5526
|
label: "Beta",
|
|
5405
5527
|
description: "The API is available for early access or testing. It may be unstable and subject to breaking changes.",
|
|
5406
5528
|
transitions_to: ["active"]
|
|
5407
5529
|
},
|
|
5408
5530
|
{
|
|
5409
5531
|
id: "active",
|
|
5532
|
+
status_category: "started",
|
|
5410
5533
|
label: "Active",
|
|
5411
5534
|
description: "The API is stable and in production use. The provider guarantees availability per their SLA.",
|
|
5412
5535
|
transitions_to: ["deprecated", "unavailable"]
|
|
5413
5536
|
},
|
|
5414
5537
|
{
|
|
5415
5538
|
id: "deprecated",
|
|
5539
|
+
status_category: "started",
|
|
5416
5540
|
label: "Deprecated",
|
|
5417
5541
|
description: "The provider has announced end-of-life. The API still works but a migration to a successor is required.",
|
|
5418
5542
|
transitions_to: ["unavailable"]
|
|
5419
5543
|
},
|
|
5420
5544
|
{
|
|
5421
5545
|
id: "unavailable",
|
|
5546
|
+
status_category: "completed",
|
|
5422
5547
|
label: "Unavailable",
|
|
5423
5548
|
description: "The API is no longer accessible. Any dependent service is broken until migrated.",
|
|
5424
5549
|
transitions_to: []
|
|
@@ -5432,18 +5557,21 @@ var DATABASE_SCHEMA_LIFECYCLE = {
|
|
|
5432
5557
|
phases: [
|
|
5433
5558
|
{
|
|
5434
5559
|
id: "current",
|
|
5560
|
+
status_category: "started",
|
|
5435
5561
|
label: "Current",
|
|
5436
5562
|
description: "The schema is up to date with the applied migrations. No pending changes.",
|
|
5437
5563
|
transitions_to: ["pending"]
|
|
5438
5564
|
},
|
|
5439
5565
|
{
|
|
5440
5566
|
id: "pending",
|
|
5567
|
+
status_category: "unstarted",
|
|
5441
5568
|
label: "Pending",
|
|
5442
5569
|
description: "A migration is queued and ready to run. The schema will change when it is applied.",
|
|
5443
5570
|
transitions_to: ["current", "failed"]
|
|
5444
5571
|
},
|
|
5445
5572
|
{
|
|
5446
5573
|
id: "failed",
|
|
5574
|
+
status_category: "completed",
|
|
5447
5575
|
label: "Failed",
|
|
5448
5576
|
description: "A migration failed during application. The schema is in an inconsistent state and requires remediation before further changes can be applied.",
|
|
5449
5577
|
transitions_to: ["pending"]
|
|
@@ -5457,30 +5585,35 @@ var INCIDENT_LIFECYCLE = {
|
|
|
5457
5585
|
phases: [
|
|
5458
5586
|
{
|
|
5459
5587
|
id: "detected",
|
|
5588
|
+
status_category: "triage",
|
|
5460
5589
|
label: "Detected",
|
|
5461
5590
|
description: "Identified by an alert, a user report, or direct observation. Response has not yet started.",
|
|
5462
5591
|
transitions_to: ["triaged"]
|
|
5463
5592
|
},
|
|
5464
5593
|
{
|
|
5465
5594
|
id: "triaged",
|
|
5595
|
+
status_category: "triage",
|
|
5466
5596
|
label: "Triaged",
|
|
5467
5597
|
description: "The incident has been assessed for severity and impact. An on-call responder is assigned and is actively working it.",
|
|
5468
5598
|
transitions_to: ["contained"]
|
|
5469
5599
|
},
|
|
5470
5600
|
{
|
|
5471
5601
|
id: "contained",
|
|
5602
|
+
status_category: "started",
|
|
5472
5603
|
label: "Contained",
|
|
5473
5604
|
description: "Immediate user impact stopped via rollback, circuit breaker, or another emergency measure. Root cause fix is still pending.",
|
|
5474
5605
|
transitions_to: ["resolved", "mitigated"]
|
|
5475
5606
|
},
|
|
5476
5607
|
{
|
|
5477
5608
|
id: "resolved",
|
|
5609
|
+
status_category: "completed",
|
|
5478
5610
|
label: "Resolved",
|
|
5479
5611
|
description: "Root cause has been identified and fixed. The system is back to normal. A postmortem is recommended.",
|
|
5480
5612
|
transitions_to: []
|
|
5481
5613
|
},
|
|
5482
5614
|
{
|
|
5483
5615
|
id: "mitigated",
|
|
5616
|
+
status_category: "completed",
|
|
5484
5617
|
label: "Mitigated",
|
|
5485
5618
|
description: "A compensating control is in place and user impact is stopped, but the root cause remains unfixed. A follow-up investigation or fix is required.",
|
|
5486
5619
|
transitions_to: []
|
|
@@ -5494,24 +5627,28 @@ var SECURITY_CONTROL_LIFECYCLE = {
|
|
|
5494
5627
|
phases: [
|
|
5495
5628
|
{
|
|
5496
5629
|
id: "planned",
|
|
5630
|
+
status_category: "unstarted",
|
|
5497
5631
|
label: "Planned",
|
|
5498
5632
|
description: "The control has been identified as required but implementation has not started.",
|
|
5499
5633
|
transitions_to: ["in_progress"]
|
|
5500
5634
|
},
|
|
5501
5635
|
{
|
|
5502
5636
|
id: "in_progress",
|
|
5637
|
+
status_category: "started",
|
|
5503
5638
|
label: "In Progress",
|
|
5504
5639
|
description: "The control is being implemented.",
|
|
5505
5640
|
transitions_to: ["implemented"]
|
|
5506
5641
|
},
|
|
5507
5642
|
{
|
|
5508
5643
|
id: "implemented",
|
|
5644
|
+
status_category: "started",
|
|
5509
5645
|
label: "Implemented",
|
|
5510
5646
|
description: "The control is in place. It has not yet been independently tested or verified.",
|
|
5511
5647
|
transitions_to: ["verified", "in_progress"]
|
|
5512
5648
|
},
|
|
5513
5649
|
{
|
|
5514
5650
|
id: "verified",
|
|
5651
|
+
status_category: "completed",
|
|
5515
5652
|
label: "Verified",
|
|
5516
5653
|
description: "The control has been tested and confirmed effective. It provides the intended security assurance.",
|
|
5517
5654
|
transitions_to: []
|
|
@@ -5525,30 +5662,35 @@ var DATA_PIPELINE_LIFECYCLE = {
|
|
|
5525
5662
|
phases: [
|
|
5526
5663
|
{
|
|
5527
5664
|
id: "building",
|
|
5665
|
+
status_category: "started",
|
|
5528
5666
|
label: "Building",
|
|
5529
5667
|
description: "The pipeline is under construction. It is not yet processing real data.",
|
|
5530
5668
|
transitions_to: ["active"]
|
|
5531
5669
|
},
|
|
5532
5670
|
{
|
|
5533
5671
|
id: "active",
|
|
5672
|
+
status_category: "started",
|
|
5534
5673
|
label: "Active",
|
|
5535
5674
|
description: "The pipeline is running and processing data on its defined schedule.",
|
|
5536
5675
|
transitions_to: ["paused", "failed", "deprecated"]
|
|
5537
5676
|
},
|
|
5538
5677
|
{
|
|
5539
5678
|
id: "paused",
|
|
5679
|
+
status_category: "backlog",
|
|
5540
5680
|
label: "Paused",
|
|
5541
5681
|
description: "Deliberately suspended: maintenance, cost control, or upstream data unavailability.",
|
|
5542
5682
|
transitions_to: ["active", "deprecated"]
|
|
5543
5683
|
},
|
|
5544
5684
|
{
|
|
5545
5685
|
id: "failed",
|
|
5686
|
+
status_category: "started",
|
|
5546
5687
|
label: "Failed",
|
|
5547
5688
|
description: "The pipeline has errored and is not processing data. Intervention is required to restore it.",
|
|
5548
5689
|
transitions_to: ["active"]
|
|
5549
5690
|
},
|
|
5550
5691
|
{
|
|
5551
5692
|
id: "deprecated",
|
|
5693
|
+
status_category: "completed",
|
|
5552
5694
|
label: "Deprecated",
|
|
5553
5695
|
description: "The pipeline is being retired. It is no longer maintained and will be shut down.",
|
|
5554
5696
|
transitions_to: []
|
|
@@ -5562,30 +5704,35 @@ var AI_MODEL_LIFECYCLE = {
|
|
|
5562
5704
|
phases: [
|
|
5563
5705
|
{
|
|
5564
5706
|
id: "evaluating",
|
|
5707
|
+
status_category: "started",
|
|
5565
5708
|
label: "Evaluating",
|
|
5566
5709
|
description: "The model is being assessed for quality, cost, safety, and fit. Eval runs are being analysed. No production traffic.",
|
|
5567
5710
|
transitions_to: ["staging", "retired"]
|
|
5568
5711
|
},
|
|
5569
5712
|
{
|
|
5570
5713
|
id: "staging",
|
|
5714
|
+
status_category: "started",
|
|
5571
5715
|
label: "Staging",
|
|
5572
5716
|
description: "The model has passed evaluation and is deployed to a staging environment for integration testing.",
|
|
5573
5717
|
transitions_to: ["production", "evaluating", "retired"]
|
|
5574
5718
|
},
|
|
5575
5719
|
{
|
|
5576
5720
|
id: "production",
|
|
5721
|
+
status_category: "started",
|
|
5577
5722
|
label: "Production",
|
|
5578
5723
|
description: "The model is serving live product traffic.",
|
|
5579
5724
|
transitions_to: ["deprecated", "retired"]
|
|
5580
5725
|
},
|
|
5581
5726
|
{
|
|
5582
5727
|
id: "deprecated",
|
|
5728
|
+
status_category: "started",
|
|
5583
5729
|
label: "Deprecated",
|
|
5584
5730
|
description: "A successor model is in production. This model is being phased out. Traffic is being migrated.",
|
|
5585
5731
|
transitions_to: ["retired"]
|
|
5586
5732
|
},
|
|
5587
5733
|
{
|
|
5588
5734
|
id: "retired",
|
|
5735
|
+
status_category: "completed",
|
|
5589
5736
|
label: "Retired",
|
|
5590
5737
|
description: "The model is fully decommissioned. No traffic. Historical records are preserved.",
|
|
5591
5738
|
transitions_to: []
|
|
@@ -5599,36 +5746,42 @@ var WORKFLOW_RUN_LIFECYCLE = {
|
|
|
5599
5746
|
phases: [
|
|
5600
5747
|
{
|
|
5601
5748
|
id: "pending",
|
|
5749
|
+
status_category: "unstarted",
|
|
5602
5750
|
label: "Pending",
|
|
5603
5751
|
description: "The run has been queued and is awaiting execution. Resources or dependencies are being provisioned.",
|
|
5604
5752
|
transitions_to: ["running", "cancelled"]
|
|
5605
5753
|
},
|
|
5606
5754
|
{
|
|
5607
5755
|
id: "running",
|
|
5756
|
+
status_category: "started",
|
|
5608
5757
|
label: "Running",
|
|
5609
5758
|
description: "The workflow is actively executing its steps.",
|
|
5610
5759
|
transitions_to: ["blocked", "completed", "failed", "cancelled"]
|
|
5611
5760
|
},
|
|
5612
5761
|
{
|
|
5613
5762
|
id: "blocked",
|
|
5763
|
+
status_category: "started",
|
|
5614
5764
|
label: "Blocked",
|
|
5615
5765
|
description: "Execution is paused at a review_gate awaiting human or automated approval before proceeding.",
|
|
5616
5766
|
transitions_to: ["running", "cancelled"]
|
|
5617
5767
|
},
|
|
5618
5768
|
{
|
|
5619
5769
|
id: "completed",
|
|
5770
|
+
status_category: "completed",
|
|
5620
5771
|
label: "Completed",
|
|
5621
5772
|
description: "All steps executed successfully. Outputs are available.",
|
|
5622
5773
|
transitions_to: []
|
|
5623
5774
|
},
|
|
5624
5775
|
{
|
|
5625
5776
|
id: "failed",
|
|
5777
|
+
status_category: "completed",
|
|
5626
5778
|
label: "Failed",
|
|
5627
5779
|
description: "The run encountered an unrecoverable error and stopped. Partial outputs may be available.",
|
|
5628
5780
|
transitions_to: []
|
|
5629
5781
|
},
|
|
5630
5782
|
{
|
|
5631
5783
|
id: "cancelled",
|
|
5784
|
+
status_category: "cancelled",
|
|
5632
5785
|
label: "Cancelled",
|
|
5633
5786
|
description: "The run was deliberately stopped before completion.",
|
|
5634
5787
|
transitions_to: []
|
|
@@ -5642,30 +5795,35 @@ var AGENT_DEFINITION_LIFECYCLE = {
|
|
|
5642
5795
|
phases: [
|
|
5643
5796
|
{
|
|
5644
5797
|
id: "testing",
|
|
5798
|
+
status_category: "started",
|
|
5645
5799
|
label: "Testing",
|
|
5646
5800
|
description: "The agent is being validated in a controlled environment. Sessions are not running against real product data.",
|
|
5647
5801
|
transitions_to: ["active", "disabled"]
|
|
5648
5802
|
},
|
|
5649
5803
|
{
|
|
5650
5804
|
id: "active",
|
|
5805
|
+
status_category: "started",
|
|
5651
5806
|
label: "Active",
|
|
5652
5807
|
description: "The agent is operational and creating sessions on demand.",
|
|
5653
5808
|
transitions_to: ["paused", "disabled", "retired"]
|
|
5654
5809
|
},
|
|
5655
5810
|
{
|
|
5656
5811
|
id: "paused",
|
|
5812
|
+
status_category: "backlog",
|
|
5657
5813
|
label: "Paused",
|
|
5658
5814
|
description: "The agent is temporarily suspended. It is not creating new sessions but its configuration is preserved.",
|
|
5659
5815
|
transitions_to: ["active", "retired"]
|
|
5660
5816
|
},
|
|
5661
5817
|
{
|
|
5662
5818
|
id: "disabled",
|
|
5819
|
+
status_category: "backlog",
|
|
5663
5820
|
label: "Disabled",
|
|
5664
5821
|
description: "Turned off: bug, policy change, or safety concern. Can be re-enabled after remediation.",
|
|
5665
5822
|
transitions_to: ["testing", "active", "retired"]
|
|
5666
5823
|
},
|
|
5667
5824
|
{
|
|
5668
5825
|
id: "retired",
|
|
5826
|
+
status_category: "completed",
|
|
5669
5827
|
label: "Retired",
|
|
5670
5828
|
description: "The agent has been permanently decommissioned. Sessions are no longer created from this definition.",
|
|
5671
5829
|
transitions_to: []
|
|
@@ -5679,24 +5837,28 @@ var AGENT_SESSION_LIFECYCLE = {
|
|
|
5679
5837
|
phases: [
|
|
5680
5838
|
{
|
|
5681
5839
|
id: "active",
|
|
5840
|
+
status_category: "started",
|
|
5682
5841
|
label: "Active",
|
|
5683
5842
|
description: "The session is running. The agent is processing input and producing output.",
|
|
5684
5843
|
transitions_to: ["completed", "crashed", "timed_out"]
|
|
5685
5844
|
},
|
|
5686
5845
|
{
|
|
5687
5846
|
id: "completed",
|
|
5847
|
+
status_category: "completed",
|
|
5688
5848
|
label: "Completed",
|
|
5689
5849
|
description: "The session ended normally. The task was completed or the conversation was concluded.",
|
|
5690
5850
|
transitions_to: []
|
|
5691
5851
|
},
|
|
5692
5852
|
{
|
|
5693
5853
|
id: "crashed",
|
|
5854
|
+
status_category: "completed",
|
|
5694
5855
|
label: "Crashed",
|
|
5695
5856
|
description: "The session terminated unexpectedly due to an unhandled error or infrastructure failure.",
|
|
5696
5857
|
transitions_to: []
|
|
5697
5858
|
},
|
|
5698
5859
|
{
|
|
5699
5860
|
id: "timed_out",
|
|
5861
|
+
status_category: "completed",
|
|
5700
5862
|
label: "Timed Out",
|
|
5701
5863
|
description: "The session exceeded its maximum allowed duration and was automatically terminated.",
|
|
5702
5864
|
transitions_to: []
|
|
@@ -5710,24 +5872,28 @@ var REVIEW_GATE_LIFECYCLE = {
|
|
|
5710
5872
|
phases: [
|
|
5711
5873
|
{
|
|
5712
5874
|
id: "pending",
|
|
5875
|
+
status_category: "unstarted",
|
|
5713
5876
|
label: "Pending",
|
|
5714
5877
|
description: "The gate is awaiting review. The workflow is blocked until a decision is made.",
|
|
5715
5878
|
transitions_to: ["approved", "rejected", "bypassed"]
|
|
5716
5879
|
},
|
|
5717
5880
|
{
|
|
5718
5881
|
id: "approved",
|
|
5882
|
+
status_category: "completed",
|
|
5719
5883
|
label: "Approved",
|
|
5720
5884
|
description: "The gate has been passed. The workflow continues.",
|
|
5721
5885
|
transitions_to: []
|
|
5722
5886
|
},
|
|
5723
5887
|
{
|
|
5724
5888
|
id: "rejected",
|
|
5889
|
+
status_category: "cancelled",
|
|
5725
5890
|
label: "Rejected",
|
|
5726
5891
|
description: "The gate was not passed. The workflow is blocked and the submitter must address the feedback before re-submitting.",
|
|
5727
5892
|
transitions_to: ["pending"]
|
|
5728
5893
|
},
|
|
5729
5894
|
{
|
|
5730
5895
|
id: "bypassed",
|
|
5896
|
+
status_category: "cancelled",
|
|
5731
5897
|
label: "Bypassed",
|
|
5732
5898
|
description: "Deliberately overridden without normal review by an authorised person in an emergency. Create an audit trail entry.",
|
|
5733
5899
|
transitions_to: []
|
|
@@ -5741,18 +5907,21 @@ var TEST_SUITE_LIFECYCLE = {
|
|
|
5741
5907
|
phases: [
|
|
5742
5908
|
{
|
|
5743
5909
|
id: "draft",
|
|
5910
|
+
status_category: "started",
|
|
5744
5911
|
label: "Draft",
|
|
5745
5912
|
description: "The test suite is being authored. It is not yet part of any CI or QA process.",
|
|
5746
5913
|
transitions_to: ["active"]
|
|
5747
5914
|
},
|
|
5748
5915
|
{
|
|
5749
5916
|
id: "active",
|
|
5917
|
+
status_category: "started",
|
|
5750
5918
|
label: "Active",
|
|
5751
5919
|
description: "The suite is running in CI or scheduled QA processes.",
|
|
5752
5920
|
transitions_to: ["deprecated"]
|
|
5753
5921
|
},
|
|
5754
5922
|
{
|
|
5755
5923
|
id: "deprecated",
|
|
5924
|
+
status_category: "completed",
|
|
5756
5925
|
label: "Deprecated",
|
|
5757
5926
|
description: "The suite is no longer being run. It may be superseded by a newer suite or the tested functionality may have been removed.",
|
|
5758
5927
|
transitions_to: []
|
|
@@ -5766,18 +5935,21 @@ var TEST_CASE_LIFECYCLE = {
|
|
|
5766
5935
|
phases: [
|
|
5767
5936
|
{
|
|
5768
5937
|
id: "draft",
|
|
5938
|
+
status_category: "started",
|
|
5769
5939
|
label: "Draft",
|
|
5770
5940
|
description: "The test case is being written. Preconditions, steps, and expected results are being defined.",
|
|
5771
5941
|
transitions_to: ["active"]
|
|
5772
5942
|
},
|
|
5773
5943
|
{
|
|
5774
5944
|
id: "active",
|
|
5945
|
+
status_category: "started",
|
|
5775
5946
|
label: "Active",
|
|
5776
5947
|
description: "The test case is included in one or more test suites and is being executed.",
|
|
5777
5948
|
transitions_to: ["deprecated"]
|
|
5778
5949
|
},
|
|
5779
5950
|
{
|
|
5780
5951
|
id: "deprecated",
|
|
5952
|
+
status_category: "completed",
|
|
5781
5953
|
label: "Deprecated",
|
|
5782
5954
|
description: "The test case is no longer executed. The feature it covered may have changed or been removed.",
|
|
5783
5955
|
transitions_to: []
|
|
@@ -5789,10 +5961,10 @@ var INSIGHT_LIFECYCLE = {
|
|
|
5789
5961
|
initial_phase: "proposed",
|
|
5790
5962
|
terminal_phases: ["applied", "retired"],
|
|
5791
5963
|
phases: [
|
|
5792
|
-
{ id: "proposed", label: "Proposed", description: "A pattern has been synthesised from observations. Not yet cross-checked.", transitions_to: ["validated", "retired"] },
|
|
5793
|
-
{ id: "validated", label: "Validated", description: "The insight has been cross-checked against additional evidence. Believed reliable.", transitions_to: ["applied", "retired"] },
|
|
5794
|
-
{ id: "applied", label: "Applied", description: "The insight drove a product decision. Captured for the record.", transitions_to: ["retired"] },
|
|
5795
|
-
{ id: "retired", label: "Retired", description: "Superseded by newer insight, or no longer relevant. May reopen to proposed if revisited.", transitions_to: ["proposed"] }
|
|
5964
|
+
{ id: "proposed", status_category: "triage", label: "Proposed", description: "A pattern has been synthesised from observations. Not yet cross-checked.", transitions_to: ["validated", "retired"] },
|
|
5965
|
+
{ id: "validated", status_category: "started", label: "Validated", description: "The insight has been cross-checked against additional evidence. Believed reliable.", transitions_to: ["applied", "retired"] },
|
|
5966
|
+
{ id: "applied", status_category: "completed", label: "Applied", description: "The insight drove a product decision. Captured for the record.", transitions_to: ["retired"] },
|
|
5967
|
+
{ id: "retired", status_category: "completed", label: "Retired", description: "Superseded by newer insight, or no longer relevant. May reopen to proposed if revisited.", transitions_to: ["proposed"] }
|
|
5796
5968
|
]
|
|
5797
5969
|
};
|
|
5798
5970
|
var RESEARCH_QUESTION_LIFECYCLE = {
|
|
@@ -5800,10 +5972,10 @@ var RESEARCH_QUESTION_LIFECYCLE = {
|
|
|
5800
5972
|
initial_phase: "open",
|
|
5801
5973
|
terminal_phases: ["answered", "parked"],
|
|
5802
5974
|
phases: [
|
|
5803
|
-
{ id: "open", label: "Open", description: "Question has been articulated. Research has not started.", transitions_to: ["researching", "parked"] },
|
|
5804
|
-
{ id: "researching", label: "Researching", description: "Active investigation. Methods are being run, evidence is being gathered.", transitions_to: ["answered", "parked"] },
|
|
5805
|
-
{ id: "answered", label: "Answered", description: "Question has been resolved. Findings captured in linked insights.", transitions_to: [] },
|
|
5806
|
-
{ id: "parked", label: "Parked", description: "Set aside due to capacity, priority, or dependency. May reopen to researching.", transitions_to: ["researching"] }
|
|
5975
|
+
{ id: "open", status_category: "triage", label: "Open", description: "Question has been articulated. Research has not started.", transitions_to: ["researching", "parked"] },
|
|
5976
|
+
{ id: "researching", status_category: "started", label: "Researching", description: "Active investigation. Methods are being run, evidence is being gathered.", transitions_to: ["answered", "parked"] },
|
|
5977
|
+
{ id: "answered", status_category: "completed", label: "Answered", description: "Question has been resolved. Findings captured in linked insights.", transitions_to: [] },
|
|
5978
|
+
{ id: "parked", status_category: "backlog", label: "Parked", description: "Set aside due to capacity, priority, or dependency. May reopen to researching.", transitions_to: ["researching"] }
|
|
5807
5979
|
]
|
|
5808
5980
|
};
|
|
5809
5981
|
var INTERVIEW_GUIDE_LIFECYCLE = {
|
|
@@ -5811,10 +5983,10 @@ var INTERVIEW_GUIDE_LIFECYCLE = {
|
|
|
5811
5983
|
initial_phase: "drafting",
|
|
5812
5984
|
terminal_phases: ["archived"],
|
|
5813
5985
|
phases: [
|
|
5814
|
-
{ id: "drafting", label: "Drafting", description: "Guide is being authored or revised. Not yet ready for use.", transitions_to: ["ready"] },
|
|
5815
|
-
{ id: "ready", label: "Ready", description: "Guide is approved for use. May be picked up by a study.", transitions_to: ["in_use", "drafting"] },
|
|
5816
|
-
{ id: "in_use", label: "In Use", description: "Currently being run in one or more research_study entities.", transitions_to: ["ready", "archived"] },
|
|
5817
|
-
{ id: "archived", label: "Archived", description: "Retired from active use. May reopen to drafting if revived.", transitions_to: ["drafting"] }
|
|
5986
|
+
{ id: "drafting", status_category: "started", label: "Drafting", description: "Guide is being authored or revised. Not yet ready for use.", transitions_to: ["ready"] },
|
|
5987
|
+
{ id: "ready", status_category: "unstarted", label: "Ready", description: "Guide is approved for use. May be picked up by a study.", transitions_to: ["in_use", "drafting"] },
|
|
5988
|
+
{ id: "in_use", status_category: "started", label: "In Use", description: "Currently being run in one or more research_study entities.", transitions_to: ["ready", "archived"] },
|
|
5989
|
+
{ id: "archived", status_category: "completed", label: "Archived", description: "Retired from active use. May reopen to drafting if revived.", transitions_to: ["drafting"] }
|
|
5818
5990
|
]
|
|
5819
5991
|
};
|
|
5820
5992
|
var TEST_PLAN_LIFECYCLE = {
|
|
@@ -5822,10 +5994,10 @@ var TEST_PLAN_LIFECYCLE = {
|
|
|
5822
5994
|
initial_phase: "drafted",
|
|
5823
5995
|
terminal_phases: ["completed", "cancelled"],
|
|
5824
5996
|
phases: [
|
|
5825
|
-
{ id: "drafted", label: "Drafted", description: "Plan has been authored. Not yet started.", transitions_to: ["executing", "cancelled"] },
|
|
5826
|
-
{ id: "executing", label: "Executing", description: "Tests are running according to the plan.", transitions_to: ["completed", "cancelled"] },
|
|
5827
|
-
{ id: "completed", label: "Completed", description: "All tests in the plan have run. Outcomes captured in linked test_result entities.", transitions_to: ["executing"] },
|
|
5828
|
-
{ id: "cancelled", label: "Cancelled", description: "Plan was abandoned mid-flight: assumption changed, priorities shifted, or the underlying code went away.", transitions_to: [] }
|
|
5997
|
+
{ id: "drafted", status_category: "unstarted", label: "Drafted", description: "Plan has been authored. Not yet started.", transitions_to: ["executing", "cancelled"] },
|
|
5998
|
+
{ id: "executing", status_category: "started", label: "Executing", description: "Tests are running according to the plan.", transitions_to: ["completed", "cancelled"] },
|
|
5999
|
+
{ id: "completed", status_category: "completed", label: "Completed", description: "All tests in the plan have run. Outcomes captured in linked test_result entities.", transitions_to: ["executing"] },
|
|
6000
|
+
{ id: "cancelled", status_category: "cancelled", label: "Cancelled", description: "Plan was abandoned mid-flight: assumption changed, priorities shifted, or the underlying code went away.", transitions_to: [] }
|
|
5829
6001
|
]
|
|
5830
6002
|
};
|
|
5831
6003
|
var AI_DATASET_LIFECYCLE = {
|
|
@@ -5833,10 +6005,10 @@ var AI_DATASET_LIFECYCLE = {
|
|
|
5833
6005
|
initial_phase: "collecting",
|
|
5834
6006
|
terminal_phases: ["versioned", "archived"],
|
|
5835
6007
|
phases: [
|
|
5836
|
-
{ id: "collecting", label: "Collecting", description: "Examples are being gathered. Schema and labelling rules may still be in flux.", transitions_to: ["curated", "archived"] },
|
|
5837
|
-
{ id: "curated", label: "Curated", description: "Examples have been cleaned, deduped, and labelled. Ready for versioning.", transitions_to: ["versioned", "collecting"] },
|
|
5838
|
-
{ id: "versioned", label: "Versioned", description: "A specific cut has been pinned and is citable. New collection continues in a successor version.", transitions_to: ["archived"] },
|
|
5839
|
-
{ id: "archived", label: "Archived", description: "No longer in active use. May reopen to collecting if revived.", transitions_to: ["collecting"] }
|
|
6008
|
+
{ id: "collecting", status_category: "started", label: "Collecting", description: "Examples are being gathered. Schema and labelling rules may still be in flux.", transitions_to: ["curated", "archived"] },
|
|
6009
|
+
{ id: "curated", status_category: "started", label: "Curated", description: "Examples have been cleaned, deduped, and labelled. Ready for versioning.", transitions_to: ["versioned", "collecting"] },
|
|
6010
|
+
{ id: "versioned", status_category: "completed", label: "Versioned", description: "A specific cut has been pinned and is citable. New collection continues in a successor version.", transitions_to: ["archived"] },
|
|
6011
|
+
{ id: "archived", status_category: "completed", label: "Archived", description: "No longer in active use. May reopen to collecting if revived.", transitions_to: ["collecting"] }
|
|
5840
6012
|
]
|
|
5841
6013
|
};
|
|
5842
6014
|
var AI_GUARDRAIL_LIFECYCLE = {
|
|
@@ -5844,10 +6016,10 @@ var AI_GUARDRAIL_LIFECYCLE = {
|
|
|
5844
6016
|
initial_phase: "proposed",
|
|
5845
6017
|
terminal_phases: ["active", "relaxed", "removed"],
|
|
5846
6018
|
phases: [
|
|
5847
|
-
{ id: "proposed", label: "Proposed", description: "Guardrail has been suggested. Not yet enforced.", transitions_to: ["active", "removed"] },
|
|
5848
|
-
{ id: "active", label: "Active", description: "Guardrail is enforced as designed. Currently the steady state.", transitions_to: ["relaxed", "removed"] },
|
|
5849
|
-
{ id: "relaxed", label: "Relaxed", description: "Guardrail is enforced more loosely than originally specified. Captured separately because the looser form has different implications.", transitions_to: ["active", "removed"] },
|
|
5850
|
-
{ id: "removed", label: "Removed", description: "Guardrail is no longer enforced. May reopen to active if reinstated.", transitions_to: ["active"] }
|
|
6019
|
+
{ id: "proposed", status_category: "triage", label: "Proposed", description: "Guardrail has been suggested. Not yet enforced.", transitions_to: ["active", "removed"] },
|
|
6020
|
+
{ id: "active", status_category: "started", label: "Active", description: "Guardrail is enforced as designed. Currently the steady state.", transitions_to: ["relaxed", "removed"] },
|
|
6021
|
+
{ id: "relaxed", status_category: "started", label: "Relaxed", description: "Guardrail is enforced more loosely than originally specified. Captured separately because the looser form has different implications.", transitions_to: ["active", "removed"] },
|
|
6022
|
+
{ id: "removed", status_category: "cancelled", label: "Removed", description: "Guardrail is no longer enforced. May reopen to active if reinstated.", transitions_to: ["active"] }
|
|
5851
6023
|
]
|
|
5852
6024
|
};
|
|
5853
6025
|
var MODEL_COMPARISON_LIFECYCLE = {
|
|
@@ -5855,10 +6027,10 @@ var MODEL_COMPARISON_LIFECYCLE = {
|
|
|
5855
6027
|
initial_phase: "planned",
|
|
5856
6028
|
terminal_phases: ["published", "archived"],
|
|
5857
6029
|
phases: [
|
|
5858
|
-
{ id: "planned", label: "Planned", description: "Comparison has been scoped: models, criteria, and methodology are agreed.", transitions_to: ["running", "archived"] },
|
|
5859
|
-
{ id: "running", label: "Running", description: "Models are being evaluated against the chosen criteria.", transitions_to: ["published", "archived"] },
|
|
5860
|
-
{ id: "published", label: "Published", description: "Results are written up and citable. Drives downstream model selection.", transitions_to: ["archived", "planned"] },
|
|
5861
|
-
{ id: "archived", label: "Archived", description: "Superseded by newer comparison. May reopen to planned if re-run.", transitions_to: ["planned"] }
|
|
6030
|
+
{ id: "planned", status_category: "unstarted", label: "Planned", description: "Comparison has been scoped: models, criteria, and methodology are agreed.", transitions_to: ["running", "archived"] },
|
|
6031
|
+
{ id: "running", status_category: "started", label: "Running", description: "Models are being evaluated against the chosen criteria.", transitions_to: ["published", "archived"] },
|
|
6032
|
+
{ id: "published", status_category: "completed", label: "Published", description: "Results are written up and citable. Drives downstream model selection.", transitions_to: ["archived", "planned"] },
|
|
6033
|
+
{ id: "archived", status_category: "completed", label: "Archived", description: "Superseded by newer comparison. May reopen to planned if re-run.", transitions_to: ["planned"] }
|
|
5862
6034
|
]
|
|
5863
6035
|
};
|
|
5864
6036
|
var PROMPT_VERSION_LIFECYCLE = {
|
|
@@ -5866,10 +6038,10 @@ var PROMPT_VERSION_LIFECYCLE = {
|
|
|
5866
6038
|
initial_phase: "drafted",
|
|
5867
6039
|
terminal_phases: ["active", "deprecated"],
|
|
5868
6040
|
phases: [
|
|
5869
|
-
{ id: "drafted", label: "Drafted", description: "Prompt has been authored. Not yet evaluated.", transitions_to: ["testing", "deprecated"] },
|
|
5870
|
-
{ id: "testing", label: "Testing", description: "Running through eval benchmarks. Results inform whether to promote.", transitions_to: ["active", "drafted", "deprecated"] },
|
|
5871
|
-
{ id: "active", label: "Active", description: "In production use.", transitions_to: ["deprecated"] },
|
|
5872
|
-
{ id: "deprecated", label: "Deprecated", description: "Superseded by a successor version. Still available for backwards-compat. May reopen to testing if reinstated.", transitions_to: ["testing"] }
|
|
6041
|
+
{ id: "drafted", status_category: "unstarted", label: "Drafted", description: "Prompt has been authored. Not yet evaluated.", transitions_to: ["testing", "deprecated"] },
|
|
6042
|
+
{ id: "testing", status_category: "started", label: "Testing", description: "Running through eval benchmarks. Results inform whether to promote.", transitions_to: ["active", "drafted", "deprecated"] },
|
|
6043
|
+
{ id: "active", status_category: "started", label: "Active", description: "In production use.", transitions_to: ["deprecated"] },
|
|
6044
|
+
{ id: "deprecated", status_category: "completed", label: "Deprecated", description: "Superseded by a successor version. Still available for backwards-compat. May reopen to testing if reinstated.", transitions_to: ["testing"] }
|
|
5873
6045
|
]
|
|
5874
6046
|
};
|
|
5875
6047
|
var EVAL_BENCHMARK_LIFECYCLE = {
|
|
@@ -5877,10 +6049,10 @@ var EVAL_BENCHMARK_LIFECYCLE = {
|
|
|
5877
6049
|
initial_phase: "drafted",
|
|
5878
6050
|
terminal_phases: ["published", "deprecated"],
|
|
5879
6051
|
phases: [
|
|
5880
|
-
{ id: "drafted", label: "Drafted", description: "Benchmark questions and scoring rubric are being designed.", transitions_to: ["running", "deprecated"] },
|
|
5881
|
-
{ id: "running", label: "Running", description: "Benchmark is being executed against models or prompt versions.", transitions_to: ["published", "deprecated"] },
|
|
5882
|
-
{ id: "published", label: "Published", description: "Results are citable. Benchmark is part of the standard eval rotation.", transitions_to: ["deprecated", "running"] },
|
|
5883
|
-
{ id: "deprecated", label: "Deprecated", description: "Benchmark no longer reflects what the team measures. May reopen to drafted if revisited.", transitions_to: ["drafted"] }
|
|
6052
|
+
{ id: "drafted", status_category: "unstarted", label: "Drafted", description: "Benchmark questions and scoring rubric are being designed.", transitions_to: ["running", "deprecated"] },
|
|
6053
|
+
{ id: "running", status_category: "started", label: "Running", description: "Benchmark is being executed against models or prompt versions.", transitions_to: ["published", "deprecated"] },
|
|
6054
|
+
{ id: "published", status_category: "completed", label: "Published", description: "Results are citable. Benchmark is part of the standard eval rotation.", transitions_to: ["deprecated", "running"] },
|
|
6055
|
+
{ id: "deprecated", status_category: "completed", label: "Deprecated", description: "Benchmark no longer reflects what the team measures. May reopen to drafted if revisited.", transitions_to: ["drafted"] }
|
|
5884
6056
|
]
|
|
5885
6057
|
};
|
|
5886
6058
|
var BUSINESS_MODEL_LIFECYCLE = {
|
|
@@ -5888,11 +6060,11 @@ var BUSINESS_MODEL_LIFECYCLE = {
|
|
|
5888
6060
|
initial_phase: "drafted",
|
|
5889
6061
|
terminal_phases: ["validated", "invalidated", "pivoted"],
|
|
5890
6062
|
phases: [
|
|
5891
|
-
{ id: "drafted", label: "Drafted", description: "Model has been articulated. Not yet tested in market.", transitions_to: ["testing", "invalidated"] },
|
|
5892
|
-
{ id: "testing", label: "Testing", description: "Model is being tested against real customers and revenue. Evidence is accumulating.", transitions_to: ["validated", "invalidated", "pivoted"] },
|
|
5893
|
-
{ id: "validated", label: "Validated", description: "Model holds up under real customer behaviour. Forms the operating basis.", transitions_to: ["testing", "pivoted"] },
|
|
5894
|
-
{ id: "invalidated", label: "Invalidated", description: "Model failed to hold up. May reopen to drafted for a new attempt.", transitions_to: ["drafted"] },
|
|
5895
|
-
{ id: "pivoted", label: "Pivoted", description: "Model became something structurally different. Captured as a milestone before the new model takes over.", transitions_to: [] }
|
|
6063
|
+
{ id: "drafted", status_category: "unstarted", label: "Drafted", description: "Model has been articulated. Not yet tested in market.", transitions_to: ["testing", "invalidated"] },
|
|
6064
|
+
{ id: "testing", status_category: "started", label: "Testing", description: "Model is being tested against real customers and revenue. Evidence is accumulating.", transitions_to: ["validated", "invalidated", "pivoted"] },
|
|
6065
|
+
{ id: "validated", status_category: "completed", label: "Validated", description: "Model holds up under real customer behaviour. Forms the operating basis.", transitions_to: ["testing", "pivoted"] },
|
|
6066
|
+
{ id: "invalidated", status_category: "completed", label: "Invalidated", description: "Model failed to hold up. May reopen to drafted for a new attempt.", transitions_to: ["drafted"] },
|
|
6067
|
+
{ id: "pivoted", status_category: "cancelled", label: "Pivoted", description: "Model became something structurally different. Captured as a milestone before the new model takes over.", transitions_to: [] }
|
|
5896
6068
|
]
|
|
5897
6069
|
};
|
|
5898
6070
|
var REVENUE_STREAM_LIFECYCLE = {
|
|
@@ -5900,10 +6072,10 @@ var REVENUE_STREAM_LIFECYCLE = {
|
|
|
5900
6072
|
initial_phase: "proposed",
|
|
5901
6073
|
terminal_phases: ["live", "sunset"],
|
|
5902
6074
|
phases: [
|
|
5903
|
-
{ id: "proposed", label: "Proposed", description: "Stream has been hypothesised. Not yet built or sold.", transitions_to: ["piloting", "sunset"] },
|
|
5904
|
-
{ id: "piloting", label: "Piloting", description: "Stream is being trialled with a limited audience. Pricing and packaging may still be in flux.", transitions_to: ["live", "sunset"] },
|
|
5905
|
-
{ id: "live", label: "Live", description: "Stream is generally available and generating revenue.", transitions_to: ["sunset"] },
|
|
5906
|
-
{ id: "sunset", label: "Sunset", description: "Stream is being wound down. May reopen to piloting if revived.", transitions_to: ["piloting"] }
|
|
6075
|
+
{ id: "proposed", status_category: "triage", label: "Proposed", description: "Stream has been hypothesised. Not yet built or sold.", transitions_to: ["piloting", "sunset"] },
|
|
6076
|
+
{ id: "piloting", status_category: "started", label: "Piloting", description: "Stream is being trialled with a limited audience. Pricing and packaging may still be in flux.", transitions_to: ["live", "sunset"] },
|
|
6077
|
+
{ id: "live", status_category: "started", label: "Live", description: "Stream is generally available and generating revenue.", transitions_to: ["sunset"] },
|
|
6078
|
+
{ id: "sunset", status_category: "completed", label: "Sunset", description: "Stream is being wound down. May reopen to piloting if revived.", transitions_to: ["piloting"] }
|
|
5907
6079
|
]
|
|
5908
6080
|
};
|
|
5909
6081
|
var CUSTOMER_HEALTH_SCORE_LIFECYCLE = {
|
|
@@ -5911,11 +6083,11 @@ var CUSTOMER_HEALTH_SCORE_LIFECYCLE = {
|
|
|
5911
6083
|
initial_phase: "monitoring",
|
|
5912
6084
|
terminal_phases: ["recovered", "churned"],
|
|
5913
6085
|
phases: [
|
|
5914
|
-
{ id: "monitoring", label: "Monitoring", description: "Customer is healthy. Score is being tracked passively.", transitions_to: ["at_risk", "churned", "recovered"] },
|
|
5915
|
-
{ id: "at_risk", label: "At Risk", description: "Signals indicate trouble. Customer Success has flagged the account for attention.", transitions_to: ["monitoring", "critical", "churned", "recovered"] },
|
|
5916
|
-
{ id: "critical", label: "Critical", description: "Customer is on the verge of churning. Active intervention is underway.", transitions_to: ["at_risk", "recovered", "churned"] },
|
|
5917
|
-
{ id: "recovered", label: "Recovered", description: "Customer health has returned to monitoring. Captured as a milestone. May reopen to monitoring naturally.", transitions_to: ["monitoring"] },
|
|
5918
|
-
{ id: "churned", label: "Churned", description: "Customer left. Captured for analysis; reopen would mean a new customer relationship.", transitions_to: [] }
|
|
6086
|
+
{ id: "monitoring", status_category: "started", label: "Monitoring", description: "Customer is healthy. Score is being tracked passively.", transitions_to: ["at_risk", "churned", "recovered"] },
|
|
6087
|
+
{ id: "at_risk", status_category: "started", label: "At Risk", description: "Signals indicate trouble. Customer Success has flagged the account for attention.", transitions_to: ["monitoring", "critical", "churned", "recovered"] },
|
|
6088
|
+
{ id: "critical", status_category: "started", label: "Critical", description: "Customer is on the verge of churning. Active intervention is underway.", transitions_to: ["at_risk", "recovered", "churned"] },
|
|
6089
|
+
{ id: "recovered", status_category: "completed", label: "Recovered", description: "Customer health has returned to monitoring. Captured as a milestone. May reopen to monitoring naturally.", transitions_to: ["monitoring"] },
|
|
6090
|
+
{ id: "churned", status_category: "cancelled", label: "Churned", description: "Customer left. Captured for analysis; reopen would mean a new customer relationship.", transitions_to: [] }
|
|
5919
6091
|
]
|
|
5920
6092
|
};
|
|
5921
6093
|
var PLAYBOOK_LIFECYCLE = {
|
|
@@ -5923,10 +6095,10 @@ var PLAYBOOK_LIFECYCLE = {
|
|
|
5923
6095
|
initial_phase: "drafted",
|
|
5924
6096
|
terminal_phases: ["live", "retired"],
|
|
5925
6097
|
phases: [
|
|
5926
|
-
{ id: "drafted", label: "Drafted", description: "Playbook is being authored. Not yet tested with customers.", transitions_to: ["tested", "retired"] },
|
|
5927
|
-
{ id: "tested", label: "Tested", description: "Playbook has been run through pilot customers. Adjustments may follow.", transitions_to: ["live", "drafted"] },
|
|
5928
|
-
{ id: "live", label: "Live", description: "Playbook is in active use across the customer success team.", transitions_to: ["retired", "tested"] },
|
|
5929
|
-
{ id: "retired", label: "Retired", description: "Playbook no longer in use. May reopen to drafted if revived.", transitions_to: ["drafted"] }
|
|
6098
|
+
{ id: "drafted", status_category: "unstarted", label: "Drafted", description: "Playbook is being authored. Not yet tested with customers.", transitions_to: ["tested", "retired"] },
|
|
6099
|
+
{ id: "tested", status_category: "started", label: "Tested", description: "Playbook has been run through pilot customers. Adjustments may follow.", transitions_to: ["live", "drafted"] },
|
|
6100
|
+
{ id: "live", status_category: "started", label: "Live", description: "Playbook is in active use across the customer success team.", transitions_to: ["retired", "tested"] },
|
|
6101
|
+
{ id: "retired", status_category: "completed", label: "Retired", description: "Playbook no longer in use. May reopen to drafted if revived.", transitions_to: ["drafted"] }
|
|
5930
6102
|
]
|
|
5931
6103
|
};
|
|
5932
6104
|
var TEAM_OKR_LIFECYCLE = {
|
|
@@ -5934,11 +6106,11 @@ var TEAM_OKR_LIFECYCLE = {
|
|
|
5934
6106
|
initial_phase: "drafted",
|
|
5935
6107
|
terminal_phases: ["completed", "missed"],
|
|
5936
6108
|
phases: [
|
|
5937
|
-
{ id: "drafted", label: "Drafted", description: "OKR is being authored. Not yet committed to.", transitions_to: ["committed"] },
|
|
5938
|
-
{ id: "committed", label: "Committed", description: "Team has agreed to pursue the OKR. Cycle has not yet started.", transitions_to: ["in_progress", "drafted"] },
|
|
5939
|
-
{ id: "in_progress", label: "In Progress", description: "Cycle is underway. Progress is being tracked.", transitions_to: ["completed", "missed"] },
|
|
5940
|
-
{ id: "completed", label: "Completed", description: "OKR was achieved within the cycle.", transitions_to: [] },
|
|
5941
|
-
{ id: "missed", label: "Missed", description: "OKR was not achieved. May reopen to in_progress if carried forward.", transitions_to: ["in_progress"] }
|
|
6109
|
+
{ id: "drafted", status_category: "unstarted", label: "Drafted", description: "OKR is being authored. Not yet committed to.", transitions_to: ["committed"] },
|
|
6110
|
+
{ id: "committed", status_category: "unstarted", label: "Committed", description: "Team has agreed to pursue the OKR. Cycle has not yet started.", transitions_to: ["in_progress", "drafted"] },
|
|
6111
|
+
{ id: "in_progress", status_category: "started", label: "In Progress", description: "Cycle is underway. Progress is being tracked.", transitions_to: ["completed", "missed"] },
|
|
6112
|
+
{ id: "completed", status_category: "completed", label: "Completed", description: "OKR was achieved within the cycle.", transitions_to: [] },
|
|
6113
|
+
{ id: "missed", status_category: "completed", label: "Missed", description: "OKR was not achieved. May reopen to in_progress if carried forward.", transitions_to: ["in_progress"] }
|
|
5942
6114
|
]
|
|
5943
6115
|
};
|
|
5944
6116
|
var RETROSPECTIVE_LIFECYCLE = {
|
|
@@ -5946,10 +6118,10 @@ var RETROSPECTIVE_LIFECYCLE = {
|
|
|
5946
6118
|
initial_phase: "scheduled",
|
|
5947
6119
|
terminal_phases: ["completed", "actions_tracked"],
|
|
5948
6120
|
phases: [
|
|
5949
|
-
{ id: "scheduled", label: "Scheduled", description: "Retro is on the calendar. Not yet held.", transitions_to: ["in_progress", "completed"] },
|
|
5950
|
-
{ id: "in_progress", label: "In Progress", description: "Retro is being held.", transitions_to: ["completed"] },
|
|
5951
|
-
{ id: "completed", label: "Completed", description: "Meeting is done. Action items captured but not yet tracked to closure.", transitions_to: ["actions_tracked"] },
|
|
5952
|
-
{ id: "actions_tracked", label: "Actions Tracked", description: "Retro action items have been completed or explicitly dropped. Full loop closed.", transitions_to: [] }
|
|
6121
|
+
{ id: "scheduled", status_category: "unstarted", label: "Scheduled", description: "Retro is on the calendar. Not yet held.", transitions_to: ["in_progress", "completed"] },
|
|
6122
|
+
{ id: "in_progress", status_category: "started", label: "In Progress", description: "Retro is being held.", transitions_to: ["completed"] },
|
|
6123
|
+
{ id: "completed", status_category: "completed", label: "Completed", description: "Meeting is done. Action items captured but not yet tracked to closure.", transitions_to: ["actions_tracked"] },
|
|
6124
|
+
{ id: "actions_tracked", status_category: "completed", label: "Actions Tracked", description: "Retro action items have been completed or explicitly dropped. Full loop closed.", transitions_to: [] }
|
|
5953
6125
|
]
|
|
5954
6126
|
};
|
|
5955
6127
|
var DEPENDENCY_LIFECYCLE = {
|
|
@@ -5957,10 +6129,10 @@ var DEPENDENCY_LIFECYCLE = {
|
|
|
5957
6129
|
initial_phase: "identified",
|
|
5958
6130
|
terminal_phases: ["resolved"],
|
|
5959
6131
|
phases: [
|
|
5960
|
-
{ id: "identified", label: "Identified", description: "Dependency has been named. Not yet evaluated for impact.", transitions_to: ["blocked", "in_progress", "resolved"] },
|
|
5961
|
-
{ id: "blocked", label: "Blocked", description: "Dependency is currently blocking work. Awaiting upstream action.", transitions_to: ["in_progress", "resolved"] },
|
|
5962
|
-
{ id: "in_progress", label: "In Progress", description: "Active work is happening to resolve the dependency.", transitions_to: ["blocked", "resolved"] },
|
|
5963
|
-
{ id: "resolved", label: "Resolved", description: "Dependency is no longer blocking. May reopen to blocked if regression.", transitions_to: ["blocked"] }
|
|
6132
|
+
{ id: "identified", status_category: "triage", label: "Identified", description: "Dependency has been named. Not yet evaluated for impact.", transitions_to: ["blocked", "in_progress", "resolved"] },
|
|
6133
|
+
{ id: "blocked", status_category: "started", label: "Blocked", description: "Dependency is currently blocking work. Awaiting upstream action.", transitions_to: ["in_progress", "resolved"] },
|
|
6134
|
+
{ id: "in_progress", status_category: "started", label: "In Progress", description: "Active work is happening to resolve the dependency.", transitions_to: ["blocked", "resolved"] },
|
|
6135
|
+
{ id: "resolved", status_category: "completed", label: "Resolved", description: "Dependency is no longer blocking. May reopen to blocked if regression.", transitions_to: ["blocked"] }
|
|
5964
6136
|
]
|
|
5965
6137
|
};
|
|
5966
6138
|
var ROLE_LIFECYCLE = {
|
|
@@ -5968,10 +6140,10 @@ var ROLE_LIFECYCLE = {
|
|
|
5968
6140
|
initial_phase: "proposed",
|
|
5969
6141
|
terminal_phases: ["filled", "vacant"],
|
|
5970
6142
|
phases: [
|
|
5971
|
-
{ id: "proposed", label: "Proposed", description: "Role has been described but not yet posted or staffed.", transitions_to: ["open", "vacant"] },
|
|
5972
|
-
{ id: "open", label: "Open", description: "Role is actively being recruited for.", transitions_to: ["filled", "vacant"] },
|
|
5973
|
-
{ id: "filled", label: "Filled", description: "Role is staffed. May reopen to open if the position becomes vacant again.", transitions_to: ["vacant"] },
|
|
5974
|
-
{ id: "vacant", label: "Vacant", description: "Role exists but is unfilled. May reopen to open to start recruiting.", transitions_to: ["open"] }
|
|
6143
|
+
{ id: "proposed", status_category: "triage", label: "Proposed", description: "Role has been described but not yet posted or staffed.", transitions_to: ["open", "vacant"] },
|
|
6144
|
+
{ id: "open", status_category: "started", label: "Open", description: "Role is actively being recruited for.", transitions_to: ["filled", "vacant"] },
|
|
6145
|
+
{ id: "filled", status_category: "completed", label: "Filled", description: "Role is staffed. May reopen to open if the position becomes vacant again.", transitions_to: ["vacant"] },
|
|
6146
|
+
{ id: "vacant", status_category: "backlog", label: "Vacant", description: "Role exists but is unfilled. May reopen to open to start recruiting.", transitions_to: ["open"] }
|
|
5975
6147
|
]
|
|
5976
6148
|
};
|
|
5977
6149
|
var CAPACITY_PLAN_LIFECYCLE = {
|
|
@@ -5979,11 +6151,11 @@ var CAPACITY_PLAN_LIFECYCLE = {
|
|
|
5979
6151
|
initial_phase: "drafted",
|
|
5980
6152
|
terminal_phases: ["completed", "revised"],
|
|
5981
6153
|
phases: [
|
|
5982
|
-
{ id: "drafted", label: "Drafted", description: "Plan is being authored. Not yet agreed.", transitions_to: ["committed", "revised"] },
|
|
5983
|
-
{ id: "committed", label: "Committed", description: "Plan has been agreed by stakeholders. Cycle has not yet started.", transitions_to: ["in_flight", "revised"] },
|
|
5984
|
-
{ id: "in_flight", label: "In Flight", description: "Cycle is underway. Capacity is being consumed.", transitions_to: ["completed", "revised"] },
|
|
5985
|
-
{ id: "completed", label: "Completed", description: "Cycle is done. Plan executed as agreed.", transitions_to: [] },
|
|
5986
|
-
{ id: "revised", label: "Revised", description: "Plan was changed mid-flight. May reopen to drafted for the next iteration.", transitions_to: ["drafted"] }
|
|
6154
|
+
{ id: "drafted", status_category: "unstarted", label: "Drafted", description: "Plan is being authored. Not yet agreed.", transitions_to: ["committed", "revised"] },
|
|
6155
|
+
{ id: "committed", status_category: "unstarted", label: "Committed", description: "Plan has been agreed by stakeholders. Cycle has not yet started.", transitions_to: ["in_flight", "revised"] },
|
|
6156
|
+
{ id: "in_flight", status_category: "started", label: "In Flight", description: "Cycle is underway. Capacity is being consumed.", transitions_to: ["completed", "revised"] },
|
|
6157
|
+
{ id: "completed", status_category: "completed", label: "Completed", description: "Cycle is done. Plan executed as agreed.", transitions_to: [] },
|
|
6158
|
+
{ id: "revised", status_category: "completed", label: "Revised", description: "Plan was changed mid-flight. May reopen to drafted for the next iteration.", transitions_to: ["drafted"] }
|
|
5987
6159
|
]
|
|
5988
6160
|
};
|
|
5989
6161
|
var VARIANT_LIFECYCLE = {
|
|
@@ -5991,11 +6163,11 @@ var VARIANT_LIFECYCLE = {
|
|
|
5991
6163
|
initial_phase: "proposed",
|
|
5992
6164
|
terminal_phases: ["winning", "losing", "retired"],
|
|
5993
6165
|
phases: [
|
|
5994
|
-
{ id: "proposed", label: "Proposed", description: "Variant has been designed. Not yet running.", transitions_to: ["live", "retired"] },
|
|
5995
|
-
{ id: "live", label: "Live", description: "Variant is being shown to users as part of an active test.", transitions_to: ["winning", "losing", "retired"] },
|
|
5996
|
-
{ id: "winning", label: "Winning", description: "Variant beat the control. Captured for the record before rollout.", transitions_to: ["retired"] },
|
|
5997
|
-
{ id: "losing", label: "Losing", description: "Variant did not beat the control. Captured for the record.", transitions_to: ["retired"] },
|
|
5998
|
-
{ id: "retired", label: "Retired", description: "Variant is no longer running. May reopen to proposed if revisited in a future test.", transitions_to: ["proposed"] }
|
|
6166
|
+
{ id: "proposed", status_category: "triage", label: "Proposed", description: "Variant has been designed. Not yet running.", transitions_to: ["live", "retired"] },
|
|
6167
|
+
{ id: "live", status_category: "started", label: "Live", description: "Variant is being shown to users as part of an active test.", transitions_to: ["winning", "losing", "retired"] },
|
|
6168
|
+
{ id: "winning", status_category: "completed", label: "Winning", description: "Variant beat the control. Captured for the record before rollout.", transitions_to: ["retired"] },
|
|
6169
|
+
{ id: "losing", status_category: "completed", label: "Losing", description: "Variant did not beat the control. Captured for the record.", transitions_to: ["retired"] },
|
|
6170
|
+
{ id: "retired", status_category: "completed", label: "Retired", description: "Variant is no longer running. May reopen to proposed if revisited in a future test.", transitions_to: ["proposed"] }
|
|
5999
6171
|
]
|
|
6000
6172
|
};
|
|
6001
6173
|
var GROWTH_CAMPAIGN_LIFECYCLE = {
|
|
@@ -6003,11 +6175,11 @@ var GROWTH_CAMPAIGN_LIFECYCLE = {
|
|
|
6003
6175
|
initial_phase: "drafted",
|
|
6004
6176
|
terminal_phases: ["completed", "paused"],
|
|
6005
6177
|
phases: [
|
|
6006
|
-
{ id: "drafted", label: "Drafted", description: "Campaign concept exists. Not yet planned for launch.", transitions_to: ["planning", "paused"] },
|
|
6007
|
-
{ id: "planning", label: "Planning", description: "Campaign creative, channels, and timing are being finalised.", transitions_to: ["live", "paused"] },
|
|
6008
|
-
{ id: "live", label: "Live", description: "Campaign is running across channels.", transitions_to: ["completed", "paused"] },
|
|
6009
|
-
{ id: "completed", label: "Completed", description: "Campaign ran to completion. Outcomes captured.", transitions_to: [] },
|
|
6010
|
-
{ id: "paused", label: "Paused", description: "Campaign was halted before completion. May reopen to live if resumed.", transitions_to: ["live"] }
|
|
6178
|
+
{ id: "drafted", status_category: "unstarted", label: "Drafted", description: "Campaign concept exists. Not yet planned for launch.", transitions_to: ["planning", "paused"] },
|
|
6179
|
+
{ id: "planning", status_category: "unstarted", label: "Planning", description: "Campaign creative, channels, and timing are being finalised.", transitions_to: ["live", "paused"] },
|
|
6180
|
+
{ id: "live", status_category: "started", label: "Live", description: "Campaign is running across channels.", transitions_to: ["completed", "paused"] },
|
|
6181
|
+
{ id: "completed", status_category: "completed", label: "Completed", description: "Campaign ran to completion. Outcomes captured.", transitions_to: [] },
|
|
6182
|
+
{ id: "paused", status_category: "backlog", label: "Paused", description: "Campaign was halted before completion. May reopen to live if resumed.", transitions_to: ["live"] }
|
|
6011
6183
|
]
|
|
6012
6184
|
};
|
|
6013
6185
|
function fromTemplate(entityType, template) {
|
|
@@ -6018,10 +6190,10 @@ var PUBLISHING_TEMPLATE = {
|
|
|
6018
6190
|
initial_phase: "draft",
|
|
6019
6191
|
terminal_phases: ["archived"],
|
|
6020
6192
|
phases: [
|
|
6021
|
-
{ id: "draft", label: "Draft", description: "Being authored or revised. Not visible externally.", transitions_to: ["review"] },
|
|
6022
|
-
{ id: "review", label: "In Review", description: "Under editorial or stakeholder review before publishing.", transitions_to: ["draft", "published"] },
|
|
6023
|
-
{ id: "published", label: "Published", description: "Live and visible to the intended audience.", transitions_to: ["archived", "draft"] },
|
|
6024
|
-
{ id: "archived", label: "Archived", description: "No longer current. Retained for historical reference.", transitions_to: ["draft"] }
|
|
6193
|
+
{ id: "draft", status_category: "started", label: "Draft", description: "Being authored or revised. Not visible externally.", transitions_to: ["review"] },
|
|
6194
|
+
{ id: "review", status_category: "started", label: "In Review", description: "Under editorial or stakeholder review before publishing.", transitions_to: ["draft", "published"] },
|
|
6195
|
+
{ id: "published", status_category: "completed", label: "Published", description: "Live and visible to the intended audience.", transitions_to: ["archived", "draft"] },
|
|
6196
|
+
{ id: "archived", status_category: "completed", label: "Archived", description: "No longer current. Retained for historical reference.", transitions_to: ["draft"] }
|
|
6025
6197
|
]
|
|
6026
6198
|
};
|
|
6027
6199
|
var OPERATIONAL_TEMPLATE = {
|
|
@@ -6029,11 +6201,11 @@ var OPERATIONAL_TEMPLATE = {
|
|
|
6029
6201
|
initial_phase: "planning",
|
|
6030
6202
|
terminal_phases: ["completed", "sunset"],
|
|
6031
6203
|
phases: [
|
|
6032
|
-
{ id: "planning", label: "Planning", description: "Being designed or scoped. Not yet started.", transitions_to: ["active"] },
|
|
6033
|
-
{ id: "active", label: "Active", description: "Currently running or in operation.", transitions_to: ["paused", "completed", "sunset"] },
|
|
6034
|
-
{ id: "paused", label: "Paused", description: "Temporarily halted. Can be resumed.", transitions_to: ["active", "sunset"] },
|
|
6035
|
-
{ id: "completed", label: "Completed", description: "Finished successfully. Outcomes captured.", transitions_to: [] },
|
|
6036
|
-
{ id: "sunset", label: "Sunset", description: "Winding down or discontinued.", transitions_to: [] }
|
|
6204
|
+
{ id: "planning", status_category: "unstarted", label: "Planning", description: "Being designed or scoped. Not yet started.", transitions_to: ["active"] },
|
|
6205
|
+
{ id: "active", status_category: "started", label: "Active", description: "Currently running or in operation.", transitions_to: ["paused", "completed", "sunset"] },
|
|
6206
|
+
{ id: "paused", status_category: "backlog", label: "Paused", description: "Temporarily halted. Can be resumed.", transitions_to: ["active", "sunset"] },
|
|
6207
|
+
{ id: "completed", status_category: "completed", label: "Completed", description: "Finished successfully. Outcomes captured.", transitions_to: [] },
|
|
6208
|
+
{ id: "sunset", status_category: "completed", label: "Sunset", description: "Winding down or discontinued.", transitions_to: [] }
|
|
6037
6209
|
]
|
|
6038
6210
|
};
|
|
6039
6211
|
var APPROVAL_TEMPLATE = {
|
|
@@ -6045,22 +6217,23 @@ var APPROVAL_TEMPLATE = {
|
|
|
6045
6217
|
// UPGLifecycle.terminal_phases contract.
|
|
6046
6218
|
terminal_phases: ["approved", "rejected", "deprecated"],
|
|
6047
6219
|
phases: [
|
|
6048
|
-
{ id: "proposed", label: "Proposed", description: "Submitted for consideration. Awaiting review.", transitions_to: ["reviewing"] },
|
|
6049
|
-
{ id: "reviewing", label: "Reviewing", description: "Under active review by approvers.", transitions_to: ["approved", "rejected", "proposed"] },
|
|
6050
|
-
{ id: "approved", label: "Approved", description: "Accepted and ready for implementation.", transitions_to: ["deprecated"] },
|
|
6051
|
-
{ id: "rejected", label: "Rejected", description: "Not accepted. Reasons should be documented.", transitions_to: ["proposed"] },
|
|
6052
|
-
{ id: "deprecated", label: "Deprecated", description: "Previously approved but no longer current.", transitions_to: [] }
|
|
6220
|
+
{ id: "proposed", status_category: "triage", label: "Proposed", description: "Submitted for consideration. Awaiting review.", transitions_to: ["reviewing"] },
|
|
6221
|
+
{ id: "reviewing", status_category: "started", label: "Reviewing", description: "Under active review by approvers.", transitions_to: ["approved", "rejected", "proposed"] },
|
|
6222
|
+
{ id: "approved", status_category: "completed", label: "Approved", description: "Accepted and ready for implementation.", transitions_to: ["deprecated"] },
|
|
6223
|
+
{ id: "rejected", status_category: "cancelled", label: "Rejected", description: "Not accepted. Reasons should be documented.", transitions_to: ["proposed"] },
|
|
6224
|
+
{ id: "deprecated", status_category: "completed", label: "Deprecated", description: "Previously approved but no longer current.", transitions_to: [] }
|
|
6053
6225
|
]
|
|
6054
6226
|
};
|
|
6055
6227
|
var WORK_ITEM_TEMPLATE = {
|
|
6056
6228
|
template_id: "WORK_ITEM",
|
|
6057
6229
|
initial_phase: "todo",
|
|
6058
|
-
terminal_phases: ["done"],
|
|
6230
|
+
terminal_phases: ["done", "cancelled"],
|
|
6059
6231
|
phases: [
|
|
6060
|
-
{ id: "todo", label: "To Do", description: "Identified but not yet started.", transitions_to: ["in_progress"] },
|
|
6061
|
-
{ id: "in_progress", label: "In Progress", description: "Actively being worked on.", transitions_to: ["in_review", "todo"] },
|
|
6062
|
-
{ id: "in_review", label: "In Review", description: "Work completed, awaiting review or acceptance.", transitions_to: ["done", "in_progress"] },
|
|
6063
|
-
{ id: "done", label: "Done", description: "Completed and accepted.", transitions_to: [] }
|
|
6232
|
+
{ id: "todo", status_category: "unstarted", label: "To Do", description: "Identified but not yet started.", transitions_to: ["in_progress", "cancelled"] },
|
|
6233
|
+
{ id: "in_progress", status_category: "started", label: "In Progress", description: "Actively being worked on.", transitions_to: ["in_review", "todo", "cancelled"] },
|
|
6234
|
+
{ id: "in_review", status_category: "started", label: "In Review", description: "Work completed, awaiting review or acceptance.", transitions_to: ["done", "in_progress", "cancelled"] },
|
|
6235
|
+
{ id: "done", status_category: "completed", label: "Done", description: "Completed and accepted.", transitions_to: [] },
|
|
6236
|
+
{ id: "cancelled", status_category: "cancelled", label: "Cancelled", description: "Deliberately closed without completion: won't-do, duplicate, or obsolete. May reopen to `todo` if circumstances change.", transitions_to: ["todo"] }
|
|
6064
6237
|
]
|
|
6065
6238
|
};
|
|
6066
6239
|
var DISCOVERY_TEMPLATE = {
|
|
@@ -6068,10 +6241,10 @@ var DISCOVERY_TEMPLATE = {
|
|
|
6068
6241
|
initial_phase: "open",
|
|
6069
6242
|
terminal_phases: ["resolved", "parked"],
|
|
6070
6243
|
phases: [
|
|
6071
|
-
{ id: "open", label: "Open", description: "Identified as worth exploring. No work started yet.", transitions_to: ["exploring"] },
|
|
6072
|
-
{ id: "exploring", label: "Exploring", description: "Actively being investigated or researched.", transitions_to: ["resolved", "parked", "open"] },
|
|
6073
|
-
{ id: "resolved", label: "Resolved", description: "Answered or addressed. Findings captured.", transitions_to: [] },
|
|
6074
|
-
{ id: "parked", label: "Parked", description: "Set aside for now. May revisit later.", transitions_to: ["open"] }
|
|
6244
|
+
{ id: "open", status_category: "triage", label: "Open", description: "Identified as worth exploring. No work started yet.", transitions_to: ["exploring"] },
|
|
6245
|
+
{ id: "exploring", status_category: "started", label: "Exploring", description: "Actively being investigated or researched.", transitions_to: ["resolved", "parked", "open"] },
|
|
6246
|
+
{ id: "resolved", status_category: "completed", label: "Resolved", description: "Answered or addressed. Findings captured.", transitions_to: [] },
|
|
6247
|
+
{ id: "parked", status_category: "backlog", label: "Parked", description: "Set aside for now. May revisit later.", transitions_to: ["open"] }
|
|
6075
6248
|
]
|
|
6076
6249
|
};
|
|
6077
6250
|
var MATURITY_TEMPLATE = {
|
|
@@ -6079,10 +6252,10 @@ var MATURITY_TEMPLATE = {
|
|
|
6079
6252
|
initial_phase: "alpha",
|
|
6080
6253
|
terminal_phases: ["deprecated"],
|
|
6081
6254
|
phases: [
|
|
6082
|
-
{ id: "alpha", label: "Alpha", description: "Early stage, internal use only. Expect breaking changes.", transitions_to: ["beta"] },
|
|
6083
|
-
{ id: "beta", label: "Beta", description: "Feature complete but may have rough edges. Limited external use.", transitions_to: ["ga", "alpha"] },
|
|
6084
|
-
{ id: "ga", label: "Generally Available", description: "Stable, production-ready. Widely available.", transitions_to: ["deprecated"] },
|
|
6085
|
-
{ id: "deprecated", label: "Deprecated", description: "Scheduled for removal. Migration path should be documented.", transitions_to: [] }
|
|
6255
|
+
{ id: "alpha", status_category: "started", label: "Alpha", description: "Early stage, internal use only. Expect breaking changes.", transitions_to: ["beta"] },
|
|
6256
|
+
{ id: "beta", status_category: "started", label: "Beta", description: "Feature complete but may have rough edges. Limited external use.", transitions_to: ["ga", "alpha"] },
|
|
6257
|
+
{ id: "ga", status_category: "completed", label: "Generally Available", description: "Stable, production-ready. Widely available.", transitions_to: ["deprecated"] },
|
|
6258
|
+
{ id: "deprecated", status_category: "completed", label: "Deprecated", description: "Scheduled for removal. Migration path should be documented.", transitions_to: [] }
|
|
6086
6259
|
]
|
|
6087
6260
|
};
|
|
6088
6261
|
var RISK_ITEM_TEMPLATE = {
|
|
@@ -6090,11 +6263,11 @@ var RISK_ITEM_TEMPLATE = {
|
|
|
6090
6263
|
initial_phase: "identified",
|
|
6091
6264
|
terminal_phases: ["mitigated", "accepted", "closed"],
|
|
6092
6265
|
phases: [
|
|
6093
|
-
{ id: "identified", label: "Identified", description: "Risk has been recognised and named. Not yet assessed for likelihood or impact.", transitions_to: ["assessed"] },
|
|
6094
|
-
{ id: "assessed", label: "Assessed", description: "Likelihood and impact have been evaluated. Outcome is one of mitigated, accepted, or closed.", transitions_to: ["mitigated", "accepted", "closed"] },
|
|
6095
|
-
{ id: "mitigated", label: "Mitigated", description: "Action has been taken to reduce likelihood or impact. The risk is no longer active.", transitions_to: [] },
|
|
6096
|
-
{ id: "accepted", label: "Accepted", description: "Risk is acknowledged. Cost of mitigation outweighs exposure; the team chooses to live with it.", transitions_to: [] },
|
|
6097
|
-
{ id: "closed", label: "Closed", description: "Risk became irrelevant without action; underlying conditions changed. May reopen to `assessed` if conditions change again.", transitions_to: ["assessed"] }
|
|
6266
|
+
{ id: "identified", status_category: "triage", label: "Identified", description: "Risk has been recognised and named. Not yet assessed for likelihood or impact.", transitions_to: ["assessed"] },
|
|
6267
|
+
{ id: "assessed", status_category: "started", label: "Assessed", description: "Likelihood and impact have been evaluated. Outcome is one of mitigated, accepted, or closed.", transitions_to: ["mitigated", "accepted", "closed"] },
|
|
6268
|
+
{ id: "mitigated", status_category: "completed", label: "Mitigated", description: "Action has been taken to reduce likelihood or impact. The risk is no longer active.", transitions_to: [] },
|
|
6269
|
+
{ id: "accepted", status_category: "completed", label: "Accepted", description: "Risk is acknowledged. Cost of mitigation outweighs exposure; the team chooses to live with it.", transitions_to: [] },
|
|
6270
|
+
{ id: "closed", status_category: "completed", label: "Closed", description: "Risk became irrelevant without action; underlying conditions changed. May reopen to `assessed` if conditions change again.", transitions_to: ["assessed"] }
|
|
6098
6271
|
]
|
|
6099
6272
|
};
|
|
6100
6273
|
var SALES_DEAL_TEMPLATE = {
|
|
@@ -6102,11 +6275,11 @@ var SALES_DEAL_TEMPLATE = {
|
|
|
6102
6275
|
initial_phase: "qualified",
|
|
6103
6276
|
terminal_phases: ["closed_won", "closed_lost"],
|
|
6104
6277
|
phases: [
|
|
6105
|
-
{ id: "qualified", label: "Qualified", description: "Lead has been qualified: there's a real budget, need, and decision-maker. Not yet pitched.", transitions_to: ["proposal"] },
|
|
6106
|
-
{ id: "proposal", label: "Proposal", description: "A proposal has been delivered. Pricing and scope are on the table.", transitions_to: ["negotiation", "closed_lost"] },
|
|
6107
|
-
{ id: "negotiation", label: "Negotiation", description: "Terms are being finalised. Both sides are working toward agreement.", transitions_to: ["closed_won", "closed_lost"] },
|
|
6108
|
-
{ id: "closed_won", label: "Closed Won", description: "Deal signed. Customer is now active.", transitions_to: [] },
|
|
6109
|
-
{ id: "closed_lost", label: "Closed Lost", description: "Deal did not close. A re-engaged prospect becomes a new `deal` rather than reviving this one.", transitions_to: [] }
|
|
6278
|
+
{ id: "qualified", status_category: "triage", label: "Qualified", description: "Lead has been qualified: there's a real budget, need, and decision-maker. Not yet pitched.", transitions_to: ["proposal"] },
|
|
6279
|
+
{ id: "proposal", status_category: "started", label: "Proposal", description: "A proposal has been delivered. Pricing and scope are on the table.", transitions_to: ["negotiation", "closed_lost"] },
|
|
6280
|
+
{ id: "negotiation", status_category: "started", label: "Negotiation", description: "Terms are being finalised. Both sides are working toward agreement.", transitions_to: ["closed_won", "closed_lost"] },
|
|
6281
|
+
{ id: "closed_won", status_category: "completed", label: "Closed Won", description: "Deal signed. Customer is now active.", transitions_to: [] },
|
|
6282
|
+
{ id: "closed_lost", status_category: "completed", label: "Closed Lost", description: "Deal did not close. A re-engaged prospect becomes a new `deal` rather than reviving this one.", transitions_to: [] }
|
|
6110
6283
|
]
|
|
6111
6284
|
};
|
|
6112
6285
|
var VALIDATION_TEMPLATE = {
|
|
@@ -6114,11 +6287,11 @@ var VALIDATION_TEMPLATE = {
|
|
|
6114
6287
|
initial_phase: "untested",
|
|
6115
6288
|
terminal_phases: ["validated", "invalidated", "archived"],
|
|
6116
6289
|
phases: [
|
|
6117
|
-
{ id: "untested", label: "Untested", description: "Articulated but not yet examined against evidence.", transitions_to: ["testing"] },
|
|
6118
|
-
{ id: "testing", label: "Testing", description: "Actively gathering evidence for or against the claim.", transitions_to: ["validated", "invalidated"] },
|
|
6119
|
-
{ id: "validated", label: "Validated", description: "Evidence supports the claim. Treated as true until contradicted.", transitions_to: ["archived"] },
|
|
6120
|
-
{ id: "invalidated", label: "Invalidated", description: "Evidence contradicts the claim. May re-test if new evidence appears.", transitions_to: ["archived", "testing"] },
|
|
6121
|
-
{ id: "archived", label: "Archived", description: "Settled and retained for provenance. No longer active.", transitions_to: [] }
|
|
6290
|
+
{ id: "untested", status_category: "triage", label: "Untested", description: "Articulated but not yet examined against evidence.", transitions_to: ["testing"] },
|
|
6291
|
+
{ id: "testing", status_category: "started", label: "Testing", description: "Actively gathering evidence for or against the claim.", transitions_to: ["validated", "invalidated"] },
|
|
6292
|
+
{ id: "validated", status_category: "completed", label: "Validated", description: "Evidence supports the claim. Treated as true until contradicted.", transitions_to: ["archived"] },
|
|
6293
|
+
{ id: "invalidated", status_category: "completed", label: "Invalidated", description: "Evidence contradicts the claim. May re-test if new evidence appears.", transitions_to: ["archived", "testing"] },
|
|
6294
|
+
{ id: "archived", status_category: "completed", label: "Archived", description: "Settled and retained for provenance. No longer active.", transitions_to: [] }
|
|
6122
6295
|
]
|
|
6123
6296
|
};
|
|
6124
6297
|
var INCIDENT_TEMPLATE = {
|
|
@@ -6126,12 +6299,12 @@ var INCIDENT_TEMPLATE = {
|
|
|
6126
6299
|
initial_phase: "open",
|
|
6127
6300
|
terminal_phases: ["resolved", "closed", "wont_fix"],
|
|
6128
6301
|
phases: [
|
|
6129
|
-
{ id: "open", label: "Open", description: "Surfaced and logged. Not yet triaged.", transitions_to: ["triaged"] },
|
|
6130
|
-
{ id: "triaged", label: "Triaged", description: "Assessed for severity and ownership. Routed for work or dispositioned.", transitions_to: ["in_progress", "resolved", "wont_fix"] },
|
|
6131
|
-
{ id: "in_progress", label: "In Progress", description: "Actively being worked toward a fix.", transitions_to: ["resolved", "wont_fix"] },
|
|
6132
|
-
{ id: "resolved", label: "Resolved", description: "Addressed and verified. May reopen to `triaged` on regression.", transitions_to: ["closed", "triaged"] },
|
|
6133
|
-
{ id: "closed", label: "Closed", description: "Administratively closed (duplicate, withdrawn, or no longer relevant).", transitions_to: [] },
|
|
6134
|
-
{ id: "wont_fix", label: "Won't Fix", description: "Triaged as not to be actioned. Reason should be documented.", transitions_to: [] }
|
|
6302
|
+
{ id: "open", status_category: "triage", label: "Open", description: "Surfaced and logged. Not yet triaged.", transitions_to: ["triaged"] },
|
|
6303
|
+
{ id: "triaged", status_category: "triage", label: "Triaged", description: "Assessed for severity and ownership. Routed for work or dispositioned.", transitions_to: ["in_progress", "resolved", "wont_fix"] },
|
|
6304
|
+
{ id: "in_progress", status_category: "started", label: "In Progress", description: "Actively being worked toward a fix.", transitions_to: ["resolved", "wont_fix"] },
|
|
6305
|
+
{ id: "resolved", status_category: "completed", label: "Resolved", description: "Addressed and verified. May reopen to `triaged` on regression.", transitions_to: ["closed", "triaged"] },
|
|
6306
|
+
{ id: "closed", status_category: "cancelled", label: "Closed", description: "Administratively closed (duplicate, withdrawn, or no longer relevant).", transitions_to: [] },
|
|
6307
|
+
{ id: "wont_fix", status_category: "cancelled", label: "Won't Fix", description: "Triaged as not to be actioned. Reason should be documented.", transitions_to: [] }
|
|
6135
6308
|
]
|
|
6136
6309
|
};
|
|
6137
6310
|
var STUDY_TEMPLATE = {
|
|
@@ -6139,11 +6312,11 @@ var STUDY_TEMPLATE = {
|
|
|
6139
6312
|
initial_phase: "planned",
|
|
6140
6313
|
terminal_phases: ["complete", "abandoned"],
|
|
6141
6314
|
phases: [
|
|
6142
|
-
{ id: "planned", label: "Planned", description: "Scoped and scheduled. Not yet started.", transitions_to: ["running"] },
|
|
6143
|
-
{ id: "running", label: "Running", description: "Actively executing: collecting data or running the protocol.", transitions_to: ["analysing", "abandoned"] },
|
|
6144
|
-
{ id: "analysing", label: "Analysing", description: "Execution done; results are being analysed and written up.", transitions_to: ["complete", "abandoned"] },
|
|
6145
|
-
{ id: "complete", label: "Complete", description: "Analysed and concluded. Findings captured.", transitions_to: [] },
|
|
6146
|
-
{ id: "abandoned", label: "Abandoned", description: "Stopped before completion (killed, timed out, or superseded).", transitions_to: [] }
|
|
6315
|
+
{ id: "planned", status_category: "unstarted", label: "Planned", description: "Scoped and scheduled. Not yet started.", transitions_to: ["running"] },
|
|
6316
|
+
{ id: "running", status_category: "started", label: "Running", description: "Actively executing: collecting data or running the protocol.", transitions_to: ["analysing", "abandoned"] },
|
|
6317
|
+
{ id: "analysing", status_category: "started", label: "Analysing", description: "Execution done; results are being analysed and written up.", transitions_to: ["complete", "abandoned"] },
|
|
6318
|
+
{ id: "complete", status_category: "completed", label: "Complete", description: "Analysed and concluded. Findings captured.", transitions_to: [] },
|
|
6319
|
+
{ id: "abandoned", status_category: "cancelled", label: "Abandoned", description: "Stopped before completion (killed, timed out, or superseded).", transitions_to: [] }
|
|
6147
6320
|
]
|
|
6148
6321
|
};
|
|
6149
6322
|
var TEMPLATE_LIFECYCLES = [
|
|
@@ -6305,18 +6478,21 @@ var FRAMEWORK_EXERCISE_LIFECYCLE = {
|
|
|
6305
6478
|
phases: [
|
|
6306
6479
|
{
|
|
6307
6480
|
id: "draft",
|
|
6481
|
+
status_category: "started",
|
|
6308
6482
|
label: "Draft",
|
|
6309
6483
|
description: "The exercise has been created and entities pulled into scope, but the framework's inputs have not all been filled in yet.",
|
|
6310
6484
|
transitions_to: ["active", "archived"]
|
|
6311
6485
|
},
|
|
6312
6486
|
{
|
|
6313
6487
|
id: "active",
|
|
6488
|
+
status_category: "started",
|
|
6314
6489
|
label: "Active",
|
|
6315
6490
|
description: "The current, authoritative run of its framework. Its include edges carry the live results consumers read, rank, and render by.",
|
|
6316
6491
|
transitions_to: ["archived"]
|
|
6317
6492
|
},
|
|
6318
6493
|
{
|
|
6319
6494
|
id: "archived",
|
|
6495
|
+
status_category: "completed",
|
|
6320
6496
|
label: "Archived",
|
|
6321
6497
|
description: "A past run, retained for provenance. Still queryable but superseded by a newer exercise and hidden from default views. Can be revived to active.",
|
|
6322
6498
|
transitions_to: ["active"]
|
|
@@ -6330,24 +6506,28 @@ var SPECIFICATION_LIFECYCLE = {
|
|
|
6330
6506
|
phases: [
|
|
6331
6507
|
{
|
|
6332
6508
|
id: "draft",
|
|
6509
|
+
status_category: "started",
|
|
6333
6510
|
label: "Draft",
|
|
6334
6511
|
description: "Being authored. Not yet adopted as the canonical specification.",
|
|
6335
6512
|
transitions_to: ["active", "superseded"]
|
|
6336
6513
|
},
|
|
6337
6514
|
{
|
|
6338
6515
|
id: "active",
|
|
6516
|
+
status_category: "started",
|
|
6339
6517
|
label: "Active",
|
|
6340
6518
|
description: "In force. The current authoritative version products implement and conform to.",
|
|
6341
6519
|
transitions_to: ["deprecated", "superseded"]
|
|
6342
6520
|
},
|
|
6343
6521
|
{
|
|
6344
6522
|
id: "deprecated",
|
|
6523
|
+
status_category: "started",
|
|
6345
6524
|
label: "Deprecated",
|
|
6346
6525
|
description: "Still valid but no longer recommended; a successor exists or is imminent.",
|
|
6347
6526
|
transitions_to: ["superseded"]
|
|
6348
6527
|
},
|
|
6349
6528
|
{
|
|
6350
6529
|
id: "superseded",
|
|
6530
|
+
status_category: "completed",
|
|
6351
6531
|
label: "Superseded",
|
|
6352
6532
|
description: "Replaced by a newer specification. Retained for historical reference.",
|
|
6353
6533
|
transitions_to: []
|
|
@@ -6359,9 +6539,9 @@ var PLANNING_CYCLE_LIFECYCLE = {
|
|
|
6359
6539
|
initial_phase: "planned",
|
|
6360
6540
|
terminal_phases: ["closed"],
|
|
6361
6541
|
phases: [
|
|
6362
|
-
{ id: "planned", label: "Planned", description: "The cycle is being shaped: dates set, goal written, work scheduled into it. It has not started yet.", transitions_to: ["active"] },
|
|
6363
|
-
{ id: "active", label: "Active", description: "The team is inside the interval; work is flowing through it.", transitions_to: ["closed"] },
|
|
6364
|
-
{ id: "closed", label: "Closed", description: "The interval has ended. Scheduled work has shipped, carried over, or been dropped. May reopen if the team extends or reruns it.", transitions_to: ["active"] }
|
|
6542
|
+
{ id: "planned", status_category: "unstarted", label: "Planned", description: "The cycle is being shaped: dates set, goal written, work scheduled into it. It has not started yet.", transitions_to: ["active"] },
|
|
6543
|
+
{ id: "active", status_category: "started", label: "Active", description: "The team is inside the interval; work is flowing through it.", transitions_to: ["closed"] },
|
|
6544
|
+
{ id: "closed", status_category: "completed", label: "Closed", description: "The interval has ended. Scheduled work has shipped, carried over, or been dropped. May reopen if the team extends or reruns it.", transitions_to: ["active"] }
|
|
6365
6545
|
]
|
|
6366
6546
|
};
|
|
6367
6547
|
var UPG_LIFECYCLES = [
|
|
@@ -30125,7 +30305,7 @@ function isCanonical(text) {
|
|
|
30125
30305
|
}
|
|
30126
30306
|
|
|
30127
30307
|
// src/index.ts
|
|
30128
|
-
var UPG_VERSION = "0.
|
|
30308
|
+
var UPG_VERSION = "0.26.0";
|
|
30129
30309
|
var UPG_FORMAT_VERSION = "0.4.0";
|
|
30130
30310
|
var MARKDOWN_FORMAT_VERSION = "0.1";
|
|
30131
30311
|
var UPG_TYPES = getTypes();
|