Files

23 KiB
Raw Permalink Blame History

팔로잉 해제 확인 팝업 Goal 실행형 구현 계획

문서 항목 내용
상태 완료
작성일 2026-08-18
요구사항 기준 docs/20260818_팔로잉_해제_확인_팝업/prd.md
API 기준 해당 없음: 기존 팔로우 API 사용
현재 Phase 완료
현재 활성 Goal 없음

목표

팔로잉 리스트와 크리에이터 채널에서 팔로우 해제 전에 동일한 확인 Dialog를 거치게 하고, 팔로잉 리스트의 팔로잉 중 버튼을 크리에이터 채널과 같은 원형 스타일로 맞춘다.

현재 상태

Phase 상태 완료 Task 활성/다음 Goal 차단 또는 남은 조건
1 완료 2/2 없음 없음
2 완료 1/1 없음 없음
  • 동시에 하나의 미완료 goal만 운용한다.
  • 완료된 Task와 검증 기록은 되돌리거나 삭제하지 않는다. 후속 수정은 회귀 수정 Task와 새 goal ID를 추가한다.
  • 사용자가 명시적으로 요청하지 않으면 goal에 token budget을 설정하지 않는다.

범위

포함

  • 팔로잉 리스트의 팔로잉 중 버튼 시각 변경.
  • 팔로잉 리스트의 팔로잉 중 버튼 터치 시 Bottom Sheet 대신 팔로우 해제 확인 Dialog 표시.
  • 크리에이터 채널의 팔로잉 중 버튼 터치 시 즉시 해제 대신 팔로우 해제 확인 Dialog 표시.
  • 한국어, 일본어, 영어 Dialog 문구 추가.
  • 취소/확인 흐름의 상태 변경, API 호출 여부, 오류 표시 유지 검증.

제외

  • 서버 API, DTO, 인증 header, token 처리 변경.
  • 팔로우 시작 동작 변경.
  • 알림 설정 Bottom Sheet component 삭제.
  • 팔로잉 리스트 외 다른 FollowCreatorItemView 재사용 화면의 UX 변경. 재사용 영향이 확인되면 PRD와 계획을 먼저 갱신한다.
  • Visual QA는 에이전트가 진행하지 않고 사용자가 직접 수행한다.

기술적 제약

  • 기술 스택: Swift, SwiftUI, Combine, Moya, 기존 I18n.pick 다국어 구조.
  • 아키텍처: View는 표시 상태와 사용자 액션 연결, ViewModel은 기존 팔로우 API 호출과 상태 갱신을 담당한다.
  • UI 토큰: 버튼 배경은 Color.gray800, 버튼 이미지는 ic_new_following_white를 사용한다.
  • Dialog: PRD의 “V2 Dialog”는 SodaV2ActionModal을 의미한다. 팔로우 해제 확인 Dialog는 SodaLive/Sources/V2/Component/Modal/SodaV2ActionModal.swift를 사용한다.
  • 계약: 제공되지 않은 endpoint, DTO, enum, 오류 status/key를 만들지 않는다.
  • 검증: 저장소에 테스트 번들 타깃이 확인되지 않으므로 focused unit test가 불가능하면 TDD 예외 사유와 수동 검증을 Progress에 기록한다.
  • 빌드: xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build를 기준으로 한다.

Task TDD 작성 규칙

구현 Task는 가능한 경우 아래 순서를 따른다. 이번 작업은 테스트 타깃 부재로 각 Task에 TDD 예외 사유대체 검증 방법을 남기고 빌드 및 사용자 수동 QA로 대체했다.

  • RED: 가장 작은 실패 test를 작성한다.
  • RED 확인: focused test를 실행해 요구 동작이 없어서 발생한 의도한 assertion 실패를 확인한다.
  • GREEN: RED를 통과시키는 최소 구현을 작성한다.
  • GREEN 확인: 같은 focused test를 다시 실행해 성공을 확인한다.
  • REFACTOR: 이번 Task가 만든 중복만 정리하고 focused test·직접 영향 회귀·빌드를 다시 실행해 실제 결과를 Progress에 기록한다.

Phase 1 팔로잉 리스트

Phase 결과: 팔로잉 리스트에서 팔로잉 중 버튼이 새 원형 스타일로 보이고, 터치 시 Bottom Sheet 없이 확인 Dialog를 거쳐 팔로우 해제를 진행한다.

선행조건: PRD UNFOLLOW-LIST-001~005, UNFOLLOW-DIALOG-001~004 확인.

