literature-survey · git:20260721.8854a74 · 2026-07-21 · sha256 4b79ca4ad56ef813

literature-survey git:20260721.8854a74A

Immutable. This exact content never changes and is served at /api/v1/blob/4b79ca4ad56ef813.

---
name: literature-survey
description: >
  当 Supervisor 说"调研""survey""了解研究现状",或需要系统了解某主题的文献全貌时,搜索外部文献、批量 digest、综合生成调研报告
argument-hint: "<topic> [scope]"
allowed-tools: Read, Write, Edit, Glob, Grep, Bash, WebSearch, WebFetch
---

## Purpose

给定一个研究主题,主动搜索外部文献、自动调用 paper-digest 生成结构化笔记,最终综合所有论文产出一份领域调研报告。

## Steps

### Step 1:明确调研范围

解析用户输入,确定以下参数:

| 参数 | 默认值 | 说明 |
|:-----|:-------|:-----|
| `topic` | (必填) | 研究主题 |
| `year_range` | 近 3 年 | 时间范围 |
| `venue_preference` | 无 | venue 偏好 |
| `max_papers` | 20 | 最终纳入调研的论文数量上限 |
| `scope` | `full` | `full` = 外部搜索 + vault 综合;`vault-only` = 只综合库内已读论文,产出报告到 Reports/(触发词:"根据已读论文写个 XX 报告""vault 里关于 XX 的综合") |

基于 topic 生成 **3-5 条搜索策略**,覆盖以下角度:

1. **核心主题**:topic 本身的直接搜索
2. **相关方法**:该领域的主流技术路线
3. **Survey / 综述**:搜索已有 survey 论文作为参考锚点
4. **Benchmark / 数据集**:该领域常用的评测基准
5. **应用场景**:下游应用或跨领域迁移

每条策略生成 1-2 个具体的搜索 query(英文),共 5-10 个 query。

### Step 2:Vault-first 检索

在执行外部搜索之前,先检查 vault 中已有的相关内容:

1. 用 Grep 在 `Papers/` 的 frontmatter 和正文中搜索 topic 相关关键词(2-3 个核心关键词)。
2. 用 Grep 在 `Topics/` 中搜索是否已有相关调研或分析。
3. 收集所有匹配的 Paper 笔记,建立"**已知论文清单**"(title 列表),后续用于去重。
4. 若发现已有 Survey(如 `Topics/{Topic}-Survey.md` 已存在),先检查 frontmatter。若 `status: merged`,沿 `merged_into` 读取 canonical survey 并把后续检索、综合与写入目标全部改为 canonical;redirect 只读且不得复活。否则读取原文件作为基线,后续步骤在此基础上增量更新(补充新论文、更新分析),而非从零重建。

### Step 3:外部搜索与筛选

**`scope: vault-only` 时跳过本步与 Step 4**(不做外部搜索、不新增 digest),直接以 Step 2 的库内命中论文进入 Step 5 综合分析。

调研走 **两条互补检索通道**,合并候选:

**通道 A — OpenAlex 主题检索(零 token,覆盖期刊/venue)**:先对核心 query 跑 OpenAlex 搜索,捞回 WebSearch(偏 arxiv)容易漏掉的期刊/顶会论文(IJCV/TNNLS/TPAMI/CVPR 等)。每个核心 query 跑一次:

```bash
python3 skills/1-literature/daily-papers/fetch_and_score.py \
  --search "<query>" --year-from <起始年> --limit 25
# 可选 --venues 0920-5691,0162-8828 限定 ISSN(逗号分隔)
```

输出 JSON 数组(title/authors/abstract/url/doi/venue/date)。`url` 优先 arxiv 链接、否则 doi.org,可直接喂给 Step 4 的 paper-digest(doi/CVF 走 paper-digest 对应分支)。

**通道 B — WebSearch(开放网络)**:

1. 对每个 query,用 **WebSearch** 搜索(建议加 `site:arxiv.org` 或 `"论文标题" arxiv`),提取搜索结果中的论文信息。
2. 从搜索结果中收集候选论文列表,提取:title、authors、year、venue(若可判断)、url。

**合并与去重**:

3. **去重**:将每个候选论文的 title(转小写,去标点)与已知论文清单及两通道彼此对比,跳过重复(同一论文 arxiv 版与期刊版视为一篇)。
4. **搜索轮数上限**:OpenAlex 最多 5 次 `--search`、WebSearch 最多 **10 次**。若某些 query 返回结果质量低(无相关论文),提前停止该策略。

