🎯 什麼情境該想到我

當你的 skill 從 3 個長到 15 個,開始重複、開始互相呼叫、開始沒人記得哪個還能用的時候。

⚙️ 怎麼用(步驟 / 公式)

1. ⭐ 用「誰能叫它」分成兩層——這一條決定其他所有事

誰能叫職責
user-invoked只有人打指令編排:把一連串步驟串起來
model-invoked人或模型都能持有可複用的紀律:一件事的正確做法

規則:user-invoked 可以呼叫 model-invoked,但絕不呼叫另一個 user-invoked。
這條把依賴圖壓成兩層,不會長成任意呼叫的網。

2. 重複的段落要抽成 model-invoked 原語

發現三個 skill 裡有同一段「怎麼訪談使用者」,那就抽出來變成一個 model-invoked skill,讓上層共用。
實例:grilling 這個面談原語被 grill-megrill-with-docstriagewayfinderimprove-codebase-architecture 五個編排型 skill 共用。
判準:同一段紀律出現第二次,就該抽。

3. 給 skill 一個晉升生命週期

用資料夾分級,並明確規定哪一級才會出現在對外清單

bucket意義出現在 README/清單?
engineering/productivity/promoted,正式供應✅ 必須
in-progress/公開但未出貨,徵求回饋❌ 禁止
misc/留著但很少用,不推廣❌ 禁止
deprecated/已停用❌ 禁止

沒有這層分級,實驗品跟正式品會混在一起,清單很快失去可信度。

4. ⭐ 有路由就要維護——「會說謊的路由」

如果你有一個「該用哪個 skill」的入口,把同步更新寫成硬規則

新增、改名、移除、或改變任何 user-reachable skill 時,必須重讀路由的 SKILL.md 並更新它。
一個它從沒提過的新 skill,或一個它還在路由過去的舊 skill,就是一個會說謊的路由。

5. 每個 skill 的文件用固定四段

What it doesWhen to reach for itCommon questionsIt’s working if
最後那段最少見也最有用——它讓使用者能自己判斷 skill 是否真的生效,而不是只能猜。

把 skill 以 symlink 連進 ~/.claude/skills~/.agents/skills,這樣 git pull 就等於更新已安裝的版本,不必重裝。新增或改名後重跑連結腳本。

🧪 我實際套用的紀錄

  • 2026-08-28:(待填)

⚠️ 注意 / 什麼時候不適用

  • 少於 5 個 skill 不需要這套。分層與 bucket 是規模到了才有的問題,太早做只是額外負擔。
  • 分層要落到設定、不能只寫在文件上:user-invoked 要真的關掉模型觸發(例如 disable-model-invocation: true 加上對應 agent 設定裡的 allow_implicit_invocation: false),否則規則會被繞過。
  • 抽共用原語會增加一層間接。只在同一段紀律真的出現第二次時才抽;為了「將來可能會用」而抽,是在製造維護成本。
  • 路由是最容易腐爛的一環,因為它不會報錯。要靠流程規則盯住,不能靠自覺。
  • 改了共用的 model-invoked 原語,上層每一個編排 skill 都要重驗工具-測試skill的觸發邊界

🔗 相關工具