{
 "status": "ready",
 "cut": "mobile",
 "size": [
  390,
  844
 ],
 "user_story": "User starts the kill duel, clicks Kill left then Kill right live; both event logs show aborted then resume; both sides finish with the same result hash as Expected.",
 "entry_url": "https://pi-durable-kill-duel.pages.dev/",
 "funnel_url": "https://pi-durable-kill-duel-rec.pages.dev/mobile/",
 "funnel_checks": [
  {
   "url": "https://pi-durable-kill-duel-rec.pages.dev/mobile/demo.mp4",
   "status": 200
  },
  {
   "url": "https://pi-durable-kill-duel-rec.pages.dev/mobile/cues.json",
   "status": 200
  },
  {
   "url": "https://pi-durable-kill-duel-rec.pages.dev/mobile/handoff.json",
   "status": 200
  },
  {
   "url": "https://pi-durable-kill-duel-rec.pages.dev/",
   "status": 200
  }
 ],
 "mp4": "pi-durable-kill-duel/ux-demo/outputs/mobile/demo.mp4",
 "cues": "pi-durable-kill-duel/ux-demo/outputs/mobile/cues.json",
 "format": {
  "codec": "h264",
  "pix_fmt": "yuv420p",
  "fps": 30,
  "duration_s": 27.87,
  "realtime": true
 },
 "seed": "film-a-ux-1",
 "observed_hashes": {
  "expected": "e53347950ac6e3befacd74adb1e77ca742ad4c617608e242742100ebc88bbd1d",
  "cloudflare": "e53347950ac6e3befacd74adb1e77ca742ad4c617608e242742100ebc88bbd1d",
  "vercel": "e53347950ac6e3befacd74adb1e77ca742ad4c617608e242742100ebc88bbd1d",
  "badge": "PASS: 3 hashes equal"
 },
 "shot_list": [
  {
   "id": "S1",
   "t": "0\u2013~3s",
   "content": "Live site open; seed film-a-ux-1; Expected hash visible; IDLE"
  },
  {
   "id": "S2",
   "t": "~3s",
   "content": "Click Start duel"
  },
  {
   "id": "S3",
   "t": "~6.5s",
   "content": "Click Kill left (Cloudflare DO)"
  },
  {
   "id": "S4",
   "t": "~7.5s",
   "content": "Click Kill right (Vercel Workflow World)"
  },
  {
   "id": "S5",
   "t": "~8\u201317s",
   "content": "Event logs show aborted then resume (CF alarm, Vercel recoverAfterMs)"
  },
  {
   "id": "S6",
   "t": "~19\u201324s",
   "content": "PASS: 3 hashes equal; CF and Vercel resultHash match Expected; mild zoom for legibility"
  },
  {
   "id": "S7",
   "t": "end card",
   "content": "Kill mid-step \u2192 resume \u2192 same hash"
  }
 ],
 "commit": "1e4fdc6e0b960c0f3a299489ef80bfa69d3e56e9",
 "qa": {
  "verdict": "pass",
  "beats_verified": [
   "page open",
   "Kill A (left)",
   "Kill B (right)",
   "aborted/resume in log",
   "matching hashes visible"
  ],
  "legibility": {
   "log_css_px": "11 desktop / 10 mobile",
   "zoom": "desktop \u00d71.42 \u00b7 mobile \u00d71.65 on hash/log beat \u2192 \u226516px at delivered size",
   "hash_full": "e53347950ac6e3befacd74adb1e77ca742ad4c617608e242742100ebc88bbd1d"
  },
  "cold_viewer": "contact-sheet + pass-hold still: Start \u2192 Kill left \u2192 Kill right \u2192 aborted/resume lines \u2192 PASS with identical hashes"
 },
 "deviations": [
  "Real-time cut; no speed-up (duel settles in ~20s).",
  "Capture-only paint ticker (1px) forces CDP screencast frames; not product UI.",
  "Mobile: capture-only touch ring on taps; not product UI.",
  "Mild captions overlaid in edit (not site UI).",
  "Zoom/crop on log+hash beat for \u226516px legibility (site log is 10\u201311px).",
  "Desktop and mobile are two separate live duels with the same seed, so hashes match across cuts; log timings differ slightly."
 ],
 "funnel_checks_note": "curl GET 200 + byte-equal local, 2026-10-22 Asia/Taipei"
}