今天要解的問題
Day31 降強調的時候,subagent 順手回報了一個不一致:note-explore 產的探索頁寫 source: "[[...]]",外提的概念頁寫 sources: "[[...]]",同一件事用了兩個欄位名。Claude 先把 note-explore 改成 sources,然後回報 vault 裡還有 14 個 wiki 頁用單數 source 放 wikilink。
我的回覆很短:
請統一 source 名稱
同一則訊息裡我也提了另一件事:藝評頁的標題不只要有展名,後面還要接我的一句話,例如「富邦美術館《梵谷:尋光之路》撥開黑夜,見到太陽,點燃心中照亮外界。畫是透露情緒的」。
所以今天兩件事:
- 主線:
source統一成sources,牽動 73 個檔和五個 skill - 支線:藝評頁標題改成「前綴《展名》一句話」,連同既有的 5 頁一起補
想法與取捨
兩欄各司其職,還是全部收進 sources
動手前 Claude 先數了一次現況。sources 用在 146 個頁面,幾乎都是 wikilink;source 用在 69 個檔,裡面裝了三種東西:
- 外部網址:20 個
- vault 內的 wikilink:15 個
- 純路徑、文字說明、
enriched-from-inbox這類標記:34 個
這時候的規則其實是兩欄分工:.claude/rules/wiki-format.md 寫著 source 放外部網址、sources 放 vault 內連結。但 69 個 source 裡,照規則用的只有 20 個。
Claude 給了兩個選項:一是全部統一成 sources,網址、wikilink 都放進去;二是保留兩欄,把放錯的 49 個搬到對的欄位。它推薦第一個,我也選了第一個。之後規則只剩一句:來源欄位只有 sources。
流程標記算不算來源
那 34 個雜項裡,有 23 個是 enriched-from-inbox、enriched-from-topic、enriched。這是 note-enrich 用來標「這篇被網路查過」的,不是來源,放進 sources 只會讓「來源」的意思又變模糊。
所以這類另立一個欄位 enriched:,值是 inbox、topic 或 true,對應原本的三種寫法。剩下的純路徑轉成 wikilink、文字說明(例如「Inbox/2026-05-08T00:30:14+08:00.txt」這種原素材已經刪掉的擷取)照原文放進 sources。
vault 內的路徑:裸名,還是加路徑
純路徑轉 wikilink 時,vault 的慣例是用最短的裸名 [[名稱]]。但有一個檔不能這樣做:art/wiki/典藏庫房的竊竊私語.md 的來源是 art/raw/典藏庫房的竊竊私語.md,兩個檔同名。
照 wiki-format 的慣例,非 books 域的裸名會解析到 wiki 頁,也就是這一頁自己。所以規則是:basename 在全 vault 唯一就用裸名,不唯一就加路徑,寫成 [[art/raw/典藏庫房的竊竊私語]]。
藝評標題的一句話:誰寫
標題格式是我給的,但那一句話由誰產生,Claude 拿出來問:
- 我自己提供,Claude 只問
- Claude 從我說過的話裡挑幾句給我選
- Claude 依對話擬一句,我改
art-review 有一條核心規則叫污染防火牆:「觀察與評述」這段只能放我說過、或我點頭確認過的內容,外部讀法不能混進去。掛在標題上的那句話,純度要求一樣高。
我選了第二個。做法寫成新的 Step 2.5:從我倒雜訊和回答追問時說過的原話裡,挑 2–3 句原文照錄當候選,我選一句、合併或改寫。我跳過的話,標題就先只有「前綴《展名》」,Claude 不代寫。
前綴:場館,還是作者
最初的格式是「場館《展名》一句話」。補既有 5 頁時,我加了一條:若是個展,就把場館換成作者名。
5 頁裡有一個不是展覽:《兩韓統一》是喬埃.波默拉編導的劇場,Claude 問劇場要用場館(國家戲劇院)還是作者。我選作者,所以規則變成:個展、單一主創的劇場或音樂會用作者名;聯展、典藏展、多位主創用場館。
既有 5 頁的一句話,Claude 從每頁的「觀察與評述」挑候選,我逐頁選:

- 托馬斯.薩拉切諾《共織宇宙》最動人的網不在科技裡
- 富邦美術館《林布蘭到哥雅》畫家在騙眼睛
- 台北當代藝術館《美術館之後》After 不只是之後,更是背後
- 高美館《典藏庫房的竊竊私語》藝術需要兩種相反的身體才能完整
- 喬埃.波默拉《兩韓統一》忘了原本的自己
《典藏庫房的竊竊私語》那頁的觀察段讀起來像整理過的文字,Claude 在問題裡直接標註「候選不確定都是你的原話,可自己寫」。我還是選了其中一句。
標題怎麼排:還沒決定
改完之後我又想討論呈現方式。Claude 列了四種:
- A 直接相連:
前綴《展名》一句話,現在用的就是這個 - B 加分隔符:
前綴《展名》|一句話,邊界最清楚 - C 一句話在前:
一句話|前綴《展名》,像文章標題,但同一位作者的展在列表裡不會排在一起 - D 拆成兩個欄位:
title放前綴和展名,subtitle放一句話;要先確認部落格主題能顯示副標,Claude 在部落格的layouts/沒找到
還有兩個連帶問題:個展的展名已經含作者時(《梵谷:尋光之路》)前綴要不要省略,內文 H1 要不要跟 title 一致。Claude 的建議是先用 B。我沒有當場決定,請它記進 TODO.md,之後再挑。
實作
遷移腳本
遷移用一支一次性腳本,放在 vault 外,先 dry-run 列出 69 個檔的前後對照,看過才加 --apply。分類規則的核心是這兩段:
if len(src) == 1 and re.fullmatch(r"enriched(-from-(inbox|topic))?", src[0]):
enriched = {"enriched": "true", "enriched-from-inbox": "inbox",
"enriched-from-topic": "topic"}[src[0]]
def to_link(v):
if v.startswith(("http://", "https://", "[[")):
return v
cand = ROOT / v
if cand.suffix == ".md" and cand.is_file():
stem = cand.stem
if len(names.get(stem, [])) == 1:
return f"[[{stem}]]"
return f"[[{cand.relative_to(ROOT).with_suffix('').as_posix()}]]"
return v
names 是全 vault 的 basename 索引。網址和既有 wikilink 原樣保留;指向 vault 內真實檔案的路徑轉成 wikilink,同名時保留路徑;其他文字原樣放進 sources。頁面原本就有 sources 的,兩邊合併成清單,例如 cfgc-cupping-form.md 原本 sources 指向 raw、source 放 Google Drive 網址,現在兩個都在 sources 底下。

套用後檢查兩件事:全 vault 已經沒有 source:,也沒有任何檔出現兩個 sources:。部落格這邊,Hugo 的 layouts 沒有讀 .Params.source,改名不影響網站。vault-forge 在 vault 外,這次沒找到它的位置,沒查。
規則與 skill 同步
wiki-format.md:拿掉source: url那行,sources的說明改成「網址、vault 內連結、文字來源都放這裡」,另加enriched欄位- note-enrich、topic-probe、art-review(含模板)、note-explore:產出 frontmatter 的地方全部改成
sources
medium-cover 和 threads-cards 也有 source:,但那是寫進 social-cards/ 底下的紀錄檔,不是 vault 內容,沒動。
art-review 的模板少了 title
改標題規則時順便發現,art-review 的模板沒有 title 欄位,而 title 是 wiki 頁的必填欄位。這次補上 title 和 aliases。aliases 放展名:標題變長之後,用展名查重和搜尋還是找得到。
踩到的坑
兩個 session 同時改 enriched
遷移推上去之後,要併 main 時撞了三個檔:note-enrich、wiki-build、CLAUDE.md。
原因是 Day29 那個 session 在同一段時間把 note-enrich 改成「原文一塊、## 補充 一塊」,而且也處理了 frontmatter:source: enriched 改成 enriched: 日期。兩邊各自都想把 source 從流程標記解放出來,但給 enriched 的值不一樣,我這邊是 inbox/topic/true,那邊是日期。
解法是採用 main 的設計:之後的 enrich 寫日期,已經遷移的舊檔維持 inbox/topic/true,規則裡把兩種都寫明。另外 main 版的 wiki-build 還寫著「wiki 的 source 只放外部 url」,這句在統一之後已經不成立,順手拿掉。
最容易漏的是第三件:main 這段時間新增了 4 個檔,又用了單數 source。遷移腳本重跑一次,總數從 69 變成 73。之後的做法:全 vault 的遷移,併完 main 要再 dry-run 一次。
自己給的範例違反自己的規則
加上「個展用作者名」之後,art-review 裡的範例「富邦美術館《梵谷:尋光之路》……」就錯了。那是我最早給的範例,但梵谷那個展是個展,照新規則前綴應該是作者,不是場館。
範例就改成三個符合規則的實例:薩拉切諾、波默拉(作者),林布蘭到哥雅(場館)。而「展名已經含作者」這個情況,就是上面那個還沒決定的連帶問題。
小結
- 全 vault 73 個檔的
source統一進sources,流程標記改成enriched;raw 與 wiki 同名時用路徑限定,避免連回自己 - wiki-format 與五個 skill 的規則同步;Day29 文章補上兩則更新說明
- art-review 標題改成「前綴《展名》一句話」:一句話從原話挑候選、我選;個展與單一主創用作者名
- 既有 5 個藝評頁補上新標題與 aliases,模板補上 title
標題要用 A、B、C 還是 D,還在 TODO.md 等我決定。
