系列文章第 3 篇:探索企業級 Skills 的設計模式,深度解析官方範例,學習 Skills 組合使用。
前言
在前兩篇文章中,我們了解了 Skills 的概念並動手建立了第一個 Skill。今天,讓我們更進一步,探索企業級應用和進階技巧。
你將學到:
- ✅ 企業級 Skills 的設計模式
- ✅ 官方 Document Skills 深度解析
- ✅ Webapp Testing Skill 的偵查後行動模式
- ✅ Skills 組合使用策略
- ✅ 在不同平台使用 Skills
預計閱讀時間:12 分鐘
企業級 Skill 範例:API 整合測試器
讓我們看一個更複雜的企業級範例,展示 Skills 在實際業務場景的應用。
使用場景
問題: 團隊有 10 個微服務,每次部署前都要手動測試 API 整合,耗時且容易出錯。
解決方案: 建立一個 API 整合測試 Skill
目錄結構
api-integration-tester/
├── SKILL.md
├── scripts/
│ ├── run_tests.py # 主要測試執行器
│ ├── generate_report.py # 產生測試報告
│ └── notify_slack.py # Slack 通知
├── references/
│ ├── api-endpoints.md # API 端點文件
│ ├── test-scenarios.md # 測試情境說明
│ └── auth-guide.md # 認證方式指南
└── assets/
├── test-data/ # 測試資料
│ ├── valid-requests.json
│ └── invalid-requests.json
└── report-template.html # 報告模板
SKILL.md 設計重點
---
name: api-integration-tester
description: 自動化 API 整合測試工具。此 Skill 用於執行微服務間的整合測試、驗證 API 回應、產生測試報告,並在發現問題時通知團隊。適用於 CI/CD 流程或手動測試需求。
---
# API 整合測試器
## 快速開始
\`\`\`bash
# 執行所有測試
python scripts/run_tests.py --env production
# 執行特定服務測試
python scripts/run_tests.py --service user-service --env staging
# 產生報告
python scripts/generate_report.py --output ./reports/
\`\`\`
## 測試流程
1. **載入測試情境** - 從 `references/test-scenarios.md` 讀取
2. **準備測試資料** - 使用 `assets/test-data/` 中的資料
3. **執行測試** - 呼叫各 API 端點並驗證回應
4. **產生報告** - 使用 `assets/report-template.html`
5. **通知團隊** - 若有失敗,透過 Slack 通知
## 重要檔案說明
### references/api-endpoints.md
包含所有微服務的端點資訊。由於檔案較大,可用 grep 搜尋:
\`\`\`bash
grep -A 10 "user-service" references/api-endpoints.md
\`\`\`
### scripts/run_tests.py
主要測試執行器,支援參數:
- `--env`: 環境(development/staging/production)
- `--service`: 特定服務名稱
- `--verbose`: 詳細輸出
- `--fail-fast`: 遇到錯誤立即停止
關鍵設計模式
1. 黑盒腳本模式
**Always run scripts with `--help` first**
DO NOT read the source until absolutely necessary.
這些腳本很大,會污染上下文視窗。
它們被設計為「黑盒」直接調用,而不是讀取理解。
為什麼這樣設計?
- ✅ 節省 token(不載入腳本原始碼)
- ✅ 確定性執行(腳本已測試過)
- ✅ 易於維護(邏輯封裝在腳本中)
2. 大型 References 的搜尋模式
## 使用資料庫 Schema
`references/database-schema.md` 包含所有資料表定義(>10k 字)。
**不要完整讀取**,使用 grep 搜尋:
\`\`\`bash
# 搜尋 users 資料表
grep -A 20 "## users table" references/database-schema.md
# 搜尋特定欄位
grep -B 5 "email" references/database-schema.md
\`\`\`
**常用資料表:**
- users - 使用者資訊
- orders - 訂單記錄
- products - 產品目錄
優勢:
- ✅ 保持上下文視窗精簡
- ✅ Claude 只載入需要的部分
- ✅ 支援超大型參考文件
3. 環境感知模式
# scripts/run_tests.py 的設計
def get_api_url(env):
"""根據環境返回正確的 API URL"""
urls = {
'development': 'http://localhost:3000',
'staging': 'https://staging-api.company.com',
'production': 'https://api.company.com'
}
return urls[env]
def get_auth_token(env):
"""根據環境載入正確的認證 token"""
if env == 'production':
# 從環境變數讀取
return os.getenv('PROD_API_TOKEN')
else:
# 使用測試 token
return 'test-token-123'
價值:
- 同一個 Skill 支援多環境
- 避免誤操作 production 資料
- 團隊成員用相同工具但不同環境
官方範例深度解析
Anthropic 提供了豐富的官方範例,讓我們深入分析幾個精華。
1. Document Skills - DOCX Skill
用途: 建立、編輯和分析 Word 文件
核心功能
docx-skill/
├── SKILL.md
├── scripts/
│ ├── create_docx.py # 建立新文件
│ ├── edit_docx.py # 編輯現有文件
│ ├── extract_text.py # 提取文字內容
│ └── track_changes.py # 處理追蹤修訂
└── references/
└── formatting-guide.md # 格式設定指南
學習重點
1. 處理二進位檔案格式
# scripts/create_docx.py 的核心邏輯
from docx import Document
from docx.shared import Pt, RGBColor
def create_document(title, content, style='Normal'):
"""建立格式化的 Word 文件"""
doc = Document()
# 加入標題
heading = doc.add_heading(title, level=1)
heading.runs[0].font.color.rgb = RGBColor(0x2C, 0x3E, 0x50)
# 加入內容
for paragraph in content.split('\n\n'):
p = doc.add_paragraph(paragraph)
p.style = style
return doc
2. 保留格式的重要性
## 編輯現有文件時的原則
1. **保留現有格式** - 不要改變未修改段落的格式
2. **維持樣式一致** - 使用文件已有的樣式
3. **追蹤修訂** - 啟用追蹤修訂模式(如果需要)
為什麼這很重要?
- 企業文件有嚴格的格式要求
- 協作時需要看到誰改了什麼
- 避免破壞現有的文件結構
實際應用
使用者:請編輯 contract.docx,將所有「乙方」改為「合作方」,但保留追蹤修訂
Claude 會:
1. 讀取文件
2. 啟用追蹤修訂模式
3. 找到所有「乙方」並替換
4. 保存時保留原格式和修訂記錄
2. Webapp Testing Skill
用途: 使用 Playwright 測試本地網頁應用
這是我最喜歡的範例之一,設計非常精妙。
核心概念:「偵查後行動」模式
## 決策樹:選擇你的方法
User task → Is it static HTML?
├─ Yes → Read HTML file directly
│ └─ Write Playwright script
│
└─ No (dynamic webapp) → Is server running?
├─ No → Use with_server.py helper
│ └─ Write simplified script
│
└─ Yes → Reconnaissance-then-action:
1. Navigate and wait for networkidle
2. Take screenshot or inspect DOM
3. Identify selectors
4. Execute actions
偵查後行動(Reconnaissance-Then-Action)
這是處理動態網頁的關鍵模式:
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(headless=True)
page = browser.new_page()
# Step 1: 導航並等待
page.goto('http://localhost:5173')
page.wait_for_load_state('networkidle') # ⚠️ 關鍵!
# Step 2: 偵查 - 截圖檢視
page.screenshot(path='/tmp/inspect.png', full_page=True)
# Step 3: 偵查 - 檢查 DOM
buttons = page.locator('button').all()
print(f"找到 {len(buttons)} 個按鈕")
# Step 4: 行動 - 使用發現的選擇器
page.click('button:has-text("Submit")')
browser.close()
為什麼要這樣做?
## 常見陷阱
❌ **不要** 在 networkidle 前檢查 DOM
→ JavaScript 還沒執行完,看到的是空白頁面
✅ **一定要** 等待 networkidle 再偵查
→ 確保頁面完全載入
Helper Script:with_server.py
這個腳本展示了如何管理伺服器生命週期:
# 單一伺服器
python scripts/with_server.py \
--server "npm run dev" \
--port 5173 \
-- python your_test.py
# 多伺服器(前後端分離)
python scripts/with_server.py \
--server "cd backend && python server.py" --port 3000 \
--server "cd frontend && npm run dev" --port 5173 \
-- python your_test.py
設計亮點:
- ✅ 自動啟動和關閉伺服器
- ✅ 等待伺服器就緒才執行測試
- ✅ 測試結束自動清理
- ✅ 支援多伺服器場景
實際應用案例
使用者:測試我的 todo app 的新增功能
Claude 會:
1. 識別需要 webapp-testing skill
2. 使用 with_server.py 啟動開發伺服器
3. 導航到 localhost
4. 等待 networkidle
5. 截圖偵查頁面結構
6. 找到輸入框和新增按鈕
7. 執行測試:輸入文字 → 點擊新增 → 驗證結果
8. 關閉伺服器
3. Brand Guidelines Skill
用途: 套用公司品牌規範到各種輸出
設計亮點
---
name: brand-guidelines
description: 套用 Anthropic 的官方品牌配色和字型到任何 artifact。當需要品牌配色、視覺格式、或公司設計標準時使用。
---
## Brand Guidelines
### Colors
**Main Colors:**
- Dark: `#141413` - 主要文字和深色背景
- Light: `#faf9f5` - 淺色背景和深色文字
- Mid Gray: `#b0aea5` - 次要元素
- Light Gray: `#e8e6dc` - 微妙背景
**Accent Colors:**
- Orange: `#d97757` - 主要強調色
- Blue: `#6a9bcc` - 次要強調色
- Green: `#788c5d` - 第三強調色
### Typography
- **Headings**: Poppins (with Arial fallback)
- **Body Text**: Lora (with Georgia fallback)
學習重點:
1. 提供降級方案
## Font Management
- 優先使用 Poppins 和 Lora 字型
- 自動降級到 Arial/Georgia(如果自訂字型不可用)
- 無需安裝字型即可運作
- 為獲得最佳效果,建議預先安裝字型
為什麼重要?
- 不是每個環境都有自訂字型
- 確保在任何情況下都有可接受的輸出
- 使用者體驗更好(不會因缺少字型而失敗)
2. 清晰的使用指引
## Features
### Smart Font Application
- 套用 Poppins 字型到標題(24pt 以上)
- 套用 Lora 字型到內文
- 自動降級到系統字型
- 保持可讀性
### Shape and Accent Colors
- 非文字形狀使用強調色
- 循環使用 orange、blue、green
- 維持視覺趣味同時保持品牌一致
實際應用
使用者:幫我做一份產品簡報,使用 Anthropic 的品牌風格
Claude 會:
1. 識別需要 brand-guidelines skill
2. 套用品牌配色:
- 背景:#faf9f5
- 標題:#141413,Poppins 字型
- 內文:#141413,Lora 字型
- 強調元素:Orange #d97757
3. 確保視覺一致性
4. 如果字型不可用,自動使用 Arial/Georgia
Skills 組合使用
多個 Skills 可以協同工作,創造更強大的工作流程。
範例 1:自動化內容發布流程
任務:撰寫技術文章並發布到公司部落格
Skills 組合:
1. tech-blog-writer → 撰寫文章
2. seo-optimizer → 優化 SEO
3. brand-guidelines → 套用品牌風格
4. image-generator → 產生配圖
5. cms-publisher → 發布到 CMS
使用方式:
"請幫我寫一篇關於微服務架構的文章,並發布到公司部落格"
Claude 會自動依序使用 5 個 Skills,完成整個流程!
範例 2:全棧開發工作流
任務:建立並部署一個新功能
Skills 組合:
1. feature-planner → 規劃功能
2. code-generator → 產生程式碼
3. test-generator → 產生測試
4. code-reviewer → 程式碼審查
5. webapp-testing → 整合測試
6. deployment-guide → 部署指引
使用方式:
"請實作使用者註冊功能,包含測試和部署"
Claude 會使用多個 Skills 完成完整的開發循環!
組合使用的最佳實踐
1. 明確的觸發順序
在 SKILL.md 中說明與其他 Skills 的關係:
## 與其他 Skills 配合
### 前置 Skills
- 使用本 Skill 前,建議先使用 `data-analyzer` 分析資料
### 後續 Skills
- 本 Skill 產生的報告可用於 `presentation-builder`
2. 共享資料格式
## 輸出格式
本 Skill 產生 JSON 格式的輸出:
\`\`\`json
{
"type": "test-results",
"version": "1.0",
"results": [...]
}
\`\`\`
此格式可直接被 `report-generator` 和 `notification-sender` 使用。
在不同平台使用 Skills
Skills 不只在 Claude Code 中可用,讓我們看看各平台的使用方式。
1. Claude Code
# 安裝
/plugin marketplace add anthropics/skills
/plugin install document-skills@anthropic-agent-skills
# 使用
"請使用 PDF skill 提取文件內容"
2. Claude.ai
- 付費方案已內建範例 Skills
- 可上傳自訂 Skills(Settings → Skills)
- 直接在對話中提及即可觸發
3. Claude API
import anthropic
client = anthropic.Anthropic(api_key="your-key")
# 上傳自訂 Skill
with open("my-skill.zip", "rb") as f:
skill = client.skills.create(
name="my-custom-skill",
file=f
)
# 在對話中使用
message = client.messages.create(
model="claude-sonnet-4-5-20250929",
max_tokens=1024,
skills=[skill.id], # 指定 Skills
messages=[
{
"role": "user",
"content": "使用我的 skill 處理這個任務"
}
]
)
API 的進階功能
# 列出所有 Skills
skills = client.skills.list()
# 更新 Skill
client.skills.update(
skill_id=skill.id,
name="updated-skill-name"
)
# 刪除 Skill
client.skills.delete(skill_id=skill.id)
# 取得特定 Skill 資訊
skill_info = client.skills.retrieve(skill_id=skill.id)
條件式 Skill 觸發
你可以在 description 中定義觸發條件:
---
name: mobile-responsive-checker
description: 檢查網頁的行動裝置響應式設計。當使用者詢問「手機版」、「響應式」、「RWD」或需要測試不同螢幕尺寸時使用此 Skill。
---
## 觸發關鍵字
此 Skill 會在以下情況觸發:
- 訊息包含「手機」、「mobile」、「響應式」
- 需要測試不同螢幕尺寸
- 詢問行動裝置相容性
## 檢查項目
自動測試以下尺寸:
- Mobile: 375x667 (iPhone SE)
- Tablet: 768x1024 (iPad)
- Desktop: 1920x1080
進階設計模式
1. Meta Skill - Skill Factory
建立一個可以產生其他 Skills 的 Skill:
---
name: skill-factory
description: 根據使用者需求動態建立客製化 Skills。當使用者描述重複性工作流程或想要建立專屬工具時使用。
---
# Skill 工廠
## 建立流程
1. **需求分析**
- 詢問工作流程步驟
- 了解使用的工具和 API
- 蒐集參考文件
2. **設計結構**
- 決定需要的 scripts
- 規劃 references
- 準備 assets
3. **產生 Skill**
- 建立完整目錄結構
- 撰寫 SKILL.md
- 產生範例程式碼
4. **測試與優化**
- 用實際案例驗證
- 迭代改進
5. **打包交付**
- 產生 .zip 檔案
2. Team Skills Repository
企業級的 Skills 管理:
team-skills/
├── README.md
├── onboarding/ # 新人入職
│ ├── dev-environment-setup/
│ └── code-review-guidelines/
├── development/ # 開發相關
│ ├── api-testing/
│ ├── database-migration/
│ └── deployment-checklist/
├── design/ # 設計相關
│ ├── brand-guidelines/
│ └── design-system/
└── content/ # 內容相關
├── blog-writer/
└── social-media-post/
Git 工作流程:
# Clone 團隊 Skills
git clone git@github.com:company/team-skills.git ~/.claude/skills/team
# 更新 Skills
cd ~/.claude/skills/team && git pull
# 貢獻新 Skill
cd ~/.claude/skills/team
mkdir my-new-skill
# ... 建立 Skill ...
git add my-new-skill
git commit -m "Add my-new-skill"
git push
實戰案例研究
案例:某新創公司的 Skills 使用
背景: 50 人的軟體公司,使用微服務架構
部署的 Skills:
code-review-skill
- 自動檢查程式碼風格
- 辨識常見錯誤模式
- 建議最佳實踐
- 效果: 程式碼審查時間減少 60%
api-testing-skill
- 自動化整合測試
- 產生測試報告
- Slack 通知
- 效果: 測試覆蓋率從 40% 提升到 85%
documentation-skill
- 自動產生 API 文件
- 套用公司格式
- 版本控制
- 效果: 文件更新時間從 2 小時減少到 15 分鐘
onboarding-skill
- 新人環境設定指引
- 自動產生設定腳本
- 常見問題解答
- 效果: 新人上手時間從 1 週減少到 2 天
ROI 計算:
每週節省時間:
- 程式碼審查:10 小時
- 測試:8 小時
- 文件:6 小時
- 新人培訓:平均 4 小時
總計:28 小時/週 × 50 人 = 1,400 小時/週
以平均時薪 $50 計算:
月節省成本:1,400 × 4 × $50 = $280,000
Skills 建立成本:約 $10,000(一次性)
ROI:2,700% (第一個月)
下一步
在下一篇文章(系列最終篇)中,我們將探討:
- 📋 最佳實踐和命名規範
- 🔧 常見問題與疑難排解
- 💡 30 個實用 Skill 靈感清單
- 📦 完整的 Skill 模板
📚 系列文章導航
結語
透過這篇文章,你學會了:
- ✅ 企業級 Skills 的設計模式
- ✅ 官方範例的精妙設計(黑盒腳本、偵查後行動)
- ✅ Skills 組合使用創造強大工作流
- ✅ 跨平台使用 Skills
- ✅ 進階設計模式
下週的最終篇,我們將整理所有實用技巧和最佳實踐,並提供 30 個可以立即使用的 Skill 靈感!
💬 討論
你在企業中會如何應用 Skills?有什麼創新的使用方式?歡迎留言分享!
如果這篇文章對你有幫助:
- 👏 拍手支持
- 🔖 收藏文章
- 👤 追蹤我,不錯過最終篇!
標籤:Claude Code, Skills, 企業應用, 進階教學, AI, 自動化, Playwright, API Testing