docs(gift): 선물 표시 리뷰를 기록한다
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
# Phase 11 선물 링크·크리에이터 표시 코드 리뷰
|
||||
|
||||
## 1. 리뷰 정보
|
||||
|
||||
| 항목 | 내용 |
|
||||
|---|---|
|
||||
| 리뷰 대상 | Phase 11 / `P11-T1`~`P11-T3`, `P11-GATE` |
|
||||
| 기준 commit 또는 working tree | `main` working tree의 미커밋 변경 |
|
||||
| 리뷰 일자 | `2026-10-08` |
|
||||
| 리뷰어 | Oracle 기능 리뷰, Oracle 정적 시각 리뷰 2개 |
|
||||
| 기준 문서 | `docs/20261006_선물_UI_추가/prd.md`, `docs/20261006_선물_UI_추가/plan-task.md` |
|
||||
| 리뷰 상태 | 코드·정적 판정 완료, 인증 runtime 시각 검증 대기 |
|
||||
|
||||
## 2. 리뷰 목적과 범위
|
||||
|
||||
### 목적
|
||||
|
||||
- `COMMON-006`, `COMMON-007`, `SEND-008`, `GIFT-004` 구현이 승인된 요구사항과 기존 선물 흐름을 보존하는지 확인한다.
|
||||
- RED/GREEN 기록, focused 회귀, 양 스킴 build와 실제 변경이 일치하는지 확인한다.
|
||||
|
||||
### 포함 범위
|
||||
|
||||
- 코드: `AppDeepLinkHandler`, 선물 route, CreatorChannel action/header, `GiftSendView`, `GiftAgreementRow`, `GiftConstants`.
|
||||
- 테스트: `AppDeepLinkGiftDetailCheck.swift`, `check-gift-phase11.sh`, 기존 Gift focused checks.
|
||||
- UI: 선물 버튼 구조와 asset, 선물 보내기 수신자 프로필의 정적 SwiftUI 구조.
|
||||
|
||||
### 제외 범위
|
||||
|
||||
- 인증 계정이 필요한 실제 크리에이터 채널·선물 보내기 화면 캡처와 VoiceOver 실행.
|
||||
- API 계약, 선물 제출 payload, 기존 Talk/DM 디자인 변경.
|
||||
|
||||
## 3. 판정 기준
|
||||
|
||||
- Blocker/High: 확정 요구사항 위반, 핵심 이동 불능, 기존 약관·API·개인정보 경계 회귀.
|
||||
- Medium: 제한 조건의 기능·접근성·레이아웃 결함.
|
||||
- Low: 비핵심 유지보수성 또는 문서 정합성 문제.
|
||||
|
||||
## 4. 검토한 근거
|
||||
|
||||
### 문서와 코드
|
||||
|
||||
- 요구사항: `COMMON-006`, `COMMON-007`, `SEND-008`, `GIFT-004`.
|
||||
- 계획: `P11-T1`, `P11-T2`, `P11-T3`, `P11-GATE`.
|
||||
- 코드: `SodaLive/Sources/App/**`, `SodaLive/Sources/ContentView.swift`, `SodaLive/Sources/V2/CreatorChannel/**`, `SodaLive/Sources/V2/Gift/**`의 Phase 11 변경.
|
||||
- 테스트: `work/tests/AppDeepLinkGiftDetailCheck.swift`, `work/tests/check-gift-phase11.sh`와 직접 영향 회귀.
|
||||
|
||||
### 실행 환경
|
||||
|
||||
```text
|
||||
OS: macOS
|
||||
Xcode: 현재 xcodebuild 기본 toolchain
|
||||
Build destination: generic/platform=iOS
|
||||
Signing: CODE_SIGNING_ALLOWED=NO
|
||||
Runtime capture: 인증 실행 환경 부재로 미수행
|
||||
```
|
||||
|
||||
### 실행한 검증
|
||||
|
||||
| 명령 또는 수동 검증 | 결과 | 핵심 증거 |
|
||||
|---|---|---|
|
||||
| `bash work/tests/check-app-deep-link-gift-detail.sh` | 성공 | `PASS AppDeepLinkGiftDetailCheck assertions=22` |
|
||||
| `bash work/tests/check-gift-phase11.sh` | 성공 | profile, policy, button 3개 mode PASS |
|
||||
| Gift address/contact/recipient/received/decoding focused checks | 성공 | address 15, contact 80, recipient 280, decoding 22 assertions 및 source checks PASS |
|
||||
| `xcodebuild ... -scheme SodaLive-dev ... build` | 성공 | `BUILD SUCCEEDED` |
|
||||
| `xcodebuild ... -scheme SodaLive ... build` | 성공 | `BUILD SUCCEEDED`; 기존 Crashlytics dSYM·dependency scan warning 유지 |
|
||||
| `bash -n work/tests/check-gift-phase11.sh`, `git diff --check` | 성공 | 출력 없음, exit 0 |
|
||||
| 인증 화면 screenshot·VoiceOver | 불가 | 인증된 실행 상태와 화면 캡처 부재 |
|
||||
|
||||
## 5. 발견 사항 요약
|
||||
|
||||
확정 발견 사항 없음.
|
||||
|
||||
- 기능 리뷰: `APPROVE`, Critical/Important/Minor 없음.
|
||||
- 정적 시각 리뷰: SwiftUI 구조, design token 재사용, 38pt 원형 프로필, 20pt icon, 검정 문구·흰 capsule, 접근성 이미지 제외를 승인했다.
|
||||
- 증거 공백: 좁은 화면·접근성 글꼴에서 세 버튼 동시 표시, 실제 이미지 로딩, 링크 이동, VoiceOver는 runtime 증거가 없어 시각 QA 완료 판정을 보류했다.
|
||||
|
||||
## 6. 발견 사항 상세
|
||||
|
||||
확정된 제품 결함 없음. 정적 리뷰가 제기한 버튼 폭·Dynamic Type 항목은 실제 재현이 없는 위험 후보이므로 추정 수정하지 않는다. 인증 실행 환경에서 재현될 때만 별도 review ID와 회귀 Task를 만든다.
|
||||
|
||||
## 7. 확정 항목의 plan·goal 전환
|
||||
|
||||
전환 항목 없음.
|
||||
|
||||
## 8. 리뷰 종료 판정
|
||||
|
||||
| 판정 항목 | 결과 | 근거 |
|
||||
|---|---|---|
|
||||
| 리뷰 범위 전체 확인 | 충족 | 관련 diff, source contract, focused checks, 양 스킴 build 검토 |
|
||||
| 후보 항목 판정 완료 | 충족 | 제품 결함 미확정, runtime 증거 공백으로 분리 |
|
||||
| 확정 항목 plan 반영 | 해당 없음 | 확정 발견 사항 없음 |
|
||||
| 보류 항목의 담당·재개 조건 기록 | 충족 | 인증 실행 환경 확보 후 screenshot·VoiceOver 재검증 |
|
||||
| 검증 명령과 결과 기록 | 충족 | §4 및 `plan-task.md` Progress |
|
||||
|
||||
**최종 결론:** 코드·정적 Gate 승인, 인증 runtime 시각 Gate 대기.
|
||||
|
||||
**남은 항목:** 양 scheme 실제 딥링크, 파손 정책 링크 탭, 프로필 이미지 로딩, 좁은 화면·Dynamic Type 버튼 배치와 VoiceOver 확인.
|
||||
|
||||
## 9. 수정 후 검증 기록
|
||||
|
||||
확정 수정 항목 없음. Gate 검토 중 계획에 있던 경로형 신청번호 누락 거부와 splash pending coverage를 harness에 보강했고 22 assertions로 재검증했다.
|
||||
Reference in New Issue
Block a user