← ClaudeAtlas

vault-distilllisted

將 Obsidian vault 中多篇相關筆記整合為單一主題 MOC(Map of Content):辨識重疊、萃取共識與差異、對照官方來源校正事實,透過 reviewer/fixer subagent 迭代直到定稿。也支援推薦適合整合的候選主題(vault 中已累積到內聚門檻的群組)。使用時機:使用者要求「整合筆記」、「合併同主題筆記」、「建立 MOC」、「主題整合」、「topic synthesis」、「有什麼主題可整合」、「推薦主題」,或直接呼叫 /vault-distill。
lllloo/obsidian-memory · ★ 0 · AI & Automation · score 60
Install: claude install-skill lllloo/obsidian-memory
# Synthesizing Notes to MOC **每次呼叫做一件事**,用 vault 狀態 + 使用者意圖決定當前步驟,不在單次呼叫內執行迴圈。重複呼叫才推進到下一步。 ## 狀態偵測(每次呼叫最先執行) ```bash [ -f "vault-map.md" ] || { echo "ERROR: cwd 不在 repo root"; exit 1; } ``` **Step 0:預設=推薦主題(F)** **只要使用者沒指定具體主題、也沒下動詞快捷詞,預設一律走步驟 F**。包含: - 純 `/vault-distill` 無 args - 訊息只是泛問:「有什麼建議的主題」/「推薦主題」/「有什麼可以做」/「有什麼主題可以整合」/「來看看吧」/「整理一下」等 - 訊息只說「整合筆記」「做個 MOC」但沒指名主題 → **立刻跳步驟 F**,不掃描 MOC、不詢問、不列清單。 → F 跑完後若使用者選了主題再進 A/B/C/D/E。 **Why**:絕大多數呼叫情境下,使用者並不記得 vault 有哪些待整合的群,先問「要做什麼主題」是把工作丟回給使用者;直接推薦才有資訊價值。 **Step 1:動詞快捷路由** 若使用者訊息含動詞快捷(`review`/`fix`/`校正`/`verify`/`dispose` + 主題名稱),直接路由對應步驟(B/C/D/E),不掃描 MOC、不詢問。 **Step 2:指定主題時掃描現有 MOC** **僅當使��者明確指定了主題名稱**(例:「整合 Claude Code Skills 的筆記」、「distill 動效相關」)且沒下動詞時,才執行以下掃描: 先嘗試讀取 `.vault-distill/state.json`(gitignored,不存在時靜默略過)取出 `mocs` 鍵清單,再分兩處掃描合併結果: - `rg -l "^\s*- moc" Cards --include="*.md" --glob='!**/index.md'` - `rg -l "^\s*- moc" Topics --include="*.md" --glob='!**/index.md'` state.json 的 `round` 與 `candidates` 欄位直接傳給後續步驟(省去跨 session 輪數推算)。詳細 schema 見 `references/state-schema.md`。 額外偵測半成品: - 含 `draft: true` 的 MOC → 標記為「進行中」 依指定主題與既有 MOC 的對應關係路由: **指定主題尚無對應 MOC** → 直接進 **A**(生成 v0) **指定主題已有 1 個對應 MOC** → 問:「<主題> MOC 已存在,要做什麼?」,選項:review / fix / 校正 / 處理原筆記 → 依回答進 B / C / D / E **指定主題對應多個 MOC(同義詞或子主題並存)** → 列出清單(標注所在位置 Cards/ 或 Topics/),問:「要繼續哪一個?」 → 確認後再問同上選項,路由到 B / C / D / E --- ## 步驟 A:生成 v0 **觸發**:`Cards/<主題>.md` 不存在。 ### A1. 蒐集候選 先讀 `vault-map.md` 了解 vault 結構,再用 Glob / Grep 找候選(pattern / path 為獨立參數): -