用 Claude Code 重建我的 Obsidian 筆記系統

為什麼要做、怎麼做、與 Claude 的協作體驗,以及 Obsidian + Heptabase 雙系統工作流成果。

用 Claude Code 重建我的 Obsidian 筆記系統
Photo by David Travis / Unsplash

一、重建之後的樣子

使用 Claude Code 一個小時後,我將放置近半年未整理的 Obsidian vault,整理出以下成果 :

  • 891 個檔案歸入 Archive,按來源分成 9 個子資料夾
  • 100 個檔案建立了內部連結
  • 8 個 MOC(Map of Content) 索引頁
  • 7 個插件設定完成(Dataview、Templater、Calendar、Periodic Notes、Kanban、Linter、Obsidian Git)
  • 3 個自動排程任務持續運作
  • 清空 Projects、Areas、Resources 

現在,我每天打開 Obsidian,就可以直接到 Inbox 區直接開始工作,寫 Daily Note,透過 Claude 自動檢查進度,並且不再只是把 Obsidian 當成一款好用的文字編輯器或是筆記軟體,而是真正將它融入每天的工作流程裡,無視繁瑣的整理與檢查程序,把注意力放在生產力上。

二、亂七八糟的檔案

約在一年前停用 Obsidian 後,我的 vault 裡面便沉積了約 900 多個檔案,其中大多數是在我剛進入社會工作時留下的舊資料,大致上包含以下幾種內容:

  1. 在網路行銷公司擔任文案編輯時,撰寫的新聞稿、社群貼文存檔。
  2. 在資訊設計公司擔任 Project Manager 時,留下的一些專案文件、工作資源。
  3. 自由接案的作品,如介紹設計公司案例的網站文案,評測產品的訪談文章等。
  4. 日常留存的閱讀筆記、課程筆記、日記、求職紀錄等散亂的隨筆資料。

當年的我沒什麼整理文件的概念,也缺乏系統化的思考,因此在資料命名上通常都很隨意,因此 vault 裡面就堆滿了像什麼「文案初稿 v2」、「0301 會議記錄」之類的檔案,光看名稱根本無法判別內容到底是什麼,就像標籤還亂貼的紙箱,光是看著它們堆到天花板的樣子,就已經讓人耗盡清理的動力。

但就像人生中那些心存僥倖而逃避的問題一樣,它們終究都會回來的。

由於急需求職,我勢必得把這些檔案全部掃過一次,檢查有沒有能展示的數據或工作成果,要是早個幾年,光是把每個檔案都點進去看一遍,就得花掉大量瑣碎的時間,更不用說逐項重新命名、放到正確的分類層級裡。

幸好現在有 AI。

三、我是怎麼做的

Step 1:研究先行,確定方向

在叫 Claude Code 動手之前,有兩件基本的事情是我需要釐清的:

  1. 我的日常工作流程是什麼?
  2. 我會在什麼情境下使用 Obsidian?

這兩個問題聽起來像是廢話,但其實比什麼都重要。
根據 Forte Labs 在 2021 年的調查,有七成採用 PKM(個人知識管理) 工具的人在六個月內就會放棄,而關鍵的問題就在以下三項:

  1. 假裝理想的自己:想像自己會每天整理筆記、定期回顧、把靈感串聯成文章——但那根本不是你真實的日常。
  2. 收集取代了產出:整理、分類這些動作,讓人感覺像在做事,但其實完全沒有具體的產出。
  3. 缺少日常的入口:筆記系統沒有嵌入任何一件你本來就在做的事情,完全仰賴人類最薄弱、最不可信的意志力維持。

所以,在動手前應該先反過來想:與其設計一套漂亮的系統再配合它,不如先找到每天已經在做的事情,接著讓 Obsidian 自然地鑲進生活裡,並且,這件「事情」必須夠具體,有時間、有地點,能夠具體的被語言描述出來。

舉例來說,當我每天第一次坐下來、翻開筆電,打開 Claude 已經是我固定的習慣。不論是找工作、學習新知識、求職或自由研究,已經擁有背景資訊和檔案的 Project 是我最熟識的入口,換句話說,這是我最沒有壓力的「入口」。

接著,當我在和 Claude 對話的過程中,我可能會請它解釋我在線上課程中想釐清的概念,並同時把這些內容用自己的語言記入 Heptabase 的 Journal 當中,而當整個 Timeblock 告一段落,我就會將這些內容拉到白板裡,快速整理成卡片筆記。由於我將 Heptabase 視為我主力的學習工具,同時它也就是我的思考場域,因此它的「入口」就是「遇到新知識,想內化學習的時候」,只是一個自然的延伸行為。

