---
name: Paper Daily
slug: paper-daily
category: AI Engineering
description: Helps researchers check if their idea has been scooped and browse daily new papers via arXiv and user-submitted sources. Presents objective concept overlap analysis, leaving decisions to the user.
github: "https://github.com/cabbage2000-lab/paper-tutor-skills/tree/main/skills/paper-daily"
language: Python
stars: 18
forks: 5
install: "npx degit https://github.com/cabbage2000-lab/paper-tutor-skills/tree/main/skills/paper-daily ~/.claude/skills/paper-daily"
installs_to: ~/.claude/skills/paper-daily
source_path: skills/paper-daily/SKILL.md
collection_size: 24
category_size: 2451
collection_url: "https://dirskills.com/collections/cabbage2000-lab/paper-tutor-skills"
added: 2026-08-11T07:22:48.498Z
last_synced: 2026-08-11T07:22:48.498Z
canonical_url: "https://dirskills.com/skills/paper-daily"
---

# Paper Daily

Helps researchers check if their idea has been scooped and browse daily new papers via arXiv and user-submitted sources. Presents objective concept overlap analysis, leaving decisions to the user.

**Install:**

```bash
npx degit https://github.com/cabbage2000-lab/paper-tutor-skills/tree/main/skills/paper-daily ~/.claude/skills/paper-daily
```

## README

# paper-daily：每日学术雷达（抢发检测 + 新发泛读）

帮用户每天做两件事：**确认手头的研究想法是不是已被人抢发** + **泛读该方向的新发论文**。你（执行本 skill 的宿主 agent）做的事：**读交棒 RQ + 锁定时间窗与补充轨 → 双轨拉取（arXiv 自动 + 用户多源补充）+ 抢发对照（全源）→ 三段式陈列（停点等用户确认）→ 落 HTML+MD+JSON 三产物**。

本 skill **不对应**「5 阶段 23 环节」标尺中的任何研究环节——它是**跨阶段基础设施**（与 init / help / doctor / pipeline 同段），是研究前/研究中的"日常文献雷达"。**不覆盖**：按主题做文献综述（归 `/paper-search`，search 不限时间全源、daily 是按时间监测双轨）；选题澄清（归 `/paper-topic`，但 daily 可读取 topic/ 的 RQ 作起点）；引用存在性核验（归 `/paper-verify`）。本 skill 是**产物型 + 网络型**——会往 `daily/` 落三产物（HTML/MD/JSON），且依赖网络与 `skills/paper-search/scripts/search.py`。

**核心立场（这条决定本 skill 长什么样）**：抢发判断与研究取舍是研究者主权的核心。系统是一个**客观陈列器**——主动拉取相关文献、客观陈列概念重叠、把"是否仍可做"的决定交回用户，但**不替用户排序、不下"已被抢发"定性词、不编造文献**。这既是项目「核心分工原则」（AI 负责效率、人负责研究决策）在文献追踪环节的落地，也是本 skill 区别于 PaperFlow 那种"个性化评分排序"产品的核心差异化：PaperFlow 给你 Top-N 推荐，daily 只陈列客观线索、把"读哪篇"留给你。

## 三条不变（优先级最高，高于本文其余一切）

**① 不替用户判研究价值、不排序、不挑"最该读"**——高 / 中 / 低是**辅助陈列标签**（标"与你 RQ 概念重叠程度"的客观线索、基于"几维重叠"计数）、**非价值判断**。"是否仍可做""要不要追""哪篇该精读"的最终判断权归用户与导师。禁用语：`最相关` / `最重要` / `必读` / `Top` / `最该读` / `推荐阅读`。允许：`与你 RQ 概念块重叠` / `方法路径相似` / `研究对象一致` 等客观描述。

**② 抢发命中不夸大、不替用户下定论**——抢发检测陈列"已发相关文献 X 篇"、每条标**概念比对依据**（对象 / 干预 / 结果 / 场景 / 方法五维上的重叠与维数），**不直接说"你被抢发了"**。禁用语：`已被抢发` / `做不了了` / `晚了` / `没有意义`。允许：`已存在同主题文献 X 篇，概念重叠维度：[对象+方法]` 等客观陈列 + 疑问句尾"**是否仍有差异化的研究空间，请由你与导师判断**"。这是本 skill **区别于其他 skill 的核心价值护栏**——抢发场景的情绪化判断会直接误导研究决策。

