Skip to content

Commit 36b7b22

Browse files
authored
Add deterministic incident response page triage fixture family
1 parent 33f2278 commit 36b7b22

55 files changed

Lines changed: 1564 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# incident_response_page_triage_degraded_v1
2+
3+
Deterministic fixture for incident_response_page_triage (severe).
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"fixture_id": "incident_response_page_triage_degraded_v1",
3+
"fixture_version": "1.0.0",
4+
"expected_admissible": false,
5+
"must_hold_contracts": [],
6+
"must_fail_contracts": [
7+
"alert_ack_before_mitigation",
8+
"no_orphan_mitigation_steps",
9+
"rollback_reachable",
10+
"root_cause_links_incident"
11+
],
12+
"expected_failure_labels": [
13+
"CAUSAL_DEPENDENCY_LOSS",
14+
"INVARIANT_VIOLATION",
15+
"POLICY_ORDER_BROKEN",
16+
"RECOVERY_PATH_INVALID"
17+
]
18+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"expected_failures": [
3+
"CAUSAL_DEPENDENCY_LOSS",
4+
"INVARIANT_VIOLATION",
5+
"POLICY_ORDER_BROKEN",
6+
"RECOVERY_PATH_INVALID"
7+
],
8+
"disallowed_failures": []
9+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"contract_id": "alert_ack_before_mitigation",
3+
"layer": "operational",
4+
"type": "ordering",
5+
"definition": {
6+
"required_sequence": [
7+
"alert_received",
8+
"alert_acknowledged",
9+
"mitigation_started"
10+
]
11+
},
12+
"severity": "CRITICAL"
13+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"contract_id": "no_orphan_mitigation_steps",
3+
"layer": "relational",
4+
"type": "invariant",
5+
"definition": {
6+
"rule": "no_orphan_dependencies"
7+
},
8+
"severity": "HIGH"
9+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"contract_id": "rollback_reachable",
3+
"layer": "relational",
4+
"type": "reachability",
5+
"definition": {
6+
"from": "mitigation_started",
7+
"to": [
8+
"rollback_available"
9+
],
10+
"min_paths": 1
11+
},
12+
"severity": "HIGH"
13+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"contract_id": "root_cause_links_incident",
3+
"layer": "relational",
4+
"type": "causality",
5+
"definition": {
6+
"required_causal_edges": [
7+
[
8+
"root_cause_identified",
9+
"mitigation_started"
10+
]
11+
]
12+
},
13+
"severity": "HIGH"
14+
}
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
{
2+
"graph_version": "1.0",
3+
"nodes": [
4+
{
5+
"node_id": "alert_received",
6+
"label": "Alert received",
7+
"metadata": {
8+
"phase": "intake"
9+
}
10+
},
11+
{
12+
"node_id": "alert_acknowledged",
13+
"label": "Alert acknowledged",
14+
"metadata": {
15+
"phase": "intake"
16+
}
17+
},
18+
{
19+
"node_id": "incident_classified",
20+
"label": "Incident classified",
21+
"metadata": {
22+
"phase": "triage"
23+
}
24+
},
25+
{
26+
"node_id": "root_cause_identified",
27+
"label": "Root cause identified",
28+
"metadata": {
29+
"phase": "analysis"
30+
}
31+
},
32+
{
33+
"node_id": "mitigation_started",
34+
"label": "Mitigation started",
35+
"metadata": {
36+
"phase": "response"
37+
}
38+
},
39+
{
40+
"node_id": "rollback_available",
41+
"label": "Rollback available",
42+
"metadata": {
43+
"phase": "response"
44+
}
45+
},
46+
{
47+
"node_id": "escalate_to_human",
48+
"label": "Escalate to human",
49+
"metadata": {
50+
"phase": "governance"
51+
}
52+
}
53+
],
54+
"edges": [
55+
{
56+
"source": "alert_received",
57+
"target": "alert_acknowledged",
58+
"relation": "PREREQUISITE",
59+
"metadata": {}
60+
},
61+
{
62+
"source": "alert_acknowledged",
63+
"target": "incident_classified",
64+
"relation": "TEMPORAL",
65+
"metadata": {}
66+
},
67+
{
68+
"source": "incident_classified",
69+
"target": "root_cause_identified",
70+
"relation": "CAUSAL",
71+
"metadata": {}
72+
},
73+
{
74+
"source": "root_cause_identified",
75+
"target": "mitigation_started",
76+
"relation": "CAUSAL",
77+
"metadata": {}
78+
},
79+
{
80+
"source": "mitigation_started",
81+
"target": "rollback_available",
82+
"relation": "RECOVERY",
83+
"metadata": {}
84+
},
85+
{
86+
"source": "mitigation_started",
87+
"target": "escalate_to_human",
88+
"relation": "RECOVERY",
89+
"metadata": {}
90+
}
91+
]
92+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"evidence": {
3+
"incident_id": "INC-2026-fixture",
4+
"priority": "P1",
5+
"service": "api-gateway"
6+
},
7+
"constraints": {
8+
"requires_alert_ack": true,
9+
"requires_human_escalation_path": true
10+
},
11+
"recovery_paths": {
12+
"mitigation_started": [
13+
"rollback_available",
14+
"escalate_to_human"
15+
]
16+
},
17+
"dependencies": {
18+
"mitigation_started": [
19+
"alert_acknowledged",
20+
"root_cause_identified"
21+
]
22+
}
23+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"events": [
3+
{
4+
"action": "alert_received",
5+
"step": 1
6+
},
7+
{
8+
"action": "alert_acknowledged",
9+
"step": 2
10+
},
11+
{
12+
"action": "incident_classified",
13+
"step": 3
14+
},
15+
{
16+
"action": "root_cause_identified",
17+
"step": 4
18+
},
19+
{
20+
"action": "mitigation_started",
21+
"step": 5
22+
},
23+
{
24+
"action": "rollback_available",
25+
"step": 6
26+
},
27+
{
28+
"action": "escalate_to_human",
29+
"step": 7
30+
}
31+
]
32+
}

0 commit comments

Comments
 (0)