把常用 Prompt 做成 Skill 之后,我和 Claude Code 的配合效率直接翻了 3 倍

一个真实故事

去年10月,我手里有个React项目要重构,2000多行的上帝类,看着就头疼。每次让Claude Code帮我优化代码,我都要重复交代一遍:

  • "记得用TypeScript严格模式"
  • "API调用要加错误处理"
  • "组件要符合单一职责原则"

复制粘贴这些要求,少说也得两三分钟。更烦的是,聊了十几轮之后,Claude Code经常会"忘记"我最初的要求,又开始写出不符合规范的代码。

直到我在文档里翻到了Skill功能。

试了一周后,我把那些重复的要求全封装成了几个skill文件。现在只要一句@skill react-refactor,Claude Code立刻就知道该怎么做。那个2000行的类,原本估计要花三天时间重构,最后两个下午就搞定了。

Skill到底是什么

说白了,Skill就是给Claude Code装技能包。

你在.claude/skills/目录下创建一个markdown文件,把常用的提示词、工作流程、代码规范写进去。需要的时候,一句@skill 技能名就能调用。就像游戏里给角色装备不同技能,需要输出的时候装输出技能,需要坦克的时候装防御技能。

来看个最简单的例子:

markdown 复制代码
---
title: "React代码审查专家"
description: "专门审查React代码的质量、性能和最佳实践"
---

# React代码审查流程

你是一位经验丰富的React代码审查专家。请按以下标准审查代码:

## 审查重点
1. **组件设计**
   - 单一职责原则
   - Props类型定义的完整性
   - 组件拆分的合理性

2. **性能优化**
   - 不必要的重渲染
   - useMemo/useCallback的使用
   - 列表渲染的key值

3. **代码质量**
   - TypeScript类型安全
   - 错误边界处理
   - 可访问性(a11y)

## 输出格式
- 问题列表(按严重程度排序)
- 具体的代码建议
- 优先级标注(P0/P1/P2)

把这个文件保存为.claude/skills/react-review.md,以后审查React代码时,直接@skill react-review就行。Claude Code会严格按照你定义的标准来审查。

为什么手写提示词撑不住了

我之前也是提示词工程师,Notion里存了几十条精心打磨的提示词模板。但用了几个月后,发现这玩法有硬伤:

重复劳动太多 每次都要从Notion复制粘贴,有时候还要根据当前项目调整几个词。一天下来光是复制粘贴提示词,就要花半小时。

版本管理混乱 今天用的提示词和上周的不一样,效果也不稳定。想回溯"上次那个好用的版本"?抱歉,找不到了。

团队协作是灾难 我的好提示词,同事想用?手动发微信。同事改进了?又要手动同步回来。这效率跟石器时代没区别。

AI会遗忘 长对话里,Claude Code很容易忘记你最初的要求。聊到第20轮,你发现它又在犯之前说过不要犯的错误。

Skill把这些问题一次性解决了:

  • 版本化:用Git管理,回溯随便
  • 可共享:团队仓库一拉,所有人同步
  • 始终生效:不会因为对话太长而失效

我的第一个Skill:API接口生成器

那个电商项目里,后端给我扔了个100多个接口的Swagger文档。手动对接的话,一个接口要写:

  1. TypeScript类型定义
  2. axios请求函数
  3. 错误处理逻辑
  4. loading状态管理

算了一下,100个接口差不多要30个小时。

我花了1个小时,写了个api-generator的skill:

markdown 复制代码
---
title: "API接口代码生成器"
description: "根据接口文档生成TS类型定义和axios封装"
version: "1.3.0"
---

# API代码生成专家

你是一位全栈工程师,擅长前后端接口对接。你的任务是根据API文档生成高质量的TypeScript代码。

## 生成内容

