
Day27 [llm-wiki] 用 mod 裝飾我的 llm-wiki:我是如何強化我的 llm-wiki 儀錶板
接續 Day26,這篇寫 navi 這個 mod 的畫面設計:橫條、狀態列、輸入框、側邊面板各自負責一種注意力;統計分頁以「哪裡還沒連起來、哪裡值得再寫、書的概念流到哪些域」三個問題分區,每個數字旁邊都附一個只填不送的動作;趣味分頁放單篇事實。記錄每個畫面要我關注什麼、門檻怎麼定、以及看到畫面之後改掉的地方。

接續 Day26,這篇寫 navi 這個 mod 的畫面設計:橫條、狀態列、輸入框、側邊面板各自負責一種注意力;統計分頁以「哪裡還沒連起來、哪裡值得再寫、書的概念流到哪些域」三個問題分區,每個數字旁邊都附一個只填不送的動作;趣味分頁放單篇事實。記錄每個畫面要我關注什麼、門檻怎麼定、以及看到畫面之後改掉的地方。

Claude Code 新推出了 mod,我試著導入 llm-wiki。主軸是為什麼要用 mod:先分清 skill、hook、MCP、plugin、mod 各管什麼,再從最直觀的介面開始,在 session 裡畫出 vault 儀表板:側邊面板列出 TODO.md 未完成項與近期新增 wiki,點項目就把對應 skill 指令填進輸入框、點 wiki 頁直接在 Obsidian 開;面板下半部畫各域 wiki 數與 raw 堆積;輸入框上方的橫條放今日隨機三頁,狀態列放待辦/Inbox/本週新增數。接著往下看 mod 的 hook:旁觀、改寫、接手三種行為,以及它排在既有守門 hook 前面這件事。也記錄怎麼算「近期新增」、怎麼打開 Obsidian、mod 放在哪、raw 堆積的第一版為什麼不能用,以及幾個驗證錯誤。

用 git 同步 vault 十天後的四個觀察:log 和 TODO 這種每個動作都會碰的檔一直衝突、手機能互動很實用、本機所有 session 都踩在 main 上互相卡住、GitHub 網頁可以直接當閱讀介面。今天一次 push 被另一個 session 沒 commit 的變更擋下來,於是把「每個 session 都開 worktree、不分任務大小」寫成規則,並用 SessionStart 與 PreToolUse 兩層 hook 擋住在主目錄寫檔。記錄過程中的取捨(為什麼不是看情況才開、為什麼保留 Obsidian 自動 pull、規則之外要不要用 hook 硬擋、收件重複要查 git 歷史還是另記一本帳、過期的決策檔怎麼刪),四個坑(hook 擋到自己要寫的另一個 repo、剛開的 worktree 被判成可清、log 同一個 hunk 混著兩個 session 的條目、在 worktree 裡長指令被拒),以及接下來要觀察的九件事。

Day11 列過 llm-wiki 的 15 個 skill,但只有名字、一句話用途和行數。今天附上 inbox-triage、wiki-query、wiki-build、note-enrich、note-explore、vault-maintain 的範本,拿掉個人資訊和我這個 vault 特有的部分。每個 skill 附上什麼時候用、自己客製化時要注意哪幾條。把 llm-wiki 看成一台引擎:wiki-build 是核心,inbox-triage 負責加燃料,wiki-query 產出答案,vault-maintain 定期檢修,note-enrich 和 note-explore 分別顧思考的廣度與深度。另外說明其他 skill 為什麼不放,以及一個容易誤解的地方:這六個不是各自獨立的指令,它們共用 index.md、log、TODO.md 幾個慣例,也會互相呼叫。

vault 從 iCloud 搬到 git 時,防的是兩台機器互相覆蓋;但實際用法已經變成同一台電腦同時開好幾個 Claude session。共用一個工作目錄時 git 不會產生 merge conflict,只會靜默覆蓋。記錄一次真實撞車、一份八條的協定和它第一版建立在錯誤前提上的地方、log 月檔改用 merge=union 之後合併仍然出錯的兩種情況,以及接下來可能遇到的問題和走法。

Day10 結尾給了四句起步順序,今天把它展開成可以照做的版本。CLAUDE.md 201 行逐段盤完之後最反直覺的一筆是:行為準則只佔 14 行,路由與結構佔掉一半。skill 從 9 個開始,現在 15 個,中間有 10 個名字已經退場。這篇講五步起手式、每步配一個我實際付過的代價,12 條寫進 skill 才會生效的使用習慣,加上我實際的 routines(半年只有 42 個活躍天,斷過兩次一整個月)。文末附一段可以直接複製給 AI 的建置 prompt,它會先訪談你 12 個問題,再照你的答案長出你自己的骨架。

前兩天都在講這個筆記庫的儲存層——搬家的決定,和雲端同步碟咬出來的三類症狀。今天正式介紹它本身。Karpathy 的 LLM Wiki 架構是 Raw / Wiki / Schema 三層分工,我加的是「域優先」——用生活域當頂層資料夾,讓查詢有路徑可循,LLM 每次只讀 2 到 4 個檔而不是掃全庫。這篇講五個取捨:為什麼不用 RAG、為什麼域優先、為什麼 raw 不到五個檔不准開 wiki、為什麼規範要用 hook 擋、以及 skill 怎麼從原子指令收斂成管線。附三個實際踩過的判斷錯誤。

Day8 只交代了搬家的決定,把事故本身整篇往後推。這篇補上:一個同時活在兩台機器上、又刻意不用版本控制的 vault,被 iCloud 咬出的三類症狀——檔案脫水成佔位檔、rename 被雲端還原、以及最危險的靜默衝突副本(本尊消失、副本才是新版)。還有我為它長出的三層防線:CLAUDE.md、PreToolUse hook、定期巡檢,各自攔在錯誤的不同時間點,也各自有攔不到的東西。

放在 iCloud 的第二大腦 vault,五個月累積了檔案脫水、衝突副本、rename 被還原一整套症狀(細節明天單獨寫一篇)。搬到 Obsidian Sync 才發現它排除所有 dot 資料夾,.claude/ 的 15 個 skill 和 4 支 hook 一個都不同步。這篇記錄三個方案怎麼比、為什麼最後整個 vault 改用 git,以及三個坑:文件宣稱可攜但程式碼寫死、dispatcher 靜默不執行、我自己把路徑長度算錯。