Claude Skills:如何创建自定义 Claude Code 技能 (2026)
为你的 AI 开发工作流构建可复用的 slash commands
开始使用 Hypereal 构建
通过单个 API 访问 Kling、Flux、Sora、Veo 等。免费积分开始,扩展到数百万。
无需信用卡 • 10万+ 开发者 • 企业级服务
Claude Skills:如何创建自定义 Claude Code 技能 (2026)
Claude Code 是 Anthropic 为软件开发推出的 AI 驱动型 CLI 工具。其最强大但尚未被充分利用的功能之一是自定义技能(Custom Skills)——即可重复使用的斜杠命令。你可以通过创建这些命令来自动执行重复任务、强制执行团队规范并构建标准化的工作流。
本指南涵盖了创建、配置和共享 Claude Code 技能所需了解的所有内容。
什么是 Claude Code 技能?
技能是自定义斜杠命令,可为 Claude Code 提供针对常见任务的特定指令。当你向 Claude Code 输入 /your-skill-name 时,它会加载预定义的提示词,其中包括引导 Claude 行为的上下文、约束条件和示例。
可以将技能看作是“加强版”的已保存提示词。它们可以:
- 定义特定的输出内容格式。
- 包含特定于项目的上下文。
- 强制执行编码标准和规范。
- 自动化多步骤工作流。
- 通过版本控制在团队间共享。
技能的工作原理
技能以 Markdown 文件形式存储在特定目录中。调用时,Claude Code 会读取该文件并将其内容作为指令。
| 维度 | 详情 |
|---|---|
| 文件格式 | Markdown (.md) |
| 存储位置 | 项目内的 .claude/skills/ 或全局的 ~/.claude/skills/ |
| 调用方式 | 在 Claude Code 中输入 /skill-name |
| 作用域 | 项目级或用户级 |
| 共享方式 | 提交至版本控制系统以供团队共享 |
设置你的第一个技能
第 1 步:创建技能目录
mkdir -p .claude/skills
如果是要在所有项目中使用的全局技能:
mkdir -p ~/.claude/skills
第 2 步:创建技能文件
创建 .claude/skills/commit.md:
# Commit
为当前已暂存的更改生成 git commit 消息。
## 规则
1. 使用 `git diff --cached` 分析所有已暂存的更改
2. 按照 Conventional Commits 格式编写提交消息
3. 第一行:type(scope): description (最多 72 个字符)
4. 类型 (Types):feat, fix, refactor, docs, test, chore, perf, ci
5. 如果更改内容较多,请包含正文 (body)
6. 如果代码更改中提到了相关的 issue 编号,请进行引用
7. 提交消息中不得包含 Emoji
8. 暂存提交但让用户在执行前确认
## 格式
type(scope): short description
Longer description of what changed and why. This is optional for simple changes.
Refs: #issue-number (if applicable)
## 示例
推荐:
- `feat(auth): add JWT refresh token rotation`
- `fix(api): handle null response in user endpoint`
- `refactor(db): migrate from raw SQL to Prisma ORM`
不推荐:
- `updated stuff` (过于模糊)
- `fix bug` (无作用域,无描述)
- `FEAT: Add new feature!!!` (格式错误,情绪化严重)
第 3 步:使用技能
在 Claude Code 中输入:
/commit
Claude Code 会读取技能文件并按照指令生成格式正确的提交消息。
实用技能示例
代码审查技能 (Code Review Skill)
创建 .claude/skills/review.md:
# Code Review
对指定文件或最近的更改进行彻底的代码审查。
## 流程
1. 如果未指定文件,则使用 `git diff` 审查所有未提交的更改
2. 针对以下类别分析代码:
### 安全性 (Security)
- SQL 注入、XSS、CSRF 漏洞
- 硬编码的机密信息或凭据
- 输入验证不当
- 身份验证/授权问题
### 性能 (Performance)
- N+1 查询
- 缺失索引(如果是数据库相关)
- 不必要的重新渲染(如果是 React)
- 内存泄漏
- 低效算法
### 代码质量 (Code Quality)
- 命名规范
- 函数长度(标记超过 50 行的函数)
- 重复逻辑
- 缺失错误处理
- 缺失 TypeScript 类型(如果是 TS 项目)
### 测试 (Testing)
- 新函数是否有测试覆盖?
- 是否考虑了边界情况?
- Mock 是否合适?
## 输出格式
对于发现的每个问题,请提供:
- **严重程度 (Severity)**:严重 / 警告 / 建议
- **位置 (Location)**:文件名和行号
- **问题 (Issue)**:问题是什么
- **修复 (Fix)**:解决该问题的具体代码
最后以摘要结束:按严重程度统计的问题总数和综合评估。
API 端点技能 (API Endpoint Skill)
创建 .claude/skills/api-endpoint.md:
# API Endpoint
按照项目规范创建一个新的 API 端点。
## 技术栈
本项目使用:
- Next.js App Router (Route Handlers)
- TypeScript (Strict Mode)
- Zod (验证)
- Prisma (数据库访问)
- NextAuth (身份验证)
## 要求
1. 在 `src/app/api/[endpoint]/route.ts` 中创建路由处理器
2. 包含使用 Zod schema 的输入验证
3. 使用 `getServerSession` 添加身份验证检查
4. 使用正确的 HTTP 状态码处理错误
5. 返回类型化的 JSON 响应
6. 为端点添加 JSDoc 注释
## 模板
```typescript
import { NextRequest, NextResponse } from "next/server";
import { getServerSession } from "next-auth";
import { z } from "zod";
import { authOptions } from "@/lib/auth";
import { prisma } from "@/lib/prisma";
const requestSchema = z.object({
// 在此处定义 Schema
});
/**
* 端点功能描述
* @method POST/GET/PUT/DELETE
* @auth Required
*/
export async function POST(request: NextRequest) {
try {
const session = await getServerSession(authOptions);
if (!session?.user) {
return NextResponse.json({ error: "Unauthorized" }, { status: 401 });
}
const body = await request.json();
const validated = requestSchema.parse(body);
// 在此处实现逻辑
return NextResponse.json({ data: result });
} catch (error) {
if (error instanceof z.ZodError) {
return NextResponse.json({ error: error.errors }, { status: 400 });
}
console.error("[API_ENDPOINT]", error);
return NextResponse.json({ error: "Internal server error" }, { status: 500 });
}
}
当被要求创建端点时,请严格遵守此模板并根据具体用例进行调整。
### 组件技能 (Component Skill)
创建 `.claude/skills/component.md`:
```markdown
# Component
按照项目规范创建一个新的 React 组件。
## 技术栈
- 支持 Server Components 的 React 19(默认)
- TypeScript (Strict Mode)
- Tailwind CSS v4 (样式)
- Shadcn/ui (基础组件)
- 仅在需要时使用 "use client" 指令(事件处理、Hooks、浏览器 API)
## 规则
1. 在适当的目录中创建组件:
- 共享 UI:`src/components/ui/`
- 特定功能:`src/components/[feature]/`
- 页面级:与页面存放在同级目录
2. 使用 interface 定义 Props(不要用 type)
3. 使用具名导出 (Named Export)(不要用 default)
4. 为所有 Props 包含正确的 TypeScript 类型
5. 使用 `cn()` 工具函数处理条件类名
6. 确保组件具有无障碍性(ARIA 属性、键盘导航)
7. 保持组件在 150 行以内。如果过大请进行拆分。
## 命名规范
- 文件名:`kebab-case.tsx`
- 组件名:`PascalCase`
- Props 接口名:`ComponentNameProps`
## 模板
```tsx
import { cn } from "@/lib/utils";
interface ComponentNameProps {
className?: string;
children?: React.ReactNode;
}
export function ComponentName({ className, children }: ComponentNameProps) {
return (
<div className={cn("base-styles", className)}>
{children}
</div>
);
}
### 数据库迁移技能 (Database Migration Skill)
创建 `.claude/skills/migration.md`:
```markdown
# Migration
创建一个 Prisma 数据库迁移。
## 流程
1. 询问迁移应该执行什么操作(添加表、修改列、添加索引等)
2. 更新 `prisma/schema.prisma` 中的 Prisma schema
3. 运行 `npx prisma migrate dev --name descriptive-name`
4. 如果迁移创建了新模型,还需创建:
- `src/lib/validations/` 中的 Zod 验证 schema
- `src/lib/db/` 中的基础 CRUD 函数
5. 验证迁移是否成功
## 命名约定
迁移名称应使用描述性的 kebab-case:
- `add-users-table`
- `add-email-index-to-users`
- `rename-post-title-to-headline`
- `add-subscription-status-enum`
## 规则
- 严禁修改现有的迁移文件
- 始终为现有表上新的必填列添加默认值
- 为 WHERE 子句中使用的列添加索引
- 数据库字段使用 snake_case 命名,并对应使用 `@map` 和 `@@map`
项目级技能 vs 全局技能
| 作用域 | 位置 | 使用场景 |
|---|---|---|
| 项目级 | .claude/skills/ |
团队规范、特定项目的工作流 |
| 全局级 | ~/.claude/skills/ |
个人偏好、跨项目工具 |
项目级技能会覆盖同名的全局级技能。这使得团队可以强制执行规范,同时允许开发者保留个人偏好设置。
与团队共享技能
由于技能只是存储在代码仓库中的 Markdown 文件,共享它们就像提交代码一样简单:
git add .claude/skills/
git commit -m "feat: add team coding skills for Claude Code"
git push
团队中每个使用 Claude Code 的成员在拉取仓库后,都会自动获取这些技能。
编写高效技能的技巧
- 明确输出格式:模糊的提示词会产生不一致的结果。展示精确的代码模板。
- 包含示例:正面和反面示例有助于 Claude 理解你的期望。
- 说明技术栈:引用特定框架、语言和工具的技能会产生更好的效果。
- 保持技能专注:每项任务对应一个技能。例如,设置独立的“审查 (review)”和“提交 (commit)”技能,而不是一个合并的“审查并提交”技能。
- 迭代技能文件:从简单开始,然后根据 Claude 的输出质量不断完善。
- 使用约束条件:“不要使用默认导出”比“首选具名导出”更有效。
技能调试
如果技能未按预期工作:
- 检查文件位置:必须位于
.claude/skills/或~/.claude/skills/。 - 检查文件扩展名:必须为
.md。 - 重启 Claude Code:技能在 Claude Code 启动时加载。
- 直接测试提示词:复制技能内容并将其作为普通消息粘贴,以隔离并定位问题。
总结
自定义 Claude Code 技能将 Claude 从一个通用型助手转变为一个“懂团队”的开发伙伴,它了解你的规范、框架和工作流。设置过程仅需几分钟,而由此带来的生产力提升将在每次使用中不断累积。
如果你的开发工作流涉及 AI 生成的媒介内容,欢迎免费试用 Hypereal AI —— 包含 35 个积分,无需信用卡。它的 API 可以在 Claude Code 中直接调用,用于开发过程中的图像生成、视频创作和头像制作等任务。