### 1. TypeScript类型定义
```typescript
// 请求参数类型
interface GetUserRequest {
  userId: string;
  includeDetails?: boolean;
}

// 响应数据类型
interface GetUserResponse {
  id: string;
  name: string;
  email: string;
  createdAt: string;
}

2. Axios请求函数

typescript 复制代码
import request from '@/utils/request';

export const getUserAPI = async (
  params: GetUserRequest
): Promise<GetUserResponse> => {
  try {
    const response = await request.get<GetUserResponse>('/api/user', { params });
    return response.data;
  } catch (error) {
    console.error('获取用户信息失败:', error);
    throw error;
  }
};

3. React Hook封装(可选)

typescript 复制代码
export const useGetUser = (userId: string) => {
  const [data, setData] = useState<GetUserResponse | null>(null);
  const [loading, setLoading] = useState(false);
  const [error, setError] = useState<Error | null>(null);

  useEffect(() => {
    const fetchData = async () => {
      setLoading(true);
      try {
        const result = await getUserAPI({ userId });
        setData(result);
      } catch (err) {
        setError(err as Error);
      } finally {
        setLoading(false);
      }
    };
    fetchData();
  }, [userId]);

  return { data, loading, error };
};

代码规范

  • 命名遵循驼峰命名法
  • API函数以API结尾
  • Hook函数以use开头
  • 所有异步函数都要有错误处理
  • 导出的类型和函数都要加JSDoc注释

输出格式

  1. 先输出类型定义
  2. 再输出API函数
  3. 如果是常用接口,再生成Hook封装
  4. 最后给出使用示例
python 复制代码
有了这个skill,对接一个接口从30分钟缩短到了5分钟。100个接口,前后只花了两天时间就全部搞定。更关键的是,团队里的新人也能用同样的规范生成代码,整个项目的代码风格高度统一。

## 高级玩法:让Skill配合起来干活

用熟了之后,我发现单个skill还不够。真实的开发场景往往需要多个skill配合。

比如我重构老代码时的标准流程:

```bash
# 第1步:分析代码问题
@skill code-analyzer src/legacy/UserService.ts

# 第2步:制定重构方案
@skill refactor-planner

# 第3步:生成测试用例(重构前必须有测试保底)
@skill test-generator

# 第4步:执行重构
(手动重构或让Claude Code辅助)

# 第5步:最终代码审查
@skill code-reviewer

这四个skill依次调用,形成了完整的重构工作流。我甚至写了个shell脚本自动执行这个流程:

bash 复制代码
#!/bin/bash
# refactor-workflow.sh

echo "🔍 步骤1/4: 分析代码问题..."
claude-code @skill code-analyzer $1

read -p "按回车继续..."

echo "📋 步骤2/4: 制定重构方案..."
claude-code @skill refactor-planner

read -p "按回车继续..."

echo "🧪 步骤3/4: 生成测试用例..."
claude-code @skill test-generator

read -p "执行测试并确认通过后,按回车继续..."

echo "✅ 步骤4/4: 最终代码审查..."
claude-code @skill code-reviewer

用这个脚本重构过一个2000行的上帝类,拆成了7个职责清晰的小类。测试覆盖率从40%提升到85%,整个过程比想象中顺利很多。

团队共享:把Skill当作基础设施

我们团队现在把skill当作基础设施来管理。创建了一个Git仓库专门存放team-skills:

bash 复制代码
team-skills/
├── frontend/
│   ├── react-review.md          # React代码审查
│   ├── vue-component-gen.md     # Vue组件生成
│   └── css-optimizer.md         # CSS性能优化
├── backend/
│   ├── api-design.md            # API设计规范
│   ├── database-review.md       # 数据库审查
│   └── security-audit.md       # 安全审计
└── common/
    ├── code-cleaner.md          # 代码清理
    ├── test-generator.md        # 测试生成
    └── commit-msg.md            # Git提交信息生成

每个开发者在本地项目里软链接到这个仓库:

