Claude Agent Skill · by Ai Native Camp

Content Digest

Install Content Digest skill for Claude Code from ai-native-camp/camp-2.

Install
Terminal · npx
$npx skills add https://github.com/vercel-labs/agent-skills --skill vercel-react-best-practices
Works with Paperclip

How Content Digest fits into a Paperclip company.

Content Digest drops into any Paperclip agent that handles this kind of work. Assign it to a specialist inside a pre-configured PaperclipOrg company and the skill becomes available on every heartbeat — no prompt engineering, no tool wiring.

S
SaaS FactoryPaired

Pre-configured AI company — 18 agents, 18 skills, one-time purchase.

$27$59
Explore pack
Source file
SKILL.md578 lines
Expand
---name: content-digestdescription: This skill should be used when the user asks to "콘텐츠 정리", "아티클 요약", "PDF 학습", "영상 정리", "트윗 정리", "digest", "summarize", "정리해줘", or provides a YouTube URL, X/Twitter URL (x.com, twitter.com), webpage URL, or PDF file for analysis. Supports YouTube (transcript), X/Twitter (via fetch-tweet skill), webpage (full content via browser), and PDF (text + image per page). Generates Quiz-First learning with 9 questions across 3 difficulty levels.--- # Content Digest 콘텐츠 → Quiz-First 학습 → 선택적 깊이 탐색 → 근본 개념 확장. > **Task Agent 기반 설계**: 긴 컨텍스트는 subagent가 처리하고, 메인 세션은 최종 결론만 소비 ## 아키텍처 원칙 1. **Context Separation**: 긴 자막/본문은 Task agent가 처리, 메인 세션은 가벼운 md 파일만 Read2. **Clean Transcript**: 자막에서 번호, 시간 제거 → 순수 영어 텍스트만 추출3. **Web Research Integration**: 추출된 키워드로 자동 웹 리서치4. **Single Output**: 모든 처리 결과는 단일 md 파일로 저장 ## 지원 콘텐츠 | 타입 | 추출 방법 | 저장 경로 ||-----|----------|----------|| YouTube | Task agent (yt-dlp + 정제) | `research/digests/youtube/` || X/Twitter | fetch-tweet 스킬 (api.fxtwitter.com) | `research/digests/tweet/` || Webpage | Task agent (browser + 정제) | `research/digests/web/` || PDF | Task agent (Read + 정제) | `research/digests/pdf/` | ## 핵심 원칙 1. **Quiz-First**: 요약 보기 전에 퀴즈부터 (Pretesting Effect → 9-12% 향상)2. **Knowledge Gap**: 틀린 문제가 호기심을 만들고, 호기심이 기억을 강화3. **선택적 깊이**: 사용자가 더 알고 싶은 부분만 깊게4. **근본 확장**: 콘텐츠 너머의 기초 개념까지 웹 검색으로 확장 --- ## 워크플로우 개요 (Task Agent 기반) ```Phase 1: 콘텐츠 타입 감지Phase 2: Task Agent 실행 (콘텐츠 추출 + 정제 + 웹 리서치 + md 저장)Phase 3: 메인 세션에서 결과 md ReadPhase 4: Pre-Quiz (3문제)Phase 5: 선택적 콘텐츠 제공Phase 6: 본 퀴즈 (9문제)Phase 7: Elaborative InterrogationPhase 8: Foundation ExpansionPhase 9: 스키마 연결Phase 10: 문서 업데이트 (퀴즈 결과 반영)Phase 11: 후속 선택``` --- ## Phase 1: 콘텐츠 타입 감지 입력 패턴에 따라 콘텐츠 타입 자동 결정: | 패턴 | 타입 ||------|------|| `youtube.com`, `youtu.be` | YouTube || `x.com`, `twitter.com` | X/Twitter || `http://`, `https://` (기타) | Webpage || `.pdf` 파일 경로 | PDF | 명확하지 않으면 사용자에게 확인: ```AskUserQuestion:questions:  - question: "어떤 콘텐츠를 분석할까요?"    header: "Type"    options:      - label: "YouTube 영상"        description: "URL을 알려주세요"      - label: "웹페이지/아티클"        description: "URL을 알려주세요"      - label: "PDF 문서"        description: "파일 경로를 알려주세요"``` --- ## Phase 2: Task Agent 실행 (핵심) > **메인 세션의 context를 보호하면서 긴 콘텐츠를 처리** ### 2-1. Task Agent 호출 패턴 ```Task:  subagent_type: "general-purpose"  description: "콘텐츠 추출 및 분석"  prompt: |    ## 목표    {URL/파일경로}에서 콘텐츠를 추출하고 분석하여 md 파일로 저장     ## 단계 (순서 중요)    1. 콘텐츠 추출 (타입별 방법 적용)    2. 텍스트 정제 (번호, 시간 제거 → 영어만 추출)    3. 핵심 키워드 추출 (5-10개)    4. 웹 리서치 (키워드별 WebSearch)    5. **핵심 요약 생성** (3-5문장)    6. **주요 인사이트 도출** (3개)    7. **퀴즈 재료 생성** (요약/인사이트 기반으로 핵심 주제만)    8. md 파일 저장     ## 출력 경로    research/digests/{type}/{YYYY-MM-DD}-{sanitized-title}.md``` ### 2-2. X/Twitter 추출 (fetch-tweet 스킬 활용) > **Task Agent 불필요** - fetch-tweet 스크립트로 직접 추출 (짧은 콘텐츠) ```bash# 트윗 원문 + 인게이지먼트 데이터 추출python3 .claude/skills/fetch-tweet/scripts/fetch_tweet.py "{URL}" --json``` JSON 응답에서 활용할 필드:- `tweet.text`: 트윗 본문- `tweet.author`: 작성자 정보 (name, bio, followers)- `tweet.likes/retweets/views`: 인게이지먼트- `tweet.quote`: 인용 트윗 (있을 경우 동일 구조)- `tweet.media`: 첨부 이미지/영상 트윗은 짧으므로 Task Agent 없이 메인 세션에서 직접 처리.인용 트윗이 있으면 함께 포함하여 분석.저장 경로: `research/digests/tweet/{YYYY-MM-DD}-{author}-{short-topic}.md` ### 2-3. YouTube 추출 (Task Agent 내부)  ```bash# 1. 자막 추출yt-dlp --write-auto-sub --sub-lang "en" --skip-download \  --convert-subs vtt -o "%(title)s" "{URL}" # 2. VTT → 순수 텍스트 변환sed -E 's/^[0-9]+$//' | \                    # 번호 제거sed -E 's/[0-9]{2}:[0-9]{2}:[0-9]{2}.*//g' | \  # 타임스탬프 제거sed -E 's/<[^>]+>//g' | \                    # HTML 태그 제거tr -s '\n' | \                               # 빈 줄 정리grep -v '^$'                                 # 빈 줄 삭제``` 정제 결과: 순수 영어 텍스트만 남음 (시간, 번호, 중복 없음) ### 2-4. Webpage 추출 (Task Agent 내부) ```1. mcp__claude-in-chrome__tabs_context_mcp2. mcp__claude-in-chrome__tabs_create_mcp3. mcp__claude-in-chrome__navigate: url="{URL}"4. mcp__claude-in-chrome__get_page_text: tabId={tabId}5. 스크롤 후 추가 콘텐츠 확인``` ### 2-5. PDF 추출 (Task Agent 내부) ```Read: file_path="{PDF 경로}"``` ### 2-6. 웹 리서치 (Task Agent 내부) 추출된 텍스트에서 핵심 키워드 5-10개 식별 후: ```WebSearch (병렬 실행):  - "{키워드1} explained"  - "{키워드2} research"  - "{저자/발표자} {주제}"  - "{핵심개념} fundamentals"``` ### 2-7. 최종 md 파일 저장 (Task Agent 내부) 경로: `research/digests/{type}/{YYYY-MM-DD}-{sanitized-title}.md` ```markdown---title: {콘텐츠 제목}type: {youtube|web|pdf}url: {URL 또는 파일경로}author: {저자/채널명}date: {발행 날짜}processed_at: {처리 일시}keywords: [{키워드1}, {키워드2}, ...]--- # {콘텐츠 제목} ## 핵심 요약{3-5문장 요약} ## 주요 인사이트1. **{인사이트1}**: 설명2. **{인사이트2}**: 설명3. **{인사이트3}**: 설명 ## 웹 리서치 결과### {키워드1}- 발견 내용 요약- 출처: {URL} ### {키워드2}- 발견 내용 요약- 출처: {URL} ## 원문 (정제됨){번호/시간 제거된 순수 텍스트} ## Quiz 재료 (Pre-Quiz + 본 Quiz용)> **생성 순서**: 반드시 위의 "핵심 요약"과 "주요 인사이트"를 먼저 작성한 후, 이를 기반으로 퀴즈 생성> **출제 원칙**: 핵심 주제만 출제. 날짜, 통계, 지엽적 세부사항 제외. ### 기본 레벨 (3문제 후보)- Q1: {핵심 개념/메시지 관련}- Q2: {주요 원칙 관련}- Q3: {저자 핵심 주장 관련} ### 중급 레벨 (3문제 후보)- Q4: {개념 간 관계}- Q5: {근거와 논리 연결}- Q6: {핵심 아이디어 비교} ### 심화 레벨 (3문제 후보)- Q7: {실제 적용/응용}- Q8: {핵심 원리의 확장}- Q9: {저자 관점의 함의}``` --- ## Phase 3: 메인 세션에서 결과 Read Task Agent 완료 후: ```Read: file_path="research/digests/{type}/{YYYY-MM-DD}-{sanitized-title}.md"``` > **메인 세션은 정제된 md 파일만 읽음** → context 효율 극대화 --- ## Phase 4: Pre-Quiz (핵심) > **목적**: 정보 갭 생성 → 주의력 프라이밍 → 능동적 학습 유도 ### 퀴즈 출제 원칙 **핵심 주제만 질문**: 사소한 세부사항이나 숫자가 아닌, 콘텐츠의 핵심 메시지와 직결되는 내용만 출제- ✅ 핵심 개념, 주요 원칙, 저자의 핵심 주장- ❌ 날짜, 통계 수치, 부수적 예시, 지엽적 세부사항 결과 md 파일의 "Quiz 재료" 섹션을 활용하여 3문제 출제: ```AskUserQuestion:questions:  - question: "[Pre-Quiz] 이 콘텐츠에서 다룰 것 같은 핵심 개념은?"    header: "PQ1"    options: [4개 선택지]  - question: "[Pre-Quiz] 저자가 강조할 것 같은 메시지는?"    header: "PQ2"    options: [4개 선택지]  - question: "[Pre-Quiz] 이 주제에서 가장 중요한 원칙은?"    header: "PQ3"    options: [4개 선택지]``` **결과 처리**:- 정답/오답 즉시 표시- 틀린 문제 → "이 부분을 콘텐츠에서 확인해보세요" 안내- **Knowledge Gap 생성**: "이제 콘텐츠를 보면 답을 찾고 싶어질 것입니다" --- ## Phase 5: 선택적 콘텐츠 제공 Pre-Quiz 결과에 따라 사용자에게 선택지 제공: ```AskUserQuestion:questions:  - question: "어떤 콘텐츠를 먼저 보시겠습니까?"    header: "Content"    options:      - label: "틀린 문제 관련 섹션만"        description: "Pre-Quiz에서 틀린 부분의 답을 찾아보기"      - label: "핵심 인사이트 3개"        description: "콘텐츠의 가장 중요한 포인트만"      - label: "전체 요약 + 인사이트"        description: "종합적인 콘텐츠 분석"      - label: "바로 본 퀴즈로"        description: "요약 없이 9문제 퀴즈 진행"``` ### 5-1. 틀린 문제 관련 섹션 Pre-Quiz 오답과 관련된 섹션만 추출:- YouTube: 해당 타임스탬프- Webpage: 관련 단락- PDF: 해당 페이지/섹션 ### 5-2. 핵심 인사이트 (간결 모드) ```markdown## 핵심 인사이트 3개 1. **[키워드]**: 1-2문장 설명2. **[키워드]**: 1-2문장 설명3. **[키워드]**: 1-2문장 설명``` ### 5-3. 전체 요약 + 인사이트 ```markdown## 요약{3-5문장} ## 인사이트### 핵심 아이디어### 적용 가능한 점``` --- ## Phase 6: 본 퀴즈 (9문제) 3단계 × 3문제. AskUserQuestion으로 각 단계 진행. > **출제 원칙**: 모든 문제는 콘텐츠의 핵심 주제와 직결되어야 함. 지엽적 세부사항, 날짜, 통계 수치는 출제 금지. | 단계 | 난이도 | 출제 기준 ||------|--------|----------|| 1 | 기본 | 핵심 메시지, 주요 개념 || 2 | 중급 | 개념 간 관계, 근거 연결 || 3 | 심화 | 사례 분석, 적용, 구체적 데이터 | 문제 유형 상세: `references/quiz-patterns.md` **즉각 피드백**: 각 단계 완료 후 정답/해설 즉시 제공 --- ## Phase 7: Elaborative Interrogation > **"왜?" 질문이 깊은 처리를 유발 (76% vs 69% 정답률 향상)** 퀴즈 완료 후, 핵심 개념에 대해 심화 질문: ```AskUserQuestion:questions:  - question: "다음 중 더 깊이 이해하고 싶은 개념은?"    header: "Deep Dive"    multiSelect: true    options:      - label: "{개념 A}"        description: "왜 이것이 중요한지 탐구"      - label: "{개념 B}"        description: "이것의 근본 원리 이해"      - label: "{개념 C}"        description: "실제 적용 사례 확장"      - label: "바로 다음 단계로"        description: "현재 이해 수준으로 충분"``` 선택된 개념에 대해:1. "왜 이것이 사실인가?" 질문과 답변2. 콘텐츠 내 근거 위치 (타임스탬프/페이지/섹션)3. 웹 검색으로 추가 맥락 제공 --- ## Phase 8: Foundation Expansion (근본 확장) > **콘텐츠 너머의 기초 지식 확장** ### 8-1. 기초 개념 웹 검색 (WebSearch 병렬 3-5개) ```검색 쿼리:- "{핵심 개념} fundamentals explained"- "{핵심 개념} 기초 원리"- "{이론/방법론} research paper original"- "{저자/발표자} other works recommendations"``` ### 8-2. 근본 지식 정리 ```markdown## Foundation Expansion ### 이 콘텐츠의 기초가 되는 개념들 | 개념 | 설명 | 출처 ||------|------|------|| {기초 개념 1} | 1줄 설명 | {URL} || {기초 개념 2} | 1줄 설명 | {URL} | ### 더 깊이 들어가려면 - **선수 지식**: {이 콘텐츠를 완전히 이해하려면 알아야 할 것}- **후속 학습**: {이 콘텐츠 다음에 볼 만한 것}- **관련 연구**: {학술적 배경}``` --- ## Phase 9: 스키마 연결 (이전 학습과 연결) > **기존 지식과 연결할 때 학습 효과 극대화** `research/digests/` 폴더의 기존 다이제스트 스캔: ```markdown## 관련 학습 기록 이 콘텐츠와 연결되는 이전 학습: | 콘텐츠 | 타입 | 연결 포인트 | 날짜 ||-------|------|------------|------|| {이전 제목} | {youtube/web/pdf} | {공통 개념/대조되는 관점} | {날짜} | ### 지식 네트워크 ```mermaidgraph LR    A[이번 콘텐츠] --> B[공통 개념]    C[이전 콘텐츠 1] --> B    D[이전 콘텐츠 2] --> B`````` --- ## Phase 10: 문서 업데이트 (퀴즈 결과 반영) Task Agent가 저장한 md 파일에 퀴즈 결과 추가: ```markdown## Pre-Quiz 결과{점수 및 Knowledge Gap 기록} ## 본 퀴즈 결과{점수, 오답 노트} ## Elaborative Interrogation{선택한 개념에 대한 심화 탐구}``` > 기본 콘텐츠는 Phase 2에서 이미 저장됨. 여기서는 학습 결과만 추가. --- ## Phase 11: 후속 선택 ```AskUserQuestion:questions:  - question: "다음으로 무엇을 하시겠습니까?"    header: "Next"    options:      - label: "다른 문제로 재퀴즈"        description: "같은 콘텐츠, 새로운 9문제"      - label: "Deep Research"        description: "웹 심층 조사로 확장 (references/deep-research.md)"      - label: "관련 콘텐츠 추천"        description: "이 주제의 다른 콘텐츠 찾기"      - label: "종료"        description: "학습 완료"``` --- ## 필수: Quiz-First 모드 > **모드 선택 없음**. 항상 Quiz-First로 진행.>> 연구에 따르면 학습 전 테스트가 9-12% 향상 효과를 가져오며,> 요약을 먼저 보면 이 효과가 사라짐. ```워크플로우 (고정):1. 콘텐츠 타입 감지2. Task Agent 실행 (추출 + 정제 + 웹 리서치 + md 저장)3. 메인 세션에서 결과 md Read4. Pre-Quiz (3문제) ← 반드시 먼저5. 선택적 콘텐츠 제공6. 본 퀴즈 (9문제)7-9. 심화 학습 (Elaboration, Foundation, 스키마)10. 문서 업데이트11. 후속 선택``` 사용자가 "요약만", "퀴즈 없이" 등을 요청해도:- "Quiz-First가 학습 효과가 9-12% 더 높습니다. 먼저 3문제만 풀어볼까요?"- 강하게 요청 시에만 요약 제공, 단 퀴즈 권유 메시지 포함 --- ## 콘텐츠 타입별 참고사항 ### YouTube #### 자막 언어 우선순위1. 한국어 수동 → 2. 영어 수동 → 3. 한국어 자동 → 4. 영어 자동 #### yt-dlp 옵션- `--list-subs`: 자막 목록 확인- `--cookies-from-browser chrome`: 로그인 필요 시 ### Webpage > **항상 claude-in-chrome 사용**. WebFetch 사용 금지. #### claude-in-chrome 워크플로우```1. tabs_context_mcp로 탭 컨텍스트 확인2. tabs_create_mcp로 새 탭 생성3. navigate로 URL 이동4. get_page_text로 텍스트 추출5. scroll로 전체 콘텐츠 로드 (무한 스크롤 대응)6. get_page_text 재호출로 추가 콘텐츠 확인7. read_page로 구조 파악 (필요시)``` #### 장점- 동적 콘텐츠 완벽 지원- 페이월/로그인 콘텐츠 접근 가능- 무한 스크롤 페이지 처리- 본문 전체를 정확히 가져옴 ### PDF #### Read 도구 특성- 텍스트와 이미지를 동시에 인식- 페이지별로 처리- 표/차트 구조 인식 가능 #### 대용량 PDF- 페이지 범위 지정하여 분할 처리- 목차 먼저 확인 후 관심 섹션 집중 --- ## 리소스 - `scripts/extract_metadata.sh` - YouTube 메타데이터 추출- `scripts/extract_transcript.sh` - YouTube 자막 추출- `references/quiz-patterns.md` - 퀴즈 문제 유형 상세- `references/deep-research.md` - Deep Research 워크플로우- `references/learning-science.md` - 학습 과학 연구 근거 --- ## 학습 과학 근거 이 워크플로우는 다음 연구에 기반: 1. **Pretesting Effect** (Richland et al., Roediger & Karpicke)   - 학습 전 테스트 → 9-12% 향상, effect size g = 0.34-0.54 2. **Information Gap Theory** (Loewenstein, 1994)   - 지식 갭 인식 → 도파민 회로 활성화 → 기억 강화 3. **Elaborative Interrogation** (Dunlosky et al., 2013)   - "왜?" 질문 → 깊은 처리 → 76% vs 69% 정답률 4. **PACE Framework** (Gruber et al., 2019)   - 호기심 상태에서 무관한 정보도 기억력 향상 상세: `references/learning-science.md`