# task-2980 Phase 2 · 인슈위키 유튜브 — Sonnet 요약 + Drive 업로드 + 공개 카드

## 배경
- t2980 Phase 1 E2E: **Whisper 전사 실증 성공**(자막없는 영상 18,308자). 그러나 **Gemini 키 폐기로 요약 실패**(summarized 0, 400 API_KEY_INVALID)·머지 HOLD.
- ★**회장 결정(2026-08-20)**: 요약을 외부 Gemini 대신 **아누 시스템 내부 Claude Sonnet**으로. Gemini 키 블로커 우회. 그리고 **전사파일+요약파일 구글 드라이브 업로드 + 인슈위키 공개 카드 등록**(본문=요약·첨부=전사).
- repo `/home/jay/projects/insuwiki`, worktree `/home/jay/.worktrees/task-2980-dev1` (fd88601). 담당 dev1(헤르메스).

## 역추적된 재사용 재료 (ANU Explore 확인)
1. **요약 = 로컬 Claude CLI**: `scripts/kakao_knowledge/knowledge_extractor_v2.py:208 _call_claude(prompt, model)` = `/home/jay/.local/bin/claude -p <prompt> --model sonnet` (API 키 불요·기존 사례 있음).
2. **Drive 업로드**: `youtube_pipeline/drive_uploader.py:53 upload_markdown(content, channel, title, date, suffix)` → `04_유튜브요약/{채널}/` .md 업로드·webViewLink 반환(중복 스킵).
3. **공개 카드 = `documents` 컬렉션**(visibility:'public'). 스키마 `nextapp/src/types/firestore.ts:109`: 본문 `content`(마크다운)·첨부 `attachments[]{fileId,name,url,type,uploadedAt}`·`coverImage`·`visibility`. 등록=Admin SDK write(현재 파이프라인은 `youtube_knowledge`/`insurance_chunks`만 씀→`documents` 신규 연결).

## 작업
1. **요약 엔진 교체**: `youtube_pipeline/summarizer.py:64-101 generate_summary` 를 Gemini→**로컬 claude CLI sonnet**(`_call_claude` 패턴 이식). 호출부 `main.py:317` 유지. `YOUTUBE_SUMMARY_PROMPT`(summarizer.py:16) 유지. `drive_uploader.py:119` "Gemini 2.5 Flash" 라벨→"Claude Sonnet". ★요약에서 Gemini 의존 제거.
2. **전사·요약 파일 Drive 업로드**: `upload_markdown`로 **전사파일(suffix `_전사`)·요약파일(suffix `_요약`)** 각각 업로드 → webViewLink 2개 확보.
3. **인슈위키 공개 카드 등록**: `documents` 컬렉션에 Admin SDK write — `content`=요약본, `attachments`=[전사파일 `{fileId,name,url:webViewLink,type:'text/plain'}`], `visibility:'public'`, `authorId`=봇계정, `title`=영상제목, `searchKeywords`. main.py 파이프라인 끝에 연결.
4. **임베딩 확인**: `summarizer.generate_embedding`(Gemini)이 키 폐기로 실패하는지 확인. 폐기면 **요약/카드 등록은 임베딩과 독립 완료**(임베딩은 별도 후속으로 분리 — 카드 등록을 임베딩 실패로 막지 말 것).

## 완료조건 (실측 — 자기보고 불신)
- **E2E**: 자막없는 영상 1건 → Whisper 전사 → **Claude Sonnet 요약**(Gemini 400 부재 실증) → 전사·요약 .md **Drive 업로드**(webViewLink 2개) → **`documents` 공개 카드 등록**(content=요약·attachments=전사·visibility=public) Firestore 조회.
- 로컬 claude CLI 요약 실동작 실측. 멱등(videoId 재실행 중복 0).
- report `memory/reports/task-2980-phase2.md` + `.done` + **ANU 콜백**(collector_role=ANU). **머지 HOLD**(ANU 독립검증).
- ★**Phase 1 잔여 블로커 = 커밋 `.pyc` 평문 시크릿 4종**: 함께 정리(untrack + .gitignore + 키 rotate 여부 ANU 보고) 또는 별도 명시. 콜백 prompt UTF-8 ≤3900 bytes 봉투만.

★ 담당 dev1(헤르메스).
