用途
该技能用于管理 JB 的 Obsidian 笔记库(vault),通过经过验证的路径、Title Case 笔记命名、[[wikilinks]] 双链和索引笔记来组织内容。它 fork 自 mattpocock/skills(skills/personal/obsidian-vault),将上游作者机器特定的 vault 路径替换为可移植的路径解析方式。
路径解析
技能明确要求:永远不要假设固定的 vault 路径。解析顺序为:
- JB 为当前任务显式提供的绝对 vault 路径。
- 非空的 OBSIDIAN_VAULT_PATH 环境变量。
- 记录在 TOOLS.md 中的、特定环境的 Obsidian vault 路径。
- 在可能的用户目录或挂载数据根目录中,对包含 .obsidian 的目录进行有边界的文件系统搜索。
在读取或写入之前,需验证解析出的目录存在且包含 .obsidian。若只找到一个 vault,则使用它;若找到多个且目标不明确,需询问 JB 使用哪一个;若一个都没找到,则报告未连接任何 vault,除非 JB 明确要求,否则不得创建 vault 或编造路径。直接进行 Markdown 文件操作时,不需要 Obsidian 处于运行状态。
组织方式
优先沿用现有 vault 中可发现的约定;否则使用以下默认规则:
- 笔记基本保持扁平,放在 vault 根目录。
- 笔记文件名使用 Title Case。
- 使用索引笔记聚合相关主题,例如 Skills Index.md 或 RAG Index.md。
- 避免仅为分类而创建新文件夹,优先使用链接和索引笔记。
链接
使用 Obsidian [[wikilinks]]。在笔记底部附近添加指向依赖项和紧密相关笔记的链接。索引笔记应是简单、可读的 [[wikilinks]] 列表。
搜索笔记
先搜索文件名,再搜索内容。优先使用 rg / rg --files;不可用时回退到 find 和 grep。示例(假设 $OBSIDIAN_VAULT_PATH 已验证):
rg --files "$OBSIDIAN_VAULT_PATH" -g '*.md' | rg -i 'keyword'
rg -il 'keyword' "$OBSIDIAN_VAULT_PATH" -g '*.md'
创建或更新笔记
- 解析并验证 vault 路径。
- 搜索是否已存在相同或用途重叠的笔记。
- 遵循 vault 现有的命名和组织模式。
- 在没有更强的本地约定时,使用 Title Case 文件名。
- 将笔记写成一个连贯的学习单元。
- 添加相关的 [[wikilinks]],并在合适时更新已有的索引笔记。
- 保留现有笔记中不相关的内容。
查找反向链接
搜索精确的 wikilink:
rg -l '\[\[Note Title\]\]' "$OBSIDIAN_VAULT_PATH" -g '*.md'
查找索引笔记
rg --files "$OBSIDIAN_VAULT_PATH" -g '*Index*.md'
安全约束
- 绝不盲目覆盖已有笔记。
- 未经明确指示,绝不创建或初始化新的 vault。
- 当直接进行 Markdown 操作已足够时,不要求 Obsidian GUI 或 CLI。
- 将 .obsidian/ 视为应用配置;除非 JB 明确要求更改 Obsidian 配置,否则不要编辑它。
适用场景与限制
适用于以命令行方式直接读写 Markdown 文件、维护个人知识库的场景,尤其是需要跨机器可移植路径解析、统一命名与双链组织的情况。限制方面:资料未提供具体的安装命令、依赖版本、支持的平台范围、收费或价格信息,这些内容暂未提供。