# Research Literature Radar

> 发现、筛选并长期归档重要研究论文；当用户要求按主题寻找经典、rising star、社区精选、热点或顶会/顶刊论文时使用。采用分层发现策略，调用 research-literature-search 完成其中的关键词/数据库检索，再由本 skill 负责多渠道汇总、idea-level 价值判断、论文类型分类、跨轮次跟踪和论文库归档。

- Skill: `huangwb8/research-literature-radar` (Agent Skill, multi-file: 10 files)
- Install (CLI): `npx skillmds@latest add huangwb8/research-literature-radar`
- Raw SKILL.md: https://api.skillmd.com/api/skills/huangwb8/research-literature-radar/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Research & Search
- Author: huangwb8 (https://skillmd.com/u/huangwb8)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/huangwb8/research-literature-radar

---

# Research Literature Radar

### 定位与边界

把来自不同发现渠道的候选论文转成可持续维护的研究雷达。`research-literature-search` 只是本 skill 的一个检索子步骤，负责基于显式关键词的数据库召回、字段规范化、canonical 去重和 provenance；本 skill 仍负责分层发现、跨渠道汇总、价值判断、分类、跟踪与归档。

本 skill 负责：

- 将用户目标转成筛选标准和论文类型配额；
- 对候选做主题相关性硬过滤和 idea-level 价值评分；
- 分类、排序、记录不确定性和落选理由；
- 将入选论文映射到稳定 ID，写入论文库并维护跨轮次跟踪。

### 触发与输入

用户提出“找值得读的论文”“建立某主题论文雷达”“按经典/热点/顶会等类型推荐论文”或类似发现与学习需求时触发。

必填：用户选题和目标数量。可选：领域/子主题、五类论文配额（`classic`、`rising-star`、`community`、`hot`、`top-venue`）、时间窗、作者/venue 白名单、排除项、是否下载公开 PDF、笔记深度。

运行前读取 `.bensz-api/research-literature-radar/catalog.jsonl`（不存在则创建），并保留用户原始请求和运行日期。

## 流程

### 输入

按用户请求和配置文件提供必要输入；缺失信息应明确列出并停止依赖该输入的步骤。

### 执行步骤

- 仅将本 Skill 的设计缺陷（流程漏判、输入契约不完整或环境假设错误）视为可上报 bug；用户数据错误、第三方服务抖动、用户主动改源码和模型偶发波动不属于此范围。
- 发现设计缺陷时先脱敏记录到 `~/.bensz-skills/bugs/`，当前任务继续；只有用户明确要求公开上报时，才使用本机 `gh api` 直传，不 clone 仓库。
- 不收集用户名、主机名、工作目录、密钥、令牌、Cookie 或其它无关隐私；不得直接修改用户本地已安装 Skill 的源代码来“顺手修 bug”。

版本唯一来源为同目录 `config.yaml:skill_info.version`；本文件只描述稳定工作契约，不重复易变配置。

不要把论文发现简化成单一关键词检索。根据用户选题和目标数量，组合以下五类渠道；每类都可以使用联网检索、研究者脉络或社区信号，但必须记录其来源和用途：

- **经典论文**：定位领域奠基者、明星研究者、综述、奖项和公认里程碑，再查找其代表性工作。
- **rising-star 论文**：寻找近 3–5 年持续突破的作者、实验室或研究线，关注尚未广为人知但影响快速上升的研究者。
- **社区精选**：检查 Hugging Face Daily/Weekly/Monthly Papers、Import AI、研究者通讯、公众号/X 账号和可信整理页。
- **偶然的热点论文**：关注近期发表后因讨论度、代码传播、新闻或社交平台而受到关注的论文，即使作者并不知名。
- **顶会/顶刊近期论文**：仅在用户选题足够窄时重点使用，结合明确的 venue 和时间窗，避免宽主题造成无穷候选。

`research-literature-search` 负责其中“基于关键词检索学术数据库”的小步骤；经典作者脉络、社区精选和热点信号不能假设会自动出现在该检索 bundle 中。

### 首选：调用 search 后端

当分层策略需要关键词/数据库召回时，调用 `research-literature-search` 的 `run`，为其提供合法的 `topic` 和 5–25 条显式查询；随后调用其 `validate`。只接受 `manifest.json` 的 `status` 为 `success` 或 `partial_success` 的 bundle。没有需要数据库检索的渠道时，不得为了形式强行调用；但必须说明使用了哪些其它发现渠道。

将以下文件作为只读输入保存到本轮 radar run：

```text
manifest.json
candidates_deduped.jsonl
provenance.jsonl
dedupe_map.json
```

候选必须符合 `rls.paper.v1`。保留 manifest、contract version、artifact hash、canonical 候选数量和 search source path，便于追溯。若实际调用了 search 但 bundle 校验失败、没有合法查询或 search skill 不可发现，应停止该检索子步骤并报告原因；不能静默改用另一套内嵌 provider。其它分层渠道仍可独立记录为补充发现，但不得伪装成 search 结果。

### 补充发现信号

社区精选、奖项、研究者整理、代码传播或新闻讨论等非标准数据库信号可以作为补充证据，但必须：

- 记录 URL、访问日期、来源用途和对应论文身份；
- 映射到已有 canonical 候选，或作为明确标记的待确认候选；
- 不伪装成 search provider 结果，不覆盖 search 的 canonical 顺序和去重结论。

当补充信号产生新论文时，使用本 skill 的稳定身份键与 catalog 比对；相似但无法确认的记录标记 `possible_duplicate`，不得静默合并。

先硬过滤主题相关性、时间/venue 约束和最低元数据完整度，再评分。对通过者按 0–5 分记录：`conceptual_novelty`、`simplicity`、`surprise`、`generality`、`unification`、`new_primitive`、`follow_up_potential`、`practical_impact`。证据质量单列为 `confidence`，不混入“有趣程度”。

为每篇入选或高分落选候选记录总分、两句理由、关键证据、思想标签和不确定性。思想标签可使用：`problem-reformulation`、`unexpected-simplicity`、`hidden-equivalence`、`assumption-revisit`、`new-measurement`、`failure-revealing`、`new-primitive`、`cross-domain-transfer`。标题短语只能触发关注，必须用摘要、论文页面或 PDF 核实。

先满足各类最低配额，再按总分、思想标签/年份/作者多样性补足；输出高分但落选候选及原因。

`scripts/catalog.py` 提供不依赖网络的 ID 生成、标题标准化、索引加载和重复判定；`scripts/validate_layout.py` 在交付前检查运行级文件是否错误写入 `docs/papers/` 根目录。脚本不会下载或删除文件。

### 输出

每轮先加载 catalog，再消费已验证的 search bundle。重复项只更新来源、版本、评分或跟进记录；只有真正新论文才创建目录。将 `discovery.md`、`selection.md`、`dedup-report.md` 和运行摘要写入同一 `runs/<run-id>/`，并明确候选数 = 入选 + 跳过 + 待确认 + 失败。

交付前确认：每个实际使用的 search manifest 可消费、canonical 数量可追溯；五类渠道的适用性和覆盖情况有说明；每篇候选标注可复用思想标签，并有一手论文页面/PDF和至少一个独立发现信号（URL、访问日期、用途）；ID、metadata、catalog、raw manifest 与内部路径一致；根目录 `index.md` 已包含每篇新增论文；`docs/papers/` 根目录没有运行级文件。

### 输出管理

目录 ID 使用 `<first-author-full-name>-<year>-<keyword>`：首位作者全名、四位年份和可识别工作/方法关键词均为 ASCII 小写并以单个连字符分隔。关键词优先使用公认简称；无稳定简称时使用标题短 slug。arXiv、DOI、OpenReview 等外部编号不能作为目录主名，必须写入 `identifiers`。

身份比对顺序为 DOI → arXiv/OpenReview → 其它稳定 ID → 标准化标题+首位作者+年份。预印本与正式版合并并保留版本链接；冲突时在关键词末尾追加稳定短哈希。已有笔记不覆盖，只补充缺失字段并在 `history` 写明变更原因。

```text
docs/papers/
└── <friendly-id>/
    ├── raw/                       # 公开 PDF、HTML、metadata、manifest
    └── <friendly-id>.md           # 学习笔记

.bensz-api/research-literature-radar/
├── catalog.jsonl                  # 跨轮次论文索引
└── runs/<run-id>/                 # run.yaml、search 交接包、筛选与去重报告
```

`docs/papers/` 只存论文实体及其原始材料/学习笔记；运行级配置、manifest、筛选报告、日志和去重报告统一写入 `.bensz-api/research-literature-radar/`。原始文件用外部标识命名，可记录 SHA-256，禁止静默覆盖。

`catalog.jsonl` 每行至少记录 `id,title,authors,year,venue,status,paper_types,tags,identifiers,sources,files,scores,confidence,first_seen_run,last_seen_run,history`，且 `id` 必须与论文目录名和笔记文件名一致。

### 校验

完成后执行 Skill 已有的静态检查、脚本验证或人工复核，并记录通过标准。

### 失败与恢复

保留错误证据和已完成产物；仅在输入、环境或外部依赖恢复后从最近的失败步骤重试。

## 约束

遵守以下公共约束，并执行本 Skill 的专属边界。

### 公共硬约束

- 任务需要落盘时，使用唯一的 `./.bensz-api/task-{yyyymmdd-hhmm}-{简短描述}/` 根目录；共享材料放入 `shared/`，Skill 专属材料放入该 Skill 的 `input/`、`output/`、`log/`。
- 正式交付物、源代码和正式计划按项目约定保存，不写入任务工作区；未经授权不覆盖、删除、迁移或远程写入。
- 项目维护变更检查 BAC 可用性并记录需求、AI 产出、工具结果、文件改动和验证摘要；BAC 只做过程审计，不替代署名、责任或合规判断。
- 不记录 API Key、访问令牌、密码、Cookie、环境/凭据文件、私有 Prompt、身份信息、本地用户名、主机名或不必要的大体积原始数据。
- 文件路径必须规范化并限制在授权项目范围内；外部 URL、子进程和网络访问遵循最小权限，防止路径遍历、SSRF 和命令注入。
- Skill 版本唯一记录在自身 `config.yaml:skill_info.version`；公开 API、协议、目录或配置变更同步文档与 `CHANGELOG.md`。
- 仅将 Skill 或 Bensz 基础设施本身的设计缺陷交给 `bensz-collect-bugs`；先脱敏写入 `~/.bensz-skills/bugs/`，当前任务不中断，只有用户明确要求才公开上报，禁止直接修改用户已安装的 Skill 源码。
<!-- End of canonical common constraints. -->

### Skill 专属约束

不得超出本 Skill description 和上方流程所声明的范围；不将未验证的信息伪装成确定结论。

