{
  "example_version": "nt-example:v0",
  "title": "Retrained model extended to an unevaluated context, approved by its builder",
  "synthetic": true,
  "expected": {
    "outcome": "HOLD",
    "reason_codes": [
      "UNAUTHORIZED",
      "POLICY_DENIED",
      "INVARIANT_FAILED"
    ]
  },
  "proposal": {
    "proposal_version": "nt-proposal:v0",
    "proposal_id": "MOD-002",
    "class_id": "ai.model-promotion",
    "class_version": "0.1.0",
    "domain": "AI operations",
    "s_before": {
      "model_id": "model-m3",
      "stage": "candidate",
      "evaluated_contexts": [
        "claims-triage-uk",
        "claims-triage-ie"
      ]
    },
    "action": {
      "type": "promote_model",
      "purpose": "Extend the claims model to motor claims",
      "effects": [
        {
          "target": "model-registry",
          "description": "stage candidate → deployed"
        },
        {
          "target": "serving-cluster",
          "description": "route motor claims to model-m3"
        },
        {
          "target": "claims-auto-denial-pipeline",
          "description": "denial recommendations for motor claims"
        }
      ]
    },
    "s_proposed": {
      "model_id": "model-m3",
      "stage": "deployed",
      "contexts": [
        "claims-triage-uk",
        "claims-triage-ie",
        "motor-claims"
      ]
    },
    "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": "ml-team-lead"
    },
    "evidence": [
      {
        "id": "E1",
        "subject": "evaluation_report",
        "source": "independent evaluation team",
        "sha256": "e675e09e2999babe621f89ffc3f22caec039022a4454653371e9a6940730d6a8",
        "captured_at": "2026-09-01T09:00:00Z",
        "valid_until": null,
        "binds_to": "MOD-002",
        "tier": "E4"
      },
      {
        "id": "E2",
        "subject": "data_provenance",
        "source": "data catalogue",
        "sha256": "6a06ad740b9a108023e2b2fa19a8408afe0c062bb33d7719281f5a13597626cf",
        "captured_at": "2026-09-01T09:00:00Z",
        "valid_until": null,
        "binds_to": "MOD-002",
        "tier": "E2"
      },
      {
        "id": "E3",
        "subject": "rollback_plan",
        "source": "ml team wiki",
        "sha256": "fc3dfb9c2437d3e48f3d8124efb1185ea6aa76cd59942742a3a8adacde102e12",
        "captured_at": "2026-09-01T09:00:00Z",
        "valid_until": null,
        "binds_to": "MOD-002",
        "tier": "E2"
      }
    ],
    "timing": {
      "review_seconds": 3600,
      "commit_seconds": 86400
    },
    "recovery": {
      "inverse_action": "rollback_to_previous_m3",
      "routes_after": []
    },
    "feedback": {
      "cycle": "denials → fraud labels → model",
      "loop_gain": 1.2
    },
    "dependencies": {
      "declared": [
        "model-registry",
        "serving-cluster"
      ],
      "model": "model-m3",
      "vendor": "vendor-alpha",
      "policy_source": "model-risk-policy-2026",
      "data_source": "claims-intake"
    },
    "execution_state": "proposed"
  }
}
