---
title: "핸드오프 — 코치노트 AI RC2 spec03(가드레일·시스템 지시문) 완료 / 다음 spec04"
category: "handoff"
document_type: "핸드오프"
source_status: "generated"
knowledge_group: "03_history"
priority: "High"
purpose: "코치노트 AI RC2 spec03(guardrail_prompt) 구현 완료 후 다음 담당 spec04(storage_privacy)로 넘기는 실행 컨텍스트. 구현된 시스템 지시문·메모리 프로필 구조, spec01 캐싱·spec02 주입 연결, spec04 저장 구조 연결 예정 지점, 반드시 유지할 코치 철학(데이터 기반 코치·면책봇 금지·무책임 처방 금지·양극단 배제), 변경 금지 경계를 기록. 다음 작업자가 왜곡 없이 이어받기 위한 보조자료(최종 기준은 docs/go_work 원본)."
read_when: ["다음작업인수","코치노트AI","AI가드레일·시스템프롬프트"]
updated: "2026-06-06"
work_timestamp: "20260606_181509"
context: "달록본레포CC (D:\\dallog\\dallog_git)"
source_of_truth: "https://dallog-tools.hansbridge.co.kr/knowledge/"
---

# 핸드오프 — 코치노트 AI RC2 spec03 완료 / 다음 담당 spec04

> 코치노트 AI v1.0-rc2 6분할 중 **3/6(spec_rc2_03_guardrail_prompt) 완료** → 다음 담당 **spec_rc2_04_storage_privacy** 인계 문서다. 이 문서는 **작업보고가 아니라 다음 스레드의 실행 컨텍스트**다. 최종 기준은 본레포 `docs/go_work` 원본 명세이며, 충돌 시 원본·decision_log 우선.

**용어 병기**: system prompt / 시스템 지시문 · guardrail / 가드레일 · memory profile / 메모리 프로필 · injection / 주입 · prompt caching / 프롬프트 캐싱 · storageGate / 저장 활성화 게이트 · transcript / 대화 원문.

## 0. 현재 상태
- **담당 작업**: spec_rc2_03 (가드레일·시스템 지시문·메모리 프로필).
- **완료 여부**: 완료(명세 §5 완료 정의 4항목 PASS).
- **build 통과 여부**: PASS (`npm run build` — tsc + vite, 타입 오류 0).
- **커밋 포함 여부**: 본레포 코드는 RC2 전체 일괄 커밋 정책에 따름(이 핸드오프는 KB 발행본). 코드는 본레포 `src/lib/coachChat/`에 반영됨.
- **남은 위험**: 가드레일은 프롬프트 단일층만으로 위험 0 불가 → UI 면책고지·약관 면책(다층 방어)은 spec04/출시 전 필수.

## 1. 다음 작업자가 반드시 알아야 할 것
- 시스템 지시문 전문은 본레포 `src/lib/coachChat/systemPrompt.ts`의 `FIXED_SYSTEM_PROMPT`(고정·프롬프트 캐싱 대상, 선두 고정). 가변 데이터는 절대 여기 넣지 않는다.
- 메모리 프로필은 **Phase0 수동 카드 포매터까지만** 구현됨. 저장·자동 갱신·입력 UI는 미구현(아래 §5).
- 조립 진입점 `assembleCoachChat(conversation, { injectionBlock, memoryProfile })`의 순서·캐싱 경계는 **변경 금지**.

## 2. 구현된 내용
- `FIXED_SYSTEM_PROMPT` 자리표시자 → spec §4 최종안 전문 교체(코치 역할·코치 스코프(앱 사용법 포함)·루틴 추천+기록 기반 단서·과잉 안전주의 억제·데이터 근거·압축 해석·수동 프로필 카드 반영·의료 면책·자해 위험신호 분기·포괄 안전 원칙·답변 톤·달록 정신).
- 시스템 지시문 말미에 spec02 주입 참조 지시 1단락(`[메모리 프로필]`·`[운동 기록 컨텍스트]` 및 `■ 최근 14일 스냅샷`/`■ 전체 여정 요약`/`■ 확장 조회:`를 근거로, 비면 데이터 없음 분기).
- `FIXED_SYSTEM_PROMPT_VERSION` `rc2-01-placeholder` → `rc2-03-guardrail`.
- `MemoryProfile` 타입(목표·현재 주의통증·운동 선호·코칭 선호) + `buildMemoryProfileCard(profile)` 순수 포매터(빈 카드 → 빈 문자열, 블록 자동 생략).

