{
  "schema_version": "1",
  "runs": [
    {
      "generated_at": "2026-09-23T01:13:55.990795+00:00",
      "stage": "post_render",
      "passed": false,
      "errors": 29,
      "warnings": 0,
      "verdicts": [
        {
          "verifier": "cover_offset",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "cue_mismatches": 0,
            "cues": 52,
            "timeline_entries": 52,
            "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_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": "audio/slide_02_turn_05.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 42 more like this (full count in evidence)",
              "slide_num": null
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 2: 4 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: 4 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 5: 4 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: 4 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": 6
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 7: 4 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": 7
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 8: 4 narration turn(s) but 7 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 9: 4 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
            }
          ],
          "evidence": {
            "missing_audio": 52,
            "narration_source": "manifest",
            "slide_count_mismatches": 7,
            "missing_fragments": 0
          },
          "errors": 18,
          "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_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": "manifest references audio/slide_02_turn_05.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "... and 42 more like this (full count in evidence)",
              "slide_num": null
            }
          ],
          "evidence": {
            "missing_assets": 52,
            "asset_refs_checked": 52,
            "duration_mismatches": 0,
            "recorded_page": "slides.html",
            "timeline_total_sec": 655.956,
            "declared_audio_sec": 655.9555625
          },
          "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-23T01:14:05.705234+00:00",
      "stage": "post_render",
      "passed": false,
      "errors": 29,
      "warnings": 0,
      "verdicts": [
        {
          "verifier": "cover_offset",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "cue_mismatches": 0,
            "cues": 52,
            "timeline_entries": 52,
            "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_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": "audio/slide_02_turn_05.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 42 more like this (full count in evidence)",
              "slide_num": null
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 2: 4 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: 4 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 5: 4 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: 4 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": 6
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 7: 4 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": 7
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 8: 4 narration turn(s) but 7 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 9: 4 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
            }
          ],
          "evidence": {
            "missing_audio": 52,
            "narration_source": "manifest",
            "slide_count_mismatches": 7,
            "missing_fragments": 0
          },
          "errors": 18,
          "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_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": "manifest references audio/slide_02_turn_05.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "... and 42 more like this (full count in evidence)",
              "slide_num": null
            }
          ],
          "evidence": {
            "missing_assets": 52,
            "asset_refs_checked": 52,
            "duration_mismatches": 0,
            "recorded_page": "slides.html",
            "timeline_total_sec": 655.956,
            "declared_audio_sec": 655.9555625
          },
          "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-23T01:16:13.626633+00:00",
      "stage": "post_render",
      "passed": false,
      "errors": 29,
      "warnings": 0,
      "verdicts": [
        {
          "verifier": "cover_offset",
          "verifier_version": "1.0",
          "stage": "post_render",
          "passed": true,
          "findings": [],
          "evidence": {
            "cue_mismatches": 0,
            "cues": 52,
            "timeline_entries": 52,
            "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_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": "audio/slide_02_turn_05.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 42 more like this (full count in evidence)",
              "slide_num": null
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 2: 4 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: 4 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 5: 4 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: 4 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": 6
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 7: 4 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": 7
            },
            {
              "check": "fragment_narration_alignment",
              "severity": "error",
              "message": "slide 8: 4 narration turn(s) but 7 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 9: 4 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
            }
          ],
          "evidence": {
            "missing_audio": 52,
            "narration_source": "manifest",
            "slide_count_mismatches": 7,
            "missing_fragments": 0
          },
          "errors": 18,
          "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_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": "manifest references audio/slide_02_turn_05.wav, which does not exist in the bundle.",
              "slide_num": 2
            },
            {
              "check": "bundle_integrity",
              "severity": "error",
              "message": "... and 42 more like this (full count in evidence)",
              "slide_num": null
            }
          ],
          "evidence": {
            "missing_assets": 52,
            "asset_refs_checked": 52,
            "duration_mismatches": 0,
            "recorded_page": "slides.html",
            "timeline_total_sec": 655.956,
            "declared_audio_sec": 655.9555625
          },
          "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": []
    }
  ]
}