mcpField
O
obsidian-paper-vault

obsidian-paper-vault

github.com/aperivue生产力35345 次安装1 天前更新
代码仓库

关于 obsidian-paper-vault

此 Claude skill 将研究 PDF 文件夹整理为 Obsidian 文献笔记与概念笔记,适合管理论文阅读和跨文献概念综合。它强调依据提取文本写作、避免覆盖已有笔记,并通过队列跟踪进度。

主要功能

  1. 01生成文献笔记与概念笔记
  2. 02批量提取 PDF 文本
  3. 03检查并跳过已有笔记
  4. 04按队列跟踪处理进度

适用场景

  1. 01整理文件夹中的研究论文
  2. 02从多篇论文综合概念
  3. 03分批处理大型论文集合

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aperivue/medsci-skills --skill obsidian-paper-vault

安装后在 Claude Code 中输入/obsidian-paper-vault确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

skill.yml
assets/
example_concept_note.md
example_paper_note.md
example_queue.md
references/
concept-extraction.md
subagent-prompt.md
tag-vocabulary.md
templates.md
workflow.md
references/locale/ko/
note_templates.md
scripts/
extract_pdfs.py
tests/
test_extract_pdfs.py

详细介绍

Obsidian Paper Vault

将研究论文 PDF 文件夹转换为双层 Obsidian 知识库:文献笔记(每篇论文一篇,使用模板)和原子概念笔记(综合多篇论文)。

与 /lit-sync 的关系

这两项技能都会将文献笔记和概念笔记写入相同的知识库文件夹。它们从相反方向开始工作,不能互相覆盖。

/lit-syncobsidian-paper-vault
输入Zotero 分类 / refs.bibPDF 文件夹
笔记键citekey简短的描述性标题
管理内容manuscript/_src/refs.bib提取文本缓存

绝不要覆盖现有笔记。 如果论文的笔记已存在(按标题、DOI 或 citekey 判断),请报告并跳过。当两项技能同时使用时,/lit-sync 笔记是书目主干;本技能的笔记则是通读摘要。

步骤 0:确定知识库布局——询问,不要假设

开始写入任何内容前,先确定以下三个路径:

  1. 知识库根目录——由用户提供,或使用 $OBSIDIAN_VAULT。绝不要猜测主目录路径。
  2. 文献笔记文件夹——默认为 Literature/。如果知识库中已有承担此用途的文件夹(02_research/논문/、Papers/、文献/),请尊重现有布局,不要强行采用默认设置。
  3. 概念笔记文件夹——默认为 Concepts/,同样遵循尊重现有布局的规则。

对于结构为韩语的知识库,请参阅 references/locale/ko/note_templates.md——文件夹名称和笔记标题使用韩语,需选择启用。

另外,请确认 PyMuPDF 可用:python3 -c "import fitz; print(fitz.__version__)"(使用 pip install PyMuPDF 安装)。文本提取缓存默认存放在 ~/.local/cache/paper-vault-texts/,除非用户指定其他位置。

步骤 1:预先提取 PDF 文本——始终执行,适用于任何批次

python3 "${CLAUDE_SKILL_DIR}/scripts/extract_pdfs.py" <pdf_folder> <text_cache_folder> [max_pages]

默认提取 12 页,对于大多数论文而言,这足以涵盖摘要至讨论部分。如果生成的笔记内容空泛,说明文本文件仅包含摘要,或 OCR 质量较差:请增加提取页数,或检查源 PDF。无法提取文本的 PDF(仅包含图像的扫描件)会标记为 FAILED … (needs OCR),且不会生成 .txt 文件;请先进行 OCR,或以交互方式阅读,绝不要将其纳入批量处理。

绝不要将 PDF 路径交给子 Agent。 无法打开文件的子 Agent 不会报告失败——它会根据训练数据写出笔记,生成的笔记看似合理,实则包含编造的数字。请改为传递 .txt 路径。单篇论文的交互式处理可以直接读取 PDF(Read 工具支持 PDF);批量处理则不可以。

步骤 2:撰写笔记——并行使用子 Agent

将一批论文分配给多个并行工作的子 Agent,每个子 Agent 负责少量论文(单个 Agent 负责过多论文时,笔记质量会下降),并按主题为每个 Agent 分组论文,以便发现反复出现的概念。

给每个子 Agent 提供:分配给它的文本文件路径及目标文件名、references/templates.md 中的模板原文、已有概念笔记清单,以及不得捏造任何内容的要求。完整提示词见 references/subagent-prompt.md。

每篇笔记,无论批量撰写还是单独撰写,都遵循以下规则:

  1. 数字、作者和日期只能来自提取的文本——绝不能依赖模型知识,不论这篇论文多么耳熟能详,因为知名论文在不同版本间会有差异,而虚构的数值恰恰最容易在这里看起来可信。
  2. **文本未说明的内容,笔记就不得声称。**缺失的信息应写作“提取的文本中未说明”,而不是自行补全。
  3. 原样保留 PDF 文件名,写入 ![[filename.pdf]]:将文本文件名中的 .txt 替换为 .pdf,逐个字符保持一致(嵌入对大小写、空格和标点都很敏感)。
  4. **使用 references/templates.md 中的 frontmatter 字段名。**Dataview 查询若遇到字段重命名会失效,而且只会返回空表,不会报错。
  5. 使用现有标签词汇表(references/tag-vocabulary.md),不要自行创建顶级标签。
  6. 笔记名称应包含 3–5 个关键词概念,不要使用 PDF 的完整标题,也不要使用 paper_001。

不确定文献笔记的格式时,请参阅 assets/example_paper_note.md。

关卡——批次验收前:对照文本文件抽查两篇笔记(一项样本量、一项效应估计)。如果任一数值未出现在文本中,请停止处理该批次并报告,不要继续。是否豁免此关卡由用户决定,而非由此技能决定。

步骤 3:在队列文件中跟踪进度

在知识库中保留 PAPER_QUEUE.md,按论文记录状态(已完成 / 待处理 / 已跳过 / 处理中),确保拥有 200 篇论文的知识库能在不同会话间持续使用。每处理完一批后更新该文件。

步骤 4:在文献笔记达到 10 篇以上后提取概念笔记

某个短语只有同时满足以下条件,才值得单独建立概念笔记:它出现在 3 篇以上的笔记中、具有教学价值,并且不同论文对它的处理方式有所不同。模型名称、数据集和期刊属于实体,而非概念。完整标准、频次扫描以及从萌芽到成熟的生命周期,请参阅 references/concept-extraction.md;格式请参阅 assets/example_concept_note.md。

大约每 5–7 篇文献笔记新增 1 篇概念笔记较为合理。新增更快就属于概念膨胀,最终会产生几十篇用户从未编辑过的空洞笔记。

关卡——在将概念笔记标记为已完成之前:概念笔记应以 🌱萌芽状态发布,并将定义标记为占位内容;只有经过用户审核,才能计入读者自己的笔记。交付时请明确说明这一点。

用户询问各层如何协同,或为何此技能不会撰写某些笔记时,请阅读 references/workflow.md。

评论

支持 Markdown