
我們來到 Day15 也是 Week3 的第一天啦~
相信上一週體驗 MVP 開發的過程中,你應該會發現一些問題,像是某些話一直在不停的重複講好幾次,例如:commit 訊息要怎麼寫。
儘管 CLAUDE.md 裡面有寫了一些規則(通用),但有些東西它還是沒有寫進去,更不用說 CLAUDE.md 有一個建議行數上限(約 200~250 行左右),這些東西如果塞進去會太肥,每次重講又太累。
所以今天我們就要來認識一個新的東西,叫做「SKILL」。
所以 SKILL 是什麼呢?簡單來講,它就只是一個資料夾以及一個 Markdown 檔案(類似於純文字檔案、CLAUDE.md 這類檔案)而已。
「這麼單純?」你可能會這樣想。
對,真的就是這麼單純。
但它帶來的威力可一點都不單純,因為這些 SKILL 裡面會包含這些:
甚至會有寫好的執行輔助程式碼,讓你在需要的時候可以直接使用。
還是很難理解它的威力如何對吧?這邊我們先切換視角到比較遊戲面一點的概念去形容,或許你會更好懂。
假設你今天正在玩一款 RPG 遊戲,你控制、遊玩的遊戲角色通常會許多技能(Skill),像是「火球術」、「治癒術」、「隱身術」等等,這些就是你在遊戲中可以使用的技能。
所以當我們想要使用這些技能時,只需要大喊一聲:
「我要使用火球術!」
接著遊戲角色就會自動幫你施展這個技能。
那為什麼我們只要說「我要使用火球術!」就可以施展技能呢?正常來講,當我們要施展特定技能,如:「火球術」的時候,遊戲角色需要知道這個技能的施展方式、施展步驟、施展規則等等,如果你事先把這些準備好,那你可能要先畫出魔法陣、準備好魔法材料、唸咒語等等,這樣才能施展技能,但當你封裝成技能後,你可能只需要唸出咒語、準備好魔法材料就可以直接跳過畫出魔法陣這個繁瑣的步驟,直接施展技能。

理解之後,我們就可以把這些概念拉回到 AI 世界的 SKILL 上(就像是遊戲角色的技能一樣),你只要告訴 Claude 你想要使用某個 SKILL,它就會自動幫你完成這個技能所需要的步驟、規則、範例等等,讓你可以更快速、更有效率地完成任務。
SKILL 是 Claude 專屬功能嗎?不,市面上的 AI 廠商都有提供 SKILL 這個功能,但由於我們是以 Claude Code 為主,所以還是會圍繞在 Claude Code 的 SKILL 來做說明,而其他的 AI 廠商設定基本上你上網查一下都可以找到,而且都很雷同、相似。
那這個 SKILL 它會放在哪裡呢?這邊我們先來看它會長什麼樣子。
首先,你會有一個 .claude 的資料夾,裡面放一個資料夾叫做 skills,然後每一個 SKILL 都是獨立的資料夾,裡面還會有一份 SKILL.md:
.claude/
└── skills/
└── commit-message/ ← 這個資料夾的名字就是 SKILL 的名字
└── SKILL.md
那這個 skills 這個資料夾基本上會有兩個地方可以放,分別是:
~/.claude/skills/,~ 代表你的電腦最頂層目錄,Mac 是 /Users/你的名字,Windows 是 C:\Users\你的名字): 這是「個人用的 SKILL」,預設會把你全部開啟的專案都套用,但不會被 commit 進任何專案。而觸發方式也有兩種:
/資料夾名稱(像上面那個就是 /commit-message)手動叫它出來。很有趣吧?這邊讓我們繼續認識 SKILL 的威力吧。
相信你對於 SKILL 應該有基本認識了,接下來我想再更拆分 SKILL 的概念。
因為我認為 SKILL 還可以分成三種類型的 SKILL:
/名稱),然後 AI 才會幫你施展這個技能。scripts/ 底下),好處是 AI 不用每次自己重寫一遍,直接跑這一段程式碼就好了,就像...「把 CSV 資料畫成圖表」、「批次壓縮圖片」(我個人就很常跑批次壓縮圖片),一樣套用上 RPG 來講,概念就像 「具備技能的魔法道具」 裝備之後,AI 就可以直接使用這個道具的技能。為什麼我會這樣拆分呢?其實也是在順便回答觸發方式,畢竟知識類型的 SKILL 你會希望 AI 預設就判斷要不要用(沒事你會想要一直打 /請使用台灣用語 嗎?),流程型的 SKILL 你又不希望 AI 自己亂跑(畢竟一個流程可能要跑很多步驟),所以就有了兩種觸發方式。
當然,上面的拆分方式並不是官方所定義與區分的(官方只區分「參考知識」與「任務流程」兩種),而是我個人認為再細分成三種或許你會更好理解使用時機,也才不會讓一個 SKILL 變成一坨什麼都塞的大雜燴。
接下來聊一下 SKILL 與斜線指令之間的曖昧關係,如果你有自己學 Claude Code 的話,你可能會看過一個東西叫做 commands,它的概念就是「自訂斜線指令」。
前面章節中,我們有嘗試過 /rewind、/clear、/compact 等這類內建斜線指令,這些都是 Claude Code 提供的預設指令,然後這些指令是無法調整的的,因此 Claude Code 為了解決上面的問題(當時還沒推出 SKILL)就開放出你可以自訂這些指令,這些自訂斜線指令的格式是放在 .claude/commands/ 底下,然後也是一個 .md 檔案,內容也是 Markdown 格式...
對,沒錯,就跟 SKILL 87% 像。
所以我們到底該用什麼呢?我個人其實會乾脆建議你用 SKILL 就好,畢竟可以通用於不同的 AI 廠商(如 Codex、Gemini 等)。
這邊我也提供一張表讓你看清楚 Skills、內建斜線指令、自訂斜線指令之間的關係:
| 內建斜線指令 | 自訂斜線指令(舊) | Skills | |
|---|---|---|---|
| 例子 | /help、/clear、/compact | .claude/commands/ 裡的 .md | .claude/skills/ 資料夾 |
| 性質 | 寫死在 Claude Code 裡的功能 | 自訂的 prompt 範本 | 完整技能包 |
接下來聊另一個可能混亂的議題,也就是「我到底要寫在 CLAUDE.md 還是寫在 SKILL 裡面呢?」。
其實很簡單,你記住一句話就好:
一個是絕對最高原則的憲法,一個是需要才用的技能。
這也是為什麼前面會這樣規劃了,畢竟每次 /clear(/new)都會把 CLAUDE.md 重新載入,這就像是「憲法」一樣,而技能只有在你需要的時候才掛載進來(但實際上技能的描述也會掛入,但不會整包技能掛進來,後面我們會再來介紹),所以你只知道這技能叫做「火球術」,但你不會知道它的施展方式、施展步驟、施展規則等等,這些都會在你需要的時候才掛載進來。
而這種設計也是節省 Context 佔用的一種方式。
/plugin 指令初體驗認識了前面的 SKILL 概念之後,你是不是覺得我們接下來就是寫自己的 SKILL 呢?
當然沒有,自己開始寫 SKILL 這件事情太硬了,所以我們先來體驗另一種方式,也就是「用安裝的」。
「蛤?用安裝的?」
對,其實就是把別人寫好的 SKILL 給你用,不用自己從零開始寫。
所以接下來請你打開終端機,並輸入 claude 進入到 Claude Code 模式,接著輸入 /plugin,接著你可以在 Discover 逛逛看看:

