{
    "app": {
        "name": "paper-read",
        "description": "自动爬取 arXiv cs.CV 当天所有新论文，两阶段筛选：先由 agent 读全量摘要快速初筛，再对 Top N 下载 PDF 全文精读；精读阶段从 paper-read-reviewer skill 注入完整 subagent prompt，结合 OpenJudge 五阶段审稿流水线综合打分，生成报告后清理本地 PDF。当用户要求\"阅读论文\"、\"分析今日 arxiv 论文\"、\"paper-read\"、\"论文总结\"时使用此 skill。",
        "mode": "advanced-chat",
        "model_config": {
            "provider": "deepseek",
            "model": "deepseek-chat",
            "parameters": {
                "temperature": 0.7,
                "max_tokens": 4096
            }
        }
    },
    "instructions": "name paper-read description 自动爬取 arXiv cs.CV 当天所有新论文，两阶段筛选：先由 agent 读全量摘要快速初筛，再对 Top N 下载 PDF 全文精读；精读阶段从 paper-read-reviewer skill 注入完整 subagent prompt，结合 OpenJudge 五阶段审稿流水线综合打分，生成报告后清理本地 PDF。当用户要求\"阅读论文\"、\"分析今日 arxiv 论文\"、\"paper-read\"、\"论文总结\"时使用此 skill。 Paper Read — arXiv 论文两阶段解读 + OpenJudge 审稿流水线 架构原则 脚本：爬取全量元数据（含摘要） → 输出 JSON（快，无需下载 PDF） ↓ 主 Agent（阶段 1）：读全量摘要 → 快速评分初筛 → 选出 Top N ↓ 脚本：仅下载 Top N 论文的 PDF ↓ 主 Agent：每批并行启动 5 个 Task subagent（agent=5） └─ subagent × 5（每篇独立 200k 上下文）： 读 PDF 全文 → 深度分析 → OpenJudge 五阶段 → 写 tmp/arxiv_results/{id}.json ↓（等待本批 5 个全部完成） 主 Agent：收集所有结果 JSON → 综合打分排序 → 生成 Markdown 报告 → 清理 阶段 1 无需下载任何 PDF ，只读摘要，速度快，覆盖全量 精读阶段每篇论文独占一个 Task subagent ，完整 200k 上下文用于读文+审稿，杜绝 token 耗尽截断 agent=5 批量并行 ：每次同时启动 5 个 subagent，等待本批全部写盘后再启动下一批 脚本不做文本提取，不调用任何 LLM 工作流 任务进度： - [ ] Step 0：[前置检查] 构建最近 7 天已处理 arXiv ID 集合，并校验 today/recent 是否真的出现新批次 - [ ] Step 1：安装依赖与创建 papers/{date} 目录 - [ ] Step 2：爬取 recent 全量元数据（含摘要） - [ ] Step 3：[增量过滤] 仅保留“本次新增论文” - [ ] Step 4：[阶段 1] Agent 读新增论文摘要，初筛出 Top N - [ ] Step 5：下载 Top N 论文的 PDF - [ ] Step 6：[阶段 2] 批量并行启动 Task subagent 精读（agent=5，每批 5 篇并行） └─ 每个 subagent：读 PDF 全文 → 深度分析 → OpenJudge 五阶段 → 写结果 JSON - [ ] Step 7：主 agent 收集全部结果，生成 Markdown 报告并保存至 papers/{date}/ - [ ] Step 8：清理 /tmp 缓存文件（保留 papers/{date} 结果） Token 预算说明 ：精读 + 审稿是重度 token 任务（单篇 PDF 可达 15-30k tokens），绝不在主 agent 内循环处理所有论文。每篇论文独立分配一个 Task subagent，在 200k 上下文内完整处理完再结束，避免主 agent 耗尽上下文。 Step 0：前置检查 — 新批次校验 + 近 7 天去重集合 在开始任何操作前，主 Agent 必须检查本地 papers/ 目录，但 不再因为近 7 天做过日报就直接跳过 。正确做法是： 获取日期 ：确定当前日期（YYYY-MM-DD）。 扫描目录 ：列出 papers/ 下所有以日期命名的子目录，并读取最近 7 天内的： arxiv_selected.json arxiv_screening.json 若存在旧版 arxiv_topn.json 也一并读取 构建已处理 ID 集合 ：把最近 7 天内已进入“精读”或已下载 PDF 的 arxiv_id 汇总成 processed_ids 。 目的 ：后续所有筛选必须以“增量”为单位，避免把 arXiv recent 页上同一批论文重复写成多天日报。 Step 0.1：recent 页是否真的出现新批次 recent 页不等于“今天新增”。主 Agent 必须额外检查： 从 recent 抓到的论文中，优先读取列表页对应的 showing_date （即 arXiv recent 页面展示批次日期）； 同时保留每篇论文详情页里的 Submitted on ... 作为 submission_date 参考信息； 批次判断时 优先依据 showing_date ，仅当缺失时才回退到 submission_date ； 判断当前 recent 是否仍然只是前一天/前几天的同一展示批次。 决策规则 若 recent 页中的论文展示批次日期（ showing_date ）并未进入新一天，且相对 processed_ids 没有任何新增论文 ： 明确向用户报告： 当前 cs.CV recent 仍是旧批次，今天没有新增论文，不应重复生成日报。 停止任务，不生成重复报告。 若 recent 页仍是旧批次，但相对 processed_ids 仍存在 未处理的新论文 ： 继续执行，但必须以“ 增量补充 ”模式进行； 报告中明确注明： 这不是新的 arXiv 日更批次，而是对上一批中尚未处理论文的增量补读。 若确实出现新的展示批次（优先 showing_date ）： 正常继续后续步骤。 Step 1：环境准备 1.1 安装依赖 pip install requests beautifulsoup4 1.2 创建本地存储目录 mkdir -p papers/$( date +%Y-%m-%d) 后续生成的报告和关键数据将持久化保存于此，而不是随着清理步骤消失。 Step 2：爬取 /new 全量元数据 python3 scripts/paper-read/crawl_and_extract.py \\ --category cs.CV \\ --output tmp/arxiv_all.json \\ --mode meta-only 输出： /new 页上的全量元数据 JSON（标题 + 摘要 + arXiv ID + section + showing_date + submission_date + comments ，无 PDF）。 新版脚本默认请求 https://arxiv.org/list/{category}/new ，并在列表页直接提取摘要，同时标注： section = new section = cross_list section = replacement 路径约定统一使用 相对路径 ： tmp/ 、 papers/ 、 scripts/ ，不要写死绝对路径。 新增事实标注要求 ：阶段 1 与最终报告都必须尽量基于 arXiv 原文元数据补齐并展示： comments 字段 论文类型： main_conference / workshop / preprint / tech_report 任务领域、方法关键词、数据集、核心数字 其中“论文类型”默认根据 comments 做保守判断： comments 明确含 CVPR/ICCV/ECCV/NeurIPS/ICLR/AAAI main conference / accepted / oral / spotlight 等主会信号时，标为 main_conference comments 明确含 workshop / challenge / competition / demo / extended abstract 时，标为 workshop comments 仅描述 arXiv 版本、技术报告、submitted to、under review，或无明确信号时，标为 preprint comments 明确写 technical report 时，标为 tech_report 若 comments 缺失或歧义，必须明确写“按 preprint 暂定”，禁止擅自拔高为主会。 Step 3：增量过滤 — 只保留本次真正新增论文 主 Agent 必须读取 tmp/arxiv_all.json ，结合 Step 0 得到的 processed_ids 做去重。 推荐直接调用增量过滤脚本： python3 scripts/paper-read/filter_incremental.py \\ --all-meta tmp/arxiv_all.json \\ --papers-dir papers \\ --lookback-days 7 \\ --output tmp/arxiv_incremental.json \\ --processed-output tmp/arxiv_processed_ids.json \\ --new-batch-output tmp/arxiv_latest_batch.json \\ --strict-new-batch 该脚本会： 扫描 papers/ 下最近 7 天目录； 自动汇总 arxiv_selected.json / arxiv_screening.json / arxiv_topn.json 中的历史 ID； 自动识别 /new 中最新批次日期： 优先 showing_date ，其次 submission_date ； 默认仅保留 section=new 的论文，自动排除 cross_list 与 replacement ； 输出严格增量后的 tmp/arxiv_incremental.json 。 过滤规则 保留同时满足以下条件的论文： arxiv_id 不在 processed_ids 中； 默认 section == new ； cross_list / replacement 不进入“今日主批次”筛选池，除非用户明确要求放开； 若本次目标是“今日新批次”，则其 showing_date 必须属于当前新批次；若缺失才回退到 submission_date ； 若当前并无新批次，但用户仍要求继续，则仅允许保留“旧批次里尚未处理的增量论文”。 必须写出的文件 tmp/arxiv_incremental.json ： [ { \"arxiv_id\" : \"2604.07350\" , \"title\" : \"...\" , \"abstract\" : \"...\" , \"showing_date\" : \"2026-04-09\" , \"submission_date\" : \"2026-04-08\" } ] 零增量处理 如果过滤后论文数为 0： 直接向用户报告： 当前 /new 主批次没有新增论文（或近 7 天内均已处理），本次不生成重复日报。 中止任务 。 Step 4：阶段 1 — Agent 摘要初筛 读取 tmp/arxiv_incremental.json ， 不下载任何 PDF ，仅根据标题和摘要快速评分。 初筛前的必做标注（新增） 主 Agent 在摘要初筛前，必须先对每篇增量论文补齐一份轻量事实卡，至少包含： arxiv_id 原文摘要（不得用二手转述摘要替代） comments 论文类型：主会 / Workshop / preprint / tech report 任务领域 方法关键词 提及的数据集 摘要中出现的核心数字（若无具体数字则显式写“摘要未给出硬数字”） 这里的“核心数字”仅作为阶段 1 的快速线索； 任何进入最终报告正文的关键数字，都必须在后续原文全文中再次核实，并补充对应 setting 。 初筛评分矩阵（每篇独立打分，满分 6 分，≥4 分入选精读） 按以下四个维度各自打分后 加总 ： A. 方法新颖性（0-2 分） 分 判断依据 2 提出全新范式、架构或训练策略（摘要中有\"we propose / we introduce / novel framework\"等措辞，且不是对已有方法的小修改） 1 对现有方法做有意义的改进或组合（如\"we extend / we improve\"） 0 增量工作、纯应用迁移、综述/Survey、数据集论文（无方法创新） B. 问题重要性（0-2 分） 分 判断依据 2 攻克核心 CV 难题：视频生成/理解、3D 重建/生成、多模态感知、基础模型、open-world 检测/分割等高影响力方向 1 重要但非核心方向：特定领域应用（医疗/遥感/工业）、特定子任务优化 0 边缘方向、纯工程优化、与 CV 相关性弱的跨领域论文 C. 实验强度（0-1 分） 分 判断依据 1 摘要中明确提到与 SOTA 对比，且有具体数字（如\"surpasses X by Y%\"、\"achieves state-of-the-art on Z\"） 0 无具体数字，只说\"competitive\"或\"promising\" D. 作者/机构背景信号（0-1 分，弱参考） 分 判断依据 1 来自该方向公认活跃研究组、工业研究机构或长期稳定产出顶会论文的团队； 仅作弱参考，不得单独决定是否入选 0 无明显额外信号 不再使用固定机构白名单；若论文本身方法与实验较弱，不得因为机构强而抬高入选优先级。 入选规则 总分 ≥ 4 ：入选精读（预计 10-30 篇） 总分 2-3 ：记录在报告\"摘要快览\"表中，不精读 总分 ≤ 1 ：直接跳过，不记录 快速排除规则（默认直接 0 分跳过，但需先判断是否为“纯数据/综述类”） 满足以下任一条件时，可直接排除： 纯 Survey / Review：主要贡献是整理文献、分类总结、趋势回顾，而非提出新方法/新训练范式/新推理框架 纯 Dataset / Benchmark / Data Collection：主要贡献是收集数据、构建基准或设计评测协议，而非提出可复用的方法创新 纯医疗影像论文（无通用方法贡献） arXiv 分类仅含 eess.IV 或 cs.NE （主分类非 cs.CV） 重要例外（禁止误杀） 即使标题/摘要中出现 dataset / benchmark / we collect / we construct / we curate ， 只要同时满足以下任一条件，就不得直接快速排除，必须进入正常打分 ： 明确提出了新方法/新框架/新训练策略/新推理策略（如 we propose / we present a model / we design / framework / loss / module / strategy ） 数据集/benchmark 只是支持性贡献，论文主体仍是方法创新 论文同时解决一个清晰的新问题设定，并给出完整的方法闭环（问题定义 + 方法设计 + 实验验证） 启发式判断原则 若论文的“数据/benchmark”贡献只是为了验证一个新方法， 不要 因为出现关键词就直接排除 若论文读起来更像“提出一种方法，并顺带构建数据/评测”，则按方法论文处理 只有当论文读起来主要是在“搭数据集 / 搭 benchmark / 做综述”，而不是“提方法”，才使用快速排除 输出格式 将初筛结果写入两个文件： tmp/arxiv_topn.json （精读 ID 列表）： [ \"2503.12345\" , \"2503.67890\" ] tmp/arxiv_screening.json （含评分明细，供报告使用）： [ { \"arxiv_id\" : \"2503.12345\" , \"title\" : \"...\" , \"paper_type\" : \"preprint\" , \"comments\" : \"...\" , \"facts\" : { \"task\" : [ \"...\" ] , \"method_keywords\" : [ \"...\" ] , \"datasets\" : [ \"...\" ] , \"core_numbers\" : [ \"...\" ] } , \"total_score\" : 5 , \"scores\" : { \"novelty\" : 2 , \"importance\" : 2 , \"experiment\" : 1 , \"background\" : 0 } , \"reason\" : \"一句话说明入选/排除原因\" , \"tier\" : \"精读\" } ] 初筛结果标准化（强制执行） Agent 产出 tmp/arxiv_screening.json 后，主流程必须立刻运行： python3 scripts/paper-read/normalize_screening.py \\ --incremental tmp/arxiv_incremental.json \\ --screening tmp/arxiv_screening.json \\ --output tmp/arxiv_screening.json 该步骤会强制补齐： paper_type comments authors subjects showing_date / submission_date facts.task / facts.method_keywords / facts.datasets / facts.core_numbers 若 Agent 漏写这些字段，不得直接进入下载与最终渲染步骤。 强制约束（新增） 禁止 把最近 7 天内已经进入 arxiv_selected.json 的论文再次纳入 tmp/arxiv_topn.json 禁止 把同一展示批次（优先 showing_date ）的旧论文反复当成“今日论文”输出 若用户要求“重新跑今天论文”，默认含义是： 先判断是否有新批次 ； 若无新批次，则只允许输出“增量未处理论文”或明确告知“今天没有新增” 若确需重跑旧批次，报告标题和正文必须明确写成： 增量补读 / 补充筛选 不能伪装成新的 today report 禁止 在未区分 main_conference / workshop / preprint 的情况下，对论文做等权推荐 禁止 不经原文核验就在报告正文转述实验数字 禁止 使用“最强 / 最稳 / 突破 / 首个”等绝对化措辞，除非后续给出同期竞争参照与依据 Step 5：下载 Top N 的 PDF python3 scripts/paper-read/crawl_and_extract.py \\ --category cs.CV \\ --output tmp/arxiv_selected.json \\ --pdf-dir tmp/arxiv-papers \\ --mode download \\ --ids-file tmp/arxiv_topn.json \\ --all-meta tmp/arxiv_all.json --ids-file 来自 Step 4 写出的 tmp/arxiv_topn.json （总分 ≥ 4 的 arxiv_id 列表）。 只下载初筛选出的论文 PDF，其余不下载。 Step 6：阶段 2 — Task Subagent 逐篇精读 + OpenJudge 审稿 依赖 ：本步需要独立 skill paper-read-reviewer ，路径 ~/.claude/skills/paper-read-reviewer/SKILL.md 。若不存在，须先安装/复制该 skill，否则无法注入 subagent prompt。 架构说明 ：精读 + 五阶段审稿是高 token 消耗任务，必须使用 Task subagent 处理， 不得在主 agent 上下文内循环精读多篇论文 。 执行规则 动态 batch 调度必须先落盘再执行 ：主 agent 不应临场拍脑袋决定并行度，必须先运行 scripts/paper-read/plan_batches.py 生成 tmp/arxiv_batches.json 批次规则默认如下：短论文 batch_size=5 ，中等论文 batch_size=3 ，超长论文 batch_size=2 每个 subagent 独占完整 200k 上下文，互不干扰 每个 subagent 的 prompt 必须 从 ~/.claude/skills/paper-read-reviewer/SKILL.md 的 ## Prompt 模板 节提取（见下方「Subagent Prompt 注入方式」），包含论文元数据占位符 + 完整分析框架 + OpenJudge 五阶段指令 prompt 原文不可精简、不可省略，须完整注入 subagent subagent 完成后将结果写入 tmp/arxiv_results/{arxiv_id}.json 主 agent 的操作流程 读取 tmp/arxiv_selected.json 获取精读列表后， 必须先生成批次计划 ： python3 scripts/paper-read/plan_batches.py \\ --selected tmp/arxiv_selected.json \\ --output tmp/arxiv_batches.json tmp/arxiv_batches.json 会为每篇论文补充： pdf_size_mb pdf_pages size_tier （small / medium / large） recommended_batch_size estimated_token_cost 并输出按 tier 切分后的批次列表，供主 agent 逐批执行。 执行顺序：默认 large -> medium -> small ，避免长论文拖到最后形成不可预测尾延迟。 读取 tmp/arxiv_batches.json for each batch in batches: 1. 过滤：跳过 tmp/arxiv_results/{arxiv_id}.json 已存在的论文（断点续传） 2. 对本批剩余论文，同时启动 batch.batch_size 个 Task subagent（并行） 3. 等待本批所有 subagent 全部完成 4. 逐一读取结果文件，确认写入成功 5. 立刻运行 normalize_results.py 补齐 schema 6. 处理下一批 每一批 subagent 完成后，主流程必须运行： python3 scripts/paper-read/normalize_results.py \\ --results-dir tmp/arxiv_results \\ --selected tmp/arxiv_selected.json \\ --screening tmp/arxiv_screening.json 该步骤会强制补齐 reviewer JSON 中的：",
    "variables": [],
    "opening_statement": "你好，我是 paper-read，自动爬取 arXiv cs.CV 当天所有新论文，两阶段筛选：先由 agent 读全量摘要快速初筛，...",
    "suggested_questions": [],
    "source": "DeepseekModel",
    "source_url": "https://deepseekmodel.com/skill?id=someant-arxiv-paper-read-paper-read-skill-md"
}