llm-wiki-lint · v0.1.0 · 2026-04-22 · sha256 2c9f46f4fe52f137
llm-wiki-lint v0.1.0A
Immutable. This exact content never changes and is served at /api/v1/blob/2c9f46f4fe52f137.
--- name: llm-wiki-lint description: "掃描 Karpathy LLM Wiki pattern 的三層 repo(raw/ + wiki/ + schema),檢查 frontmatter 完整性、source traceability、stale claims、orphan pages、missing topics、data gaps、cross-page contradictions。純 read-only,只報告不自動改。" version: 0.1.0 triggers: ["/llm-wiki-lint", "llm wiki lint", "wiki lint", "掃 wiki"] --- # llm-wiki-lint — Karpathy LLM Wiki 三層健檢 針對採用 [Karpathy LLM Wiki pattern](https://gist.github.com/karpathy/442a6bf555914893e9891c11519de94f) 的 repo(`raw/` + `wiki/` + `SCHEMA.md` / `log.md` / `index.md`)做 lint。**只報告不自動改**。 **跟 memory-lint 差異**: - `memory-lint` 針對 `~/.claude/memory/`(feedback / user profile / project,prefix-based) - `llm-wiki-lint` 針對 LLM Wiki repo(wiki/ 主題頁 + frontmatter + raw source traceability + index 一致性) --- ## 使用方式 ``` /llm-wiki-lint [path] ``` 可選參數 `path`:wiki repo root 路徑(含 `wiki/` + `SCHEMA.md` + `index.md`)。 ## Path 偵測順序 依序嘗試,命中第一個就用: 1. **使用者在指令傳入的 `path` 參數** — 最優先 2. **環境變數 `$WIKI_REPO_DIR`** 3. **當前工作目錄 `$PWD`** — 若含 `SCHEMA.md` + `wiki/` 子目錄則採用 4. 都找不到 → 告訴使用者「偵測不到 wiki repo」並停止,不要瞎猜 決定路徑後,先 `ls` 確認: - `<path>/SCHEMA.md` 存在 - `<path>/wiki/` 目錄存在 - `<path>/index.md` 存在(warning 不存在 → 建議新建) - `<path>/log.md` 存在(warning 不存在 → 建議新建) --- ## 執行流程 ### 1. 掃描範圍 - `<path>/wiki/*.md` — 所有主題頁 - `<path>/SCHEMA.md` / `index.md` / `log.md` — schema 層 - `<path>/raw/**` — 存在性檢查(gitignored 所以本地才看得到) - **跳過**:`<path>/journal/`(非 wiki 一部分)、`<path>/drafts/`、`<path>/scripts/` ### 2. 檢查項目 #### A. Frontmatter 完整性 每個 `wiki/*.md` 開頭應有 YAML frontmatter 含 4 必備欄位: - `title` — 主題名 - `type` — `overview` / `entity` / `concept` / `comparison` / `synthesis` 之一(Karpathy 5 類) - `last_updated` — 日期(YYYY-MM-DD) - `sources` — list,指向 raw/ 或外部來源 檢查: - 缺 frontmatter → **error** - 缺任一必備欄位 → **error** - `type` 不在 5 類內 → **error** - `last_updated` 格式錯誤 → **warning** - `sources` 空 list → **warning**(資料缺口,見 §G) #### B. Index 一致性 - `index.md` 列出但 `wiki/` 下檔案不存在 → **error**(missing file) - `wiki/` 下檔案存在但 `index.md` 沒列 → **error**(orphan file) - `index.md` 的 `last_updated` / `type` 跟檔案 frontmatter 不一致 → **warning**(drift) #### C. Stale claims(陳舊聲明) - **檔案 mtime vs frontmatter `last_updated` 差 > 14 天** → **warning**(frontmatter 沒跟上) - **frontmatter `last_updated` > 60 天** 且 `type` = overview / synthesis → **warning**(建議 review) - **內文提到「待 XXX 驗證」「規劃中」「尚未」等不確定詞 + `last_updated` > 30 天** → **warning**(可能已有進展沒回寫) #### D. Orphan pages(孤立頁面) 檢查 wiki/ 頁面間 cross-ref: - 一頁**無任何入站 cross-ref**(其他 wiki 頁都沒連到它) → **warning** - 例外:`index.md` 提到即不算 orphan #### E. Missing topic pages(缺失主題頁) - `index.md` 某類別(e.g. Infrastructure)**空**但其他類別有 → **warning** - **常見領域缺**(啟發式):若 repo 提到 database / deployment / security 但對應頁不存在 → **info** - `wiki/` 有頁但 `index.md` 未分類 → **error** #### F. Missing cross-refs(缺 cross-ref) 啟發式檢查: - 頁 A 內文提到頁 B 的 entity / 關鍵詞(如 `RAGFlow` / `service-x` / 特定 host 名),但沒用 markdown link 連到 B → **info** - **不強制**,只提示(人讀仍能理解 context) #### G. Data gaps(資料缺口) - `sources` 欄位空 / 指向消失的 raw 檔案 → **error**(traceability 斷鏈) - 主題頁內文 `raw/xxx` 路徑 ref → 對照 `raw/**` 實際存在性(若 raw/ 是 gitignored 須 local 才能檢) - 主題頁 Open questions 段 > 3 個月未解 → **warning** #### H. Cross-page contradictions(矛盾) 啟發式(粗略檢查,需人工確認): - 同一 entity(e.g. `db-host-01`)在不同頁描述狀態不一致 → **warning** - 同一數字(e.g. DB 容量 / 壓測 concurrent 數)在不同頁不同 → **warning** - 需要人工判斷是真矛盾還是更新時差 #### I. SCHEMA.md 宣告 vs 實況 - SCHEMA.md 說「15 主題頁」但實際 17 → **error**(需同步) - SCHEMA.md 的 type 列表跟實際使用不一致 → **warning** ### 3. 輸出格式 繁體中文報告(英文環境 user 可要求改英文): ```markdown # 🔍 LLM Wiki Lint 報告 **掃描目錄:** /path/to/wiki-repo **掃描時間:** YYYY-MM-DD HH:MM **掃描檔案:** N 個 wiki 頁 + schema 層 ## 🔴 Error(建議立即處理) - [類別] 描述 — 建議動作 ## 🟡 Warning(建議 review) - [類別] 描述 ## 🔵 Info(提示,可選處理) - [類別] 描述 ## 🟢 OK(通過) - Frontmatter 完整性 - Index 一致性 - ... ## 📊 統計 | Type | 頁數 | |------|------| | overview | N | | entity | N | | concept | N | | comparison | N | | synthesis | N | **總計:** XX 個 wiki 頁 ``` ### 4. 不做的事 - **不自動修改任何檔案** - **不自動刪除**(orphan / missing 都只建議) - **不跨機器**(只看本機指定 path) - **不訪問外部 API**(純 local grep / read) - **不寫 log.md**(lint 結果由使用者決定要不要 append) --- ## 範例輸出 ```markdown # 🔍 LLM Wiki Lint 報告 **掃描目錄:** /path/to/team-wiki **掃描時間:** 2026-04-30 14:20 **掃描檔案:** 17 個 wiki 頁 + SCHEMA.md + index.md + log.md ## 🔴 Error - [Frontmatter] `wiki/architect_cheatsheet.md` 缺 `sources` 欄位 → 補上 - [Index 一致性] `index.md` 列 `wiki/old_topic.md` 但檔案不存在 → 移除 index 對應行 - [SCHEMA] SCHEMA.md 宣告「15 主題頁」但實際 17 → 更新 SCHEMA.md ## 🟡 Warning - [Stale] `wiki/stress_test_findings.md` last_updated 2026-04-19(已 11 天),但檔案 2026-04-28 有改動 → 更新 frontmatter - [Orphan] `wiki/architect_cheatsheet.md` 無入站 cross-ref → review 是否該整合進 index - [Contradiction] `db-host-01` 在 topology.md 寫「gateway + DB」,在 architecture.md 寫「主 brain」→ 同步描述 ## 🔵 Info - [Cross-ref] `wiki/security_risks.md` 提到 `RAGFlow` 12 次但只連 `architecture.md` 1 次 → 考慮補連結 ## 🟢 OK - Frontmatter:16/17 完整 - Index 一致性:除 1 項均 OK - Type 分類:全部在 5 類內 ## 📊 統計 | Type | 頁數 | |------|------| | overview | 6 | | entity | 2 | | concept | 4 | | comparison | 0 | | synthesis | 5 | **總計:** 17 個 wiki 頁 ``` --- ## 注意事項 - 本 skill **純 read-only**,不改任何檔案 - **不處理 `journal/` / `drafts/` / `scripts/`**(非 wiki 一部分) - `raw/` 存在性檢查僅在 local(gitignored,遠端看不到) - 報告在對話中印出,不另存檔(要存可手動貼到某處 or append log.md DECISION entry) - 未來擴充方向: - `--fix` 模式(自動補 frontmatter / 更新 index,需 user explicit 同意) - cross-ref auto-insert suggestion - Git history 分析(stale 檢查更精準) - 跟 `memory-lint` 共用 config / convention