每天省去重复 Prompt:我用 Skills 把 CRUD 生成标准化了

用 Claude Code 写 CRUD 是真的快------但它每次都问差不多的问题,你也得每次写差不多的 Prompt。"参照 UserController、用构造器注入、别用 @Autowired、统一返回 Result"------这些话我大概重复了几十遍。

后来发现了 Skills,把这套流程固化成文件,以后说一句"为 xx 表生成 CRUD"它就自己按流程走。这篇文章分享一下怎么创建自己的 Skill。


Skill 本质上是什么

就是一个 Markdown 文件,放在项目的 .claude/skills/ 目录下。里面写清楚:什么时候触发、按什么步骤执行、有什么注意事项。

Claude Code 启动时自动加载项目里的所有 Skill,遇到匹配的任务就按你定义的流程走。

你可以把它理解为:把 Prompt 模板 + 操作规范 打包成了一个可复用的文件。


手把手创建第一个 Skill

我的 Java 项目用 MyBatis-Plus,经常要生成 CRUD。下面是我实际在用的 Skill。

1. 建目录

在项目根目录:

bash 复制代码
.claude/skills/java-crud/SKILL.md

文件名必须叫 SKILL.md,目录名自定义。

description 是关键------它不是简单的标签,而是告诉 Claude Code "什么时候该激活这个 Skill"。Claude Code 根据 description 来匹配当前对话是否应该用这个 Skill。写得太模糊(比如只写"写代码"),Skill 可能永远不会被自动触发。要写清楚触发条件,比如"用户说要生成 CRUD、创建新模块、新建实体"。

2. 写内容

yaml 复制代码
---
name: java-crud-generator
description: 为 MyBatis-Plus 项目生成完整 Java CRUD 代码
---
​
# Java CRUD Generator
​
## 何时使用
- 用户说"生成 CRUD"、"创建新模块"、"新建实体"
- 用户提到具体表名并要求生成代码
​
## 执行步骤
1. 如果用户没提供表名和字段,先向用户确认
2. 读取 CLAUDE.md 了解技术栈和编码规范
3. 参照项目里已有的 Controller 确定代码风格
4. 按此顺序生成:Entity → Mapper → Service + ServiceImpl →
   Controller → SaveDTO、UpdateDTO、QueryDTO、VO
5. 所有代码必须符合 CLAUDE.md 里的规范
6. 生成完毕后提示用户运行测试
​
## 注意事项
- 使用构造器注入,禁止 @Autowired
- MyBatis-Plus 用 LambdaQueryWrapper
- 统一返回 Result<T>,分页返回 PageResult<T>
- 时间字段用 LocalDateTime,金额用 BigDecimal

3. 使用

以前你需要写一大段 Prompt。现在:

shell 复制代码
> 为 sys_product 表生成 CRUD

Claude Code 读到这条,匹配到 java-crud-generator Skill,自动按步骤执行------确认表结构、读规范、参照已有代码、按顺序生成文件、提醒跑测试。你不用每次重复那些规范了。

怎么确认 Skill 生效了 :重启 Claude Code 或新开对话,输入"你加载了哪些 Skill"。如果列表里出现 java-crud-generator,说明成了。也可以直接试一句"为 test_table 生成 CRUD",看它是不是按你定义的步骤走。


还可以做哪些 Skill

Code Review

yaml 复制代码
---
name: java-code-review
description: 按团队标准审查 Java 代码变更
---
​
## 执行步骤
1. 用 git diff 查看未提交的变更
2. 重点检查:空指针风险、事务边界、SQL 注入、异常处理
3. 输出按严重程度分三级:高危 / 建议 / 风格
4. 每个问题给出具体的修复代码

单元测试生成

yaml 复制代码
---
name: unit-test-generator
description: 为 Service 类生成完整单元测试
​
## 执行步骤
1. 读取目标 Service 类,分析所有 public 方法
2. 为每个方法生成正常/异常/边界三类用例
3. 使用 Mockito,Mock 所有外部依赖
4. 生成完后跑测试验证

团队共享

.claude/skills/ 目录提交到 Git:

sql 复制代码
git add .claude/skills/
git commit -m "添加项目 Skills:CRUD 生成、Code Review、单元测试"

新同事拉代码后 Claude Code 自动加载这些 Skill,标准流程直接上手,不需要老同事口头"传帮带"。

用户级 vs 项目级.claude/skills/ 是项目级,随代码提交。如果你想在所有项目里用同一个 Skill(比如通用的 Code Review 标准),放到 ~/.claude/skills/ 下------用户级,全局生效。跟特定技术栈相关的(比如 MyBatis-Plus CRUD)放项目级更合适。


使用心得

Skills 不是银弹------它不能帮你解决没有标准流程的复杂任务。但对于那些每天都在做的重复性工作(CRUD、测试、Review),把流程固化下来省的时间很可观。

我个人的经验:从你最常重复的那个操作开始,先做一个 Skill。用几天觉得好,再做第二个。不要一上来就规划十个八个------很多你以为会常用的可能根本不常用。


总结

  1. Skill = Prompt 模板 + 操作规范,打包成 .claude/skills/xxx/SKILL.md
  2. 元数据写 name 和 description,正文写执行步骤
  3. 随 Git 提交,团队共享
  4. 从最常重复的那个任务开始,做一个就赚一个

下一篇讲 MCP------让 Claude Code 直接连数据库读表结构,配合 Skills 一起用,一句"为 xx 表生成 CRUD"从查表到写代码全自动。

有用的话欢迎点赞收藏。

相关推荐
小满zs1 小时前
Go语言第六章(结构体)
后端·go
卡卡罗特AI1 小时前
GitHub怎么用?零基础,保姆级使用教程-上!建议收藏
前端·后端·github
自然 醒1 小时前
v-tooltip自定义指令封装
前端·javascript·vue.js
老孙讲技术1 小时前
家长端看幼儿园 live:云直播 HLS 嵌入公众号 / H5 的合规要点
后端·物联网
xingren1 小时前
CT(DCM)外轮廓实时识别 → 逐层拼3D → 导出STL到Blender
后端
foggyprojects1 小时前
同一条销售查询,两个用户为什么看到不同结果?
后端
梅头脑1 小时前
Java镜像1.2GB→200MB,K8s Pod OOMKilled 137半夜报警——容器化的真实踩坑记录
后端
因_崔斯汀1 小时前
Three.js 3D 热力云图效果实现
前端·three.js
netCode2 小时前
IDEA使用 Alibaba Cloud Toolkit
后端