Claude Code 附帶一個通用的 AI 助手。技能(Skills)能讓您對其進行專業化定制。技能是一個 Markdown 文件,用於教導 Claude Code 如何處理特定類型的任務:部署到 Kubernetes、編寫數據庫遷移、審查 Pull Request,或遵循團隊的編碼規範。
「幫我寫一個 React 組件」與「幫我寫一個遵循我們設計系統、使用自定義 Hooks,並具備適當錯誤邊界和無障礙屬性的 React 組件」之間的區別,就在於技能。
Claude Code 官方文檔現在明確了一點:自定義命令(custom commands)已併入技能中。位於 .claude/commands/ 中的現有文件仍然有效,但技能是推薦的抽象方式,因為它們支持更豐富的元數據、支持文件和自動加載。如果您現在正在標準化團隊工作流,請優先將其構建為技能,並將舊版命令視為兼容路徑。
技能究竟是什麼
技能存放在一個帶有 SKILL.md 入口文件的目錄中。當描述與當前任務匹配時,Claude 可以自動加載它,或者您也可以通過 /skill-name 直接調用。
.claude/
skills/
deploy/
SKILL.md # /deploy
review-pr/
SKILL.md # /review-pr
write-test/
SKILL.md # /write-test
Claude 仍然支持 .claude/commands/deploy.md,且斜槓命令也依然有效。但現代化的版本是 .claude/skills/deploy/SKILL.md。
這聽起來只是微小的命名變化,但其實很重要,因為技能可以攜帶支持文件、Frontmatter、調用控制和子代理(subagent)提示。一個精簡的命令文件可以告訴 Claude 做什麼。而技能則可以告訴 Claude 您的團隊期望如何完成這項工作。
編寫您的第一個技能
這是一個實際範例:一個強制執行團隊 Commit 消息規範的技能。
創建 .claude/skills/commit/SKILL.md:
---
name: commit
description: Generate and validate conventional commits for this repo.
---
# Commit Workflow
## Steps
1. Run `git diff --staged` to see what's being committed
2. Analyze the changes and categorize: feat, fix, refactor, docs, test, chore
3. Write a commit message following our convention:
- Format: `type(scope): description`
- Scope is the package or module name
- Description is imperative mood, lowercase, no period
- Body explains WHY, not WHAT
4. If changes touch multiple scopes, create separate commits
5. Run `git commit -m "message"` with the generated message
## Rules
- Never use `--no-verify` to skip hooks
- Never amend published commits
- If tests fail in pre-commit, fix the issue first
## Examples
- `feat(billing): add stripe webhook handler`
- `fix(auth): handle expired refresh tokens`
- `refactor(api): extract rate limiter to shared package`
現在,/commit 會為 Claude Code 提供一個結構化的工作流,而不是模糊的「提交我的更改」指令。
如果您已有舊版命令文件,請在遷移時保持其運行,但不要再對舊佈局進行投入。官方文檔已明確指出,技能是未來的發展方向。
技能現在存放在哪裡
Claude Code 目前從四個位置發現技能:
- 個人技能:
~/.claude/skills/<skill-name>/SKILL.md - 項目技能:
.claude/skills/<skill-name>/SKILL.md - Monorepo 中的嵌套項目技能
- 插件提供的技能
這為您提供了清晰的劃分:
- 個人技能用於您自己的工作風格
- 項目技能用於倉庫規範
- 插件技能用於可重用的封裝工作流
為了讓團隊採用,請將項目技能提交到倉庫。這就是「我的筆記本上有個不錯的 Prompt」與「團隊現在擁有了可重複的工作流」之間的區別。
技能設計模式
清單模式 (The Checklist Pattern)
最適合具有多個驗證步驟的任務。
# Pre-Deploy Checklist
Before deploying, verify each item:
- [ ] `pnpm typecheck` passes
- [ ] `pnpm test` passes
- [ ] No console.log statements in production code
- [ ] Environment variables documented in .env.example
- [ ] Database migrations are reversible
- [ ] API changes are backward compatible
If any check fails, stop and report the issue. Do not proceed with deployment.
決策樹模式 (The Decision Tree Pattern)
最適合處理方式取決於上下文的任務。
# Bug Fix Workflow
1. Reproduce the bug (find or write a failing test)
2. Identify the root cause:
- If it's a type error → fix the type definition at the source
- If it's a race condition → add proper locking/sequencing
- If it's a missing validation → add schema validation at the boundary
- If it's a logic error → fix and add regression test
3. Verify the fix doesn't break existing tests
4. Write a test that would have caught this bug
模板模式 (The Template Pattern)
最適合生成一致的輸出。
# New API Endpoint
Create a new API endpoint following our conventions:
## File Structure
- Route handler: `apps/api/src/routes/{resource}/{action}.ts`
- Schema: `apps/api/src/schemas/{resource}.ts`
- Test: `apps/api/src/routes/{resource}/__tests__/{action}.test.ts`
## Required Elements
- Zod schema for request validation
- Authentication middleware
- Rate limiting
- Structured error responses using errorResponse()
- Success responses using successResponse()
- OpenAPI documentation comments
安裝社區技能
Claude Code 生態系統擁有不斷增長的社區技能庫。您可以使用以下命令安裝:
npx add-skill username/repo-name -y
熱門技能集合:
coreyhaines31/marketingskills(29 個營銷/SEO 技能)hedging8563/lemondata-api-skill(LemonData API 集成)
安裝的技能會出現在 ~/.claude/commands/ 中,並適用於所有項目。
安裝的技能包越來越多地暴露真正的技能,而不僅僅是斜槓命令 Markdown。如果您維護自己的倉庫,來自 OpenCode + LemonData 的模式同樣適用:讓技能貼近工作流,而不是隱藏在臨時的 Prompt 文件中。
項目 vs 全局技能
| 位置 | 範圍 | 使用場景 |
|---|---|---|
.claude/skills/ |
僅限此項目 | 項目規範、部署工作流 |
~/.claude/skills/ |
所有項目 | 個人偏好、可重用的習慣 |
.claude/commands/ |
舊版兼容 | 仍然有效的舊版斜槓命令文件 |
項目技能應該提交到您的倉庫,以便整個團隊受益。全局技能則用於個人工作流偏好。
進階:帶有 Hooks 的技能
技能可以引用 Hooks(在特定事件上運行的 Shell 命令)來實現自動化強制執行:
# Pre-Commit Check
Before any commit, the following hooks run automatically:
- `pre-commit`: runs typecheck + lint
- `post-commit`: updates changelog
If a hook fails, investigate the error output and fix the issue.
Do not use --no-verify to bypass hooks.
Hooks 本身在 .claude/settings.json 中配置:
{
"hooks": {
"pre-commit": "pnpm typecheck && pnpm lint-staged"
}
}
這就是技能超越 Prompt 片段的地方。一個實用的團隊設置通常包含三個層次:
- 告訴 Claude 工作流的技能
- 強制執行工作流的 Hooks
- 向人類解釋工作流的倉庫文檔
如果缺少其中一層,系統就會變得脆弱。沒有 Hooks 的技能變成了建議性的;沒有技能的 Hooks 變得不透明;兩者都沒有的文檔則變成了沒人遵守的過時政策。
支持文件才是真正的升級
優先選擇技能而非舊版命令 Markdown 的最重要原因是支持文件。
使用命令文件,所有內容都必須擠在一個塊中。而使用技能目錄,您可以保留:
- 模板
- 範例
- Shell 助手
- 較長的參考筆記
- 驗證器腳本
這讓您可以保持 SKILL.md 簡短且高信號,同時在需要時為 Claude 提供結構化的材料來提取。
這對於以下場景特別有用:
- 部署工作流
- 模式遷移清單
- 多步驟代碼審查流程
- 特定產品的集成手冊
如果您的團隊還在使用多個模型或多個編碼工具,請將此頁面與 2026 年最佳 AI 編碼模型比較 以及 Cursor / Cline / Windsurf 設置指南 配合使用。當底層模型或編輯器發生變化時,優秀的技能會變得更加重要。
編寫高效技能的技巧
明確文件路徑和命名規範。「創建一個組件」很模糊。「在
src/components/ui/中使用 PascalCase 命名創建一個組件」則具有可操作性。包含正確輸出的範例。Claude Code 從範例中學習的效果優於抽象規則。
定義「不要做什麼」。「永遠不要使用
any類型」比「使用正確的類型」更容易強制執行。保持技能專注。一個工作流對應一個技能。一個涵蓋所有內容的 200 行技能,不如五個各司其職的 40 行技能實用。
為您的技能標註版本。隨著規範的演進,請更新技能。過時的技能比沒有技能更糟,因為它們會強制執行舊模式。
決定技能應該自動加載還是僅手動運行。許多團隊忘記了這一點,然後奇怪為什麼 Claude 會在無關的對話中調用部署技能。
現實世界的影響
採用技能的團隊報告了持續的改進:
- 代碼審查週期縮短,因為規範在審查前就已得到執行
- 入職時間減少,因為新開發者能獲得與資深開發者相同的指導
- AI 生成的代碼質量提高,因為 AI 擁有了關於項目標準的明確上下文
這項投入很小(編寫前幾個技能只需 30 分鐘),而回報會在每次交互中不斷疊加。
最實用的思維模型是:技能不是 Claude 的快捷方式,它是您團隊的版本化工作流產物。
如果您只打算編寫一個技能,請選擇那個在代碼庫中決策成本最高且重複發生的任務。
隨 AI 協作,由您的規則引導。LemonData 為您提供一個 API key,可用於跨供應商的編碼模型,因此一旦您的工作流被編碼為技能,您就可以在不重建整個工具鏈的情況下切換模型。
