[
 {
  "id": "planning_doc_analysis",
  "label": "기획서 분석",
  "category": "analysis",
  "order": 0,
  "model": "gemini-lite",
  "provider": "gemini",
  "deps": [],
  "fan_out": false,
  "applicability": "if_planning_doc",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "text_cleanup",
  "label": "텍스트 정리",
  "category": "analysis",
  "order": 1,
  "model": "gemini-lite",
  "provider": "gemini",
  "deps": [],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "scene_segmentation",
  "label": "씬 세그먼테이션",
  "category": "analysis",
  "order": 2,
  "model": "gemini-flash",
  "provider": "gemini",
  "deps": [
   "text_cleanup"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "episode_summary",
  "label": "에피소드 요약",
  "category": "analysis",
  "order": 3,
  "model": "gpt-mini",
  "provider": "gemini",
  "deps": [],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "visual_world_rules",
  "label": "시각적 세계관 규칙",
  "category": "analysis",
  "order": 4,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "episode_summary"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "scene_split",
  "label": "큰 씬 분할 (레거시)",
  "category": "analysis",
  "order": 5,
  "model": "gemini-flash",
  "provider": "gemini",
  "deps": [
   "scene_segmentation"
  ],
  "fan_out": true,
  "applicability": "on_demand",
  "step_type": "transform",
  "lifecycle": "deprecated"
 },
 {
  "id": "scene_save",
  "label": "씬 저장",
  "category": "analysis",
  "order": 6,
  "model": "-",
  "provider": "-",
  "deps": [
   "scene_segmentation"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "entity_character_list",
  "label": "인물 리스트 (사전 추출)",
  "category": "analysis",
  "order": 6.5,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "scene_save",
   "visual_world_rules"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "scene_summary",
  "label": "씬별 요약 (병렬)",
  "category": "analysis",
  "order": 7,
  "model": "gpt-mini",
  "provider": "gemini",
  "deps": [
   "scene_save",
   "episode_summary",
   "visual_world_rules"
  ],
  "fan_out": true,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "beat_extract",
  "label": "Beat 추출 (병렬)",
  "category": "analysis",
  "order": 7.1,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "scene_save",
   "visual_world_rules",
   "entity_character_list"
  ],
  "fan_out": true,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "shot_extract",
  "label": "Shot 추출 (순차)",
  "category": "analysis",
  "order": 7.2,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "beat_extract",
   "visual_world_rules",
   "entity_character_list"
  ],
  "fan_out": true,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "shot_validator",
  "label": "Shot 검증",
  "category": "analysis",
  "order": 7.25,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "shot_extract"
  ],
  "fan_out": true,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "entity_all_character",
  "label": "인물 리스팅",
  "category": "analysis",
  "order": 8,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "scene_save",
   "visual_world_rules",
   "shot_validator"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "entity_extract_character",
  "label": "인물 추출",
  "category": "analysis",
  "order": 9,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "entity_all_character"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "entity_all_location",
  "label": "배경 리스팅",
  "category": "analysis",
  "order": 10,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "scene_save",
   "visual_world_rules",
   "shot_validator"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "entity_extract_location",
  "label": "배경 추출",
  "category": "analysis",
  "order": 11,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "entity_all_location"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "entity_all_prop",
  "label": "소품 리스팅",
  "category": "analysis",
  "order": 12,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "scene_save",
   "visual_world_rules",
   "shot_validator"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "entity_extract_prop",
  "label": "소품 추출",
  "category": "analysis",
  "order": 13,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "entity_all_prop"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "entity_relation",
  "label": "요소 변형 관계 추출",
  "category": "analysis",
  "order": 13.6,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "entity_merge"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "entity_filter",
  "label": "저빈도 요소 필터링",
  "category": "analysis",
  "order": 13.7,
  "model": "gpt-mini",
  "provider": "gemini",
  "deps": [
   "entity_relation"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "entity_merge",
  "label": "요소 중복 병합",
  "category": "analysis",
  "order": 13.5,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "entity_extract_character",
   "entity_extract_location",
   "entity_extract_prop",
   "scene_summary",
   "visual_world_rules"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "entity_detail",
  "label": "요소 상세 + enum",
  "category": "analysis",
  "order": 14,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "entity_filter"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "entity_t2i",
  "label": "요소 T2I 프롬프트 (병렬)",
  "category": "analysis",
  "order": 15,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "entity_detail"
  ],
  "fan_out": true,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "shot_selection",
  "label": "중요 샷 선택 (병렬)",
  "category": "analysis",
  "order": 15.5,
  "model": "gpt-mini",
  "provider": "gemini",
  "deps": [
   "shot_validator"
  ],
  "fan_out": true,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "scene_director",
  "label": "씬 감독 (물리적 존재)",
  "category": "analysis",
  "order": 16,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "scene_save",
   "entity_t2i"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "shot_director",
  "label": "Shot별 VE 판정",
  "category": "analysis",
  "order": 16.5,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "scene_director",
   "shot_selection",
   "entity_relation",
   "shot_validator"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "scene_cinematography",
  "label": "촬영 감독 (레거시)",
  "category": "analysis",
  "order": 17,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "scene_director"
  ],
  "fan_out": false,
  "applicability": "on_demand",
  "step_type": "transform",
  "lifecycle": "deprecated"
 },
 {
  "id": "scene_camera_flow",
  "label": "씬 카메라 플로우",
  "category": "analysis",
  "order": 17.05,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "shot_validator",
   "shot_selection",
   "scene_director",
   "entity_merge",
   "scene_save"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "shot_cinematography",
  "label": "Shot별 촬영 기법 (deprecated)",
  "category": "analysis",
  "order": 17.1,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "shot_selection",
   "scene_director"
  ],
  "fan_out": true,
  "applicability": "disabled",
  "step_type": "transform",
  "lifecycle": "deprecated"
 },
 {
  "id": "scene_dependency",
  "label": "씬 연관 분석 (레거시 — disabled)",
  "category": "analysis",
  "order": 18,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "scene_director"
  ],
  "fan_out": false,
  "applicability": "disabled",
  "step_type": "transform",
  "lifecycle": "deprecated"
 },
 {
  "id": "shot_dependency",
  "label": "Shot 연관 분석 (병렬)",
  "category": "analysis",
  "order": 18.1,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "shot_selection",
   "scene_director"
  ],
  "fan_out": true,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "outlook_phase1",
  "label": "아웃룩 목록 추출",
  "category": "analysis",
  "order": 19,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "scene_director"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "outlook_phase2",
  "label": "아웃룩 씬별 매핑",
  "category": "analysis",
  "order": 19.1,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "outlook_phase1"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "outlook_phase3",
  "label": "아웃룩 병합 정리",
  "category": "analysis",
  "order": 19.2,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "outlook_phase2"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "outlook_extraction",
  "label": "아웃룩 추출 (레거시)",
  "category": "analysis",
  "order": 19.3,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "scene_director"
  ],
  "fan_out": false,
  "applicability": "on_demand",
  "step_type": "transform",
  "lifecycle": "deprecated"
 },
 {
  "id": "shot_staging",
  "label": "촬영 연출 (DP)",
  "category": "analysis",
  "order": 19.5,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "shot_validator",
   "shot_selection",
   "visual_world_rules",
   "entity_merge",
   "scene_camera_flow"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "shot_essence_extraction",
  "label": "샷 essence 추출",
  "category": "analysis",
  "order": 19.7,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "shot_validator",
   "shot_selection"
  ],
  "fan_out": false,
  "applicability": "if_shot_essence_enabled",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "location_floor_plan",
  "label": "위치 도면 생성 (deprecated, Phase 7로 대체)",
  "category": "image",
  "order": 21.5,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "shot_validator",
   "shot_selection",
   "scene_save",
   "entity_merge",
   "visual_world_rules",
   "scene_director",
   "background_planner"
  ],
  "fan_out": false,
  "applicability": "disabled",
  "step_type": "asset",
  "lifecycle": "deprecated"
 },
 {
  "id": "scene_consistency",
  "label": "씬 시각적 일관성",
  "category": "analysis",
  "order": 19.9,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "shot_staging",
   "shot_director",
   "entity_merge",
   "shot_validator",
   "shot_selection",
   "beat_extract",
   "scene_save",
   "visual_world_rules"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "scene_detail",
  "label": "씬 상세 분석 (병렬)",
  "category": "analysis",
  "order": 21.7,
  "model": "gemini-pro",
  "provider": "gemini",
  "deps": [
   "shot_dependency",
   "shot_director",
   "outlook_phase3",
   "entity_t2i",
   "shot_staging",
   "scene_consistency",
   "background_prompt",
   "episode_reference_policy",
   "visual_continuity_anchor"
  ],
  "fan_out": true,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "shot_dependency_t2i",
  "label": "Shot 연관 재계산 (LLM)",
  "category": "analysis",
  "order": 21.71,
  "model": "gpt-mini",
  "provider": "gemini",
  "deps": [
   "scene_detail",
   "scene_consistency"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "t2i_review",
  "label": "T2I 프롬프트 검수",
  "category": "analysis",
  "order": 21.72,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "entity_t2i",
   "scene_detail",
   "shot_validator",
   "shot_staging",
   "visual_world_rules",
   "entity_merge",
   "entity_detail"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "editorial",
  "lifecycle": "active"
 },
 {
  "id": "zoom_continuity_anchor",
  "label": "zoom continuity anchor (W21B-W7 W-C1)",
  "category": "analysis",
  "order": 21.73,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "shot_dependency_t2i",
   "scene_detail",
   "t2i_review",
   "scene_save",
   "shot_validator",
   "shot_selection",
   "shot_staging"
  ],
  "fan_out": false,
  "applicability": "if_zoom_continuity_anchor_enabled",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "outdoor_site_layout",
  "label": "야외 site layout 좌표 SOT (W21B-W8)",
  "category": "analysis",
  "order": 21.76,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "scene_detail",
   "t2i_review",
   "background_classify",
   "shot_dependency_t2i",
   "scene_save",
   "shot_validator",
   "shot_selection",
   "shot_staging",
   "shot_director"
  ],
  "fan_out": false,
  "applicability": "if_outdoor_site_layout_enabled",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "outdoor_place_spec",
  "label": "야외 장소 마커 스펙 (W22 직행 ①)",
  "category": "analysis",
  "order": 21.77,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "background_classify",
   "scene_save",
   "scene_director",
   "shot_validator",
   "shot_selection",
   "shot_staging",
   "entity_merge",
   "visual_world_rules"
  ],
  "fan_out": false,
  "applicability": "if_outdoor_direct_compose",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "outdoor_place_canon",
  "label": "장소 캐논 자산 (W22 직행 ②)",
  "category": "image",
  "order": 21.78,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "outdoor_place_spec"
  ],
  "fan_out": false,
  "applicability": "if_outdoor_direct_compose",
  "step_type": "asset",
  "lifecycle": "active"
 },
 {
  "id": "outdoor_shot_grounding",
  "label": "야외 샷 grounding (W22 직행 ③)",
  "category": "analysis",
  "order": 21.79,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "outdoor_place_spec",
   "outdoor_place_canon",
   "scene_save",
   "scene_director",
   "shot_validator",
   "shot_selection",
   "shot_staging"
  ],
  "fan_out": false,
  "applicability": "if_outdoor_direct_compose",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "background_classify",
  "label": "배경 그룹 분류",
  "category": "analysis",
  "order": 19.51,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "shot_validator",
   "shot_selection",
   "entity_merge",
   "entity_detail",
   "visual_world_rules",
   "scene_director"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "background_master_plan",
  "label": "배경 마스터플랜",
  "category": "analysis",
  "order": 19.52,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "background_classify",
   "scene_save",
   "shot_validator",
   "shot_selection",
   "visual_world_rules"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "floor_plan_prompt",
  "label": "도면 t2i 프롬프트",
  "category": "analysis",
  "order": 19.61,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "background_master_plan",
   "scene_save",
   "shot_validator",
   "shot_selection",
   "visual_world_rules"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "floor_plan_render",
  "label": "도면 이미지 생성",
  "category": "image",
  "order": 21.55,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "floor_plan_prompt",
   "background_master_plan"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "asset",
  "lifecycle": "active"
 },
 {
  "id": "floor_plan_light_sidecar",
  "label": "도면 단순화 사이드카 (W21B-w5)",
  "category": "image",
  "order": 21.56,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "floor_plan_prompt"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "asset",
  "lifecycle": "active"
 },
 {
  "id": "floor_plan_overlay_payload",
  "label": "도면 오버레이 페이로드",
  "category": "analysis",
  "order": 21.57,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "floor_plan_prompt",
   "background_master_plan"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "base_location_dossier",
  "label": "기초 위치 정보 (W20A)",
  "category": "analysis",
  "order": 21.58,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "floor_plan_prompt",
   "floor_plan_render",
   "background_master_plan",
   "floor_plan_overlay_payload"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "floor_plan_geometry_readback",
  "label": "도면 기하 readback (W20A2)",
  "category": "analysis",
  "order": 21.59,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "base_location_dossier",
   "floor_plan_render"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "floor_plan_semantic_readback",
  "label": "도면 마커 의미 fidelity readback (W21B-w4)",
  "category": "analysis",
  "order": 21.591,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "base_location_dossier",
   "floor_plan_render"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "shot_projection_card",
  "label": "샷 projection card — 카메라 가시물 서술 SOT (W21B-w4)",
  "category": "analysis",
  "order": 21.593,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "base_location_dossier",
   "floor_plan_render",
   "floor_plan_overlay_payload",
   "floor_plan_geometry_readback",
   "floor_plan_prompt",
   "background_master_plan",
   "shot_staging",
   "scene_save"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "bg_space_partition",
  "label": "BG 공간분할 — plate group / anchor / ref DAG SOT (W21B-w5)",
  "category": "analysis",
  "order": 21.594,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "base_location_dossier",
   "floor_plan_geometry_readback",
   "shot_projection_card"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "dwelling_zone_map",
  "label": "dwelling zone map — FP+VLM 공간 묶기 (W21B)",
  "category": "analysis",
  "order": 21.5945,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "background_master_plan",
   "floor_plan_prompt",
   "base_location_dossier",
   "floor_plan_geometry_readback",
   "shot_projection_card"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "space_set_bg",
  "label": "space set BG — frame/addon/life 3층 공간 세트 (W21B)",
  "category": "image",
  "order": 22.5,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "background_master_plan",
   "world_guide",
   "scene_save",
   "shot_validator",
   "shot_selection",
   "scene_director"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "asset",
  "lifecycle": "active"
 },
 {
  "id": "shot_aware_bg_render_plan",
  "label": "shot-aware BG render plan (W20B)",
  "category": "analysis",
  "order": 21.595,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "base_location_dossier",
   "floor_plan_geometry_readback",
   "floor_plan_overlay_payload",
   "background_master_plan",
   "shot_staging"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "background_prompt",
  "label": "배경 t2i 프롬프트",
  "category": "analysis",
  "order": 21.6,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "background_master_plan",
   "floor_plan_render",
   "floor_plan_overlay_payload",
   "scene_save",
   "shot_validator",
   "shot_selection",
   "visual_world_rules"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "episode_reference_policy",
  "label": "에피소드 참조 정책",
  "category": "analysis",
  "order": 21.65,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "shot_director",
   "shot_selection",
   "shot_validator",
   "entity_merge",
   "entity_relation"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "visual_continuity_anchor",
  "label": "시각 연속성 anchor (W21B-W7)",
  "category": "analysis",
  "order": 21.66,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "scene_save",
   "shot_validator",
   "shot_selection",
   "shot_dependency",
   "shot_staging",
   "shot_director",
   "entity_t2i"
  ],
  "fan_out": false,
  "applicability": "if_visual_continuity_anchor_enabled",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "background_planner",
  "label": "배경 생성 Planner (deprecated, Phase 7로 대체)",
  "category": "analysis",
  "order": 19.55,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "shot_validator",
   "shot_selection",
   "scene_director",
   "entity_merge",
   "entity_detail",
   "visual_world_rules"
  ],
  "fan_out": false,
  "applicability": "disabled",
  "step_type": "transform",
  "lifecycle": "deprecated"
 },
 {
  "id": "background_chain_planning",
  "label": "배경 chain 플래닝 (deprecated, Phase 7로 대체)",
  "category": "analysis",
  "order": 19.6,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "shot_validator",
   "shot_selection",
   "shot_staging",
   "scene_director",
   "entity_merge",
   "entity_detail",
   "visual_world_rules"
  ],
  "fan_out": false,
  "applicability": "disabled",
  "step_type": "transform",
  "lifecycle": "deprecated"
 },
 {
  "id": "scene_verify",
  "label": "교차 검증 (레거시)",
  "category": "analysis",
  "order": 21,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "scene_detail"
  ],
  "fan_out": true,
  "applicability": "disabled",
  "step_type": "editorial",
  "lifecycle": "deprecated"
 },
 {
  "id": "world_guide",
  "label": "월드 가이드",
  "category": "image",
  "order": 22,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "entity_t2i",
   "scene_detail"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "asset",
  "lifecycle": "active"
 },
 {
  "id": "ref_image_gen",
  "label": "요소 참조 이미지",
  "category": "image",
  "order": 23,
  "model": "gemini-image",
  "provider": "gemini",
  "deps": [
   "entity_t2i"
  ],
  "fan_out": true,
  "applicability": "always",
  "step_type": "asset",
  "lifecycle": "active"
 },
 {
  "id": "composite_image_gen",
  "label": "인물+아웃룩 합성 이미지",
  "category": "image",
  "order": 24,
  "model": "gemini-image",
  "provider": "gemini",
  "deps": [
   "ref_image_gen",
   "outlook_phase3"
  ],
  "fan_out": true,
  "applicability": "if_has_outlooks",
  "step_type": "asset",
  "lifecycle": "active"
 },
 {
  "id": "character_state_variant",
  "label": "인물 상태 변형 참조 이미지",
  "category": "image",
  "order": 24.5,
  "model": "gemini-image",
  "provider": "gemini",
  "deps": [
   "composite_image_gen",
   "shot_staging"
  ],
  "fan_out": false,
  "applicability": "always",
  "step_type": "asset",
  "lifecycle": "active"
 },
 {
  "id": "background_render",
  "label": "배경 이미지 생성",
  "category": "image",
  "order": 24.72,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "floor_plan_overlay_payload",
   "background_prompt",
   "floor_plan_render",
   "background_master_plan"
  ],
  "fan_out": false,
  "applicability": "if_background_mode",
  "step_type": "asset",
  "lifecycle": "active"
 },
 {
  "id": "background_chain_render",
  "label": "배경 chain 렌더 (deprecated, Phase 7로 대체)",
  "category": "image",
  "order": 24.7,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "background_chain_planning",
   "location_floor_plan"
  ],
  "fan_out": false,
  "applicability": "disabled",
  "step_type": "asset",
  "lifecycle": "deprecated"
 },
 {
  "id": "scene_image_pipeline",
  "label": "씬 이미지 생성 (compound)",
  "category": "image",
  "order": 25,
  "model": "mixed",
  "provider": "mixed",
  "deps": [
   "composite_image_gen",
   "world_guide",
   "character_state_variant",
   "background_render"
  ],
  "fan_out": true,
  "applicability": "always",
  "step_type": "asset",
  "lifecycle": "active"
 },
 {
  "id": "outlook_dedup",
  "label": "아웃룩 중복 판별",
  "category": "auxiliary",
  "order": 100,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "outlook_phase3"
  ],
  "fan_out": false,
  "applicability": "on_demand",
  "step_type": "transform",
  "lifecycle": "active"
 },
 {
  "id": "project_summary",
  "label": "프로젝트 요약 (미구현)",
  "category": "auxiliary",
  "order": 101,
  "model": "gpt",
  "provider": "openai",
  "deps": [
   "episode_summary"
  ],
  "fan_out": false,
  "applicability": "disabled",
  "step_type": "transform",
  "lifecycle": "removed"
 }
]