vault-lintlisted
Install: claude install-skill lllloo/obsidian-memory
# /vault-lint — Vault 健檢
掃描 → 列分類報告 → 等用戶拍板 → 修。
## 前置條件
用 `Read vault-map.md` 確認 cwd 為 vault root(harness-native,不經 shell)。讀不到就停止,告知用戶 cd 到 vault root。
## 掃描
所有掃描邏輯收在 `scripts/lint.py`(純 Python stdlib,跨平台,無外部依賴)。cwd 為 vault root,用完整相對路徑執行:
```
python3 .agents/skills/vault-lint/scripts/lint.py
```
腳本輸出單一 JSON 物件到 stdout,**不修改任何檔案**;判讀與修補由本流程依下方規則處理。
JSON 欄位對應的問題與嚴重度:
| JSON 欄位 | 意義 | 報告分類 |
|---|---|---|
| `inbox_backlog` | Inbox 篇數(排除 `Inbox/Updates/`) | > 50 🔴;> 20 🟡;≤ 20 不報 |
| `dead_links` | wikilink 目標不存在(已排除 `[[<佔位符>]]`、帶路徑、`.base`) | 🔴 |
| `missing_title` | Cards/Topics 缺 `title` | 🔴 |
| `missing_description` | 規範必填 `description` 缺失(Topics `index.md`、`Inbox/Clippings/*`、YouTube 影片筆記) | 🔴 |
| `topics_missing_index` | Topics 資料夾無 `index.md` | 🔴 |
| `schema_drift` | `lint.py` 的 `WHITELIST` 與 `CLAUDE.md` schema 表格不一致(`null` = 一致) | 🔴 |
| `sensitive_drift` | 敏感資料 token 黑名單漂移:`CLAUDE.md` 正典 vs `lint.py` 的 `SENSITIVE_PREFIXES`(`canon_vs_lint`)、各 subagent reference 是否涵蓋正典每個前綴(`references`);`null` = 一致 | 🔴 |
| `missing_tags` | Cards/Topics 缺 `tags`(已排除 `index.md`) | 🟡 |
| `orphans_topics` | 升級主題卻無入站 wikilink(異常) | 🟡 |
| `topics_not_in_vaultmap` | Topics 未收錄進 `vault-map.md` | 🟡 |
| `missing_required_dirs` | 規範常設資料夾遺漏(git 不追蹤空目錄) | 🟡 |
| `frontmatter_order` | frontmatter 白名單欄位順序錯亂 | 🟡 |
| `frontmatter_rogue` | 出現白名單外游離欄位(`[路徑, [欄位…]]`) | 🟡 |
| `extracted_to` | 半消化 Inbox 筆記(仍有剩餘段落) | 🟡 |
| `orphans_cards` | 孤立 Cards | 🔵(半自動卡片盒,孤立可接受;摺疊成數量,不逐張列) |
| `missin