名称: adopt 描述: 在现有的Obsidian知识库上搭建PKM系统。扫描您的vault结构,交互式映射文件夹,并生成配置 — 无需模板。 允许工具: 读取、写入、编辑、全局搜索、Grep、Bash、询问用户问题 模型: sonnet 用户可调用: true
采纳技能
自带知识库(BYOV) — 将Claude PKM系统安装到现有的Obsidian知识库中。
使用
/adopt # 从您现有Obsidian知识库的根目录运行
何时使用
- 您有一个现有的Obsidian知识库,并想添加Claude PKM系统
- 您不想从知识库模板开始
- 您想保留当前的文件夹结构
阶段1:扫描知识库结构
分析现有知识库以了解其组织方式。
步骤
-
列出顶级目录 使用
ls,排除系统目录(.obsidian、.git、.claude、.trash、.claude-plugin) -
对于每个目录,收集信号:
- 计算
.md文件数量(使用全局搜索) - 检查日期命名的文件(
YYYY-MM-DD*.md)— 表示每日笔记 - 在文件名和内容中搜索目标/回顾/模板关键词
- 检查子目录中是否存在现有的
CLAUDE.md— 表示项目
- 计算
-
基于信号检测组织方法:
- PARA:名为项目、领域、资源、归档的文件夹
- Zettelkasten:数字前缀笔记、大量维基链接、扁平结构
- Johnny Decimal:
00-09、10-19样式文件夹名称 - LYT(链接您的思考):名为图集、日历、卡片、额外、来源的文件夹
- 扁平:很少文件夹,大多数文件在根目录
- 自定义:以上模式都不匹配
-
向用户展示发现:
知识库扫描完成! 在8个文件夹中找到342个笔记: 每日/ → 180个笔记(日期命名 — 可能是每日笔记) 项目/ → 45个笔记(有 CLAUDE.md 文件 — 可能是项目) 目标/ → 12个笔记(包含目标关键词) 模板/ → 8个笔记(包含模板关键词) 归档/ → 67个笔记 收件箱/ → 15个笔记 资源/ → 10个笔记 会议笔记/ → 5个笔记 检测到方法:类PARA结构
阶段2:映射文件夹到角色
使用询问用户问题来确认或纠正检测到的映射。
要映射的角色
每个角色将PKM功能映射到用户知识库中的一个文件夹:
| 角色 | 目的 | 检测信号 |
|---|---|---|
| 每日笔记 | 每日日志条目 | 日期命名的文件(YYYY-MM-DD) |
| 目标 | 目标级联(3年 → 每周) | 包含目标/回顾关键词的文件 |
| 项目 | 活跃项目 | 有 CLAUDE.md 或项目关键词的子目录 |
| 模板 | 可重用的笔记结构 | 包含模板关键词或在模板/中的文件 |
| 归档 | 已完成/非活动内容 | 名为归档的文件夹或旧日期 |
| 收件箱 | 未分类捕获 | 名为收件箱的文件夹,或标记为 #inbox 的文件 |
交互式映射
对于每个角色,询问用户确认或纠正:
问题格式(使用询问用户问题):
- “哪个文件夹存放您的 每日笔记?”
- 选项:检测到的候选、“我没有(创建它)”、“跳过 — 我不使用这个”
- 对于可选角色(收件箱),默认包括"跳过"
边缘情况:
- 根目录存在 CLAUDE.md:询问用户 — 备份为
CLAUDE.md.backup或合并内容 - 没有角色候选:提供创建文件夹
- 多个候选:呈现所有并让用户选择
保存映射
存储文件夹映射供后续阶段使用:
每日笔记 → "每日"
目标 → "目标"
项目 → "项目"
模板 → "模板"
归档 → "归档"
收件箱 → "收件箱" (如果跳过则为null)
阶段3:个性化偏好
询问与 /onboard 相同的4个问题:
问题1:您的姓名
- “我应该如何称呼您?”
- 用于个性化提示和问候
问题2:偏好的回顾日
- “您偏好哪一天进行每周回顾?”
- 选项:周日(推荐)、周六、周一、周五
- 由
/review自动检测和会话初始化提示使用
问题3:主要目标领域
- “当前哪些领域对您最重要?(选择2-4个)”
- 选项:职业与专业、健康与健身、关系、个人成长
- 还提供:财务、创意与乐趣、学习、其他
- 多选:true
- 用于自定义目标模板建议
问题4:工作风格
- “您希望Claude如何互动?”
- 选项:直接简洁(推荐)、指导挑战、详细彻底、最小化 — 只执行任务
- 设置输出风格偏好
阶段4:生成配置
4a. 写入 settings.json
写入 .claude/settings.json,权限范围限定到用户的实际文件夹:
{
"permissions": {
"allow": [
"读取",
"写入 **/{映射的每日}/**",
"写入 **/{映射的目标}/**",
"写入 **/{映射的项目}/**",
"写入 **/{映射的模板}/**",
"编辑 **/{映射的每日}/**",
"编辑 **/{映射的目标}/**",
"编辑 **/{映射的项目}/**",
"全局搜索",
"Grep"
]
}
}
将 {映射的*} 替换为阶段2的实际文件夹名称。
4b. 写入根 CLAUDE.md
生成根 CLAUDE.md,描述用户的 实际 知识库结构。使用与模板 CLAUDE.md 相同的格式,但包含:
- 他们的文件夹名称在目录结构表中
- 他们的目标领域在系统目的部分
- 他们的实际技能表(与模板相同)
- 级联部分适应他们的文件夹名称
如果用户有现有的 CLAUDE.md,将他们的内容合并到适当部分(保留他们的使命声明、自定义约定等)。
4c. 写入 vault-config.json
在知识库根目录写入 vault-config.json:
{
"名称": "用户的姓名",
"回顾日": "周日",
"目标领域": ["职业与专业", "健康与健身"],
"工作风格": "直接简洁",
"设置日期": "2026-02-17",
"版本": "3.1",
"已采纳知识库": true,
"文件夹映射": {
"每日笔记": "每日",
"目标": "目标",
"项目": "项目",
"模板": "模板",
"归档": "归档",
"收件箱": "收件箱"
}
}
4d. 设置环境变量
写入或更新 CLAUDE.local.md,包含钩子的环境变量导出:
## 环境覆盖
这些环境变量允许钩子和脚本找到您的文件夹:
<!--
在您的shell配置文件中导出这些,或它们将由会话初始化设置:
-->
每日笔记目录={映射的每日笔记文件夹}
目标目录={映射的目标文件夹}
项目目录={映射的项目文件夹}
模板目录={映射的模板文件夹}
收件箱目录={映射的收件箱文件夹}
归档目录={映射的归档文件夹}
同时创建 .claude/hooks/adopt-env.sh,导出这些变量:
#!/bin/bash
# 用于采纳知识库文件夹映射的环境变量
# 由 /adopt 生成 — 编辑 vault-config.json 并重新运行 /adopt 以更新
export 每日笔记目录="{映射的每日笔记}"
export 目标目录="{映射的目标}"
export 项目目录="{映射的项目}"
export 模板目录="{映射的模板}"
export 收件箱目录="{映射的收件箱}"
export 归档目录="{映射的归档}"
然后在 session-init.sh 中添加一个 source 行,如果尚未存在:
# 如果存在,源采纳知识库环境变量
采纳环境="$知识库路径/.claude/hooks/adopt-env.sh"
如果 [ -f "$采纳环境" ]; 那么
源 "$采纳环境"
fi
阶段5:搭建缺失部分
检查缺失内容并提供创建。 总是先询问再创建。
5a. 目标级联文件
如果目标文件夹为空或新创建:
- “您的目标文件夹为空。是否希望我创建目标级联?(3年愿景、年度目标、月度目标、每周回顾)”
- 如果是:复制标准模板,适应用户的文件夹名称路径
- 如果否:跳过
5b. 模板
如果模板文件夹为空或新创建:
- “是否希望我添加标准模板?(每日、每周回顾、项目)”
- 如果是:复制模板,调整内部链接到用户的文件夹名称
- 如果否:跳过
5c. CLAUDE.local.md.template
如果 CLAUDE.local.md.template 不存在:
- 从标准模板复制
- 调整任何文件夹引用
5d. Claude 配置目录
确保这些目录存在(静默创建):
.claude/skills/(用于未来技能添加).claude/rules/.claude/hooks/.claude/agents/
如果 .claude/rules/ 为空,复制标准规则文件:
markdown-standards.mdproductivity-workflow.mdproject-management.mdtask-tracking.md
阶段6:验证与下一步
6a. 验证
运行快速检查:
vault-config.json是有效JSON(读回)- 所有映射的文件夹存在
CLAUDE.md存在且非空.claude/hooks/adopt-env.sh存在且可执行
6b. 摘要
呈现摘要:
采纳完成!
知识库: /路径/到/知识库
方法: 类PARA(保留了您现有的结构)
映射的文件夹:
每日笔记 → 每日/
目标 → 目标/
项目 → 项目/
模板 → 模板/
归档 → 归档/
收件箱 → 收件箱/
创建的:
✓ CLAUDE.md(知识库上下文)
✓ vault-config.json(偏好)
✓ .claude/hooks/adopt-env.sh(文件夹映射)
✓ 目标级联文件(4个文件)
✓ 标准模板(3个文件)
您的知识库结构未改变 — 仅添加了配置文件。
6c. 下一步
建议下一步:
- “尝试
/daily使用您的知识库结构创建今日笔记” - “尝试
/review进行引导式每周回顾” - “运行
/push将这些更改提交到git” - “编辑
CLAUDE.local.md以设置私人偏好(不提交到git)”
错误处理
- 不在知识库中:如果未找到
.obsidian目录,警告:“这看起来不像一个Obsidian知识库。继续吗?” - 已采纳:如果
vault-config.json存在且已采纳知识库: true,询问:“此知识库已被采纳。重新运行采纳吗?(这将重新生成配置文件。)” - 权限错误:如果
.claude/无法写入,建议检查权限 - 空知识库:如果未找到
.md文件,建议使用/onboard与模板代替
集成
与以下兼容:
/onboard— adopt 替代现有知识库的onboard/daily— 使用映射的每日笔记文件夹/weekly— 使用映射的目标文件夹/review— 尊重采纳知识库结构/push— 提交采纳更改- 所有钩子 — 从
adopt-env.sh读取环境变量