kdynotebook -- NotebookLM 통합 리서치/콘텐츠 엔진
NotebookLM을 Claude Code 오케스트레이터로 제어하여 Zero-Token 리서치, 교육 콘텐츠 자동 생성, 뉴스 인텔리전스를 수행하는 통합 스킬. Claude Code는 순수 오케스트레이션 역할(토큰 0 소비)을 하고, NotebookLM(Gemini 기반)이 실제 분석을 수행하여 비용을 95% 절감한다.
3가지 시나리오:
- A (research): Zero-Token 리서치 -- 3라운드 Q&A로 대량 문서 분석 ($0.10-0.30, 기존 대비 95% 절감)
- B (educate): 교육 콘텐츠 생성 -- 강의/문서에서 10종 학습 자료 자동 생성
- D (news): 뉴스/트렌드 인텔리전스 -- kdyintel 수집 결과를 NotebookLM으로 심층 분석
기본 경로
GENERAL_PRO 결정 순서:
1. 환경변수 GENERAL_PRO_PATH
2. CWD가 00-general-pro* 내부이면 해당 루트
3. ~/{develop,dev}/00-general-pro-web 존재 탐색
4. 실패 시 AskUserQuestion: "00-general-pro-web 경로를 입력해주세요"
GENERAL_PRO = {결정된 경로}
SKILLS_DIR = $GENERAL_PRO/03-skills
INTEL_DIR = $GENERAL_PRO/docs/intel
RESEARCH_DIR = $INTEL_DIR/notebooklm-research
MCP_CATALOG = $GENERAL_PRO/02-reusable-code/14-mcp-catalog
REFS_DIR = $GENERAL_PRO/03-skills/kdynotebook/references
OUTPUT_DIR = $INTEL_DIR/kdynotebook
인수 처리
사용자가 제공한 인수: $ARGUMENTS
| 인수 | 설명 | Phase 영향 |
|---|---|---|
| (없음) | 대화형 모드 선택 후 실행 | 전체 |
--mode research | Zero-Token 리서치 모드 (시나리오 A) | Phase 2A |
--mode educate | 교육 콘텐츠 생성 모드 (시나리오 B) | Phase 2B |
--mode news | 뉴스/트렌드 인텔리전스 (시나리오 D) | Phase 2D |
--source <url|path> | 소스 URL 또는 로컬 파일 경로 지정 | Phase 1 |
--output <dir> | 산출물 저장 디렉토리 (기본: $OUTPUT_DIR) | Phase 3 |
--quick | 기본값으로 빠른 실행 (research 모드 + 3라운드) | Phase 1 건너뜀 |
Phase 흐름
Phase 0: 컨텍스트 탐지
-> MCP 서버 가용성, 기존 산출물, Python 환경 확인
|
Phase 1: 소스 입력 및 모드 선택
-> 대화형 모드/소스 선택 (--quick 시 기본값 적용)
|
Phase 2A/2B/2D: 모드별 실행
-> 2A: Zero-Token 리서치 (3라운드 Q&A)
-> 2B: 교육 콘텐츠 생성 (10종 산출물)
-> 2D: 뉴스/트렌드 인텔리전스 (kdyintel 연동)
|
Phase 3: 산출물 저장
-> Markdown 구조화 보고서 + 파일 저장
|
Phase 4: 비용 절감 리포트
-> 토큰 절감량 계산 + 비교 보고서
Phase 0: 컨텍스트 탐지
0-1. 인수 분기
if --quick:
mode = "research", source = $ARGUMENTS에서 --source 추출
-> Phase 1 건너뜀 -> Phase 2A로 직행
elif --mode:
mode = argument에서 추출 ("research" | "educate" | "news")
source = --source가 있으면 추출, 없으면 Phase 1에서 질문
else:
Phase 1에서 대화형으로 결정
0-2. MCP 서버 가용성 확인
Glob: $MCP_CATALOG/notebooklm-*.md
Read: 프로젝트 루트/.mcp.json (존재 시)
확인 항목:
notebooklm-mcp(PleasePrompto/notebooklm-mcp) -- MCP 카탈로그 등록 여부notebooklm-pipeline(claude-world/notebooklm-skill) -- MCP 카탈로그 등록 여부- 프로젝트
.mcp.json에 NotebookLM MCP 설정 여부
결과에 따라 mcp_available 플래그 설정:
- MCP 사용 가능: MCP 도구를 통한 자동화 파이프라인
- MCP 미설정: 수동 NotebookLM 사용 가이드 폴백 (사용자에게 단계별 안내)
0-3. 기존 산출물 확인
Glob: $OUTPUT_DIR/*.md
Glob: $RESEARCH_DIR/*.md
존재하면 최근 산출물 날짜/주제를 표시하여 중복 분석 방지에 활용.
0-3b. 연구자료 교차 참조
if GP_AVAILABLE:
RESEARCH_VAULT = $GENERAL_PRO/08-research-vault
Glob: $RESEARCH_VAULT/*/analyses/*.md
→ 리서치 주제 키워드와 vault 분석 카드 제목 매칭
→ 매칭되는 기존 분석이 있으면: "관련 연구자료 {N}건 ({topic})" 표시
→ Phase 2 리서치 수행 시 기존 분석 결과를 컨텍스트로 활용
0-4. Python 환경 검증 (파이프라인 모드 시)
Bash: python3 --version 2>/dev/null || python --version 2>/dev/null
Bash: uv --version 2>/dev/null
- Python 미설치 시: MCP 전용 모드 안내
- uv 미설치 시: pip 폴백 또는 설치 안내
0-5. 디렉토리 확보
Bash: mkdir -p "$OUTPUT_DIR"
0-6. 컨텍스트 요약 표시
MCP 가용성, 기존 산출물 수, Python 환경 상태를 테이블로 표시.
Phase 1: 소스 입력 및 모드 선택
--quick시 이 Phase를 건너뜁니다.
1-1. 모드 선택
--mode 미지정 시:
AskUserQuestion: "어떤 모드로 실행할까요?"
suggestions:
- "research -- Zero-Token 리서치 (95% 비용 절감, 3라운드 Q&A)"
- "educate -- 교육 콘텐츠 생성 (10종 학습 자료)"
- "news -- 뉴스/트렌드 인텔리전스 (kdyintel 연동)"
-> mode 결정.
1-2. 소스 입력
--source 미지정 시 모드별 소스 요청:
research 모드:
AskUserQuestion: "분석할 소스를 입력해주세요. (URL, 파일 경로, 또는 텍스트)"
suggestions:
- "URL: https://example.com/paper.pdf"
- "파일: {프로젝트 경로}/docs/research.md"
- "텍스트: 직접 붙여넣기"
educate 모드:
AskUserQuestion: "교육 콘텐츠로 변환할 소스를 입력해주세요."
suggestions:
- "강의 자료 (PDF, MD)"
- "기술 문서"
- "교재/매뉴얼"
news 모드:
-> Phase 2D에서 kdyintel 결과를 자동 로드 (소스 입력 불필요)
1-3. 소스 유효성 검증 + 설정 요약
- URL: WebFetch 접근성 확인 (실패 시 대체 소스 요청)
- 파일: Read 존재 확인 (실패 시 경로 재입력)
- 텍스트: 최소 100자 검증
검증 통과 후 모드/소스/출력 디렉토리를 테이블로 표시.
Phase 2A: Zero-Token 리서치 모드
핵심 전략: Claude Code = 오케스트레이터 (토큰 0), NotebookLM = Gemini 분석 엔진
2A-1. NotebookLM 노트북 생성 + 소스 추가
MCP 사용 가능 시:
MCP: notebooklm_create_notebook -> "Research-{YYYY-MM-DD}-{주제}"
MCP: notebooklm_add_source -> notebook_id + source_type(url|text|file) + content
MCP 미설정 시 (수동 가이드):
1. https://notebooklm.google.com -> 새 노트북 생성
2. 소스 추가 (URL/텍스트/파일)
3. 완료 후 노트북 URL 또는 "완료" 입력
2A-2. 3라운드 리서치 실행
핵심 비용 절감 패턴: Claude Code는 질문만 전달하고 NotebookLM(Gemini)이 분석 수행.
| 라운드 | 전략 | 질문 요지 |
|---|---|---|
| Round 1 (Broad) | 개요 파악 | "전체 개요, 주요 주제, 핵심 개념, 구조를 분석해주세요" |
| Round 2 (Specific) | 심화 분석 | R1 결과 기반 심화 질문 3-5개 (개념 관계, 방법론, 적용법) |
| Round 3 (Edge Cases) | 한계/반론 | "예외, 한계점, 반론, 미해결 과제, 대안적 접근법은?" |
각 라운드: MCP(notebooklm_ask) 또는 수동(사용자가 Q&A 입력 후 결과 붙여넣기).
2A-3. 노트 합성 및 구조화
3라운드 결과를 종합하여 구조화된 리서치 노트 생성:
- 메타데이터 (소스, 분석일, 모드, 엔진)
- 개요 (Round 1), 심층 분석 (Round 2), 한계/예외 (Round 3)
- 핵심 인사이트 5-10개 + 실행 항목 (액션 아이템)
레시피 참조: references/pipeline-recipes.md -- research-to-article
Phase 2B: 교육 콘텐츠 생성 모드
2B-1. 소스 분석
소스 유형 판별:
- 강의 자료 (PDF, 슬라이드) -> recipe: lecture-to-study-kit
- 기술 문서/매뉴얼 -> recipe: docs-to-training
- 기타 -> 사용자에게 레시피 선택 요청
2B-2. NotebookLM 노트북 생성 + 소스 분석
노트북 생성/소스 추가는 Phase 2A-1과 동일 패턴 (MCP 또는 수동).
노트북명: "Educate-{날짜}-{주제}", 초기 질문: "핵심 개념, 학습 목표, 주요 용어 분석"
2B-3. 10종 산출물 생성
| # | 산출물 | 생성 주체 | 설명 |
|---|---|---|---|
| 1 | Audio Overview | NotebookLM 내장 | 음성 요약 (팟캐스트 형식) |
| 2 | Quiz | NotebookLM Q&A | 핵심 개념 확인 문제 10-20개 |
| 3 | Flashcards | NotebookLM Q&A | 용어/개념 카드 20-30장 |
| 4 | Study Guide | NotebookLM Q&A | 학습 가이드 (목표, 핵심, 요약) |
| 5 | Mind Map | Claude Code 후처리 | Mermaid mindmap 다이어그램 |
| 6 | Timeline | Claude Code 후처리 | Mermaid timeline 다이어그램 |
| 7 | Report | NotebookLM Q&A | 상세 분석 리포트 |
| 8 | Briefing | NotebookLM Q&A | 3분 브리핑 (핵심만) |
| 9 | Slides | Claude Code 후처리 | Markdown 슬라이드 요약 |
| 10 | Video Script | Claude Code 후처리 | 영상 대본 (5-10분 분량) |
NotebookLM Q&A 시퀀스: 퀴즈 생성 -> 플래시카드 -> 학습 가이드 -> 시간순 정리 -> 브리핑 Claude Code 후처리: Q&A 결과에서 Mermaid 다이어그램, 슬라이드, 대본 자동 변환
산출물 선택:
AskUserQuestion: "생성할 산출물을 선택하세요 (복수 선택 가능)."
suggestions: ["전체 (10종)", "학습 키트 (Quiz+Flashcards+StudyGuide)",
"프레젠테이션 (Slides+Briefing)", "멀티미디어 (Audio+VideoScript)", "직접 선택"]
레시피 참조: references/pipeline-recipes.md -- lecture-to-study-kit, docs-to-training
Phase 2D: 뉴스/트렌드 인텔리전스 모드
2D-1. kdyintel 수집 결과 로드
Glob: $INTEL_DIR/reports/*-intel-report.md
Glob: $INTEL_DIR/opportunities/*.md
Glob: $INTEL_DIR/raw/*-collection.json
- 최신 인텔리전스 보고서 로드
- 기회 카드 목록 로드
- 수집 원본 데이터 로드 (있으면)
보고서가 없는 경우:
AskUserQuestion: "kdyintel 수집 결과가 없습니다. 어떻게 진행할까요?"
suggestions:
- "먼저 /kdyintel --quick 실행"
- "URL 목록을 직접 입력"
- "취소"
2D-2. NotebookLM 소스 추가
노트북 생성/소스 추가는 Phase 2A-1과 동일 패턴 (MCP 또는 수동).
노트북명: "News-Intel-{YYYY-MM-DD}", 소스: 인텔리전스 보고서 + 기회 카드 텍스트.
2D-3. Q&A 분석 실행
질문 시퀀스:
1. "이 뉴스들에서 공통적으로 나타나는 트렌드 패턴 5개를 식별해주세요."
2. "각 트렌드의 성장 단계(태동/성장/성숙/쇠퇴)를 분석해주세요."
3. "이 트렌드들에서 도출 가능한 비즈니스 기회를 분석해주세요."
4. "경쟁 환경과 진입 장벽을 분석해주세요."
5. "향후 3-6개월 전망과 권장 행동을 제안해주세요."
2D-4. 통합 브리핑 생성
Q&A 결과를 종합하여 브리핑 문서 생성:
- 메타데이터 (분석일, 소스 건수, 분석 엔진)
- 트렌드 패턴 (5개 + 성장 단계)
- 기회 분석 (비즈니스 기회 + 경쟁 환경)
- 전망 및 권장 행동 (3-6개월)
- kdyintel 기회 카드 교차 검증
레시피 참조: references/pipeline-recipes.md -- news-to-briefing
Phase 3: 산출물 저장
3-1. 출력 디렉토리 결정
if --output:
target_dir = --output 값
else:
target_dir = $OUTPUT_DIR
Bash: mkdir -p "$target_dir"
3-2. 모드별 파일 저장
| 모드 | 저장 경로 | 산출물 |
|---|---|---|
| research | $target_dir/YYYY-MM-DD-research-{주제}.md | 리서치 노트 1개 |
| educate | $target_dir/YYYY-MM-DD-educate-{주제}/ | 선택된 산출물 (최대 10개) + README.md |
| news | $target_dir/YYYY-MM-DD-news-briefing.md | 통합 브리핑 1개 |
3-2b. 연구자료 아카이빙 판단 및 저장
if GP_AVAILABLE:
RESEARCH_VAULT = $GENERAL_PRO/08-research-vault
# ── 아카이빙 가치 판단 ──
archive_score = 0
if 리서치에 체계적 분석 결과 (비교표, 평가 매트릭스 등) 포함: +2
if 기존 vault 주제와 연속성 있음 (시계열 추적 가치): +2
if 원본 소스가 HWPX/공식 문서/학술 자료: +2
if 단일 URL 요약이 아닌 다중 소스 종합: +1
if 다른 프로젝트에서도 참조할 범용성: +1
if archive_score >= 3:
topic_slug = 리서치 주제의 kebab-case 변환
if $RESEARCH_VAULT/{topic_slug}/ 미존재:
AskUserQuestion: "'{주제}' 리서치 결과를 research-vault에 아카이빙할까요? (새 주제 폴더 생성)"
→ 승인 시: mkdir -p + _TOPIC_TEMPLATE.md 복사 → _INDEX.md 초기화
else:
→ 기존 주제 폴더에 추가
Write: $RESEARCH_VAULT/{topic_slug}/analyses/YYYY-MM-DD-notebook-{주제}.md
→ _ANALYSIS_TEMPLATE.md 기반, 리서치 핵심 발견으로 분석 카드 작성
Edit: $RESEARCH_VAULT/{topic_slug}/_INDEX.md
→ 분석 이력 테이블에 1행 추가
else:
→ 아카이빙 건너뜀 (로컬 산출물만 유지)
3-3. 생성 파일 목록 표시
파일 경로, 크기, 설명을 테이블로 출력.
Phase 4: 비용 절감 리포트
4-1. 비용 비교 테이블
전통적 접근(Claude 직접 분석)과 kdynotebook(Zero-Token) 비교:
| 항목 | 전통적 접근 | kdynotebook | 절감률 |
|---|---|---|---|
| 분석 비용 | $4-6 | $0.10-0.30 | ~95% |
| 소요 시간 | 5-6시간 | 25-40분 | ~85% |
| 토큰 소비 | 소스 전체 입력 | 오케스트레이션만 | ~95% |
4-2. 다음 권장 작업
| 모드 | 후속 작업 |
|---|---|
| research | /kdyextract (패턴 추출), /kdymarket (시장 분석), /kdyidea (아이디어) |
| educate | 콘텐츠 검토, Audio Overview (NotebookLM 직접), 추가 소스 보강 |
| news | /kdyintel --market (전략 연계), /kdymarket (시장 분석), /kdygenesis (프로젝트) |
예외사항
| 상황 | 처리 |
|---|---|
| NotebookLM MCP 서버 미설치 | 수동 NotebookLM 사용 가이드로 폴백 (단계별 안내) |
| MCP 서버 설정은 있으나 연결 실패 | MCP 상태 확인 안내 + 수동 가이드 폴백 |
| 소스 URL 접근 불가 | 대체 소스 요청 (AskUserQuestion) |
| 소스 파일 미존재 | 파일 경로 재입력 요청 |
| NotebookLM 소스 제한 초과 (50개) | 소스 우선순위 지정 안내, 핵심 소스만 추가 |
| NotebookLM 로그인 필요 | Google 계정 로그인 안내 |
| MCP 도구 호출 실패 | 수동 NotebookLM 사용 가이드 폴백 |
| kdyintel 결과 없음 (news 모드) | /kdyintel --quick 먼저 실행 제안 또는 URL 직접 입력 |
| 교육 콘텐츠 생성 부분 실패 | 성공한 산출물만 저장, 실패 항목 표시 |
| Python 환경 없음 | MCP 전용 모드 또는 수동 가이드 모드로 전환 |
관련 스킬/에이전트
| 도구 | 역할 | 관계 |
|---|---|---|
/kdyintel | 뉴스 수집/트렌드 분석 | Ref (news 모드에서 수집 결과 활용) |
notebooklm-mcp | NotebookLM MCP 서버 | Ref (MCP 카탈로그 참조, Phase 0 가용성 확인) |
notebooklm-pipeline | NotebookLM 파이프라인 MCP | Ref (MCP 카탈로그 참조) |
/kdyextract | 코드 추출 패키징 | Recommend (리서치 결과에서 코드 패턴 추출 시) |
/kdymarket | 마케팅 전략 분석 | Recommend (리서치/뉴스 분석 결과 기반 시장 분석) |
/kdyidea | 아이디어 발굴 | Recommend (리서치 결과 기반 아이디어 정제) |
/kdygenesis | 프로젝트 생성 | Recommend (분석 결과에서 프로젝트 전환) |
/kdymcp | MCP 서버 관리 | Recommend (NotebookLM MCP 설치/설정 필요 시) |
trend-analyst | 트렌드 심층 분석 | Ref (news 모드에서 트렌드 검증 참고) |
08-research-vault | HWPX 연구자료 저장소 | Recommend (GP경유, 리서치 결과 아카이빙 가치 판단 후 분석 카드로 저장) |
사용 예시
# Zero-Token 리서치 (URL 소스)
/kdynotebook --mode research --source https://example.com/paper.pdf
# Zero-Token 리서치 (로컬 파일)
/kdynotebook --mode research --source {프로젝트 경로}/docs/analysis.md
# 교육 콘텐츠 생성
/kdynotebook --mode educate --source {프로젝트 경로}/docs/lecture-notes.md
# 교육 콘텐츠 (출력 디렉토리 지정)
/kdynotebook --mode educate --source {프로젝트 경로}/docs/manual.pdf --output {프로젝트 경로}/training
# 뉴스/트렌드 인텔리전스 (kdyintel 결과 활용)
/kdynotebook --mode news
# 빠른 리서치 (기본값: research 모드, 3라운드)
/kdynotebook --quick --source https://arxiv.org/abs/2406.xxxxx
# 대화형 모드 (모드/소스 대화로 결정)
/kdynotebook
주의사항
- NotebookLM은 Google 계정 로그인이 필요합니다
- MCP 서버 사용 시 Chrome 프로필 또는 쿠키 인증이 필요합니다
- Zero-Token 리서치 모드에서 Claude는 오케스트레이션만 수행하므로 API 비용이 최소화됩니다
- 소스 추가 시 NotebookLM의 소스 제한 (최대 50개)을 확인하세요
- NotebookLM Audio Overview는 웹 UI에서만 생성 가능합니다 (MCP로 트리거 불가한 경우 수동 안내)
- 레시피 상세는
references/pipeline-recipes.md를 참조하세요 - 비용 추정은 Anthropic API 공식 가격 기준이며 실제 비용은 다를 수 있습니다