CLAUDE.md 該寫多少?Anthropic 砍掉 80% 系統提示之後,我量了自己那 446 行
直接回答
CLAUDE.md 要輕,只寫這個專案特有的坑,不要寫模型本來就會做的事。Anthropic 為 Claude 5 世代砍掉超過 80% 的 Claude Code 系統提示,程式評測沒有量到退步,理由不是省 token 而是規則太多會互相稀釋。我量自己的設定,每次開工載入 446 行、按需載入 1475 行,而其中一條規則在五個常載檔案裡重複,同時已經有一個攔截程式在執行它。
Anthropic 為 Claude 5 世代刪掉了超過 80% 的 Claude Code 系統提示,內部的程式評測沒有量到退步。
我看到這個消息的第一個念頭不是「所以我也要砍」,是「那我自己那份到底多大」。
—
先講他們刪了什麼,因為那個對照比任何論述都清楚。
舊的版本裡有這樣一句:預設不寫註解,絕對不要寫多段的說明文件或多行註解區塊,最多一行。
新的版本改成:寫得跟周圍的程式碼一致,註解密度、命名、慣用寫法都對齊。
前者是禁令,後者是判準。
禁令的問題不是它嚴格,是它在該有例外的時候沒有留任何空間。一份需要說明的複雜演算法,照舊規則就不能寫多段註解,模型會照做,然後產出一個沒人看得懂的東西。
—
他們刪掉的東西可以分成四類。
第一類是絕對禁令。第二類是重複的指令,同一件事在系統提示裡寫一次,工具說明裡又寫一次。第三類是完整劇本,像是程式碼審查流程,以前每次都載,現在要用的時候才載。第四類是太多的示範,他們發現示範反而會限制模型去探索別的做法。
留下來的是四類:需要看情況調整的判準、工具怎麼用(只寫在工具說明裡一次)、這個專案特有的坑、以及個人或團隊特有的做法。
—
看完我去量自己的設定。這一段是我今天實際數出來的。
每次開工都會載入的:446 行。 放在按需載入那一層、叫到才讀的:1475 行。
按需的是常載的三倍多。這個結構本身是對的,Anthropic 給那個機制取的名字叫漸進揭露,他們的定義是在對的時間載入對的內容。
但接下來那個數字讓我停下來。
—
我搜自己的檔案,找那些寫著絕不、一律、必須的句子。
有一條規則是「不使用某個特定的標點符號」。它同時出現在五個每次都會載入的檔案裡。
而且它已經有一個攔截程式在執行了。我今天早上送訊息,就被那個程式擋下來兩次,因為我用了它不允許的符號。
所以現況是:一條已經有機器在強制執行的規則,另外還有五份文字副本每天佔位子。那五份不會讓我更遵守它,它們只是在稀釋旁邊那些沒有機器守著的規則。
—
這件事帶出一個更難的問題,而且我昨天才撞到。
我去查自己一個工具裡的五條規則,想知道哪些真的有人在執行。四條有對應的程式在擋。第五條沒有。
那第五條寫在兩份文件裡,寫得很清楚,看起來像有人守著。實際上沒有任何東西在檢查它。
更難堪的是,那條規則我自己犯過兩次,第二次是在我把它寫進文件之後。
寫下來不會讓自己記得。那正是它需要被執行的證據。
—
所以真正的判準不是「這條會不會佔位子」。
446 行大約兩萬 token,在百萬等級的視窗裡佔不到百分之二。純看空間,這件事根本不值得做。
判準是「這條加進來之後,會不會讓旁邊那條變模糊」。
規則不是寫了就會生效,它要在該生效的那一刻出現在視線裡,而且要夠顯眼。二十條並排的時候,沒有人分得出哪一條是真的在意的、哪一條只是順手寫的。
—
Anthropic 給使用者的建議只有三句,我照抄。
搜尋你的檔案裡的絕不、一律、不要這些字,刪掉三種:重複的、互相矛盾的、只是在複述通用好習慣的。
CLAUDE.md 保持輕,一段講這個專案是幹嘛的,其餘只放真正的坑,不要寫顯而易見的事。
skill 拆成多個檔案加一個薄的入口,不要寫成一份長文。
他們還特別警告一件事:不要把 CLAUDE.md 跟 skill 變成「所有你可能會遇到的做法」的中央倉庫。
—
他們也推出了一個指令叫 doctor,用來幫使用者調整自己的 skill 跟 CLAUDE.md,會給精簡建議讓你逐條接受或拒絕。其中一項檢查是提議刪掉那些模型可以自己從程式碼推導出來的內容。
這一段我是研究整理的,還沒有實際跑過,所以不寫成實測。
—
最後一件事值得說清楚。
他們講的「沒有退步」,是用他們自己的評測量出來的。他們自己也提醒,在有法規要求的行業,那些明確的合規規則還是要留著。
所以這不是一則「規則越少越好」的消息。它是一則「分辨哪些是模型本來就會的、哪些是你這裡才有的」的消息。
前者刪掉不會有事,後者刪掉會出事,而多數人的檔案裡兩種混在一起。
—
我自己的結論是先量再砍。
沒有量測之前,我不知道那 446 行裡哪幾條是每天在用的。這時候動手,砍掉的可能剛好是撐住品質的那幾條。