0. 版本歷程
| 版本 | 日期 | 主要變動 |
|---|---|---|
| v1.0 | 2026-05-06 | 初版:lint score 趨勢 + 警戒值 + 跑 lint 時機 + 5 維度監控 |
📊 Wiki 健康度監控(Lint Trends & Alerting)
跟 Wiki_儀表板 的差別:儀表板 = 當下狀態(KPI 即時值);本檔 = 歷史趨勢 + 警戒。看儀表板知道「現在好不好」,看本檔知道「最近往哪走」。
為什麼分兩個檔
| 檔 | 觀察視窗 | 主要回答 |
|---|---|---|
| Wiki_儀表板 | 當下 / 今天 / 本週 | 「vault 現在健康嗎?」 |
| 本檔(Wiki_健康度監控) | 過去 N 天 / 月度 | 「health score 在進步還是退步?」 |
→ 儀表板用 Dataview 跑即時計算;本檔用人工維護的歷史 table(lint 跑完每次手寫一行)。
🚦 警戒值對照(5 個監控維度)
| 維度 | 🟢 健康 | 🟡 警戒 | 🔴 危險 | 行動 |
|---|---|---|---|---|
| Lint Score | ≥ 90 | 75-89 | < 75 | 🟡 跑 wiki-repair;🔴 暫停 ingest |
| Orphans | 0 | 1-3 | ≥ 4 | 🟡 加 backlink;🔴 重看分類 |
| Missing concepts | 0 | 1-5 | ≥ 6 | 🟡 補 entity 或改 inline code;🔴 集中建 |
| God nodes (warn) | 0 | 1-3 | ≥ 4 | 🟡 排程擴充;🔴 立即擴充 critical |
| Cross-domain collisions | 0 | 1 | ≥ 2 | 永遠 🔴 — 立即解(rename 或合併) |
| Draft entity 比例 | < 5% | 5-15% | ≥ 15% | 🟡 跑 wiki-status-promote |
📈 Lint Score 歷史趨勢
每次跑 lint 在表底追加一行。不要刪舊行——趨勢看在哪。
| 日期 | Score | Total | Orphans | Missing | God | Collisions | 觸發者 / 備註 |
|---|---|---|---|---|---|---|---|
| 2026-05-06 19:15 | 88 | 217 | 0 | 0 | 3 warn | 0 | 四大監控報表 + lint.py v1.3.7(含 root scan)後最終 |
| 2026-05-06 19:00 | 68 | 213 | 5 | 1 | 3 warn | 0 | 暫降:rename 後 root 檔不在 lint scope,需升 lint.py |
| 2026-05-06 18:38 | 78 | 214 | 0 | 0 | 3 warn | 0 | 本日整理收尾(Wave 0-3 Batch 1) |
| 2026-05-06 17:50 | 74 | 214 | 0 | 0 | 5 warn | 0 | Wave 1c+1d+2 完 |
| 2026-05-06 17:25 | 64 | 214 | 1 | 3 | 5 warn | 0 | 清 .fuse_hidden* 後 |
| 2026-05-06 17:00 | 54 | 214 | 1 | 15* | 5 warn | 0 | initial scan(含假陽性) |
| 2026-05-03 10:57 | 待補 | 192 | 0 | 0 | 5 warn | 0 | wiki-repair 後(wiki/reports/REPAIR_20260503_1057.md) |
| 2026-04-26 | 96 | 91 | 0 | 0 | 0 | 0 | 早期 final lint(plugin v1.2 之前) |
💡 填寫格式:日期時間(HH:MM)/ Score / Total pages / 4 個 indicator / 觸發者或備註。同日多次跑只保留最新一次或關鍵節點。
🎯 該跑 lint 的時機
依 CLAUDE §3.3 規範:
| 時機 | 說明 |
|---|---|
| 連續 3 天有 ingest | 內容變動大,可能產生新孤兒 / 缺失 |
| 任一 KPI 在儀表板亮 🟡 / 🔴 | 即時警示型 |
| 月度健康檢查(每月 1 號) | 排程型 |
| 發網站前 / 重大版本 release 前 | 把關型 |
| 一次性結構升級後(如 v1.3 階層遷移) | 驗證型 |
🔍 5 維度監控 KPI
ℹ️ Dataview Query(Quartz 不支援 GROUP BY / FLATTEN / DataviewJS,此處顯示原 query;實時結果請開 Obsidian)
TABLE WITHOUT ID
length(rows) AS "總頁",
length(filter(rows, (r) => r.status = "draft")) AS "Draft",
length(filter(rows, (r) => length(r.file.inlinks) = 0)) AS "Orphans",
length(filter(rows, (r) => date(today) - date(r.updated) > dur(90 days))) AS "90天 stale"
FROM "wiki/entities"
GROUP BY ""
各 domain 健康度分布
ℹ️ Dataview Query(Quartz 不支援 GROUP BY / FLATTEN / DataviewJS,此處顯示原 query;實時結果請開 Obsidian)
TABLE WITHOUT ID
key AS "Domain",
length(rows) AS "Entity",
length(filter(rows, (r) => r.status = "draft")) AS "Draft",
length(filter(rows, (r) => length(r.file.inlinks) = 0)) AS "Orphans",
round(100 * length(filter(rows, (r) => length(r.file.inlinks) >= 5)) / length(rows)) + "%" AS "≥5 inlinks"
FROM "wiki/entities"
GROUP BY domain
SORT length(rows) DESC
📊 God Nodes 追蹤(趨勢)
| 日期 | God Nodes (count) | 名單 | 備註 |
|---|---|---|---|
| 2026-05-06 18:38 | 3 warn | wiki-lint / wiki-query / 等第天花板 | Wave 3 Batch 1 後(CLAUDE.md(專案手冊)+ Sub-agent 解除) |
| 2026-05-06 17:00 | 5 warn | + CLAUDE.md(專案手冊)/ Sub-agent | initial |
→ 看 god node 名單變化可以推斷哪些頁被擴充過。
🛠 行動觸發
| 看到什麼 | 該做什麼 |
|---|---|
| Score 連續 2 次 < 90 | 跑 wiki-repair(「批量修 wiki」) |
| Missing ≥ 6 | 集中補 entity(「批次建缺失」) |
| Orphans ≥ 4 | 找 hub 加 backlink |
| God nodes ≥ 4 | 排優先序擴充(看 inlinks 高的先) |
| Draft 比例 ≥ 15% | 跑 wiki-status-promote(「批次升 stable」) |
| Collision ≥ 1 | 立即解(rename 或合併) |
🔗 跨層連結
- 即時狀態:Wiki_儀表板
- 待辦進度:WIKI_TODO
- 變更歷史:daily(每日異動)/ log(歷史檔,已停止追加)
- 刪檔規範:Wiki_刪檔處理SOP
- vault 維護指南:CLAUDE
- Lint 工具:
wiki/tools/lint.py