第二大脑编译官
你的笔记库可能有 1000 篇,但 AI 只读得进 20 篇的预算。
缺的不是结构,是「编译循环」。 这个 Skill 就是那个循环。
触发场景
- 「我的 Obsidian 库太大了,AI 根本用不上」
- 「帮我把笔记补上摘要,让我能搜到」
- 「双链一堆红的,帮我看看哪些是真断的」
- 「标签重复得离谱,整理一下」
- 「为什么 AI 总是答不到我库里已有的结论」
一条命令先体检
python3 scripts/compile.py health --vault ~/Obsidian/my-brain
输出四项关键指标,决定你该先做哪一步:
| 指标 | 健康值 | 偏低说明 |
|---|---|---|
| 知识型占比 | 40–70% | 太低=库里堆了大量运行产物,会稀释检索信噪比 |
| 摘要覆盖 | > 85% | 低=AI 只能猜文件名 |
| 断链率 | < 5% | 高=导航失效,但先排除假阳性再下结论 |
| 平均正文长度 | > 300 字 | 太低=记的是标题不是内容 |
五个子命令
# 1. 养生摘要(默认 dry-run,先看 10 条再决定)
python3 scripts/compile.py summary --vault . --preview 10
python3 scripts/compile.py summary --vault . --apply
# 2. 断链分类
python3 scripts/compile.py links --vault .
# 3. 标签归一
python3 scripts/compile.py tags --vault . --apply
# 4. 生成摘要地图(AI 的入口文件)
python3 scripts/compile.py map --vault . --apply
摘要的四条红线(这个 Skill 的核心)
摘要不是「把开头截一段」。抄错一条,AI 就会把推翻的结论当成事实。
红线一:作废内容绝不进摘要。
笔记里 ~~原表:买断制最好卖~~ → 已作废 这种,删除线内容是被你自己推翻的东西。
照抄开头 = 把错误结论喂给 AI,而且它会很自信地引用。
红线二:元信息不是内容。
阅读日期:2026-01-01 | 深度级别:L2 这类模板行没有任何信息量。
占掉摘要位置,等于用无效 token 挤掉了真结论。
红线三:插件噪音要滤。
星位:(160,110)、node id: xxx 是画图插件写进正文的坐标,不是知识。
红线四:短但准确的不强行拉长。
「AI Agent 标准操作流程。」是一句好摘要。为了凑字数把上下文硬塞进去,反而降低检索精度。
脚本的策略是:抽不到 15 字以上的可信内容就不写,宁缺勿编。
断链的三个假阳性(先证伪再下结论)
断链率虚高,通常不是库坏了,是工具在骗你。
- 剥代码块。 lint 报告里
[[双链]]是示例文字,不是链接。不剥代码块,一篇教程就能制造几十条假断链。 - 认 aliases。 目标页的
aliases里写了别名,工具只比对文件名就会误判。实测某一页被误报 36 次。 - 排除报告类笔记。 断链清单本身会被下一次扫描当成笔记再扫一遍,自己制造假断链。
脚本默认做了前两项。真实断链通常在 1–3%,超过 10% 先怀疑工具。
摘要地图:AI 的入口
map 生成两级路由:
903_导航/全库摘要地图.md ← 2KB,领域索引 + 全量一句话摘要
把它写进 AI 的启动配置第一条路径:
> 读库前先读 903_导航/全库摘要地图.md,定位领域后再展开,不要逐个猜文件名。
实测:读 2KB 路由比遍历文件名快一个数量级,且不会漏掉改过名的笔记。
依赖
Python 3.8+,仅标准库。无网络请求,不写库外任何路径。
--vault 指向任何 markdown 目录都能跑,不绑定 Obsidian,Logseq / 纯 md 仓库同样适用。
交付边界(买断制说明)
包含:scripts/compile.py 全部源码、上述四条红线与三个假阳性的完整处理逻辑、五子命令用法。
不包含:不替你判断「这条断链该指向哪一页」(语义判断),不做语义向量检索,不调用任何大模型 API。
安全:--apply 前建议 git commit,落盘后用 git diff --stat 复核。脚本只往 frontmatter 插字段,正文零改动。