| name | lint |
| description | Obsidian Vault 全量体检。扫描断链、孤岛、缺标签、噪声标签、Clipping 库存、MOC 完整性,产出健康报告。当用户说"lint"、"体检"、"vault 检查"、"健康检查"时触发。 |
| invocation | user |
/lint — Vault 健康体检
参考规则:先读取 vault 根目录 SCHEMA.md 获取完整检查项定义。
执行流程
Step 1: 读取 Schema
obsidian read path="SCHEMA.md"
确认当前检查项清单和标签体系定义。
Step 2: 全量扫描
并行执行以下检查(使用 Obsidian CLI + subagent 加速):
2a: 链接检查
obsidian search query="[["
2b: 标签检查
obsidian tags path="Cards/"
2c: 格式检查
obsidian files folder="Cards"
2d: Clipping 库存
obsidian files folder="Clippings"
obsidian files folder="Clippings/已研究"
2e: MOC 完整性
2f: 空链统计(知识缺口)
Step 3: 安全写入
Lint 可自动执行的(无需用户确认):
- 生成健康报告
Lint 不能自动执行的(只报告):
- 修复断链、补标签、建 Card、修改/删除任何内容
Step 4: 生成健康报告
产出格式:
---
title: "Vault Health Report YYYY-MM-DD"
tags:
- type/health-report
date: YYYY-MM-DD
---
## 总览
- 健康评分: XX/100
- Cards: {总数} | Clippings: {unread数} unread / {read数} read
- 断链: {数量} | 孤岛: {数量} | 噪声标签: {数量}
## 🔴 需要修复(高严重度)
{断链清单、缺标签 Card 清单、缺 frontmatter 文件清单、MOC 链接失效}
## 🟡 建议改善(中严重度)
{孤岛 Card、噪声标签、超 30 天 unread Clippings、MOC 遗漏}
## 🟢 信息
{Clipping 库存统计、空链统计}
## 📚 研究缺口建议
{按 domain 分组的空链热点,建议研究方向}
Step 5: 存入 Vault
obsidian create path="Cards/Vault Health Report YYYY-MM-DD.md" content="..." overwrite
Step 6: 输出摘要
向用户展示报告核心数据和需要关注的高优先级项目。
评分规则
| 扣分项 | 每个扣分 |
|---|
| 断链 | -3 |
| 缺 frontmatter | -2 |
| 缺四维标签 | -1 |
| 孤岛 Card | -0.5 |
| 噪声标签 | -1 |
| MOC 遗漏 | -0.5 |
满分 100,扣完为止,最低 0 分。
Cron 模式
被 cron 调用时(非用户手动触发),行为与手动相同,但:
- 报告自动写入
Journal/Vault Health Report YYYY-MM-DD.md(而非 Cards/),避免每日例行报告在 Cards/ 堆积产生噪声
- 不输出到对话(无用户在场)
- 不做任何"顺手修复":Step 3 的 lint 写入边界(只能写健康报告、不能补标签 / 不能改 / 不能建其他 Card)在 cron 模式下完全适用,和手动模式无差别