# task-144.1: InsuWiki 유튜브 3-Layer 요약 파이프라인 구현

## 확정 아키텍처: 방안 B 개선안
- 분석 보고서: `/home/jay/projects/insuwiki/memory/reports/task-141.1.md`
- 기존 계획서 참조: `/home/jay/projects/insuwiki/docs/plans/260303-youtube-3layer-plan.md`
- 맥락노트 참조: `/home/jay/projects/insuwiki/docs/plans/260303-youtube-3layer-context-note.md`

## 핵심 원칙
1. **기존 약관 RAG 검색 절대 오염 금지** — insurance_chunks에 유튜브 데이터 넣지 말 것
2. **기존 6섹션(youtube_knowledge) 무변경** — 현재 동작 그대로 유지
3. **신규 컬렉션 분리**: youtube_transcripts (L3), youtube_summaries (L1/L2)
4. **이중 저장 금지** — youtube_knowledge와 youtube_summaries에 같은 데이터 넣지 말 것

## 구현 구조
```
[기존 유지 — 변경 없음]
crawlYoutubeChannels.ts 기존 흐름:
  자막추출 → 6섹션 요약 → Drive 업로드 → insurance_chunks → youtube_knowledge

[신규 추가 — 확장]
crawlYoutubeChannels.ts에 단계 추가:
  자막추출 후 → youtube_transcripts 청크 저장 (L3)
  6섹션 요약 완료 후 → youtube_summaries 저장 (L2, 개선된 프롬프트)

[별도 배치 — 신규]
generateYoutubeChannelInsight (새 Cloud Function):
  youtube_summaries L2 집약 → youtube_summaries L1 저장
```

## Phase별 구현
### Phase 1: L3 자막 원문 저장
- 자막 추출 후 청크로 분할하여 `youtube_transcripts` 컬렉션에 저장
- 스키마: videoId, channelId, chunkIndex, text, startTime, endTime, embedding, createdAt
- 임베딩 모델: gemini-embedding-001 (현재 사용 중인 것과 동일)

### Phase 2: L2 구조화 요약
- 기존 6섹션 요약 완료 후, 별도 프롬프트로 L2 구조화 요약 생성
- `youtube_summaries` 컬렉션에 저장 (level: 'L2')
- 환각 방지 프롬프트 가드 적용

### Phase 3: L1 채널별 통합 인사이트
- 새 Cloud Function `generateYoutubeChannelInsight`
- 채널별 L2 요약들을 집약하여 L1 통합 인사이트 생성
- `youtube_summaries` 컬렉션에 저장 (level: 'L1')

### Phase 4: 통합 테스트
- 기존 약관 RAG 검색이 영향받지 않는지 반드시 검증
- YouTube 파이프라인 전체 흐름 테스트
- Firestore 인덱스 정의 추가

## 참조 파일
- 현재 YouTube 코드: `/home/jay/projects/insuwiki/functions/src/crawlYoutubeChannels.ts`
- 요약 프롬프트: `/home/jay/projects/insuwiki/functions/src/summary-prompts.ts`
- 요약 파이프라인: `/home/jay/projects/insuwiki/functions/src/summary-pipeline.ts`
- 벡터 검색: `/home/jay/projects/insuwiki/nextapp/app/api/vector-search/route.ts`
- .env.local: `/home/jay/projects/insuwiki/nextapp/.env.local`

## 환경 참고
- Gemini 모델: gemini-2.5-flash (요약), gemini-embedding-001 (임베딩)
- Firebase 배포: `export GOOGLE_APPLICATION_CREDENTIALS="/home/jay/.config/gcloud/legacy_credentials/anu2026@insuwiki-j2h.iam.gserviceaccount.com/adc.json"`
- 프로젝트: insuwiki-j2h

## 완료 기준
- youtube_transcripts, youtube_summaries 컬렉션 정상 동작
- 기존 youtube_knowledge 흐름 변경 없음
- 기존 insurance_chunks 검색 오염 없음 확인
- TypeScript 빌드 성공, ESLint 통과
