{
  "schema_name": "dave_arcade_episode_metrics",
  "schema_version": "2026-05-02",
  "public_safety_note": "This public seed does not expose stream keys, account secrets, private URLs, cookies, raw visitor data, or unapproved Unlisted video links.",
  "generated_from_workorder": "internal-receipt-redacted",
  "entries": [
    {
      "episode_id": "dal-shutdown-recap-20260503-local-rehearsal",
      "session_date": "2026-05-03",
      "visibility": "local_rehearsal_public_summary",
      "video_id": null,
      "youtube_url": null,
      "website_note_url": "/dave-arcade-lab/",
      "game": "Tetris",
      "platform": "GB",
      "run_type": "shutdown_and_recap_rehearsal",
      "hypothesis": "Dave can close the local arcade stream lane cleanly and produce a public-safe recap without claiming provider-side YouTube activity.",
      "duration_seconds": null,
      "gameplay_truth": {
        "load_success": true,
        "real_game_loaded": true,
        "frame_buffer_available": true,
        "libretro_frames_advanced": 1693,
        "inputs_total": 23,
        "input_failure_count": 0,
        "unique_frame_hashes": 10,
        "objective_signal_score": 100.0,
        "black_static_risk": false,
        "opener_profile": "tetris_opening_v1",
        "recovery_success": null
      },
      "learning_progress": {
        "mastery_state": "shutdown_loop_verified",
        "time_to_control_seconds": null,
        "first_meaningful_action_seconds": null,
        "survival_time_seconds": null,
        "progress_marker": "local autoplay stopped, listener closed, and website recap staged from proof",
        "score_value": null,
        "score_delta_from_baseline": null,
        "death_count": null,
        "reset_count": 0,
        "stuck_seconds": null,
        "recovery_count": 0,
        "objective_completion_count": 1,
        "human_review_grade": null
      },
      "stream_health": {
        "encoder_duration_seconds": null,
        "frames_sent": null,
        "fetch_failures": null,
        "fetch_failure_rate": null,
        "fps_target": null,
        "fps_observed": null,
        "resolution": null,
        "audio_mode": "not_applicable_local_shutdown_rehearsal",
        "audio_verified": false,
        "studio_health": "not_checked_provider_not_touched",
        "privacy_verified": false,
        "metadata_verified": false,
        "chat_mode": "disabled"
      },
      "shutdown": {
        "initial_state": "local_listener_already_down",
        "controlled_start_pid": 46948,
        "pre_shutdown_quality_readiness": "healthy_play",
        "pre_shutdown_quality_score": 100,
        "stop_autoplay_api_success": true,
        "post_stop_control_mode": "manual",
        "stopped_listener_pid": 46948,
        "post_shutdown_listener_count": 0,
        "post_shutdown_health_state": "connection_refused_expected_down"
      },
      "youtube_analytics": {
        "concurrent_viewers": null,
        "peak_concurrent_viewers": null,
        "average_concurrent_viewers": null,
        "views": null,
        "likes": null,
        "chat_messages": 0,
        "chat_rate": 0,
        "average_view_duration_seconds": null,
        "watch_time_hours": null,
        "new_subscribers": null,
        "impressions": null,
        "impressions_ctr": null,
        "views_from_impressions": null,
        "watch_time_from_impressions_hours": null,
        "retention_notes": "No provider-side YouTube stream was active or stopped during this local shutdown rehearsal."
      },
      "website_followthrough": {
        "utm_url": "/dave-arcade-lab/?utm_source=youtube&utm_medium=channel&utm_campaign=dave_arcade_lab",
        "youtube_referrer_candidates": null,
        "utm_sessions": null,
        "episode_page_views": null,
        "progress_ledger_views": null,
        "support_or_beta_clicks": null,
        "route_errors_after_release": null
      },
      "research_note": {
        "note_completed": true,
        "note_latency_hours": null,
        "claim_count": 5,
        "claims_with_evidence_count": 5,
        "limitations_count": 3,
        "next_step_exists": true,
        "review_complete": true
      },
      "fun": {
        "best_recovery": "The workflow noticed the stream was already down, then ran a controlled start-stop rehearsal instead of pretending there was a provider live to end.",
        "most_stubborn_menu": null,
        "first_breakthrough": "The local lane shut down cleanly after a healthy Tetris sample.",
        "new_high_score": null,
        "funny_failure_label": "already-down live"
      },
      "evidence": {
        "pre_shutdown_state_path": "C:/Projects/Dave/Outputs/internal-receipt-redacted/wo23256_warmed_live_state_before_shutdown_20260503.json",
        "shutdown_proof_path": "C:/Projects/Dave/Outputs/internal-receipt-redacted/wo23256_live_shutdown_proof_20260503.json",
        "direct_load_repair_receipt_path": "C:/Projects/Dave/Outputs/internal-receipt-redacted/wo23255_arcade_direct_load_crash_repair_receipt_20260503.md",
        "claim_status": "behavior_verified_local_only"
      }
    },
    {
      "episode_id": "dal-rehearsal-20260502-polished-unlisted",
      "session_date": "2026-05-02",
      "visibility": "unlisted_rehearsal_no_public_url",
      "video_id": null,
      "youtube_url": null,
      "website_note_url": "/dave-arcade-lab/",
      "game": "Final Fantasy VI Advance",
      "platform": "GBA",
      "run_type": "polished_rehearsal",
      "hypothesis": "Dave can sustain a polished Unlisted YouTube rehearsal from the local arcade room without OBS as the core path.",
      "duration_seconds": 120.118,
      "gameplay_truth": {
        "load_success": true,
        "real_game_loaded": true,
        "frame_buffer_available": true,
        "libretro_frames_advanced": null,
        "inputs_total": null,
        "input_failure_count": 0,
        "unique_frame_hashes": null,
        "objective_signal_score": 100.0,
        "black_static_risk": false,
        "opener_profile": "ff6a_story_opening_v1",
        "recovery_success": null
      },
      "learning_progress": {
        "mastery_state": "first_load_verified",
        "time_to_control_seconds": null,
        "first_meaningful_action_seconds": null,
        "survival_time_seconds": null,
        "progress_marker": "visible game frame in polished rehearsal",
        "score_value": null,
        "score_delta_from_baseline": null,
        "death_count": null,
        "reset_count": 1,
        "stuck_seconds": null,
        "recovery_count": 1,
        "objective_completion_count": 1,
        "human_review_grade": null
      },
      "stream_health": {
        "encoder_duration_seconds": 120.118,
        "frames_sent": 2356,
        "fetch_failures": 0,
        "fetch_failure_rate": 0.0,
        "fps_target": 20,
        "fps_observed": 19.61,
        "resolution": "1280x720",
        "audio_mode": "silent_aac",
        "audio_verified": false,
        "studio_health": "excellent",
        "privacy_verified": true,
        "metadata_verified": true,
        "chat_mode": "disabled"
      },
      "youtube_analytics": {
        "concurrent_viewers": 0,
        "peak_concurrent_viewers": 0,
        "average_concurrent_viewers": 0,
        "views": 0,
        "likes": null,
        "chat_messages": 0,
        "chat_rate": 0,
        "average_view_duration_seconds": null,
        "watch_time_hours": null,
        "new_subscribers": null,
        "impressions": null,
        "impressions_ctr": null,
        "views_from_impressions": null,
        "watch_time_from_impressions_hours": null,
        "retention_notes": "Unlisted rehearsal metrics are not audience proof."
      },
      "website_followthrough": {
        "utm_url": "/dave-arcade-lab/?utm_source=youtube&utm_medium=channel&utm_campaign=dave_arcade_lab",
        "youtube_referrer_candidates": null,
        "utm_sessions": null,
        "episode_page_views": null,
        "progress_ledger_views": null,
        "support_or_beta_clicks": null,
        "route_errors_after_release": null
      },
      "research_note": {
        "note_completed": true,
        "note_latency_hours": null,
        "claim_count": 6,
        "claims_with_evidence_count": 6,
        "limitations_count": 3,
        "next_step_exists": true,
        "review_complete": true
      },
      "fun": {
        "best_recovery": "Recovered from a failed first encoder attempt by restarting the local arcade room and rerunning the live encoder successfully.",
        "most_stubborn_menu": null,
        "first_breakthrough": "Studio showed Excellent health with polished metadata and a visible game frame.",
        "new_high_score": null,
        "funny_failure_label": "silent-audio rehearsal"
      },
      "evidence": {
        "scorecard_path": "C:/Projects/Dave/Outputs/internal-receipt-redacted/proof/scorecard_objective_20260502/dave_arcade_quality_scorecard.json",
        "stream_receipt_path": "C:/Projects/Dave/Outputs/internal-receipt-redacted/proof/youtube_polished_unlisted_rehearsal_20260502/wo23220_youtube_polished_unlisted_rehearsal_receipt_20260502.md",
        "studio_receipt_path": "C:/Projects/Dave/Outputs/internal-receipt-redacted/proof/youtube_polished_unlisted_rehearsal_20260502/wo23220_youtube_polished_unlisted_rehearsal_receipt_20260502.md",
        "website_receipt_path": "C:/Projects/Dave/Outputs/internal-receipt-redacted/wo23221_dave_arcade_lab_website_hub_receipt_20260502.md",
        "claim_status": "behavior_verified"
      }
    },
    {
      "episode_id": "dal-baseline-20260502-five-rom-tray",
      "session_date": "2026-05-02",
      "visibility": "local_proof_public_summary",
      "video_id": null,
      "youtube_url": null,
      "website_note_url": "/dave-arcade-lab/",
      "game": "Five-ROM tray",
      "platform": "NES/GBC/GBA",
      "run_type": "quality_baseline",
      "hypothesis": "A small stable tray is easier to measure honestly than a full unsorted ROM corpus.",
      "duration_seconds": null,
      "games": [
        "Contra",
        "Kirby's Adventure",
        "Tetris",
        "Super Mario Bros. Deluxe",
        "Final Fantasy VI Advance"
      ],
      "quality_score_average": 100.0,
      "objective_signal_score_average": 100.0,
      "flags": [],
      "limitations": [
        "Healthy play is not mastery.",
        "Per-game score, death, route, and story detectors still need to be added.",
        "Super Mario Bros. Deluxe short-sample motion was not claimed as character movement."
      ],
      "next_step": "Add per-game progress detectors and seed public episode notes.",
      "evidence": {
        "scorecard_path": "C:/Projects/Dave/Outputs/internal-receipt-redacted/proof/scorecard_objective_20260502/dave_arcade_quality_scorecard.json",
        "stream_receipt_path": "C:/Projects/Dave/Outputs/internal-receipt-redacted/wo23220_dave_arcade_stream_revival_receipt.md",
        "claim_status": "behavior_verified"
      }
    }
  ]
}
