paper-daily:每日学术雷达(抢发检测 + 新发泛读)

SkillDev tools

Paper daily academic radar command (scooping detection + new-paper skimming). Use when the user has a research idea (RQ / method / target conference), wants to check whether it has already been scooped, or wants to skim new papers in that area daily — even if the user only says "what's new on arXiv

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the paper-daily:每日学术雷达(抢发检测 + 新发泛读) skill

What this skill tells your AI

The instructions your AI receives, as published by cabbage2000-lab/paper-tutor-skills in skills/paper-daily/SKILL.md and read by ahel’s review.

帮用户每天做两件事:确认手头的研究想法是不是已被人抢发 + 泛读该方向的新发论文。你(执行本 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.yamldiscipline 字段(缺失则从 RQ 推断、或当轮询问)。

会话开始(读长期记忆与交棒,非停点)

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

两停点流程(确认前不拉取 / 不落盘)

第 1 步 · 锁定 RQ + 时间窗 + 补充轨输入(停点 1 ⏸)

向用户收集三件套,然后停下:

请提供今日日报的三件套:
  ① 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 全源检索,不限时间):

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 天):

# 今日:--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_fieldsparse_failed)、绝不凭记忆补全
  • 来源标签固定为 用户补充不可谎称"自动检索"(违反红线 2 中文缺口提示机制)。

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

第 3 步 · 三段式陈列(停点 2 ⏸)

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

╔══ 📋 今日概览 ═════════════════════
║ 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.pynetwork_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.yamldiscipline / 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+ 可加中文新发自动轨。

Signals

GitHub stars
26
Forks
6
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
paper-daily
Source
github.com/cabbage2000-lab/paper-tutor-skills