{
  "schema": "LOC-017_SYNTHETIC_CASES_v1",
  "policy_note": "Synthetic offline evidence only; no production fleet, credential, or destructive operation is used.",
  "cases": [
    {
      "id": "baseline_test",
      "rollout_id": "R42",
      "release_digest": "sha256:r42",
      "expected_release_digest": "sha256:r42",
      "release_generation": "g42",
      "stage": "TEST",
      "cohort_selector": "test=dedicated",
      "planned_nodes": 1,
      "reachable_nodes": 1,
      "updated_nodes": 1,
      "unhealthy_nodes": 0,
      "disrupted_nodes": 0,
      "disruption_budget": 1,
      "health_window_complete": true,
      "baseline_health": "PASS",
      "post_update_health": "PASS",
      "failure_budget": 0,
      "rollback_target": "R41",
      "next_stage": "CANARY"
    },
    {
      "id": "canary_unhealthy_late",
      "rollout_id": "R42",
      "release_digest": "sha256:r42",
      "expected_release_digest": "sha256:r42",
      "release_generation": "g42",
      "stage": "CANARY",
      "cohort_selector": "canary=2",
      "planned_nodes": 2,
      "reachable_nodes": 2,
      "updated_nodes": 2,
      "unhealthy_nodes": 1,
      "disrupted_nodes": 1,
      "disruption_budget": 1,
      "health_window_complete": true,
      "baseline_health": "PASS",
      "post_update_health": "FAIL",
      "failure_budget": 0,
      "rollback_target": "R41",
      "next_stage": "BATCH"
    },
    {
      "id": "batch_unreachable_20",
      "rollout_id": "R42",
      "release_digest": "sha256:r42",
      "expected_release_digest": "sha256:r42",
      "release_generation": "g42",
      "stage": "BATCH",
      "cohort_selector": "batch=A",
      "planned_nodes": 5,
      "reachable_nodes": 4,
      "updated_nodes": 4,
      "unhealthy_nodes": 0,
      "disrupted_nodes": 0,
      "disruption_budget": 1,
      "health_window_complete": true,
      "baseline_health": "PASS",
      "post_update_health": "PASS",
      "failure_budget": 0,
      "rollback_target": "R41",
      "next_stage": "BATCH"
    },
    {
      "id": "digest_changed",
      "rollout_id": "R42",
      "release_digest": "sha256:r42-hotfix",
      "expected_release_digest": "sha256:r42",
      "release_generation": "g43",
      "stage": "BATCH",
      "cohort_selector": "batch=B",
      "planned_nodes": 5,
      "reachable_nodes": 5,
      "updated_nodes": 0,
      "unhealthy_nodes": 0,
      "disrupted_nodes": 0,
      "disruption_budget": 1,
      "health_window_complete": false,
      "baseline_health": "PASS",
      "post_update_health": "UNKNOWN",
      "failure_budget": 0,
      "rollback_target": "R41",
      "next_stage": "BATCH"
    },
    {
      "id": "failure_budget_exceeded",
      "rollout_id": "R42",
      "release_digest": "sha256:r42",
      "expected_release_digest": "sha256:r42",
      "release_generation": "g42",
      "stage": "BATCH",
      "cohort_selector": "batch=B2",
      "planned_nodes": 5,
      "reachable_nodes": 5,
      "updated_nodes": 5,
      "unhealthy_nodes": 2,
      "disrupted_nodes": 1,
      "disruption_budget": 2,
      "health_window_complete": true,
      "baseline_health": "PASS",
      "post_update_health": "FAIL",
      "failure_budget": 1,
      "rollback_target": "R41",
      "next_stage": "BATCH"
    },
    {
      "id": "disruption_budget_exceeded",
      "rollout_id": "R42",
      "release_digest": "sha256:r42",
      "expected_release_digest": "sha256:r42",
      "release_generation": "g42",
      "stage": "BATCH",
      "cohort_selector": "batch=C",
      "planned_nodes": 10,
      "reachable_nodes": 10,
      "updated_nodes": 6,
      "unhealthy_nodes": 0,
      "disrupted_nodes": 3,
      "disruption_budget": 2,
      "health_window_complete": false,
      "baseline_health": "PASS",
      "post_update_health": "UNKNOWN",
      "failure_budget": 1,
      "rollback_target": "R41",
      "next_stage": "BATCH"
    },
    {
      "id": "fleet_converged",
      "rollout_id": "R42",
      "release_digest": "sha256:r42",
      "expected_release_digest": "sha256:r42",
      "release_generation": "g42",
      "stage": "FLEET",
      "cohort_selector": "fleet=eligible",
      "planned_nodes": 20,
      "reachable_nodes": 20,
      "updated_nodes": 20,
      "unhealthy_nodes": 0,
      "disrupted_nodes": 0,
      "disruption_budget": 2,
      "health_window_complete": true,
      "baseline_health": "PASS",
      "post_update_health": "PASS",
      "failure_budget": 1,
      "rollback_target": "R41",
      "next_stage": "NONE"
    },
    {
      "id": "two_site_intermittent",
      "rollout_id": "R42",
      "release_digest": "sha256:r42",
      "expected_release_digest": "sha256:r42",
      "release_generation": "g42",
      "stage": "BATCH",
      "cohort_selector": "siteA+siteB",
      "planned_nodes": 8,
      "reachable_nodes": 6,
      "updated_nodes": 6,
      "unhealthy_nodes": 0,
      "disrupted_nodes": 0,
      "disruption_budget": 1,
      "health_window_complete": true,
      "baseline_health": "PASS",
      "post_update_health": "PASS",
      "failure_budget": 0,
      "rollback_target": "R41",
      "next_stage": "BATCH_SITE_B_RECHECK"
    }
  ]
}