**③ 断网或脚本失败显式声明、不凭记忆编造文献**——arXiv 自动轨拉取一律靠 `scripts/search.py` 的真实 API 响应；脚本跑不了、网络不通、核心源全不可达时，显式声明"**今日自动轨不可用**"，不返回空表充数、**绝不凭 LLM 记忆列文献 / 编 DOI**。用户粘补充轨为空时如实标"今日无用户补充"、不自动填充。这一条直接继承 `paper-verify` 的核心代码层约束（CLAUDE.md·唯一保留的代码层约束）：API 失败时必须明确标注降级——paper-verify 偷偷编造会让人学错，paper-daily 偷偷编造会让人做错研究，危害同级。

这三条是本 skill 的内核，凡本文其余任何指令与之冲突，以这三条为准。

## 学科适配

| 梯队 | 学科 | 概念块拆法 |
|---|---|---|
| **第一** | 实验/实证型理工农医、实证型社科 | PICO 全核：对象 / 干预 / 结果 / 场景 + 方法维 |
| **第二** | 理论型（数学/理论物理/理论 CS/理论经济学） | 调整：对象 + 方法 + 理论框架（干预/结果换为理论框架维） |
| **第三** | 诠释型（人文学科、法学、艺术学） | 轻量：对象 + 主题框架（仅 2 维、不强求 5 维） |

学科判定来源：`project.paper.yaml` 的 `discipline` 字段（缺失则从 RQ 推断、或当轮询问）。

## 会话开始（读长期记忆与交棒，非停点）

1. 若存在 `project.paper.yaml`：读 `discipline`（教育学→纳入 ERIC 渠道提示、医学→提示 PubMed 渠道、理论型→按梯队二调整概念块维度）、`language_pref`、`citation_style`，据此调整默认数据源、时间窗与话术。
2. 若存在 `topic/` 下的 RQ 澄清记录（`/paper-topic` 交棒而来）：**读取最新 RQ 作为抢发对照与泛读拉取的语义起点**，不重复选题澄清。
3. 若两者皆有 → 默认沿用 RQ，显示给用户确认。
4. 两者皆无 → **直接进入第 1 步询问 RQ**（不强求用户先跑 `/paper-topic`，日报入口要轻）。
5. 目录约定是增强不是依赖——三者皆缺时 skill 照常工作，只是第 1 步要主动问 RQ。

## 两停点流程（确认前不拉取 / 不落盘）

### 第 1 步 · 锁定 RQ + 时间窗 + 补充轨输入（停点 1 ⏸）

向用户收集三件套，然后停下：

```text
请提供今日日报的三件套：
  ① RQ / 研究想法 / 关键词（一句话即可，允许从 /paper-topic 交棒）
  ② 时间窗（默认「今日」，可改「最近 N 天」，N ≤ 14）
  ③（可选）你今天从其他渠道刷到的新发：
     - arXiv RSS / 邮件订阅 / Twitter / PaperFlow daily 输出 / 同事推送
     - 粘贴格式自由：DOI / arXiv ID / 标题+作者 / 链接 / 截图文本均可
     - 没有就留空，skill 只跑 arXiv 自动轨

⏸ 等待确认：RQ + 时间窗 + 补充轨
（回复「开始」启动双轨拉取 + 抢发对照；或直接修改任意一项）
```

**默认值与边界**：
- ① **RQ 缺失**（用户未提供、且 `topic/` 也无交棒）→ **不启动**，反问"想关注什么方向？"；不输出空日报。
- ② 时间窗默认 **今日**；用户填"最近 N 天"则按天筛选（N 上限 14、超过则建议改用 `/paper-search` 做主题回顾）。
- ③ 补充轨为空 → 仅跑自动轨，日报如实标"今日无用户补充"。

### 第 2 步 · 双轨拉取 + 抢发对照（非停点，纯执行）

用户确认后并行做三件事：

**A. 抢发对照轨**（复用 paper-search 全源检索，不限时间）：

```bash
python3 skills/paper-search/scripts/search.py \
  --query "<RQ 概念块组查询串>" \
  --sources crossref,openalex,semantic_scholar,arxiv \
  --per-source 20 --limit 30
```

