Claude Code的skill怎麼寫才不爛?我的6層架構對照Matt Pocock的writing-great-skills
直接回答
寫skill的根本目標不是產出漂亮內容,是讓AI每次跑同一個流程,這叫predictability可預測。四個做法:內容按需求急迫度分層、把反覆出現的概念壓成單一引導詞、逐句做no-op測試砍掉沒改變行為的話、用正向指令取代禁止句。我維護半年的6層知識架構,跟Matt Pocock那個18萬星的skills repo,各自獨立長出同一套分層結論。
我維護一套用了半年的Claude Code規則系統,分成6層,從主檔的硬規則一路到按需載入的記憶。今天去讀Matt Pocock公開的skills repo,那個repo到今天183,549顆星、還在更新,我發現一件有意思的事:兩套系統從沒互相參考,卻各自長出同一組結論。
Matt Pocock的skills repo到2026年7月有183,549顆星,MIT授權,把整個agent設定目錄的幾十個skill公開,分成engineering、productivity、personal三類,每天還在更新。
—
先講我的6層在幹嘛。核心不是分類,是分什麼時候需要。每次session全載入的只有最上面兩層:主檔的硬規則加薄路由、常載的主題速記。完整的來源故事、對照表、正反例全部推到下層,速記裡的一行指標點到才載進來。這樣開場不會被幾百行規則塞爆,但要用的時候一定找得到。
Matt在他的writing-great-skills裡把這套叫progressive disclosure漸進揭露:SKILL.md壓到夠短,細節用context pointer推到獨立檔,指標點到才載。跟我的速記推全文,一模一樣。他還有一個router skill,一個只負責點名其他skill、說明各自何時用的入口,就是我主檔那層薄路由在做的事。
最像的是一個叫grill-me的skill。我點開它的原始碼,整個檔案只有一行:Run a grilling session。它不做事,只把工作delegate給另一個叫grilling的本體skill。這正是我一直在用的Thin Harness Fat Skills:外殼薄到極致,邏輯全集中在可重用的引擎。兩邊各自到達同一個設計,不是誰抄誰。
—
同源的地方讓我確認方向對,但真正值錢的是他有、我沒有的那幾塊。
第一個是leading words引導詞。把一個模型預訓練就懂的緊湊概念當關鍵詞重複用,一個詞就錨定一整區行為,靠的是喚起模型的先驗,不是花長句解釋。我回頭一看,自己其實已經在用:系統裡的踩(踩在哪個事實上)、剎車(這裡要停下重新分類),都是這種詞。差別是我沒把它當成一個可以刻意去獵的技術,Matt有。
leading words引導詞是一個模型預訓練就懂的緊湊概念(如tight、red、tracer bullets),在skill裡重複出現,用最少token錨定一整區行為,靠喚起模型先驗而非長句解釋。
第二個是no-op測試:逐句問這句有沒有改變AI的預設行為,沒有就整句刪,不是修字。第三個是正向勝過禁止:禁止句會召喚被禁的行為,別想大象先講了大象,所以預設寫要做什麼。第四個是他把predictability可預測當成skill存在的唯一理由,一句話定義:重點是每次跑同一個流程,不是每次產同一個輸出。
第五個是一組失敗模式的診斷詞:沉積、臃腫、重複、早退、no-op、負向。維護一個skill時拿這六個詞對照,比感覺怪怪的精準太多,一眼就指認得出它生什麼病。
skill存在的唯一理由是把隨機系統擠出確定性。predictability指的是agent每次跑同一個流程,不是每次產同一個輸出。判斷任何一句該不該留,問它有沒有讓流程更可預測。
—
讀完我沒有停在筆記。我把這幾塊萃取成一份寫skill的手藝標準,放進我系統的說明書層,還當場翻修了兩條自己的規則:一條結尾的不要斷定是no-op,正向已經說死,砍掉;一條絕對不要跑去找證據證明我對是負向句,翻成正向的拿一手資料去攻自己的結論。改動很小,但這是第一次我拿一套外來的craft標準去掃自己的規則。
—
最大的收穫不是那五個技巧,是兩套從不相干的系統收斂到同一個點這件事本身。它說明skill工程已經有它的重力方向:把隨機的AI擠出可預測的流程。誰先走到那裡,都會撞見同樣幾條路。