{
  "schema_version": "1",
  "runs": [
    {
      "generated_at": "2026-09-22T06:41:55.415629+00:00",
      "stage": "post_render",
      "passed": false,
      "errors": 30,
      "warnings": 0,
      "verdicts": [
        {
          "verifier": "cover_offset",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "cue_mismatches": 0,
            "cues": 63,
            "timeline_entries": 63,
            "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 53 more like this (full count in evidence)",
              "slide_num": null
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 2: 8 narration turn(s) but 6 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: 7 narration turn(s) but 6 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: 7 narration turn(s) but 6 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: 7 narration turn(s) but 6 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: 7 narration turn(s) but 6 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 8: 7 narration turn(s) but 6 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": 8
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 10: 7 narration turn(s) but 6 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
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 11: 6 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": 11
            }
          ],
          "evidence": {
            "missing_audio": 63,
            "narration_source": "manifest",
            "slide_count_mismatches": 8,
            "missing_fragments": 0
          },
          "errors": 19,
          "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 53 more like this (full count in evidence)",
              "slide_num": null
            }
          ],
          "evidence": {
            "missing_assets": 63,
            "asset_refs_checked": 63,
            "duration_mismatches": 0,
            "recorded_page": "slides.html",
            "timeline_total_sec": 830.346,
            "declared_audio_sec": 830.3459687500001
          },
          "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:44:12.907006+00:00",
      "stage": "post_render",
      "passed": false,
      "errors": 30,
      "warnings": 0,
      "verdicts": [
        {
          "verifier": "cover_offset",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "cue_mismatches": 0,
            "cues": 63,
            "timeline_entries": 63,
            "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 53 more like this (full count in evidence)",
              "slide_num": null
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 2: 8 narration turn(s) but 6 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: 7 narration turn(s) but 6 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: 7 narration turn(s) but 6 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: 7 narration turn(s) but 6 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: 7 narration turn(s) but 6 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 8: 7 narration turn(s) but 6 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": 8
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 10: 7 narration turn(s) but 6 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
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 11: 6 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": 11
            }
          ],
          "evidence": {
            "missing_audio": 63,
            "narration_source": "manifest",
            "slide_count_mismatches": 8,
            "missing_fragments": 0
          },
          "errors": 19,
          "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 53 more like this (full count in evidence)",
              "slide_num": null
            }
          ],
          "evidence": {
            "missing_assets": 63,
            "asset_refs_checked": 63,
            "duration_mismatches": 0,
            "recorded_page": "slides.html",
            "timeline_total_sec": 830.346,
            "declared_audio_sec": 830.3459687500001
          },
          "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": []
    }
  ]
}