Was macht knowledge-base-builder?
把「搭知识库」这个重复任务变成一条稳定流程:先确认目标目录状态,再用脚本生成确定的结构,最后交给用户确认。不要在没有明确目标时强行搭建,也不要在已有结构上直接覆盖。
下文 <python> 表示已确认可用、版本不低于 3.10 的 Python 解释器(macOS/Linux 通常为 python3,Windows 通常为 py -3)。
开始前:检查已有结构
用脚本检测目标目录,静默完成,检测到就报告:
<python> scripts/scaffold_kb.py check <目标目录>
- 未检测到结构 → 进入「创建」流程。
- 已存在结构 → 先询问用户「在现有基础上补充」还是「重新搭建」,不要直接覆盖。重新搭建必须先获得授权。
创建流程
第 1 步:收集信息(不阻塞)
逐条提问,每条都有默认值,用户不回答就用默认值继续:
| 问题 | 默认值 |
|---|---|
| 你的昵称/名字? | 我 |
| 你的职业/身份? | 知识工作者 |
| 你想深耕哪些领域? | 工作技能、个人成长、兴趣爱好 |
| 你的核心目标? | 搭建第二大脑,让知识可沉淀、可复用 |
回答「随便/都行」或信息不全时,直接用默认值,最后集中让用户确认一次可修改,不反复追问。
第 2 步:设计领域分类
根据职业和领域生成 10-Areas/ 下的领域,领域文件夹用纯名称(如 数据分析),不带数字前缀。每个领域可选分子领域,子领域才用数字前缀(如 1-业务理解)。
- 每个领域一个文件夹,领域之间不重叠,3–5 个为宜
- 子领域可选:问用户「每个领域下想分哪几块?默认留空」,不给就留空
00-Inbox/待沉淀/下镜像同样的领域文件夹(不含子领域),与 Areas 一一对应,方便升格时对齐
第 3 步:生成骨架
用脚本确定性生成,不手工逐条建目录:
<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 手工创建同样结构。
第 4 步:核对核心文件
确认以下文件已按用户信息生成,内容模板见 references/file-templates.md:
README.md— 知识库总览与流转说明40-Skills/README.md— 执行工具箱 hub90-<昵称>的大脑说明/README.md— 大脑说明书(最高优先级入口)90-<昵称>的大脑说明/个人档案.md— 用户档案90-<昵称>的大脑说明/agents.md— AI 操作约束90-<昵称>的大脑说明/初始化提示词.md— 换新会话时发送的完整恢复提示词90-<昵称>的大脑说明/文件追踪.md— 文件移动时的链接更新机制90-<昵称>的大脑说明/备份方案.md— 备份方案
第 5 步:交付与确认
报告生成的目录树和用法,并询问是否需要调整领域分类或结构。
资源导航
| 需要什么 | 读哪里 |
|---|---|
| 四层流转的设计原理 | references/design-principles.md |
| 目录结构与文件模板 | references/file-templates.md |
| 一个完整示例 | examples/数据分析师示例.md |
稳定与恢复
- 幂等:脚本重复执行不产生重复或冲突;已存在结构时拒绝覆盖。
- 可恢复:任一步失败,保留已生成的中间产物,说明停在哪一步、如何续做。
- 不覆盖:覆盖、删除、重建必须先获得用户授权。
完成标准
- 骨架完整生成,脚本或手工创建结果与 references/file-templates.md 一致;
- 8 个文件已按用户信息定制;
- 用户已确认领域分类和结构(或使用默认值)。