# Obsidian Knowledge Builder

> 在 Obsidian 中搭建结构化知识库，并在内容沉淀后把待沉淀内容「学习消化」成可复用知识卡片。当用户说"帮我搭知识库""搭建第二大脑""建立知识库结构"时进入创建模式；当用户说"同步学习沉淀的知识""消化待沉淀"时进入同步学习模式。适配 Obsidian（wiki-link、frontmatter、callout、图谱）。不要用于整理已有笔记格式、写单篇笔记、或纯知识管理咨询。

- Skill: `ivercurry99/obsidian-knowledge-builder` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add ivercurry99/obsidian-knowledge-builder`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ivercurry99/obsidian-knowledge-builder/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: MIT
- Author: ivercurry99 (https://skillmd.com/u/ivercurry99)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/ivercurry99/obsidian-knowledge-builder

---


# obsidian-knowledge-builder

把「搭知识库」和「消化沉淀」变成两条稳定流程。适配 Obsidian：生成的目录结构和产物都用 Obsidian 原生格式（`[[wiki-link]]`、frontmatter、callout），可直接在 Obsidian 里打开使用。

下文 `<python>` 表示已确认可用、版本不低于 3.10 的 Python 解释器（macOS/Linux 通常为 `python3`，Windows 通常为 `py -3`）。

## 先选模式

| 模式 | 触发 | 路径 |
|------|------|------|
| 创建 | 用户说「帮我搭知识库」「搭建第二大脑」「建立知识库结构」 | 收集信息 → 生成骨架 → 交付确认 |
| 同步学习 | 用户说「同步学习沉淀的知识」「消化待沉淀」 | 扫描待沉淀 → 学习消化 → 升格 Areas → 标记 |

## 模式一：创建

### 开始前：检查已有结构

用脚本检测目标目录，静默完成，检测到就报告：

```text
<python> scripts/scaffold_kb.py check <目标目录>
```

- **未检测到结构** → 进入「创建」流程。
- **已存在结构** → 先询问用户「在现有基础上补充」还是「重新搭建」，不要直接覆盖。重新搭建必须先获得授权。

### 第 1 步：收集信息（不阻塞）

逐条提问，每条都有默认值，用户不回答就用默认值继续：

| 问题 | 默认值 |
|------|--------|
| 你的昵称/名字？ | 我 |
| 你的职业/身份？ | 知识工作者 |
| 你想深耕哪些领域？ | 工作技能、个人成长、兴趣爱好 |
| 你的核心目标？ | 搭建第二大脑，让知识可沉淀、可复用 |

回答「随便/都行」或信息不全时，直接用默认值，最后集中让用户确认一次可修改，不反复追问。

### 第 2 步：设计领域分类

根据职业和领域生成 `10-Areas/` 下的领域，领域文件夹用**纯名称**（如 `数据分析`），不带数字前缀。每个领域可选分子领域，子领域才用数字前缀（如 `1-业务理解`）。

- 每个领域一个文件夹，领域之间不重叠，3–5 个为宜
- 子领域可选：问用户「每个领域下想分哪几块？默认留空」，不给就留空
- `00-Inbox/待沉淀/` 下镜像同样的领域文件夹（不含子领域），与 Areas 一一对应，方便升格时对齐

### 第 3 步：生成骨架

用脚本确定性生成，不手工逐条建目录：

```text
<python> scripts/scaffold_kb.py build <目标目录> \
  --name <昵称> --occupation <职业> \
  --areas "领域A:子领域1,子领域2;领域B" --goal <目标>
```

`--areas` 用逗号分隔领域；给某领域加子领域时用 `领域:子1,子2`，多个带子领域的领域用分号分隔。脚本创建固定目录和 8 个文件（根 README + 40-Skills hub + 大脑说明 6 个）；目标目录已存在同名结构时**拒绝覆盖**。宿主无法运行 Python 时，按 [references/file-templates.md](references/file-templates.md) 手工创建同样结构。

### 第 4 步：核对核心文件

确认以下文件已按用户信息生成，内容模板见 [references/file-templates.md](references/file-templates.md)：

1. `README.md` — 知识库总览与流转说明
2. `40-Skills/README.md` — 执行工具箱 hub
3. `90-<昵称>的大脑说明/README.md` — 大脑说明书（最高优先级入口）
4. `90-<昵称>的大脑说明/个人档案.md` — 用户档案
5. `90-<昵称>的大脑说明/agents.md` — AI 操作约束
6. `90-<昵称>的大脑说明/初始化提示词.md` — 换新会话时发送的完整恢复提示词
7. `90-<昵称>的大脑说明/文件追踪.md` — 文件移动时的链接更新机制
8. `90-<昵称>的大脑说明/备份方案.md` — 备份方案

### 第 5 步：交付与确认

报告生成的目录树和用法，并询问是否需要调整领域分类或结构。

## 模式二：沉淀与学习

用户把资料丢进 `00-Inbox/待沉淀/` 后，说「同步学习沉淀的知识」，就启动这个流程：把资料「沉淀」成 Areas 笔记，然后逐篇询问用户「要不要学习」，要学习的用 `learn-anything-fast` 深度学习，学完在笔记旁打勾。

### 第 1 步：扫描待沉淀

列出 `00-Inbox/待沉淀/` 下所有未处理的资料（文件名末尾没有 √ 的），按领域分组展示清单。

### 第 2 步：沉淀成 Areas 笔记

把每篇资料消化成结构化笔记，写入 `10-Areas/{领域}/` 对应子领域。领域归属不确定时问用户，不擅自定。

### 第 3 步：逐个询问是否学习

每沉淀完一篇笔记，问用户「要不要学习这篇？」。用户说不要 → 跳过，笔记保留但不标记学习状态。

### 第 4 步：学习（可选）

用户说「学习」→ 调用 `learn-anything-fast` 技能深度学习这篇笔记（宿主没有该技能时，用等价学习循环）。默认 Compress 模式。格式见 [references/learning-sync.md](references/learning-sync.md)。

### 第 5 步：学习完打勾

学习完成后，在这篇 Areas 笔记旁打勾：文件名末尾加 √，或 frontmatter 标 `status: learned`。表示「已学习」。

### 第 6 步：汇报

汇报：沉淀了几篇笔记、学习了几篇、产出在哪、还剩多少资料未沉淀。

## 资源导航

| 需要什么 | 读哪里 |
|---------|--------|
| 四层流转的设计原理 | [references/design-principles.md](references/design-principles.md) |
| 目录结构与文件模板 | [references/file-templates.md](references/file-templates.md) |
| 同步学习的卡片格式与调用 | [references/learning-sync.md](references/learning-sync.md) |
| 一个完整示例 | [examples/数据分析师示例.md](examples/数据分析师示例.md) |

## 稳定与恢复

- **幂等**：脚本重复执行不产生重复或冲突；已存在结构时拒绝覆盖。
- **可恢复**：任一步失败，保留已生成的中间产物，说明停在哪一步、如何续做。
- **不覆盖**：覆盖、删除、重建必须先获得用户授权。

## 完成标准

**创建模式**：
- 骨架完整生成，脚本或手工创建结果与 [references/file-templates.md](references/file-templates.md) 一致；
- 8 个文件已按用户信息定制；
- 用户已确认领域分类和结构（或使用默认值）。

**同步学习模式**：
- 资料已沉淀成 Areas 笔记；
- 每篇沉淀后都询问了用户是否学习；
- 已学习的笔记旁打了 √（标记已学习）。

