research-collectorlisted
Install: claude install-skill xiaomoBoy/claude-writing-skills
# Research Collector
这个 skill 只做一件事:
- 为某个主题批量收集 YouTube 视频 + 网页文章,喂进 NotebookLM,跑分析查询,把结果落地到本地目录(默认 `./research/<topic>/`,可配置)
不负责:
- 写成品文章(交给你自己的写作工具 / skill)
- 选主标题
- 下载视频(交给本仓库里的 `yt-dlp-direct` skill)
- 发布到多平台(交给本仓库里的 `publisher-wechatsync` skill)
一句话原则:用户说"帮我收集 X 话题的素材"或"拉一批 YouTube + 文章到 NotebookLM",就走这条固定流水线,不要每次重新设计。
## When To Use
适用场景:
- 用户要为某个话题写推荐/测评/观点文,需要先做背景研究
- 用户说"帮我找 X 的热门 YouTube 视频和文章"
- 用户说"收集到 NotebookLM 里分析"
- 用户说"给我整理一份 X 话题的素材研究"
不适用场景:
- 用户已经有明确素材清单,只想要总结 → 直接跑 `nlm notebook query`
- 用户要做的是实时对话研究,不需要持久化到 notebook → 用 WebSearch + WebFetch
- 用户只要下载单个视频 → 用 `yt-dlp-direct`
## Preconditions
开始前必须确认:
1. `nlm` CLI 已安装且登录:`nlm login --check`
2. `yt-dlp` 在 PATH 中:`which yt-dlp`
3. 用户明确说明了主题和角度
4. 输出目录可写(默认 `./research/<topic>/`,可以通过 `RESEARCH_OUTPUT_DIR` 环境变量或对话里直接指定其他路径)
前置不满足时:
- `nlm login --check` 失败 → 让用户跑 `nlm login`,session 有效期 ~20 分钟
- `yt-dlp` 没装 → 停止并告诉用户
## Working Rules
- 先和用户对齐主题、角度、量级,再动手
- 每轮 ytsearch 默认 15 条,可以根据需要调整
- NotebookLM deep research 一次只能跑一个任务,不能并发
- 添加 source 时每条之间 sleep 2 秒,避免限流
- 所有产出(原始 JSON + 汇总 markdown)落到 `./research/<topic>/` 下(或用户指定的目录)
- 这个 skill 只负责收集和分析,不要擅自接着写成品文章
- 不要删 notebook,用户后面可能还要回去跑 query
## Core Workflow
### Phase 0: 对齐目标
在动手前必须和用户明确:
1. **主题是什么**(要一句话能喂给 ytsearch 的关键词)
2. **角度**(比如"最常用 + 个人创作" vs "最新发布 + 技术细节")
3. **笔记本命名**(默认 `<主题> 素材`)
4. **量级**(默认:15 油管 + deep research 自动 ~40 网页)
### Phase 1: 创建笔记本 + 设 alias
```bash
nlm notebook create "<话题> 素材"
# 从输出提取 ID,然后:
nlm alias set <short-na