{
  "example_version": "nt-example:v0",
  "title": "Model promoted only to contexts it was evaluated for",
  "synthetic": true,
  "expected": {
    "outcome": "EXECUTE",
    "reason_codes": []
  },
  "proposal": {
    "proposal_version": "nt-proposal:v0",
    "proposal_id": "MOD-001",
    "class_id": "ai.model-promotion",
    "class_version": "0.1.0",
    "domain": "AI operations",
    "s_before": {
      "model_id": "model-m4",
      "stage": "candidate",
      "evaluated_contexts": [
        "claims-triage-uk",
        "claims-triage-ie"
      ]
    },
    "action": {
      "type": "promote_model",
      "purpose": "Serve claims triage in the UK and Ireland",
      "effects": [
        {
          "target": "model-registry",
          "description": "stage candidate → deployed"
        },
        {
          "target": "serving-cluster",
          "description": "route triage traffic to model-m4"
        }
      ]
    },
    "s_proposed": {
      "model_id": "model-m4",
      "stage": "deployed",
      "contexts": [
        "claims-triage-uk",
        "claims-triage-ie"
      ]
    },
    "t_valid": "2026-09-10T12:00:00Z",
    "authority": {
      "principal": "mlops-agent-1",
      "trust_root": {
        "id": "model-risk-root",
        "declared_by": "model risk committee",
        "independent_of_proposer": true
      },
      "delegation_chain": [
        {
          "from": "head-of-model-risk",
          "to": "mlops-agent-1",
          "scope": "promotion"
        }
      ],
      "preparer": "ml-team-lead",
      "approver": "model-risk-officer"
    },
    "evidence": [
      {
        "id": "E1",
        "subject": "evaluation_report",
        "source": "independent evaluation team",
        "sha256": "8277e5e94d1c5486fe999298ee00de90f2cf4b2b5764a86ef9ee799472bd6031",
        "captured_at": "2026-09-01T09:00:00Z",
        "valid_until": null,
        "binds_to": "MOD-001",
        "tier": "E4"
      },
      {
        "id": "E2",
        "subject": "data_provenance",
        "source": "data catalogue",
        "sha256": "7e6384074be4bbe0aa3fc19a938a28644ec943ddd87832f5f50d9190c7c86a13",
        "captured_at": "2026-09-01T09:00:00Z",
        "valid_until": null,
        "binds_to": "MOD-001",
        "tier": "E2"
      },
      {
        "id": "E3",
        "subject": "rollback_plan",
        "source": "ml team wiki",
        "sha256": "553a5a6e1636dfed6ce2dc31b445dd13f3bb6b005e87259ab9c616523fa25081",
        "captured_at": "2026-09-01T09:00:00Z",
        "valid_until": null,
        "binds_to": "MOD-001",
        "tier": "E2"
      }
    ],
    "timing": {
      "review_seconds": 3600,
      "commit_seconds": 86400
    },
    "recovery": {
      "inverse_action": "rollback_to_model-m3",
      "routes_after": []
    },
    "feedback": {
      "cycle": "triage outputs → training labels → model",
      "loop_gain": 0.3
    },
    "dependencies": {
      "declared": [
        "model-registry",
        "serving-cluster"
      ],
      "model": "model-m4",
      "vendor": "vendor-alpha",
      "policy_source": "model-risk-policy-2026",
      "data_source": "claims-intake"
    },
    "execution_state": "proposed"
  }
}
