# Skill Creator

> 建立有效技能的指南。當使用者想要建立新技能（或更新現有技能）以透過專業知識、工作流程或工具整合來擴展 Claude 的能力時，應使用此技能。

- Skill: `ammosu/skill-creator` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add ammosu/skill-creator`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ammosu/skill-creator/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: 完整條款請參閱 LICENSE.txt
- Author: ammosu (https://skillmd.com/u/ammosu)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/ammosu/skill-creator

---


# 技能建立器

此技能提供建立有效技能的指導。

## 關於技能

技能是模組化、自給自足的套件，透過提供專業知識、工作流程和工具來擴展 Claude 的能力。可將其視為特定領域或任務的「新手指南」——它們將 Claude 從通用代理轉變為配備程序性知識的專業代理，這些知識是任何模型都無法完全擁有的。

### 技能提供的內容

1. 專業工作流程 - 特定領域的多步驟程序
2. 工具整合 - 使用特定檔案格式或 API 的指示
3. 領域專業知識 - 公司特定的知識、綱要、業務邏輯
4. 捆綁資源 - 用於複雜且重複性任務的腳本、參考資料和資產

### 技能的構成

每個技能都包含一個必要的 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 能夠在不將檔案載入上下文的情況下使用它們

### 漸進式揭露設計原則

技能使用三層載入系統來有效管理上下文：

1. **中繼資料（name + description）** - 始終在上下文中（約 100 字）
2. **SKILL.md 主體** - 當技能觸發時（<5k 字）
3. **捆綁資源** - 由 Claude 按需載入（無限制*）

*無限制是因為腳本可以在不讀入上下文視窗的情況下執行。

## 技能建立流程

若要建立技能，請依序遵循「技能建立流程」，僅在有明確理由不適用時才跳過步驟。

### 步驟 1：透過具體範例理解技能

僅在技能的使用模式已清楚理解時才跳過此步驟。即使在處理現有技能時，此步驟仍具價值。

若要建立有效的技能，請清楚理解如何使用該技能的具體範例。這種理解可以來自使用者的直接範例，或透過使用者回饋驗證的生成範例。

例如，在建立影像編輯器技能時，相關問題包括：

- 「影像編輯器技能應支援哪些功能？編輯、旋轉，還有其他的嗎？」
- 「能否提供一些如何使用此技能的範例？」
- 「我可以想像使用者會要求『移除此圖片的紅眼』或『旋轉此圖片』之類的事情。您能想到此技能還會被如何使用嗎？」
- 「使用者會說什麼來觸發此技能？」

為避免讓使用者不知所措，請避免在單一訊息中提出太多問題。從最重要的問題開始，並根據需要進行後續追問以獲得更好的效果。

當清楚了解技能應支援的功能時，即可結束此步驟。

### 步驟 2：規劃可重複使用的技能內容

若要將具體範例轉化為有效的技能，請透過以下方式分析每個範例：

1. 考慮如何從頭開始執行範例
2. 識別在反覆執行這些工作流程時哪些腳本、參考資料和資產會有幫助

範例：在建立 `pdf-editor` 技能來處理「幫我旋轉這個 PDF」之類的查詢時，分析顯示：

1. 旋轉 PDF 每次都需要重寫相同的程式碼
2. 在技能中儲存 `scripts/rotate_pdf.py` 腳本會很有幫助

範例：在設計 `frontend-webapp-builder` 技能來處理「幫我建立一個待辦事項應用程式」或「幫我建立一個追蹤步數的儀表板」之類的查詢時，分析顯示：

1. 編寫前端 webapp 每次都需要相同的 HTML/React 樣板
2. 在技能中儲存包含 HTML/React 專案檔案樣板的 `assets/hello-world/` 範本會很有幫助

範例：在建立 `big-query` 技能來處理「今天有多少使用者登入？」之類的查詢時，分析顯示：

1. 查詢 BigQuery 每次都需要重新發現資料表綱要和關聯
2. 在技能中儲存記錄資料表綱要的 `references/schema.md` 檔案會很有幫助

若要確立技能的內容，請分析每個具體範例，建立要包含的可重複使用資源清單：腳本、參考資料和資產。

### 步驟 3：初始化技能

此時，應實際建立技能了。

僅當正在開發的技能已存在且需要迭代或打包時才跳過此步驟。在此情況下，請繼續下一步驟。

從頭開始建立新技能時，請始終執行 `init_skill.py` 腳本。該腳本會方便地生成新的範本技能目錄，自動包含技能所需的一切，使技能建立流程更加高效且可靠。

使用方式：

```bash
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，請回答以下問題：

1. 該技能的目的是什麼？（幾句話即可）
2. 何時應使用該技能？
3. 實際上，Claude 應如何使用該技能？應參考上述開發的所有可重複使用技能內容，以便 Claude 知道如何使用它們。

### 步驟 5：打包技能

技能就緒後，應將其打包成可分發的 zip 檔案以與使用者共享。打包流程會自動先驗證技能以確保符合所有要求：

```bash
scripts/package_skill.py <path/to/skill-folder>
```

可選的輸出目錄規格：

```bash
scripts/package_skill.py <path/to/skill-folder> ./dist
```

打包腳本會：

1. **驗證**技能，自動檢查：
   - YAML frontmatter 格式和必要欄位
   - 技能命名慣例和目錄結構
   - 描述的完整性和品質
   - 檔案組織和資源參考

2. **打包**技能（如果驗證通過），建立以技能命名的 zip 檔案（例如 `my-skill.zip`），其中包含所有檔案並維持適當的目錄結構以供分發。

如果驗證失敗，腳本會報告錯誤並在不建立套件的情況下退出。修復任何驗證錯誤後，再次執行打包命令。

### 步驟 6：迭代

測試技能後，使用者可能會要求改進。這通常發生在使用技能後不久，對技能的表現有新鮮的認知。

**迭代工作流程：**
1. 在實際任務中使用技能
2. 注意困難或效率低下之處
3. 識別應如何更新 SKILL.md 或捆綁資源
4. 實作變更並再次測試

