docs(gift): TALK 문의 검증 결과를 기록한다
This commit is contained in:
@@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
| 문서 항목 | 내용 |
|
| 문서 항목 | 내용 |
|
||||||
|---|---|
|
|---|---|
|
||||||
| 상태 | Phase 11 코드·정적 Gate 승인, runtime 검증 대기 |
|
| 상태 | Phase 12 코드·정적 Gate 승인, runtime 검증 대기 |
|
||||||
| 작성일 | `2026-10-06` |
|
| 작성일 | `2026-10-06` |
|
||||||
| 요구사항 기준 | `docs/20261006_선물_UI_추가/prd.md` |
|
| 요구사항 기준 | `docs/20261006_선물_UI_추가/prd.md` |
|
||||||
| API 기준 | `docs/20261006_선물_UI_추가/prd.md` §11 |
|
| API 기준 | `docs/20261006_선물_UI_추가/prd.md` §11 |
|
||||||
| 현재 Phase | Phase 11 선물 딥링크·정책 링크·크리에이터 표시 보정 |
|
| 현재 Phase | Phase 12 선물 상세 TALK 문의 연결 |
|
||||||
| 현재 활성 Goal | `P11-GATE` 인증 runtime 검증 대기 |
|
| 현재 활성 Goal | `P12-GATE` 인증 runtime 검증 대기 |
|
||||||
|
|
||||||
## 목표
|
## 목표
|
||||||
|
|
||||||
@@ -28,6 +28,7 @@
|
|||||||
| 9 | 구현·focused 검사 완료 | `2/2` | `P9-GATE` | 최종 build 및 Kakao/화면 runtime 미검증 |
|
| 9 | 구현·focused 검사 완료 | `2/2` | `P9-GATE` | 최종 build 및 Kakao/화면 runtime 미검증 |
|
||||||
| 10 | 코드·정적 gate 승인, runtime 미완료 | `6/6` | `P10-GATE` runtime 검증 대기 | 인증 실행 환경 부재 |
|
| 10 | 코드·정적 gate 승인, runtime 미완료 | `6/6` | `P10-GATE` runtime 검증 대기 | 인증 실행 환경 부재 |
|
||||||
| 11 | 코드·정적 gate 승인, runtime 미완료 | `3/3` | `P11-GATE` 인증 runtime 검증 대기 | 인증 실행 환경과 화면 캡처 부재 |
|
| 11 | 코드·정적 gate 승인, runtime 미완료 | `3/3` | `P11-GATE` 인증 runtime 검증 대기 | 인증 실행 환경과 화면 캡처 부재 |
|
||||||
|
| 12 | 코드·정적 gate 승인, runtime 미완료 | `1/1` | `P12-GATE` 인증 runtime 검증 대기 | 인증 실행 환경과 외부 앱 전환 확인 부재 |
|
||||||
|
|
||||||
완료된 Task와 검증 기록은 삭제하지 않는다. 후속 수정은 새 Task 또는 정정 기록으로 누적한다.
|
완료된 Task와 검증 기록은 삭제하지 않는다. 후속 수정은 새 Task 또는 정정 기록으로 누적한다.
|
||||||
|
|
||||||
@@ -43,6 +44,7 @@
|
|||||||
- `deepLinkValue=GIFT_DETAIL`, `deepLinkId=applicationNo` 딥링크 진입.
|
- `deepLinkValue=GIFT_DETAIL`, `deepLinkId=applicationNo` 딥링크 진입.
|
||||||
- `gift-detail/{applicationNo}` 경로형 딥링크 진입.
|
- `gift-detail/{applicationNo}` 경로형 딥링크 진입.
|
||||||
- 선물 보내기 화면의 크리에이터 프로필 이미지, 파손 정책 링크, 채널 버튼 UI 보정.
|
- 선물 보내기 화면의 크리에이터 프로필 이미지, 파손 정책 링크, 채널 버튼 UI 보정.
|
||||||
|
- 선물 상세의 상태별 `문의하기`와 고객센터 `TALK 문의` action 통합.
|
||||||
|
|
||||||
### 제외
|
### 제외
|
||||||
|
|
||||||
@@ -1059,6 +1061,41 @@ git diff --check
|
|||||||
|
|
||||||
**Expected:** 모든 자동 검증 exit 0, 양 스킴 `BUILD SUCCEEDED`. 인증 실행 환경이 없으면 runtime Gate만 미완료로 남긴다.
|
**Expected:** 모든 자동 검증 exit 0, 양 스킴 `BUILD SUCCEEDED`. 인증 실행 환경이 없으면 runtime Gate만 미완료로 남긴다.
|
||||||
|
|
||||||
|
## Phase 12 선물 상세 TALK 문의 연결
|
||||||
|
|
||||||
|
**Phase 결과:** 선물 상세의 발신·수신 전달 불가와 취소 완료 `문의하기`가 앱 내 고객센터로 이동하지 않고 고객센터의 `TALK 문의`와 같은 action을 실행한다.
|
||||||
|
|
||||||
|
**상태:** 코드·정적 Gate 승인, runtime 검증 대기.
|
||||||
|
|
||||||
|
### Task 12.1 고객센터 TALK 문의 action 재사용
|
||||||
|
|
||||||
|
**Goal 실행 `P12-T1`:** 기존 고객센터 TALK URL 열기 action을 공용화하고 세 선물 상세 문의 버튼에서 재사용한다.
|
||||||
|
|
||||||
|
- **시작 조건:** PRD `DETAIL-007`, `DEC-015` 확정.
|
||||||
|
- **완료 증거:** source contract RED/GREEN, 직접 영향 회귀, 양 스킴 generic iOS Debug build.
|
||||||
|
- **범위 밖:** 버튼 문구·노출 조건·스타일·레이아웃, 새 route/webview/dependency/API.
|
||||||
|
|
||||||
|
**Files:**
|
||||||
|
|
||||||
|
- Modify: `SodaLive/Sources/MyPage/ServiceCenter/ServiceCenterView.swift`
|
||||||
|
- Modify: `SodaLive/Sources/V2/Gift/Detail/Components/GiftDetailActionBar.swift`
|
||||||
|
- Modify: `SodaLive/Sources/V2/Gift/Detail/Components/ReceivedGiftDetailContentView.swift`
|
||||||
|
- Modify: `SodaLive/Sources/V2/Gift/Detail/Components/GiftCancelCompleteView.swift`
|
||||||
|
- Modify if orphaned: `SodaLive/Sources/V2/Gift/Constants/GiftConstants.swift`
|
||||||
|
- Create: `work/tests/check-gift-detail-talk-inquiry.sh`
|
||||||
|
|
||||||
|
- [x] **RED:** 고객센터와 세 선물 상세 문의 버튼이 하나의 TALK action을 사용하고 선물 상세에 `.serviceCenter` 이동과 URL 복제가 없는 source contract를 작성한다.
|
||||||
|
- [x] **RED 확인:** `bash work/tests/check-gift-detail-talk-inquiry.sh`가 공용 action 부재 때문에 실패하는지 확인한다.
|
||||||
|
- [x] **GREEN:** 기존 Kakao TALK URL 열기를 작은 공용 함수로 옮기고 고객센터 및 세 선물 상세 버튼이 호출하게 한다. 기존 guard·상태·UI는 유지한다.
|
||||||
|
- [x] **GREEN 확인:** 같은 source contract가 성공한다.
|
||||||
|
- [x] **REFACTOR:** 새로 미사용된 `GiftConstants.inquiryStep`만 제거하고 직접 영향 회귀와 양 스킴 build 결과를 Progress에 기록한다.
|
||||||
|
|
||||||
|
### Phase 12 Gate
|
||||||
|
|
||||||
|
- [x] `bash work/tests/check-gift-detail-talk-inquiry.sh`, 관련 Gift focused 검사, Swift/shell parse, `git diff --check`가 성공한다.
|
||||||
|
- [x] `SodaLive-dev`, `SodaLive` generic iOS Debug build가 `BUILD SUCCEEDED`다.
|
||||||
|
- [ ] runtime 가능 시 세 버튼이 Kakao TALK 문의를 여는지 확인하고 불가능하면 미검증 사유를 기록한다.
|
||||||
|
|
||||||
## 실행 순서와 의존성
|
## 실행 순서와 의존성
|
||||||
|
|
||||||
| 순서 | Goal | 선행조건 | 병행 가능 | 차단 시 다음 행동 |
|
| 순서 | Goal | 선행조건 | 병행 가능 | 차단 시 다음 행동 |
|
||||||
@@ -1080,9 +1117,11 @@ git diff --check
|
|||||||
| 15 | `P11-T2` | PRD Phase 11 승인 | `P11-T1`과 가능 | profile/policy mode 분리 검증 |
|
| 15 | `P11-T2` | PRD Phase 11 승인 | `P11-T1`과 가능 | profile/policy mode 분리 검증 |
|
||||||
| 16 | `P11-T3` | `P11-T2` | 아니요 | 공유 action file 순차 수정 |
|
| 16 | `P11-T3` | `P11-T2` | 아니요 | 공유 action file 순차 수정 |
|
||||||
| 17 | `P11-GATE` | `P11-T1`~`P11-T3` | 아니요 | 실패 소유 Task에 회귀 Task 추가 |
|
| 17 | `P11-GATE` | `P11-T1`~`P11-T3` | 아니요 | 실패 소유 Task에 회귀 Task 추가 |
|
||||||
|
| 18 | `P12-T1` | PRD `DETAIL-007` 확정 | 아니요 | 기존 고객센터 TALK action 재확인 |
|
||||||
|
| 19 | `P12-GATE` | `P12-T1` | 아니요 | 실패 소유 Task 수정 |
|
||||||
|
|
||||||
```text
|
```text
|
||||||
P2 -> P3/P4/P5 -> P6/P7 -> P8/P9/P10 -> P11
|
P2 -> P3/P4/P5 -> P6/P7 -> P8/P9/P10 -> P11 -> P12
|
||||||
```
|
```
|
||||||
|
|
||||||
## 변경 금지 항목
|
## 변경 금지 항목
|
||||||
@@ -1169,6 +1208,7 @@ P2 -> P3/P4/P5 -> P6/P7 -> P8/P9/P10 -> P11
|
|||||||
| 2026-10-08 | `P11-T3` | button source contract가 기존 text-only outline UI에서 RED임을 확인했다. 기존 predicate와 세 recipient route 값을 유지하면서 20pt `ic_send_gift`, 검은 문구, 흰색 capsule을 적용했고 button mode와 전체 Phase 11 source contract, shell parse가 GREEN이다. Talk/DM UI는 변경하지 않았다. |
|
| 2026-10-08 | `P11-T3` | button source contract가 기존 text-only outline UI에서 RED임을 확인했다. 기존 predicate와 세 recipient route 값을 유지하면서 20pt `ic_send_gift`, 검은 문구, 흰색 capsule을 적용했고 button mode와 전체 Phase 11 source contract, shell parse가 GREEN이다. Talk/DM UI는 변경하지 않았다. |
|
||||||
| 2026-10-08 | `P11-GATE` | 계획된 경로형 누락 identifier 거부와 path splash pending coverage를 보강해 deep-link harness 22 assertions가 GREEN이다. Phase 11 profile/policy/button, address, contact 80, recipient 280, recipient-form, received-states, decoding 22 assertions와 shell parse, `git diff --check`가 성공했다. `SodaLive-dev`, `SodaLive` generic iOS Debug build는 각각 `BUILD SUCCEEDED`다. 독립 기능 리뷰는 `APPROVE`, Critical/Important/Minor 없음이며 정적 시각 구현도 제품 결함 없이 승인됐다. 인증 화면 screenshot·링크 탭·VoiceOver·좁은 화면/Dynamic Type은 실행 환경 부재로 미완료다. |
|
| 2026-10-08 | `P11-GATE` | 계획된 경로형 누락 identifier 거부와 path splash pending coverage를 보강해 deep-link harness 22 assertions가 GREEN이다. Phase 11 profile/policy/button, address, contact 80, recipient 280, recipient-form, received-states, decoding 22 assertions와 shell parse, `git diff --check`가 성공했다. `SodaLive-dev`, `SodaLive` generic iOS Debug build는 각각 `BUILD SUCCEEDED`다. 독립 기능 리뷰는 `APPROVE`, Critical/Important/Minor 없음이며 정적 시각 구현도 제품 결함 없이 승인됐다. 인증 화면 screenshot·링크 탭·VoiceOver·좁은 화면/Dynamic Type은 실행 환경 부재로 미완료다. |
|
||||||
| 2026-10-08 | `P7-R1` | source check 기대값을 Figma 전달 불가 안내 문구로 먼저 바꿔 `bash work/tests/check-received-gift-detail.sh received-states`가 `FAIL received-states: disposal warning`으로 실패하는 RED를 확인했다. 이후 발신·수신 상세의 사유 아래 붉은 안내 문구만 교체했고 기존 폰트·색상·조건부 렌더링은 유지했다. received-states 구조 검사, `bash -n work/tests/check-received-gift-detail.sh`, Swift parse, `git diff --check`, `SodaLive-dev` generic iOS Debug build가 성공했다. 인증 runtime screenshot, 좁은 화면 실제 줄바꿈, Dynamic Type·VoiceOver QA는 실행 환경 부재로 미수행이다. |
|
| 2026-10-08 | `P7-R1` | source check 기대값을 Figma 전달 불가 안내 문구로 먼저 바꿔 `bash work/tests/check-received-gift-detail.sh received-states`가 `FAIL received-states: disposal warning`으로 실패하는 RED를 확인했다. 이후 발신·수신 상세의 사유 아래 붉은 안내 문구만 교체했고 기존 폰트·색상·조건부 렌더링은 유지했다. received-states 구조 검사, `bash -n work/tests/check-received-gift-detail.sh`, Swift parse, `git diff --check`, `SodaLive-dev` generic iOS Debug build가 성공했다. 인증 runtime screenshot, 좁은 화면 실제 줄바꿈, Dynamic Type·VoiceOver QA는 실행 환경 부재로 미수행이다. |
|
||||||
|
| 2026-10-08 | `P12-T1` | `bash work/tests/check-gift-detail-talk-inquiry.sh`가 `ServiceCenterInquiry.openTalk` 부재로 RED임을 확인했다. 기존 고객센터 Kakao TALK URL 열기를 `ServiceCenterInquiry.openTalk()`으로 공용화하고 발신 전달 불가, 수신 전달 불가, 취소 완료 상세의 세 `문의하기`가 호출하도록 교체했다. 기존 문구·노출 조건·style·연속 탭 guard는 유지했고 미사용된 `GiftConstants.inquiryStep`만 제거했다. 신규 contract, received-states, cancel-loading, decoding 22 assertions, deep-link 22 assertions, Phase 11 회귀, Swift/shell parse가 GREEN이다. `SodaLive-dev` 첫 빌드는 120초 제한으로 중단됐으나 동일 명령 재실행과 `SodaLive` generic iOS Debug build는 각각 `BUILD SUCCEEDED`다. 인증 실행 환경에서 세 상태 버튼의 실제 Kakao TALK 전환은 미수행이다. |
|
||||||
|
|
||||||
## Decision Log
|
## Decision Log
|
||||||
|
|
||||||
@@ -1188,6 +1228,7 @@ P2 -> P3/P4/P5 -> P6/P7 -> P8/P9/P10 -> P11
|
|||||||
| 2026-10-08 | `DEC-012` | 확정 | 파손 면책 행만 새 정책 URL을 사용하고 기존 약관 URL은 유지한다. | 사용자 제공 URL 및 설계 승인 | `P11-T2`, PRD `COMMON-007` |
|
| 2026-10-08 | `DEC-012` | 확정 | 파손 면책 행만 새 정책 URL을 사용하고 기존 약관 URL은 유지한다. | 사용자 제공 URL 및 설계 승인 | `P11-T2`, PRD `COMMON-007` |
|
||||||
| 2026-10-08 | `DEC-013` | 확정 | Gift source의 브랜드 문구는 이미 `소다라이브`이므로 변경하지 않는다. | source 검색과 사용자 선택 A | Phase 11, PRD `DEC-013` |
|
| 2026-10-08 | `DEC-013` | 확정 | Gift source의 브랜드 문구는 이미 `소다라이브`이므로 변경하지 않는다. | source 검색과 사용자 선택 A | Phase 11, PRD `DEC-013` |
|
||||||
| 2026-10-08 | `DEC-014` | 확정 | 전달 불가 상세의 붉은 안내 문구는 서버 필드 추가 없이 앱 내 고정 문구로 교체한다. | 사용자 확인: “동일하게 앱 내에 심으면 된다.” | `P7-R1`, PRD `RECV-008` |
|
| 2026-10-08 | `DEC-014` | 확정 | 전달 불가 상세의 붉은 안내 문구는 서버 필드 추가 없이 앱 내 고정 문구로 교체한다. | 사용자 확인: “동일하게 앱 내에 심으면 된다.” | `P7-R1`, PRD `RECV-008` |
|
||||||
|
| 2026-10-08 | `DEC-015` | 확정 | 선물 상세의 세 `문의하기`는 고객센터 화면 이동 대신 고객센터 `TALK 문의`와 같은 공용 action을 호출한다. | 사용자 요청과 기존 고객센터 action 확인 | `P12-T1`, PRD `DETAIL-007` |
|
||||||
|
|
||||||
## 발견된 문제
|
## 발견된 문제
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user