Phase 완료 조건: P1-T1, P1-T2, P1-GATE 완료, 검증 기록 누적.

구현 항목

Task 1.1 팔로잉 리스트 팔로잉 중 버튼 스타일 변경

Goal 실행 P1-T1: 팔로잉 리스트 row의 팔로잉 중 버튼을 ic_new_following_whiteColor.gray800 원형 버튼으로 표시한다.

  • 시작 조건: PRD UNFOLLOW-LIST-001~003 확정.
  • 완료 증거: 대상 파일 변경, 빌드 성공, 팔로잉 리스트에서 시각 확인 기록.
  • 범위 밖: 팔로우 시작 버튼, 알림 설정 Bottom Sheet, 다른 화면의 버튼 동작 변경.
  • TDD 예외 사유: 현재 저장소에서 앱 테스트 번들 타깃이 확인되지 않아 SwiftUI row 단위 자동 test를 바로 추가하기 어렵다.
  • 대체 검증 방법: preview 또는 시뮬레이터에서 팔로잉 중/미팔로우 상태 row를 확인하고, 빌드 결과와 스크린샷 또는 수동 확인 기록을 Progress에 남긴다.

Files:

  • Modify: SodaLive/Sources/Follow/FollowCreatorItemView.swift
  • Check: SodaLive/Sources/V2/CreatorChannel/Components/CreatorChannelTitleBar.swift
  • Check: SodaLive/Sources/UI/Theme/Color.swift
  • Check: asset catalog에서 ic_new_following_white 존재 여부

Interfaces:

  • Consumes: GetCreatorFollowingAllListItem.isFollow, GetCreatorFollowingAllListItem.isNotify

  • Produces: 팔로잉 중 상태에서 ic_new_following_white 원형 버튼 UI

  • FollowCreatorItemView에서 creator.isFollow == true일 때 기존 FollowButtonImageAsset(type: .following/.followingNoAlarm) 렌더링을 사용하지 않도록 변경한다.

  • 팔로잉 중 버튼은 Image("ic_new_following_white"), .resizable(), .frame(width: 20, height: 20), .frame(width: 36, height: 36), .background(Color.gray800), .clipShape(Circle()) 기준으로 구현한다.

  • creator.isFollow == false일 때 기존 팔로우 버튼 렌더링과 onClickFollow 동작을 유지한다.

  • row 전체 onTapGesture와 버튼 tap gesture가 충돌하지 않는지 확인한다.

  • xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build를 실행한다.

  • 수동 확인: 팔로잉 리스트에서 팔로잉 중 row의 버튼이 원형 gray800 배경과 흰색 following 아이콘으로 보인다.

  • 수동 확인: 미팔로우 row가 존재하는 테스트 데이터에서는 기존 팔로우 버튼이 유지된다.

Task 1.2 팔로잉 리스트 팔로우 해제 확인 Dialog 적용

Goal 실행 P1-T2: 팔로잉 리스트에서 팔로잉 중 버튼을 누르면 Bottom Sheet 없이 팔로우 해제 확인 Dialog를 표시하고, 확인 시에만 해제를 실행한다.

  • 시작 조건: P1-T1 완료, PRD OQ-001, OQ-002 해결 결정 확인.
  • 완료 증거: Bottom Sheet 미표시, Dialog 취소/확인 흐름 확인, 빌드 성공, Progress 기록.
  • 범위 밖: CreatorFollowNotifyDialog 삭제, 알림 설정 UX 개편, 팔로잉 리스트 외 재사용 화면 동작 변경.
  • TDD 예외 사유: 현재 저장소에서 테스트 번들 타깃이 확인되지 않아 View interaction 자동 test를 바로 추가하기 어렵다.
  • 대체 검증 방법: 시뮬레이터에서 버튼 tap, Dialog 취소, Dialog 확인, API 성공/실패 상태를 직접 확인하고 결과를 Progress에 남긴다.

Files:

  • Modify: SodaLive/Sources/Follow/FollowCreatorView.swift
  • Modify: SodaLive/Sources/Follow/FollowCreatorItemView.swift
  • Modify: SodaLive/Sources/I18n/I18n.swift
  • Check: SodaLive/Sources/V2/Component/Modal/SodaV2ActionModal.swift
  • Check: SodaLive/Sources/Follow/FollowCreatorViewModel.swift

