docs(recommendation): 서브 배너 리뷰와 QA 증거를 보존한다
This commit is contained in:
@@ -0,0 +1,55 @@
|
||||
# 추천 서브 배너 통합 리뷰
|
||||
|
||||
## 1. 리뷰 정보
|
||||
| 항목 | 내용 |
|
||||
|---|---|
|
||||
| 대상 | P1-T1 구현 및 P2-GATE 증거 |
|
||||
| 기준 | 미커밋 working tree, 신규 production 3파일 포함 |
|
||||
| 일자 | 2026-10-30 |
|
||||
| 리뷰어 | Oracle, 단일 독립 읽기 전용 리뷰 |
|
||||
| 기준 문서 | ../prd.md, ../plan-task.md |
|
||||
| 상태 | 수정 검증 완료: APPROVE, 남은 차단 항목 없음 |
|
||||
|
||||
## 2. 목적과 범위
|
||||
두 추천 GET/auth/status, DTO/precision/filter, opener, 실제 View composition/캐러셀, CLI checks 및 native 캡처/geometry를 검토했다. 기존 인증 plugin·main banner와 인접 경로도 읽었다. reviewer는 제품이나 보고서 파일을 수정하지 않았으며 이 문서는 상위 실행자가 반환 판정을 기록한 것이다.
|
||||
|
||||
## 3. 판정 기준
|
||||
확정 요구사항 위반 또는 현재 checkout을 검증했다는 주장을 성립시키지 못하는 증거 문제를 차단한다. 공개된 physical tap/swipe·실서비스 미검증 범위 자체를 새로운 제품 요구사항으로 추가하지 않는다.
|
||||
|
||||
## 4. 검토 근거와 결과
|
||||
- HTTP200와 success 확인, 익명 헤더 생략, follow/auth 보존, 기존 데이터 유지가 코드와 tests에 부합한다.
|
||||
- Int 직접 디코딩, enum placement, 순서 보존 및 콘텐츠 isEmpty, 날짜/20개 cap 없음 확인.
|
||||
- 원문 URI/scheme/host 검증 및 iOS 우선/웹 1회 대체, Android 실행 없음 확인.
|
||||
- 두 화면의 지정 위치/조건부 삽입, 캐러셀 안전 index/현재 URL 비율/task 취소/swipe 흐름 확인.
|
||||
- native contact sheet 4개와 양 화면 first/second/empty/single/OS 및 부모 PNG를 읽었다. 기존 이미지의 폭375, 높이125→187.5, s24, empty 추가 gap0 관측 자체는 유효하다.
|
||||
- 두 build log의 BUILD SUCCEEDED 확인. 전체16개 check 단일 루프 PASS는 리뷰 dispatch 이후 상위 실행자가 추가 확인했고 evidence/parent-verification.md에 기록했다.
|
||||
|
||||
## 5. 발견 사항
|
||||
| ID | 심각도 | 상태 | 제목 | 후속 Task |
|
||||
|---|---|---|---|---|
|
||||
| REV-P1-001 | High, 검증 Gate | 수정 완료 | 현재 캐러셀과 native 캡처 소스 해시 불일치 | P2-R1 |
|
||||
|
||||
확정된 제품 기능·보안 결함은 없음. 검증 증거 불일치 1건.
|
||||
|
||||
## 6. REV-P1-001 상세
|
||||
- 기존 native/source-hashes-final.json의 캐러셀 SHA256: `1bf03b8b1e05310acce09f12b2f09b35af3587f4a7d486b22945ec502cfb506d`.
|
||||
- 현재 production 캐러셀 SHA256: `7e25db3076d545ffc61ea3a1c5585e7b8a617964ef406d7570286d75a75e010a`.
|
||||
- 기존 native 최종 해시 기록 이후 캐러셀에 제스처 처리가 변경됐다. `unchanged=true`는 당시 실행 전후만 증명하며 현재 checkout까지 증명하지 않는다.
|
||||
- 부모 smoke는 현재 코드 이후 실행됐지만 전체 matrix와 소스 해시 연결이 부족하다. 과거 해시/증거를 덮어쓰지 않고 최신 소스 재검증 증거를 별도로 추가한다.
|
||||
- 관련 기준: PRD SB-013/014/019, plan P2-GATE 현재 코드 native 검증.
|
||||
|
||||
## 7. 후속 작업
|
||||
P2-R1에 현재 소스 snapshot/hash와 변경 범위를 기록하고 native matrix 재실행 및 SodaLive build 재확인을 수행한다. 제품 수정은 필요하지 않다.
|
||||
|
||||
## 8. 종료 판정
|
||||
초기 판정 REQUEST_CHANGES. P2-R1 증거를 같은 reviewer에게 제한된 재검토로 제출한다.
|
||||
잔여 한계: physical tap/swipe/세로 scroll 공존, 실제 UIApplication.open/OS background, Reduce Motion ON, 실서비스·전체 앱 UI는 미검증이다.
|
||||
|
||||
## 9. 후속 검증 기록
|
||||
- 상위 실행자도 현재 해시와 수정 시각(2026-10-29 23:53:09)을 확인했다. parent smoke/final PNG는 2026-10-30 00:03:26/00:06:28, SodaLive-dev build 완료는 2026-10-29 23:58:03으로 이후 실행이다.
|
||||
- 다음 재검증은 별도 `evidence/native-final/`에 보존하고 기존 `native/`는 변경하지 않는다.
|
||||
- 변경 대조: 이전에 읽은 캐러셀은 `highPriorityGesture`, 드래그 방향 구분 없는 offset/onEnded, 드래그 중 자동 진행 허용이었다. 현재는 `@GestureState isSwiping`·tap guard를 추가하고 `simultaneousGesture` 및 수평 우세 조건을 사용하며 드래그 중 자동 진행을 건너뛴다. 이는 동작 변경이므로 단순 공백 변경으로 증거를 승계하지 않는다. 배치·이미지 비율·DTO/opener 변경은 없다.
|
||||
- 2026-10-30 상위 재검증: 현재 SHA256 `7e25db3076d545ffc61ea3a1c5585e7b8a617964ef406d7570286d75a75e010a`를 출력하며 SodaLive Debug simulator build exit0, 집중 production checks 5개 PASS/exit0. 기록 `build-sodalive-final.log`; 최신 native matrix는 별도 실행 중.
|
||||
- 2026-10-30 최종 Oracle delta 재검토: **REV-P1-001 ADDRESSED, APPROVE, 남은 차단 항목 없음**. 현재 source/snapshot/전후최종 manifest의 동일 해시, 원본 production 경로 컴파일, 최신42PNG·시나리오·cleanup, 최종 build의 BUILD SUCCEEDED를 reviewer가 직접 확인했다. 기존 기능 리뷰를 반복하거나 범위를 확대하지 않았다.
|
||||
- 최신 증거: [native-final/README.md](evidence/native-final/README.md), [source-hashes-final.json](evidence/native-final/source-hashes-final.json), [provenance-after.json](evidence/native-final/provenance-after.json). 이전 native 증거는 보존한다.
|
||||
- 상위 실행자도 현재 source와 snapshot cmp PASS 및 최종 build log를 확인했고, 소유 simulator/root/cache를 정리했다. 실기기·physical tap/swipe·실서비스 등 기존 공개 한계는 그대로다.
|
||||
Reference in New Issue
Block a user