這個 15,000 字元預算,是所有 Claude Code 版本都一樣嗎?
這個數字是目前版本的預設值,並非從 Skill 功能推出時就固定不變。這類系統層級的預算上限,屬於 Claude Code 版本迭代中比較容易調整的參數之一,社群裡也有使用者觀察到不同版本之間這個門檻略有變動。與其記住一個固定數字,更可靠的做法是養成用 --debug 或 /doctor 實際檢查的習慣——這樣不管官方未來怎麼調整這個上限,你的排查方式都不會過時。
除了描述被丟棄,還有哪些原因會讓 Skill 明明裝了卻不觸發?
描述預算超支只是其中一種原因,社群整理出的常見原因還包括:YAML Frontmatter 裡開頭的 --- 標記前面多了空白或文字,導致整份檔案被當成沒有 frontmatter;描述裡有一個沒加引號的冒號,讓 YAML 解析失敗;描述本身寫得太籠統,沒有涵蓋使用者實際會用的措辭;以及兩個安裝位置(例如個人層級與專案層級)存在同名但內容不同的 Skill,導致實際生效的版本跟你以為在編輯的版本並不是同一份。
這些原因造成的現象都很類似——沒有錯誤訊息、Skill 就是安靜地不存在——所以排查時建議按照這個順序檢查,而不是先入為主地假設一定是描述寫得不好。
我只裝了三、四個 Skill,需要擔心這個問題嗎?
如果你目前只裝了個位數的 Skill,單靠描述本身的長度通常還不太可能碰到 15,000 字元這個門檻——除非你的每個描述都寫得異常冗長。這個問題比較容易在以下情境浮現:你逐漸累積了十幾二十個 Skill 與自訂 Slash Command,或是安裝了某個包含大量子技能的第三方 Skill 套件包(例如一次安裝就帶入十幾個技能的市集套件)。
即使目前用量還不到門檻,養成「新裝的 Skill 先用 --debug 確認有沒有被列進系統提示詞」這個習慣還是有價值的——這能讓你在真正踩到問題之前,就先了解自己的排查工具怎麼用,等到有一天 Skill 數量真的累積上去,你不會是第一次面對一個完全沒有錯誤訊息的沉默故障。
你裝了一個 Skill,YAML Frontmatter 的 description 寫得很具體,語法也沒有錯,測試時卻發現 Claude 完全不觸發它——沒有錯誤訊息、沒有警告、對話裡看起來就像這個 Skill 從來不存在。多數人第一直覺是回頭重寫 description,但如果問題其實出在别的地方,重寫再多次也不會有效果。
Claude Code 在每次對話啟動時,會把所有已安裝 Skill 與 Slash Command 的 name 與 description 彙整成一份清單,注入到系統提示詞裡。這份清單本身有一個總字元預算上限,官方目前的預設值是 15,000 字元(約 4,000 tokens)。當你安裝的 Skill 與 Command 數量夠多、加總的描述長度超過這個上限時,Claude Code 不會報錯、也不會在畫面上顯示任何提示——它會直接從清單裡開始丟棄描述,而且丟棄的優先順序,是從你觸發次數最少的 Skill 開始。
這個丟棄機制帶來一個特別容易誤導人的後果:一個全新安裝、還沒被觸發過的 Skill,因為觸發紀錄是零,天生就排在被丟棄清單的最前面。也就是說,你越是想測試一個新 Skill 能不能正常運作,它越有可能因為預算超支而根本沒被列進系統提示詞裡——你看到的「不觸發」,可能從頭到尾都不是描述寫得不夠好,而是 Claude 這次對話壓根沒看過這段描述。
這也解釋了另一個常見的疑惑:為什麼同一個 Skill,昨天觸發得好好的,今天突然又不動了。如果昨天到今天之間你又多裝了幾個 Skill 或 Command,總字元數可能剛好跨過了那條 15,000 字元的門檻,原本排在後面、觸發次數較少的 Skill 就被擠出清單。這種波動沒有任何畫面提示,只會讓人以為是 Claude 本身「變笨」或「不穩定」。
遇到 Skill 不觸發的情況,官方文件建議的排查順序,是先用 claude --debug 啟動,檢查 Skill 載入狀態,或執行 /doctor 做設定檢查,確認這個 Skill 的描述這次對話到底有沒有被送進系統提示詞——如果連送達都沒有,那麼不管把 description 改寫成什麼版本都不會有幫助,因為問題根本不在文字內容上。只有在確認描述確實送達、Claude 讀到了卻依然沒有觸發的情況下,才輪到檢查描述本身寫得夠不夠具體、有沒有涵蓋使用者實際會用的措辭。
如果你確實需要同時掛載大量 Skill 與 Command,Claude Code 提供了一個環境變數可以調高這個預算上限,讓更多描述有機會被送進系統提示詞。但單純調高上限只是延後問題發生的時間點——如果 Skill 數量持續增加,遲早還是會再度超支。更根本的做法是定期盤點已安裝的 Skill,把長期沒被觸發、或跟其他 Skill 功能重疊的項目移除,讓預算留給真正會用到的那些。
如果你的專案或個人環境裝的 Skill 數量已經超過十幾個,值得養成一個習慣:安裝新 Skill 之後,不要只靠「感覺上應該會觸發」來判斷成功與否,而是實際用 --debug 或 /doctor 確認它有沒有被列進當次對話的系統提示詞。這個檢查步驟花不到一分鐘,卻能讓你分清楚「Skill 沒被送達」跟「description 寫得不夠精準」這兩種完全不同、需要不同解法的問題,避免在錯的地方反覆修改。