别让AI每天从零开始:一个研发老兵的Skills沉淀实操指南

别让AI每天从零开始:一个研发老兵的Skills沉淀实操指南

三个月前我问了团队一个问题:“你们每天用AI写代码,有没有发现自己在反复描述同一类需求?”

安静了五秒后,有人说:“写单元测试的Prompt,我大概复制粘贴了不下50次。”

问题就在这里。


一、你在"用AI",但AI没有在"学你"

2026年的AI编程工具已经足够强大。Cursor、Claude Code、Copilot,随便拿一个出来都能在30秒内生成一个CRUD接口。但一个尴尬的事实是:

你用了半年AI,AI对你的代码风格、业务偏好、踩过的坑一无所知。

每次新开一个对话,AI又回到了出厂状态。你需要重新解释项目结构、再次强调编码规范、第N次纠正它不要用已经废弃的那套API。这不是你的问题——这是"每次从零开始"这个模式的天花板。

Skill沉淀,就是要打破这个天花板。

它和"Cursor Rules"或"项目 .cursorrules 文件"不一样。Rules是静态约束(“不要用var”、“用ES6语法”),而Skill是一套可复用的经验资产——包含了你在某个具体场景下的判断逻辑、最佳输入输出格式、已知的坑和规避策略。


二、先搞清楚什么值得沉淀:三维筛选法

不是所有重复操作都值得封装成Skill。判断标准有三个维度:

维度一:频率

过去两周,这件事你做了多少次?

频率判断
≥5次/周必须沉淀
2-4次/周值得沉淀
≤1次/周暂时放一放

实操动作:花5分钟翻一下你最近两周的AI对话记录(Cursor的Session History、Claude Code的对话列表),标记出重复出现的任务类型。你大概率会看到——写单元测试、生成接口文档、代码审查、数据库迁移脚本、配置文件生成——这几类占据了80%以上的重复。

维度二:认知密度

这个任务需要你做多少次判断?

“把users表的所有字段列出来”——不需要判断,直接让AI查就行,不值得沉淀。

“根据这个PRD写一套RESTful API,要考虑到权限分级、数据脱敏、幂等性设计”——这里有至少三个判断点:权限模型选RBAC还是ABAC、哪些字段需要脱敏、幂等键怎么设计。认知密度高的任务,沉淀后的ROI最高。

维度三:复用半径

这个Skill未来能在多少个场景复用?

  • 个人级:只有你自己用(比如你习惯的某种异常处理模式)
  • 项目级:当前项目内所有模块都能用(比如统一的分页查询封装)
  • 团队级:其他同事也能直接用(比如团队的代码审查检查清单)
  • 跨项目级:换个项目依然有效(比如通用的API设计规范校验)

复用半径越大,沉淀优先级越高。

一张筛选表帮你快速决策

任务频率认知密度复用半径是否沉淀
生成单元测试15次/周团队级
接口文档生成8次/周项目级
一次性的数据迁移脚本1次个人级
代码审查10次/周团队级

三、Skill封装的四个进化阶段

不要一上来就追求完美。Skill的成熟度是逐步演进的:

阶段一:原始Prompt——“每次手写”

帮我把这个Service类写一下单元测试,用JUnit5,覆盖率要80%以上。 Mock掉所有外部依赖,重点是异常分支的覆盖。

这是大多数人的起点。问题很明显:每次都要把"JUnit5"、“Mock外部依赖”、"覆盖异常分支"这些话说一遍。

阶段二:模板化Prompt——“复制粘贴改”

## 单元测试生成模板 - 框架:JUnit5 + Mockito - 覆盖率目标:≥80%(分支覆盖) - 必须覆盖的场景: 1. 正常路径 2. 参数为null 3. 外部依赖抛异常 4. 边界值(空列表、最大最小值) - Mock策略:所有Service/Repository层依赖全部Mock - 命名规范:方法名_场景_预期结果

进步在于固定了格式和约束,但依然是你在驱动AI。

阶段三:可执行Skill——“一行触发”

真正Skill化的关键特征是用最少的输入触发最完整的执行。达到这个阶段需要三个要素:

要素1:上下文自动注入

你的Skill不应该假设AI知道项目结构。应该在Skill内部声明需要哪些上下文,然后让AI自动去读取。

触发词:/gentest 自动动作: 1. 读取当前打开的文件 2. 识别所有public方法 3. 读取项目 pom.xml 确认JUnit版本 4. 查找已有的测试文件,沿用其风格 5. 生成测试代码

要素2:失败模式预置

一个成熟的Skill必须知道"什么情况下会失败"以及"失败了怎么办":

已知坑点: - 如果被测方法依赖静态工具类 → 提示使用 MockedStatic - 如果被测方法操作文件 → 建议使用 TemporaryFolder Rule - 如果存在循环依赖 → 先输出依赖图让用户确认

这个部分的价值极高——它把你过去踩过的坑固化成了AI的行为准则。

要素3:输出格式契约

AI的输出不能是自由发挥。你的Skill要明确输出格式:

输出格式: 1. 【覆盖概览】列出每个方法的测试覆盖计划 2. 【测试代码】完整可运行的代码 3. 【未覆盖说明】标注哪些分支无法覆盖及原因

阶段四:自适应Skill——“越用越准”

这是目前的前沿阶段。在Skill中加入反馈收集机制

每次生成后记录: - 生成的测试用例数 - 实际通过率(用户手动反馈) - 用户修改的代码行数

