{
  "status": "completed",
  "applicable_count": 2,
  "completed_count": 2,
  "failed_count": 0,
  "schema_version": 1,
  "config_hash": "14cff9239adbc6fc",
  "data": {
    "schema_version": 1,
    "groups": [
      {
        "group_id": "osl-l03",
        "location_id": "L03",
        "member_shots": [
          [
            10,
            8
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                60,
                45
              ],
              "pos": [
                60,
                32
              ],
              "shot_index": 8
            }
          ],
          "figures": [
            {
              "entity_token": "C01",
              "figure_id": "figure_한국인_남성",
              "label": "한국인 남성",
              "positions": [
                {
                  "moving_toward": [
                    61,
                    55
                  ],
                  "pos": [
                    54,
                    54
                  ],
                  "shot_index": 8
                }
              ]
            },
            {
              "entity_token": "C08",
              "figure_id": "figure_한국인_중년_여성",
              "label": "한국인 중년 여성",
              "positions": [
                {
                  "moving_toward": [
                    67,
                    56
                  ],
                  "pos": [
                    63,
                    55
                  ],
                  "shot_index": 8
                }
              ]
            }
          ],
          "landmarks": [
            {
              "id": "lm_rooftop",
              "kind": "area",
              "label": "옥탑방 옥상",
              "points": [
                [
                  0,
                  0
                ],
                [
                  100,
                  0
                ],
                [
                  100,
                  100
                ],
                [
                  0,
                  100
                ]
              ]
            },
            {
              "id": "lm_rooftop_room",
              "kind": "area",
              "label": "옥탑방",
              "points": [
                [
                  35,
                  45
                ],
                [
                  82,
                  45
                ],
                [
                  82,
                  88
                ],
                [
                  35,
                  88
                ]
              ]
            },
            {
              "id": "lm_window",
              "kind": "line",
              "label": "창문",
              "points": [
                [
                  50,
                  45
                ],
                [
                  70,
                  45
                ]
              ]
            },
            {
              "id": "lm_iron_door_entrance",
              "kind": "point",
              "label": "옥탑방 철문 현관",
              "points": [
                [
                  39,
                  45
                ]
              ]
            },
            {
              "id": "lm_water_tank",
              "kind": "area",
              "label": "물탱크",
              "points": [
                [
                  10,
                  68
                ],
                [
                  25,
                  68
                ],
                [
                  25,
                  84
                ],
                [
                  10,
                  84
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "10:8": "SHOT 8 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- 옥탑방 옥상: at the near left side of the frame.\n- 옥탑방: at the mid-distance center of the frame.\n- 창문 (path): runs from the near left side of the frame to the near right side of the frame.\n- 옥탑방 철문 현관: at the near left side of the frame.\n- 물탱크: at the far left side of the frame.\nFIGURES:\n- 한국인 남성 (C01): at the near left side of the frame — NEAREST figure to the camera; in motion: already partway along their path, heading toward the near center of the frame; their path follows the 창문; NOT heading into the 옥탑방 옥상.\n- 한국인 중년 여성 (C08): at the near center of the frame; about 1.0x as far from the camera as the nearest figure, so they must appear roughly 0.98x the nearest figure's height (smaller, deeper in the frame); in motion: already partway along their path, heading toward the near right side of the frame; their path follows the 창문; NOT heading into the 옥탑방 옥상.\nDEPTH CONTRACT: 한국인 중년 여성 is farther than 한국인 남성 and must read visibly smaller and deeper in the frame."
        }
      },
      {
        "group_id": "osl-l08",
        "location_id": "L08",
        "member_shots": [
          [
            19,
            4
          ]
        ],
        "layout": {
          "cameras": [
            {
              "look_at": [
                58,
                55
              ],
              "pos": [
                40,
                18
              ],
              "shot_index": 4
            }
          ],
          "figures": [
            {
              "entity_token": "C10",
              "figure_id": "figure_수리영",
              "label": "수리영",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    47,
                    38
                  ],
                  "shot_index": 4
                }
              ]
            },
            {
              "entity_token": "C15",
              "figure_id": "figure_남자_직원",
              "label": "남자 직원",
              "positions": [
                {
                  "moving_toward": null,
                  "pos": [
                    54,
                    34
                  ],
                  "shot_index": 4
                }
              ]
            }
          ],
          "landmarks": [
            {
              "id": "market_building",
              "kind": "area",
              "label": "market exterior",
              "points": [
                [
                  64,
                  64
                ],
                [
                  64,
                  100
                ],
                [
                  100,
                  100
                ],
                [
                  100,
                  64
                ]
              ]
            },
            {
              "id": "market_exterior_corner",
              "kind": "point",
              "label": "market exterior corner",
              "points": [
                [
                  64,
                  64
                ]
              ]
            },
            {
              "id": "sidewalk_road_edge",
              "kind": "line",
              "label": "sidewalk and road edge",
              "points": [
                [
                  0,
                  24
                ],
                [
                  72,
                  24
                ]
              ]
            }
          ]
        },
        "spatial_summaries": {
          "19:4": "SHOT 4 SCENE GEOGRAPHY (computed from the site-layout coordinates, frame-relative from this shot's camera — source of truth for where things are, which way paths run, figure depth and relative size):\n- market exterior: at the far center of the frame.\n- market exterior corner: at the mid-distance center of the frame.\n- sidewalk and road edge (path): runs from the mid-distance right side of the frame to the mid-distance left side of the frame.\nFIGURES:\n- 수리영 (C10): at the near center of the frame — NEAREST figure to the camera.\n- 남자 직원 (C15): at the near right side of the frame; about 1.0x as far from the camera as the nearest figure, so they must appear roughly 1.00x the nearest figure's height (smaller, deeper in the frame).\nDEPTH CONTRACT: 남자 직원 is farther than 수리영 and must read visibly smaller and deeper in the frame."
        }
      }
    ],
    "prompt_overrides": {
      "10:8": {
        "location_id": "L03",
        "group_id": "osl-l03",
        "revised": {
          "0": "Photorealistic cinematic still. Cut tight to an old, chipped window at eye level, the glass squarely facing the camera. The dirty, dim, slightly warped window pane acts as a reflective surface, showing the warped silhouettes of two figures inside. A Korean adult male silhouette in left profile, body volume preserved against a weak yellow-green interior lamp spill, lunges aggressively forward, his head forced downward to bite the shoulder of a Korean middle-aged woman's silhouette. The woman, near the center of the reflected window and slightly but visibly smaller and deeper than him at a three-quarter angle from the right, already partway along the window toward the near right side, following the window's left-to-right path and not heading into the rooftop, recoils backward under his pinning grip, looking off-screen. Both bodies appear as smeared dark shapes in the reflection. Outside, a faint bruised greenish-blue ambient light spills across the exterior nighttime darkness, clinging to the window, with a sudden dull crimson suggestion blooming near the woman's reflected shoulder."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "570983e20801ba5f",
            "revised_prompt_hash": "27dee7cedcec165f"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "The woman, positioned at a three-quarter angle from the right,",
              "revised": "The woman, near the center of the reflected window and slightly but visibly smaller and deeper than him at a three-quarter angle from the right, already partway along the window toward the near right side, following the window's left-to-right path and not heading into the rooftop,"
            }
          ]
        },
        "no_edit_reason": {}
      },
      "19:4": {
        "location_id": "L08",
        "group_id": "osl-l08",
        "revised": {
          "0": "Photorealistic cinematic still. C10O10 in a khaki jacket, a young Korean woman in her 20s, stands in the lower-center midground looking toward the pre-existing CCTV camera in the upper-right background, while a Korean adult man in a functional vest stands slightly deeper in the lower-right midground, visibly smaller than C10O10, also looking toward the same CCTV camera. Both figures are positioned with their backs to the camera, sharing the wet ground space outside the market. C10O10 has her neck craned upward, exposing a slight side profile, while the man stands firmly with his hands on his hips. The waist-high observer angle holds wide from behind, placing their lower bodies and backs in the lower frame, their shared gaze creating a strong upward diagonal. Overcast coastal daylight flattens the gray, damp wall before them. A muted signboard is already present, angled obliquely to the camera along the wall. The overall mood is tense and gray, with the architectural diagonal guiding the focus upward."
        },
        "provenance": {
          "0": {
            "original_scene_detail_prompt_hash": "9eb9e1e0443c2d15",
            "revised_prompt_hash": "7a68f3e383c07d87"
          }
        },
        "edited_spans": {
          "0": [
            {
              "original": "stands in the lower-left midground",
              "revised": "stands in the lower-center midground"
            },
            {
              "original": "a Korean adult man in a functional vest stands in the lower-right midground, also looking toward the same CCTV camera",
              "revised": "a Korean adult man in a functional vest stands slightly deeper in the lower-right midground, visibly smaller than C10O10, also looking toward the same CCTV camera"
            }
          ]
        },
        "no_edit_reason": {}
      }
    },
    "diagnostics": {
      "outdoor_location_count": 15,
      "seed_group_count": 2,
      "groups_extracted": 2,
      "skipped": [
        {
          "shot": "S6sh1",
          "reason": "single_figure_moving"
        },
        {
          "shot": "S26sh8",
          "reason": "zoom_continuity_member"
        }
      ],
      "layout_shape_violations": [],
      "layout_side_conflicts": [],
      "spatial_summary_skipped": [],
      "rewrite_failed": [],
      "revised_prompt_audit_violations": [],
      "zoom_member_exclusion_source": "shot_dependency_t2i",
      "composition_guide_failed": [],
      "composition_guide_candidate_skipped": [],
      "composition_guide_count": 0,
      "composition_guide_shared_model_enabled": true,
      "shared_model_judge_enabled": true,
      "shared_model_candidate_signals": [],
      "shared_model_judge_decisions": [],
      "shared_model_attach_decisions": [],
      "shared_model_single_shot_complexity_observation": [],
      "shared_model_image_calls": {
        "predicted": {
          "base": 0,
          "blocking": 0,
          "camera_view_sketch": 0
        },
        "actual": {
          "base": 0,
          "blocking": 0,
          "camera_view_sketch": 0
        },
        "predicted_call_count": 0,
        "actual_call_count": 0,
        "continuity_anchor_generation_calls": 0
      }
    },
    "composition_guides": {},
    "review_html": "review_html/index.html"
  },
  "step_id": "outdoor_site_layout",
  "run_id": "1ab71395-1a22-4439-ad20-97d22e58485c",
  "resolved_model": "gpt",
  "updated_at": "2026-06-30T16:16:03.597481+00:00",
  "project_config_snapshot": {}
}