{
  "schema": "NEXT11_V87_STAGE2_PHASE3_REAL_MEDIAPIPE_SOURCE_FRAME_HARVEST_V1",
  "generatedAt": "2026-06-28T17:30:00Z",
  "base": "NEXT11_V86_STAGE2_PHASE3_POSE_REPAIR_CONTRACTS",
  "policy": {
    "noKeyframeReuse": true,
    "noNearExerciseSubstitution": true,
    "candidateFramesDoNotAutoApproveNex": true,
    "mediaPipeDependency": "mediapipe python package is not installed in this sandbox; frames are source-ready and packaged; actual landmark extraction must be rerun where mediapipe is available."
  },
  "summary": {
    "candidateFrameCount": 14,
    "candidateExerciseCount": 7,
    "newlyCoveredSourceGapExercises": [
      "ascending_skater_jumps",
      "back_pedal_to_sprint",
      "decel_step_down",
      "goblet_sumo_squat",
      "hyperextension",
      "rebound_side_toss",
      "suitcase_carry"
    ],
    "unresolvedSourceGapExercises": [
      "single_leg_lateral_pogos",
      "figure_8_run",
      "tempo_sprints_shuttle_run_turn_at_25_yards"
    ],
    "duplicateImageHashes": 0,
    "strictRealFrameCoverage": "7/10 source-gap exercises have at least one packaged real source frame; 3/10 remain unresolved without substitute.",
    "pass": true
  },
  "sourceFrameCandidates": [
    {
      "exerciseKey": "goblet_sumo_squat",
      "phaseId": "start_wide_goblet",
      "assetPath": "tools/keypose_image_sampler/external_pose_images_stage2_phase3_v87_real_source_frames/goblet_sumo_squat/01_start_wide_goblet_source.jpg",
      "width": 256,
      "height": 512,
      "sha256": "502c2d020acf9465a328839a376739a7829afd3a15d4d37537c85ecd5a78daf7",
      "sourceUrl": "WEB_IMAGE_QUERY_STAGED:web_image_9bb278086599.png",
      "sourcePage": "https://sweat.com/exercises/goblet-sumo-squat",
      "sourceType": "real_web_source_frame",
      "status": 0.74,
      "mediaPipeReadinessScore": 0.0,
      "notes": "wide stance, kettlebell/dumbbell goblet held at chest; staged web image lacks direct source URL in sandbox but matches exercise identity; kept as provisional provenance"
    },
    {
      "exerciseKey": "goblet_sumo_squat",
      "phaseId": "bottom_parallel_wide_goblet",
      "assetPath": "tools/keypose_image_sampler/external_pose_images_stage2_phase3_v87_real_source_frames/goblet_sumo_squat/02_bottom_wide_goblet_source.jpg",
      "width": 256,
      "height": 512,
      "sha256": "968db47db25e222f7fabdde827390d824d2d3246db2b45d5dd6beca05d9f7690",
      "sourceUrl": "WEB_IMAGE_QUERY_STAGED:web_image_9bb278086599.png",
      "sourcePage": "https://sweat.com/exercises/goblet-sumo-squat",
      "sourceType": "real_web_source_frame",
      "status": 0.78,
      "mediaPipeReadinessScore": 0.0,
      "notes": "bottom position; knees track toes; provisional direct-source provenance"
    },
    {
      "exerciseKey": "back_pedal_to_sprint",
      "phaseId": "transition_to_forward_sprint",
      "assetPath": "tools/keypose_image_sampler/external_pose_images_stage2_phase3_v87_real_source_frames/back_pedal_to_sprint/01_transition_backpedal_shuffle_sprint_source.png",
      "width": 512,
      "height": 512,
      "sha256": "af2a3f8e4956c631b968ec2b82c83fee62008c0d871280260f32371bd9ce1223",
      "sourceUrl": "WEB_IMAGE_QUERY_STAGED:web_image_97e31e6f2aae.png",
      "sourcePage": "https://www.youtube.com/watch?v=M54kyn9XKXM",
      "sourceType": "real_web_source_frame",
      "status": 0.7,
      "mediaPipeReadinessScore": 0.0,
      "notes": "athlete in transition acceleration; exact direct source URL unavailable from staged image; YouTube exact exercise source found separately"
    },
    {
      "exerciseKey": "ascending_skater_jumps",
      "phaseId": "lateral_land_balance",
      "assetPath": "tools/keypose_image_sampler/external_pose_images_stage2_phase3_v87_real_source_frames/ascending_skater_jumps/01_lateral_single_leg_land_source.jpg",
      "width": 570,
      "height": 615,
      "sha256": "1ebfc2df6d41192d8d471e8126820ffd915383450e4c969b0c76943bcf6ad564",
      "sourceUrl": "https://blog.overtimeathletes.com/wp-content/uploads/2022/07/ASCENDING.jpeg",
      "sourcePage": "https://blog.overtimeathletes.com/do-ascending-skater-jumps-for-quick-feet-agility/",
      "sourceType": "real_web_source_frame",
      "status": 0.8,
      "mediaPipeReadinessScore": 0.0,
      "notes": "exact OTA article image for ascending skater jumps; cropped to athlete to improve pose read"
    },
    {
      "exerciseKey": "ascending_skater_jumps",
      "phaseId": "original_full_source",
      "assetPath": "tools/keypose_image_sampler/external_pose_images_stage2_phase3_v87_real_source_frames/ascending_skater_jumps/00_original_ota_ascending_full.jpg",
      "width": 1440,
      "height": 691,
      "sha256": "9cd1b8ec50325254fe902f6292a84ea494f2778ddea33ac2ec5e190f7744b5c4",
      "sourceUrl": "https://blog.overtimeathletes.com/wp-content/uploads/2022/07/ASCENDING.jpeg",
      "sourcePage": "https://blog.overtimeathletes.com/do-ascending-skater-jumps-for-quick-feet-agility/",
      "sourceType": "real_web_source_frame",
      "status": 0.62,
      "mediaPipeReadinessScore": 0.0,
      "notes": "original source retained for provenance; athlete small in full frame"
    },
    {
      "exerciseKey": "decel_step_down",
      "phaseId": "setup_step_down",
      "assetPath": "tools/keypose_image_sampler/external_pose_images_stage2_phase3_v87_real_source_frames/decel_step_down/00_setup_step_down_ota_gif_frame.jpg",
      "width": 520,
      "height": 293,
      "sha256": "e3353dcca3043208630a809e47dea4fa33cc1709e2dc2c1b5223a7bd3396d73f",
      "sourceUrl": "https://blog.overtimeathletes.com/wp-content/uploads/2023/12/5_Single_Leg_Exercises_All_Athletes_Should_Be_Doing-2.gif",
      "sourcePage": "https://blog.overtimeathletes.com/essential-single-leg-exercises-for-athletes/",
      "sourceType": "real_web_source_frame",
      "status": 0.72,
      "mediaPipeReadinessScore": 0.0,
      "notes": "exact OTA lower-body-correctives GIF; frames extracted without reuse"
    },
    {
      "exerciseKey": "decel_step_down",
      "phaseId": "controlled_descent",
      "assetPath": "tools/keypose_image_sampler/external_pose_images_stage2_phase3_v87_real_source_frames/decel_step_down/10_controlled_descent_ota_gif_frame.jpg",
      "width": 520,
      "height": 293,
      "sha256": "37ee21e107cb682bbb8e0e3793e1397713ec997cf2a86ab50c3409631628e3e6",
      "sourceUrl": "https://blog.overtimeathletes.com/wp-content/uploads/2023/12/5_Single_Leg_Exercises_All_Athletes_Should_Be_Doing-2.gif",
      "sourcePage": "https://blog.overtimeathletes.com/essential-single-leg-exercises-for-athletes/",
      "sourceType": "real_web_source_frame",
      "status": 0.72,
      "mediaPipeReadinessScore": 0.0,
      "notes": "exact OTA lower-body-correctives GIF; frames extracted without reuse"
    },
    {
      "exerciseKey": "decel_step_down",
      "phaseId": "box_loaded_bottom",
      "assetPath": "tools/keypose_image_sampler/external_pose_images_stage2_phase3_v87_real_source_frames/decel_step_down/20_box_loaded_bottom_ota_gif_frame.jpg",
      "width": 520,
      "height": 293,
      "sha256": "8288f8db192e22567a2639af96fb6e442533f5bcfce4060bd8955a761212d886",
      "sourceUrl": "https://blog.overtimeathletes.com/wp-content/uploads/2023/12/5_Single_Leg_Exercises_All_Athletes_Should_Be_Doing-2.gif",
      "sourcePage": "https://blog.overtimeathletes.com/essential-single-leg-exercises-for-athletes/",
      "sourceType": "real_web_source_frame",
      "status": 0.68,
      "mediaPipeReadinessScore": 0.0,
      "notes": "exact OTA lower-body-correctives GIF; frames extracted without reuse"
    },
    {
      "exerciseKey": "suitcase_carry",
      "phaseId": "pickup_setup",
      "assetPath": "tools/keypose_image_sampler/external_pose_images_stage2_phase3_v87_real_source_frames/suitcase_carry/01_pickup_setup_suitcase_hold_source.jpg",
      "width": 512,
      "height": 463,
      "sha256": "8945fcbd941d22a341b96901882ead87c8a5f41b964d549908f6771ce557ddc8",
      "sourceUrl": "https://bretcontreras.com/wp-content/uploads/Suitcase-Hold-1-2-1024x463.png",
      "sourcePage": "https://bretcontreras.com/core-stability-training-for-the-advanced-lifter/",
      "sourceType": "real_web_source_frame",
      "status": 0.76,
      "mediaPipeReadinessScore": 0.0,
      "notes": "suitcase hold/carry setup: one-hand load at side; full body visible enough except minor foot blur"
    },
    {
      "exerciseKey": "suitcase_carry",
      "phaseId": "loaded_tall_hold",
      "assetPath": "tools/keypose_image_sampler/external_pose_images_stage2_phase3_v87_real_source_frames/suitcase_carry/02_standing_loaded_suitcase_hold_source.jpg",
      "width": 512,
      "height": 463,
      "sha256": "7c97c25053dfaf4b3432b62b56ae7d8c4af5a6c5615a3ff566bf5321b0c4f563",
      "sourceUrl": "https://bretcontreras.com/wp-content/uploads/Suitcase-Hold-1-2-1024x463.png",
      "sourcePage": "https://bretcontreras.com/core-stability-training-for-the-advanced-lifter/",
      "sourceType": "real_web_source_frame",
      "status": 0.82,
      "mediaPipeReadinessScore": 0.0,
      "notes": "loaded upright suitcase hold; good proxy for carry posture; direct source"
    },
    {
      "exerciseKey": "hyperextension",
      "phaseId": "extended_top_or_start",
      "assetPath": "tools/keypose_image_sampler/external_pose_images_stage2_phase3_v87_real_source_frames/hyperextension/01_back_hyperextension_panel_source.jpg",
      "width": 410,
      "height": 415,
      "sha256": "eb31954a8ae33c86f6ceea6dbc1a075cd6b22f1eaefc23f32205c13e958a74cd",
      "sourceUrl": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/4c252cbd-91e9-4f34-b019-09fb1efc1448.jpg%3BmaxHeight%3D1920%3BmaxWidth%3D900?format=webp",
      "sourcePage": "https://www.bestbuy.com/product/vevor-multi-functional-weight-bench-for-full-body-workout-roman-chair-hyperextension-bench-330-lbs-adjustable-black-red/JJGHK535YT",
      "sourceType": "real_web_source_frame",
      "status": 0.74,
      "mediaPipeReadinessScore": 0.0,
      "notes": "back hyperextension panel from product exercise guide; direct source, full body/equipment visible"
    },
    {
      "exerciseKey": "hyperextension",
      "phaseId": "original_composite",
      "assetPath": "tools/keypose_image_sampler/external_pose_images_stage2_phase3_v87_real_source_frames/hyperextension/00_original_bestbuy_workout_composite.webp",
      "width": 900,
      "height": 1125,
      "sha256": "4c912f5d90cb0bfb65936b5753c24a87713dfe838d44390b76ac60613798a3ae",
      "sourceUrl": "https://pisces.bbystatic.com/image2/BestBuy_US/images/products/4c252cbd-91e9-4f34-b019-09fb1efc1448.jpg%3BmaxHeight%3D1920%3BmaxWidth%3D900?format=webp",
      "sourcePage": "https://www.bestbuy.com/product/vevor-multi-functional-weight-bench-for-full-body-workout-roman-chair-hyperextension-bench-330-lbs-adjustable-black-red/JJGHK535YT",
      "sourceType": "real_web_source_frame",
      "status": 0.45,
      "mediaPipeReadinessScore": 0.0,
      "notes": "original composite retained; first panel is hyperextension, other panels ignored by validation"
    },
    {
      "exerciseKey": "rebound_side_toss",
      "phaseId": "rebound_catch_or_throw",
      "assetPath": "tools/keypose_image_sampler/external_pose_images_stage2_phase3_v87_real_source_frames/rebound_side_toss/01_rebound_wall_ball_catch_source.webp",
      "width": 900,
      "height": 630,
      "sha256": "5419a9da3827850d11909523123cdfd03fdd1b9fe8ae3ac1f8ebe4cedc4e8c43",
      "sourceUrl": "https://cdn.prod.website-files.com/65660932289f26d42f1811c4/658274799d9a275821da024c_Homepage%20at%20Empowers%20Performance.webp",
      "sourcePage": "https://www.empowersperformance.com/",
      "sourceType": "real_web_source_frame",
      "status": 0.69,
      "mediaPipeReadinessScore": 0.0,
      "notes": "athlete in wall-ball rebound/catch position; good upper/body action, lower legs partially cropped in crop, original retained for context"
    },
    {
      "exerciseKey": "rebound_side_toss",
      "phaseId": "original_full_source",
      "assetPath": "tools/keypose_image_sampler/external_pose_images_stage2_phase3_v87_real_source_frames/rebound_side_toss/00_original_empowers_wall_ball_full.webp",
      "width": 1440,
      "height": 720,
      "sha256": "1e1c0107e94e1d845326079aab3bff95488fdc6dc46bbfd2863a80c18d7f1e29",
      "sourceUrl": "https://cdn.prod.website-files.com/65660932289f26d42f1811c4/658274799d9a275821da024c_Homepage%20at%20Empowers%20Performance.webp",
      "sourcePage": "https://www.empowersperformance.com/",
      "sourceType": "real_web_source_frame",
      "status": 0.6,
      "mediaPipeReadinessScore": 0.0,
      "notes": "full hero source retained; not exact title but real rebound wall-ball frame"
    }
  ],
  "unresolvedSourceGaps": [
    {
      "exerciseKey": "single_leg_lateral_pogos",
      "status": "SOURCE_TEXT_FOUND_NO_MEDIAPIPE_FRAME",
      "notes": "Physiohealth text/video page found but no downloadable human full-body frame acquired; no regular lateral-pogo substitute used",
      "bestSourcePage": "https://physiohealth.com.au/exercises/single-leg-lateral-pogo-jumps/"
    },
    {
      "exerciseKey": "figure_8_run",
      "status": "DRILL_DIAGRAM_ONLY_NO_HUMAN_FRAME",
      "notes": "Only drill diagrams/PDFs acquired; not MediaPipe-human source authority",
      "bestSourcePage": "https://www.totalsoccerft.com/group_drills/SAQ_figure8.pdf"
    },
    {
      "exerciseKey": "tempo_sprints_shuttle_run_turn_at_25_yards",
      "status": "VIDEO_OR_TEXT_ONLY_NO_EXACT_FRAME",
      "notes": "Shuttle/25-yard source found, but no exact downloadable human turn-at-25-yard frame; generic sprint still rejected",
      "bestSourcePage": "https://www.youtube.com/watch?v=5aj6ubjctbo"
    }
  ],
  "duplicateImageHashes": []
}