{
  "schema": "MAKNOW_AWR007_LAB_VISIBLE_RULES_v1.0",
  "lesson_id": "AWR-007",
  "lab_id": "AWR-007-LAB1",
  "purpose": "Visible deterministic consistency and exact-fixture-binding rules for Multi-region/Ad Automation Risk Decision Matrix v1; not an adoption oracle.",
  "positive_states": [
    "USE",
    "PILOT"
  ],
  "allowed_states": [
    "USE",
    "PILOT",
    "NOT_NOW",
    "UNKNOWN",
    "EVIDENCE_INCOMPLETE",
    "OWNER_MISSING",
    "REVIEW_REQUIRED",
    "HOLD",
    "PARTIAL",
    "DISPUTED"
  ],
  "decision_contract": {
    "required_fields": [
      "state",
      "rationale",
      "stop_or_pivot_condition",
      "governance_triggers"
    ],
    "governance_trigger_types": [
      "REVIEW",
      "MIGRATION",
      "ESCALATION"
    ],
    "ad_use_progression_evidence_allowed": [
      "SIMULATION_AND_RECOMMENDATION_STAGE_COMPLETED_WITH_REVIEWABLE_SYNTHETIC_EVIDENCE"
    ]
  },
  "fixture_binding_manifest": "fixtures/FIXTURE_BINDINGS.json",
  "rules": [
    {
      "id": "R1",
      "text": "Positive Multi-region state requires explicit problem/trigger, geography, measurable latency/availability/recovery evidence, residency/replication/consistency fields, failover owner, guardrail, explicit operational/ownership-cost class, simpler alternative, evidence refs, and review due."
    },
    {
      "id": "R2",
      "text": "Multi-region USE/PILOT requires a measured latency, availability, recovery, residency, or continuity trigger; user-count growth alone or an explicit no-new-requirement state is insufficient."
    },
    {
      "id": "R3",
      "text": "Positive Multi-region state requires an explicit failover owner and a valid numeric RTO/RPO recovery objective."
    },
    {
      "id": "R4",
      "text": "One-market residency does not justify global active-active replication of all data in this fixture; topology must stay scoped to the evidence."
    },
    {
      "id": "R5",
      "text": "Positive Ad Automation state requires problem/trigger, campaign goal, positive budget limit, bidding strategy, targeting scope, stable conversion signal, automation permission, approval semantics, spend guardrail, stop-loss, reconciliation owner, explicit operational/ownership-cost class, simpler alternative, evidence refs, and review due."
    },
    {
      "id": "R6",
      "text": "An unstable, unknown, or missing conversion signal is incompatible with Ad Automation USE/PILOT."
    },
    {
      "id": "R7",
      "text": "Positive Ad Automation state requires bounded targeting and explicit positive budget evidence."
    },
    {
      "id": "R8",
      "text": "When approval_required=true, approval_state must be CONFIGURED and approval_owner explicit; when false, approval_state must explicitly be NOT_REQUIRED."
    },
    {
      "id": "R9",
      "text": "Positive Ad Automation state requires spend guardrail and stop-loss fields with executable numeric limits plus a reconciliation owner."
    },
    {
      "id": "R10",
      "text": "UNRESTRICTED_AUTONOMOUS_MUTATION is incompatible with USE/PILOT in this offline awareness lab."
    },
    {
      "id": "R11",
      "text": "Every axis decision requires rationale, stop_or_pivot_condition, and at least one valid governance trigger."
    },
    {
      "id": "R12",
      "text": "Missing decisive evidence may remain a typed non-success state; the checker never selects an expected answer."
    },
    {
      "id": "R13",
      "text": "fixture_ref must resolve to a shipped synthetic fixture and every non-decision evidence field must exactly bind to that fixture."
    },
    {
      "id": "R14",
      "text": "Ad Automation USE is stricter than PILOT and requires explicit shipped-fixture evidence that a simulation/recommendation stage has been completed before advancing beyond PILOT."
    }
  ]
}
