| name | paper-notion-reader |
| description | 阅读学术论文 PDF,生成结构化中文论文笔记,围绕论文追问和修订笔记,并将论文笔记、PDF 与索引属性归档到 Notion 论文数据库。 | Read academic paper PDFs, generate structured Chinese paper notes, discuss and revise notes, and archive notes, PDFs, and index properties into a Notion paper database. |
Paper Notion Reader
当用户正在处理学术论文,并需要创建 Notion 论文数据库、阅读 PDF、生成结构化笔记、追问讨论、修订笔记或上传归档时,使用本 skill。
Notion 操作默认使用 /Users/bytedance/.local/bin/ntn;公开环境可设置 NTN_BIN=/path/to/ntn,否则回退到 PATH 中的 ntn。Python 命令默认使用 conda run -n common python ...。
触发范围
用户提出以下需求时触发:
- 初始化、检查或维护 Notion 论文数据库。
- 阅读、精读、总结或分析学术论文 PDF;默认生成本地元数据 Markdown 和笔记 Markdown。
- 生成结构化中文论文笔记,并将元数据与正文分开保存。
- 解释论文的方法、数据、实验、结论、局限或启发。
- 将追问、纠错或启发写回已有论文笔记。
- 上传或归档论文笔记、PDF 和 Notion 数据库条目。
以下情况不要触发:
- 普通 PDF、OCR 或文档处理,除非用户明确进入学术论文阅读流程。
- 普通 Notion 页面或数据库管理,除非目标属于论文数据库流程。
- 泛泛找论文或文献检索,除非后续进入阅读、笔记、修订或归档。
首次给出论文 PDF 并要求“阅读、精读、总结、分析、帮我看下”等动作时,不得降级为仅聊天摘要;必须进入论文阅读流程并默认生成本地 *.paper-metadata.md 和 *.paper-note.md。只有用户明确要求“只要聊天总结”“不生成笔记”时,才可不生成笔记,并说明未使用 Notion 字段选项上下文。
工作流路由
执行前必须读取匹配的 command 文件。只有 command 指向共享规则,或确实需要共享规则时,才读取 references/。
| 用户意图 | 读取文件 | 共享规则 |
|---|
| 初始化 Notion 论文数据库 | commands/db-init.md | references/notion-workflows.md、references/command-pitfalls.md |
| 阅读/总结/分析 PDF 论文,默认生成 Markdown 笔记 | commands/paper-read.md | references/note-writing-guide.md、references/publication-policy.md、references/command-pitfalls.md |
| 回答追问或讨论启发 | commands/paper-discuss.md | 需要笔记结构时读取 references/note-writing-guide.md |
| 根据讨论或纠错修订笔记 | commands/note-revise.md | references/note-writing-guide.md |
| 上传归档笔记、PDF 和数据库条目 | commands/db-upload.md | references/notion-workflows.md、references/note-writing-guide.md、references/command-pitfalls.md |
全局规则
- 执行任何
ntn 写入命令前,必须先读取 references/command-pitfalls.md。
- 本 skill 中的相对路径均以 skill 根目录为基准;配置只读写
<SKILL_ROOT>/config/defaults.json。
- 除纯讨论外,依赖 Notion 数据库的流程开始前必须检查
ntn、<SKILL_ROOT>/config/defaults.json 和目标 database/data source 可访问性;ntn 路径按 NTN_BIN、/Users/bytedance/.local/bin/ntn、PATH 顺序解析。
- 论文阅读、精读、总结或生成笔记默认读取 Notion data source 的
标签、出版、年份、评分 选项作为上下文;不读取已有全文笔记。
- 本地只缓存面向用户的数据库配置;不要把字段 ID、选项 ID、标签、出版或年份作为长期事实缓存。
- 初始化默认新建 Notion database,不自动复用同名库。若用户要求复用已有库,必须先只读回读 schema 并展示差异。
- 缺少
ntn、未登录、配置缺失或目标库不可访问时,依赖库的流程必须停止;阅读流程只有在用户确认离线继续后,才可生成本地离线笔记。
- 检测到已有本地笔记时,必须先展示将更新或覆盖的影响,获得用户确认后才可修改。
- 讨论论文时只回答并记录候选补充;不得自动修改本地笔记或 Notion 条目。
- 写入 Notion 前,必须先生成并校验元数据 Markdown 和正文 Markdown。
Title、Abstract、标题、摘要 必须从 *.paper-metadata.md 复制;写入 Notion 时 Title 映射到 名称。
标题 必须是 Title 的忠实中文翻译;摘要 必须是 Abstract 的忠实中文翻译,不能写成总结或评价。
- Notion 数据库字段固定为:
名称、置顶、出版、年份、状态、标签、评分、Abstract、标题、摘要、附件。
*.paper-note.md 不得包含 ## 元数据 或元数据表;上传 page 正文只写论文笔记正文,元数据只写入 Notion 标题下方自带 properties 区域。
- 主 PDF 只上传到条目的
附件 字段一次,文件名固定为 paper.pdf。
出版、年份、状态、标签、评分 待写值不在当前 Notion 选项内时,默认停止;新增选项前必须展示理由并获得用户确认。
- 任何可能造成信息损失的操作都必须先展示影响并获得用户明确确认,包括覆盖、更新、删除、移动、合并、清理、重构、重新上传、同步写回、重命名已有资源,或改变已有本地/Notion 内容。
确认门
以下动作必须先暂停并获得用户确认:
- 复用或改造已有 Notion database。
- 论文阅读流程无法读取 Notion
标签、出版、年份 或 评分 选项,需要离线继续生成本地笔记。
- 修改、覆盖或重写已有本地 Markdown 笔记。
- Notion 已有同题论文条目,需要更新而不是新增。
- 新增
标签、出版、年份、状态 或 评分 选项。
- 覆盖、更新、重命名或同步已有 Notion page、data source、条目字段或附件。
- 删除、移动、合并、清理或重构已有本地或 Notion 资源。
检测到重复论文时,先提示重复并等待确认;确认后走更新流程。只有用户明确要求新增时,才新增重复条目。
本地命令
Notion 工作流由执行者调用 ntn 完成。Python 命令只处理本地文件:
conda run -n common python scripts/paper_notion_cli.py check [--output FILE]
conda run -n common python scripts/paper_notion_cli.py paper-prep --pdf paper.pdf [--doi 10.xxxx/xxx] [--write-intermediates] --output paper.context.json
conda run -n common python scripts/paper_notion_cli.py extract paper.pdf --output paper.text.json
conda run -n common python scripts/paper_notion_cli.py metadata paper.text.json --output paper.metadata.json
conda run -n common python scripts/paper_notion_cli.py lookup --title "Paper Title" --doi "10.xxxx/xxxxx"
conda run -n common python scripts/paper_notion_cli.py infer --metadata paper.metadata.json [--publication paper.publication.json] --output paper.options.json
conda run -n common python scripts/paper_notion_cli.py title "paper title" --title-case
conda run -n common python scripts/paper_notion_cli.py metadata-check paper.paper-metadata.md
conda run -n common python scripts/paper_notion_cli.py note-check paper.paper-note.md
conda run -n common python scripts/paper_notion_cli.py render-upload-markdown paper.paper-metadata.md paper.paper-note.md --output paper.upload-page.md
conda run -n common python scripts/paper_notion_cli.py build-upload-payload paper.paper-metadata.md paper.upload-page.md --data-source-id <data_source_id> --file-upload-id <file_upload_id> --output paper.payload.json
conda run -n common python scripts/paper_notion_cli.py validate-tree .
公开 Python 环境可使用等价命令 python scripts/paper_notion_cli.py ...。
输出文件
- PDF 正文抽取:
*.text.json
- 统一论文上下文:
*.context.json
- 元数据抽取:
*.metadata.json
- 选项推断:
*.options.json
- 论文元数据:
*.paper-metadata.md,用于填 Notion 字段
- 论文笔记正文:
*.paper-note.md,用于写入 Notion page 正文
- 上传 page Markdown:上传前临时生成,只包含论文笔记正文,不替代本地
*.paper-note.md
安全边界
只有通过相应 Notion 回读命令验证后,才能声称 database、data source、字段、page 正文、附件或条目属性已经创建、清理或更新。