# task-2178 완료 보고서: InsuRo CRM 데모 데이터 — 무료 체험 UX 개선

## SCQA

**S**: InsuRo CRM 기능(대시보드/고객목록/파이프라인) 3개 페이지가 PlanGuard로 감싸져 있어, 무료 플랜 사용자는 전체 블러 + "프로 플랜 이상에서 사용 가능" 오버레이만 볼 수 있다.

**C**: 기능 가치를 체험할 기회 없이 차단만 되어 "이 기능은 뭔지도 모르겠는데 유료라니" 느낌을 주고, 프로 플랜 전환 동기가 부족하다.

**Q**: 무료 사용자에게 CRM의 가치를 미리 체험시켜 프로 플랜 전환율을 높일 수 있는가?

**A**: 옵션 A(데모 데이터 미리보기) 적용. PlanGuard 블러를 제거하고, 무료 사용자에게 읽기 전용 데모 데이터(고객 3명, 파이프라인 3단계, 통계/차트) 표시. 편집/드래그 등 액션 클릭 시 업그레이드 유도 toast 표시. 프로 이상 사용자의 기존 CRM 동작은 변경 없음.

## 수정 파일 목록

| 파일 | 변경 내용 | grep 검증 | 상태 |
|------|-----------|-----------|------|
| src/data/crm-demo-data.ts (신규) | 데모 고객 3명, 파이프라인, 대시보드 통계, 알림 상수 | grep "DEMO_CUSTOMERS" OK (4건) | verified |
| src/data/__tests__/crm-demo-data.test.ts (신규) | 데모 데이터 단위 테스트 12건 | grep "describe" OK | verified |
| src/components/crm/CrmDemoBanner.tsx (신규) | 앰버 색상 데모 배너 + 업그레이드 버튼 | grep "CrmDemoBanner" OK (7건) | verified |
| src/pages/CrmDashboard.tsx | PlanGuard 제거, isDemo 분기 추가, 데모 모드시 DEMO_* 상수 사용 | grep "isDemo" OK (3건) | verified |
| src/pages/CrmCustomers.tsx | PlanGuard 제거, isDemo 분기 추가, 데모 모드시 버튼 비활성화/toast 유도 | grep "isDemo" OK (8건) | verified |
| src/pages/CrmPipeline.tsx | PlanGuard 제거, isDemo 분기 추가, 드래그 차단 + toast 유도 | grep "isDemo" OK (6건) | verified |

## 검증 결과

- TypeScript (tsc --noEmit): 변경 파일 에러 **0건**
- Vite 빌드: **성공** (12.61s)
- Vitest 데모 데이터 테스트: **12/12 PASS** (6ms)
- 전체 테스트 스위트: **2521 passed** (pytest), **221 passed** (vitest)
- CrmCustomerDetail, CrmMessenger의 기존 PlanGuard 유지 (수정 범위 외)

## 발견 이슈 및 해결

1. **기존 `_staleDate` 미사용 경고** (CrmDashboard.tsx:127) — pre-existing 이슈. underscore prefix로 의도적 미사용. 본 작업 범위 외이므로 미수정.
2. **Supabase 환경변수 미설정** — 로컬 dev 서버에서 UI 렌더링 불가. L1 스모크테스트를 빌드 성공 + TypeScript 0 에러로 갈음.
3. **DemoCustomer 타입 분리** — CrmCustomers와 CrmPipeline의 Customer 타입이 각각 다르므로, 데모 데이터도 `DemoCustomer`와 `DemoPipelineCustomer`로 분리 정의.
4. **git_evidence QC FAIL** — worktree 브랜치에 커밋 4건 존재하나, qc_verify.py의 git_evidence가 /home/jay/workspace에서 git log를 실행하여 InsuRo repo 커밋 미감지. 인프라 이슈 (외부 프로젝트 git_evidence 미지원). `cd /home/jay/projects/InsuRo && git log --all --grep=task-2178` 시 4건 확인됨.

## QC 자동 검증 결과

- 전체: **7 PASS, 1 FAIL, 12 SKIP, 3 WARN**
- FAIL: git_evidence (인프라 이슈 — 외부 프로젝트 경로 미지원, 위 이슈 #4 참조)
- WARN: tdd_check (TDD 순서 — 구현 먼저 → 테스트 후작성), scope_check (신규 파일 포함), claude_md_check (design팀 CLAUDE.md 310줄 — 본 팀 무관)
- TRUST: Tested=true, Readable=true, Unified=true, Secured=true, Trackable=true

## L1 스모크테스트 결과

- 서버 재시작: 해당없음 (프론트엔드 전용 작업)
- API 응답 확인: 해당없음
- Vite 빌드: 성공 (에러 0)
- TypeScript: 변경 파일 에러 0건
- 스크린샷: Supabase 환경변수 미설정으로 UI 렌더링 불가 (인프라 제약)

## 머지 판단

- **머지 필요**: Yes
- **브랜치**: task/task-2178-dev2
- **워크트리 경로**: /home/jay/projects/InsuRo/.worktrees/task-2178-dev2
- **머지 의견**: TypeScript 에러 0건, 빌드 성공, 전체 테스트 PASS. 프로 이상 유저 기존 동작 영향 없음. 머지 안전.

## 모델 사용 기록

- 프레이야(프론트엔드): sonnet × 2회 (데모 데이터 생성 + 3페이지 수정)
- 헤임달(테스터): sonnet × 1회 (데모 데이터 단위 테스트 12건)
- 오딘(팀장): opus (설계/검토/통합)

## 세션 통계
- 총 도구 호출: 0회