## 3. 수정 파일
| 파일 | 설명 |
|---|---|
| `src/lib/coachChat/systemPrompt.ts` | 시스템 지시문 전문 + 참조 단락 + VERSION 갱신. 조립 함수·캐싱 경계 무수정 |
| `src/lib/coachChat/types.ts` | `MemoryProfile` 타입 추가(기존 타입 무수정) |
| `src/lib/coachChat/memoryProfile.ts` | 신규 — 수동 카드 포매터(DB·UI·자동화 없음) |

## 4. 검증 결과
| 검증 항목 | 결과 | 근거 |
|---|---|---|
| build(tsc+vite) | PASS | 타입 오류 0 |
| 시스템 지시문 교체·버전 갱신 | PASS | 샘플 조립 출력 VERSION=`rc2-03-guardrail`, 선두·말미 문구 확인 |
| 조립 순서·캐싱 경계 유지 | PASS | messages[0]에 가변부 결합(system 밖), 순서 불변 |
| 빈 메모리 카드 생략 | PASS | `{}`·`null` → `""` |
| 실제 화면(MCP 브라우징) | N/A | 채팅 UI는 spec06 — 현 단계 렌더 화면 없음 |

## 5. 미완료 / 보류 / 주의사항 (층위 분리 — 축소 아님)
- **메모리 카드 영속화·storageGate(저장 활성화 게이트)**: spec04. 통증·체성분 등 건강정보(민감정보) 전제로 설계.
- **대화 원문(transcript) 저장의 구현/활성화 분리(★출시 전 필수)**: 저장 기능은 구현하되, 개인정보처리방침·동의 UI·보유기간·삭제(soft delete/화면상 삭제, hard delete/완전 파기)·접근통제 완비 전 사용자 대상 활성화 금지. 저장부터 켜는 순서 역전 금지.
- **메모리 입력 UI·확장조회 사용자 확인 버튼**: spec06.
- **자동 메모리 갱신**: Phase2 이후 미룬 궁극 목표(배제 아님). 수동 카드 데이터가 자동화 추출 정답지로 축적.
- **다층 방어의 UI 면책고지·약관 면책**: spec04 + 법률 자문.

## 6. 사용자 의도·정서·지침 (반드시 보존)
- **데이터 기반 코치**: 모델 지능이 아니라 "내 운동 기록·여정을 아는 코치"가 상품가치. 최근 14일 스냅샷 + 전체 여정 "함께" 본다(14일만 보는 얕은 코치 금지).
- **면책봇 금지**: "전문가 상담하세요"·"개인차가 있습니다"만 반복하는 회피 금지.
- **무책임한 처방 금지**: "통증 있어도 뛰세요" 류 동조·의료 진단/처방 금지.
- **양극단 배제·균형점**: 위험 근거 없으면 성장 의지 존중, 있으면 회복 우선(무조건 쉬어라/무조건 더 해라 둘 다 배제).
- **사용자 여정 이해**: "어디서 시작해 어디까지 왔는가, 어디서부터 무엇이 달라졌는가".
- **수동 메모리는 종착점 아님**: 자동 메모리는 배제가 아니라 미룬 목표(사용자가 명시적으로 경계).
- **명세 의도 축소 금지**: 00번 A-1 — 편의·자체 판단으로 왜곡·축소·생략 금지.

## 7. 후속 작업 지시 (다음 작업자)
- 다음 담당 **spec_rc2_04_storage_privacy.md**(의존성 spec01). master_index C-1·decision_log #6(저장 구현/활성화 분리·번복 이력) 직접 재열람.
- 변경 금지: `assembleCoachChat` 조립 순서·캐싱 경계 / 고정 시스템 지시문에 가변 데이터 삽입 / spec02 주입 엔진 재설계 / spec01 chat-proxy·로그·원가 구조.
- 가드레일의 "데이터 없음 분기"는 `injectionBlock`/`memoryProfile`이 비었을 때 동작 → spec04가 저장·복원 계층을 붙여도 이 동작 유지.
