关于 obsidian-project-memory
obsidian-project-memory 是面向研究项目的 Obsidian 知识管理 skill,以文件系统为基础,结合脚本管理项目状态与 Agent 综合研究内容。它通过精简的规范结构保存可复用的研究知识,并明确不依赖 MCP 或 API。
主要功能
- 01检测并初始化项目知识库
- 02同步项目状态与管理笔记生命周期
- 03按主题查询上下文和规范笔记
- 04组织论文、实验、结果与写作笔记
- 05引导 Agent 综合项目资料
适用场景
- 01将研究仓库绑定到 Obsidian vault
- 02整理论文内容并转化为实验假设
- 03归档实验结果和阶段报告
- 04在项目任务中查询相关背景笔记
MCP 相关
该 skill 明确不要求 MCP、API 密钥或 REST 插件。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ galaxy-dawn/ claude-scholar --skill obsidian-project-memory安装后在 Claude Code 中输入/obsidian-project-memory确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/AGENT-FIRST-IMPORT.mdKNOWLEDGE-CRUD.mdNEW-MD-INGESTION.mdNOTE-ROUTING.mdNOTE-TEMPLATES.mdPAPERS-TO-WRITING.mdSCHEMA.mdSCRIPT-VS-AGENT.mdWORKFLOW.mdscripts/project_kb.pyproject_views.py详细介绍
Obsidian 项目记忆
为研究项目维护一个以文件系统为先、由 Agent 驱动的 Obsidian 知识库。
默认笔记输出语言遵循项目配置的 note_language;如果未配置笔记语言,则默认使用英语。如果保留技术术语、论文标题和既定文件夹名称的原文更清晰,就保留原文。只有在用户明确要求时,才将笔记正文切换为其他语言。
在以下情况下,在仓库中工作时优先使用此技能:
- 已包含
.claude/project-memory/registry.yaml;或 - 明显属于研究项目,且应绑定到 Obsidian 库。
核心原则
- 使用脚本管理项目状态。
- 使用Agent 理解和综合项目信息。
- 只将持久的研究知识写入精简的库结构。
- 不要求使用 MCP、API 密钥、REST 插件或
.base产物。 - 不要全局依赖
.canvas,但允许文献工作流默认维护Maps/literature.canvas作为文献图谱产物。 - 将内部实验总结报告视为
Results/Reports/下面向结果的持久笔记,而非Writing/笔记。
默认库结构
仅写入此项目布局:
Research/{project-slug}/
00-Hub.md
01-Plan.md
Knowledge/
Papers/
Experiments/
Results/
Reports/
Writing/
Daily/
Archive/
准确的结构和笔记角色请参阅 references/SCHEMA.md。
确定性辅助脚本
仅在自由度较低的操作(如检测、引导初始化、同步和生命周期管理)中使用 scripts/project_kb.py:
python3 scripts/project_kb.py detect --cwd "$PWD"
python3 scripts/project_kb.py bootstrap --cwd "$PWD" --vault-path "$OBSIDIAN_VAULT_PATH"
python3 scripts/project_kb.py sync --cwd "$PWD" --scope auto
python3 scripts/project_kb.py lifecycle --cwd "$PWD" --mode archive
python3 scripts/project_kb.py query-context --cwd "$PWD" --kind broad
python3 scripts/project_kb.py query-context --cwd "$PWD" --kind experiment --query freezing
python3 scripts/project_kb.py find-canonical-note --cwd "$PWD" --kind experiment --query freezing
python3 scripts/project_kb.py note-lifecycle --cwd "$PWD" --mode archive --note "Results/Old-Result.md"
不要指望脚本理解项目含义。它负责管理状态,不能替代综合分析。
决定任务应由脚本处理还是必须由 Agent 驱动时,请阅读 references/SCRIPT-VS-AGENT.md。
默认工作流
1. 检测并绑定
- 运行
scripts/project_kb.py detect --cwd "$PWD"。 - 如果仓库已绑定,则继续处理现有项目。
- 如果仓库尚未绑定,但很可能是研究项目,则使用
project_kb.py bootstrap进行引导初始化。
详细的生命周期说明请参阅 references/WORKFLOW.md。
2. 阅读最少量的上下文
开始写入前,只阅读最少量的稳定上下文:
.claude/project-memory/<project_id>.md00-Hub.md01-Plan.md- 如果今天的
Daily/YYYY-MM-DD.md存在,则阅读该文件
如果任务涉及项目理解、现有文档或历史结果,请使用下方的参考资料,有选择地加载更多上下文。
3. 对知识增量分类
将当前轮次归入以下一个或多个类别:
knowledgepaperexperimentresultwritingdailyproject-structure
写入前请阅读 references/NOTE-ROUTING.md。
4. 遵循默认的持久研究路径
实质性研究工作的默认路径:
Papers/-> 提取可复用的思路、基线和项目相关性Experiments/-> 将其转化为可检验的假设、运行手册或消融实验Results/-> 用证据和解读记录稳定的发现Results/Reports/-> 完成完整回顾后,存放某一轮或某一批实验的内部报告Writing/-> 将持久的论点整理为综述、提案、草稿、幻灯片或 rebuttal 笔记
将 Daily/ 用于记录时间顺序和暂存,而非存放持久研究知识的最终位置。
决定某一轮如何沿此路径推进时,请阅读 references/PAPERS-TO-WRITING.md。
5. 判断是否需要优先通过 Agent 进行综合
在以下情况下,使用优先通过 Agent 导入/综合:
- 首次导入现有仓库时,
- 用户表示知识库为空或缺乏背景信息时,
- 需要综合多个源文档,形成稳定的项目知识时,
- 项目需要持久的概览、研究问题、实验图谱或结果摘要时。
在这些情况下,先使用 Agent 阅读关键源内容,然后将综合结果写回 Obsidian。
请阅读 references/AGENT-FIRST-IMPORT.md,了解推荐的源内容阅读顺序。
6. 尽量少量写回
写回时务必保持审慎克制。
至少写回:
- 当本轮操作改变项目状态时,更新今天的
Daily/YYYY-MM-DD.md, - 仅当近期进展或顶层状态确实发生变化时,更新
00-Hub.md, - 当项目状态发生变化时,更新
.claude/project-memory/<project_id>.md。
然后,仅写入与对应分类相符的持久笔记:
knowledge->Knowledge/paper->Papers/experiment->Experiments/result->Results/writing->Writing/daily->Daily/project-structure-> 通常为Knowledge/Project-Overview.md或Knowledge/Source-Inventory.md
内部实验轮次报告默认存放于:
Results/Reports/YYYY-MM-DD--{experiment-line}--r{round}--{purpose}.md
当笔记需要稳定的结构时,请阅读 references/NOTE-TEMPLATES.md。
知识库的 CRUD 规则
将知识库视为一小组规范笔记,以及为其提供支持的每日记录。
创建
- 有选择地纳入新知识;不要把每个新的 Markdown 文件都视为持久笔记。
- 尽可能为每个持久对象保留一篇规范笔记:
- 一篇稳定的项目概览,
- 每条实验线一篇稳定的实验笔记,
- 每项持久发现一篇稳定的结果笔记,
- 每篇论文一篇稳定的论文笔记。
- 对于新的 Markdown 文件,默认先总结,再归类:
- 仅当文件已经稳定且内容完整时,才直接将其提升为规范笔记,
- 否则,将其合并到现有规范笔记,或暂存于
Daily/。
- 如果新的持久对象是一份完整的内部实验报告,则将其存放在
Results/Reports/下,并链接相应的Experiments/笔记和规范Results/笔记。
读取
- 首先进行有针对性的查询:
- 宽泛的项目问题 ->
00-Hub.md+ 关键Knowledge/笔记, - 当前工作问题 ->
01-Plan.md+ 今天的Daily/+ 项目记忆, - 特定实验、结果或论文的问题 -> 首先查看对应的规范笔记,
- 特定的内部实验回顾 -> 首先查看
Results/Reports/中对应的笔记。
- 宽泛的项目问题 ->
- 仅当答案涉及多个持久来源,或阅读规范笔记后仍需要依赖仓库材料时,才使用 Agent 进行综合。
更新
- 优先更新现有规范笔记,而不是创建并列笔记。
- 将原始材料视为输入,而不是最终的知识库对象。
- 允许在
Daily/中快速追加记录,但应将持久知识保存在Knowledge/、Papers/、Experiments/、Results/、Results/Reports/或Writing/中。
删除
- 默认将“移除”、“删除”或“停止使用”视为归档。
- 仅当用户明确要求永久删除时,才彻底删除。
- 归档或彻底删除持久笔记时,应修复
00-Hub.md、01-Plan.md和显式索引笔记中的直接链接,避免主要工作界面指向缺失文件。
安全规则
- 不要将整个仓库镜像到知识库中。
- 不要生成空的文件夹分类体系,也不要创建没有实际内容的占位笔记。
- 不要将每次仓库变更都写入一篇新笔记。
- 不要将每次代码变更都视为知识更新。
- 除非用户明确要求,否则不要创建
.base文件。 - 不要随意创建大量
.canvas文件;默认的主要例外是用于文献工作流的Maps/literature.canvas。 - 对于纯工程类对话,优先使用
Daily/和项目记忆;只有在涉及实际实验、结果或规划影响时才另行记录。 - 默认将“移除项目知识”视为归档;只有用户明确要求永久删除时才清除。
参考文件
仅加载所需内容:
references/SCHEMA.md- 知识库结构和笔记用途references/WORKFLOW.md- 检测、初始化、同步和归档工作流references/PAPERS-TO-WRITING.md- 从文献到实验、结果和写作的默认衔接方式references/SCRIPT-VS-AGENT.md- 低自由度脚本操作与仅限 Agent 推理之间的界限references/KNOWLEDGE-CRUD.md- 持久研究知识的创建、读取、更新和删除规则references/NOTE-ROUTING.md- 各类知识的存放位置references/NEW-MD-INGESTION.md- 如何导入新建的 Markdown 文件references/AGENT-FIRST-IMPORT.md- 如何通过 Agent 综合整理导入现有项目references/NOTE-TEMPLATES.md- 常见笔记类型的轻量模板