采纳技能Skill adopt

这个技能用于在现有的Obsidian知识库中安装和配置Claude个人知识管理(PKM)系统。它通过扫描vault结构、交互式映射文件夹并生成配置文件,实现无缝集成,无需从头开始。关键词:Obsidian, PKM, Claude, 安装, 配置, 知识管理, 自动化

AI应用 0 次安装 0 次浏览 更新于 3/9/2026

名称: adopt 描述: 在现有的Obsidian知识库上搭建PKM系统。扫描您的vault结构,交互式映射文件夹,并生成配置 — 无需模板。 允许工具: 读取、写入、编辑、全局搜索、Grep、Bash、询问用户问题 模型: sonnet 用户可调用: true

采纳技能

自带知识库(BYOV) — 将Claude PKM系统安装到现有的Obsidian知识库中。

使用

/adopt    # 从您现有Obsidian知识库的根目录运行

何时使用

  • 您有一个现有的Obsidian知识库,并想添加Claude PKM系统
  • 您不想从知识库模板开始
  • 您想保留当前的文件夹结构

阶段1:扫描知识库结构

分析现有知识库以了解其组织方式。

步骤

  1. 列出顶级目录 使用 ls,排除系统目录(.obsidian.git.claude.trash.claude-plugin

  2. 对于每个目录,收集信号:

    • 计算 .md 文件数量(使用全局搜索)
    • 检查日期命名的文件(YYYY-MM-DD*.md)— 表示每日笔记
    • 在文件名和内容中搜索目标/回顾/模板关键词
    • 检查子目录中是否存在现有的 CLAUDE.md — 表示项目
  3. 基于信号检测组织方法

    • PARA:名为项目、领域、资源、归档的文件夹
    • Zettelkasten:数字前缀笔记、大量维基链接、扁平结构
    • Johnny Decimal00-0910-19 样式文件夹名称
    • LYT(链接您的思考):名为图集、日历、卡片、额外、来源的文件夹
    • 扁平:很少文件夹,大多数文件在根目录
    • 自定义:以上模式都不匹配
  4. 向用户展示发现

    知识库扫描完成!
    
    在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.md
  • productivity-workflow.md
  • project-management.md
  • task-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 读取环境变量