**搜索/抓取兜底**:若 WebSearch 或 WebFetch 在 arXiv / HuggingFace 上卡顿,先读取 `references/network-fetch-fallback.md`。对已知标题可构造 arXiv search URL 或 HuggingFace paper URL 后用:

```bash
python3 scripts/lexmount_fetch.py extract "<url>" --format markdown
```

该兜底只用于恢复真实页面内容,不得用来凭空扩展候选论文;纳入候选的论文仍必须有可访问来源。

搜索完成后,对所有候选论文进行筛选和排序:

- **相关性**:与 topic 的直接相关程度
- **影响力**:优先选择知名 venue 或者知名机构的论文
- **时效性**:在 year_range 内的论文优先
- **多样性**:确保覆盖不同技术路线,避免全部来自同一方向

选取 **top-N**(N = `max_papers` 减去 vault 中已有的相关论文数,最少 3 篇)作为待 digest 的论文列表。

### Step 4:批量 paper-digest

对 Step 3 筛选出的每篇论文,执行 paper-digest:

1. 读取 `skills/1-literature/paper-digest/SKILL.md`,按其 Steps 逐一处理每篇论文。
2. 输入为论文的 arXiv URL(优先)或论文标题。
3. **跳过规则**:
   - 若 paper-digest 的去重检查发现 vault 已有该笔记,跳过。
   - 若 WebFetch 无法获取论文内容(如非 arXiv 论文、付费墙),先按 paper-digest 的 Lexmount fallback 重试;仍失败才记录为"未能获取"并跳过,不阻塞流程。
4. 记录每篇论文的 digest 结果:成功(文件路径)/ 跳过(原因)/ 失败(原因)。

### Step 5:综合分析

基于 vault 中所有相关论文笔记(Step 2 已有的 + Step 4 新 digest 的),进行综合分析:

1. 用 Read 读取所有相关 Paper 笔记(重点:Summary、Method、Key Results、Strengths & Weaknesses)。
2. 读取 `DomainMaps/_index.md`(索引页)找到相关 domain,再读取对应的 `DomainMaps/{Name}.md` 了解当前认知状态。

读取`Templates/Survey.md` 按其中的 section 结构综合分析。

### Step 6:产出

#### 6a. 生成 Survey 文件

**`scope: vault-only` 时**输出到 `Reports/YYYY-MM-DD-{Topic}-Report.md`(报告性质,不覆盖 Topics/ 下的正式 survey),frontmatter 增加 `scope: vault-only`;以下 survey 文件规则仅适用于 `scope: full`。

Topic 名称根据主题生成(CamelCase,如 `VLA-Manipulation`、`DiffusionPolicy-Robotics`)。

- **新建**:若 `Topics/{Topic}-Survey.md` 不存在,用 Write 按 `Templates/Survey.md` 模板创建并填充各 section。新建 survey 必须填 frontmatter `keywords`(小写短语)与 `domain_map`(无对应 DomainMap 填 null),否则该 survey 无法进入 digest→survey 信息流。
- **增量更新**:若已存在且不是 `status: merged`,用 Edit 在其基础上补充新论文、刷新分析,保留原有内容中仍然有效的部分。若命中 merged redirect,只更新其 `merged_into` 指向的 canonical survey。

所有论文引用使用 `[[wikilink]]` 格式。

**写作基线(Supervisor 2026-07-07 手改确立,最基础要求)**:

1. **一句话结论就是一句话**:Overview 首句只保留单一核心论题;并列的分类/需求轴用竖排 bullet list,不塞进长句。
2. **零对话性内容**:survey 是沉淀文档,不是对 Supervisor 的回复——不写"直觉得到验证"式框架、导览铺垫、与其他 survey 的分工说明;"建议加入 DomainMaps"等流程注记只放调研日志。
3. **标题平实**:用"时间段/对象:内容"式描述性标题,不用叙事修辞(如"五幕""第 X 幕")。
4. **每行一个论点**:拆长复合句;演进链(A→B→C)竖排分行、每级加粗。
5. **砍论据的展开,不砍论断的解释**:机制细节(文件系统原理、算法推导)留在 Paper 笔记,正文只留论断 + 关键数字 + wikilink;反之,**预测/新概念/反直觉论断必须 self-contained 展开 2-4 句**(是什么/为什么/萌芽证据)——压缩成标签再靠事后口头解释 = 写作失败。
6. **Takeaway ≤5 条且硬**:只留可操作/可预测/指向行动的结论;类比只留一句 thesis,不留论证展开。
7. **表格优先**:凡"维度 × 对象"的对比(能力矩阵/需求分层/用途分化)一律表格化——表格是 survey 最高价值资产。
8. **章节成段叙事,不做罗列**(Supervisor 2026-07-21 补充):每章开篇设"发展进程与研究现状"叙事段,章末有待解决问题段;概念分类、发展阶段、风险面等内容写成按因果链组织的完整段落(每一步解决了什么、又暴露了什么),不做方法名的 bullet 罗列。表格保留,但每张表前需 1-3 句框架段说明它回答什么问题,重要谱系表后加综合段。第 4 条的"演进链竖排"仅适用于单一机制的紧凑 lineage,不适用于章节级发展叙事。

