对 Obsidian vault 进行全库知识图谱标准化:扫描所有笔记,统一标签体系, 重建双链网络,规范 frontmatter 元数据和文件名,使孤立笔记形成有机的知识图谱。 当用户说"清洗库"、"标准化笔记"、"整理知识库"、"跑一遍 cleanup"、"规范化"、 "统一标签"、"检查双链"、"vault 治理"或任何涉及批量整理 Obsidian 存量笔记的请求时, 使用此 skill。注意:本 skill 只治理已有笔记,不生成新笔记——生成新笔记由 obsidian-writing skill 负责。即使用户没有明确说"清洗",只要意图是批量整理 或规范化已有笔记(而非写新内容),也应触发本 skill。
对 Obsidian vault 执行全库标准化,建立笔记间的语义连接。
两层结构:obsidian-writing(基础层,含格式规范与 Obsidian 语法参考)→ vault-cleanup / conversation-distill(应用层)。本 skill 直接遵循 obsidian-writing。
本 skill 以 obsidian-writing 为格式权威,不重复定义规范:
| 职责 | obsidian-writing | vault-cleanup |
|---|---|---|
| 生成新笔记 | ✅ | ❌ |
| 治理存量笔记 | ❌ | ✅ |
| Frontmatter schema | 定义 | 遵循 |
| 标签词表 | 维护 | 引用 |
执行前必须先读取以下文件获取规范:
| 文件 | 路径 | 用途 |
|---|---|---|
| 格式规范 | obsidian-writing/SKILL.md | Frontmatter schema、正文格式、双链策略、命名规则 |
| 标签词表 |
obsidian-writing/references/tags.md |
| 标签选取和归并 |
| 模板 | obsidian-writing/references/templates.md | type 判断参考 |
用户的工作流中,frontmatter 是给系统看的,正文是给自己看的。因此:
#、按模板补充缺失章节或调整结构。但绝不改写段落内的文字措辞,绝不删除已有内容由用户指定。默认路径:/Users/yan/Library/Mobile Documents/iCloud~md~obsidian/Documents/YAN
如果用户指定了不同路径,以用户指定的为准。
备份目录位于 vault 上一级目录,与仓库平级,命名为 {vault名}_backup。
例如 vault 路径为 .../Documents/YAN,则备份目录为 .../Documents/YAN_backup/YYYY-MM-DD/。
原因:备份放在 vault 内部会被 Obsidian 索引,同名文件导致双链解析歧义。放在 vault 外部可彻底避免污染。
以下目录和文件不处理,扫描时直接跳过:
.obsidian/(插件、主题、配置、workspace 等所有内容).trash/.git/.DS_Store 及所有以 . 开头的隐藏文件/目录attachments/、assets/、附件/、images/),再检查目录内文件类型——若某目录下 >80% 为非 .md 文件,自动判定为附件目录跳过templates/、模板/).excalidraw.md 文件(绘图数据,不是笔记).md 文件<% %> 或 {{}} 语法)如果无法确定某个目录是否应该跳过,在变更报告中列出供用户确认。
采用白名单制——只做下面列出的操作,未列出的一律不做。
title = 双链目标名MOC- 前缀![[]])aliases: ["旧文件名"],保留旧名可搜索性和外部引用兼容性文件名冲突时不执行重命名,在报告中标注。
所有 frontmatter 字段均可重写,具体规则:
| 字段 | 处理方式 |
|---|---|
title | 与新文件名同步 |
aliases | 重命名时自动填入旧文件名。已有的 aliases 保留,去重合并 |
date | 已有的绝对不动(无论是否"正确");缺失的用文件创建日期补充。清洗操作不构成修改日期的理由 |
tags | 基于全文语义重新打标,从 tags.md 词表选取,2-8 个(按内容丰富度决定,宁少勿凑)。去除同义重复。全库标签一致性优先:同一概念在所有笔记中用同一标签。格式统一为行内数组 [a, b] |
type | 根据内容判断,参照 obsidian-writing 的类型判断表。无法判断时默认 note 并在修订记录中标注 type 待人工确认 |
value | 已有值不动。仅在缺失时默认填 1(未评级) |
summary | 通读全文后重写。遵循 obsidian-writing 的 summary 书写规则:自包含、有信息密度、1-2 句 50-100 字、不含双链。无法总结时填 TODO: 待补充 |
related | 删除此字段。笔记间关联完全由正文双链和 tags 承载,frontmatter 不再维护 related |
| 其他可选字段 | 按 obsidian-writing 规范按需补充(如 source、rating、status) |
Frontmatter 全局规则:任何字段都不允许出现 [[]] 双链语法。 双链只属于正文,frontmatter 是纯结构化数据。如果原笔记的 frontmatter 中存在双链,清洗时去掉 [[]],保留纯文本。
这是 AI 在正文中唯一允许操作的区域。目的是建立笔记间的语义连接。
允许的操作:
[[]] 包裹[[科学]])、常识性([[互联网]])、同篇重复链接(同一概念已在前文链过)→ 去掉 [[]],保留原文字[[]] 内的词句,使链接目标更精确、命名更规范,或添加管道符别名。例如:
[[损失厌恶效应]] → [[损失厌恶]](规范化目标名称)[[卡尼曼的书]] → [[《思考,快与慢》读书笔记|卡尼曼的书]](精确链接 + 保留语感)[[那个认知偏差]] → [[确认偏误]](模糊指代改为精确概念)![[旧文件名]] 和 ![[旧文件名#章节]] 同步更新修改双链文字的边界判断:如果改了 [[]] 内的文字后导致前后句子读起来不通顺,则不改,在变更报告中标注。宁可保守不改,也不能让读者觉得句子别扭。
禁止的操作:
[[]] 之外的任何正文文字——措辞、句子、段落、标点一字不动(行内标签 # 清洗除外)修订记录是只追加、不覆写的日志。已有的任何历史记录不得修改、不得删除。
**2026-03-02** AI 标准化:重命名文件(旧名→新名),重写 summary/tags/related,修正双链 3 处正文中出现的 #标签 → 去掉 #,保留原文字。例如:
使用 #AI 技术 → 使用 AI 技术这是一个 #prompt-engineering 的案例 → 这是一个 prompt-engineering 的案例这是唯一允许的正文文字改动(严格来说只删除了一个 # 符号)。如果该标签不在 frontmatter tags 中,将其加入 tags 字段。
根据判定的 type,对照 obsidian-writing 的 references/templates.md 中对应模板,评估正文结构状态,选择合适的入侵等级。
任何涉及本节操作的文件,执行前必须先备份到备份目录。
| 正文现状 | 入侵等级 | 操作 |
|---|---|---|
| 结构已完整对齐模板 | 不动 | 跳过 |
| 内容太少(几句话撑不起结构) | 不动 | 跳过 |
| 已有合理章节结构,但缺少模板中的某些章节 | 二级 | 补空章节 + 规范标题措辞 |
| 结构散乱(无章节标题、内容堆叠、逻辑顺序混乱) | 三级 | 按模板重组段落归属 |
AI 根据文章实际质量自主判断等级。
TODO 占位内容。例如 literature 笔记缺少 ## 疑问与待探索,则追加:
## 疑问与待探索
TODO
执行前置条件:文件必须已备份。
二级和三级操作都必须在修订记录中详细记录结构变更摘要:
**2026-03-02** AI 标准化:补充缺失章节 ## 疑问与待探索(TODO)、## 个人收获(TODO)。原文结构未变更,仅在末尾追加。**2026-03-02** AI 标准化:按 literature 模板重组正文结构,将原"一些想法"段落归入 ## 个人收获,补充 ## 疑问与待探索(TODO)。原文已备份。无论如何不得执行以下操作:
[[]] 之外的正文文字(例外:去掉行内标签的 # 符号、规范章节标题措辞).obsidian/ 目录下的任何文件TODO: 待补充)采用分级自动化策略:低风险操作全自动执行,高风险操作输出计划等待确认。
Step 1:扫描全库。 扫描所有 .md 文件(跳过规则内的除外),完成全局分析:标签归并映射、文件重命名方案、type/value 判定、双链策略、入侵等级判定。
Step 2:备份。 将所有入侵等级 ≥ 二级的文件复制到备份目录(vault 上一级的 {vault名}_backup/YYYY-MM-DD/),保持原目录结构和文件名。
Step 3:自动执行。 直接执行以下变更(这些操作风险可控,不需要人工确认):
Step 4:输出阶段 1 报告 + 三级入侵计划。
报告内容:
TODO: 待补充 的文件用户确认三级入侵计划后,执行正文结构重组并追加修订记录。
如果没有三级入侵文件,阶段 2 自动跳过。
| 情况 | 处理 |
|---|---|
| 无法判断 type | 默认 note,修订记录标注 type 待人工确认 |
| 无法生成合理 summary | 填 TODO: 待补充 |
| 无法评估 value | 默认 1(未评级) |
| 双链目标不确定是否该存在 | 保持现状,变更报告标注 |
| 文件名冲突 | 不执行重命名,报告标注 |
| 非 .md / 模板 / 配置 / 隐藏文件 | 跳过 |
| 修改双链文字导致上下文不通顺 | 不改,报告标注 |
| 文件编码异常(非 UTF-8) | 跳过,报告标注 |
重复执行时,如果上次已清洗且无内容变化,本次应输出"无变更"。判断依据(按优先级):
只有检测到实际差异时才执行变更并追加修订记录。注意:即使有 AI 标准化历史记录,若规范(如 tags.md 词表)已更新导致当前状态不符合新规范,仍应执行变更。