# SDD progress — 2026-07-26-lane-mannequin-conti-bg-entity
Base before Task 1: 9364e810 (이전 세션분 커밋)
Task 1: complete (commits 88b03f41..473d3c1e, review clean — 재리뷰 Approved, 신규 지적 0)
Task 2: complete (commits 834e2f40..a5de09c4, review Approved — Minor 5건 중 4건 수정, 팩 4.202607270248 발행+selector 4)
  - 잔여 Minor(최종 리뷰 대상): 팩 문구 exact-substring 단언이 줄바꿈에 취약(test_geometry_pack_v4_system_declares_relation_contract)
  - 미해결 관측: camera_facing_relation 을 하류(annotate/sketch 텍스트)로 노출하는 소비자 없음 — Task 3 이 담당
Task 3: complete (commits a893daf5..471f7d88, review Approved — Important 1 + Minor 3건 수정)
  - 부수: GEOMETRY_TEXT_VERSION 5→6 (완료 CP 무효화=resume BLOCK, 의도적)
  - 잔여 Minor(최종 리뷰): _check_facing_relation 의 ok={...}[rel] 도 enum 키 중복 — 열거 확장 시 KeyError 위험
Task 4: complete (commits ebeb7445..37e44068, review Approved — Minor 3건 수정, 팩 14.202607270344 발행+selector 14)
  - 브리프 누락 2건을 구현자가 잡음: SKETCH_PACK_VERSION_MAP["14"], _ANNOTATE_PACKS (누락 시 lane 경로 ValueError)
  - ★알려진 중간 상태: still_recipe_service:2244-2260 이 v14 가 더는 기록 안 하는 master_png_path 를 fail-closed 요구 — Task 6 가 그 라인을 재작성. 그 전엔 bgfirst-full lane E2E 금지
  - 잔여 Minor(최종 리뷰): d6 hash/determinism 기존 실패 10건 중 fingerprint-determinism 계열 주의 필요
Task 5: complete (commits b4089b84..c05315f5, review Approved — Minor 4건 수정, 3층 가드 AST 로 구조 검증)
  - 브리프 개선 2건(구현자): _config_hash 스탬프를 lane 파이프 블록 안에(비-lane 대량 재렌더 방지) / sidecar reuse 경로에도 팩 스탬프
  - 잔여 Minor(최종 리뷰): 이 커밋 이전 v14 CP 는 lane_sketch_pack 미보유 → 소비자 검사 사각(현재 그런 CP 실재 0, layer2 가 BLOCK 으로 커버)
Task 6: complete (commits b07692bf..73a7ec33, 재리뷰 후 blocker 수정까지 — LANE_CONTI_ONLY 권위 + lineage 정정 + 사전 플레이트 재유입 차단)
  - ★재리뷰 실측 blocker: :1659-1662 가 lane_chain ON 시 플레이트를 재유입 → 신규 assert 가 실 데이터 14/57 샷(7/9 에피소드)을 mark_failed. 옵션B(범위 한정: lane_chain and not bg_only 만 plate 해석 제외)로 수정, 재측정 0/57
  - bg_only lane 샷 2건은 플레이트가 유일 참조라 보존(설계 smell 로 기록 — 후속 결정 대상)
  - Task 4 가 남긴 master_png_path fail-closed 중간 상태 해소됨
  - 구현자 git stash 사고 자진보고 → 검증 완료: stash 3개 전부 온전, 트리 깨끗
Task 7: complete (commits b28f16fe..6872d15a, review 후 Important 1 + Minor 4건 수정 — 장소·world 텍스트 배선 + 팩 12.202607270537)
  - ★Important: image_steps.py 스텝 config hash 가 lane 팩을 안 접어 완료 프로젝트가 clean-skip → v12 를 영영 못 봄. 수정(bgfirst_lane_pack/contract 스탬프)
  - 비용: lane 체인 ON 으로 완료된 프로젝트는 still_recipe 전체 재실행됨(의도)
  - ★Task 8 로 이월된 리뷰 지적(I-1): v7 stage_head 가 마네킹 보존 배경을 "그대로 유지"하라 하고, lane 이 더는 첨부 안 하는 LAYOUT SKETCH 를 지칭 — T8 이 그 문장까지 제거해야 함
Task 8: complete (commits 2183895f..69519474, review Approved — 캔ary 전 6건 수정: F1 존재하지 않는 LOCATION PHOTOGRAPH 지칭 제거(신규 stem location_lock_chain_bg + CHAIN_BG_LOCATION_PROMPT_VERSION), F2 복수 인물 배정 규칙, F3 "must stand"↔immobile 충돌, F4 캐릭터 참조 0 가드, F5 grey 단일키, F6 취약 테스트 2건)
  - 잔여(별건, 최종 리뷰 대상): 비-lane bgfirst Step2 도 같은 LOCATION PHOTOGRAPH 모순을 여전히 가짐 — 이번 범위 밖
  - 캔ary 최우선 관측: 2인 이상 lane 샷의 인물↔마네킹 배정 (결정론 채널 없음)
=== 구현 8개 태스크 완료. 남은 것: 최종 전체 브랜치 리뷰 + Task 9 유료 캔ary ===
최종 전체 wave 리뷰: Important 4건 + 테스트 품질 2건 → 전부 수정 (commit a938b54f)
  - I-1 소비자 pack exact-revalidate 부재(스펙 BLOCKING-4 미구현) — 구 v13 콘티가 v14 계약으로 조용히 소비됨. chain_ready=True 방향 검사 추가
  - I-2 lane critique 가 첨부 안 된 STORYBOARD SKETCH 를 지칭 → 오염된 critique 가 fix i2i 로 정상 스틸을 변형. critique_selected_prompt_only=True
  - I-3 lane+bg_only 이 LOCATION PHOTOGRAPH 를 첨부하는데 프롬프트는 "없다"고 주장 → lane_ref_mode=""
  - I-4 CHAIN_BG_LOCATION_PROMPT_VERSION 이 우연히(값 일치) 커버됨 → 명시 스탬프
  - M-9 world_context.py 무테스트 → tests/unit/test_world_context.py 신설
  - ★I-1 부작용: lane_conti 에 현재 팩 스탬프 없는 status=ok 엔트리가 있으면 422 — 캔ary 프로젝트는 이번 wave 의 shot_conti_light 를 반드시 거쳐야 함
  - 부채로 수용: 비-lane bgfirst Step2 의 LOCATION PHOTOGRAPH 모순 / _check_facing_relation enum 중복 / 기존 실패 10건 / 소스잠금 테스트 6건의 행위 테스트 대체
=== 구현+리뷰 완료(커밋 18개). 남은 것: Task 9 유료 캔ary(사용자 육안) ===
