Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
獨立知識媒體
與任何項目無關聯
學會用 Claude,每件事都做得更好
claudeskill-me.com
最新
為什麼一句「hi」就吃掉 2 萬多個 Token?拆解 Claude Code 的固定啟動開銷  ·  如何寫出第一個自訂 Slash Command?一個從零到有的實作範例(附常見過時語法陷阱)  ·  Claude Code 已把 Command 併進 Skill 系統——網路上一堆「Commands vs Skills 差異」教學已經過時了  ·  為什麼裝了 Skill 卻不會觸發?15,000 字元預算爆了,Claude Code 會悄悄丟棄描述且不警告  ·  Effort 跟 Temperature 都是「調整輸出」的參數,差在哪裡?新模型上其中一個已經失效  ·  官方 anthropics/skills 倉庫評測:168k 星星的內容品質沒問題,問題出在你根本找不到它
skill-library

Claude Code 已把 Command 併進 Skill 系統——網路上一堆「Commands vs Skills 差異」教學已經過時了

30 秒速讀
現在該問的不是「我要它自動觸發還是手動觸發」,是「這個工作流需不需要額外的支援檔案」。

完整解析 +
01 · 為什麼發生?

既有的 .claude/commands/ 檔案,需要手動全部改寫成 Skill 目錄結構嗎?

不需要。官方文件明確說明既有的 .claude/commands/ 檔案會繼續正常運作,不會因為系統合併就失效——這不是一個強迫遷移的變更,只是官方把 Skill 目錄列為「新自動化」的建議做法。如果你手上一份簡單的單一指令運作良好、也不需要額外的腳本或參考資料,完全沒有必要為了跟上新做法而特地重寫。

比較合理的做法是漸進式的:新增工作流時優先考慮用 Skill 目錄(尤其如果你預期未來可能需要擴充腳本或參考資料),既有的簡單 Command 檔案則等到真的需要擴充功能、或剛好要重構那部分邏輯時,再一併遷移過去,不需要為了遷移而遷移。

02 · 運作原理是什麼?

如果我想讓一個 Skill 只能由我手動觸發,不想讓 Claude 自己判斷情境去載入它,具體該怎麼設定?

在該 Skill 的 SKILL.md frontmatter 裡加上 disable-model-invocation: true 這個欄位。設定後,這個 Skill 的描述不會被放進 Claude 判斷是否要載入的上下文裡,Claude 完全不會自己觸發它,只有你手動輸入 /名稱 才會執行。官方文件特別點名這適合用在有副作用、或你想自己控制時機的工作流上,例如部署、發送訊息這類「不希望 Claude 覺得時機成熟就自己動手」的操作。

這個欄位獨立於你選擇單一檔案 Command 還是 Skill 目錄結構,換句話說,即使你把工作流寫成完整的 Skill 目錄(帶有腳本、參考資料),一樣可以加上這個欄位讓它維持手動觸發——觸發方式的選擇,跟你用哪種檔案結構完全是兩件事。

03 · 如何應用

內建的 /simplify、/batch 這類指令,也是這次併入 Skill 系統的一部分嗎?

是相關但不完全相同的機制。官方文件把 /doctor/code-review/batch/debug/loop 這類指令歸類為「Bundled Skills(內建 Skill)」,特性是「prompt-based」——也就是給 Claude 一份詳細的操作腳本,讓它運用手上的工具自己去執行,這跟你自己在 .claude/skills/ 底下寫的自訂 Skill,運作原理是相通的。這跟 /help/compact 這類直接執行固定邏輯、不涉及 Claude 推理判斷的內建指令,是兩種不同的東西。

對使用者來說,觸發方式沒有差別,一樣都是打 / 加上名稱;差別在於背後的運作邏輯——內建 Skill 是 Claude 依照給定的腳本去思考、去用工具完成任務,純邏輯型內建指令則是直接執行寫死的程式行為,不涉及模型推理。想關掉所有內建 Skill,可以用 disableBundledSkills 這個設定,但 /doctor 即使關閉這個設定依然保持可輸入。

04 · 我該怎麼做?

這個系統合併是什麼時候發生的?我需要確認自己的 Claude Code 版本是否已經支援嗎?

社群整理的文章裡有提到,這個統一是在版本 2.1.3 引入的——在那之前,Command 跟 Skill 是兩套完全獨立的系統,個別開發、個別維護,也是舊教學文章裡「兩者行為天生不同」這個說法的由來。如果你使用的是這之後的版本,兩套系統已經統一運作,不需要額外設定或啟用。

比較保險的確認方式,是直接查你目前使用的版本號(在 Claude Code 裡通常可以用查看版本的指令確認),如果版本明顯早於這個時間點、或者你不確定,先執行更新指令再測試會比較保險——考慮到 Claude Code 的更新頻率相當高,多數目前在使用的人應該早已跑在合併後的版本上,但如果你的環境很長一段時間沒更新過,還是值得花十秒鐘確認一下版本,而不是假設自己一定是最新的。

完整內容 +

如果你最近搜尋「Claude Code 的 Command 跟 Skill 有什麼差別」,很可能會看到一批文章不約而同給出同一個答案:Command 是你手動打 /command 才會執行,Skill 是 Claude 自己判斷情境後主動載入,兩者的核心差異在於「誰按下觸發鍵」。這個說法在幾個月前是對的,但官方文件現在的措辭已經不一樣了。

