{
  "schema_version": "1",
  "runs": [
    {
      "generated_at": "2026-09-22T06:41:55.362318+00:00",
      "stage": "post_render",
      "passed": false,
      "errors": 31,
      "warnings": 0,
      "verdicts": [
        {
          "verifier": "cover_offset",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "cue_mismatches": 0,
            "cues": 46,
            "timeline_entries": 46,
            "vtt_has_cover": true,
            "recorded_page": "slides.html",
            "html_has_cover": true
          },
          "errors": 0,
          "warnings": 0
        },
        {
          "verifier": "fragment_narration_alignment",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": false,
          "findings": [
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_00_cover.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 0
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_01.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_02.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_03.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_04.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_05.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_01.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_02.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_03.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_04.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "... and 36 more like this (full count in evidence)",
              "slide_num": null
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 1: 7 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 2: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 3: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 3
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 4: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 4
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 5: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 5
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 6: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 6
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 7: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 7
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 9: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 9
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 10: 5 narration turn(s) but 3 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 10
            }
          ],
          "evidence": {
            "missing_audio": 46,
            "narration_source": "manifest",
            "slide_count_mismatches": 9,
            "missing_fragments": 0
          },
          "errors": 20,
          "warnings": 0
        },
        {
          "verifier": "bundle_integrity",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": false,
          "findings": [
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_00_cover.wav, which does not exist in the bundle.",
              "slide_num": 0
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_01.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_02.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_03.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_04.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_05.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_01.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_02.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_03.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_04.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "... and 36 more like this (full count in evidence)",
              "slide_num": null
            }
          ],
          "evidence": {
            "missing_assets": 46,
            "asset_refs_checked": 46,
            "duration_mismatches": 0,
            "recorded_page": "slides.html",
            "timeline_total_sec": 407.738,
            "declared_audio_sec": 407.737625
          },
          "errors": 11,
          "warnings": 0
        },
        {
          "verifier": "narration_source_consistency",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "divergent_slides": 0,
            "narration_source_requested": null
          },
          "errors": 0,
          "warnings": 0
        }
      ],
      "skipped": {},
      "crashed": {},
      "missing_required": []
    },
    {
      "generated_at": "2026-09-22T06:43:49.317120+00:00",
      "stage": "post_render",
      "passed": false,
      "errors": 31,
      "warnings": 0,
      "verdicts": [
        {
          "verifier": "cover_offset",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "cue_mismatches": 0,
            "cues": 46,
            "timeline_entries": 46,
            "vtt_has_cover": true,
            "recorded_page": "slides.html",
            "html_has_cover": true
          },
          "errors": 0,
          "warnings": 0
        },
        {
          "verifier": "fragment_narration_alignment",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": false,
          "findings": [
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_00_cover.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 0
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_01.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_02.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_03.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_04.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_05.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_01.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_02.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_03.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_04.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "... and 36 more like this (full count in evidence)",
              "slide_num": null
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 1: 7 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 2: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 3: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 3
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 4: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 4
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 5: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 5
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 6: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 6
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 7: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 7
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 9: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 9
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 10: 5 narration turn(s) but 3 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 10
            }
          ],
          "evidence": {
            "missing_audio": 46,
            "narration_source": "manifest",
            "slide_count_mismatches": 9,
            "missing_fragments": 0
          },
          "errors": 20,
          "warnings": 0
        },
        {
          "verifier": "bundle_integrity",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": false,
          "findings": [
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_00_cover.wav, which does not exist in the bundle.",
              "slide_num": 0
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_01.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_02.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_03.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_04.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_05.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_01.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_02.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_03.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_04.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "... and 36 more like this (full count in evidence)",
              "slide_num": null
            }
          ],
          "evidence": {
            "missing_assets": 46,
            "asset_refs_checked": 46,
            "duration_mismatches": 0,
            "recorded_page": "slides.html",
            "timeline_total_sec": 407.738,
            "declared_audio_sec": 407.737625
          },
          "errors": 11,
          "warnings": 0
        },
        {
          "verifier": "narration_source_consistency",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "divergent_slides": 0,
            "narration_source_requested": null
          },
          "errors": 0,
          "warnings": 0
        }
      ],
      "skipped": {},
      "crashed": {},
      "missing_required": []
    },
    {
      "generated_at": "2026-09-22T07:47:33.369766+00:00",
      "stage": "post_render",
      "passed": false,
      "errors": 31,
      "warnings": 0,
      "verdicts": [
        {
          "verifier": "cover_offset",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "cue_mismatches": 0,
            "cues": 46,
            "timeline_entries": 46,
            "vtt_has_cover": true,
            "recorded_page": "slides.html",
            "html_has_cover": true
          },
          "errors": 0,
          "warnings": 0
        },
        {
          "verifier": "fragment_narration_alignment",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": false,
          "findings": [
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_00_cover.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 0
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_01.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_02.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_03.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_04.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_05.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_01.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_02.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_03.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_04.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "... and 36 more like this (full count in evidence)",
              "slide_num": null
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 1: 7 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 2: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 3: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 3
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 4: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 4
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 5: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 5
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 6: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 6
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 7: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 7
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 9: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 9
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 10: 5 narration turn(s) but 3 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 10
            }
          ],
          "evidence": {
            "missing_audio": 46,
            "narration_source": "manifest",
            "slide_count_mismatches": 9,
            "missing_fragments": 0
          },
          "errors": 20,
          "warnings": 0
        },
        {
          "verifier": "bundle_integrity",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": false,
          "findings": [
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_00_cover.wav, which does not exist in the bundle.",
              "slide_num": 0
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_01.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_02.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_03.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_04.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_05.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_01.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_02.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_03.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_04.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "... and 36 more like this (full count in evidence)",
              "slide_num": null
            }
          ],
          "evidence": {
            "missing_assets": 46,
            "asset_refs_checked": 46,
            "duration_mismatches": 0,
            "recorded_page": "slides.html",
            "timeline_total_sec": 407.738,
            "declared_audio_sec": 407.737625
          },
          "errors": 11,
          "warnings": 0
        },
        {
          "verifier": "narration_source_consistency",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "divergent_slides": 0,
            "narration_source_requested": null
          },
          "errors": 0,
          "warnings": 0
        }
      ],
      "skipped": {},
      "crashed": {},
      "missing_required": []
    },
    {
      "generated_at": "2026-09-22T07:48:07.739693+00:00",
      "stage": "post_render",
      "passed": false,
      "errors": 31,
      "warnings": 0,
      "verdicts": [
        {
          "verifier": "cover_offset",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "cue_mismatches": 0,
            "cues": 46,
            "timeline_entries": 46,
            "vtt_has_cover": true,
            "recorded_page": "slides.html",
            "html_has_cover": true
          },
          "errors": 0,
          "warnings": 0
        },
        {
          "verifier": "fragment_narration_alignment",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": false,
          "findings": [
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_00_cover.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 0
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_01.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_02.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_03.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_04.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_05.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_01.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_02.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_03.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_04.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "... and 36 more like this (full count in evidence)",
              "slide_num": null
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 1: 7 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 2: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 3: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 3
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 4: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 4
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 5: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 5
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 6: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 6
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 7: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 7
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 9: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 9
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 10: 5 narration turn(s) but 3 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 10
            }
          ],
          "evidence": {
            "missing_audio": 46,
            "narration_source": "manifest",
            "slide_count_mismatches": 9,
            "missing_fragments": 0
          },
          "errors": 20,
          "warnings": 0
        },
        {
          "verifier": "bundle_integrity",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": false,
          "findings": [
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_00_cover.wav, which does not exist in the bundle.",
              "slide_num": 0
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_01.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_02.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_03.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_04.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_05.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_01.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_02.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_03.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_04.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "... and 36 more like this (full count in evidence)",
              "slide_num": null
            }
          ],
          "evidence": {
            "missing_assets": 46,
            "asset_refs_checked": 46,
            "duration_mismatches": 0,
            "recorded_page": "slides.html",
            "timeline_total_sec": 407.738,
            "declared_audio_sec": 407.737625
          },
          "errors": 11,
          "warnings": 0
        },
        {
          "verifier": "narration_source_consistency",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "divergent_slides": 0,
            "narration_source_requested": null
          },
          "errors": 0,
          "warnings": 0
        }
      ],
      "skipped": {},
      "crashed": {},
      "missing_required": []
    },
    {
      "generated_at": "2026-09-22T08:29:19.910138+00:00",
      "stage": "post_render",
      "passed": false,
      "errors": 31,
      "warnings": 0,
      "verdicts": [
        {
          "verifier": "cover_offset",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "cue_mismatches": 0,
            "cues": 46,
            "timeline_entries": 46,
            "vtt_has_cover": true,
            "recorded_page": "slides.html",
            "html_has_cover": true
          },
          "errors": 0,
          "warnings": 0
        },
        {
          "verifier": "fragment_narration_alignment",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": false,
          "findings": [
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_00_cover.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 0
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_01.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_02.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_03.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_04.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_05.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_01.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_02.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_03.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_04.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "... and 36 more like this (full count in evidence)",
              "slide_num": null
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 1: 7 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 2: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 3: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 3
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 4: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 4
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 5: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 5
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 6: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 6
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 7: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 7
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 9: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 9
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 10: 5 narration turn(s) but 3 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 10
            }
          ],
          "evidence": {
            "missing_audio": 46,
            "narration_source": "manifest",
            "slide_count_mismatches": 9,
            "missing_fragments": 0
          },
          "errors": 20,
          "warnings": 0
        },
        {
          "verifier": "bundle_integrity",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": false,
          "findings": [
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_00_cover.wav, which does not exist in the bundle.",
              "slide_num": 0
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_01.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_02.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_03.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_04.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_05.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_01.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_02.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_03.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_04.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "... and 36 more like this (full count in evidence)",
              "slide_num": null
            }
          ],
          "evidence": {
            "missing_assets": 46,
            "asset_refs_checked": 46,
            "duration_mismatches": 0,
            "recorded_page": "slides.html",
            "timeline_total_sec": 407.738,
            "declared_audio_sec": 407.737625
          },
          "errors": 11,
          "warnings": 0
        },
        {
          "verifier": "narration_source_consistency",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "divergent_slides": 0,
            "narration_source_requested": null
          },
          "errors": 0,
          "warnings": 0
        }
      ],
      "skipped": {},
      "crashed": {},
      "missing_required": []
    },
    {
      "generated_at": "2026-09-22T08:29:28.957253+00:00",
      "stage": "post_render",
      "passed": false,
      "errors": 31,
      "warnings": 0,
      "verdicts": [
        {
          "verifier": "cover_offset",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "cue_mismatches": 0,
            "cues": 46,
            "timeline_entries": 46,
            "vtt_has_cover": true,
            "recorded_page": "slides.html",
            "html_has_cover": true
          },
          "errors": 0,
          "warnings": 0
        },
        {
          "verifier": "fragment_narration_alignment",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": false,
          "findings": [
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_00_cover.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 0
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_01.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_02.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_03.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_04.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_05.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_01.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_02.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_03.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_04.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "... and 36 more like this (full count in evidence)",
              "slide_num": null
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 1: 7 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 2: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 3: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 3
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 4: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 4
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 5: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 5
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 6: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 6
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 7: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 7
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 9: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 9
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 10: 5 narration turn(s) but 3 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 10
            }
          ],
          "evidence": {
            "missing_audio": 46,
            "narration_source": "manifest",
            "slide_count_mismatches": 9,
            "missing_fragments": 0
          },
          "errors": 20,
          "warnings": 0
        },
        {
          "verifier": "bundle_integrity",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": false,
          "findings": [
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_00_cover.wav, which does not exist in the bundle.",
              "slide_num": 0
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_01.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_02.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_03.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_04.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_05.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_01.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_02.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_03.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_04.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "... and 36 more like this (full count in evidence)",
              "slide_num": null
            }
          ],
          "evidence": {
            "missing_assets": 46,
            "asset_refs_checked": 46,
            "duration_mismatches": 0,
            "recorded_page": "slides.html",
            "timeline_total_sec": 407.738,
            "declared_audio_sec": 407.737625
          },
          "errors": 11,
          "warnings": 0
        },
        {
          "verifier": "narration_source_consistency",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "divergent_slides": 0,
            "narration_source_requested": null
          },
          "errors": 0,
          "warnings": 0
        }
      ],
      "skipped": {},
      "crashed": {},
      "missing_required": []
    },
    {
      "generated_at": "2026-09-22T08:30:17.878347+00:00",
      "stage": "post_render",
      "passed": false,
      "errors": 31,
      "warnings": 0,
      "verdicts": [
        {
          "verifier": "cover_offset",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "cue_mismatches": 0,
            "cues": 46,
            "timeline_entries": 46,
            "vtt_has_cover": true,
            "recorded_page": "slides.html",
            "html_has_cover": true
          },
          "errors": 0,
          "warnings": 0
        },
        {
          "verifier": "fragment_narration_alignment",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": false,
          "findings": [
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_00_cover.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 0
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_01.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_02.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_03.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_04.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_01_turn_05.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_01.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_02.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_03.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "audio/slide_02_turn_04.wav is in the fragment_timeline but not on disk — that beat is silent.",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "... and 36 more like this (full count in evidence)",
              "slide_num": null
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 1: 7 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 1
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 2: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 2
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 3: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 3
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 4: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 4
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 5: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 5
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 6: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 6
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 7: 3 narration turn(s) but 4 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 7
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 9: 6 narration turn(s) but 5 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 9
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 10: 5 narration turn(s) but 3 beat(s) in the timeline. A beat short of its turns is the §1.2 bug class — the surplus turns never sound (or sound stacked on the last beat).",
              "slide_num": 10
            }
          ],
          "evidence": {
            "missing_audio": 46,
            "narration_source": "manifest",
            "slide_count_mismatches": 9,
            "missing_fragments": 0
          },
          "errors": 20,
          "warnings": 0
        },
        {
          "verifier": "bundle_integrity",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": false,
          "findings": [
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_00_cover.wav, which does not exist in the bundle.",
              "slide_num": 0
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_01.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_02.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_03.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_04.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_01_turn_05.wav, which does not exist in the bundle.",
              "slide_num": 1
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_01.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_02.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_03.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "manifest references audio/slide_02_turn_04.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "... and 36 more like this (full count in evidence)",
              "slide_num": null
            }
          ],
          "evidence": {
            "missing_assets": 46,
            "asset_refs_checked": 46,
            "duration_mismatches": 0,
            "recorded_page": "slides.html",
            "timeline_total_sec": 407.738,
            "declared_audio_sec": 407.737625
          },
          "errors": 11,
          "warnings": 0
        },
        {
          "verifier": "narration_source_consistency",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "divergent_slides": 0,
            "narration_source_requested": null
          },
          "errors": 0,
          "warnings": 0
        }
      ],
      "skipped": {},
      "crashed": {},
      "missing_required": []
    }
  ]
}