积累数据后可以优化Prompt、调整策略。这一步不一定现在就要做,但脑子里要有这根弦。


四、实操:30分钟搭建你的第一个Skill

拿最常见的场景——"代码审查"来走一遍完整流程。

Step 1:回顾你的审查习惯(5分钟)

打开你最近三次Code Review的记录,总结你每次必查的项目:

  • 空指针/空列表处理
  • SQL注入风险
  • 异常是否正确向上抛出而非吞掉
  • 日志级别是否合理
  • 是否有不必要的数据库查询(N+1问题)

把这些列成一个清单,这就是你Skill的核心骨架。

Step 2:写成结构化模板(10分钟)

## Code Review Skill ### 触发方式 将代码粘贴到对话中,加一句 "review this"。 ### 审查维度(按优先级) 1. **安全**:SQL注入、XSS、未授权访问、敏感信息泄露 2. **空值处理**:所有外部输入、数据库查询结果、集合操作 3. **异常处理**:不允许空catch块、不允许吞异常不记录日志 4. **事务边界**:写操作是否在事务内、事务粒度是否合理 5. **性能**:N+1查询、循环内数据库调用、不必要的大对象创建 6. **代码风格**:命名是否一致、是否有魔法数字、注释是否过期 ### 输出格式

【安全风险】

  • 第X行:… | 严重程度:高/中/低 | 建议:…

【空值风险】

  • 第X行:… | 建议:…

【异常处理问题】

  • 第X行:… | 建议:…

【性能问题】

  • 第X行:… | 建议:…

【风格建议】

  • 第X行:… | 建议:…
### 已知踩坑 - 不要在 Lombok @Data 生成的 equals/hashCode 上做关联查询 - 数据库字段修改后检查所有相关的 MyBatis XML - 确认 Redis key 有过期时间

Step 3:实战验证(10分钟)

拿一段真实代码喂进去,看输出质量。记下不满意的地方——格式不对?漏了检查项?误报太多?——然后回到模板里修正。

Step 4:迭代(持续)

每次用它审查完代码后,如果有新的检查项被遗漏,立即补充进Skill。一个月后,你的审查Skill会包含你团队所有的血泪教训。


五、Skill管理:别让你的经验资产变成信息垃圾

沉淀了10个Skill之后,最大的敌人是找不到用不了

个人Skill索引(轻量版)

一个Markdown文件就够了:

# 我的Skill索引 ## 编码阶段 | Skill名 | 用途 | 触发方式 | 更新时间 | |---------|------|----------|----------| | gen-test | 生成单元测试 | /gentest | 2026-06-28 | | gen-api-doc | 生成接口文档 | /gendoc | 2026-06-25 | | cr-check | 代码审查 | review this | 2026-06-27 | ## 重构阶段 | Skill名 | 用途 | 触发方式 | 更新时间 | |---------|------|----------|----------| | db-migrate | 生成数据库迁移脚本 | /migrate | 2026-06-20 | ## 部署阶段 | Skill名 | 用途 | 触发方式 | 更新时间 | |---------|------|----------|----------| | deploy-check | 部署前检查清单 | /predeploy | 2026-06-15 |

Skill的版本管理

Skill也是代码,需要版本管理。建议:

  1. 每个Skill存为一个独立文件(Markdown或YAML)
  2. 放Git仓库里,和项目代码一起管理
  3. 每次修改记录ChangeLog:改了哪里、为什么改
  4. 定期清理:超过1个月没用过的Skill归档,3个月没用过的删除

团队Skill共享的三个原则

如果你想把个人Skill推广到团队:

原则1:先验证再推广。个人稳定使用2周以上才进入团队库,避免半成品消耗他人时间。

原则2:有人维护。每个团队Skill必须指定Owner,没人管的Skill三个月后就会过期。

原则3:效果可量化。“用了代码审查Skill后,线上Bug减少20%”——这种数据比"感觉好用"有说服力得多。


六、常见疑虑与解答

Q:我只是一个普通开发者,沉淀Skill是不是太"重"了?

A:不需要一开始就追求完美。今天的你,把一个常用的Prompt保存到备忘录里,就是在做Skill沉淀。关键在于意识——承认"AI不会自动记住你的经验",然后有意识地去固化它。

Q:AI进化这么快,今天沉淀的Skill明天会不会过时?

A:会过时。但过时的是具体指令(比如"用JUnit5"),不过时的是方法论(“测试要覆盖异常分支”)。把判断逻辑写进Skill里,工具语法随时可以替换。

Q:我用的是Cursor/Copilot/Claude Code,Skill怎么跨工具迁移?

A:把Skill的核心定义为"场景描述 + 约束条件 + 输出格式",这三样东西是工具无关的。迁移时只需要改触发方式和上下文注入方式,核心逻辑不用动。


七、从现在开始

如果你读完只做一件事,我建议是:

打开你最近两周的AI对话记录,找出你重复描述最多的那一类需求,花20分钟把它写成结构化模板。

这个动作本身,就是你Skill体系的起点。

AI编程的下一个分水岭,不是工具之争,而是经验资产化能力之争。那些能把每一次使用AI的经验都沉淀为可复用资产的人,会成为这个时代的"十倍开发者"——不是因为他们比AI更强,而是因为他们让AI站在了自己所有经验的基础上工作。


本文基于个人实践与团队观察撰写,文中提到的所有框架和工具均为示例,可根据实际技术栈替换。