當某個主題告一段落——例如學完了 Claude 101 的線上課程,相關的卡片盒筆記也已經都自然放在 Heptabase 的白板上,這時,我就會迅速把筆記全部丟進 Claude Code,讓它依據我預先設定好的 skill,按這些筆記內容產出初稿,並存進 Obsidian 的 Inbox 當中。因為 Claude Code 已經非常清楚我的 Obsidian 結構跟命名規則,因此我就可以把全副心力都修改稿件上。

當符合現實的使用情境出現,接下來的事情就容易得多。我只需要把這些背景提供給 Claude,然後叫他幫我按照資訊,寫一份計劃就好。

--

Step 2:設計結構與命名規則

在 Plan Mode 和 Claude 討論之後,我最終決定採用兩個概念來來替整個計劃定調:

其一,是讓 AI 擁有全自動維護筆記系統的能力。
其二,是知名筆記分類框架 PARA(Projects、Areas、Resources、Archive)。

00 Inbox/          — 新檔案先丟這裡
01 Dashboard/      — 首頁、索引、導航
02 Projects/       — 進行中的專案
03 Areas/          — 持續維護的領域
04 Resources/      — 剪貼簿(Obsidian Web Clipper)
05 Archive/        — 所有舊內容,按來源分類

由於 Resources 的原始概念已經放在 Heptabase 中處理,所以我稍稍變動了一下設定,將它和 Obsidian Web Clipper 協同簡化成一個純粹的剪貼簿。

結構定好,接下來就是解決命名混亂的問題。
我和 Claude Code 制定了一個簡單的規則:

[類型標籤]|[主題名稱]

例如:新聞稿|品牌聯名活動上線閱讀筆記|原子習慣課程筆記|架構性思考

我讓 Claude Code 依據此規則,將每一個檔案的標題、內容都重新審視過一遍,將所有檔案重新命名,並補上完整的 frontmatter(標題、建立日期、標籤、狀態),往後便能透過檔名快速回想檔案的內容,一目瞭然,整理起來也就方便得多。

Step 3:歸檔與建立索引

將檔案重新命名之後,它們仍然散落在各處,於它們都屬於舊內容的性質,所以下一步便是叫 Claude Code 將所有檔案歸檔到 Archive 資料夾裡。

但我又不希望這些舊內容因此沉入水底,因此接著我又設計了一個解決方案:MOC(Map of Content)。簡而言之,這是一個使用內部連結搭建的索引標籤,我將其分為八個類別:

  1. 主題
  2. 生活
  3. 專案
  4. 人物
  5. 課程
  6. 閱讀
  7. 論文
  8. 聯盟戰棋

這些類別直接對應著我在 Heptabase 的 8 個母白板,每個項目使用 [[]] 內部連結指向相關筆記,讓 Claude Code 自動串起檔案。整理完成後,只要打開 Graph View 就能看到 MOC 的星象圖。

Step 4:設定自動排程

最後的步驟,就是讓 Claude Code 自動地持續幫我維護這個系統。
為此,我再設定了三個排程任務:

  • 每日 Ingest(早上 9 點):自動處理 Inbox 裡的新檔案,分類到正確的資料夾
  • 每週 Lint(週日早上 10 點):健檢整個 vault,找出命名不規範、缺少 frontmatter、空白檔案
  • 每月 Digest(每月 1 號早上 10 點):生成月報,統計新增了多少筆記、哪些專案有進展

至此,整個 Obsidian vault 的重建程序便告一段落。

四、犯錯檢討

「全部」的歧義
在第一次計劃時,我和 Claude 溝通的方式是請他「幫我整理全部的檔案,並重新命名」,然而 Claude 卻只改了 900 多個檔案中 64 個它認為「需要改」的檔案。我必須明確告訴 Claude 把「所有檔案全部都按照規則重新命名」,它才會真正逐項去處理所有的 900 多個檔案。

跟 AI 協作和人協作相同,自以為清楚的指令,對方也可能會有截然不同的理解。

避免使用中文路徑
Glob 搜尋遇到中文資料夾名稱會出錯,最後改用 find 指令解決。

模板語法錯誤
由於我在 Obsidian 安裝了社群的 Templater 插件,Claude 將它和原始的的 Templates 混淆。
例如:Claude 一開始用了核心語法 {{date}},但 Templater 的語法使用 <% tp.date.now() %>。後來必須在 frontmatter 統一修正全部的模板。

參考來源