你有沒有過這種經驗:照著自己寫的筆記做,做完發現筆記是錯的,而且筆記也是自己寫的?
我今天踩到了
事情是這樣的
Claude Code 開機跳一行紅字:
212 skill descriptions dropped · /doctor for details
我裝了 222 個 skill,超過 Claude Code 預設的 1% context 額度,所以 212 個被「dropped」— 描述不會載入,等於 auto-trigger 失效
那要怎麼關掉不常用的?我打開兩個月前自己寫的 rules 文件:
~/.claude/rules/anchor-summon.md
裡面寫得很清楚:
設
~/.claude/settings.local.json的skillOverrides:{ "skillOverrides": { "ref-low-priority": "off" } }
好,照辦
我跑了一個 script,把 130 個不常用的 skill 塞進 skillOverrides 標 "off",restart Claude Code
結果開機訊息:
212 skill descriptions dropped · /doctor for details
一個都沒少
我先怪錯三個地方
第一個反應:是不是改錯路徑了?
我用的是 Claude Code Junyi variant,config dir 在 ~/.claude-junyi/,不是 ~/.claude/,前兩天剛踩過這個雷
跑 env | grep CLAUDE_CONFIG_DIR 確認
CLAUDE_CONFIG_DIR=/Users/young/.claude-junyi
~/.claude-junyi/settings.local.json 是 symlink 到 ~/.claude/settings.local.json 嗎?
不是
我建 symlink:
ln -s ~/.claude/settings.local.json ~/.claude-junyi/settings.local.json
restart
仍然 212
第二個反應:是不是 value 不對?也許不是 "off" 是 "disabled"?
開始 grep 各種 keyword
第三個反應:是不是 Junyi 不支援這個 setting?
開始懷疑雙 Claude 架構
一小時就這樣過去
真相是
我打開 Claude Code 的 --help:
claude --help 2>&1 | grep -i skill
--bare ... Skills still resolve via /skill-name
--disable-slash-commands Disable all skills
沒有 skillOverrides
我去 WebSearch「Claude Code skillOverrides」
只搜到三個結果,全部都是我自己寫的 rule 文件
skillOverrides 從來沒有存在過
我兩個月前憑著「合理推測」寫了一個我覺得 Claude Code「應該」要有的 setting,命名也很合理,看起來像真的,連我自己過了兩個月都被騙
Claude Code 看到那個 unknown key 直接 silently ignore,不報錯不警告
我塞 130 個 entries 到一個工具不認得的 key 裡,當然不會有效果
真正能用的是這個
回到官方 docs。Claude Code v2.1.129 之後其實有正式機制:
// ~/.claude/settings.json
{
"skillListingBudgetFraction": 0.02
}
預設 0.01(1% context),改 0.02 = 加倍 budget
或者直接跑:
/skills
打開 UI picker 個別 toggle disable
或者最強的:每個 SKILL.md frontmatter 加:
disable-model-invocation: true
這三個是 Anthropic 真的有實作的,看 --help 跟官方 docs 都查得到
我的 skillOverrides?是我的想像
真正的教訓
不是「我寫錯 setting」,這只是表面
真正的問題是:
我兩個月前寫筆記時沒有驗證
當時的我覺得「Claude Code 應該要有這個 feature」,順手寫進 rule 文件當成真實 SOP
兩個月後的我,照著筆記做,掉進自己挖的坑
更慘的是:那份筆記如果再不發現,我可能會繼續餵給未來的 AI session,繼續誤導下一個我
AI 時代寫 config / 寫 SOP 的鐵律:
- CLI 真的 support 這個 key 嗎? 跑
<tool> --help看 - 官方 docs 真的記載這個 setting 嗎? WebSearch 或 fetch 官方
- GitHub issue 有人問過嗎? 看 feature request 或 bug report
- 改完真的有 observable behavior change 嗎? 跑一個必然會變的 sentinel test
四題沒過,就標 [待驗證],不要寫進 SOP
更不要寫進「未來的我會照著做」的筆記
後記
我把這個教訓寫成 feedback memory:
memory/feedback-imagined-feature-not-verified.md
然後在 CLAUDE.md 加一條覆寫規則:寫任何 config key 前必先驗證
最後寫了一個 skill-budget-fix skill,把真實的修法 SOP 化,下次看到「N skill descriptions dropped」就跑這個 skill,不會再寫想像出來的東西
是說,這篇文章本身也是一個防呆機制 — 寫公開出來,公開後就改不掉了
你的 rule 文件,有沒有像我這個 skillOverrides 一樣,是兩個月前的你自己編出來的?
下次 onboarding 新工具時,要不要做一輪 audit 看看?
