{
  "schema": "MAKNOW_AWR008_LAB_VISIBLE_RULES_v1.0",
  "lesson_id": "AWR-008",
  "lab_id": "AWR-008-LAB1",
  "purpose": "Visible deterministic consistency rules for Virtual Cast/Repair Agent Deep-Implementation Gate v1; not an adoption oracle.",
  "positive_states": [
    "USE",
    "PILOT"
  ],
  "allowed_states": [
    "USE",
    "PILOT",
    "NOT_NOW",
    "UNKNOWN",
    "EVIDENCE_INCOMPLETE",
    "OWNER_MISSING",
    "REVIEW_REQUIRED",
    "HOLD"
  ],
  "rules": [
    {
      "id": "R1",
      "text": "Virtual-cast USE/PILOT requires an explicit problem and trigger, documented identity/rights owner, asset pipeline, capture/animation/render and quality evidence, production owner, cost/budget evidence, simpler alternative, evidence refs, and review due."
    },
    {
      "id": "R2",
      "text": "Virtual-cast USE/PILOT is incompatible with missing rights ownership or missing production ownership for the cast actually being proposed."
    },
    {
      "id": "R3",
      "text": "Meeting the visual quality target does not preserve a positive virtual-cast state when the declared render/animation estimate exceeds the target budget."
    },
    {
      "id": "R4",
      "text": "Repair-agent USE/PILOT requires a reproducible failure signature, bounded tool scope and write scope, patch plan, side-effect class, required approval, guardrail state, deterministic test fixture, evaluation result, rollback plan, audit trace, owner, simpler alternative, evidence refs, and review due."
    },
    {
      "id": "R5",
      "text": "Repair-agent USE is incompatible with PROPOSE_ONLY write scope. PILOT may use PROPOSE_ONLY or bounded sandbox/repository scope when the remaining evidence is complete."
    },
    {
      "id": "R6",
      "text": "Repository write authority without deterministic tests or rollback is incompatible with USE/PILOT."
    },
    {
      "id": "R7",
      "text": "Billing-code or production-data repair targets cannot receive USE/PILOT in this offline awareness lab; preserve REVIEW_REQUIRED/NOT_NOW/HOLD or another typed non-success state."
    },
    {
      "id": "R8",
      "text": "For a positive Repair Agent state, approval_required must be explicitly present as a boolean. If true, approval_state=CONFIGURED and an approval owner are required; if false, approval_state=NOT_REQUIRED and the decision rationale must remain bounded by the visible target/scope evidence."
    },
    {
      "id": "R9",
      "text": "Guardrails/approval do not prove repair correctness or reverse side effects; positive repair-agent states still require PASS evaluation and rollback evidence."
    },
    {
      "id": "R10",
      "text": "Every axis decision requires a rationale, an explicit stop_or_pivot condition, and at least one applicable governance trigger of type REVIEW, MIGRATION, or ESCALATION. Do not mechanically require every trigger category."
    },
    {
      "id": "R11",
      "text": "The checker validates consistency only; it never selects USE/PILOT/NOT_NOW for the learner and contains no fixture-specific answer key."
    },
    {
      "id": "R12",
      "text": "fixture_ref must resolve through the published fixture binding manifest. Decisive non-decision fields must exactly match the shipped baseline, mutation, or transfer fixture. The checker contains no fixture-specific final decision."
    }
  ],
  "fixture_binding_manifest": "fixtures/FIXTURE_BINDINGS.json",
  "decision_contract": {
    "required_fields": [
      "state",
      "rationale",
      "stop_or_pivot_condition",
      "governance_triggers"
    ],
    "governance_trigger_types": [
      "REVIEW",
      "MIGRATION",
      "ESCALATION"
    ],
    "policy": "At least one applicable governance trigger is named; every category is not mechanically required."
  }
}