Interfaces:

  • Consumes: FollowCreatorItemView의 팔로잉 중 버튼 tap callback, FollowCreatorViewModel.creatorFollow(creatorId:index:follow:notify:)

  • Produces: 선택된 creatorId, selectedItemIndex, creatorName 기반 팔로우 해제 확인 Dialog 상태

  • I18n에 팔로우 해제 Dialog title, message, cancel, confirm 문구를 추가한다.

  • 한국어 본문은 팔로우를 해제할까요?\n{{creatorName}}의 소식을 받을 수 없어요.를 사용한다.

  • 일본어 본문은 {{creatorName}}からの最新情報を受け取れなくなります。\nフォローを解除しますか를 사용한다.

  • 영어 본문은 You won't receive updates from {{creatorName}}.\nUnfollow this creator?를 사용한다.

  • FollowCreatorView에 팔로우 해제 확인 Dialog 표시 상태와 선택된 크리에이터 이름을 추가한다.

  • 팔로우 해제 확인 Dialog는 SodaV2ActionModal(title:message:button1:button2:onDimmedTap:)로 표시한다.

  • FollowCreatorItemView의 팔로잉 중 tap callback은 Bottom Sheet 표시가 아니라 팔로우 해제 확인 Dialog 표시로 연결한다.

  • Dialog 취소 액션은 Dialog 상태만 닫고 creatorId, selectedItemIndex, creatorName을 초기화한다.

  • Dialog 확인 액션은 Dialog를 닫은 뒤 viewModel.creatorFollow(creatorId:index:follow:false,notify:false)를 호출하고 선택 상태를 초기화한다.

  • 기존 CreatorFollowNotifyDialog는 팔로잉 리스트의 팔로우 해제 진입점에서 표시되지 않게 한다.

  • xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build를 실행한다.

  • 수동 확인: 팔로잉 리스트에서 팔로잉 중 버튼 tap 시 Bottom Sheet가 표시되지 않는다.

  • 수동 확인: Dialog 취소 시 API 호출 없이 팔로잉 상태가 유지된다.

  • 수동 확인: Dialog 확인 시 팔로우 해제가 진행되고 row 상태가 갱신된다.

  • 수동 확인: ko/en/ja 언어에서 title, body, 취소, 확인 문구가 PRD와 일치한다.

완료 조건

  • P1-T1, P1-T2의 체크박스와 완료 증거가 모두 충족됐다.
  • 팔로잉 리스트의 확정 요구사항 UNFOLLOW-LIST-001~005가 구현 또는 명시적 결정으로 추적된다.
  • 알려진 문서와 구현의 차이가 없다.

검증 방법

Phase 1 Gate

Goal 실행 P1-GATE: 팔로잉 리스트 버튼 스타일과 팔로우 해제 확인 흐름을 최종 판정한다.

  • 시작 조건: P1-T1, P1-T2 완료.
  • 완료 증거: 빌드와 수동 검증 통과, Progress 기록.
  • 범위 밖: Gate 통과를 위한 test 삭제·완화와 관련 없는 화면 수정.
xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build

Expected: exit code 0, 팔로잉 리스트에서 새 원형 버튼 표시, Bottom Sheet 미표시, Dialog 취소/확인 흐름 성공.

수동 검증:

  • 팔로잉 리스트 팔로잉 중 버튼이 ic_new_following_whiteColor.gray800 원형 스타일로 보인다.
  • 팔로잉 리스트 팔로잉 중 버튼 tap 시 확인 Dialog가 표시된다.
  • 취소 시 상태 변경과 API 호출 없이 Dialog만 닫힌다.
  • 확인 시 기존 팔로우 해제 프로세스가 실행된다.
  • 한국어, 일본어, 영어 Dialog 문구가 PRD와 일치한다.

Phase 2 크리에이터 채널

Phase 결과: 크리에이터 채널에서 팔로잉 중 버튼을 눌러도 즉시 해제되지 않고 확인 Dialog를 거쳐 해제된다.

선행조건: P1-GATE 완료. P1-T2에서 추가한 Dialog 문구와 component 재사용 가능.

Phase 완료 조건: P2-T1, P2-GATE 완료, 검증 기록 누적.

구현 항목

Task 2.1 크리에이터 채널 팔로우 해제 확인 Dialog 적용

