設定

語言

Claude Code Skills:為您的 AI 編程助手建立自定義工作流程

L
LemonData
·2026年2月26日·71 次瀏覽
#Claude Code#技能#開發者工具#教學#生產力
Claude Code Skills:為您的 AI 編程助手建立自定義工作流程

Claude Code 技能:為你的 AI 編程助手構建自定義工作流

Claude Code 內置了一個通用的 AI 助手。而「技能」(Skills)能讓你使其專業化。技能是一個 Markdown 文件,用於教導 Claude Code 如何處理特定類型的任務:部署到 Kubernetes、編寫數據庫遷移、審查 Pull Request,或遵循團隊的編碼規範。

「幫我寫一個 React 組件」與「幫我寫一個遵循我們設計系統、使用自定義 Hook、具備適當錯誤邊界(Error Boundaries)和無障礙屬性(Accessibility Attributes)的 React 組件」之間的區別,就在於技能。

技能究竟是什麼

技能是位於 .claude/commands/(專案級別)或 ~/.claude/commands/(全域級別)中的 Markdown 文件。當你在 Claude Code 中輸入 /skill-name 時,該文件的內容會作為指令注入到對話中。

.claude/
  commands/
    deploy.md          # /deploy
    review-pr.md       # /review-pr
    write-test.md      # /write-test

就是這樣。沒有特殊的語法,不需要編譯,也沒有 SDK。只需用 Markdown 描述如何執行某項操作即可。

編寫你的第一個技能

這是一個實際範例:一個強制執行團隊 Commit 訊息規範的技能。

創建 .claude/commands/commit.md

# Commit 工作流

## 步驟
1. 執行 `git diff --staged` 查看正在提交的內容
2. 分析更改並分類:feat, fix, refactor, docs, test, chore
3. 按照我們的規範編寫 Commit 訊息:
   - 格式:`type(scope): description`
   - Scope 是套件或模組名稱
   - Description 使用祈使句、小寫、不加句號
   - 正文解釋「為什麼」,而非「做了什麼」
4. 如果更改涉及多個 Scope,請創建分開的 Commit
5. 使用生成的訊息執行 `git commit -m "message"`

## 規則
- 絕不使用 `--no-verify` 來跳過 Hook
- 絕不修改已發佈的 Commit
- 如果 pre-commit 測試失敗,請先修復問題

## 範例
- `feat(billing): add stripe webhook handler`
- `fix(auth): handle expired refresh tokens`
- `refactor(api): extract rate limiter to shared package`

現在,/commit 會為 Claude Code 提供一個結構化的工作流,而不是模糊的「提交我的更改」指令。

技能設計模式

清單模式 (The Checklist Pattern)

最適用於具有多個驗證步驟的任務。

# 部署前清單

在部署之前,請驗證以下各項:

- [ ] `pnpm typecheck` 通過
- [ ] `pnpm test` 通過
- [ ] 生產環境代碼中沒有 console.log 語句
- [ ] 環境變量已在 .env.example 中記錄
- [ ] 數據庫遷移是可逆的
- [ ] API 更改是向後兼容的

如果任何檢查失敗,請停止並報告問題。不要繼續部署。

決策樹模式 (The Decision Tree Pattern)

最適用於處理方式取決於上下文的任務。

# Bug 修復工作流

1. 重現 Bug(找到或編寫一個失敗的測試)
2. 確定根本原因:
   - 如果是類型錯誤 → 在源頭修復類型定義
   - 如果是競態條件 → 添加適當的鎖定/排序
   - 如果是缺少驗證 → 在邊界添加 Schema 驗證
   - 如果是邏輯錯誤 → 修復並添加回歸測試
3. 驗證修復不會破壞現有測試
4. 編寫一個本可以捕獲此 Bug 的測試

模板模式 (The Template Pattern)

最適用於生成一致的輸出。

# 新 API 端點

按照我們的規範創建一個新的 API 端點:

## 文件結構
- 路由處理器:`apps/api/src/routes/{resource}/{action}.ts`
- Schema:`apps/api/src/schemas/{resource}.ts`
- 測試:`apps/api/src/routes/{resource}/__tests__/{action}.test.ts`

## 必要元素
- 用於請求驗證的 Zod schema
- 身份驗證中間件
- 速率限制 (Rate limiting)
- 使用 errorResponse() 的結構化錯誤響應
- 使用 successResponse() 的成功響應
- OpenAPI 文檔註釋

安裝社群技能

Claude Code 生態系統擁有一個不斷增長的社群技能庫。使用以下命令安裝它們:

npx add-skill username/repo-name -y

熱門技能集合:

  • coreyhaines31/marketingskills (29 個營銷/SEO 技能)
  • hedging8563/lemondata-api-skill (LemonData API 集成)

安裝的技能會出現在 ~/.claude/commands/ 中,並可在所有專案中使用。

專案技能 vs 全域技能

位置 範圍 使用場景
.claude/commands/ 僅限此專案 專案規範、部署工作流
~/.claude/commands/ 所有專案 個人偏好、通用工具

專案技能應該提交到你的代碼倉庫中,以便整個團隊受益。全域技能則用於個人工作流偏好。

進階:帶有 Hook 的技能

技能可以引用 Hook(在特定事件上運行的 Shell 命令)來實現自動化執行:

# Pre-Commit 檢查

在任何 Commit 之前,以下 Hook 會自動運行:
- `pre-commit`: 運行 typecheck + lint
- `post-commit`: 更新 changelog

如果 Hook 失敗,請調查錯誤輸出並修復問題。
不要使用 --no-verify 來繞過 Hook。

Hook 本身在 .claude/settings.json 中配置:

{
  "hooks": {
    "pre-commit": "pnpm typecheck && pnpm lint-staged"
  }
}

編寫高效技能的提示

  1. 明確指定文件路徑和命名規範。「創建一個組件」很模糊。「在 src/components/ui/ 中使用 PascalCase 命名創建一個組件」則具有可操作性。

  2. 包含正確輸出的範例。Claude Code 從範例中學習的效果比從抽象規則中學習更好。

  3. 定義「不要做什麼」。「絕不使用 any 類型」比「使用適當的類型」更容易執行。

  4. 保持技能專注。一個工作流對應一個技能。一個涵蓋所有內容的 200 行技能,不如五個各司其職的 40 行技能有用。

  5. 對技能進行版本管理。隨著規範的演進,請更新技能。過時的技能比沒有技能更糟糕,因為它們會強制執行舊的模式。

現實世界的影響

採用技能的團隊報告了持續的改進:

  • Code Review 週期縮短,因為規範在審查前就已執行
  • 入職培訓時間減少,因為新開發者能獲得與資深開發者相同的指導
  • AI 生成的代碼質量提高,因為 AI 擁有了關於專案標準的明確上下文

這項投資很小(編寫你的前幾個技能只需 30 分鐘),而回報會隨著每次交互而不斷累積。


使用 AI 構建,由你自己的規則引導。lemondata.cc 為 AI 驅動的開發工具提供 API 基礎設施。

Share: