---
title: "핸드오프 — 코치노트 AI RC2 spec06 프론트 UX (다음: 운영 전환·총괄)"
category: "handoff"
document_type: "핸드오프"
source_status: "generated"
knowledge_group: "03_history"
priority: "High"
purpose: "코치노트 AI v1.0-rc2 spec06(프론트 UX) 담당 스레드의 인계 핸드오프. spec06 코드 구현·빌드·MCP 검증 완료 상태와, 다음 작업자(운영: chat-proxy 배포·owner 시드·storageGate 활성화 / 총괄: RC2 종합)에게 넘기는 컨텍스트·미완료·사용자 의도·후속 지시를 담는다. 짝 문서 = 작업보고 20260606_180731_작업보고_코치노트AI-RC2-spec06-프론트UX."
read_when: ["최신상태복구","코치노트AI","핸드오프","RC2종료","운영전환"]
updated: "2026-06-06"
work_timestamp: "20260606_181526"
context: "달록본레포CC (D:\\dallog\\dallog_git) — spec06 구현 스레드"
source_of_truth: "https://dallog-tools.hansbridge.co.kr/knowledge/"
---

# 핸드오프 — 코치노트 AI RC2 spec06 프론트 UX

> spec06(프론트 UX) 담당 스레드 → 다음 작업자(운영 전환 / RC2 총괄) 인계.
> 짝 작업보고 = `20260606_180731_작업보고_코치노트AI-RC2-spec06-프론트UX`. 상세 구현·검증은 그쪽 참조.

## 0. 현재 상태
- **담당 작업:** spec_rc2_06_frontend_ux (AI 코치 대화 UI·사용량 표시·턴캡·소진·OWNER·메모리·플랜 쇼핑)
- **완료 여부:** 코드 구현·빌드·MCP UI 검증 **완료**. AI 실응답 라이브만 chat-proxy 배포(운영) 의존.
- **build 통과 여부:** `npm run build`(tsc+vite) **통과**, TS 오류 0.
- **커밋 포함 여부:** RC2 전체(spec01~06) 본레포 **PR#36 main 머지 완료**.
- **남은 위험:** chat-proxy 미배포(실응답 미검증) / owner 플랜 미시드(OWNER 화면 미검증) / storageGate OFF(저장·보관함 비활성).

## 1. 다음 작업자가 반드시 알아야 할 것
- spec06은 **표시·호출 연결**만 담당했다. spec01~05의 계산 구조(차감·주입·프롬프트·플랜)는 **무수정**이다.
- **응답 성공 직후에만 차감(consumeTurn), 실패 무차감**이 핵심 규약. 이 규약은 `useCoachChat` 훅 한 곳에서 강제된다 — 채팅 흐름을 손대면 이 지점을 깨지 말 것.
- chat-proxy가 없어도 화면·사용량·무차감은 동작하도록 **graceful 대기**로 구현됨. 프록시 배포 시 코드 수정 없이 실응답이 자동 연동된다.

## 2. 구현된 내용
- `/coach` 서브탭: **AI 코치 대화(기본·주력)** / AI 브리프(기존 보존).
- 멀티턴 대화 + 14일·여정 주입 + 메모리 프로필 카드 주입(캐싱 경계 유지).
- 사용량 상시 노출("AI 코칭 N회 남음" + "이 대화 N/캡회"), 턴캡 모달(차단X·플랜 분기), 소진 안내(예고 톤), OWNER 사용량·원가 패널, 수동 메모리 편집, 플랜 쇼핑(히든·베타 예고).

## 3. 수정 파일
| 파일 | 설명 |
|---|---|
| `src/hooks/useCoachChat.ts` | 신규 — 채팅 상태머신(차감·로그 규약 단일 지점) |
| `src/components/coach/*.tsx` | 신규 8종 — 대화 화면·사용량·캡모달·소진·OWNER·메모리·플랜쇼핑 |
| `src/pages/CoachNotes.tsx` | 수정 — 서브탭 + 채팅 마운트(브리프 100% 보존) |
| `src/index.css` | 수정 — `.coach-chat-*` 토큰 기반 클래스 |

## 4. 검증 결과
| 검증 항목 | 결과 | 근거 |
|---|---|---|
| 빌드(tsc+vite) | PASS | 오류 0 |
| 사용량 상시 노출·게이트 OFF | PASS | MCP coach-01 |
| 응답 실패 무차감 | PASS | MCP coach-02(잔여 불변) |
| 플랜 쇼핑(확정표 일치·예고) | PASS | MCP coach-03 |
| 브리프 탭 보존 | PASS | MCP coach-04 |
| 모바일 단일 컬럼 | PASS | MCP coach-05 |
| AI 실응답·성공차감·캡도달 | N/A(라이브) | chat-proxy 배포 후 |
| OWNER 화면 라이브 | N/A(라이브) | owner 시드 후 |

## 5. 미완료 / 보류 / 주의사항
- **chat-proxy 배포 + 모델 키**(Gemini 2.5 Flash-Lite 또는 OpenAI 폴백) — AI 실응답·성공 차감·캡 도달 라이브의 마지막 조각.
- **owner 플랜 시드**(`coach_subscription.plan_type='owner'`) — OWNER 화면(잔여 대신 원가 분석) 활성. 판별은 **DB is_unlimited** 기준(이메일 하드코딩 아님).
- **storageGate OFF** — 5종 보호장치(처리방침·AI원문저장고지·보유/삭제/파기·동의UI·접근통제) 완비 전 켜지 말 것. 그 전 약관 "파기" 표현 금지. 현재 대화·메모리는 인메모리/임시.
- **자동 메모리 미구현(Phase2 금지)** / BETA·VIP 제공량·기간 미확정(이월) / 결제 PG 미연동(Phase3).

## 6. 사용자 의도·정서·지침 (축소 금지)
- **"사용자는 토큰이 아니라 내 운동 여정을 기억하는 AI 코치 경험을 산다."** → 화면은 토큰·원가·소수 코칭권을 노출하지 않고 정수 "회"로만. 사용량을 숨겨 결제 유도하지 않고 실시간 노출(친절한 제공자 정책, decision_log #7).
- **서브탭 공존**: 신규 AI 코치 대화를 기본·주력, 기존 브리프는 보존·보조. "브리프 구조 크게 뜯지 말되 **브리프/메모리 UX 재설계 필요**를 명확히 남겨라"(사장님 지시) — 향후: 개인메모=다이어리화 / 코칭가이드 항목 축소+유저메모리 통합 / 장기 AI 자동 업데이트+직접 수정.
- **OWNER도 측정 우회 금지**: 무제한이어도 동일 계측·턴캡 게이지 부여, 잔여 대신 원가 분석 표시(운영자 원가 표본 보존).

## 7. 후속 작업 지시 (다음 작업자 / 달록툴레포CC)
1. (운영) chat-proxy 배포 + 모델 키 → AI 코치 대화 실응답·성공 차감·캡 도달 라이브 검증.
2. (운영) owner 플랜 시드 → OWNER 화면 확인.
3. (법무·후속) storageGate 5종 완비 → 저장 활성화(코드 변경 + 재배포).
4. (제품) 브리프/메모리 UX 재설계 착수.
5. (총괄) RC2 spec01~06 작업보고·핸드오프를 묶는 **최종 총괄보고서** 발간 시 본 spec06 짝 문서(작업보고 180731 / 핸드오프 181526)를 RC2 시리즈로 포함.