Goal 실행 P2-T1: 크리에이터 채널의 팔로잉 중 버튼 tap을 확인 Dialog 표시로 바꾸고, 확인 시에만 기존 해제 프로세스를 실행한다.

  • 시작 조건: P1-GATE 완료, PRD UNFOLLOW-CHANNEL-001~003 확정.
  • 완료 증거: 즉시 해제 제거, Dialog 취소/확인 흐름 확인, 빌드 성공, Progress 기록.
  • 범위 밖: 크리에이터 채널 follow 버튼 시각 변경, 알림 버튼 동작 변경, 더보기/report 메뉴 변경.
  • TDD 예외 사유: 현재 저장소에서 테스트 번들 타깃이 확인되지 않아 SwiftUI interaction 자동 test를 바로 추가하기 어렵다.
  • 대체 검증 방법: 시뮬레이터에서 크리에이터 채널 팔로잉 중 버튼 tap, Dialog 취소, Dialog 확인, API 성공/실패 상태를 직접 확인한다.

Files:

  • Modify: SodaLive/Sources/V2/CreatorChannel/CreatorChannelView.swift
  • Check: SodaLive/Sources/V2/CreatorChannel/Components/CreatorChannelTitleBar.swift
  • Check: SodaLive/Sources/V2/CreatorChannel/CreatorChannelViewModel.swift
  • Check: SodaLive/Sources/I18n/I18n.swift
  • Check: SodaLive/Sources/V2/Component/Modal/SodaV2ActionModal.swift

Interfaces:

  • Consumes: CreatorChannelTitleBar.onTapUnfollow, CreatorChannelViewModel.creatorFollow(follow:notify:), CreatorChannelHomeResponse.creator.nickname

  • Produces: 크리에이터 채널 overlay 팔로우 해제 확인 Dialog 상태

  • CreatorChannelView에 팔로우 해제 확인 Dialog 표시 상태를 추가한다.

  • CreatorChannelTitleBaronTapUnfollow 연결을 viewModel.creatorFollow(follow:false, notify:false) 직접 호출에서 Dialog 표시로 바꾼다.

  • 팔로우 해제 확인 Dialog는 SodaV2ActionModal(title:message:button1:button2:onDimmedTap:)로 표시한다.

  • Dialog 본문에는 viewModel.response?.creator.nickname을 사용한다.

  • Dialog 취소 액션은 Dialog 상태만 닫고 viewModel.creatorFollow를 호출하지 않는다.

  • Dialog 확인 액션은 Dialog를 닫은 뒤 viewModel.creatorFollow(follow: false, notify: false)를 호출한다.

  • 기존 follow, notify, unnotify, more 액션은 변경하지 않는다.

  • xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build를 실행한다.

  • 수동 확인: 크리에이터 채널에서 팔로잉 중 버튼 tap 시 즉시 해제되지 않고 Dialog가 표시된다.

  • 수동 확인: 취소 시 isFollowisNotify가 유지된다.

  • 수동 확인: 확인 시 isFollow=false, isNotify=false로 갱신된다.

  • 수동 확인: 긴 크리에이터 이름에서도 Dialog 본문이 잘리지 않는다.

완료 조건

  • P2-T1의 체크박스와 완료 증거가 모두 충족됐다.
  • 크리에이터 채널 확정 요구사항 UNFOLLOW-CHANNEL-001~003이 구현 또는 명시적 결정으로 추적된다.
  • Phase 1의 Dialog 문구와 Phase 2의 Dialog 문구가 동일한 I18n 기준을 사용한다.

검증 방법

Phase 2 Gate

Goal 실행 P2-GATE: 크리에이터 채널 팔로우 해제 확인 흐름과 전체 회귀를 최종 판정한다.

  • 시작 조건: P2-T1 완료.
  • 완료 증거: 빌드와 수동 검증 통과, Progress 기록.
  • 범위 밖: 실패와 무관한 다음 기능 구현.
xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build

Expected: exit code 0, 크리에이터 채널에서 Dialog 취소/확인 흐름 성공, 팔로잉 리스트 Phase 1 흐름 회귀 없음.

수동 검증:

  • 크리에이터 채널 팔로잉 중 버튼 tap 시 확인 Dialog가 표시된다.
  • 취소 시 상태 변경과 API 호출 없이 Dialog만 닫힌다.
  • 확인 시 기존 팔로우 해제 프로세스가 실행된다.
  • 팔로잉 리스트의 Phase 1 흐름이 여전히 통과한다.

실행 순서와 의존성

