{
  "schemaVersion": 2,
  "id": "complete",
  "title": "Complete and reopen tasks",
  "video": "complete.mp4",
  "poster": "complete-poster.jpg",
  "captions": "complete.vtt",
  "srt": "complete.srt",
  "subtitleLog": "complete.json",
  "sourceMaster": "output/video-masters-narrated/complete.mp4",
  "fps": 30,
  "frameIndexConvention": "zero-based; start inclusive, end exclusive",
  "width": 1280,
  "height": 1040,
  "screenHeight": 800,
  "frameCount": 680,
  "durationSeconds": 22.666666666666668,
  "captionsBurnedIn": true,
  "audioTracks": 1,
  "exampleDate": "2026-09-24",
  "capture": "Live Chromium Page.startScreencast frames; resampled to constant frame rate without cutting or speeding up actions.",
  "nativeDialogs": "OS file pickers are not captured. Cues explicitly identify file-selection steps.",
  "demoNote": null,
  "cues": [
    {
      "id": "complete-01",
      "helpStep": 1,
      "stepTitle": "Complete a task",
      "text": "Check the box beside the task to mark it complete.",
      "narrationText": "Check the box beside the task to mark it complete.",
      "startFrame": 0,
      "endFrameExclusive": 115,
      "startSeconds": 0.0,
      "endSeconds": 3.8333333333333335,
      "actions": [
        {
          "action": "click",
          "target": "[data-id=\"demo-1\"] .task-check"
        }
      ],
      "originalStartFrame": 0,
      "originalEndFrameExclusive": 115,
      "addedHoldFrames": 0,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/complete-01.mp3",
        "taskId": "084a8b17-3b23-44f0-99d1-182b42721a42",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 4800,
        "endSampleExclusive": 134089,
        "startSeconds": 0.1,
        "endSeconds": 2.7935208333333335,
        "startFrame": 3,
        "endFrameExclusive": 84,
        "sourceSha256": "bd516107534099cd4d6ac1d459d9cb59f659635f8dac1bbd01f408e8875ee059"
      }
    },
    {
      "id": "complete-02",
      "helpStep": 2,
      "stepTitle": "Review finished work",
      "text": "Open Completed to review finished tasks and their checked boxes.",
      "narrationText": "Open Completed to review finished tasks and their checked boxes.",
      "startFrame": 115,
      "endFrameExclusive": 246,
      "startSeconds": 3.8333333333333335,
      "endSeconds": 8.2,
      "actions": [
        {
          "action": "click",
          "target": "[data-view=\"completed\"]"
        },
        {
          "action": "highlight",
          "target": "[data-id=\"demo-1\"]"
        }
      ],
      "originalStartFrame": 115,
      "originalEndFrameExclusive": 246,
      "addedHoldFrames": 0,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/complete-02.mp3",
        "taskId": "6c5412f3-3c44-46cc-a561-0cc4ec363952",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 188800,
        "endSampleExclusive": 364900,
        "startSeconds": 3.933333333333333,
        "endSeconds": 7.602083333333334,
        "startFrame": 118,
        "endFrameExclusive": 229,
        "sourceSha256": "de4c638f4ad29d5781267805a2b483c699bc37d844447315a0b1d90527950908"
      }
    },
    {
      "id": "complete-03",
      "helpStep": 3,
      "stepTitle": "Reopen a task",
      "text": "Uncheck the task to reopen it. It leaves the Completed view.",
      "narrationText": "Uncheck the task to reopen it. It leaves the Completed view.",
      "startFrame": 246,
      "endFrameExclusive": 371,
      "startSeconds": 8.2,
      "endSeconds": 12.366666666666667,
      "actions": [
        {
          "action": "click",
          "target": "[data-id=\"demo-1\"] .task-check"
        }
      ],
      "originalStartFrame": 246,
      "originalEndFrameExclusive": 371,
      "addedHoldFrames": 0,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/complete-03.mp3",
        "taskId": "af7f5f35-fa70-4bbd-9a9b-a17b0510611e",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 398400,
        "endSampleExclusive": 574500,
        "startSeconds": 8.3,
        "endSeconds": 11.96875,
        "startFrame": 249,
        "endFrameExclusive": 360,
        "sourceSha256": "8f6dd6a00f2f41f62f987455294bd4599223d66108dfe537c77a271f82474c99"
      }
    },
    {
      "id": "complete-04",
      "helpStep": 4,
      "stepTitle": "Undo an accidental status change",
      "text": "Select Undo within 12 seconds to restore the previous completion status.",
      "narrationText": "Select Undo within 12 seconds to restore the previous completion status.",
      "startFrame": 371,
      "endFrameExclusive": 518,
      "startSeconds": 12.366666666666667,
      "endSeconds": 17.266666666666666,
      "actions": [
        {
          "action": "click",
          "target": "#undo"
        }
      ],
      "originalStartFrame": 371,
      "originalEndFrameExclusive": 515,
      "addedHoldFrames": 3,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/complete-04.mp3",
        "taskId": "d9d6cad9-3eb3-4305-b61d-285c6ee65e71",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 598400,
        "endSampleExclusive": 821312,
        "startSeconds": 12.466666666666667,
        "endSeconds": 17.110666666666667,
        "startFrame": 374,
        "endFrameExclusive": 514,
        "sourceSha256": "54c5093c48acefbef313260adc4e103a345b9f0c1955781f9ef6e71551de2a11"
      }
    },
    {
      "id": "complete-05",
      "helpStep": 3,
      "stepTitle": "Reopen a task",
      "text": "Reopened tasks keep their details and can be found in All tasks or their named list.",
      "narrationText": "Reopened tasks keep their details and can be found in All tasks or their named list.",
      "startFrame": 518,
      "endFrameExclusive": 680,
      "startSeconds": 17.266666666666666,
      "endSeconds": 22.666666666666668,
      "actions": [
        {
          "action": "click",
          "target": "[data-id=\"demo-1\"] .task-check"
        },
        {
          "action": "click",
          "target": "[data-view=\"all\"]"
        },
        {
          "action": "highlight",
          "target": "[data-id=\"demo-1\"]"
        }
      ],
      "originalStartFrame": 515,
      "originalEndFrameExclusive": 677,
      "addedHoldFrames": 0,
      "narration": {
        "voice": "Niki",
        "sourceClip": "output/narration/clips/complete-05.mp3",
        "taskId": "225fe4bd-d265-4199-b9db-8217480f694e",
        "generationSpeed": 1.05,
        "playbackSpeed": 1.0,
        "sampleRate": 48000,
        "startSample": 833600,
        "endSampleExclusive": 1067657,
        "startSeconds": 17.366666666666667,
        "endSeconds": 22.242854166666667,
        "startFrame": 521,
        "endFrameExclusive": 668,
        "sourceSha256": "e44ae8c186faa9eb326668cca6a77e7acfbc7db730d249fd113a4a9ae97501c2"
      }
    }
  ],
  "subtitleBoundaryEncoding": "ASS cue boundaries quantized down to centiseconds to align exactly with the logged 30 fps frames.",
  "videoSha256": "d05c034c290a18753bdf0aea0d6fa12b5ddf7a01d0dee07ffc24cd65f32dd0d2",
  "masterSha256": "907a4bd6df5c331eca7e2b2b30c423b69a2a277f7165c8b318fe2daf328ccd55",
  "controlsClearancePixels": 128,
  "originalSourceMaster": "output/video-masters/complete.mp4",
  "originalMasterSha256": "7d8dbb59f5f6d401f7f58165f8692539f1060fa637098b4230f79d3612a45a8c",
  "originalFrameCount": 677,
  "addedNarrationHoldFrames": 3,
  "narration": {
    "voice": "Niki",
    "language": "en",
    "description": "Friendly American narration",
    "generatedSpeech": true,
    "model": "eleven_multilingual_v2",
    "generationSpeed": 1.05,
    "sampleRate": 48000,
    "codec": "AAC",
    "audioFile": "complete-narration.m4a",
    "trackMaster": "output/narration/tracks/complete.wav",
    "alignment": "Each original cue plays at its original pace. End-frame holds extend cues when needed for natural speech, with 100 ms lead-in and at least 150 ms end clearance. Audio is never truncated or sped up.",
    "timingConvention": "Audio sample indices at 48000 Hz are exact; covering video frame ranges are rounded outward."
  }
}