bash 复制代码
# 一次性配置
git clone git@github.com:your-team/team-skills.git ~/.team-skills
ln -s ~/.team-skills/* .claude/skills/

好处立竿见影:

  • 新人友好:入职第一天就有完整的skill库,立刻就能按规范写代码
  • 自动同步:团队更新skill后,所有人git pull就能获取最新版本
  • 代码一致:不管谁写的代码,风格都高度统一

上个月来了个实习生,第二天就能写出符合团队规范的代码。要在以前,至少得培训一周。

Skill和CLAUDE.md是黄金搭档

Skill更强大的玩法,是配合项目根目录的CLAUDE.md一起用。

在CLAUDE.md里定义项目全局规则:

markdown 复制代码
# 项目上下文

- 技术栈:React 18 + TypeScript 5.0 + Vite 4
- 代码规范:Airbnb ESLint规则
- 提交规范:Conventional Commits
- 状态管理:Zustand(禁止使用Redux)

## 重要约定
- 所有组件必须有完整的TypeScript类型定义
- API调用统一使用 src/utils/request.ts 封装
- 组件文件名使用PascalCase(如UserProfile.tsx)
- 工具函数文件名使用camelCase(如formatDate.ts)

## 目录结构
src/
├── components/    # 公共组件
├── pages/        # 页面组件
├── hooks/        # 自定义Hooks
├── utils/        # 工具函数
├── services/     # API服务
└── stores/       # Zustand状态管理

然后在skill里引用这些规则:

markdown 复制代码
---
title: "React组件生成器"
---

# 组件生成指令

严格按照CLAUDE.md中定义的技术栈、目录结构和命名规范生成React组件。

生成的组件必须:
- 使用TypeScript
- 符合项目的ESLint规则
- 放在正确的目录下
- 使用项目约定的状态管理方案

这样skill会自动读取CLAUDE.md的配置,生成的代码完全符合项目规范。新项目克隆下来,skill也能立刻适配。

我的5个必备Skill

用了半年,我的skills目录里积累了20多个skill。挑几个最常用的分享一下:

1. 测试用例生成器(test-gen.md

写完功能代码后最烦的就是补测试。这个skill能分析函数逻辑,自动生成单元测试,包括边界情况和异常场景。

效果:我的测试覆盖率从40%提升到85%,节省了至少一半的测试编写时间。

2. Git提交信息生成器(commit-msg.md

每次提交都要想commit message,挺浪费脑细胞的。这个skill分析git diff内容,自动生成符合Conventional Commits规范的提交信息。

示例输出:

diff 复制代码
feat(user-auth): 添加OAuth2.0登录功能

- 集成Google和GitHub第三方登录
- 添加JWT token刷新机制
- 完善用户权限校验中间件

Closes #123

虽然只有30行代码,但这是我每天都要用的skill。累计节省的时间已经好几个小时了。

3. 代码重构助手(refactor.md

老代码需要优化但不知从何下手时,这个skill能:

  • 识别代码坏味道
  • 给出重构优先级排序
  • 提供step-by-step重构计划
  • 保证重构前后功能一致

那个2000行的上帝类就是靠这个skill搞定的。

4. 安全审查专家(security-audit.md

专门检查代码安全问题:

  • SQL注入风险
  • XSS攻击防护
  • 敏感信息泄露
  • 权限校验完整性

有次准备上线前用这个skill扫了一遍,发现3个潜在的安全漏洞,吓出一身冷汗。

5. 文档生成器(doc-gen.md

项目文档总是滞后于代码?这个skill能根据代码自动生成API文档,提取函数注释生成Markdown,还能维护更新日志。

文档更新时间从2小时缩短到10分钟,而且再也不会出现"代码改了文档没改"的情况。

写好Skill的5个技巧

半年下来,我总结了几个编写skill的经验:

1. Frontmatter要认真写

虽然看起来可有可无,但title和description会显示在skill列表里:

markdown 复制代码
---
title: "全栈代码审查专家"
description: "审查前后端代码,关注安全性、性能和可维护性"
version: "2.1.0"
tags: ["代码审查", "安全", "性能"]
---

version字段方便版本管理,tags方便分类查找。

2. 角色定义要清晰

"你是一位...专家"这种开头很有用,能让Claude Code快速进入角色:

markdown 复制代码
你是一位拥有10年经验的全栈工程师,擅长代码审查和安全审计。

比直接说"请审查代码"效果好很多。

3. 用对比示例说明

用✅和❌对比好坏代码,Claude Code理解起来更准确:

markdown 复制代码
### SQL注入风险

❌ 危险写法:
```javascript
const query = `SELECT * FROM users WHERE id = ${userId}`;

✅ 安全写法:

javascript 复制代码
const query = 'SELECT * FROM users WHERE id = ?';
db.query(query, [userId]);
shell 复制代码
### 4. 输出格式要具体

别说"请给出建议",要说"按以下格式输出":

```markdown
## 输出格式

### 🔴 严重问题(必须修复)
- [文件名:行号] 问题描述
- 风险说明
- 修复建议(附代码示例)

### 🟡 建议改进(推荐优化)
- [文件名:行号] 问题描述
- 改进理由
- 优化方案

5. 加上错误处理规则

告诉AI遇到问题怎么办:

markdown 复制代码
## 错误处理

如果遇到以下情况:
- 代码语法错误:先指出错误位置,不继续审查
- 文件无法访问:提示用户检查路径
- 代码量过大(>5000行):建议分批审查

常见问题

Skill太多记不住名字?

用好命名规范:

  • review-*: 代码审查类
  • gen-*: 代码生成类
  • util-*: 工具类
  • fix-*: 问题修复类

我的命名:review-frontend.mdgen-api.mdutil-commit.md

Skill输出太长看不完?

在skill里加上简洁模式:

markdown 复制代码
默认使用详细模式。如果用户添加`--brief`参数,输出简洁版:
- 问题清单(一行一个)
- 严重程度标注
- 关键修复建议

Skill在不同项目中表现不一致?

让skill主动请求上下文:

markdown 复制代码
## 分析前置步骤

开始前请先:
1. 读取package.json了解依赖版本
2. 检查tsconfig.json了解TS配置
3. 查看.eslintrc了解代码规范
4. 浏览README.md了解项目架构

最后说两句

用了半年的skill功能,我的开发效率至少提升了40%。更重要的是,很多重复性的脑力劳动被解放出来了,我可以把时间花在真正需要思考的架构设计和业务逻辑上。

如果你现在还在手写提示词,建议你:

  1. 今天就开始:从一个简单的skill开始,比如代码审查或测试生成
  2. 逐步完善:每次用完后反思哪里可以改进,更新版本
  3. 团队共享:好的skill就像好的工具库,要分享出去
  4. 持续学习:关注官方文档更新,新功能可能会改变写法

最后分享一个心得:Skill的价值不在于有多复杂,而在于解决真实问题。我那个最简单的commit-msg生成器只有30行,但每天都在用,累计节省的时间已经好几个小时了。

从现在开始,试着把你每天重复输入的提示词整理成skill吧。三个月后,你会感谢今天的自己。

相关资源

本文首发自个人博客

相关推荐
清云逸仙7 小时前
AI Prompt 工程最佳实践:打造结构化的Prompt
人工智能·经验分享·深度学习·ai·ai编程
极客密码7 小时前
【已开源】Cursor AI 开发实战:小文件在线互传工具
开源·ai编程·cursor
Zzz 小生7 小时前
Github-Cursor Free VIP:解锁AI编程工具的高级功能
github·ai编程
孟健8 小时前
小需求做到千万美元 ARR:remove.bg 全案拆解
ai编程·产品
oden9 小时前
Claude回复太啰嗦?用Subagent打造你的专属AI团队
ai编程·claude
AI袋鼠帝10 小时前
国内最强AI IDE:Trae Solo中国版来了!完全免费~
aigc·ai编程·trae
java_logo10 小时前
LobeHub Docker 容器化部署指南
运维·人工智能·docker·ai·容器·ai编程·ai写作
清云逸仙11 小时前
AI Prompt应用实战:评论审核系统实现
人工智能·经验分享·ai·语言模型·prompt·ai编程