순서 Goal 선행조건 병행 가능 차단 시 다음 행동
1 P1-T1 없음 아니요 asset 또는 Color token 확인
2 P1-T2 P1-T1 아니요 SodaV2ActionModal 사용과 한국어 확정 문구 기준으로 구현
3 P1-GATE Phase 1 Task 전체 아니요 실패 소유 Task의 회귀 수정 goal 생성
4 P2-T1 P1-GATE 아니요 Dialog 공통화 또는 상태 연결 결정 기록
5 P2-GATE P2-T1 아니요 실패 소유 Task의 회귀 수정 goal 생성
P1-T1 -> P1-T2 -> P1-GATE -> P2-T1 -> P2-GATE

변경 금지 항목

  • 확정된 PRD 요구사항을 근거 없이 변경하지 않는다.
  • 기존 완료 체크박스와 Progress·Decision Log·검증 기록을 삭제하거나 덮어쓰지 않는다.
  • 제공되지 않은 endpoint, DTO, enum, 오류 값을 만들지 않는다.
  • 요청 범위 밖의 리팩터링, dependency 추가와 공통 abstraction을 확장하지 않는다.
  • test를 삭제·skip·완화하거나 타입 오류를 우회해 Gate를 통과시키지 않는다.
  • JWT, password, token, signed URL 같은 민감정보를 log·fixture·문서에 기록하지 않는다.

의사결정 및 중단 규칙

  • PRD와 구현 계획이 충돌하면 PRD를 우선하고, Decision Log에 근거를 남긴 뒤 계획을 갱신한다.
  • 구현 범위가 바뀌면 prd.md를 먼저 보강하고 plan-task.md 체크리스트를 업데이트한 뒤 코드를 수정한다.
  • 한국어 Dialog 문구는 PRD DEC-004의 확정 문구를 사용한다.
  • 팔로우 해제 확인 Dialog는 PRD DEC-005에 따라 SodaV2ActionModal을 사용한다.
  • 체크박스 일부, 빌드 일부 또는 수동 검증 일부만 끝난 상태에서는 goal을 완료로 갱신하지 않는다.

Progress

기존 기록을 삭제하거나 덮어쓰지 않고 실제 실행 결과를 차수별로 누적한다.

문서 작성 1차 실행 — 2026-08-18

  • 상태: 완료
  • 무엇을: PRD와 구현 계획 초안을 작성했다. 코드 구현은 하지 않았다.
  • 왜: 사용자 요청이 코드 구현 금지와 문서 생성으로 제한됐다.
  • 어떻게:
    • docs/sample/sample-prd.md 확인 — PRD 구조 기준 확인.
    • docs/sample/sample-plan-task.md 확인 — Phase, Task, Goal, 완료 증거 구조 확인.
    • docs/agent-guides/documentation-policy.md 확인 — 신규 문서 경로 규칙 확인.
    • 관련 Swift 파일 구조 확인 — FollowCreatorView, FollowCreatorItemView, FollowCreatorViewModel, CreatorChannelView, CreatorChannelTitleBar, CreatorChannelViewModel, SodaDialog, I18n, Color.
  • 남은 항목: 후속 구현 전 OQ-001, OQ-002를 제품/구현자가 확인해야 한다.
  • 다음 행동: 사용자가 문서를 검토한 뒤 구현 진행 여부를 별도 지시한다.

문서 보완 2차 실행 — 2026-08-18

  • 상태: 완료
  • 무엇을: OQ-001, OQ-002의 사용자 결정을 PRD와 구현 계획에 반영했다. 코드 구현은 하지 않았다.
  • 왜: 사용자가 한국어 문구 마침표 제거와 SodaV2ActionModal 사용을 확정했다.
  • 어떻게:
    • SodaLive/Sources/V2/Component/Modal/SodaV2ActionModal.swift 확인 — V2 Dialog 대상 component 경로 확인.
    • PRD Dialog 본문 표, Open Questions, Decision Log 갱신.
    • plan-task.md의 시작 조건, Files, 실행 체크박스, Decision Log, 발견된 문제 갱신.
  • 남은 항목: 없음. 후속 구현 전 추가 제품 결정이 생기면 PRD를 먼저 갱신한다.
  • 다음 행동: 사용자가 별도 지시하면 이 문서 기준으로 구현한다.