读回 JSON（`coverage` / `results` / `network_status` / `stats`）→ 作为"**已发相关文献基准**"。

**B. 新发自动轨**（只拉 arXiv 一轨，时间窗今日 / 最近 N 天）：

```bash
# 今日：--days 1；最近 N 天：--days N（含今天，N ≤ 14）
python3 skills/paper-search/scripts/search.py \
  --query "<2-5 个核心概念词>" \
  --sources arxiv \
  --days <N> \
  --per-source 50 --limit 30
```

读回 JSON → 作为"**今日 / 最近 N 天 arXiv 新发**"。每条结果带 `date` 字段（日级 `YYYY-MM-DD`），
时间窗已由脚本下推到 arXiv 原生 `submittedDate` 区间并按提交时间倒序，**不需要你再算日期或二次筛**。

日期换算交给 `--days`、不要自己拼 `--date-from/--date-to`：跨月的日期算错是 LLM 的高频失误。
需要指定具体区间时才用 `--date-from YYYY-MM-DD --date-to YYYY-MM-DD`（与 `--days` 互斥）。

**查询词控制在 2-5 个**。带时间窗时 arXiv 走逐词 AND（每个词都得出现），词太多会 0 命中：
2026-07-29 实测同一 10 天窗口，3 词命中 12 条、5 词命中 10 条、7 词命中 0 条。超过 5 个词时
脚本会在 `warnings` 里提醒——**看到那条提醒就先换更短的核心词重试，不要当成"当期无新发"报给用户**。

**读 `warnings` 数组**：日级日期目前只有 arXiv 提供，所以本轨只给 arXiv。若你额外加了
crossref / openalex 等源，脚本会提醒它们在窗口下必然 0 命中——那是**源不给日期**，
不是"该源当期无新发"，不可写成后者。

**F4 时间窗为空时的处理**：窗口内确实没有新发是正常结果（arXiv 有公告排期，当天上午常为 0）。
如实标"今日自动轨 0 篇新发"，**不要**为了凑数扩大窗口或去掉时间窗——那是把旧文章当新发。
先按上面两条自查：是不是查询词太多（看 `warnings`）、是不是把不给日期的源也加进来了。

**C. 用户补充轨**（纯提示词层处理）：

- 用户粘的题录 / DOI / 链接 / 截图文本 → 用 LLM 抽取结构化字段（标题 / 作者 / 来源 / 链接 / 日期）。
- 抽取失败的字段标"待人工核对"（`parse_status=partial_fields` 或 `parse_failed`）、**绝不凭记忆补全**。
- 来源标签固定为 `用户补充`，**不可谎称"自动检索"**（违反红线 2 中文缺口提示机制）。

**网络降级**：若 `network_status=offline` 或所有源全 timeout（F2）、或脚本异常退出 / 不存在（F1/F10），走「降级路径」（见「降级矩阵」段）——只跑用户补充轨、抢发检测整段省略、顶部 banner 显式声明。

### 第 3 步 · 三段式陈列（停点 2 ⏸）

把 A + B + C 整合成三段式产物**预览**，呈给用户，**停下**等确认才落盘：

```text
╔══ 📋 今日概览 ═════════════════════
║ RQ：<一句话>
║ 时间窗：今日 / 最近 N 天
║ 数据源覆盖声明（逐源命中数：arXiv / Crossref / OpenAlex / Semantic Scholar / 用户补充）
║ 中文缺口提示原文（英文库没检索到 ≠ 没人研究过——本次未纳入中文库自动检索）

╠══ 🚨 抢发检测 ════════════════════
║ 已发相关文献 X 篇（来自 search.py 全源）
║ 每条：标题 / 作者 / 年份 / DOI / 概念比对（5 维布尔 + 重叠维数）/ 高|中|低徽章
║ 顶部陈列标准 + 「是否仍可做」的判断归用户与导师

╠══ 📰 新发泛读 ════════════════════
║ [arXiv 自动轨] 今日 / 最近 N 天，Y 篇
║ [用户补充轨] 用户粘进来的，Z 篇
║ 每条：标题 / 作者 / 来源徽章 / 链接 / 高|中|低徽章

╚══ 🎯 下一步行动 ══════════════════
 ╠ 抢发命中（高相关 ≥ 1）→ 建议进入 /paper-topic 重审 RQ？
 ╠ 高相关新发 ≥ 1 → 建议进入 /paper-search 深检？
 ╠ 全部低相关 → 建议照常推进研究？
 ╚ 中文缺口 → 建议进入 /paper-search 中文引导轨？
 （程序化陈列、非 AI 拍板；每条疑问句式）

⏸ 等待确认：今日日报落盘 daily/
（回复「确认」写 MD + HTML + JSON 留痕；
 或：增删抢发对照条目 / 修正泛读标签 / 调整时间窗重跑）
```