#### 6b. 追加日志

用 Edit(若文件不存在则用 Write)将以下格式的 log entry 追加到 `Workbench/logs/YYYY-MM-DD.md`:

```markdown
### [HH:MM] literature-survey
- **input**: topic: <topic> | year_range: <year_range>
- **output**: [[Topics/{Topic}-Survey]]
- **stats**: 搜索 N 次,候选 N 篇,digest N 篇(成功 N / 跳过 N / 失败 N)
- **observation**: <一句话概括该领域的核心发现>
- **status**: success
```

若日志文件不存在,先创建文件(包含一级标题 `# YYYY-MM-DD`),再追加 entry。

## Guard

- **paper-digest 失败不阻塞**:单篇论文 digest 失败时记录原因并继续处理下一篇,不中断整个 survey 流程。
- **merged survey 只读**:frontmatter 含 `status: merged` 的文件只承担旧链接跳转,不得恢复 keywords、追加正文或重新参与增量更新;必须沿 `merged_into` 写入 canonical survey。
- **搜索上限**:最多执行 50 次 WebSearch,避免过度消耗 token 和 API 配额。
- **不捏造论文**:所有纳入分析的论文必须来自实际搜索结果或 vault 已有笔记,不得凭记忆编造论文信息。
- **不直接修改 DomainMaps**:综合分析中如有值得纳入 DomainMaps 的发现,在 Survey 文件的调研日志中标注"建议加入 DomainMaps"(不放 Key Takeaways,见写作基线第 2 条),不得直接修改 `DomainMaps/` 下的任何文件。
- **Papers/ 已有笔记只读**:不得修改 vault 中已存在的 Paper 笔记,只可读取。新论文的笔记由 paper-digest 创建。

## Verify

- [ ] `Topics/*-Survey.md` 已创建
- [ ] 技术路线分类 ≥2 条
- [ ] Datasets & Benchmarks 表非空
- [ ] Open Problems 节非空
- [ ] **写作基线**:Overview 首句为单一论题句;全篇无对话性内容与流程注记(后者只在调研日志)
- [ ] **展开度**:Takeaway 中每条预测/新概念/反直觉论断都有 2-4 句 self-contained 解释,可脱离对话独立读懂
- [ ] **成段叙事**:各章有发展进程/研究现状叙事段与章末待解决问题段;无孤立 bullet 罗列;每张表前有框架段

## Examples

**示例 1:调研一个主题**

```
"调研一下 VLA for manipulation 的研究现状"
```

执行过程:

1. 解析:topic = "VLA for manipulation",year_range = 2023-2026
2. 生成搜索策略:
   - "Vision-Language-Action models manipulation arxiv"
   - "VLA robot manipulation policy learning"
   - "VLA survey embodied AI"
   - "manipulation benchmark evaluation VLA"
3. Grep `Papers/` 搜索已有 VLA 相关笔记,发现 3 篇
4. WebSearch 执行 6 次搜索,收集 20 篇候选,去重后剩 14 篇
5. 筛选 top-5
6. 逐一 paper-digest:成功 4 篇,失败 1 篇(付费墙)
7. 综合分析 7 篇论文(3 已有 + 4 新增),生成调研报告
8. Write `Topics/VLA-Manipulation-Survey.md`
9. 追加日志到 `Workbench/logs/2026-03-27.md`

输出文件:`Topics/VLA-Manipulation-Survey.md`

---

**示例 2:带约束的调研**

```
"survey diffusion policy in robotics,只看 2024 年以后的 top venue 论文,最多 5 篇"
```

执行过程:

1. 解析:topic = "diffusion policy in robotics",year_range = 2024-2026,venue_preference = top-tier
2. Grep `Papers/` 发现 1 篇已有
3. WebSearch 搜索,优先筛选 CoRL / RSS / ICRA / NeurIPS / ICML 论文
4. 筛选 top-4
5. 逐一 paper-digest
6. 综合分析,生成报告
7. Write `Topics/DiffusionPolicy-Robotics-Survey.md`

输出文件:`Topics/DiffusionPolicy-Robotics-Survey.md`