Imported from South-Twilight/speech-paper-daily (
AGENTS.md). Install upstream withnpx skills add South-Twilight/speech-paper-daily. Copyright stays with the author.
papers 项目规则
本项目实现每日语音/音频论文 Obsidian pipeline。运行时规则以本文件、references/workflow.md、项目内 skill 和 scripts/ 为准。
目录约定
references/workflow.md:实际运行手册,包含阶段命令、文件流转、恢复策略和验证命令。scripts/:可执行脚本,优先使用标准库;PDF 文本抽取可兼容本机已有的pdftotext、PyMuPDF 或 pypdf,但不得要求全局安装新依赖。tests/:标准库unittest回归测试;测试数据必须使用临时目录,不能写入 Obsidian Vault 或仓库运行产物。skills/:项目内 Codex skills。只放和本项目强绑定的 skill 草稿、参考资料和 eval 提示。config/:本地配置。规范文件名是obsidian.yaml;历史拼写obisidian.yaml只做兼容。references/:执行手册和后续设计说明。- 运行产物写入
/tmp/papers_YYYYMMDD/,不要写回仓库。
Pipeline
固定顺序:
collect:只抓 arXiv 元数据,不下载 PDF。filter:按标题和摘要筛选相关论文,形成收录名单,并只下载入选 PDF。review:主 Agent 调度,每篇论文使用独立子 Agent 精读 PDF 文本;子 Agent 将单篇结果写入当前review_runs/<run_id>/results/,尚未完成的论文只在 manifest 中保持pending_review。validate:finalize_reviews.py对照 schema v2 manifest 原子合并终态结果,生成终态历史reviewed.jsonl、当前快照reviewed.json和completion.json。render:生成obsidian-daily.md。write:安全写入 Obsidian Vault。wiki-sync:write 成功后,将 schema v2 completion、reviewed snapshot 和日报交给D:\LLM-Wiki;只同步实际发布论文并由 Codex 创建/更新概念。deep-read:可选后置阶段;只处理reviewed.json中status=ready && kept=true && score >= 8的论文,生成独立 Obsidian 精读笔记,在日报补充精读链接,并刷新论文笔记目录页;完成后可增强 LLM-Wiki 中同一 arXiv paper 页面。
规格入口
- 项目级规则:
AGENTS.md。 - 执行流程:
references/workflow.md。 - Review 阶段 Agent 规则:
skills/speech-paper-ready-reviewer/SKILL.md。 - Deep-read 阶段 Agent 规则:
skills/speech-paper-deep-reader/SKILL.md。 - 结构化数据和渲染/写入行为:
scripts/中的脚本实现与 validator。
工程纪律
- 不伪造论文内容、作者机构、实验结果或代码链接。
- PDF 下载失败、文本抽取失败、作者机构缺失必须结构化记录,不能静默丢弃。
ready论文必须满足 validator;不满足则进入needs_manual_review或failed。reviewed.jsonl只保存完成的终态记录;pending_review只允许存在于 manifest,不得写入 JSONL、JSON、日报或 Vault。pending_review只表示等待 Agent 执行,不等于需要人工介入;finalize、validate 和 render 必须拒绝任何未解决的pending_review。- 每次 review 必须创建独立的
review_runs/<run_id>/manifest.json、results/<arxiv_id>.json和最终completion.json;不得依赖子 Agent 最终消息人工复制结果。 needs_manual_review只能用于 Agent 已检查 manifest 指定证据,或文件系统能够证明输入证据硬缺失后仍需要人工处理的论文;必须记录manual_review_required=true、合法review_origin、review_basis、evidence_digest、evidence_used和枚举型manual_blocker_code。- 等待调度、Agent 超时、结果文件缺失或未合并都属于
pending_review,不得改写成needs_manual_review。 - 正式 validate 必须证明
selected IDs = manifest IDs = expected result IDs = actual terminal result IDs;缺记录、额外记录、过期证据或未完成状态都不能进入 render/write。 - manifest 和 completion 使用 schema v2;旧 v1 运行产物不得继续 render、write 或 deep-read,必须重新 finalization。
- manifest、completion、render、write 和 deep-read queue 必须携带并验证同一个真实日历日期;日期或文件摘要不一致时不得继续。
- render、write 和全部 deep-read queue 操作必须验证
completion.json与selected_papers.json、reviewed.json的摘要一致;没有完成凭证不得继续。 - render 只在日报推荐
status=ready && kept=true且满足动态展示阈值的论文:ready 不超过 20 篇时为score >= 6,超过 20 篇时为score >= 7;该规则只限制日报展示,不删除或改写正式 review 产物,也不改变 deep-read 的独立score >= 8门槛。 - 写入 Obsidian 时直接覆盖
YYYY-MM-DD-论文推荐.md主文件,不再保留.generated.md旁路。 - LLM-Wiki sync 只允许读取 schema v2
completion.json、匹配的reviewed.json和obsidian-daily.md;不得使用已弃用的 dailypaper 产物。 - wiki-sync 必须在 write 成功后运行。脚本只完成 receipt 验证和确定性导入;主 Agent 还必须按
D:\LLM-Wiki\docs\workflows\papers-sync.md完成概念整合并确认 LLM-Wiki validator 无 warning,才能把整次论文任务报告为完整完成。 - wiki-sync 失败不能回写、修补或降级 papers 的 completion/reviewed 数据;保留已发布日报,报告 pending sync 并从 LLM-Wiki receipt 恢复。
deep-read不修改reviewed.jsonl、reviewed.json或评分;证据缺失时记录到missing_evidence,不能扩写日报字段来伪造长笔记。- deep-read 仅使用完整 queue 时执行全量同步;显式指定
--notes或--notes-dir时只按arxiv_id增量合并,不能删除其他精读链接。 - Deep-read 笔记写入时只更新
PAPER_DEEP_READ_AUTO_START/END自动区块;已存在但没有 marker 的笔记不能覆盖。 论文笔记目录页由generate_mocs.py维护;只覆盖带自动生成标记的 MOC,遇到手写同名目录页必须跳过并结构化报告。- 修改脚本后至少运行
python -m py_compile scripts/*.py和一次本地 dry-run 验证。
语言规范
- 项目文档、skill 说明、Agent 输出、论文推荐正文、Obsidian Markdown 和最终汇报默认使用中文。
- 只在必要时保留英文:论文标题、模型名、方法名、数据集名、指标名、专业术语、字段名、状态值、脚本名、路径、命令、URL、tag 和 Obsidian 链接。
- 不要把整段项目说明、评语、摘要、趋势总结或人工处理原因写成英文。
summary、review、architecture、innovation、training、results、why等面向阅读的字段必须以中文为主,正文句子里只保留必要的专名、缩写、指标名和链接,不能把英文摘要直接搬进来。keywords是检索字段,可以保留英文或中英混合,不按正文中文化要求处理。
红线
- 不修改
.env、密钥、token、CI/CD。 - 不删除用户文件、目录或 git 历史。
- 不执行
git push、git rebase、git reset --hard。 - 不安装全局依赖或修改系统配置。