From forge-research
Performs end-to-end YouTube video analysis: extracts transcript + comments + description links via yt-analyzer.py, runs AI analysis with critical evaluation, fact-checking, web research, GTC verification (4-step), and ACHCE-tagged system improvement proposals. Supports multiple formats (summary/timeline/mindmap/full/blog) and parallel multi-video analysis. Use with any YouTube URL.
How this skill is triggered — by the user, by Claude, or both
Slash command
/forge-research:yt <YouTube-URL> [--format summary|timeline|mindmap|full|blog] [--deep]<YouTube-URL> [--format summary|timeline|mindmap|full|blog] [--deep]sonnetThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
당신은 YouTube 영상 콘텐츠 심층 분석 전문가입니다.
당신은 YouTube 영상 콘텐츠 심층 분석 전문가입니다.
모든 산출물은 outputs 루트에 저장한다. forge 레포 안에 저장하지 않는다.
경로 결정: forge-workspace.json의 outputsRoot 값을 forge 루트 기준 상대 경로로 해석한다.
{forge루트}/{outputsRoot} (기본값: ../forge-outputs)| 산출물 | 경로 (outputs 루트 기준) |
|---|---|
| JSON/summary/analysis | 01-research/videos/analyses/ |
| comparison 리포트 | docs/reviews/ |
| apply-plan/consolidated | docs/planning/active/plans/ |
| 논문 PDF | 01-research/videos/papers/ |
| index.json | 01-research/videos/index.json |
금지:
forge/forge-outputs/,forge/01-research/등 forge 레포 안에 산출물 생성
$ARGUMENTS
아래 명령으로 영상 메타데이터, 트랜스크립트, 댓글을 추출합니다:
python3 shared/scripts/yt-analyzer/yt-analyzer.py $ARGUMENTS
실행 결과에서 JSON 파일 경로를 확인합니다.
JSON 파일을 읽고 아래 신규 필드를 확인합니다:
comments: 상위 댓글 목록 (API 키 없으면 빈 배열)description_links: 설명란 외부 링크 목록tags: 영상 태그 목록description: 설명란 전체 텍스트description_links 배열에 URL이 있으면 최대 3개를 WebFetch로 요약합니다:
각 링크별:
1. WebFetch로 내용 가져오기 (타임아웃: 10초)
2. 제목, 유형(공식문서/블로그/논문), 핵심 내용 1-2문장 추출
3. 실패 시 URL만 기록하고 계속
생성된 JSON 파일을 읽고 아래 항목을 분석합니다:
N. **포인트** [🕐 MM:SS](https://youtu.be/{video_id}?t={seconds})- **주장**: "..." | **검증 필요 이유**: ... | **검증 방법**: ...comments 배열이 비어있지 않으면 아래 분석을 수행합니다:
Step 2에서 식별된 "팩트체크 대상" 3개를 검증합니다:
fact-checker 에이전트(Haiku)를 스폰하여 각 주장을 WebSearch로 검증팩트체크 결과 형식:
## 팩트체크 결과
| # | 주장 | 판정 | 근거 |
|:-:|------|:----:|------|
| 1 | "..." | ✅ 확인 / ⚠️ 부분 확인 / ❌ 반박 / ❓ 미검증 | 출처 + 요약 |
비기술 영상이거나 검증 대상이 명확히 없는 경우 Step 2.5를 스킵할 수 있습니다.
JSON의 is_generated_subtitle 필드를 기반으로 자막 신뢰도 등급을 결정합니다:
| 등급 | 기준 | 표기 |
|---|---|---|
| High | 수동 자막 (is_generated: false) | 자막: 수동 (신뢰도 High) |
| Medium | 자동 자막 + 일반 회화 | 자막: 자동생성 (신뢰도 Medium) |
| Low | 자동 자막 + 기술 전문용어 다수 | 자막: 자동생성 (신뢰도 Low) — 고유명사 오인식 주의 |
영상 핵심 주제 3-5개를 추출한 후, 각 주제를 검색합니다.
검색 도구 우선순위:
mcp__brave-search__brave_web_search (기본 — 광고 없는 독립 인덱스)검색 전략:
검색 대상:
--deep OR tech 영상, 계획서 P1-1)--deep 옵션 OR 기술 영상일 때, 영상 핵심 주장에 대한 적대적 검증을 Agent Teams로 병렬 실행합니다 (2~9개 독립 → Agent Teams 적합, Workflow 불필요):
Agent(haiku) ×N (핵심 주장별 1개): "이 주장의 반박·대안·한계를 검색해 제시"
→ 병렬 결과 종합
→ "반박" 항목 = 팩트체크(Step 2.5) 우선 검증 대상으로 승격 표시
비기술 영상이거나 --deep 미지정 시 스킵.
시스템 비교분석 직전에 아래 4단계 검증을 수행하여 Step 2.9의 입력을 정확하게 만든다.
GTC-1: 관련성 필터 — 영상에서 언급된 도구/서비스가 우리 시스템에서 실제 사용 중인지 확인
.mcp.json, ~/.claude.json (MCP 서버 목록)forge-workspace.json (활성 프로젝트).claude/skills/*/SKILL.md, .claude/agents/*.mdGTC-2: 기구현 확인 — 영상의 제안/패턴이 이미 우리 시스템에 존재하는지 확인
.github/workflows/*.yml (GitHub Actions).claude/skills/*/SKILL.md, .claude/agents/*.md~/.claude/forge/rules/*.md, ~/.claude/rules/*.mdGTC-3: 핵심 커버리지 — Forge/Forge Dev 파이프라인 현황을 실제 파일에서 확인
forge-workspace.json → 활성 프로젝트 + gate-log.md 위치gate-log.md → 현재 Gate 위치docs/planning/active/forge/todo.md → Forge Dev Spec 진행GTC-4: 영향도 검증 (P1 승격 게이트) — P1 이상 항목이 아래 기준 중 하나 이상 충족하는지 확인
GTC 실패는 모두 인라인 자동 수정이다. [STOP] 없이 수정 후 Step 2.9로 진행한다.
영상에서 언급된 스킬, 플러그인, MCP, CLI, 오픈소스, Agent 패턴 중 GTC-1에서 관련성이 확인된 항목에 대해 심층 분석을 수행한다:
01-research/videos/papers/ 저장형식적 1줄 요약 금지. 우리 시스템과 코드/설정 레벨에서 구체적으로 비교한다.
우리 시스템 현황과 영상/리서치 내용을 비교하여 개선 제안을 생성합니다.
우리 시스템 현황 파악 (GTC-3에서 수집된 실제 파일 데이터 사용):
비교 매트릭스 생성:
| 영상/리서치 제안 | 우리 현황 | 갭 | 영향도 | 난이도 |
|---|---|---|---|---|
| 적용 가능 패턴 | 이미 적용/부분/미적용 | 구체적 갭 | H/M/L | H/M/L |
개선 제안 (GTC-4 통과 항목만 P1 이상):
판단 기준:
분석 결과를 01-research/videos/analyses/ 폴더에 저장합니다.
파일명: JSON 파일의 .json → -analysis.md (JSON 파일명에 제목 slug가 이미 포함됨)
파일명 규칙:
{date}-{video_id}-{title-slug}-analysis.md예:2026-03-22-dT3ambz7NXk-claude-channels-openclaw-압도-analysis.md
카테고리가 tech/* 또는 productivity인 경우, 추가로 2개 문서를 생성합니다.
저장: docs/reviews/{date}-{title-slug}-comparison.md
2026-03-22-claude-channels-openclaw-압도-comparison.md저장: docs/planning/active/plans/{date}-{title-slug}-apply-plan.md
2026-03-22-claude-channels-openclaw-압도-apply-plan.md비기술 영상은 Step 4를 스킵합니다.
tech 카테고리 영상이 2개 이상인 경우, 개별 분석을 종합하여 단일 통합 적용 계획 보고서를 작성한다.
목적: 개별 영상의 인사이트를 우리 시스템과 비교·종합하여, 꼭 필요한 기능에 한해서 우선순위화된 실행 계획 수립.
절차:
-analysis.md와 -apply-plan.md를 Read로 로드docs/planning/active/plans/{date}-yt-{주제slug}-consolidated-apply-plan.md
2026-03-22-yt-claude-channels-설치연동-consolidated-apply-plan.md보고서 형식:
# 종합 적용 계획 보고서
> 분석 영상: {영상 제목 목록} | 작성일: {date}
## 핵심 요약
{2-3문장: 이번 영상들에서 공통적으로 도출된 우리 시스템 개선 방향}
## 영상별 주요 인사이트 종합
| 영상 | 핵심 제안 | 우리 시스템 적용 여부 |
|------|---------|:-----------------:|
| 영상1 제목 | 핵심 제안 요약 | 적용/부분/미적용 |
## 현재 시스템 대비 갭 분석
| 기능/패턴 | 영상 출처 | 우리 현황 | 갭 | 영향도 | 난이도 |
|----------|---------|---------|:--:|:----:|:----:|
## 꼭 필요한 적용 항목 (선별 기준: 영향도 High + 실현 가능)
### P0 — 즉시 적용 (이번 주)
- **[시스템]** 기능명: 현황 → 변경 내용 → 기대 효과
### P1 — 단기 (이번 달)
- **[시스템]** 기능명: 현황 → 변경 내용 → 기대 효과
### P2 — 중기 (다음 분기)
- **[시스템]** 기능명: 현황 → 변경 내용 → 기대 효과
## 제외 항목 (이유 포함)
| 항목 | 제외 이유 |
|------|---------|
| ... | 이미 적용됨 / 영향도 낮음 / 리소스 대비 효과 낮음 |
## 실행 체크리스트
- [ ] P0 항목 (담당: Business/Portfolio/GodBlade)
- [ ] P1 항목
## 참고 영상
{각 영상 URL 및 분석 파일 경로}
Notion 업로드 (Step 5와 별도):
[종합] {날짜} — YT 분석 적용 계획analysis md(+ comparison + apply-plan, 존재 시)를 단일 HTML 대시보드로 변환한다.
ANALYSIS="01-research/videos/analyses/{date}-{video_id}-{slug}-analysis.md"
python3 ~/forge/shared/scripts/report_to_html.py \
"${ANALYSIS%-analysis.md}-dashboard.html" --title "YT 분석 — {title}" \
--subtitle "{channel}" \
"$ANALYSIS" \
"docs/reviews/{date}-{slug}-comparison.md" \
"docs/planning/active/plans/{date}-{slug}-apply-plan.md"
{analysis 경로}-dashboard.html (md 원본 유지).| Tier | 조건 | 동작 |
|---|---|---|
| Tier 1 | Notion MCP 사용 가능 | Notion 페이지에 콘텐츠 직접 삽입 |
| Tier 2 | Notion MCP 미연결 | 01-research/videos/index.json에 레코드 추가 |
Tier 1 필수 절차:
-analysis.md 전체 내용을 Read로 로드-apply-plan.md 전체 내용도 Read로 로드mcp__notion__notion-create-pages 호출 시 content 필드에 아래 형식으로 삽입:
{-analysis.md 전체}{-analysis.md 전체} + \n\n---\n\n + {-apply-plan.md 전체}4개 이상 영상을 동시 분석한 경우, cluster.py 실행 후 yt-cross-analyst 에이전트 스폰.
비즈니스 관련성 4점 이상 영상에 대해 yt-research-followup 에이전트를 스폰.
--deep 플래그 사용 또는 Human 명시적 요청 시에만 실행.
# {title}
> {channel} | {published} | {view_count} views | {duration}
> 원본: https://youtu.be/{video_id}
> 자막: {자막 유형} (신뢰도 {등급})
## TL;DR
(1-2문장)
## 카테고리
{category} | #{tags}
## 핵심 포인트
1. **포인트** [🕐 MM:SS](url?t=seconds)
...
## 댓글 인사이트
> 상위 댓글 {N}개 분석 (총 {총댓글수})
### 커뮤니티 반응 패턴
- **동의/확인**: ...
- **이견/반론**: ...
- **보충 정보**: ...
### 주목할 댓글
> "댓글 내용" — 작성자 👍 N
## 설명란 자료 요약
| # | 링크 | 유형 | 핵심 내용 |
|:-:|------|:----:|---------|
| 1 | [제목](url) | 공식문서/블로그/논문 | ... |
## 비판적 분석
### 주장 1: "{핵심 주장}"
- **제시된 근거**: ...
- **근거 유형**: 실증/경험/의견
- **한계**: ...
- **반론/대안**: ...
## 팩트체크 대상
- **주장**: "..." | **검증 필요 이유**: ... | **검증 방법**: ...
## 팩트체크 결과
| # | 주장 | 판정 | 근거 |
|:-:|------|:----:|------|
| 1 | "..." | ✅/⚠️/❌/❓ | 출처 + 요약 |
## 웹 리서치 결과
| 주제 | 출처 | 핵심 인사이트 | 영상과의 관계 |
|------|------|-------------|:-----------:|
| ... | [제목](url) | ... | 일치/보완/반박 |
## 시스템 비교 분석
| 제안/발견 | 우리 현황 | 갭 | 영향도 | 난이도 |
|----------|---------|:--:|:----:|:----:|
| ... | 이미 적용/부분/미적용 | 구체적 갭 | H/M/L | H/M/L |
## 필수 개선 제안
### P0 — 즉시 적용 가능
- **[시스템]** [개선 내용]: [현재 문제] → [제안] → [기대 효과]
### P1 — 이번 주
- ...
### P2 — 이번 달
- ...
## 실행 가능 항목
- [ ] 항목 (적용 대상: Portfolio/GodBlade/Business 명시)
## 관련성
- **Portfolio**: N/5 — 이유
- **GodBlade**: N/5 — 이유
- **비즈니스**: N/5 — 이유
## 핵심 인용
> "원문" — 발표자
## 추가 리서치 필요
- 주제 (검색 키워드: `keyword1`, `keyword2`)
--playlist 또는 --urls로 복수 영상이 입력된 경우, Subagent 병렬 분석을 적용한다.
| 영상 수 | Wave 전략 |
|---|---|
| 1~3개 | 병렬 없이 순차 실행 |
| 4~7개 | 단일 Wave 병렬 |
| 8~14개 | 2 Wave (7+7) |
| 15개+ | 3+ Wave (7개 단위) |
본 스킬 결과 산출 후 자동으로 eval-rubric 호출 → 4축 Rubric 채점 (clarity/consistency/completeness/safety) → eval_cases.jsonl 누적.
codex-review vs eval-rubric: Step 4.7의
codex-review는 adversarial 검증 (YAGNI·중복·롤백 탐지).eval-rubric은 다축 정량 채점 (clarity/consistency/completeness/safety). 둘 다 발화 — 영역이 다름.
01-research/videos/analyses/{date}-{slug}-analysis.md) 저장 직후/eval-rubric --target {analysis md 경로}
eval_cases.jsonl append:
~/.claude/skills/yt/eval_cases.jsonlEC-yt-{N} (auto-increment)hash(case_id) % 100 < 20 → holdout, 그 외 sample)sha256(skill+input.context+input.args) 충돌 시 observed_count++EVAL_RUBRIC_AUTO=off 설정 시 스킵eval_cases: off 명시 시 스킵출처: 하네스 백과사전 제5장, eval_cases.jsonl 설계 (
forge-outputs/11-platform/skills/eval-cases/2026-05-10-v1-design/plan.md)
본 스킬은 두 개의 독립 검증 게이트를 모두 발화한다. 순서·결과 합성은 다음 룰을 따른다.
1. analysis md 저장 (01-research/videos/analyses/{slug}-analysis.md)
2. /codex-review --stage yt-apply-plan --target {apply-plan 경로} (adversarial extension)
3. /eval-rubric --target {analysis 경로} (다축 정량 채점)
4. 두 결과를 eval_cases.jsonl 별도 라인으로 append (skill 필드로 구분)
- skill="yt-codex" + skill="yt-rubric"
순서 이유:
| codex 결과 | eval-rubric 결과 | 종합 verdict | 처리 |
|---|---|---|---|
| PASS | PASS | PASS | 종결 |
| PASS | WARN (≤1축 0점) | WARN | rationale 사용자 알림 |
| PASS | FAIL (≥2축 0점) | WARN | 사용자 결정 게이트 (적용 전) |
| WARN | * | WARN | codex WARN 우선 + rubric 보조 |
| FAIL (c=0,h=0) | * | WARN | L-31 적용. rubric으로 보강 |
| FAIL (c≥1 또는 h≥1) | * | FAIL [STOP] | 사용자 검토 의무 (자동 fix X) |
| 검증 | 영역 | 강점 | 약점 |
|---|---|---|---|
| codex-review | adversarial extension | 동일 모델 맹점 보완 (Claude/Codex 다른 모델) | 정량 점수 X |
| eval-rubric | 다축 정량 | clarity/consistency/completeness/safety 4축 점수 | 모델 동일 (자체 편향 가능) |
상호 보완: codex가 못 잡는 정량 측면 = eval-rubric 보강. eval-rubric이 못 잡는 적대적 견제 = codex 보강.
EVAL_RUBRIC_AUTO=off → eval-rubric만 스킵, codex-review는 진행--skip-cr-plan 인자 → codex-review만 스킵, eval-rubric은 진행--skip-cr-plan + EVAL_RUBRIC_AUTO=off 동시 적용두 결과 모두 누적 (별도 라인):
{"case_id":"EC-yt-codex-1","skill":"yt-codex","target":"apply-plan.md","verdict":"PASS",...}
{"case_id":"EC-yt-rubric-1","skill":"yt-rubric","target":"analysis.md","verdict":"WARN","scores":{...},...}
출처: AD-19 (eval-rubric 시스템 통합) + AD-21 (warn 기본). 합성 룰 = 본 작업 (2026-05-11).
yt 스킬 결과물 완성 후 독립 Evaluator Subagent가 품질을 2차 검증한다.
원칙: 생성자 ≠ 평가자. 자기평가 편향 방지.
Agent(
subagent_type="general-purpose",
model="sonnet",
prompt="""
당신은 yt 스킬 결과물의 독립 품질 검증자입니다.
아래 기준으로 결과물을 평가하세요:
1. 핵심 인사이트(핵심 포인트)가 5개 이상 도출됐는지 확인한다. 5개 미만이면 FAIL.
2. 요약(TL;DR 및 핵심 포인트)이 원본 영상 내용을 왜곡 없이 정확하게 반영하는지 확인한다. 사실 오류·과장·생략이 있으면 FAIL.
3. 결과물에 ACHCE 축 태그(Agentic/Context/Harness/Cost/Human-AI) 중 하나 이상이 부여됐는지 확인한다. 태그 없으면 FAIL.
4. Notion 업로드 완료 여부(Step 5 실행 기록)가 결과물에 명시됐는지 확인한다. 미실행이면 FAIL.
판정: PASS(기준 충족) / FAIL(재작업 필요)
피드백 형식: [파일명+섹션] — [이유] → [방법]
"""
)
피드백 루프:
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub moongci38-oss/forge-plugins --plugin forge-research