# 고정 배경·패널 모션 분리 리뷰 ## 1. 리뷰 정보 - 대상: P6-T1, 현재 working tree 중 `AuthContentSettingsSheet.swift` 모션 변경. - 일자: 2026-10-13. 기준: PRD §10.0 Phase6, plan-task P6-T1. - 검토: 독립 기능 검토와 시각/모션 검토, coordinator 실제 소스/프레임/검사 확인. - 상태: **APPROVE(P6 한정)**. ## 2. 목적과 범위 fullScreenCover 기본 전환을 끄고 배경은 고정, 패널만 이동하도록 한 변경을 검토한다. 기존 intrinsic 높이, 안전 영역, 확인 전송 순서와 오류 재표시를 유지한다. VM/API/mock/실서버 권한 변경은 범위 밖이다. ## 3. 판정 기준 배경 마커 위치와 색은 각 진입/퇴장 모션 동안 고정되어야 한다. 패널은 독립적으로 이동하며 화면 밖으로 퇴장한 뒤 host가 닫히고 기존 onDismiss가 한 번 호출돼야 한다. 빠른 확인·재표시·Reduce Motion에서도 누락/중복 호출이나 host 잔류가 없어야 한다. ## 4. 검토 근거 - 소스: `AuthContentSettingsModifier`의 local host state/transaction, `AuthContentSettingsPanelMotion`의 rendered progress 완료와 자체 높이 변환, 기존 VM confirm/submit guards. - 최종 hash: `1eee37ffc5c8a937b7be15c0f388782be8965447738aa8fa883a84b729719403`. - 정확한 P6 delta와 증거: tmp/opencode/auth-settings-qa의 `motion-production.diff`, `MOTION-EVIDENCE.md`, `motion-verification.json`, `panel-final.mp4`, `panel-interrupt.mp4`, `panel-reduce.mp4`. - native host는 실제 View/modifier·폰트·토큰 소스를 컴파일하고 VM/toast는 격리 대체한다. 실서버 인증 증거로 해석하지 않는다. ## 5. 검증 결과 | 검사 | 결과 | 근거 | |---|---|---| | 배경 고정/패널 진입 | PASS | `panel-final-083/087/091.png`, 고정 마커 RGB(23,83,101), 패널 top 변화 | | 퇴장 완료 후 onDismiss | PASS | `124/128/132/133.png`, 완전 퇴장132 후 host 제거133, callback1회 | | 빠른 확인/진입 반전 | PASS | normal6개 및 quick 반복5개/0실패, interruption 영상 | | 오류 재개/선택 유지/3cycles | PASS | native 기본 회귀와 FEMALE 유지, cycle당 callback1회 | | Reduce Motion | PASS | visible frame의 panel top1508px 일정, 수직 이동 없음 | | 큰 글자 overflow/foreground 복귀 | PASS | 각각1개/0실패, 확인 접근·선택 유지 | | 실제 dev loading→panel | PASS | 별도 mock lifecycle4개/0실패, wrapper/패널 실제 소스 | | 두 앱 Debug builds/회귀 | PASS | coordinator 현재 소스 빌드 exit0, 기존 work/tests 전체·Swift parse·diff 검사 PASS | 초기 didSet-only observer는 빠른 확인에서 hang을 재현해, 최종 수정에서는 actual GeometryEffect 렌더 진행값에서 완료를 확인한다. 최종 증거는 이 보완 후 생성됐다. ## 6. 발견 사항 및 plan 전환 **확정 코드 결함 없음.** 기능·시각 독립 검토 모두 승인했다. 추가 회귀 수정 Task는 없다. 증거 표현 정정: `panel-final-131.png`에는 하단 얇은 패널 조각이 남아 있다. 완전 이탈은 `132.png`를 근거로 하며, `133.png`에서 배경과 host가 제거된다. 자동 픽셀 분석의 null만으로131을 완전 이탈로 판단하지 않는다. ## 7. 종료 판정과 한계 P6 승인 기준 충족. 기존 레이아웃·문구·API·mock 코드는 유지됐고, 제출 호출은 여전히 host onDismiss 한 곳이다. iOS26 native 실행과 minimum16.6 compile은 확인했으나 iOS16 실기기, 실제 toast, 실계정/7caller/서버 통합은 미검증이다. LSP 도구 미제공으로 compiler/build 증거를 사용했다. ## 8. 정리 기록 작업 전용 QA 앱/runner 제거, 소유 simulator 종료 및 recorder 종료를 확인했다. 환경의 접근성 설정은 원복했고 프레임·영상·로그는 tmp 경로에 보존했다. 커밋/푸시 없음.