那這邊我們就舉例安裝 skill-creator 這個 SKILL,找到它之後按下空白鍵,讓它變成選取狀態,就可以按下 Enter:

接著這邊我個人會建議把這個 SKILL 安裝在「個人」這個層級,因為這個 SKILL 是我個人用的,跟專案沒有關係,所以我會選擇裝給個人用,而不是只裝給這個專案:

Note
簡單來講skill-creator這個 SKILL 可以幫助你建立新的 SKILL,對於想封裝屬於自己的 SKILL 的人來講,非常方便。
如果懶的自己慢慢找的話,也可以改輸入指令的方式:
/plugin install skill-creator@claude-plugins-official
安裝完畢後,別忘了輸入 /reload-plugins 讓它生效。
那這邊你可能會發現一件奇怪的事,明明我們裝的是 SKILL,它卻不是放在 ~/.claude/skills/ 底下,而是跑去 ~/.claude/plugins/ 了。
其實這兩個資料夾的差異不在「放哪裡」,而是在「誰負責管理」。
~/.claude/skills/ 是你手動管理的區域,你自己把 SKILL 資料夾丟進去、自己更新、自己刪除,Claude Code 只負責讀取,它根本不知道也不在乎這些檔案是從哪裡來的。
可是從 marketplace 安裝的東西就不一樣了,Claude Code 必須幫你「記帳」,也就是記下這一包是從哪個 marketplace 來的、版本是多少、什麼時候裝的,有這些紀錄它之後才有辦法幫你檢查更新跟移除,所以這些帳本跟檔案就會統一收在 ~/.claude/plugins/ 底下,讓它自己管理(有興趣的話可以打開 ~/.claude/plugins/installed_plugins.json,裡面就是一筆一筆的安裝紀錄)。
簡單來講就像手機一樣,你自己傳到手機裡的檔案,系統不會幫你更新,可是從 App Store 裝的 App,因為商店知道它的來源跟版本,所以才有辦法幫你自動更新、一鍵移除,也因此這些 App 會被收在系統自己管理的地方。
另外還有一個更根本的原因...
「plugin 不等於 skill。」
skill 只是 plugin「可能」攜帶的其中一種東西而已,一個 plugin 裡面還可以帶自訂斜線指令(對,就是前面提到的那個)以及其他更進階的功能,所以安裝的單位其實是「一整包 plugin」,自然就是放在 ~/.claude/plugins/ 底下囉。
也因為 plugin 是獨立管理的,它帶進來的 skill 在呼叫時會自己掛上 plugin 的名字,變成 /plugin名稱:skill名稱 這樣的格式,因此不用擔心跟你自己放在 ~/.claude/skills/ 的 SKILL 打架。
那要怎麼知道一個 plugin 會裝哪些東西進來呢?你可以在安裝前點進該 plugin 的細節頁查看它的內容,裡面會有一個 Will install 的欄位,告訴你這個 plugin 會裝哪些東西進來:

Note
如果可以,盡可能 plugin 只裝官方 marketplace 的,因為官方的 plugin 都有經過審核,安全性相對比較高。
那麼這邊 SKILL 章節也差不多了,就讓我們做個最後總結吧?
~/.claude/skills/ 就是你自己所有專案通用(也就是你的電腦全吃)。/名稱 呼叫,/plugin ),但裝之前記得看一下 Will install 會裝哪些東西,並盡量以官方 marketplace 為主。~/.claude/skills/。~/.claude/plugins/。那麼如果沒問題的話,就讓我們到這邊結束啦~
我們明天見。