设置

语言

Claude Code 技能:为您的 AI 编程助手构建自定义工作流

L
LemonData
·2026年2月26日·596 次浏览
Claude Code 技能:为您的 AI 编程助手构建自定义工作流

Claude Code 附带了一个通用的 AI 助手。而 Skills(技能)允许您对其进行专门化定制。一个 Skill 就是一个 markdown 文件,它教导 Claude Code 如何处理特定类型的任务:部署到 Kubernetes、编写数据库迁移、审查 pull requests,或者遵循您团队的编码规范。

“帮我写一个 React 组件”与“帮我写一个遵循我们设计系统、使用自定义 hooks、并具有适当错误边界(error boundaries)和无障碍属性的 React 组件”之间的区别,就在于一个 Skill。

官方 Claude Code 文档现在明确了一点:自定义命令(custom commands)已合并到 Skills 中。虽然 .claude/commands/ 中的现有文件仍然有效,但 Skills 是推荐的抽象方式,因为它们支持更丰富的 metadata、辅助文件和自动加载。如果您现在正在标准化团队工作流,请优先将其构建为 Skill,并将旧版命令视为兼容路径。

什么是 Skills

一个 Skill 存在于一个包含 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

这听起来像是一个微小的命名更改。但它很重要,因为 Skills 可以携带辅助文件、frontmatter、调用控制和 subagent 提示。一个简单的命令文件只能告诉 Claude 做什么,而一个 Skill 可以告诉 Claude 您的团队期望如何完成这项工作。

编写您的第一个 Skill

这是一个实际示例:一个强制执行团队 commit 消息规范的 Skill。

创建 .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 提供一个结构化的工作流,而不是模糊的“提交我的更改”指令。

如果您已经拥有旧版命令文件,请在迁移时保持它们运行,但不要再对旧布局进行投入。官方文档明确指出,Skills 是未来的发展方向。

Skills 现在的存放位置

Claude Code 目前从四个地方发现 Skills:

  • 个人技能:~/.claude/skills/<skill-name>/SKILL.md
  • 项目技能:.claude/skills/<skill-name>/SKILL.md
  • monorepos 中的嵌套项目技能
  • 插件提供的技能

这为您提供了一个清晰的划分:

  • 个人技能用于您自己的工作风格
  • 项目技能用于仓库规范
  • 插件技能用于可复用的打包工作流

为了团队采用,请将项目技能提交到仓库。这就是“我的笔记本电脑上有一个不错的 prompt”与“团队现在拥有一个可重复的工作流”之间的区别。

Skill 设计模式

核对清单模式 (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

安装社区 Skills

Claude Code 生态系统拥有一个不断增长的社区技能库。使用以下命令安装它们:

npx add-skill username/repo-name -y

流行的 Skill 集合:

  • coreyhaines31/marketingskills(29 个营销/SEO 技能)
  • hedging8563/lemondata-api-skill(LemonData API 集成)

安装的技能会出现在 ~/.claude/commands/ 中,并可在所有项目中使用。 安装的技能包越来越多地暴露真正的 Skills,而不仅仅是斜杠命令 markdown。如果您维护自己的仓库,来自 OpenCode + LemonData 的模式也适用于此:让 Skill 紧贴工作流,而不是隐藏在临时的 prompt 文件中。

项目技能 vs 全局技能

位置 范围 用例
.claude/skills/ 仅限此项目 项目规范、部署工作流
~/.claude/skills/ 所有项目 个人偏好、可复用的习惯
.claude/commands/ 旧版兼容 仍然有效的旧斜杠命令文件

项目技能应该提交到您的仓库,以便整个团队受益。全局技能则用于个人工作流偏好。

高级:带有 Hooks 的 Skills

Skills 可以引用 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"
  }
}

这就是 Skills 不仅仅是 prompt 片段的地方。一个有用的团队设置通常有三个层面:

  1. 一个告诉 Claude 工作流的 Skill
  2. 强制执行该工作流的 hooks
  3. 向人类解释该工作流的仓库文档

如果缺少其中一层,系统就会变得脆弱。没有 hooks 的 Skill 变成了建议性的;没有 Skill 的 hooks 变得晦涩难懂;而没有这两者的文档则变成了没人遵守的陈旧政策。

辅助文件才是真正的升级

相比旧的命令 markdown 文件,优先选择 Skills 的最重要原因是它支持辅助文件。

使用命令文件时,所有内容都必须存在于一个大块中。而使用 Skill 目录,您可以保留:

  • 模板
  • 示例
  • shell 辅助脚本
  • 更长的参考笔记
  • 验证器脚本

这让您可以保持 SKILL.md 简短且高信号,同时在需要时仍能为 Claude 提供结构化的素材。

这对于以下情况特别有用:

  • 部署工作流
  • Schema 迁移核对清单
  • 多步骤代码审查流程
  • 特定产品的集成手册

如果您的团队还在使用多个模型或多种编程工具,请将此页面与 2026 年最佳 AI 编程模型对比 以及 Cursor / Cline / Windsurf 设置指南 结合阅读。当底层模型或编辑器发生变化时,优秀的 Skills 会变得更加重要。

高效 Skills 的编写技巧

  1. 明确文件路径和命名规范。“创建一个组件”很模糊,“在 src/components/ui/ 中使用 PascalCase 命名创建一个组件”则具有可操作性。

  2. 包含正确输出的示例。相比抽象的规则,Claude Code 从示例中学习的效果更好。

  3. 定义“不要做什么”。“永远不要使用 any 类型”比“使用正确的类型”更容易强制执行。

  4. 保持 Skills 聚焦。每个工作流一个 Skill。一个涵盖所有内容的 200 行 Skill 不如五个各司其职的 40 行 Skill 有用。

  5. 为您的 Skills 标注版本。随着规范的演进,请更新 Skills。过时的 Skills 比没有 Skills 更糟糕,因为它们会强制执行旧的模式。

  6. 决定 Skill 应该是自动加载还是仅手动运行。许多团队忘记了这一点,然后纳闷为什么 Claude 会在无关的对话中调用部署 Skill。

现实世界的影响

采用 Skills 的团队报告了持续的改进:

  • 代码审查周期缩短,因为规范在审查前就已得到执行
  • 入职时间减少,因为新开发人员可以获得与资深开发人员相同的指导
  • AI 生成的代码质量提高,因为 AI 拥有关于项目标准的明确上下文

这项投入很小(编写您的前几个 Skills 仅需 30 分钟),而回报会在每次交互中复合增长。

最有用的思维模型是:Skill 不是 Claude 的快捷方式,它是您团队的版本化工作流产物。

如果您只编写一个 Skill,请选择那个能够编码您代码库中成本最高、重复决策最多的 Skill。


在您自己的规则引导下,利用 AI 进行构建。LemonData 为您提供一个 API key,即可使用各供应商的编程模型,因此一旦您的工作流被编码为 Skills,您就可以在不重建整个工具链的情况下切换模型。

分享: