| name | skill-creator |
| description | 建立有效技能的指南。當使用者想要建立新技能(或更新現有技能)以透過專業知識、工作流程或工具整合來擴展 Claude 的能力時,應使用此技能。 |
| license | 完整條款請參閱 LICENSE.txt |
技能建立器
此技能提供建立有效技能的指導。
關於技能
技能是模組化、自給自足的套件,透過提供專業知識、工作流程和工具來擴展 Claude 的能力。可將其視為特定領域或任務的「新手指南」——它們將 Claude 從通用代理轉變為配備程序性知識的專業代理,這些知識是任何模型都無法完全擁有的。
技能提供的內容
- 專業工作流程 - 特定領域的多步驟程序
- 工具整合 - 使用特定檔案格式或 API 的指示
- 領域專業知識 - 公司特定的知識、綱要、業務邏輯
- 捆綁資源 - 用於複雜且重複性任務的腳本、參考資料和資產
技能的構成
每個技能都包含一個必要的 SKILL.md 檔案和可選的捆綁資源:
skill-name/
├── SKILL.md (必要)
│ ├── YAML frontmatter 中繼資料 (必要)
│ │ ├── name: (必要)
│ │ └── description: (必要)
│ └── Markdown 指示 (必要)
└── 捆綁資源 (可選)
├── scripts/ - 可執行程式碼(Python/Bash 等)
├── references/ - 預期在需要時載入至上下文中的文件
└── assets/ - 用於輸出的檔案(範本、圖示、字型等)
SKILL.md(必要)
中繼資料品質: YAML frontmatter 中的 name 和 description 決定 Claude 何時使用該技能。請具體說明技能的功能和使用時機。使用第三人稱(例如「當...時應使用此技能」而非「當...時使用此技能」)。
捆綁資源(可選)
腳本(scripts/)
用於需要確定性可靠性或反覆重寫的任務的可執行程式碼(Python/Bash 等)。
- 何時包含:當相同的程式碼被反覆重寫或需要確定性可靠性時
- 範例:用於 PDF 旋轉任務的
scripts/rotate_pdf.py - 優點:節省 token、確定性、可在不載入至上下文的情況下執行
- 注意:腳本可能仍需要被 Claude 讀取以進行修補或特定環境調整
參考資料(references/)
預期在需要時載入至上下文中以指導 Claude 流程和思考的文件和參考資料。
- 何時包含:當 Claude 在工作時應參考的文件
- 範例:用於財務綱要的
references/finance.md、用於公司保密協議範本的references/mnda.md、用於公司政策的references/policies.md、用於 API 規格的references/api_docs.md - 使用情境:資料庫綱要、API 文件、領域知識、公司政策、詳細工作流程指南
- 優點:保持 SKILL.md 精簡,僅在 Claude 判斷需要時才載入
- 最佳實踐:如果檔案很大(>10k 字),請在 SKILL.md 中包含 grep 搜尋模式
- 避免重複:資訊應存在於 SKILL.md 或參考資料檔案中,而非兩者都有。除非是技能的核心內容,否則優先使用參考資料檔案來存放詳細資訊——這可保持 SKILL.md 精簡,同時使資訊可被發現而不佔用上下文視窗。僅在 SKILL.md 中保留基本的程序指示和工作流程指導;將詳細的參考資料、綱要和範例移至參考資料檔案。
資產(assets/)
不打算載入至上下文中,而是在 Claude 產生的輸出中使用的檔案。
- 何時包含:當技能需要將在最終輸出中使用的檔案時
- 範例:用於品牌資產的
assets/logo.png、用於 PowerPoint 範本的assets/slides.pptx、用於 HTML/React 樣板的assets/frontend-template/、用於排版的assets/font.ttf - 使用情境:範本、圖片、圖示、樣板程式碼、字型、會被複製或修改的範例文件
- 優點:將輸出資源與文件分離,使 Claude 能夠在不將檔案載入上下文的情況下使用它們
漸進式揭露設計原則
技能使用三層載入系統來有效管理上下文:
- 中繼資料(name + description) - 始終在上下文中(約 100 字)
- SKILL.md 主體 - 當技能觸發時(<5k 字)
- 捆綁資源 - 由 Claude 按需載入(無限制*)
*無限制是因為腳本可以在不讀入上下文視窗的情況下執行。
技能建立流程
若要建立技能,請依序遵循「技能建立流程」,僅在有明確理由不適用時才跳過步驟。
步驟 1:透過具體範例理解技能
僅在技能的使用模式已清楚理解時才跳過此步驟。即使在處理現有技能時,此步驟仍具價值。
若要建立有效的技能,請清楚理解如何使用該技能的具體範例。這種理解可以來自使用者的直接範例,或透過使用者回饋驗證的生成範例。
例如,在建立影像編輯器技能時,相關問題包括:
- 「影像編輯器技能應支援哪些功能?編輯、旋轉,還有其他的嗎?」
- 「能否提供一些如何使用此技能的範例?」
- 「我可以想像使用者會要求『移除此圖片的紅眼』或『旋轉此圖片』之類的事情。您能想到此技能還會被如何使用嗎?」
- 「使用者會說什麼來觸發此技能?」
為避免讓使用者不知所措,請避免在單一訊息中提出太多問題。從最重要的問題開始,並根據需要進行後續追問以獲得更好的效果。
當清楚了解技能應支援的功能時,即可結束此步驟。
步驟 2:規劃可重複使用的技能內容
若要將具體範例轉化為有效的技能,請透過以下方式分析每個範例:
- 考慮如何從頭開始執行範例
- 識別在反覆執行這些工作流程時哪些腳本、參考資料和資產會有幫助
範例:在建立 pdf-editor 技能來處理「幫我旋轉這個 PDF」之類的查詢時,分析顯示:
- 旋轉 PDF 每次都需要重寫相同的程式碼
- 在技能中儲存
scripts/rotate_pdf.py腳本會很有幫助
範例:在設計 frontend-webapp-builder 技能來處理「幫我建立一個待辦事項應用程式」或「幫我建立一個追蹤步數的儀表板」之類的查詢時,分析顯示:
- 編寫前端 webapp 每次都需要相同的 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>
該腳本會:
- 在指定路徑建立技能目錄
- 生成帶有適當 frontmatter 和 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 frontmatter 格式和必要欄位
- 技能命名慣例和目錄結構
- 描述的完整性和品質
- 檔案組織和資源參考
打包技能(如果驗證通過),建立以技能命名的 zip 檔案(例如
my-skill.zip),其中包含所有檔案並維持適當的目錄結構以供分發。
如果驗證失敗,腳本會報告錯誤並在不建立套件的情況下退出。修復任何驗證錯誤後,再次執行打包命令。
步驟 6:迭代
測試技能後,使用者可能會要求改進。這通常發生在使用技能後不久,對技能的表現有新鮮的認知。
迭代工作流程:
- 在實際任務中使用技能
- 注意困難或效率低下之處
- 識別應如何更新 SKILL.md 或捆綁資源
- 實作變更並再次測試