### 第 4 步 · 落盘 + 留痕（非停点，执行即完）

用户确认后写三个文件：

| 文件 | 内容 |
|---|---|
| `daily/YYYY-MM-DD.md` | 三段式 Markdown（给人读、给 grep） |
| `daily/YYYY-MM-DD.html` | 同内容 + 样式（复制 `references/报告样式模板.html` 为起点、替换占位符） |
| `daily/.paper/YYYY-MM-DD.json` | 留痕：输入 RQ / 时间窗 / 双轨检索参数 / 抢发命中 + DOI / 新发条目 + DOI / 覆盖声明 / 高/中/低判定依据 / 用户补充轨原文 |

**目录自建约定**：`daily/` 是 infra 跨阶段命令的产物目录、**不在 `/paper-init` 建的研究项目骨架里**（与 init/help/doctor 同属工作台辅助设施、不预建；详见 paper-init「两种布局」段末的设计说明）。落盘前先 `test -d daily/ || mkdir -p daily/.paper/`——目录不存在则自建（含 `daily/.paper/` 留痕子目录）；自建后随 git 入库（不写进 `.gitignore`，与 `.paper/` 同款约束）。

**落盘位置规则**：在 `/paper-init` 建的标准项目目录里运行 → 落 `<项目根>/daily/`；在普通目录里运行（无标准骨架）→ 落当前目录的 `daily/`、并向用户说明位置（与 outline/draft 等研究命令的"目录约定是增强不是依赖"原则一致）。

**入库约定**：三个文件均随 git 入库（CLAUDE.md·硬规则 5：`.paper/` 留痕绝不写进 `.gitignore`）。

**同日冲突处理**：同一日期已有产物 → 询问"覆盖 / 追加版本号 / 取消"，默认 **追加版本号**（`YYYY-MM-DD-v2.md`）。不自动覆盖。

## 产物格式

三产物的完整模板见：
- `references/日报产物模板.md`：MD 五段式模板（含完全降级版）+ JSON 留痕 schema（全字段）+ HTML 结构骨架。
- `references/报告样式模板.html`：HTML 样式权威（复用 paper-topic / paper-logic 的四层语义色系统 + daily 专属的 `.scoop-alert` / `.digest-item` / `.action-card` / `.fallback-banner` 四个语义类）。

**关键约束**：
- **概念比对维度固定 5 项**：对象 / 干预 / 结果 / 场景 / 方法（对齐 PICO + 方法维）。
- **高 / 中 / 低判定**：≥3 维重叠=高、2 维重叠=中、≤1 维重叠=低。每条必须旁标重叠的具体维度与维数，不空泛打标签。
- **每段顶部固定陈述本段判定标准**，让用户读得懂为什么这样归类。
- **HTML 与 MD 内容必须一致**（同一份 JSON 渲染出两份）。
- **禁用语扫描**（生成后必跑）：`最相关` / `最重要` / `必读` / `Top` / `最该读` / `推荐阅读` / `已被抢发` / `做不了了` / `晚了` / `没有意义` 任一命中需返工。

## 降级矩阵（F1-F10）