官方文件現在怎麼說

Claude Code 現行文件在說明 Skill 系統時,用了一句非常直白的話:「自訂指令已經併入 Skill 系統(Custom commands have been merged into skills)」。具體來說,一份放在 .claude/commands/deploy.md 的檔案,跟一份放在 .claude/skills/deploy/SKILL.md 的 Skill,兩者都會建立同一個 /deploy 指令,運作方式完全相同——舊有的 .claude/commands/ 檔案依然可以正常運作,不會因為系統合併就失效,但官方現在把 Skill 目錄列為新自動化的建議做法。

「誰觸發」這個舊區分點,現在兩邊都做得到

過去被拿來當作核心分野的「手動觸發 vs 自動觸發」,現在其實兩種寫法都能做到——差別不再是「Command 只能手動、Skill 只能自動」,而是 Skill 的 frontmatter 提供了明確的開關可以控制這件事。設定 disable-model-invocation: true,這個 Skill 就只能由你手動輸入 /名稱 觸發,Claude 不會自己判斷情境去載入它——這正好對應舊教學裡「Command 的特性」;反過來,不設定這個欄位(預設值),Claude 就能依照 description 欄位自動判斷是否要載入,也可以由你手動觸發,兩種觸發方式同時存在,不是互斥的兩個系統各自綁死一種行為。

現在真正的差異:架構層面,不是行為層面

既然觸發機制已經不再是分野,現在兩者的差異落在檔案結構本身:.claude/commands/ 底下是單一 Markdown 檔案,適合邏輯單純、不需要額外資源的短工作流;.claude/skills/<name>/ 則是一個目錄,除了核心的 SKILL.md,還能放 scripts/(可執行腳本)、references/(延伸參考資料,只在真正需要時才載入)等支援檔案。當一個工作流複雜到需要額外的腳本或大量參考資料時,Skill 目錄結構能把這些內容拆開管理,不必全部塞進同一份檔案裡;如果只是一句常用的固定指令,單一檔案的 Command 寫法依然完全夠用,官方也沒有要求你把既有的簡單指令都遷移過去。

同名衝突時,Skill 優先

另一個實務上值得知道的細節:如果 .claude/commands/deploy.md.claude/skills/deploy/SKILL.md 同時存在,官方文件明確說明由 Skill 版本勝出——/deploy 執行的會是 Skill 目錄裡定義的內容。這代表如果你正在逐步把舊的 Command 遷移成 Skill,遷移過程中兩份檔案短暫並存也不會出錯,新版本會自然接手,不需要先手動刪掉舊檔案才能讓新版生效。

為什麼這個過時資訊值得特別提醒

這不是一個無傷大雅的措辭差異。如果你根據舊版區分法去設計團隊的自動化工作流——例如認定「這個工作流需要自動觸發,所以一定要寫成 Skill;那個工作流只想手動控制,所以一定要寫成 Command」——你可能會因此把簡單、其實適合單一檔案的邏輯,硬是拆成複雜的目錄結構,或是誤以為 Command 寫法完全無法讓 Claude 自動判斷情境,因而放棄了原本就能達成的自動化。判斷該用哪種寫法的正確依據,現在是「這個工作流的複雜度,需不需要額外的支援檔案」,而不是「我想要它自動觸發還是手動觸發」。

這對你規劃 Claude Code 自動化的方式有什麼影響

下次要新增一個工作流之前,先問結構性的問題:這個工作流除了一段指令文字,還需不需要搭配腳本、範本或大量參考資料?需要的話用 Skill 目錄,把核心邏輯放進 SKILL.md,延伸內容拆到 scripts/references/;不需要的話單一檔案的 Command 寫法完全夠用,不必為了「聽說 Skill 比較新、比較推薦」就把簡單邏輯過度工程化。至於要不要讓 Claude 自動觸發,那是 disable-model-invocation 這個獨立開關該處理的事,跟你選哪種檔案結構無關。

資料來源:Extend Claude with skills - Claude Code DocsCommands vs Skills in Claude Code - Brent W. Peterson (Medium)
圖解
舊區分法 vs 現行實際狀態舊教學把觸發方式當作核心分野,現行系統裡觸發方式已可獨立控制,真正的差異落在檔案架構Old Framing vs Current RealityOutdated framingCommand = manual trigger onlySkill = automatic trigger onlyTwo separate, mutually exclusive systemsCurrent realityTrigger: disable-model-invocationcontrols this independentlySame /name command, unified systemReal difference: architecture.claude/commands/name.md — single file, simple logic.claude/skills/name/SKILL.md — directory, scripts/, references/Claude Skill Me · claudeskill-me.com
歡迎截圖分享,轉載請註明來源
提問
請至少輸入 10 個字
相關文章
SKILL.md 到底該寫多長?官方 500 行門檻背後的三層漸進式披露邏輯
skill-library · 08/31
為什麼裝了 Skill 卻不會觸發?15,000 字元預算爆了,Claude Code 會悄悄丟棄描述且不警告
practice · 09/02
官方 anthropics/skills 倉庫評測:168k 星星的內容品質沒問題,問題出在你根本找不到它
reviews · 09/02
Skill 跟 Subagent 該怎麼分工?不是二選一,是誰負責「知道」、誰負責「執行」
skill-library · 08/25
相關新聞
更多相關主題