구현 및 빌드 검증 3차 실행 — 2026-08-18

  • 상태: 구현 완료 / 사용자 수동 QA 대기
  • 무엇을: 팔로잉 리스트와 크리에이터 채널의 팔로우 해제 동작을 SodaV2ActionModal 확인 흐름으로 변경하고, 팔로잉 리스트의 팔로잉 중 버튼을 원형 ic_new_following_white + Color.gray800 스타일로 변경했다.
  • 왜: 사용자 지시에 따라 plan-task.md 기준 구현을 진행했다.
  • 어떻게:
    • FollowCreatorItemView에 팔로잉 리스트 전용 onTapUnfollow callback과 원형 버튼 렌더링을 추가했다.
    • FollowCreatorView에 선택된 크리에이터 정보와 팔로우 해제 확인 Dialog 상태를 추가하고, 확인 시 기존 creatorFollow(... follow: false, notify: false) 흐름을 호출하게 했다.
    • CreatorChannelViewonTapUnfollow 즉시 해제를 Dialog 표시로 바꾸고, 확인 시에만 기존 해제 흐름을 호출하게 했다.
    • I18n.MemberChannel에 ko/en/ja title, message, cancel, confirm 문구를 추가했다.
    • 검증 명령: xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug -destination "platform=iOS Simulator,name=iPhone 16 Pro,OS=18.3.1" build** BUILD SUCCEEDED **.
  • 남은 항목: Visual QA와 실제 앱 화면 수동 확인은 사용자 진행. 관련 수동 확인 체크박스와 Phase/Gate 완료 체크박스는 미완료로 유지한다.
  • 다음 행동: 사용자가 팔로잉 리스트와 크리에이터 채널에서 Dialog 표시, 취소, 확인, 다국어/긴 이름 표시를 수동 확인한다.

사용자 수동 QA 4차 실행 — 2026-08-18

  • 상태: 완료
  • 무엇을: 사용자가 팔로잉 리스트와 크리에이터 채널의 수동 테스트를 완료했다.
  • 왜: 사용자 직접 보고에 따라 남아 있던 수동 확인 체크박스와 Phase/Gate 완료 조건을 완료로 갱신했다.
  • 어떻게:
    • PRD 14.1 기능 수용 기준, 14.2 UI/UX 수용 기준 체크박스를 완료 처리했다.
    • P1-T1, P1-T2, P1-GATE, P2-T1, P2-GATE의 수동 확인 및 완료 조건 체크박스를 완료 처리했다.
  • 남은 항목: 없음.
  • 다음 행동: 필요 시 커밋 또는 PR 절차를 별도 지시한다.

Decision Log

날짜 ID 상태 결정 근거 영향 Goal/문서
2026-08-18 DEC-001 확정 이번 작업은 문서 작성만 수행하고 코드 구현은 하지 않는다. 사용자 직접 지시 전체
2026-08-18 DEC-002 확정 팔로잉 리스트와 크리에이터 채널의 팔로우 해제는 확인 Dialog를 거친다. 사용자 요구사항 P1-T2, P2-T1
2026-08-18 DEC-003 폐기 한국어 본문 문장부호는 원문대로 문서화하고 구현 전 제품 확인 대상으로 둔다. OQ-001이 사용자 결정으로 해결됨 P1-T2, P2-T1
2026-08-18 DEC-004 확정 한국어 Dialog 본문은 팔로우를 해제할까요?\n{{creatorName}}의 소식을 받을 수 없어요.로 사용한다. 사용자 결정 P1-T2, P2-T1
2026-08-18 DEC-005 확정 팔로우 해제 확인 Dialog는 SodaV2ActionModal을 사용한다. 사용자 결정 P1-T2, P2-T1
2026-08-18 DEC-006 확정 Visual QA는 에이전트가 진행하지 않고 사용자가 직접 진행한다. 사용자 직접 지시 P1-GATE, P2-GATE

발견된 문제

ID 심각도 상태 발견 내용 영향 Goal 처리 계획
ISSUE-001 Medium 후보 FollowCreatorItemView는 팔로잉 리스트 외 알림 수신 설정 화면에서도 재사용된다. 팔로잉 리스트만 바꾸려면 callback 책임을 분리해야 할 수 있다. P1-T1, P1-T2 구현 전 재사용 화면 영향 확인 후 PRD Non-Goals를 유지할지 갱신한다.
ISSUE-002 Low 해결 한국어 Dialog 본문 {{creatorName}}의. 소식을 받을 수 없어요.에 문장부호 오탈자 가능성이 있다. P1-T2, P2-T1 DEC-004에 따라 마침표를 제거한 문구로 확정했다.

최종 보고 규칙

후속 구현자는 최종 보고에 완료한 Phase, 변경 파일과 동작, Decision Log ID, 실제 실행한 검증 명령과 결과, 수동 검증 결과, 남은 Open Question, 갱신한 문서 경로를 적는다. 성공을 추정하지 말고 최신 검증 결과와 완료되지 않은 범위를 함께 전달한다.