Day 5: Fetch & Digest — 콘텐츠를 내 것으로 만드는 스킬 이 스킬이 호출되면 아래 STOP PROTOCOL 을 반드시 따른다. --- 용어 정리 이 스킬에서 사용하는 핵심 용어: | 용어 | 설명 | |------|------| | fetch | 외부에서 데이터를 가져오는 것. "배달 주문처럼 URL만 주면 내용이 도착" | | digest | 가져온 내용을 소화(요약·퀴즈·학습)하는 것. "읽고 끝이 아니라 씹어서 내 것으로 만들기" | | API | 프로그램끼리 대화하는 창구. "식당 메뉴판처럼 요청 형식이 정해져 있다" | | JSON | 컴퓨터가 읽기 좋은 데이터 형식. 사람이 보면 중괄호 투성이지만 Claude는 완벽히 이해한다 | | yt-dlp | YouTube에서 자막·메타데이터를 추출하는 무료 도구 | | 자동 자막 | YouTube가 AI로 만든 자막. 전문 용어나 이름이 틀릴 수 있다 | | Web Search 보정 | 자동 자막의 오류를 웹 검색으로 바로잡는 기법 | | Quiz-First | 요약을 먼저 보지 않고 퀴즈부터 푸는 학습법. 9-12% 기억력 향상 효과 | | 스킬 체이닝 | 하나의 스킬 결과를 다른 스…

