diff --git a/docs/20260814_크리에이터_채널_empty_state_다국어_문구_정리/plan-task.md b/docs/20260814_크리에이터_채널_empty_state_다국어_문구_정리/plan-task.md
new file mode 100644
index 00000000..4aa23f90
--- /dev/null
+++ b/docs/20260814_크리에이터_채널_empty_state_다국어_문구_정리/plan-task.md
@@ -0,0 +1,411 @@
+# 크리에이터 채널 Empty State 다국어 문구 정리 Implementation Plan
+
+> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
+
+**Goal:** 크리에이터 채널 홈/팬레터/후원 empty state의 한국어/영어/일본어 문구와 내 채널 action 버튼 노출 정책을 일관되게 적용한다.
+
+**Architecture:** API와 화면 구조는 유지하고 Android string resource, 기존 v2 크리에이터 채널 XML/ViewBinding 바인딩, Fragment/adapter 표시 분기만 최소 변경한다. 홈 후원 empty와 후원 탭 empty는 서로 다른 문구를 요구하므로 홈 전용 후원 empty string을 추가하고 상세 탭 기존 string은 유지한다.
+
+**Tech Stack:** Android XML string resources, XML Views, ViewBinding, Kotlin Fragment/RecyclerView Adapter, Gradle `:app:mergeDebugResources`, `app/src/test` local unit/source/layout tests.
+
+---
+
+| 문서 항목 | 내용 |
+|---|---|
+| 상태 | 계획 작성 중 |
+| 작성일 | `2026-08-14` |
+| 요구사항 기준 | `docs/20260814_크리에이터_채널_empty_state_다국어_문구_정리/prd.md` |
+| API 기준 | 없음 |
+| 현재 Phase | Phase 1 대기 |
+| 현재 활성 Goal | 없음 |
+
+## 목표
+
+크리에이터 채널에서 데이터가 없는 홈 후원, 홈 팬레터, 팬레터 탭, 후원 탭 empty state가 locale별 확정 문구를 표시하고 내 채널에서는 작성/후원 action 버튼을 숨긴다.
+
+## 현재 상태
+
+| Phase | 상태 | 완료 Task | 활성/다음 Goal | 차단 또는 남은 조건 |
+|---:|---|---:|---|---|
+| 1 | 대기 | `0/4` | `P1-T1` | 사용자 승인 후 구현 시작 |
+
+## 범위
+
+### 포함
+
+- 한국어/영어/일본어 string resource 값 정리
+- 홈 전용 후원 empty title resource 추가
+- 홈 후원 empty, 홈 팬레터 empty, 팬레터 탭 empty, 후원 탭 empty의 내 채널 action 버튼 숨김 정책
+- 홈 탭 팬레터 empty UI 표시와 기존 홈 후원 empty UI 구조 재사용
+- `app/src/test` 기반 resource/source/layout 회귀 테스트
+
+### 제외
+
+- 후원 dialog, 팬레터 작성 화면 내부 UX 변경
+- API, DTO, repository, pagination, ranking 변경
+- 크리에이터 채널 header/tab-bar/sticky scroll 구조 변경
+- 신규 dependency 추가
+- `app/src/androidTest`, 기기·에뮬레이터 UI 조작, 스크린샷·시각 QA
+
+## 기술적 제약
+
+- 기존 resource 파일은 `app/src/main/res/values/strings.xml`, `app/src/main/res/values-en/strings.xml`, `app/src/main/res/values-ja/strings.xml`을 수정한다.
+- 홈 후원 empty는 `creator_channel_home_donation_empty_title` 신규 key를 사용한다.
+- 후원 탭 empty는 기존 `creator_channel_donation_empty_title` key를 유지한다.
+- 후원 action은 기존 `creator_channel_donation_action` key를 재사용한다.
+- 팬레터 action은 기존 `creator_channel_fantalk_support_action` key를 유지하고 값만 확정 문구로 맞춘다.
+- 레거시 후원 구현 파일은 직접 수정하지 않는다.
+- 구현 Task는 RED -> GREEN -> REFACTOR 순서를 따른다.
+
+## Phase 1
+
+**Phase 결과:** 모든 대상 empty state가 확정 문구와 내 채널 버튼 숨김 정책을 만족한다.
+
+**선행조건:** PRD `CREATOR-EMPTY-I18N-001~005`, `CREATOR-EMPTY-UI-001~005` 확정.
+
+**Phase 완료 조건:** `P1-T1`~`P1-T3`과 `P1-GATE` 완료, 검증 기록 누적.
+
+### 구현 항목
+
+#### Task 1.1 Resource 문구 정리
+
+**Goal 실행 `P1-T1`:** 한국어/영어/일본어 string resource를 PRD 문구 표와 일치시킨다.
+
+- **시작 조건:** PRD `DEC-002`, `DEC-003` 확정.
+- **완료 증거:** 세 locale의 대상 key 값이 PRD 표와 일치하고 XML resource merge가 통과한다.
+- **범위 밖:** Kotlin/UI 표시 분기 변경.
+
+**Files:**
+
+- Modify: `app/src/main/res/values/strings.xml`
+- Modify: `app/src/main/res/values-en/strings.xml`
+- Modify: `app/src/main/res/values-ja/strings.xml`
+- Test: `app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivitySourceTest.kt`
+- Test: `app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/fantalk/CreatorChannelFanTalkFragmentLayoutTest.kt`
+- Test: `app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/donation/CreatorChannelDonationFragmentLayoutTest.kt`
+
+**Interfaces:**
+
+- Consumes: 기존 `R.string.creator_channel_fantalk_empty_title`, `R.string.creator_channel_fantalk_empty_message`, `R.string.creator_channel_fantalk_support_action`, `R.string.creator_channel_donation_empty_title`, `R.string.creator_channel_donation_action`
+- Produces: 신규 `R.string.creator_channel_home_donation_empty_title`
+
+- [ ] **RED:** resource 값 검증 테스트에 아래 기대값을 추가하거나 갱신한다.
+
+ ```kotlin
+ val expectedKo = mapOf(
+ "creator_channel_home_donation_empty_title" to "처음으로 크리에이터를\\n후원해 보세요!",
+ "creator_channel_fantalk_empty_title" to "당신의 첫 응원을\\n기다리고 있어요!",
+ "creator_channel_fantalk_empty_message" to "아직 응원이 없습니다.\\n처음으로 크리에이터를 응원해 보세요!",
+ "creator_channel_fantalk_support_action" to "응원남기기",
+ "creator_channel_donation_empty_title" to "아직 후원이 없습니다.\\n처음으로 크리에이터를 후원해 보세요!",
+ "creator_channel_donation_action" to "후원하기"
+ )
+ val expectedEn = mapOf(
+ "creator_channel_home_donation_empty_title" to "Be the first to\\nsupport this creator!",
+ "creator_channel_fantalk_empty_title" to "We're waiting for your\\nfirst fan letter!",
+ "creator_channel_fantalk_empty_message" to "No fan letters yet.\\nSend the first fan letter!",
+ "creator_channel_fantalk_support_action" to "Send fan letter",
+ "creator_channel_donation_empty_title" to "No support yet.\\nBe the first to support this creator!",
+ "creator_channel_donation_action" to "Support"
+ )
+ val expectedJa = mapOf(
+ "creator_channel_home_donation_empty_title" to "最初のサポートをしてみましょう!",
+ "creator_channel_fantalk_empty_title" to "あなたの最初のファンレターを待っています!",
+ "creator_channel_fantalk_empty_message" to "まだファンレターがありません。\\n最初のファンレターを送ってみましょう!",
+ "creator_channel_fantalk_support_action" to "ファンレターを送る",
+ "creator_channel_donation_empty_title" to "まだサポートがありません。\\n最初のサポートをしてみましょう!",
+ "creator_channel_donation_action" to "サポートする"
+ )
+ ```
+
+- [ ] **RED 확인:** focused resource/source test를 실행해 신규 홈 후원 key 누락 또는 기존 값 불일치로 실패함을 확인한다.
+
+ ```bash
+ ./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivitySourceTest"
+ ```
+
+ Expected: `creator_channel_home_donation_empty_title` 누락 또는 기존 팬레터/후원 문구 불일치 assertion 실패.
+
+- [ ] **GREEN:** 세 locale resource에 아래 값을 반영한다.
+
+ ```xml
+ 처음으로 크리에이터를\n후원해 보세요!
+ 당신의 첫 응원을\n기다리고 있어요!
+ 아직 응원이 없습니다.\n처음으로 크리에이터를 응원해 보세요!
+ 응원남기기
+ 아직 후원이 없습니다.\n처음으로 크리에이터를 후원해 보세요!
+ 후원하기
+ ```
+
+ ```xml
+ Be the first to\nsupport this creator!
+ We\'re waiting for your\nfirst fan letter!
+ No fan letters yet.\nSend the first fan letter!
+ Send fan letter
+ No support yet.\nBe the first to support this creator!
+ Support
+ ```
+
+ ```xml
+ 最初のサポートをしてみましょう!
+ あなたの最初のファンレターを待っています!
+ まだファンレターがありません。\n最初のファンレターを送ってみましょう!
+ ファンレターを送る
+ まだサポートがありません。\n最初のサポートをしてみましょう!
+ サポートする
+ ```
+
+- [ ] **GREEN 확인:** focused resource/source test와 resource merge를 실행한다.
+
+ ```bash
+ ./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivitySourceTest"
+ ./gradlew :app:mergeDebugResources
+ ```
+
+ Expected: 두 명령 모두 `BUILD SUCCESSFUL`.
+
+- [ ] **REFACTOR:** resource key 순서와 테스트 중복만 정리하고 같은 명령을 재실행해 결과를 Progress에 기록한다.
+
+#### Task 1.2 홈 탭 empty UI와 내 채널 버튼 정책
+
+**Goal 실행 `P1-T2`:** 홈 후원/팬레터 empty UI가 화면별 문구를 사용하고 내 채널에서는 action 버튼을 숨긴다.
+
+- **시작 조건:** `P1-T1` 완료.
+- **완료 증거:** 홈 후원 empty가 홈 전용 string을 사용하고, 홈 팬레터 empty는 빈 데이터에서 표시되며, `isOwner == true`에서 두 empty action 버튼이 숨겨진다.
+- **범위 밖:** 상세 팬레터/후원 탭 Fragment 변경.
+
+**Files:**
+
+- Modify: `app/src/main/res/layout/item_creator_channel_home_donation.xml`
+- Modify: `app/src/main/res/layout/item_creator_channel_home_fantalk.xml`
+- Modify: `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/ui/CreatorChannelHomeSectionAdapter.kt`
+- Test: `app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelActivitySourceTest.kt`
+- Test: `app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/CreatorChannelHomeMapperTest.kt`
+
+**Interfaces:**
+
+- Consumes: `CreatorChannelHomeSection.Donations.isOwner`, `CreatorChannelHomeSection.FanTalk`, 신규 `R.string.creator_channel_home_donation_empty_title`
+- Produces: 홈 empty button visibility와 click listener owner 분기
+
+- [ ] **RED:** 홈 후원 layout이 홈 전용 string을 참조하는지 테스트한다.
+
+ ```kotlin
+ val donationLayout = projectFile("app/src/main/res/layout/item_creator_channel_home_donation.xml").readText()
+ assertTrue(donationLayout.contains("@string/creator_channel_home_donation_empty_title"))
+ assertFalse(donationLayout.contains("@string/creator_channel_donation_empty_title"))
+ ```
+
+- [ ] **RED:** 홈 팬레터 empty가 빈 요약 상태에서 표시되고 owner일 때 action button을 숨기는 source test를 추가한다.
+
+ ```kotlin
+ val adapterSource = projectFile(
+ "app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/ui/CreatorChannelHomeSectionAdapter.kt"
+ ).readText()
+ assertTrue(adapterSource.contains("fantalkEmpty?.isVisible ="))
+ assertTrue(adapterSource.contains("fantalkSupportButton?.isVisible ="))
+ assertTrue(adapterSource.contains("!item.isOwner"))
+ ```
+
+- [ ] **RED 확인:** focused tests를 실행해 아직 홈 전용 string 참조와 팬레터 owner 분기가 없어 실패함을 확인한다.
+
+ ```bash
+ ./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivitySourceTest"
+ ```
+
+ Expected: 홈 후원 layout string 또는 홈 팬레터 owner 분기 assertion 실패.
+
+- [ ] **GREEN:** `item_creator_channel_home_donation.xml`의 empty title 참조를 홈 전용 key로 변경한다.
+
+ ```xml
+ android:text="@string/creator_channel_home_donation_empty_title"
+ ```
+
+- [ ] **GREEN:** `CreatorChannelHomeSectionAdapter.bindDonations()`에서 owner용 별도 empty title 변경을 제거하고 홈 전용 문구를 유지한다.
+
+ ```kotlin
+ donationEmptyTitle?.setText(R.string.creator_channel_home_donation_empty_title)
+ ```
+
+- [ ] **GREEN:** 홈 팬레터 empty 바인딩에서 빈 데이터와 owner 버튼 숨김을 분기한다.
+
+ ```kotlin
+ val hasFanTalk = item.latestFanTalk != null
+ fantalkTotalRow?.isVisible = hasFanTalk
+ fantalkLatestRow?.isVisible = hasFanTalk
+ fantalkEmpty?.isVisible = !hasFanTalk
+ val isFanTalkSupportButtonVisible = !hasFanTalk && !item.isOwner
+ fantalkSupportButton?.isVisible = isFanTalkSupportButtonVisible
+ fantalkSupportButton?.setOnClickListener(
+ if (isFanTalkSupportButtonVisible) View.OnClickListener { onFanTalkClick() } else null
+ )
+ ```
+
+- [ ] **GREEN 확인:** 홈 관련 focused tests를 실행한다.
+
+ ```bash
+ ./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivitySourceTest" --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelHomeMapperTest"
+ ```
+
+ Expected: `BUILD SUCCESSFUL`.
+
+- [ ] **REFACTOR:** 이번 Task에서 만든 중복만 정리하고 focused tests와 `:app:mergeDebugResources` 결과를 Progress에 기록한다.
+
+#### Task 1.3 팬레터/후원 탭 empty action owner 정책
+
+**Goal 실행 `P1-T3`:** 팬레터 탭과 후원 탭 empty 상태에서 내 채널 action 버튼을 숨긴다.
+
+- **시작 조건:** `P1-T1` 완료.
+- **완료 증거:** `isOwner == true`일 때 팬레터 탭 `응원남기기`, 후원 탭 `후원하기` empty action 버튼이 숨겨지고 click listener가 제거된다.
+- **범위 밖:** 홈 탭 변경.
+
+**Files:**
+
+- Modify: `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/fantalk/CreatorChannelFanTalkViewModel.kt`
+- Modify: `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/fantalk/CreatorChannelFanTalkFragment.kt`
+- Modify: `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/donation/ui/CreatorChannelDonationAdapter.kt`
+- Test: `app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/fantalk/CreatorChannelFanTalkViewModelTest.kt`
+- Test: `app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/fantalk/CreatorChannelFanTalkFragmentLayoutTest.kt`
+- Test: `app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/donation/CreatorChannelDonationFragmentLayoutTest.kt`
+- Test: `app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/donation/CreatorChannelDonationViewModelTest.kt`
+
+**Interfaces:**
+
+- Consumes: `host.isCreatorChannelOwner()`, `CreatorChannelDonationUiState.Empty.isOwner`
+- Produces: 팬레터 empty state owner 정보 또는 Fragment owner 분기, 후원 empty adapter owner visibility 분기
+
+- [ ] **RED:** 팬레터 empty state가 owner 여부를 전달하거나 Fragment가 host owner 값을 사용해 empty write button을 숨기는 테스트를 추가한다.
+
+ ```kotlin
+ val fragmentSource = projectFile(
+ "app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/fantalk/CreatorChannelFanTalkFragment.kt"
+ ).readText()
+ assertTrue(fragmentSource.contains("layoutCreatorChannelFantalkEmptyWriteButton.isVisible = !host.isCreatorChannelOwner()"))
+ assertTrue(fragmentSource.contains("layoutCreatorChannelFantalkEmptyWriteButton.setOnClickListener"))
+ ```
+
+- [ ] **RED:** 후원 empty adapter가 owner일 때 `btn_creator_channel_donation_empty_write`를 숨기는 테스트를 추가한다.
+
+ ```kotlin
+ val adapterSource = projectFile(
+ "app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/donation/ui/CreatorChannelDonationAdapter.kt"
+ ).readText()
+ assertTrue(adapterSource.contains("btnCreatorChannelDonationEmptyWrite.isVisible = !isOwner"))
+ ```
+
+- [ ] **RED 확인:** focused layout/source tests를 실행해 owner empty action 분기 누락으로 실패함을 확인한다.
+
+ ```bash
+ ./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.fantalk.CreatorChannelFanTalkFragmentLayoutTest" --tests "kr.co.vividnext.sodalive.v2.creator.channel.donation.CreatorChannelDonationFragmentLayoutTest"
+ ```
+
+ Expected: owner empty action visibility 관련 assertion 실패.
+
+- [ ] **GREEN:** `CreatorChannelFanTalkFragment.bindEmpty()`에서 내 채널 action button을 숨기고 listener를 제거한다.
+
+ ```kotlin
+ val showWriteButton = !host.isCreatorChannelOwner()
+ layoutCreatorChannelFantalkEmptyWriteButton.isVisible = showWriteButton
+ layoutCreatorChannelFantalkEmptyWriteButton.setOnClickListener(
+ if (showWriteButton) View.OnClickListener { host.onCreatorChannelFanTalkWriteClicked() } else null
+ )
+ ```
+
+- [ ] **GREEN:** `setupClickListeners()`에서 empty write button의 고정 click listener를 제거하고 일반 floating write button listener만 유지한다.
+
+ ```kotlin
+ btnCreatorChannelFantalkWrite.setOnClickListener { host.onCreatorChannelFanTalkWriteClicked() }
+ ```
+
+- [ ] **GREEN:** `CreatorChannelDonationAdapter` empty ViewHolder에서 `isOwner`에 따라 버튼 visibility와 click listener를 설정한다.
+
+ ```kotlin
+ binding.btnCreatorChannelDonationEmptyWrite.isVisible = !isOwner
+ binding.btnCreatorChannelDonationEmptyWrite.setOnClickListener(
+ if (!isOwner) View.OnClickListener { onEmptyDonationClick() } else null
+ )
+ ```
+
+- [ ] **GREEN 확인:** 팬레터/후원 탭 focused tests를 실행한다.
+
+ ```bash
+ ./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.fantalk.CreatorChannelFanTalkFragmentLayoutTest" --tests "kr.co.vividnext.sodalive.v2.creator.channel.donation.CreatorChannelDonationFragmentLayoutTest" --tests "kr.co.vividnext.sodalive.v2.creator.channel.fantalk.CreatorChannelFanTalkViewModelTest" --tests "kr.co.vividnext.sodalive.v2.creator.channel.donation.CreatorChannelDonationViewModelTest"
+ ```
+
+ Expected: `BUILD SUCCESSFUL`.
+
+- [ ] **REFACTOR:** owner 버튼 분기 중복만 정리하고 focused tests 결과를 Progress에 기록한다.
+
+### 검증 방법
+
+#### Phase 1 Gate
+
+**Goal 실행 `P1-GATE`:** resource, 홈 empty UI, 탭 empty owner 정책을 최종 판정한다.
+
+- **시작 조건:** `P1-T1`, `P1-T2`, `P1-T3` 완료.
+- **완료 증거:** 아래 명령 통과와 Progress 기록.
+- **범위 밖:** 실패와 무관한 리팩터링, UI/계측 테스트 추가, 기기·에뮬레이터 조작.
+
+```bash
+./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelActivitySourceTest" --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelHomeMapperTest" --tests "kr.co.vividnext.sodalive.v2.creator.channel.fantalk.CreatorChannelFanTalkFragmentLayoutTest" --tests "kr.co.vividnext.sodalive.v2.creator.channel.fantalk.CreatorChannelFanTalkViewModelTest" --tests "kr.co.vividnext.sodalive.v2.creator.channel.donation.CreatorChannelDonationFragmentLayoutTest" --tests "kr.co.vividnext.sodalive.v2.creator.channel.donation.CreatorChannelDonationViewModelTest"
+./gradlew :app:mergeDebugResources
+git diff --check
+```
+
+**Expected:** 모든 명령이 성공한다. 기존 전체 `:app:testDebugUnitTest`에 이번 범위와 무관한 실패가 있으면 focused 통과 결과와 전체 실패 항목을 분리해 Progress에 기록한다.
+
+## 실행 순서와 의존성
+
+| 순서 | Goal | 선행조건 | 병행 가능 | 차단 시 다음 행동 |
+|---:|---|---|---|---|
+| 1 | `P1-T1` | PRD 확정 | 아니요 | 문구 표와 기존 resource key 대조 |
+| 2 | `P1-T2` | `P1-T1` | 예, `P1-T3`와 파일 비중복 시 가능 | 홈 section adapter/layout 범위 재확인 |
+| 3 | `P1-T3` | `P1-T1` | 예, `P1-T2`와 파일 비중복 시 가능 | Fragment/adapter owner 전달 경로 재확인 |
+| 4 | `P1-GATE` | `P1-T2`, `P1-T3` | 아니요 | 실패 소유 Task에 회귀 수정 Task 추가 |
+
+```text
+P1-T1 -> P1-T2 -> P1-GATE
+ -> P1-T3 -> P1-GATE
+```
+
+## 변경 금지 항목
+
+- API, DTO, repository, pagination, ranking 동작을 변경하지 않는다.
+- 레거시 후원 파일을 직접 수정하지 않는다.
+- 기존 resource key를 불필요하게 rename하지 않는다.
+- 신규 dependency를 추가하지 않는다.
+- `app/src/androidTest`, 기기·에뮬레이터 UI 조작, 스크린샷·시각 QA를 추가하지 않는다.
+- 테스트를 삭제·skip·완화하지 않는다.
+
+## Decision Log
+
+| 날짜 | ID | 상태 | 결정 | 근거 | 영향 Goal/문서 |
+|---|---|---|---|---|---|
+| 2026-08-14 | `DEC-001` | 확정 | 내 채널에서는 대상 empty state action 버튼을 모두 숨긴다. | 사용자 A안 선택 | `P1-T2`, `P1-T3`, `prd.md` |
+| 2026-08-14 | `DEC-002` | 확정 | 영어 resource도 이번 범위에 포함하고 제공되지 않은 영문은 번역 초안을 사용한다. | 사용자 직접 지시 | `P1-T1`, `prd.md` |
+| 2026-08-14 | `DEC-003` | 확정 | 홈 후원 empty 전용 string key를 추가한다. | 홈/후원 탭 문구가 서로 다름 | `P1-T1`, `P1-T2`, `prd.md` |
+
+## 발견된 문제
+
+| ID | 심각도 | 상태 | 발견 내용 | 영향 Goal | 처리 계획 |
+|---|---|---|---|---|---|
+| `ISSUE-001` | Medium | 확정 | 현재 홈 후원 empty와 후원 탭 empty가 `creator_channel_donation_empty_title` 단일 key를 공유해 서로 다른 문구 요구를 동시에 만족할 수 없다. | `P1-T1`, `P1-T2` | 홈 전용 `creator_channel_home_donation_empty_title` 추가 |
+
+## Progress
+
+기존 기록을 삭제하거나 덮어쓰지 않고 실제 실행 결과를 차수별로 누적한다.
+
+### 문서 작성 1차 실행 — 2026-08-14
+
+- 상태: 완료
+- 무엇을: PRD와 구현 계획/TASK 문서를 생성했다.
+- 왜: 저장소 규칙상 구현 전에 요구사항과 실행 계획을 확정해야 하기 때문이다.
+- 어떻게:
+ - `rg --files docs | rg 'sample|creator|channel|fanletter|support|후원|응원|팬레터|크리에이터'` — 기존 관련 문서와 샘플 문서를 확인했다.
+ - `rg -n "후원하기|응원남기기|creator_channel.*donation.*empty|creator_channel.*fantalk.*empty|support|donat|fan.?letter|ファンレター|サポート|応援|送る" app/src/main/res/values app/src/main/res/values-en app/src/main/res/values-ja` — 현재 resource 값을 확인했다.
+ - `rg -n "creator_channel_(fantalk|donation).*empty|creator_channel_fantalk_support_action|creator_channel_donation_(button|action)" app/src/main/java app/src/main/res/layout app/src/test/java -g '!**/build/**'` — layout/source/test 영향 범위를 확인했다.
+- 남은 항목: 사용자 승인 후 `P1-T1` 구현 시작.
+- 다음 행동: 구현 요청이 들어오면 `P1-T1`부터 실행한다.
+
+## Verification Log
+
+- 2026-08-14: 문서 생성 단계에서는 production resource, Kotlin, XML layout을 수정하지 않았다.
diff --git a/docs/20260814_크리에이터_채널_empty_state_다국어_문구_정리/prd.md b/docs/20260814_크리에이터_채널_empty_state_다국어_문구_정리/prd.md
new file mode 100644
index 00000000..1f55c28c
--- /dev/null
+++ b/docs/20260814_크리에이터_채널_empty_state_다국어_문구_정리/prd.md
@@ -0,0 +1,159 @@
+# PRD: 크리에이터 채널 Empty State 다국어 문구 정리
+
+## 문서 정보
+
+| 항목 | 내용 |
+|---|---|
+| 문서 상태 | 구현 기준 확정 |
+| 작성일 | `2026-08-14` |
+| 최종 수정일 | `2026-08-14` |
+| 대상 제품 | 크리에이터 채널 홈/팬레터/후원 empty state |
+| 작성자·결정권자 | 사용자 요청 기준 |
+| 관련 API Contract | 없음 |
+| 관련 구현 계획 | `docs/20260814_크리에이터_채널_empty_state_다국어_문구_정리/plan-task.md` |
+| 관련 review | 없음 |
+
+## 1. Overview
+
+크리에이터 채널의 홈, 팬레터, 후원 영역에서 후원 또는 팬레터 데이터가 없을 때 표시되는 empty state 문구와 action 버튼 노출 정책을 정리한다. 이번 문서는 구현하지 않고, 한국어/영어/일본어 Android string resource와 화면별 empty state 요구사항을 확정한다.
+
+## 2. Problem Statement
+
+- 크리에이터 채널 일부 empty state 문구가 화면별 의도와 다르게 재사용되어 홈 탭과 상세 탭의 안내 문구를 동시에 만족하지 못한다.
+- 팬레터/후원 empty state 일부 문구와 action label이 한국어, 영어, 일본어에서 일관되게 다국어 처리되어야 한다.
+- 홈 탭에는 팬레터가 없을 때 후원 empty state와 동일한 카드형 empty UI가 필요하다.
+- 내 채널에서는 사용자가 본인에게 후원하거나 본인 채널에 팬레터를 남기는 action 버튼을 보지 않아야 한다.
+
+## 3. Goals
+
+- 홈 탭 후원 empty 안내 문구를 한국어/영어/일본어 resource로 분리해 표시한다.
+- 홈 탭 팬레터 empty 안내 문구를 한국어/영어/일본어 resource로 표시하고, 후원 empty UI와 동일한 카드형 UI를 제공하도록 요구사항을 확정한다.
+- 팬레터 탭 empty 안내 문구와 `응원남기기` action label을 한국어/영어/일본어 resource로 표시한다.
+- 후원 탭 empty 안내 문구와 `후원하기` action label을 한국어/영어/일본어 resource로 표시한다.
+- 내 채널의 홈/팬레터/후원 empty state에서 `후원하기`와 `응원남기기` 버튼을 모두 숨기는 정책을 확정한다.
+
+## 4. Non-Goals
+
+- 이번 작업에서는 Kotlin, XML, resource를 수정하지 않는다.
+- 후원 dialog, 팬레터 작성 화면, API, DTO, pagination, ranking 동작은 변경하지 않는다.
+- 크리에이터 채널 전체 UI 구조, tab-bar, header, sticky scroll 동작은 변경하지 않는다.
+- 영어 외 신규 locale을 추가하지 않는다.
+- 기존 class, layout id, drawable id, resource key rename은 구현 계획에서 필요한 최소 범위로만 다루며, 문서 작성 단계에서는 수행하지 않는다.
+- UI/계측 테스트, 기기·에뮬레이터 조작, 스크린샷·시각 QA는 사용자가 별도 요청하기 전까지 계획의 필수 실행 범위에 포함하지 않는다.
+
+## 5. Target Users and Permissions
+
+| 사용자 | 목표 | 주요 작업 | 사용 환경 |
+|---|---|---|---|
+| 타인 크리에이터 채널 방문자 | 데이터가 없을 때 다음 action을 이해 | 홈/팬레터/후원 empty state 확인, 후원 또는 팬레터 작성 진입 | Android 앱 |
+| 본인 채널을 보는 크리에이터 | 본인에게 부적절한 action을 보지 않음 | 내 채널 empty state 확인 | Android 앱 |
+
+권한과 소유자 판정은 기존 `CreatorChannelActivity`/탭 Fragment의 `isOwner` 흐름을 따른다.
+
+## 6. 핵심 사용자 흐름
+
+1. 사용자가 크리에이터 채널 홈 탭에 진입한다.
+2. 후원 목록이 비어 있으면 홈 후원 empty 카드가 표시된다.
+3. 팬레터 요약이 비어 있으면 홈 팬레터 empty 카드가 표시된다.
+4. 사용자가 팬레터 탭에 진입하고 팬레터 목록이 비어 있으면 팬레터 탭 empty 상태가 표시된다.
+5. 사용자가 후원 탭에 진입하고 후원 목록이 비어 있으면 후원 탭 empty 상태가 표시된다.
+6. 타인 채널에서는 empty action 버튼을 표시하고, 내 채널에서는 해당 버튼을 숨긴다.
+
+## 7. 기능 요구사항
+
+### 7.1 다국어 문구
+
+| ID | 상태 | 요구사항 | 수용 기준 | 계약/Goal 연결 |
+|---|---|---|---|---|
+| `CREATOR-EMPTY-I18N-001` | 확정 | 홈 탭 후원 empty 문구를 상세 후원 탭 문구와 분리한다. | 홈 후원 empty는 아래 `creator_channel_home_donation_empty_title` 값으로 표시되고, 후원 탭은 `creator_channel_donation_empty_title` 값을 유지한다. | `P1-T1` |
+| `CREATOR-EMPTY-I18N-002` | 확정 | 홈 탭 팬레터 empty 문구를 한국어/영어/일본어 resource로 표시한다. | `creator_channel_fantalk_empty_title` 값이 아래 문구 표와 일치한다. | `P1-T1` |
+| `CREATOR-EMPTY-I18N-003` | 확정 | 팬레터 탭 empty 문구와 action label을 한국어/영어/일본어 resource로 표시한다. | `creator_channel_fantalk_empty_message`, `creator_channel_fantalk_support_action` 값이 아래 문구 표와 일치한다. | `P1-T1` |
+| `CREATOR-EMPTY-I18N-004` | 확정 | 후원 탭 empty 문구와 action label을 한국어/영어/일본어 resource로 표시한다. | `creator_channel_donation_empty_title`, `creator_channel_donation_action` 값이 아래 문구 표와 일치한다. | `P1-T1` |
+| `CREATOR-EMPTY-I18N-005` | 확정 | 후원 탭의 `후원하기`는 기존 다국어 처리된 `creator_channel_donation_action` 값을 우선 사용한다. | 신규 후원 action string을 만들지 않고 기존 key가 한국어/영어/일본어에서 사용된다. | `P1-T1` |
+
+### 7.2 Empty State UI와 소유자 정책
+
+| ID | 상태 | 요구사항 | 수용 기준 | 계약/Goal 연결 |
+|---|---|---|---|---|
+| `CREATOR-EMPTY-UI-001` | 확정 | 홈 탭에서 팬레터가 없을 때 empty state UI를 표시한다. | 홈 팬레터 empty UI는 홈 후원 empty UI와 동일한 카드형 구조와 action button 위치를 사용하고, 문구만 팬레터 전용 값으로 표시한다. | `P1-T2` |
+| `CREATOR-EMPTY-UI-002` | 확정 | 내 채널 홈 후원 empty에서는 `후원하기` 버튼을 숨긴다. | `isOwner == true`이면 `layout_donation_empty_button`이 보이지 않고 click listener가 연결되지 않는다. | `P1-T2` |
+| `CREATOR-EMPTY-UI-003` | 확정 | 내 채널 홈 팬레터 empty에서는 `응원남기기` 버튼을 숨긴다. | `isOwner == true`이면 `layout_fantalk_support_button`이 보이지 않고 click listener가 연결되지 않는다. | `P1-T2` |
+| `CREATOR-EMPTY-UI-004` | 확정 | 내 채널 팬레터 탭 empty에서는 `응원남기기` 버튼을 숨긴다. | `isOwner == true`이면 `layout_creator_channel_fantalk_empty_write_button`이 보이지 않고 click listener가 연결되지 않는다. | `P1-T3` |
+| `CREATOR-EMPTY-UI-005` | 확정 | 내 채널 후원 탭 empty에서는 `후원하기` 버튼을 숨긴다. | `CreatorChannelDonationUiState.Empty.isOwner == true`이면 `btn_creator_channel_donation_empty_write`가 보이지 않고 click listener가 연결되지 않는다. | `P1-T3` |
+
+## 8. 문구 표
+
+### 8.1 홈 탭
+
+| 화면 상태 | string name | 한국어 | 영어 | 일본어 |
+|---|---|---|---|---|
+| 후원 없음 | `creator_channel_home_donation_empty_title` | `처음으로 크리에이터를\n후원해 보세요!` | `Be the first to\nsupport this creator!` | `最初のサポートをしてみましょう!` |
+| 팬레터 없음 | `creator_channel_fantalk_empty_title` | `당신의 첫 응원을\n기다리고 있어요!` | `We're waiting for your\nfirst fan letter!` | `あなたの最初のファンレターを待っています!` |
+
+### 8.2 팬레터 탭
+
+| 화면 상태 | string name | 한국어 | 영어 | 일본어 |
+|---|---|---|---|---|
+| 팬레터 없음 | `creator_channel_fantalk_empty_message` | `아직 응원이 없습니다.\n처음으로 크리에이터를 응원해 보세요!` | `No fan letters yet.\nSend the first fan letter!` | `まだファンレターがありません。\n最初のファンレターを送ってみましょう!` |
+| 팬레터 작성 action | `creator_channel_fantalk_support_action` | `응원남기기` | `Send fan letter` | `ファンレターを送る` |
+
+### 8.3 후원 탭
+
+| 화면 상태 | string name | 한국어 | 영어 | 일본어 |
+|---|---|---|---|---|
+| 후원 없음 | `creator_channel_donation_empty_title` | `아직 후원이 없습니다.\n처음으로 크리에이터를 후원해 보세요!` | `No support yet.\nBe the first to support this creator!` | `まだサポートがありません。\n最初のサポートをしてみましょう!` |
+| 후원 action | `creator_channel_donation_action` | `후원하기` | `Support` | `サポートする` |
+
+## 9. UI/UX Expectations
+
+- 홈 탭 팬레터 empty UI는 기존 홈 후원 empty 카드와 같은 시각 구조를 사용한다.
+- 홈 탭 후원 empty와 팬레터 empty는 타인 채널에서 action 버튼을 표시하고 내 채널에서 action 버튼을 숨긴다.
+- 팬레터 탭과 후원 탭 empty 상태는 타인 채널에서 문구 아래 action 버튼을 표시하고 내 채널에서 action 버튼을 숨긴다.
+- action 버튼이 숨겨져도 empty 문구 정렬과 상하 여백이 어색하게 무너지면 안 된다.
+- 후원 탭 floating `후원하기` 버튼은 기존처럼 내 채널에서 숨긴다.
+
+## 10. 기술적 제약
+
+- Android XML string resource는 `app/src/main/res/values/strings.xml`, `values-en/strings.xml`, `values-ja/strings.xml`에서 관리한다.
+- 홈 후원 empty와 후원 탭 empty의 문구가 다르므로 홈 전용 `creator_channel_home_donation_empty_title` resource를 추가해 기존 상세 탭 key와 분리한다.
+- 후원 action은 기존 `creator_channel_donation_action` resource를 재사용한다.
+- 팬레터 action은 기존 `creator_channel_fantalk_support_action` key를 유지하고 값만 조정한다.
+- 기존 legacy 파일은 직접 수정하지 않고, 크리에이터 채널 v2 하위 구현과 resource/layout만 최소 변경한다.
+- 자동 테스트는 `app/src/test`의 local unit/source/layout test만 계획한다.
+
+## 11. 성공 기준
+
+- [ ] 문구 표의 모든 한국어/영어/일본어 resource 값이 실제 resource와 일치한다.
+- [ ] 홈 후원 empty는 `creator_channel_home_donation_empty_title`, 후원 탭 empty는 `creator_channel_donation_empty_title`을 사용한다.
+- [ ] 홈 팬레터 empty UI가 팬레터 데이터 없음 상태에서 표시된다.
+- [ ] 내 채널의 홈 후원, 홈 팬레터, 팬레터 탭, 후원 탭 empty action 버튼이 모두 숨겨진다.
+- [ ] 타인 채널의 empty action 버튼은 기존 후원/팬레터 진입 동작을 유지한다.
+- [ ] `./gradlew :app:mergeDebugResources`와 관련 local unit/source/layout test가 통과한다.
+
+## 12. Open Questions
+
+| ID | 상태 | 결정 필요 사항 | 현재 권고 | 결정 주체 | 결정 기한/시점 | 영향 Goal |
+|---|---|---|---|---|---|---|
+| 없음 | 확정 | 추가 질문 없음 | 확정 범위대로 진행 | 사용자 | 2026-08-14 | `P1-T1~P1-GATE` |
+
+## 13. 요구사항 추적표
+
+| 요구사항 범위 | API Contract | 계획 Phase | Goal | 자동 검증 | 수동 검증 |
+|---|---|---:|---|---|---|
+| `CREATOR-EMPTY-I18N-001~005` | 없음 | 1 | `P1-T1` | resource source test, `mergeDebugResources` | 해당 없음 |
+| `CREATOR-EMPTY-UI-001~003` | 없음 | 1 | `P1-T2` | home mapper/source/layout test | 구현자가 필요 시 로컬 화면 확인 |
+| `CREATOR-EMPTY-UI-004~005` | 없음 | 1 | `P1-T3` | tab Fragment/adapter layout test | 구현자가 필요 시 로컬 화면 확인 |
+
+## 14. Decision Log
+
+| 날짜 | ID | 상태 | 결정 | 근거 | 영향 요구사항·계약·Goal |
+|---|---|---|---|---|---|
+| 2026-08-14 | `DEC-001` | 확정 | 내 채널에서는 홈 탭 후원 empty, 홈 탭 팬레터 empty, 팬레터 탭 empty, 후원 탭 empty의 `후원하기`/`응원남기기` 버튼을 모두 숨긴다. | 사용자 A안 선택 | `CREATOR-EMPTY-UI-002~005`, `P1-T2`, `P1-T3` |
+| 2026-08-14 | `DEC-002` | 확정 | 영어 resource도 이번 범위에 포함하고, 제공되지 않은 영문 문구는 한국어/일본어 의미에 맞춰 번역 초안을 사용한다. | 사용자 A안 선택 및 직접 지시 | `CREATOR-EMPTY-I18N-001~004`, `P1-T1` |
+| 2026-08-14 | `DEC-003` | 확정 | 홈 후원 empty와 후원 탭 empty 문구가 다르므로 홈 전용 후원 empty string을 추가한다. | 기존 `creator_channel_donation_empty_title` 단일 key로 두 화면 문구를 동시에 만족할 수 없음 | `CREATOR-EMPTY-I18N-001`, `P1-T1`, `P1-T2` |
+
+## 15. Verification Log
+
+- 2026-08-14: `docs/sample/sample-prd.md`, `docs/sample/sample-plan-task.md`를 확인해 신규 문서 구조를 맞췄다.
+- 2026-08-14: 기존 관련 문서 `docs/20260611_크리에이터_채널_홈_탭/prd.md`, `docs/20260622_크리에이터_채널_후원_탭/prd.md`, `docs/20260814_팬Talk_팬레터_resource_문구_변경/prd.md`를 확인했다.
+- 2026-08-14: 현재 resource와 layout 사용처를 확인해 홈 후원 empty와 후원 탭 empty가 같은 string key를 공유한다는 제약을 문서화했다.