{
  "status": "completed",
  "applicable_count": 1,
  "completed_count": 1,
  "failed_count": 0,
  "schema_version": 1,
  "config_hash": "fd42f624b8048fa0",
  "data": {
    "schema_version": 1,
    "groups": [
      {
        "group_id": "osl-l02",
        "location_id": "L02",
        "member_shots": [
          [
            2,
            2
          ]
        ],
        "layout": {
          "landmarks": [
            {
              "id": "alley",
              "label": "좁은 골목",
              "kind": "area",
              "points": [
                [
                  8,
                  38
                ],
                [
                  88,
                  38
                ],
                [
                  88,
                  58
                ],
                [
                  8,
                  58
                ]
              ],
              "faces_toward": null
            },
            {
              "id": "wall",
              "label": "담벼락",
              "kind": "line",
              "points": [
                [
                  8,
                  38
                ],
                [
                  88,
                  38
                ]
              ],
              "faces_toward": null
            },
            {
              "id": "laundry_entrance",
              "label": "세탁소 출입구",
              "kind": "line",
              "points": [
                [
                  70,
                  58
                ],
                [
                  82,
                  58
                ]
              ],
              "faces_toward": [
                75,
                48
              ]
            }
          ],
          "figures": [
            {
              "figure_id": "jeongsun",
              "label": "정순",
              "entity_token": "C01",
              "positions": [
                {
                  "shot_index": 2,
                  "pos": [
                    75,
                    57
                  ],
                  "moving_toward": null
                }
              ]
            },
            {
              "figure_id": "taeuk",
              "label": "태욱",
              "entity_token": "C02",
              "positions": [
                {
                  "shot_index": 2,
                  "pos": [
                    30,
                    48
                  ],
                  "moving_toward": [
                    8,
                    48
                  ]
                }
              ]
            }
          ],
          "cameras": [
            {
              "shot_index": 2,
              "pos": [
                80,
                48
              ],
              "look_at": [
                70,
                54
              ]
            }
          ]
        },
        "spatial_summaries": {
          "2:2": "SHOT 2 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- 좁은 골목 (path): runs from the mid-distance right side of the frame to the far left side of the frame.\n- 담벼락 (path): runs from the mid-distance left side of the frame to the far left side of the frame.\n- 세탁소 출입구 (path): runs from the near right side of the frame to the mid-distance right side of the frame.\nFIGURES:\n- 정순 (C01): at the near right side of the frame — NEAREST figure to the camera.\n- 태욱 (C02): at the far left side of the frame; about 4.9x as far from the camera as the nearest figure, so they must appear roughly 0.21x the nearest figure's height (smaller, deeper in the frame); in motion: already partway along their path, heading toward the far left side of the frame; their path follows the 좁은 골목; moving away from 정순.\nDEPTH CONTRACT: 태욱 is farther than 정순 and must read visibly smaller and deeper in the frame."
        }
      }
    ],
    "prompt_overrides": {},
    "diagnostics": {
      "outdoor_location_count": 1,
      "seed_group_count": 1,
      "groups_extracted": 1,
      "skipped": [],
      "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": 1,
      "seed_prefilter_meta": {
        "2:2": {
          "why_candidate": "single_shot_outdoor_figure_present",
          "location_source": "primary_location",
          "location_id": "L02",
          "figure_count": 1,
          "framing_scale": "close",
          "character_angle_count": 1,
          "frame_spatial_contract_present": true,
          "available_structural_signal_names": [
            "framing_scale",
            "character_angles",
            "frame_spatial_contract",
            "gaze_direction"
          ]
        }
      },
      "single_shot_seed_lane_enabled": true,
      "composition_guide_shared_model_enabled": true,
      "shared_model_judge_enabled": true,
      "shared_model_candidate_signals": [
        {
          "group_id": "osl-single-l02-s2-sh2",
          "location_id": "L02",
          "scene_index": 2,
          "member_shots": [
            "S2sh2"
          ],
          "cameras_non_identical": false,
          "landmark_count": 3,
          "per_shot_signals": {
            "2:2": {
              "entity_count_bucket": "multiple",
              "entity_count": 2,
              "depth_planes": 2,
              "has_motion": true
            }
          }
        }
      ],
      "shared_model_judge_decisions": [
        {
          "group_id": "osl-single-l02-s2-sh2",
          "needs_shared_model_guide": true,
          "decision_type": "single_shot_complexity",
          "confidence": "high",
          "reasons": [
            "depth_layering",
            "camera_or_framing_risk"
          ],
          "evidence": [
            {
              "shot_key": "2:2",
              "source_field": "camera_direction",
              "quote": "holds 정순 in an oblique three-quarter view on the right side of frame, with the alley direction retained as negative space to her left"
            },
            {
              "shot_key": "2:2",
              "source_field": "camera_view_brief",
              "quote": "a figure: foreground, toward the right of frame, about 1.00x the nearest figure's size... a figure: background, toward the left of frame, about 0.21x the nearest figure's size (in motion, moving deeper into the scene)"
            }
          ],
          "guide_scope": "single",
          "risk_notes": "The shot features two figures on distinct depth planes with specific framing requirements (foreground figure on the right, background figure moving away on the left), warranting a layout guide to ensure correct depth and placement.",
          "admit": true,
          "deny_reason": null
        }
      ],
      "shared_model_attach_decisions": [
        {
          "group_id": "osl-single-l02-s2-sh2",
          "scene_index": 2,
          "base_cache_key": "6772a80cfde89096",
          "attached_shots": [
            "2:2"
          ],
          "attached": true
        }
      ],
      "shared_model_single_shot_complexity_observation": [
        {
          "group_id": "osl-single-l02-s2-sh2",
          "decision_type": "single_shot_complexity",
          "is_single_shot_candidate": true,
          "admit": true,
          "note": "single_shot_complexity lane 개방 — admit 시 production attach."
        }
      ],
      "shared_model_pose_fail_closed": [],
      "shared_model_optical_risk_excluded": [],
      "shared_model_building_fp_link": {
        "L02": {
          "fp_id": "fp_laundry_shop_main",
          "indoor_loc_sid": "L01",
          "group_id": "bg_laundry_shop"
        }
      },
      "shared_model_image_calls": {
        "predicted": {
          "base": 1,
          "blocking": 1,
          "camera_view_sketch": 1
        },
        "actual": {
          "base": 1,
          "blocking": 1,
          "camera_view_sketch": 1
        },
        "predicted_call_count": 3,
        "actual_call_count": 3,
        "continuity_anchor_generation_calls": 0
      },
      "shared_model_chain_lineage": {
        "annotated": [
          {
            "asset": "63794389-a7a8-4410-8a00-e6d48888c2f4",
            "role": "outdoor_shot_blocking",
            "input": "ea7d8567-7baf-4388-8296-3f67513da608"
          },
          {
            "asset": "2bb9dcf5-b8d6-4722-90a5-7f90b37c60ff",
            "role": "outdoor_camera_sketch",
            "input": "63794389-a7a8-4410-8a00-e6d48888c2f4"
          }
        ],
        "unresolved": [],
        "guide_asset_resolved": [
          {
            "shot": "2:2",
            "asset": "2bb9dcf5-b8d6-4722-90a5-7f90b37c60ff"
          }
        ],
        "guide_asset_unresolved": []
      }
    },
    "composition_guides": {
      "2:2": {
        "mode": "sketch",
        "path": "composition_guides/S2sh2.png",
        "location_id": "L02",
        "group_id": "osl-single-l02-s2-sh2",
        "admitted_order": 0,
        "guide_scope_type": "single_shot_complexity",
        "is_single_shot_candidate": true,
        "model": "gpt-image-2",
        "judge_model": "gemini-3.1-pro-preview",
        "judge": {
          "confidence": "high",
          "decision_type": "single_shot_complexity",
          "evidence": [
            {
              "shot_key": "2:2",
              "source_field": "camera_direction",
              "quote": "holds 정순 in an oblique three-quarter view on the right side of frame, with the alley direction retained as negative space to her left"
            },
            {
              "shot_key": "2:2",
              "source_field": "camera_view_brief",
              "quote": "a figure: foreground, toward the right of frame, about 1.00x the nearest figure's size... a figure: background, toward the left of frame, about 0.21x the nearest figure's size (in motion, moving deeper into the scene)"
            }
          ],
          "reasons": [
            "depth_layering",
            "camera_or_framing_risk"
          ]
        },
        "producer_kind": "shared_model_aerial_v2",
        "guide_generation_status": "ok",
        "base_cache_key": "6772a80cfde89096",
        "base_hash": "6122f9ee54cac4d4",
        "base_prompt_hash": "d3eece3057b65b23",
        "building_fp_id": "fp_laundry_shop_main",
        "blocking_stage": "used",
        "blocking_stage_reason": "mandatory_3stage",
        "blocking_hash": "fc114d8dca545193",
        "pose_brief_present": true,
        "pose_brief_figures": 1,
        "pose_brief_hash": "97266fea36e7e3e7",
        "camera_brief_hash": "0eeaa26e10297d25",
        "camera_view_sketch_hash": "8ecf68cf8dde50da",
        "sketch_prompt_hash": "587f7363b8927d11",
        "helper_version": "shared_model_aerial_v4.202607031200",
        "forced_character_names": [
          "정순"
        ],
        "guide_asset_id": "2bb9dcf5-b8d6-4722-90a5-7f90b37c60ff"
      }
    },
    "review_html": "review_html/index.html"
  },
  "step_id": "outdoor_site_layout",
  "run_id": "332d37b0-9420-46be-862b-7d84e9c6972c",
  "resolved_model": "gpt",
  "updated_at": "2026-09-04T10:28:31.653806+00:00",
  "project_config_snapshot": {}
}