\n (번호 제거 → 타임스탬프 제거 → 웹 형식 표시 제거 → 빈 줄 정리)\n\n3. 자막 언어 우선순위:\n 한국어 수동 > 영어 수동 > 한국어 자동 > 영어 자동\n\n4. 자막이 없는 경우: \"이 영상에는 자막이 없습니다. 다른 영상을 선택해주세요\" 안내\n```\n\n### Step 3: 메타데이터 추출\n\n```\nSKILL.md에 메타데이터 추출 섹션을 추가해줘.\nyt-dlp --dump-json --no-download \"{URL}\" 명령어로:\n- title: 영상 제목\n- description: 영상 설명\n- channel: 채널명\n- duration: 길이\n- chapters: 챕터 (있으면)\n```\n\n### Step 4: Web Search 보정 (핵심!)\n\n이 부분이 fetch-youtube를 fetch-tweet보다 한 단계 더 발전시키는 핵심입니다.\n\n```\nSKILL.md에 Web Search 보정 섹션을 추가해줘.\n이 부분이 가장 중요해:\n\n1. 영상 제목과 description에서 키워드 추출 (5-10개)\n - 고유명사 (사람 이름, 회사명, 제품명)\n - 전문 용어\n - 약어\n\n2. 추출한 키워드로 WebSearch 병렬 실행:\n - \"{키워드} 정확한 표기\"\n - \"{사람 이름} {회사명}\"\n - \"{전문 용어} explained\"\n\n3. 검색 결과로 자동 자막 보정:\n - \"Cloud\"를 \"Claude\"로 수정\n - \"앤트로피\"를 \"Anthropic\"으로 수정\n - 보정 내역을 기록 (원문 → 수정)\n\n보정 전/후 예시도 포함해줘.\n```\n\n> **Fast Track**: 시간이 부족하면 Step 2~4를 한 번에 요청할 수 있습니다:\n> \"content-digest 원본 스킬의 YouTube 처리 방식을 참고해서 자막 추출, 메타데이터, Web Search 보정을 한꺼번에 추가해줘\"\n\n### Step 5: 번역 파이프라인\n\nfetch-tweet과 동일한 3단계입니다.\n\n```\nSKILL.md에 번역 파이프라인 섹션을 추가해줘.\nfetch-tweet과 같은 3단계:\n\n1단계 - 요약 (3-5문장): 영상 핵심 내용\n2단계 - 인사이트 (3개): 핵심 메시지, 시사점, 적용점\n3단계 - 전체 번역된 아티클:\n - 영상 전체를 읽기 쉬운 아티클 형태로 번역\n - 챕터가 있으면 챕터별로 구분\n - 보정된 용어 사용\n - 전문 용어는 원문 병기\n\n긴 영상(10분 이상)은 Task Agent를 사용해서 처리하라는 안내도 추가해줘.\n```\n\n### 최종 확인\n\n```\n만들어진 my-fetch-youtube/SKILL.md 전체 내용을 보여줘.\n```\n\n> **여기까지 잘 따라오셨습니다!** fetch-youtube는 yt-dlp + Web Search 보정이 포함된 만큼 가장 복잡한 스킬이었습니다. 다음 content-digest는 이보다 구조가 단순합니다.\n\n---\n\n## QUIZ\n\n```json\nAskUserQuestion({\n \"questions\": [{\n \"question\": \"fetch-youtube에서 'Web Search 보정'이 필요한 이유는?\",\n \"header\": \"Quiz 2\",\n \"options\": [\n {\"label\": \"자막 파일의 인코딩이 깨져서 글자가 깨질 수 있어서\", \"description\": \"VTT 파일의 문자 인코딩 문제 해결\"},\n {\"label\": \"YouTube가 번역 기능을 제공하지 않아서\", \"description\": \"자체 번역이 필요하기 때문\"},\n {\"label\": \"자동 자막이 고유명사/전문 용어를 틀리게 인식할 수 있어서\", \"description\": \"AI 생성 자막의 한계를 웹 검색으로 보완\"}\n ],\n \"multiSelect\": false\n }]\n})\n```\n\n**정답: 3번.** YouTube의 자동 자막은 AI가 음성을 텍스트로 변환한 것이라 고유명사(Claude → Cloud), 전문 용어(Anthropic → 앤트로피), 약어 등이 틀릴 수 있다. 영상 제목과 설명에서 키워드를 추출한 뒤 웹 검색으로 올바른 표기를 확인하여 보정한다.\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":7858,"content_sha256":"85586eee424e7bb7175f72c4492916981dadd2ec7c76489d803f406093bc361d"},{"filename":"references/block3-content-digest.md","content":"# Block 3: content-digest 스킬 만들기\n\n> 공식 문서: https://code.claude.com/docs/ko/skills\n\n## EXPLAIN\n\nBlock 1과 2에서 콘텐츠를 \"가져오는\" 스킬을 만들었습니다. 이제 가져온 콘텐츠를 \"소화하는\" 스킬을 만듭니다.\n\n### content-digest가 하는 일\n\n가져온 콘텐츠(트윗, YouTube 등)를 받아서:\n\n1. **퀴즈부터 출제** — 요약을 먼저 보여주지 않는다!\n2. **틀린 부분 공부** — 오답에서 호기심이 생기고, 호기심이 기억을 강화\n3. **선택적 깊이 탐색** — 관심 있는 부분만 더 깊게\n\n### 왜 \"퀴즈부터\"인가? — Quiz-First 학습법\n\n**비유: \"시험 보기 전에 교과서를 읽는 것\" vs \"시험을 먼저 보는 것\"**\n\n보통은 요약을 읽고 → 퀴즈를 풀지만, 연구에 따르면 **반대로 하는 것이 9-12% 더 효과적**입니다.\n\n```\n❌ 일반적 순서: 요약 읽기 → 퀴즈\n✅ Quiz-First: 퀴즈 먼저 → 틀린 부분 확인 → 선택적으로 읽기\n```\n\n이유:\n- **Pretesting Effect**: 학습 전 테스트가 기억력을 9-12% 향상 (Richland et al.)\n- **Information Gap Theory**: 틀린 문제가 \"궁금함\"을 만들고, 그 궁금함이 도파민 → 기억 강화 (Loewenstein, 1994)\n\n간단히 말해: **틀려야 배운다.** 오답이 호기심을 만들고, 호기심 상태에서 읽으면 기억에 더 잘 남습니다.\n\n### 전체 흐름 다이어그램\n\n```\n┌─────────────────────────────────────────┐\n│ 1. 콘텐츠 받기 (fetch 스킬 결과물) │\n├─────────────────────────────────────────┤\n│ 2. Pre-Quiz (3문제) │\n│ 요약 보기 전에 퀴즈부터! │\n├─────────────────────────────────────────┤\n│ 3. 선택적 콘텐츠 제공 │\n│ 틀린 부분만? 인사이트만? 전체 요약? │\n├─────────────────────────────────────────┤\n│ 4. 본 퀴즈 (9문제) │\n│ 기본 3 + 중급 3 + 심화 3 │\n├─────────────────────────────────────────┤\n│ 5. 결과 + 후속 선택 │\n└─────────────────────────────────────────┘\n```\n\n### SKILL.md를 4단계로 만든다\n\n| 단계 | 내용 | 하는 일 |\n|------|------|---------|\n| Step 1 | frontmatter | 스킬 이름과 설명 |\n| Step 2 | Pre-Quiz | 콘텐츠 보기 전 3문제 출제 |\n| Step 3 | 선택적 콘텐츠 제공 | 틀린 부분 위주로 제공 |\n| Step 4 | 본 퀴즈 | 9문제 (3난이도 × 3문제) |\n\n---\n\n## EXECUTE\n\n> **안심하세요**: 아래 프롬프트를 Claude에게 복사해서 붙여넣기만 하면 됩니다.\n\n> **Fast Track**: 시간이 부족하면 아래 Step 1~4 대신 이 한 프롬프트로 한번에 만들 수 있습니다:\n> \"content-digest 원본 스킬의 Quiz-First 방식을 참고해서, .claude/skills/my-content-digest/SKILL.md를 만들어줘. Pre-Quiz 3문제 + 선택적 콘텐츠 제공 + 본 퀴즈 9문제(3난이도×3) 구조로.\"\n\n### 준비\n\n```\n나만의 content-digest 스킬을 만들 거야.\n.claude/skills/my-content-digest/ 폴더를 만들고, SKILL.md 파일을 생성해줘.\n```\n\n### Step 1: frontmatter 추가\n\n```\nmy-content-digest/SKILL.md에 frontmatter를 추가해줘:\n- name: my-content-digest\n- description: 콘텐츠를 받으면 Quiz-First 방식으로 학습하는 스킬. 퀴즈부터 내고 틀린 부분을 같이 공부한다. \"콘텐츠 소화\", \"퀴즈\", \"학습\", \"digest\" 요청에 사용.\n```\n\n### Step 2: Pre-Quiz (콘텐츠 보기 전 퀴즈)\n\nQuiz-First의 핵심 부분입니다.\n\n```\nSKILL.md에 Pre-Quiz 섹션을 추가해줘.\n\n핵심 원칙: \"요약을 먼저 보여주지 않는다\"\n\n1. 콘텐츠에서 핵심 주제 3개 추출\n2. AskUserQuestion으로 3문제 출제:\n - 핵심 개념 관련\n - 저자 핵심 주장 관련\n - 주요 원칙 관련\n3. 각 문제는 4지선다 (label + description)\n4. 출제 원칙:\n - ✅ 핵심 메시지, 주요 원칙, 저자 핵심 주장\n - ❌ 날짜, 통계 수치, 지엽적 세부사항\n\n정답/오답 즉시 피드백 + \"이 부분을 콘텐츠에서 확인해보세요\" 안내\n```\n\n### Step 3: 선택적 콘텐츠 제공\n\n```\nSKILL.md에 선택적 콘텐츠 제공 섹션을 추가해줘.\n\nPre-Quiz 결과에 따라 사용자가 선택:\n- \"틀린 문제 관련 섹션만\" — 오답 부분의 답을 찾기\n- \"핵심 인사이트 3개\" — 가장 중요한 포인트만\n- \"전체 요약 + 인사이트\" — 종합적 분석\n- \"바로 본 퀴즈로\" — 요약 없이 9문제 도전\n\nAskUserQuestion으로 선택받는 구조로 만들어줘.\n```\n\n> 여기까지 완료했으면, Claude에게 \"지금까지 만든 SKILL.md를 보여줘\"라고 입력해서 중간 결과를 확인하세요.\n\n### Step 4: 본 퀴즈 (9문제)\n\n```\nSKILL.md에 본 퀴즈 섹션을 추가해줘.\n\n3단계 × 3문제 = 총 9문제:\n기본 (3문제): 핵심 메시지, 주요 개념\n중급 (3문제): 개념 간 관계, 근거 연결\n심화 (3문제): 실제 적용, 핵심 원리 확장\n\n각 단계별로 AskUserQuestion 사용.\n각 단계 완료 후 즉시 정답/해설 제공.\n출제 원칙: 핵심 주제만. 지엽적 세부사항/날짜/통계 금지.\n\n마지막에 후속 선택:\n- \"다른 문제로 재퀴즈\"\n- \"관련 콘텐츠 추천\"\n- \"종료\"\n```\n\n### 최종 확인\n\n```\n만들어진 my-content-digest/SKILL.md 전체 내용을 보여줘.\n```\n\n> **테스트해보기**: Block 1이나 Block 2에서 가져온 콘텐츠로 바로 테스트해보세요!\n> \"방금 가져온 트윗/영상 내용으로 퀴즈 내줘\"라고 입력하면 됩니다.\n\n---\n\n## QUIZ\n\n```json\nAskUserQuestion({\n \"questions\": [{\n \"question\": \"content-digest에서 '요약을 먼저 보여주지 않고 퀴즈부터 내는' 이유는?\",\n \"header\": \"Quiz 3\",\n \"options\": [\n {\"label\": \"퀴즈로 수준을 파악해야 맞춤형 요약을 제공할 수 있으니까\", \"description\": \"수준별 맞춤 학습을 위해 선행 평가 필요\"},\n {\"label\": \"틀린 문제가 호기심을 만들고, 호기심이 기억을 강화하니까\", \"description\": \"학습 전 테스트가 기억력을 9-12% 향상시킨다는 연구 결과\"},\n {\"label\": \"요약 생성과 퀴즈 생성을 병렬 처리하기 위해\", \"description\": \"처리 시간 최적화를 위한 파이프라인 설계\"}\n ],\n \"multiSelect\": false\n }]\n})\n```\n\n**정답: 2번.** 연구에 따르면 학습 전 테스트(Pretesting Effect)가 기억력을 9-12% 향상시킨다. 퀴즈에서 틀리면 \"왜 틀렸지?\"라는 호기심(Information Gap)이 생기고, 이 상태에서 콘텐츠를 읽으면 기억이 더 잘 남는다. 수준 파악이나 처리 시간 최적화는 부차적 효과일 뿐이다.\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":7214,"content_sha256":"fcf037ff81bd84a63d971682208ca98e324d60449cdb4e8eafa41f4942e56ab6"},{"filename":"references/block4-integration.md","content":"# Block 4: 통합 실습 + 마무리\n\n> 공식 문서: https://code.claude.com/docs/ko/skills\n\n## EXPLAIN\n\nBlock 1~3에서 3개의 스킬을 만들었습니다:\n\n- **my-fetch-tweet**: X/Twitter 트윗 가져오기 + 번역\n- **my-fetch-youtube**: YouTube 자막 추출 + 보정 + 번역\n- **my-content-digest**: 가져온 콘텐츠로 퀴즈-학습\n\n이제 이 3개를 **연결해서 실제로 사용**해봅니다.\n\n### 스킬 체이닝 실전\n\nBlock 0에서 배운 \"스킬 체이닝\"을 실제로 해봅니다:\n\n```\n[URL 입력] → [fetch 스킬로 가져오기] → [content-digest로 퀴즈-학습]\n```\n\n### 나만의 워크플로우 만들기\n\n3개 스킬이 있으면 다양한 조합이 가능합니다:\n\n| 워크플로우 | 사용 스킬 | 상황 |\n|-----------|----------|------|\n| 트윗 빠른 번역 | fetch-tweet만 | 시간 없을 때 요약만 보기 |\n| YouTube 깊이 학습 | fetch-youtube → content-digest | 중요한 영상 제대로 소화 |\n| 트윗 스레드 학습 | fetch-tweet → content-digest | 긴 스레드의 핵심 파악 |\n| 비교 분석 | fetch-tweet + fetch-youtube → content-digest | 같은 주제 여러 소스 비교 |\n\n### 스킬 개선 팁\n\n실습하면서 느낀 개선점을 바로 반영하는 것이 가장 좋은 학습입니다:\n\n```\nmy-fetch-tweet 스킬에서 [개선할 부분]을 수정해줘.\n```\n\n> 스킬은 한 번 만들면 끝이 아닙니다. 직접 써보면서 계속 다듬어가는 것입니다.\n\n---\n\n## EXECUTE\n\n### 실습 1: 실제 트윗으로 fetch-tweet 테스트\n\n좋아하는 영어 트윗 URL을 하나 찾아서 테스트합니다.\n\n```\n이 트윗을 요약-인사이트-전체 번역 해줘: [여기에 실제 X/Twitter URL]\n```\n\n> 결과를 보고 다음을 확인하세요:\n> - 요약이 핵심을 잘 잡았는지\n> - 인사이트가 실제로 유용한지\n> - 전체 번역이 자연스러운지\n\n### 실습 2: 실제 YouTube로 fetch-youtube 테스트\n\n관심 있는 영어 YouTube 영상 URL로 테스트합니다.\n\n```\n이 영상을 요약-인사이트-전체 번역 해줘: [여기에 실제 YouTube URL]\n```\n\n> 결과를 보고 다음을 확인하세요:\n> - 자막이 잘 추출되었는지\n> - 고유명사가 올바르게 보정되었는지\n> - 아티클 형태가 읽기 쉬운지\n\n### 실습 3: content-digest로 퀴즈-학습\n\n위에서 가져온 콘텐츠 중 하나를 선택해서 퀴즈를 풀어봅니다.\n\n```\n방금 가져온 콘텐츠로 퀴즈 내줘. Quiz-First 방식으로.\n```\n\n> Pre-Quiz 3문제를 먼저 풀고, 틀린 부분을 확인하고, 본 퀴즈 9문제까지 도전해보세요.\n\n### (선택) 스킬 개선\n\n실습 중 개선하고 싶은 부분이 있다면:\n\n```\nmy-fetch-tweet 스킬에서 [개선할 부분]을 수정해줘.\n```\n\n> 직접 써보면서 개선하는 것이 가장 좋은 학습입니다.\n\n---\n\n## QUIZ\n\n```json\nAskUserQuestion({\n \"questions\": [\n {\n \"question\": \"오늘 만든 3개 스킬의 역할을 올바르게 연결한 것은?\",\n \"header\": \"Quiz 4-1\",\n \"options\": [\n {\"label\": \"fetch = 번역하기, digest = 저장하기\", \"description\": \"fetch가 번역, digest가 파일 저장\"},\n {\"label\": \"fetch = 가져오기, digest = 소화하기\", \"description\": \"fetch-tweet/youtube가 가져오고, content-digest가 소화\"},\n {\"label\": \"fetch = 검색하기, digest = 요약하기\", \"description\": \"fetch가 웹 검색, digest가 요약\"}\n ],\n \"multiSelect\": false\n },\n {\n \"question\": \"fetch-youtube에만 있고 fetch-tweet에는 없는 단계는?\",\n \"header\": \"Quiz 4-2\",\n \"options\": [\n {\"label\": \"Web Search 보정\", \"description\": \"자동 자막의 고유명사/전문 용어 오류를 웹 검색으로 교정\"},\n {\"label\": \"번역 파이프라인\", \"description\": \"요약-인사이트-전체 번역 3단계\"},\n {\"label\": \"frontmatter 작성\", \"description\": \"스킬 이름표 작성\"}\n ],\n \"multiSelect\": false\n }\n ]\n})\n```\n\n**정답 4-1: 2번.** fetch 스킬(fetch-tweet, fetch-youtube)은 외부 콘텐츠를 \"가져오는\" 역할이고, content-digest는 가져온 콘텐츠를 퀴즈-학습으로 \"소화하는\" 역할이다.\n\n**정답 4-2: 1번.** YouTube의 자동 자막은 고유명사와 전문 용어를 틀리게 인식할 수 있다. 영상 제목과 설명에서 키워드를 추출한 뒤 웹 검색으로 올바른 표기를 확인하여 보정한다. 트윗은 원문 텍스트 그대로라 이 과정이 불필요하다.\n\n---\n\n### 마무리\n\n오늘 배운 것을 정리합니다:\n\n1. **콘텐츠 소화 파이프라인**: URL → fetch(가져오기) → translate(번역) → digest(소화)\n2. **fetch-tweet**: FxEmbed API로 트윗 추출 → 요약-인사이트-전체 번역\n3. **fetch-youtube**: yt-dlp로 자막 추출 → Web Search로 오류 보정 → 요약-인사이트-전체 번역\n4. **content-digest**: Quiz-First 학습 — 퀴즈부터 → 틀린 부분 공부 → 본 퀴즈\n5. **스킬 체이닝**: 스킬 결과를 다른 스킬의 입력으로 연결\n\n> **다음 단계**: 만든 스킬을 매일 사용하면서 개선해보세요. 실제 사용이 최고의 학습입니다.\n","content_type":"text/markdown; charset=utf-8","language":"markdown","size":5166,"content_sha256":"a81608df2a495fbb93d4589318a772d7b8f4afb0030af6fe716a0607f489fc6f"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Day 5: Fetch & Digest — 콘텐츠를 내 것으로 만드는 스킬","type":"text"}]},{"type":"paragraph","content":[{"text":"이 스킬이 호출되면 아래 ","type":"text"},{"text":"STOP PROTOCOL","type":"text","marks":[{"type":"strong"}]},{"text":"을 반드시 따른다.","type":"text"}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"용어 정리","type":"text"}]},{"type":"paragraph","content":[{"text":"이 스킬에서 사용하는 핵심 용어:","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"용어","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"설명","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"fetch","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"외부에서 데이터를 가져오는 것. \"배달 주문처럼 URL만 주면 내용이 도착\"","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"digest","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"가져온 내용을 소화(요약·퀴즈·학습)하는 것. \"읽고 끝이 아니라 씹어서 내 것으로 만들기\"","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"API","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"프로그램끼리 대화하는 창구. \"식당 메뉴판처럼 요청 형식이 정해져 있다\"","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"JSON","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"컴퓨터가 읽기 좋은 데이터 형식. 사람이 보면 중괄호 투성이지만 Claude는 완벽히 이해한다","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"yt-dlp","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"YouTube에서 자막·메타데이터를 추출하는 무료 도구","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"자동 자막","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"YouTube가 AI로 만든 자막. 전문 용어나 이름이 틀릴 수 있다","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Web Search 보정","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"자동 자막의 오류를 웹 검색으로 바로잡는 기법","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Quiz-First","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"요약을 먼저 보지 않고 퀴즈부터 푸는 학습법. 9-12% 기억력 향상 효과","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"스킬 체이닝","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"하나의 스킬 결과를 다른 스킬의 입력으로 연결하는 것. \"fetch → digest 파이프라인\"","type":"text"}]}]}]}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"STOP PROTOCOL — 절대 위반 금지","type":"text"}]},{"type":"blockquote","content":[{"type":"paragraph","content":[{"text":"이 프로토콜은 이 스킬의 최우선 규칙이다. 아래 규칙을 위반하면 수업이 망가진다.","type":"text"}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"각 블록은 반드시 2턴에 걸쳐 진행한다","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"┌─ Phase A (첫 번째 턴) ──────────────────────────────┐\n│ 1. references/에서 해당 블록 파일의 EXPLAIN 섹션을 읽는다 │\n│ 2. 기능을 설명한다 │\n│ 3. references/에서 해당 블록 파일의 EXECUTE 섹션을 읽는다 │\n│ 4. \"지금 직접 실행해보세요\"라고 안내한다 │\n│ 5. ⛔ 여기서 반드시 STOP. 턴을 종료한다. │\n│ │\n│ ❌ 절대 하지 않는 것: 퀴즈 출제, QUIZ 섹션 읽기 │\n│ ❌ 절대 하지 않는 것: AskUserQuestion 호출 │\n│ ❌ 절대 하지 않는 것: \"실행해봤나요?\" 질문 │\n└──────────────────────────────────────────────────────────┘\n\n ⬇️ 사용자가 돌아와서 \"했어\", \"완료\", \"다음\" 등을 입력한다\n\n┌─ Phase B (두 번째 턴) ──────────────────────────────┐\n│ 1. references/에서 해당 블록 파일의 QUIZ 섹션을 읽는다 │\n│ 2. AskUserQuestion으로 퀴즈를 출제한다 │\n│ 3. 정답/오답 피드백을 준다 │\n│ 4. 다음 블록으로 이동할지 AskUserQuestion으로 묻는다 │\n│ 5. ⛔ 다음 블록을 시작하면 다시 Phase A부터. │\n└──────────────────────────────────────────────────────────┘","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"핵심 금지 사항 (절대 위반 금지)","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Phase A에서 AskUserQuestion을 호출하지 않는다","type":"text","marks":[{"type":"strong"}]},{"text":" — 설명 + 실행 안내 후 바로 Stop","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Phase A에서 퀴즈를 내지 않는다","type":"text","marks":[{"type":"strong"}]},{"text":" — QUIZ 섹션은 Phase B에서만 읽는다","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Phase A에서 \"실행해봤나요?\"를 묻지 않는다","type":"text","marks":[{"type":"strong"}]},{"text":" — 사용자가 먼저 말할 때까지 기다린다","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"한 턴에 EXPLAIN + QUIZ를 동시에 하지 않는다","type":"text","marks":[{"type":"strong"}]},{"text":" — 반드시 2턴으로 나눈다","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"공식 문서 URL 출력 (절대 누락 금지)","type":"text"}]},{"type":"paragraph","content":[{"text":"모든 블록의 Phase A 시작 시, 해당 reference 파일 상단의 ","type":"text"},{"text":"> 공식 문서:","type":"text","marks":[{"type":"code_inline"}]},{"text":" URL을 ","type":"text"},{"text":"반드시 그대로 출력","type":"text","marks":[{"type":"strong"}]},{"text":"한다.","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"📖 공식 문서: [URL]","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"reference 파일에 URL이 여러 개 있으면 전부 출력한다","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"URL을 요약하거나 생략하지 않는다","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Phase A 종료 시 필수 문구","type":"text"}]},{"type":"paragraph","content":[{"text":"Phase A의 마지막에는 반드시 아래 형태의 문구를 출력하고 Stop한다:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"---\n👆 위 내용을 직접 실행해보세요.\n실행이 끝나면 \"완료\" 또는 \"다음\"이라고 입력해주세요.","type":"text"}]},{"type":"paragraph","content":[{"text":"이 문구 이후에 어떤 도구 호출(AskUserQuestion 포함)이나 추가 텍스트도 출력하지 않는다.","type":"text"}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"소요 시간 가이드","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Block","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"주제","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"예상 시간","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"0","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"개념 이해","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"~10분","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"1","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"fetch-tweet 스킬 만들기","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"~20분","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"2","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"fetch-youtube 스킬 만들기","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"~30분","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"3","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"content-digest 스킬 만들기","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"~20분","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"4","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"통합 실습 + 마무리","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"~15분","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"합계","type":"text","marks":[{"type":"strong"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph"}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"~95분","type":"text","marks":[{"type":"strong"}]}]}]}]}]},{"type":"blockquote","content":[{"type":"paragraph","content":[{"text":"Block 2가 가장 시간이 많이 걸리는 핵심 블록입니다. yt-dlp 설정과 Web Search 보정이 포함되어 있습니다. ","type":"text"},{"text":"사전 준비 권장","type":"text","marks":[{"type":"strong"}]},{"text":": yt-dlp 설치를 미리 해오면 Block 2 시간을 10분 이상 단축할 수 있습니다. (","type":"text"},{"text":"brew install yt-dlp","type":"text","marks":[{"type":"code_inline"}]},{"text":" 또는 ","type":"text"},{"text":"pip install yt-dlp","type":"text","marks":[{"type":"code_inline"}]},{"text":") ","type":"text"},{"text":"Fast Track","type":"text","marks":[{"type":"strong"}]},{"text":": 시간이 부족하면 Block 1~3을 각각 하나의 프롬프트로 한 번에 만들 수 있습니다.","type":"text"}]}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"핵심 전략: 실제 스킬을 해체하며 배우기","type":"text"}]},{"type":"paragraph","content":[{"text":"아래 방식으로 진행한다:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Block 0에서 콘텐츠 소화 파이프라인(fetch → digest) 개념을 이해한다","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Block 1에서 fetch-tweet 스킬을 직접 만든다 (API 활용 + 번역 파이프라인)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Block 2에서 fetch-youtube 스킬을 직접 만든다 (자막 추출 + Web Search 보정)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Block 3에서 content-digest 스킬을 직접 만든다 (Quiz-First 학습)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Block 4에서 3개 스킬을 연결하여 실제 콘텐츠로 실습한다","type":"text"}]}]}]},{"type":"blockquote","content":[{"type":"paragraph","content":[{"text":"운영진이 실제로 사용하는 스킬(fetch-tweet, content-digest)을 참고하며 자기만의 버전을 만든다.","type":"text"}]}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"블록 특수 규칙","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Block 0 (개념 이해)","type":"text","marks":[{"type":"strong"}]},{"text":": Phase A에서 콘텐츠 파이프라인 개념 설명 + 원본 스킬 구조 분석 안내 → Stop. Phase B에서 퀴즈.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Block 1 (fetch-tweet)","type":"text","marks":[{"type":"strong"}]},{"text":": Phase A에서 fetch-tweet 스킬을 Step-by-Step으로 만드는 방법 안내 → 참가자가 직접 작성 → Stop. Phase B에서 퀴즈.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Block 2 (fetch-youtube)","type":"text","marks":[{"type":"strong"}]},{"text":": Phase A에서 fetch-youtube 스킬 만들기 안내 (yt-dlp + Web Search 보정) → 참가자가 직접 작성 → Stop. Phase B에서 퀴즈. (가장 긴 블록 — 완료 후 \"여기까지 잘 따라오셨습니다!\" 격려)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Block 3 (content-digest)","type":"text","marks":[{"type":"strong"}]},{"text":": Phase A에서 content-digest 스킬 만들기 안내 (Quiz-First 학습) → 참가자가 직접 작성 → Stop. Phase B에서 퀴즈.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Block 4 (통합 실습)","type":"text","marks":[{"type":"strong"}]},{"text":": Phase A에서 3개 스킬 연결 실습 안내 → 실제 콘텐츠로 실습 → Stop. Phase B에서 종합 퀴즈 + 마무리.","type":"text"}]}]}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"References 파일 맵","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"블록","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"파일","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"주제","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Block 0","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"references/block0-concept.md","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"콘텐츠 소화 파이프라인 + 스킬 체이닝","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Block 1","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"references/block1-fetch-tweet.md","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"fetch-tweet 스킬 만들기","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Block 2","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"references/block2-fetch-youtube.md","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"fetch-youtube 스킬 만들기","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Block 3","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"references/block3-content-digest.md","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"content-digest 스킬 만들기","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Block 4","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"references/block4-integration.md","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"통합 실습 + 마무리","type":"text"}]}]}]}]},{"type":"blockquote","content":[{"type":"paragraph","content":[{"text":"파일 경로는 이 SKILL.md 기준 상대경로다. 각 reference 파일은 ","type":"text"},{"text":"## EXPLAIN","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"## EXECUTE","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"## QUIZ","type":"text","marks":[{"type":"code_inline"}]},{"text":" 섹션으로 구성된다.","type":"text"}]}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"진행 규칙","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"한 번에 한 블록씩 진행한다","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"\"다음\", \"skip\", 블록 번호/이름으로 이동한다","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"각 블록에서 생성한 스킬 파일은 다음 블록에서 이어서 활용한다","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"참가자의 프로젝트에 ","type":"text"},{"text":".claude/skills/","type":"text","marks":[{"type":"code_inline"}]},{"text":" 아래에 스킬을 생성한다","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Claude Code 관련 질문이 오면 claude-code-guide 에이전트(내장 도구)로 답변한다. 답변 후 사용자가 직접 따라할 수 있게 단계별로 안내하고, 질문할 때는 AskUserQuestion을 사용한다. 내장 에이전트 답변이 부정확하다고 판단되면, 공식 문서를 ","type":"text"},{"text":"curl","type":"text","marks":[{"type":"code_inline"}]},{"text":"로 파일에 저장한 뒤 Read 툴로 꼼꼼히 읽고 정확한 정보로 다시 답한다 (WebFetch는 요약/손실 위험이 있으므로 사용하지 않는다)","type":"text"}]}]}]},{"type":"hr","attrs":{"markup":"---"}},{"type":"heading","attrs":{"level":2},"content":[{"text":"시작","type":"text"}]},{"type":"paragraph","content":[{"text":"스킬 시작 시 ","type":"text"},{"text":"먼저 최신 커리큘럼을 설치","type":"text","marks":[{"type":"strong"}]},{"text":"한 뒤 블록을 선택한다.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 1: 최신 스킬 설치","type":"text"}]},{"type":"paragraph","content":[{"text":"아래 명령어를 출력하고 Bash로 실행한다:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"npx skills add ai-native-camp/camp-1 --agent claude-code --yes","type":"text"}]},{"type":"paragraph","content":[{"text":"실행 결과를 간략히 안내한다 (예: \"스킬이 최신 버전으로 설치되었습니다\").","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Step 2: 블록 선택","type":"text"}]},{"type":"paragraph","content":[{"text":"아래 테이블을 보여주고 AskUserQuestion으로 어디서 시작할지 물어본다.","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Block","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"주제","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"내용","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"0","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"개념 이해","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"콘텐츠 소화 파이프라인, 스킬 체이닝이란?","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"1","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"fetch-tweet","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"X/Twitter 트윗을 가져와서 번역하는 스킬 만들기","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"2","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"fetch-youtube","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"YouTube 자막을 가져와서 번역하는 스킬 만들기","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"3","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"content-digest","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"가져온 콘텐츠로 퀴즈-학습하는 스킬 만들기","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"4","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"통합 실습","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"3개 스킬을 연결해서 실제 콘텐츠로 실습","type":"text"}]}]}]}]},{"type":"code_block","attrs":{"wrap":false,"language":"json"},"content":[{"text":"AskUserQuestion({\n \"questions\": [{\n \"question\": \"Day 5: Fetch & Digest\\n\\n어디서부터 시작할까요?\",\n \"header\": \"시작 블록\",\n \"options\": [\n {\"label\": \"처음부터 (Block 0)\", \"description\": \"콘텐츠 파이프라인 개념부터 차근차근\"},\n {\"label\": \"fetch-tweet (Block 1)\", \"description\": \"바로 트윗 스킬 만들기부터\"},\n {\"label\": \"fetch-youtube (Block 2)\", \"description\": \"YouTube 스킬 만들기부터\"},\n {\"label\": \"content-digest (Block 3~4)\", \"description\": \"퀴즈-학습 스킬 만들기부터\"}\n ],\n \"multiSelect\": false\n }]\n})","type":"text"}]},{"type":"blockquote","content":[{"type":"paragraph","content":[{"text":"시작 블록 선택 후 → 해당 블록의 Phase A부터 진행한다.","type":"text"}]}]},{"type":"hr","attrs":{"markup":"---"}}]},"metadata":{"date":"2026-06-05","name":"day5-fetch-and-digest","author":"@skillopedia","source":{"stars":238,"repo_name":"camp-1","origin_url":"https://github.com/ai-native-camp/camp-1/blob/HEAD/.agents/skills/day5-fetch-and-digest/SKILL.md","repo_owner":"ai-native-camp","body_sha256":"04c1cd8f2538f6e773afc4ded9db71d0ba1b8893ceb8f5d9322a1f3f78f27321","cluster_key":"b90380a150660b7902c91e333f47ec95df9428abd75e9e08130d00be6e113095","clean_bundle":{"format":"clean-skill-bundle-v1","source":"ai-native-camp/camp-1/.agents/skills/day5-fetch-and-digest/SKILL.md","attachments":[{"id":"705484e1-966c-592f-8100-98567398f528","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/705484e1-966c-592f-8100-98567398f528/attachment.md","path":"references/block0-concept.md","size":5227,"sha256":"d119242c7955fe1837b027df64ca4f10c3fbdfd227eac2741ca13610447435a7","contentType":"text/markdown; charset=utf-8"},{"id":"39ee414f-7d26-5bed-b547-6bb14abece3e","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/39ee414f-7d26-5bed-b547-6bb14abece3e/attachment.md","path":"references/block1-fetch-tweet.md","size":7040,"sha256":"4ff3cd08f9d75dc91cbb77060791a5c04efcae9eb62ed2cdcf8b4af18af98842","contentType":"text/markdown; charset=utf-8"},{"id":"ad80efde-089f-5ac2-afae-cf5199c69009","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/ad80efde-089f-5ac2-afae-cf5199c69009/attachment.md","path":"references/block2-fetch-youtube.md","size":7858,"sha256":"85586eee424e7bb7175f72c4492916981dadd2ec7c76489d803f406093bc361d","contentType":"text/markdown; charset=utf-8"},{"id":"37aa6d67-1c42-55c0-b370-a4edf8f761ff","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/37aa6d67-1c42-55c0-b370-a4edf8f761ff/attachment.md","path":"references/block3-content-digest.md","size":7214,"sha256":"fcf037ff81bd84a63d971682208ca98e324d60449cdb4e8eafa41f4942e56ab6","contentType":"text/markdown; charset=utf-8"},{"id":"8efe3052-b831-5193-a6fb-8a1a04de31bd","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/8efe3052-b831-5193-a6fb-8a1a04de31bd/attachment.md","path":"references/block4-integration.md","size":5166,"sha256":"a81608df2a495fbb93d4589318a772d7b8f4afb0030af6fe716a0607f489fc6f","contentType":"text/markdown; charset=utf-8"}],"bundle_sha256":"658588a27cf74d5f4c7e6191c38c578be4f1c63e6e18dc7612a2982c2959598d","attachment_count":5,"text_attachments":5,"attachment_storage":"skillopedia-attachments-v1","binary_attachments":0,"excluded_attachments":[]},"cluster_size":1,"skill_md_path":".agents/skills/day5-fetch-and-digest/SKILL.md","import_metadata":{"date":"2026-06-05","author":"@skillopedia","version":"v1","category":"media-content","category_label":"Media"},"exact_dupes_collapsed_into_this":0},"version":"v1","category":"media-content","import_tag":"clean-skills-v1","description":"AI Native Camp Day 5 콘텐츠 소화 스킬 만들기. fetch-tweet, fetch-youtube, content-digest 3개 스킬을 직접 만들고 활용한다. \"5일차\", \"Day 5\", \"fetch\", \"콘텐츠 스킬\", \"트윗 스킬\", \"유튜브 스킬\", \"다이제스트 스킬\" 요청에 사용."}},"renderedAt":1782981806862}

Day 5: Fetch & Digest — 콘텐츠를 내 것으로 만드는 스킬 이 스킬이 호출되면 아래 STOP PROTOCOL 을 반드시 따른다. --- 용어 정리 이 스킬에서 사용하는 핵심 용어: | 용어 | 설명 | |------|------| | fetch | 외부에서 데이터를 가져오는 것. "배달 주문처럼 URL만 주면 내용이 도착" | | digest | 가져온 내용을 소화(요약·퀴즈·학습)하는 것. "읽고 끝이 아니라 씹어서 내 것으로 만들기" | | API | 프로그램끼리 대화하는 창구. "식당 메뉴판처럼 요청 형식이 정해져 있다" | | JSON | 컴퓨터가 읽기 좋은 데이터 형식. 사람이 보면 중괄호 투성이지만 Claude는 완벽히 이해한다 | | yt-dlp | YouTube에서 자막·메타데이터를 추출하는 무료 도구 | | 자동 자막 | YouTube가 AI로 만든 자막. 전문 용어나 이름이 틀릴 수 있다 | | Web Search 보정 | 자동 자막의 오류를 웹 검색으로 바로잡는 기법 | | Quiz-First | 요약을 먼저 보지 않고 퀴즈부터 푸는 학습법. 9-12% 기억력 향상 효과 | | 스킬 체이닝 | 하나의 스킬 결과를 다른 스…