| 场景 | 触发条件 | 降级行为 | 用户可见提示 |
|---|---|---|---|
| **F1. search.py 不存在** | `skills/paper-search/scripts/search.py` 缺失 | 完全降级，仅用户补充轨；抢发检测整段省略 | 顶部 banner：`⚠️ 自动轨不可用：检索脚本缺失。今日仅运行用户补充轨。建议用 /paper-doctor 体检。` |
| **F2. 网络全断** | search.py 返回 `network_status=offline` 或所有源全 timeout | 同 F1 | `⚠️ 今日自动轨不可用：网络不通。今日仅运行用户补充轨。` |
| **F3. 部分源失败** | search.py 返回 `network_status=degraded`（取值只有 `ok` / `degraded` / `offline`） | **不降级**，覆盖声明段如实标各源命中数与状态 | 概览段：`arXiv: ✅ 25 / Crossref: ⚠️ timeout / OpenAlex: ✅ 8` |
| **F4. 时间窗内 0 新发** | 自动轨返回 0 条 | **不扩窗、不去掉时间窗**；先查 `warnings`（词太多 / 加了不给日期的源），排除后如实报 0 | 自动轨顶部：`今日 arXiv 自动轨 0 篇新发`（若 warnings 非空，一并原文呈现） |
| **F5. 用户补充解析失败** | LLM 无法从用户粘的文本提取结构化字段 | 标 `parse_status=parse_failed`、原文保留到 `user_supplement_raw`、**绝不凭记忆补全** | 该条：`[解析失败] <原文> — 待人工核对` |
| **F6. 用户补充为空** | 用户在第 1 步 ③ 留空 | **不降级**，自动轨照跑，标"今日无用户补充" | 新发泛读段：`[用户补充轨] 今日无补充` |
| **F7. RQ 缺失** | 用户未提供、且 `topic/` 也无交棒 | **不进入第 2 步**，反问"想关注什么方向？" | 直接询问，不输出空日报 |
| **F8. 概念块拆分失败** | LLM 无法从模糊 RQ 拆出概念块（如"我想看看 AI 研究"） | 反问"想细化哪一面？（对象/方法/场景任选）"、**不替用户拍板概念块** | 引导式追问 |
| **F9. 文件冲突** | 同日已有产物 | 询问"覆盖 / 追加版本号 / 取消"，默认追加版本号 | `已存在 daily/YYYY-MM-DD.md。选: [覆盖 / 追加为 v2 / 取消]?` |
| **F10. search.py 报错（非网络）** | 脚本异常退出、JSON 解析失败 | 同 F1，完全降级到"仅用户补充轨" | `⚠️ 自动轨不可用：脚本异常退出（<错误码>）。今日仅运行用户补充轨。` |

**完全降级时（F1/F2/F10）产物结构收缩**：抢发检测整段省略、顶部插 `<div class="fallback-banner">` 醒目警示、补充轨照跑、行动段改为"是否先跑 /paper-doctor" + "用户补充有高相关 → 是否进 /paper-search 深检？"。完整降级版 MD 模板见 `references/日报产物模板.md` §1 末尾。

**错误恢复路径**：

| 错误 | 用户该怎么办 |
|---|---|
| F1（脚本缺失） | `/paper-doctor` 体检 → 重装 / 更新 paper-search |
| F2（断网） | 等网络恢复重跑；或仅依赖用户补充轨出当日报告 |
| F4（时间窗内 0 新发） | 先看 `warnings`：词太多就换 2-5 个核心词重试；加了不给日期的源就只留 arXiv。都排除后就是当期确实没有新发，照常出报 |
| F5（补充解析失败） | 用户重新格式化输入（每行一篇、用 DOI 或 arXiv ID 最稳） |
| F8（概念块拆分失败） | 回 `/paper-topic` 重审 RQ，把方向说清楚 |

**与 paper-search 降级路径的关系**：daily **直接复用、不另起一套**——`search.py` 的 `network_status` 字段是单一信号源、daily 直接读不做二次判断；失败时的"明确标注降级、不静默顶替"原则完全继承自 paper-search 红线 3 + paper-verify 代码层约束。用户从 search 切到 daily 时，失败语义不变。

## 与 PaperFlow 的关系（借鉴 vs 不借鉴）

