{
  "status": "completed",
  "applicable_count": 4,
  "completed_count": 4,
  "failed_count": 0,
  "schema_version": 1,
  "config_hash": "78e79f6fbb05a6af",
  "data": {
    "schema_version": 1,
    "groups": [
      {
        "group_id": "vca-s5-zoom-1",
        "anchor_type": "zoom_continuity",
        "members": [
          {
            "scene_index": 5,
            "shot_index": 9,
            "role": "source_wide"
          },
          {
            "scene_index": 5,
            "shot_index": 10,
            "role": "zoom"
          }
        ],
        "locked_elements": [
          {
            "confidence": "high",
            "description": "강민숙 has a small, clearly defined circular mark visible on her wrist.",
            "evidence_quote": "힐끗, 민숙 손목에 보이는 작은 원(이하 표식)을 본다. 오늘따라 유난히 또렷해 보이지만",
            "kind": "surface_state"
          },
          {
            "confidence": "high",
            "description": "강민숙’s wrist is relaxed near her torso.",
            "evidence_quote": "wrist relaxed near torso",
            "kind": "subject_pose"
          },
          {
            "confidence": "high",
            "description": "The marked wrist runs on a slight diagonal, with part of the hand and sleeve visible around it.",
            "evidence_quote": "The wrist crosses the center on a slight diagonal, with only a restrained portion of her hand and sleeve retained as anatomical context.",
            "kind": "subject_pose"
          }
        ],
        "wide_shot_contract": [
          "강민숙’s wrist must be visibly included in the lower portion of the wide frame, connected continuously to the shoulder and arm at the right foreground edge.",
          "The visible wrist must carry the same small, clearly defined circular mark featured in the insert.",
          "The wrist must remain relaxed near 강민숙’s torso and be presented from a compatible side so that a tighter crop can retain the diagonal wrist, part of the hand, and part of the sleeve."
        ],
        "camera_relation": "same_axis_punch_in",
        "camera_relation_evidence": "WIDE: \"강민숙's shoulder and upper arm form the right foreground edge, leaving the lower frame open for the coming descent toward her wrist.\" ZOOM: \"At wrist height, the camera completes its descent along 강민숙's arm and holds static on an isolated detail of the clearly defined circular mark.\"",
        "per_shot_consumption_hints": {
          "5:9": {
            "include_in_wide": true
          },
          "5:10": {
            "crop_from_source": true
          }
        },
        "revised_wide_t2i": {
          "0": "Photorealistic cinematic still. C06O05 in a grey cardigan, an Asian middle-aged woman, is positioned in the middle-right foreground, while C08O07 in a casual jacket, an Asian young woman, stands in the middle-left midground. Captured at shoulder height in a close side composition, C08O07 is seen in right profile with eyes closed and a soft smile, her nose resting near the older woman's relaxed shoulder. C06O05, facing at three-quarter angle from the left, has her shoulder and upper arm prominently framing the right edge, her eyes tenderly fixed on C08O07. The lower frame remains open below their shoulders while visibly including C06O05’s arm continuing naturally down from her right-foreground shoulder to her wrist, relaxed near her torso. Her marked wrist runs on a slight diagonal across the lower portion of the frame from a compatible side angle, with a restrained part of her hand and grey cardigan sleeve visible, and a small, clearly defined circular mark plainly visible on the wrist. Thin rays of sunlight cast a restrained warmth on their faces, contrasting with [: a soft, out-of-focus frame-edge wall near the entrance, dimly lit with muted and desaturated tones]."
        },
        "revised_wide_prompt_provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "d40da09f7a62dff1",
            "revised_prompt_hash": "b3eac6270e272b37"
          }
        }
      },
      {
        "group_id": "vca-s12-zoom-2",
        "anchor_type": "zoom_continuity",
        "members": [
          {
            "scene_index": 12,
            "shot_index": 8,
            "role": "source_wide"
          },
          {
            "scene_index": 12,
            "shot_index": 15,
            "role": "zoom"
          }
        ],
        "locked_elements": [
          {
            "confidence": "high",
            "description": "강민숙 remains dead and motionless, with the detailed hand rigid and clenched.",
            "evidence_quote": "“죽은 강민숙의 굳어버린 손안에 구겨진 종이 사진이 쥐어져 있는 클로즈업”",
            "kind": "subject_pose"
          },
          {
            "confidence": "high",
            "description": "A single crumpled paper photograph remains gripped inside 강민숙’s closed hand.",
            "evidence_quote": "“엄마 손안에 구겨진 사진 한 장이 보인다.”",
            "kind": "held_prop"
          },
          {
            "confidence": "high",
            "description": "The photograph remains visibly crumpled rather than flat or unfolded.",
            "evidence_quote": "“The camera sees the crumpled image-bearing face, partially concealed by fingers and folds.”",
            "kind": "prop_state"
          }
        ],
        "wide_shot_contract": [
          "The wide shot must visibly include 강민숙’s rigid closed hand as part of her seated, motionless body.",
          "The same hand must visibly grip one crumpled paper photograph so the zoom’s focal subject already exists within the wide frame."
        ],
        "camera_relation": "different_camera_same_moment",
        "camera_relation_evidence": "WIDE: “At knee height facing the opened curtain, the static camera frames 강민숙’s seated form from the lowered head through the collapsed legs.” ZOOM: “At hand height, a steep but not overhead downward angle isolates 강민숙’s rigid fingers and the crumpled photograph while retaining a narrow strip of her forearm and the nearby floor for scale.” The zoom requires a steep downward view that cannot be obtained by simply cropping the wide’s knee-height, body-facing view.",
        "per_shot_consumption_hints": {
          "12:8": {
            "include_in_wide": true
          },
          "12:15": {
            "crop_from_source": false
          }
        },
        "revised_wide_t2i": {
          "0": "Photorealistic cinematic still. At knee height, the static camera frames the central midground through the narrow foreground brackets of an opened curtain. C06O05 in a grey cardigan, a Korean woman in her early 40s, is seated on the floor facing the camera, lying dead, motionless and lifeless. Her head hangs forward, looking down with her face cast in deep shadow above collapsed legs. Her visibly wounded shoulder and collarbone supply a sharp crimson accent, and one rigid, closed hand is clearly visible as part of her seated body, clenched around a single crumpled paper photograph, with its folded, image-bearing surface visibly gripped between her fingers. The interior space is immersed in low-key nighttime lighting with a highly desaturated palette, casting deep shadows throughout the room. Pooled blood on the floor traces a path toward the curtain edges, standing out vividly against the gloomy, restrained atmosphere."
        },
        "revised_wide_prompt_provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "f63d48ca61bb343f",
            "revised_prompt_hash": "cd01efe3048b0412"
          }
        },
        "revised_zoom_t2i": {
          "0": "Photorealistic cinematic still. At hand height, a steep but not overhead downward angle isolates the rigid, clenched hand of C06 in a grey cardigan sleeve, a Korean middle-aged woman lying dead and motionless. Her lifeless fingers remain tightly closed across the lower-center of the frame, retaining a narrow strip of her forearm and the nearby floor for scale. Gripped inside the closed hand is P05, a single visibly crumpled paper photograph; its creased, image-bearing face is partially concealed by the clenched fingers and folds, positioned in the lower portion of the frame. The background is [L06B04: a low-key nighttime interior wrapped in highly desaturated, deep shadows, providing a gloomy and restrained atmosphere with tactile contrast against the pale skin and paper without a direct local light source]."
        },
        "revised_zoom_prompt_provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "d014669f32c958c3",
            "revised_prompt_hash": "5af2c771e2e69990"
          }
        }
      },
      {
        "group_id": "vca-s20-zoom-3",
        "anchor_type": "zoom_continuity",
        "members": [
          {
            "scene_index": 20,
            "shot_index": 1,
            "role": "source_wide"
          },
          {
            "scene_index": 20,
            "shot_index": 3,
            "role": "zoom"
          }
        ],
        "locked_elements": [
          {
            "confidence": "high",
            "description": "Suriyoung must remain front-facing with a rigid, visibly anxious face and locked shoulders.",
            "evidence_quote": "“수리영의 굳은 정면 구도” / “Suriyoung remains rigidly frontal in the central background”",
            "kind": "subject_pose"
          },
          {
            "confidence": "high",
            "description": "Suriyoung’s two hands must remain tightly clenched together just below her chin.",
            "evidence_quote": "“수리영이 두 손을 꽉 쥔 채” / “hands clenched below chin”",
            "kind": "subject_pose"
          },
          {
            "confidence": "high",
            "description": "Suriyoung must keep staring toward the CCTV monitor.",
            "evidence_quote": "“모니터를 뚫어지게 응시하는”",
            "kind": "subject_pose"
          },
          {
            "confidence": "high",
            "description": "The CCTV monitor must remain on and replaying footage whose relevant section is markedly dark and unidentifiable.",
            "evidence_quote": "“몇 번을 다시 돌려보지만 보안직원 말대로 그 부분만 유독 어두워 식별이 불가능하다.”",
            "kind": "surface_state"
          }
        ],
        "wide_shot_contract": [
          "The wide frame must visibly include Suriyoung in the central background, facing the camera with a rigid, anxious face and locked shoulders.",
          "Her tightly clasped hands below her chin must be present and visible so the close shot can enlarge the same pose.",
          "Her eyeline must remain fixed toward the CCTV monitor.",
          "The monitor must be present between the seated observers, on and replaying the same unusually dark, unidentifiable footage."
        ],
        "camera_relation": "same_axis_punch_in",
        "camera_relation_evidence": "WIDE: “Suriyoung remains rigidly frontal in the central background” and “angle”: “facing_camera”. ZOOM: “keep her gaze on the same axis, making camera distance the sole emphasized change from the wider setup” and “angle”: “facing_camera”.",
        "per_shot_consumption_hints": {
          "20:1": {
            "include_in_wide": true
          },
          "20:3": {
            "crop_from_source": true
          }
        },
        "revised_wide_t2i": {
          "0": "Photorealistic cinematic still. A Korean middle-aged man in a security uniform sits in the lower-left foreground, and C05O04 in a leather jacket, an Asian woman in her 40s, sits in the lower-right foreground, while C08O07 in a casual jacket, a young Asian woman, stands in the upper-center background looking toward the CCTV monitor. The two seated figures have their backs to the camera, perched forward in their office chairs toward the shared desk. C08O07 stands behind them facing the camera with a rigidly locked shoulder posture, her visibly anxious face held stiff and deeply uneasy, her hands tightly clenched together just below her chin and clearly visible, her eyeline fixed intently on the CCTV monitor. The CCTV monitor on the desk rests exactly between the shoulder lines of the foreground observers, switched on and replaying footage whose relevant section is unusually dark and unidentifiable. The environment is illuminated by neutral indoor ambient light and the monitor's subtle glow, maintaining a restrained, desaturated color palette and low-to-mid-key contrast."
        },
        "revised_wide_prompt_provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "6059b6e12f31b8ca",
            "revised_prompt_hash": "fa3b84608e6ee486"
          }
        }
      },
      {
        "group_id": "vca-s26-zoom-4",
        "anchor_type": "zoom_continuity",
        "members": [
          {
            "scene_index": 26,
            "shot_index": 7,
            "role": "source_wide"
          },
          {
            "scene_index": 26,
            "shot_index": 10,
            "role": "zoom"
          }
        ],
        "locked_elements": [
          {
            "confidence": "high",
            "description": "수리영 must remain standing behind 인우 and looking directly toward him.",
            "evidence_quote": "수리영이 인우의 등 뒤에 꼿꼿이 서서 그를 응시하는 측면",
            "kind": "subject_pose"
          },
          {
            "confidence": "high",
            "description": "수리영 must keep her chin and eyes lifted toward 인우 in an appealing, desperate gaze.",
            "evidence_quote": "수리영이 절박한 눈빛으로 인우를 똑바로 올려다보는 얼굴 클로즈업",
            "kind": "subject_pose"
          },
          {
            "confidence": "high",
            "description": "인우 must remain beside the fishing boat in the act of securing its mooring line.",
            "evidence_quote": "배에서 내린 인우(24세. 남)는 닷줄을 고정시키고 있다.",
            "kind": "held_prop"
          },
          {
            "confidence": "high",
            "description": "The fishing boat must remain arrived and moored at the harbor.",
            "evidence_quote": "그때 안개를 뚫고 배 한척이 다가오는 게 보인다. 배로 다가가는 수리영. 배에서 내린 인우(24세. 남)는 닷줄을 고정시키고 있다.",
            "kind": "prop_state"
          },
          {
            "confidence": "high",
            "description": "The harbor must remain densely fogbound, with no other boat visible.",
            "evidence_quote": "텅 빈 포구. 안개로 인해 배는 보이지 않고.",
            "kind": "surface_state"
          }
        ],
        "wide_shot_contract": [
          "The wide frame must visibly include 수리영 standing behind 인우, with her face readable in profile as she looks toward him.",
          "The wide frame must include 인우 in the nearer plane beside the fishing boat, securing the mooring line.",
          "The fishing boat, dense fog, and empty harbor must remain visible as shared spatial context.",
          "수리영’s face—the zoom shot’s focal subject—must be sufficiently visible in the wide frame, even though the specified three-quarter close-up requires a different camera angle."
        ],
        "camera_relation": "different_camera_same_moment",
        "camera_relation_evidence": "Wide: “At chest height and perpendicular to their shared axis, the static medium frame keeps 인우’s back large in the left foreground while 수리영 appears in clear profile behind him toward the right midground” and “the camera withholding a frontal view of either face.” Zoom: “Just below 수리영’s eye line on her forward side, the dolly-in finishes on a close facial frame” and “A restrained portion of 인우’s shoulder and jaw remains soft at the upper-right edge,” with 수리영 at “three_quarter_right.” The wide camera provides her profile with 인우 on the left, whereas the close-up requires her forward three-quarter side and 인우 as an upper-right over-shoulder anchor.",
        "per_shot_consumption_hints": {
          "26:7": {
            "include_in_wide": true
          },
          "26:10": {
            "crop_from_source": false
          }
        },
        "revised_wide_t2i": {
          "0": "Photorealistic cinematic still. C18O13 in a dark windbreaker, a Korean man in his mid-20s, braces over a mooring line with his back to the camera in the middle-left foreground, actively securing the line beside the arrived, moored modern fishing boat. C08O07 in a damp casual jacket, a young Korean woman, stands upright directly behind him in the middle-right midground, looking directly toward C18O13. C18O13's large back and shoulders occupy the near depth, his gaze directed off-screen. C08O07 appears in clearly readable left profile, her shoulders squared behind him, her chin and eyes lifted toward him in an appealing, desperate gaze; her slightly disheveled damp hair and clothes convey deep exhaustion, while her face remains sufficiently visible in the wide frame. The chest-height perspective highlights their lateral separation against the docking side of the modern fishing boat behind them, visibly secured by the mooring line. The empty coastal harbor is completely enveloped in thick fog following a heavy rain shower, with no other boat visible, illuminated by a diffuse, desaturated late-day ambient light that heavily obscures distant spatial layers and leaves the surrounding rocky surfaces slick with moisture."
        },
        "revised_wide_prompt_provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "57e4ac1593f4c731",
            "revised_prompt_hash": "1560eda430756104"
          }
        },
        "revised_zoom_t2i": {
          "0": "Photorealistic cinematic still. C08O07 in a casual jacket, a young Korean woman in her 20s with long straight black hair and a youthful oval face, occupies the middle-center foreground, standing upright behind the young male sailor and looking directly toward him. Captured from just below her eye line on her forward side, her face fills most of the frame at a three-quarter angle from the right, with her eyes positioned near the upper center. Her chin and eyes are lifted toward the sailor in an appealing, desperate gaze. The sailor, a young Korean man in fisher workwear, stands beside the fishing boat in the act of securing its mooring line; he is seen with his back to the camera, and only a soft, out-of-focus portion of his shoulder and jaw occupies the upper-right edge as an eyeline anchor. Diffuse late-day ambient light renders C08O07's pleading expression in restrained, desaturated contrast. A thick, dense gray harbor fog and the blurred edge of the arrived, moored wooden fishing boat form the peripheral frame-edge surface behind them, with no other boat visible."
        },
        "revised_zoom_prompt_provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "764d3517c9d62193",
            "revised_prompt_hash": "3f5e2e34faa0a406"
          }
        }
      }
    ],
    "diagnostics": {
      "seeds_detected": 8,
      "groups_extracted": 4,
      "skipped": [
        {
          "seed": "S14sh5",
          "reason": "zoom_subject_absent_in_source",
          "missing_chars": [
            "C08"
          ]
        },
        {
          "seed": "S16sh3",
          "reason": "zoom_subject_absent_in_source",
          "missing_chars": [
            "C14"
          ]
        },
        {
          "seed": "S21sh11",
          "reason": "zoom_subject_absent_in_source",
          "missing_chars": [
            "C08"
          ]
        },
        {
          "seed": "S25sh10",
          "reason": "zoom_subject_absent_in_source",
          "missing_chars": [
            "C08"
          ]
        }
      ],
      "revised_prompt_audit_violations": [],
      "rewrite_variation_skipped": [],
      "candidate_same_moment_exact_background": [
        {
          "zoom": [
            7,
            4
          ],
          "source": [
            7,
            2
          ]
        },
        {
          "zoom": [
            13,
            5
          ],
          "source": [
            13,
            4
          ]
        },
        {
          "zoom": [
            15,
            5
          ],
          "source": [
            15,
            1
          ]
        },
        {
          "zoom": [
            19,
            8
          ],
          "source": [
            19,
            6
          ]
        },
        {
          "zoom": [
            21,
            13
          ],
          "source": [
            21,
            11
          ]
        },
        {
          "zoom": [
            23,
            4
          ],
          "source": [
            23,
            1
          ]
        },
        {
          "zoom": [
            27,
            5
          ],
          "source": [
            27,
            1
          ]
        },
        {
          "zoom": [
            29,
            9
          ],
          "source": [
            29,
            5
          ]
        }
      ],
      "ref_usage_source": "shot_dependency_t2i"
    },
    "review_html": "review_html/index.html"
  },
  "step_id": "zoom_continuity_anchor",
  "run_id": "713e0a14-90e0-4f38-90bc-d6025ff477fc",
  "resolved_model": "gpt",
  "updated_at": "2026-07-20T08:54:00.380321+00:00",
  "project_config_snapshot": {}
}