建立有效技能的指南。當使用者想要建立一個新技能(或更新現有技能)來擴展 Claude 的能力,提供專業知識、工作流程或工具整合時,應使用此技能。
Skill Creator
此技能提供建立有效技能的指導。
關於技能
技能是模組化、自包含的套件,透過提供專業知識、工作流程和工具來擴展 Claude 的能力。把它們想像成特定領域或任務的「入門指南」——它們將 Claude 從通用代理轉變為配備程序性知識的專業代理,這些知識是任何模型都無法完全擁有的。
技能提供的內容
- 專業工作流程 - 特定領域的多步驟程序
- 工具整合 - 使用特定檔案格式或 API 的指示
- 領域專業知識 - 公司特定的知識、綱要、商業邏輯
- 捆綁資源 - 用於複雜和重複性任務的腳本、參考文件和資產
技能的結構
每個技能包含一個必要的 SKILL.md 檔案和可選的捆綁資源:
skill-name/
├── SKILL.md (必要)
│ ├── YAML 前置中繼資料 (必要)
│ │ ├── name: (必要)
│ │ └── description: (必要)
│ └── Markdown 指示 (必要)
└── 捆綁資源 (可選)
├── scripts/ - 可執行程式碼 (Python/Bash/等)
├── references/ - 文件,按需載入到上下文
└── assets/ - 輸出中使用的檔案 (模板、圖示、字型等)
SKILL.md (必要)
中繼資料品質: YAML 前置中的 name 和 description 決定 Claude 何時使用該技能。具體說明技能的功能和使用時機。使用第三人稱(例如「此技能應在……時使用」而非「在……時使用此技能」)。
捆綁資源 (可選)
腳本 (scripts/)
用於需要確定性可靠性或反覆重寫的任務的可執行程式碼 (Python/Bash/等)。
- 何時包含: 當相同程式碼被反覆重寫或需要確定性可靠性時
- 範例:
scripts/rotate_pdf.py用於 PDF 旋轉任務 - 優點: 節省 token、確定性高、無需載入到上下文即可執行
- 注意: 腳本仍可能需要由 Claude 讀取以進行修補或環境特定調整
參考文件 (references/)
文件與參考資料,按需載入到上下文以告知 Claude 的流程和思考。
- 何時包含: 用於 Claude 工作時應參考的文件
- 範例:
references/finance.md用於財務綱要、references/mnda.md用於公司 NDA 模板、references/policies.md用於公司政策、references/api_docs.md用於 API 規格 - 使用案例: 資料庫綱要、API 文件、領域知識、公司政策、詳細工作流程指南
- 優點: 保持 SKILL.md 精簡,僅在 Claude 判斷需要時載入
- 最佳實踐: 如果檔案很大(超過 10,000 字),請在 SKILL.md 中包含 grep 搜尋模式
- 避免重複: 資訊應僅存在於 SKILL.md 或參考檔案中,而非兩者。偏好將詳細資訊放在參考檔案中,除非該資訊是技能的核心——這能保持 SKILL.md 精簡,同時讓資訊可被發現而不佔用上下文視窗。僅將必要的程序性指示和工作流程指導保留在 SKILL.md 中;將詳細的參考資料、綱要和範例移至參考檔案。
資產 (assets/)
不打算載入到上下文,而是在 Claude 產生的輸出中使用的檔案。
- 何時包含: 當技能需要最終輸出中使用的檔案時
- 範例:
assets/logo.png用於品牌資產、assets/slides.pptx用於 PowerPoint 模板、assets/frontend-template/用於 HTML/React 樣板、assets/font.ttf用於排版 - 使用案例: 模板、圖片、圖示、樣板程式碼、字型、會被複製或修改的範例文件
- 優點: 將輸出資源與文件分離,使 Claude 能夠使用檔案而無需載入到上下文
漸進式揭露設計原則
技能使用三層載入系統以有效管理上下文:
- 中繼資料 (name + description) - 始終在上下文中(約 100 字)
- SKILL.md 主體 - 技能觸發時載入(少於 5,000 字)
- 捆綁資源 - 按 Claude 需求載入(無限制*)
*無限制,因為腳本可以在不讀入上下文視窗的情況下執行。
技能建立流程
要建立技能,請依序遵循「技能建立流程」,僅在明確不適用時跳過步驟。
步驟 1:透過具體範例理解技能
僅在已清楚理解技能的使用模式時跳過此步驟。即使處理現有技能,此步驟仍然有價值。
要建立有效的技能,請清楚理解技能將如何使用的具體範例。此理解可以來自直接的使用者範例,或透過使用者回饋驗證的生成範例。
例如,在建立 image-editor 技能時,相關問題包括:
- 「image-editor 技能應支援哪些功能?編輯、旋轉,還有其他嗎?」
- 「能否舉一些此技能將如何使用的範例?」
- 「我可以想像使用者會要求像是『從這張圖片中移除紅眼』或『旋轉這張圖片』。您是否還有其他想像此技能被使用的方式?」
- 「使用者說什麼話時應觸發此技能?」
為避免讓使用者感到負擔,避免在單一訊息中問太多問題。從最重要的問題開始,並根據需要跟進以獲得更好的效果。
當對技能應支援的功能有清晰概念時,結束此步驟。
步驟 2:規劃可重複使用的技能內容
要將具體範例轉化為有效的技能,請透過以下方式分析每個範例:
- 考慮如何從頭開始執行該範例
- 識別哪些腳本、參考文件和資產在反覆執行這些工作流程時會有幫助
範例:在建立 pdf-editor 技能以處理「幫我旋轉這個 PDF」這類查詢時,分析顯示:
- 旋轉 PDF 需要每次重寫相同的程式碼
- 將
scripts/rotate_pdf.py腳本儲存在技能中會很有幫助
範例:在設計 frontend-webapp-builder 技能以處理「幫我建立一個待辦事項應用程式」或「幫我建立一個儀表板來追蹤我的步數」這類查詢時,分析顯示:
- 撰寫前端網頁應用程式每次都需要相同的 HTML/React 樣板
- 將包含樣板 HTML/React 專案檔案的
assets/hello-world/模板儲存在技能中會很有幫助
範例:在建立 big-query 技能以處理「今天有多少使用者登入?」這類查詢時,分析顯示:
- 查詢 BigQuery 需要每次重新發現表格綱要和關聯
- 將記錄表格綱要的
references/schema.md檔案儲存在技能中會很有幫助
要確定技能的內容,請分析每個具體範例,建立要包含的可重複使用資源清單:腳本、參考文件和資產。
步驟 3:初始化技能
此時,是時候實際建立技能了。
僅在正在開發的技能已存在,且需要迭代或打包時跳過此步驟。在這種情況下,請繼續下一步。
從頭建立新技能時,請務必執行 init_skill.py 腳本。該腳本能方便地生成新的模板技能目錄,自動包含技能所需的一切,使技能建立過程更高效且可靠。
使用方式:
scripts/init_skill.py <skill-name> --path <output-directory>
該腳本:
- 在指定路徑建立技能目錄
- 生成帶有正確前置和 TODO 佔位符的 SKILL.md 模板
- 建立範例資源目錄:
scripts/、references/和assets/ - 在每個目錄中新增可自訂或刪除的範例檔案
初始化後,根據需要自訂或刪除生成的 SKILL.md 和範例檔案。
步驟 4:編輯技能
編輯(新生成或現有)技能時,請記住該技能是為另一個 Claude 實例使用而建立的。專注於包含對 Claude 有益且非顯而易見的資訊。考慮哪些程序性知識、領域特定細節或可重複使用的資產能幫助另一個 Claude 實例更有效地執行這些任務。
從可重複使用的技能內容開始
要開始實作,請從上述識別的可重複使用資源開始:scripts/、references/ 和 assets/ 檔案。請注意,此步驟可能需要使用者輸入。例如,在實作 brand-guidelines 技能時,使用者可能需要提供品牌資產或模板以儲存在 assets/ 中,或提供文件以儲存在 references/ 中。
此外,刪除技能不需要的任何範例檔案和目錄。初始化腳本在 scripts/、references/ 和 assets/ 中建立範例檔案以展示結構,但大多數技能不需要全部。
更新 SKILL.md
寫作風格: 使用祈使句/不定詞形式(動詞優先的指示)撰寫整個技能,而非第二人稱。使用客觀、指導性的語言(例如「要完成 X,請執行 Y」而非「你應該做 X」或「如果你需要做 X」)。這能保持 AI 使用的一致性和清晰度。
要完成 SKILL.md,請回答以下問題:
- 此技能的目的是什麼?用幾句話說明。
- 何時應使用此技能?
- 在實務中,Claude 應如何使用此技能?應參考上述開發的所有可重複使用技能內容,以便 Claude 知道如何使用它們。
步驟 5:打包技能
技能準備就緒後,應將其打包成可分發的 zip 檔案,並與使用者分享。打包過程會先自動驗證技能,確保其符合所有要求:
scripts/package_skill.py <path/to/skill-folder>
可選的輸出目錄指定:
scripts/package_skill.py <path/to/skill-folder> ./dist
打包腳本將:
-
驗證 技能自動化,檢查:
- YAML 前置格式和必要欄位
- 技能命名慣例和目錄結構
- 描述完整性和品質
- 檔案組織和資源參考
-
打包 技能(如果驗證通過),建立以技能命名的 zip 檔案(例如
my-skill.zip),包含所有檔案並維持正確的目錄結構以供分發。
如果驗證失敗,腳本將報告錯誤並退出,不建立套件。修正任何驗證錯誤後,再次執行打包命令。
步驟 6:迭代
測試技能後,使用者可能會要求改進。這通常發生在使用技能後,並對技能表現有最新了解。
迭代工作流程:
- 在真實任務上使用技能
- 注意困難或效率低下的地方
- 識別 SKILL.md 或捆綁資源應如何更新
- 實作變更並再次測試