| PaperFlow 能力 | daily 是否借鉴 | 理由 |
|---|---|---|
| daily 拉取 + 时间窗 | ✅ 借鉴（自动轨） | 抢发时效感的核心 |
| 阅读报告产物形态 | ✅ 借鉴（HTML+MD 双产物） | 与本仓库 17 个 skill 同构 |
| 多源输入合并 | ✅ 借鉴（用户补充轨） | 契合真实研究者多渠道习惯 |
| 相关度信号 | 🟡 部分借鉴（高/中/低标签、不打分） | 守"不排序"底线，方案 B |
| 个性化 profile 建模 | ❌ 不借鉴 | 违反"AI 不替用户判研究价值" |
| 评分排序 + Top-N | ❌ 不借鉴 | 直接违反红线 1 |
| 漂移检测 | ❌ 不借鉴 | 同上，留 paper-rank Phase 2+ |
| feedback 学习 | ❌ 不借鉴 | 同上 |
| 本地 wiki + 引用问答 | ❌ 不借鉴 | 与本仓库 .paper/ 留痕体系定位不同 |
| GUI + Feishu webhook | ❌ 不借鉴 | skill 是提示词层、不接工程 |

想要 PaperFlow 那种完整评分排序 + 漂移检测？可期 Phase 2+ 的 `paper-rank`——daily 守"不排序"底线、rank 提供"排序但明示非价值判断"，由用户选。Phase 2+ 也可加中文新发自动轨（知网 RSS / 万方新刊）、`paper-weekly` 周报聚合、PaperFlow 桥接（跑完 `paperflow daily` 把输出粘到 daily 补充轨，零工程改动）。

## 越界触发（走三段式转化或拒绝）

- "帮我挑今天**最该读**的 3 篇" → 越界（违反红线 1 不排序）。三段式转化："daily 只陈列客观相关度线索、不替你挑最该读。我可以把今日全部新发陈列、相关度标签照打、但读哪篇由你定。继续吗？"
- "这个方向**已经被抢发了对吧**？" → 越界（违反红线 2 不下定论）。三段式转化："daily 不下'已被抢发'定性词。我可以拉全源已发相关文献、客观陈列概念重叠维度、把'是否仍可做'留给你与导师。继续吗？"
- "今天 arXiv 哪篇**最重要**？" → 越界（违反红线 1）。三段式转化同上。
- "你帮我**编几篇**最近的新论文凑日报" → 拒绝（违反三条不变③不编造文献）。

## 交棒关系总览

**上游（读）**：
- `project.paper.yaml` → `discipline` / `language_pref` / `citation_style`（调整数据源与话术）
- `topic/` 下的 RQ 澄清记录（`/paper-topic` 交棒而来）→ RQ 起点
- 用户当轮直接提供 RQ / 想法 / 关键词 → 也可作为起点
- `skills/paper-search/scripts/search.py` → 抢发对照轨 + 新发自动轨的检索引擎（不改其源码）

**下游（写 + 推荐出口）**：
- `daily/YYYY-MM-DD.md` + `daily/YYYY-MM-DD.html` + `daily/.paper/YYYY-MM-DD.json`（三产物）
- 「下一步行动」段引导：`/paper-search`（深检某篇高相关）/ `/paper-topic`（抢发命中重审 RQ）/ `/paper-doctor`（自动轨不可用时排查环境）

## 测试与已知观察项

- **测试策略**：不写 pytest（与 paper-topic / outline / logic / disclose / review / abstract 同构）。行为验收靠人工跑过 `tests/paper-daily/` 的 8 场景清单 + 三档模拟脚本。
- **已知观察项（非 blocker）**：
  1. **无 pytest**：与同构的 7 个提示词型 skill 一致：无确定性逻辑可测，行为层靠模拟脚本人工验。
  2. **依赖 paper-search/scripts/search.py**：若 search.py 接口变更需同步——这是"复用而非自建"的代价。
  3. **日级时间窗只有 arXiv 支持**：`search.py --days N` 走 arXiv 原生 `submittedDate` 区间 + 按提交时间倒序，结果带 `date` 字段；其余源不返回日级日期，加进本轨会 0 命中（脚本在 `warnings` 里明说）。代价是窗口下走逐词 AND，查询词需控制在 2-5 个。
  4. **跨宿主验证未做**：Claude Code 侧人工验收过，第二宿主待跑。
  5. **中文新发的自动覆盖留缺口**：arXiv 一轨不覆盖中文新发，由用户补充轨 + 中文缺口提示原文交回用户——与 paper-search 中文引导轨同款思路，Phase 2+ 可加中文新发自动轨。
