我把自己寫給 AI 的規則盤了一次,約 220 條。裡面真的有機制在執行的,約 24 條。代價最高的那 60 條裡面,48 條完全靠 AI 自己記得。這不是在講模型不聽話,是我寫了規則卻沒給它觸發點、執行器跟驗收方式,所以它從頭到尾就只是一段文字。會去盤這件事,是因為我先發現規則主檔砍掉三分之一之後,18 天就長回來了。我用的是 AGENTS.md,Claude Code 的使用者通常是 CLAUDE.md,ChatGPT 那邊則是自訂指令,名字不一樣,遇到的狀況是一樣的。
- 你有一份給 AI 讀的規則檔,而且它越寫越長,你隱約覺得該整理了
- 你精簡過一次,過幾週發現又變回原樣,不知道問題出在哪
- 你寫了一堆規則,可是沒把握 AI 到底有沒有照做
- 一張四欄盤點表,用來查你的規則到底有沒有人在執行,含沒有 Hook 環境的手動版
- 三題准入閘,可以直接複製去用,把預設值從「加」翻成「不加」
- 一條真實的瘦身與回胖曲線,還有我對它為什麼發生的解釋
事情是怎麼開始的
有天看到一篇貼文,轉述 Anthropic 工程師的訪談,說他們把 Claude Code 的系統提示詞砍掉了 80%。理由很反直覺:模型越強,給它的指令要越少,因為太多限制跟範例會壓縮模型的解題空間。
我第一個反應是,那我的規則庫是不是也該再砍一輪。
我先讓 Codex 幫我查證,查完發現兩件事。
第一,貼文裡那句「超過 90% 工程師都在建立自我改進迴圈」,找不到官方對應的說法。我查到的相近說法講的是別的事,跟這句對不上,所以這個數字我不引用。
第二,Anthropic 官方的 Claude Code 最佳實務文件,到現在還是明白寫著可以把具體的多步流程放進自訂命令。所以「砍 80%」有它的脈絡,不是一個可以直接套用的通則。
順帶說,那句「砍掉 80%」本身也是二手轉述,我沒有找到原始訪談出處。這篇後面所有的判斷都建立在我自己的數字上,不是建立在那個 80% 上。
那我到底該不該砍?我先去量了一下我自己的數字。
我的實際曲線
| 時間 | 字數 | 變化 |
|---|---|---|
| 7/4 瘦身前 | 25,036 | |
| 7/4 瘦身後 | 15,822 | 砍掉 37% |
| 7/16 | 21,028 | +5,206 |
| 7/18 | 23,412 | +2,384 |
| 7/22 | 24,219 | +807 |
18 天回胖 8,397 字。
先講這份數據的限制:這些字數是我從自己的自動備份資料夾裡,把各個時間點的規則檔逐一算出來的。那是我的私有檔案,你沒辦法查驗,只能看我的記錄。而且備份會定期清理,所以這條曲線本身也會消失。這件事後面會再提到。
這條曲線讓我打消了再砍一次的念頭。它讓我看到另一件事:我沒有任何機制阻止規則變多。在這種狀態下再砍一次,18 天後我大概會再看到同一條曲線。
為什麼會復胖
以下是我自己的解釋,不是實驗結論。
我有一份方法論叫「減法許可協議」,從開源技能包 Ponytail 提煉來的。它說任何有減法性質的規則,都需要三個零件。
決策階梯:把「請簡潔」這種模糊的形容詞,變成一條有順序、可以逐項打勾的是非題清單。形容詞沒辦法執行,階梯可以。
舉證反轉:把預設值從「做」翻成「不做」。想加東西的人要先證明非加不可,舉證責任從想刪的人跑到想加的人身上。
紅線保留:任何減法規則上線時,同時釘一張絕不砍的清單。原則負責砍複雜,清單負責保命。
我看了一下自己的狀況:階梯有,紅線有,舉證反轉沒有。
我把這個缺口當成復胖的原因。每次有新規則要進主檔,預設答案都是「加吧,反正也不差這幾百字」。加的成本是零,刪的成本很高,曲線當然只會往上。問題不在勤不勤勞,在於預設值站在復胖那一邊。
防復胖引擎長什麼樣
我補的東西很簡單,就是三個問題。每次要往規則主檔加東西之前,先回答:
- 這條「每輪對話」都需要載入嗎?這裡問的是載入頻率,不是重要程度。很多規則很重要,可是只在特定情境需要,那它應該放按需載入的地方。
- 既有的規則或工具已經涵蓋了嗎?重複維護同一件事,遲早會變成兩個互相打架的版本。
- 這條掛在哪個執行器上?Hook、腳本、既有流程的掛載點,還是純靠自覺?如果是純靠自覺,那違反的代價是什麼?代價低才留純自覺。
三題有任何一題答不出來,就不要進主檔。
這三題可以直接複製去用,不管你的規則檔叫什麼名字:
我要在規則主檔新增一條規則。開始寫之前先回答三題: 1. 這條每輪對話都需要載入嗎(問的是載入頻率,不是重要程度)? 2. 既有規則或工具已經涵蓋了嗎? 3. 掛在哪個執行器上(Hook/腳本/流程掛載點/純自覺)? 純自覺的話,違反的代價是什麼? 三題有任何一題答不出來,就不要加進主檔,改放按需載入的地方。
我另外把它做成了一支 Hook,改主檔的時候會自動跳出來問,順便告訴我現在幾個字、比基準多了多少。它不阻擋,只提醒,同一個工作階段只出現一次,不會吵。
會選提示型,是因為我還不知道有沒有效。一個月後我會看字數曲線,止漲就維持提示型,還在漲再考慮升級成擋下來。
沒有 Hook 環境的話怎麼做
上面講的 Hook 需要能跑腳本的環境。如果你是用 ChatGPT 網頁版、Claude 網頁版這類介面,同樣可以做,只是換成手動的。
把上面那段提示詞存成一個固定的自訂指令或記事本片段。每次要改規則檔之前,先貼一次,讓 AI 陪你答完三題再動手。
開一個試算表,一列一條規則,四個欄位分別是觸發器、執行器、證據、跨家覆蓋。你可以把規則檔整份貼給 AI,請它照這四欄輸出,再自己抽查幾條有沒有標錯。
每週固定一天,把規則檔的字數記到同一個試算表的第二個分頁,一行一筆。四週之後你就有自己的曲線了。
差別只在自動跟手動。判斷邏輯完全一樣。
一個更值錢的發現
做這件事的時候,我順便把整份規則主檔盤了一次。找了個子代理逐條讀完 259 行,每一條標四個欄位。
| 欄位 | 要回答的問題 |
|---|---|
| 觸發器 | 誰、在什麼時候會讀到這條? |
| 執行器 | Hook、腳本、流程掛載點,還是純人工自覺? |
| 證據 | 什麼輸出能證明做過? |
| 跨家覆蓋 | 我用的每一個 AI 工具,是不是都真的受這條約束? |
盤出來約 220 條規則。有機械執行器的,約 24 條。
再往下切,把代價高的挑出來,也就是會刪除資料、會覆寫、會對外送出、會部署、會給客戶看的那些,60 條。這 60 條裡面有執行器的,12 條。
也就是說,48 條代價最高的規則,完全靠 AI 自己記得。
這裡要標一個限制:代價高不高是我自己標的,屬於主觀判斷,邊界案例大概有正負三條的誤差。條數不是精確值,可是量級不會差太多。
裡面最刺眼的一條是「跨家審稿」。我規定重要產出必須由不同家的模型互審,禁止自己審自己。這是我整套品質體系的基石,寫在「品質硬門檻」那一段。它零機械檢查。
我這輪工作確實有跑四輪跨家審,包含這篇文章本身,可是那是我自己開口要求的,沒有任何東西提醒我要跑。
盤點的時候還看到一個模式:出過事的規則,後來都補了 Hook。沒出過事的,都還靠自覺。我的補洞機制是事後反應型。那 48 條裡面應該有一部分是因為還沒出過事才沒被補上,不過我沒有逐條追過每一條的歷史,這只是我看整體的印象。
這比砍字重要在哪裡
回到最初那個問題:該不該再砍一輪。
答案是不該,至少不該優先做。因為規則多不多,跟規則有沒有效,是兩件事。
一條沒有觸發器、沒有執行器、沒有完成證據的規則,就算把它寫得再精簡、放在再顯眼的位置,它仍然只是一段文字。反過來,一條有 Hook 擋著的規則,就算它佔了 200 字,它每天都在幹活。
所以我後來的順序是:先量執行覆蓋率,再決定刪、移、合併還是機械化。先砍字的話,砍完會發現該擋的還是沒擋住。
這裡順便講個我寫文章時的習慣,剛好同一個道理。文章超過字數的時候,我以前都用砍字的,保留原本的結構一個字一個字摳,砍好幾輪字數還是降不太下來。後來改成砍段,重新判斷讀者需不需要知道這件事,整段拿掉用一句話帶過。
兩種砍法各有適用場景。已經確定每一段都該留、只是句子囉嗦的時候,砍字有效;架構還沒定、或是自己也覺得某幾段可有可無的時候,砍段的效果大很多。規則庫也一樣,與其在條文裡摳字,不如先問「這條需要每輪都載入嗎」,答案是否定的整條搬走,主檔立刻少一段。
你可以怎麼做
如果你也在維護一份給 AI 的規則檔,我建議的順序是這樣。
找一天把規則檔逐條標上那四個欄位。你會很快發現哪些條文根本沒有觸發點,哪些從來沒有人驗過有沒有做到。這一步是唯讀的,不會動到任何東西。
把「代價高但沒有執行器」的挑出來,逐條決定:補一個機械檢查、改寫成會被觸發的形式,或是降級搬去按需載入的地方。不用全部都補 Hook,Hook 太多會互相干擾,誤攔率會上升。
把上面那三題放進流程,讓新規則進主檔之前要先過。這一步才是防復胖的關鍵。前兩步做完沒有這一步,過幾週你會再看到同一條曲線。
還有第四步,這是我這次最後才想到、而且是被 Codex 點出來才修對的一件事。
第四步:留證據
你要能證明機制有效。我一開始把字數記錄寫在提示 Hook 裡,結果它只記到「每個工作階段第一次、而且沒有變短的那次改動」。刪除完全不會被記錄,而「有沒有下降」正是這條曲線要回答的問題。
後來把記錄拆成獨立的一支,在改動之後才量測,每次都記,這條曲線才變成可以拿來做決定的東西。沒有這一步,一個月後你只能憑感覺說「好像有變好」。
還有第五步,而且它是前面四步的保險。
第五步:排一個固定的複查行程
前面四步都是一次性的動作。閘門裝好了、證據在記了,可是如果沒有人固定回去看,那條曲線就只是一個沒人讀的檔案。
我的做法是排一個每週的自動行程,固定時間跑三件事:讀字數曲線看有沒有止漲、看這週有沒有新規則進了主檔卻沒答三題、抽查一條有執行器的規則是不是真的還在運作。沒有排程工具的話,行事曆設一個每週重複的提醒也可以,重點是它會自己找上你,不是等你想起來。
這一步就是這篇文章講的東西套用在自己身上。複查如果只靠記得,它就是第 48 條沒人執行的規則。
最後
那篇貼文最有價值的其實是最後一句話:指令變少不代表不要規則,關鍵是留下最重要的邊界,目標、權限、驗證、停止條件。
這句話我完全同意。拿這把尺去量我自己的規則庫,量出來的結果是:我該做的是把那 48 條沒人執行的規則補上執行器,而砍字可以晚一點再說。
砍到最後你會發現,能砍的其實有限。真正決定規則庫有沒有用的,是每一條規則背後有沒有一個東西在幫你執行它。