寫了 Skill 卻沒觸發?先看 CLAUDE.md、Skill 與 MCP 怎麼分工
規則越寫越長,拆成 Skill 後又不確定何時會載入?這篇整理三種機制的分工,並用具體例子檢查 Skill 觸發。
AI 每犯一次錯,你就在 CLAUDE.md 補一條規定;幾個月後連調個按鈕間距,都得帶著寫作與資料庫規定進場。官方文件建議 CLAUDE.md 控制在 200 行內,越長越難照做,多步驟流程應移到 Skill(也稱 AgentSkill)。
於是你把規定拆進五個 SKILL.md 資料夾,結果開新對話怎麼問,Claude 都當作沒看到。
為甚麼寫進 SKILL.md,它卻當作沒看到?
Claude 決定要不要自動打開一支 Skill 時,先看到的只有名稱和描述(description),完整正文要等呼叫時才會載入。
Skill 的實現就是 Prompt,在終端機呼叫時雖只顯示一行 /{skill-name},其實是把整份 SKILL.md 加進對話。為免預先塞滿空間,系統按圖中 L1、L2、L3 三階段載入,L1 描述常駐供比對、L2 正文呼叫時載入、L3 參考檔(references/)用到才讀。
改描述之前,先查這三件事
遇到 Skill 不觸發,先排除三個設定問題:
- 在不在清單裡:打
/skills或問 Claude 有哪些可用。沒出現的話,可能是對話開始後才新增(跑/reload-skills)、從上層目錄啟動尚未讀到子資料夾.claude/skills/,或名稱含非法字元。 - 開頭設定寫壞或鎖成手動:
SKILL.md開頭---間的設定(YAML)若格式寫錯,打/名稱還叫得動,但 Claude 讀不到描述會略過(加--debug可查錯);設了disable-model-invocation: true則只能手動打/名稱。 - 描述被拿掉:依官方文件,描述清單預算為模型 context 的 1%(單支上限 1,536 字元),裝太多時系統會依呼叫頻率從最少用的開始拿掉描述;可用
/context或/doctor檢查。
描述寫開口會講的話,開新對話用三句話測
設定正常卻沒觸發,就把描述(description)改成三項:一句話說產出甚麼、平常開口的原話、不處理的情況。
# ❌ 功能介紹寫法(沒有指出任務情境)
---
name: article-helper
description: 用於處理部落格文章撰寫、排版優化與品質檢查相關的任務。
---
# ✅ 情境寫法(一句話產出 + 開口原話 + 不處理邊界)
---
name: cablate-article-writer
description: |
撰寫或改寫 cablate.com 技術文章,套用疑問鏈節奏、SVG 圖解色票與去 AI 味檢查。
觸發情境:「幫我寫一篇新文章」「把這份筆記改成官網文章」「幫這段加一張 SVG 圖解」。
不處理:Threads 短貼文、純課程操作手冊(交給 social-post 處理)。
---改完開新對話用三句話測(前兩句叫得動、第三句不動才算完):直接講一句描述裡的原話、換句白話講同一件事、講一個相近但不該觸發的任務。若是組織導入,建議設 hook 記錄所有 Skill 調用狀況,用大量情況調描述(含誤觸發),沒有更好的做法。
哪些規則才該放進 Skill?
順著三個問題分流:
- Q1 下次還會遇到嗎? 先問「這個知識,我希望 AI 永遠記得嗎?」,單次任務留當下對話。
- Q2 缺連線還是缺做法? 缺資料庫等外部連線開 MCP Server,缺步驟往下走。
- Q3 每輪必守還是特定任務? 每輪底線放
CLAUDE.md,特定任務做法放 Skill。
| 機制 | 用途 | 何時使用 | 適合放甚麼 |
|---|---|---|---|
CLAUDE.md | 適用範圍的共通指引 | 依檔案位置與設定載入 | 專案目錄結構、常用測試指令、不可違反的安全紅線 |
AgentSkill | 特定任務的做法 | 適用或明確呼叫時載入 | 特定任務的 SOP、檢查清單與 references/ 範例 |
MCP Server | 外部工具與資料的連接方式 | 依工具與設定提供或搜尋 | 真正需要連線的外部服務(如查資料庫、讀行事曆) |
只有部分常見功能已被模型內建,用了發現卡手或不如預期,就還需要寫 Skill。寫 SKILL.md 時必做事項直接寫在裡面並標清檔案索引;同時要「陳述原則,不要窮舉規則」,窮舉通常只能做好少數情境,任務一變或資訊不足就容易「變智障」,貼太緊案例也難複用。
下次 Skill 不觸發,先做這四步
- 打
/skills確認在不在清單。 - 查開頭設定有無寫壞或設了
disable-model-invocation。 - 把
description改成開口原話與不處理邊界。 - 開新對話用三句話測。
Claude 只先看描述,寫得像說明書它就不會打開。
想盤點現有專案,貼下面指令就會先在對話列出分類與 description 改寫建議,確認後再動檔:
請讀取專案裡的 CLAUDE.md 以及 .claude/skills/ 底下的所有 SKILL.md(先不要修改檔案),幫我分成三類列出:
1. 每輪對話都必須遵守的全域底線(留在 CLAUDE.md,並壓縮成精簡指令)。
2. 只有特定任務(如寫測試、寫文章、發 PR、DB 操作)才用到的 SOP,建議拆成哪幾個 AgentSkill?
3. 檢查現有 SKILL.md 的 description:哪幾支寫得太籠統容易被略過?請直接改寫成「一句話產出+觸發原話+不處理邊界」版本。延伸參考:〈逆向 Claude Agent SDK 的快取成本〉、〈想在 Claude Code 混用 Gemini 與 GLM,為甚麼一改設定檔就全亂套?〉、〈Claude Code 實戰:我怎麼用 AI 寫完一整個網站〉;團隊導入與盤點見 AgentSkill 實戰課程與工程手冊、AI 工作流健檢。
