iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0
AI Engineering

AI 開發雜記:Skill、CLAUDE.md、Memory 這些你可能忽略的細節系列 第 13

Day 13:CLAUDE.md vs Skill vs Memory——三層分工怎麼不互相打架

  • 分享至 

  • xImage
  •  

前言:三個地方都能寫規則,到底該寫在哪?

「這條規則到底該放進 CLAUDE.md、寫成一支 skill,還是存進記憶就好?」

這個問題聽起來瑣碎,但答錯的代價不小——前面幾天分別講過 CLAUDE.md 太長會怎樣(Day 03)、記憶為什麼要記「為什麼」而不是只記結論(Day 09、10),這兩件事乍看是獨立的問題,實際上是同一個更大主題的兩個切面:當你手上有三個地方可以放規則,卻沒有清楚的分工標準,遲早會出現同一條規則在兩個地方各寫一次、而且兩邊慢慢長歪成不同版本的狀況。今天要把 CLAUDE.md、Skill、Memory 這三層拼成一張完整的地圖。

三層各自回答一個不同的問題

CLAUDE.md 回答「現在的規矩是什麼」。 這裡放的是幾乎每次任務都適用、不隨時間變動(或變動很慢)的全站規範——編碼慣例、commit 訊息格式、技術選型這類「不管做什麼任務都該知道」的基本規則。它的特性是「當下有效」,讀者不用懷疑它過不過時,因為它就是現在的標準答案。

Skill 回答「這件事該怎麼做」。 這裡放的是特定情境才需要的具體操作知識——不是每次任務都用得到,但一旦碰到那個情境,就需要完整的細節。它的特性是「按需載入」:不會拖慢每次任務的起手速度,只有真的走進那個領域,才把對應的細節塞進判斷脈絡裡。

Memory 回答「發生過什麼事、為什麼、現在還適不適用」。 這裡放的是有時效性的內容——某次判斷被否決的理由、某項進度目前到哪、某個已知但刻意擱置的風險。它的特性是「隨時可能過期」,引用前要先確認現在還成不成立,不能當成永遠正確的事實。

三個問題聽起來相似,其實回答的時間軸完全不同:CLAUDE.md 是「現在」,Skill 是「碰到這個情境的時候」,Memory 是「過去發生的、可能已經變化的事」。分不清這三個時間軸,就是同一條規則被寫兩次的根源。

職責重疊時會發生什麼

當三層的分工沒講清楚,最常見的失敗模式是:一條規則先被寫進 Memory(因為當時是從一次糾正裡學到的),後來覺得「這條規則很重要,應該讓每次任務都看到」,於是又把它抄了一份進 CLAUDE.md——但原本 Memory 裡那份沒有被刪掉,理由是「留著當紀錄」。

問題不是留著本身,是這兩份內容從那一刻起就開始各自演化。之後如果這條規則有例外情況被發現,修的人很可能只改了其中一份(通常是比較常被看到的那份),另一份繼續躺在原地,變成一顆等著被踩到的地雷——下次有人恰好讀到那份沒被更新的舊版本,套用的就是過期的規則,而且完全不知道自己套用的是舊版。

用一組對照來看這個差異:

❌ 沒有分層意識,同一條規則寫兩次:
CLAUDE.md 裡寫:「呼叫外部服務前一定要檢查逾時設定。」
Memory 裡也寫:「呼叫外部服務前一定要檢查逾時設定
                (這條是某次因為忘記設逾時,任務卡住
                 五分鐘才發現時學到的)。」
→ 兩份內容重疊,日後只改了一邊,另一邊變成過期陷阱

✅ 分層清楚,每條規則只有一個歸屬:
CLAUDE.md 裡寫:「呼叫外部服務前一定要檢查逾時設定。」
Memory 裡改寫:「這條規則的由來:某次任務因為沒設逾時
                卡住五分鐘才發現——參見 CLAUDE.md 的
                對應規則,這裡只記緣由,不重複寫規則本身。」
→ CLAUDE.md 是規則的唯一真相來源,Memory 只保留「為什麼」
  這個歷史脈絡,兩者互補不重疊

判斷一條內容該放哪一層,可以先問自己:這件事「現在」還成不成立?如果答案永遠是「是」,放 CLAUDE.md;如果只在特定情境下才用得到,放 Skill;如果答案本身會隨時間變化、需要驗證,放 Memory。

三層互相參照,而不是互相複製

正確的分工不是三層完全獨立、互不往來——而是彼此用「指標」互相參照,而不是把內容整份搬過去。CLAUDE.md 可以簡短提一句「這個情境的細節見某支 skill」,Skill 內文可以提「這條規則的緣由記在某筆記憶裡」,但都只留一個指向,不重複貼上完整內容。這樣不管哪一層的內容更新,都只有一個地方要改,不會出現「改了一邊、忘了另一邊」的狀況。

這正是這個系列從 Day 01 開始一路強調的:AI 開發工具本身也要被當成軟體設計——三層分工的本質,跟軟體工程裡「單一真相來源」(single source of truth)是同一個道理,只是套用在規則管理上而已。

今日思考題

回想你手上正在用的 AI 協作規則:有沒有哪一條規則,你自己也說不清楚它到底該算 CLAUDE.md 的全站規範、還是某支 skill 的情境細節、還是某筆記憶的歷史脈絡?如果答不出來,這條規則很可能已經悄悄長出了不只一個版本。

今日重點回顧

  • CLAUDE.md 回答「現在的規矩是什麼」、Skill 回答「這件事該怎麼做」、Memory 回答「發生過什麼、現在還適不適用」——三層的時間軸不同,這是分工的核心依據
  • 職責重疊最常見的後果:同一條規則被寫在兩個地方,日後只改一邊,另一邊變成過期陷阱
  • 判斷歸屬的簡單問法:這件事「現在」永遠成立放 CLAUDE.md,只在特定情境成立放 Skill,答案本身會變放 Memory
  • 三層之間該用「指標」互相參照,不要把內容整份複製過去,確保每條規則只有一個真相來源

明日預告

明天用一個具體案例,示範把記憶跟 skill 搞混、同一條規則兩個地方各寫一次時,實際會踩到什麼樣的坑。


上一篇
Day 12:project 記憶會過期——怎麼設計「引用前先驗證」的紀律
系列文
AI 開發雜記:Skill、CLAUDE.md、Memory 這些你可能忽略的細節13
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言