用 AI Skill 封装你的工作流:从代码规范到全流程提效实战
通过 Skill 文件把重复的开发规范、工作流程封装成 AI 可自动加载的 SOP,解决”每次对话都要重新说一遍规则”的问题
基本信息
- 来源: 掘金文章
- 作者: Rik
- 发布时间: 2026-05-06
- URL: https://juejin.cn/post/7636672136044281897
- 适用工具: Cursor / OpenClaw / Windsurf 等 AI 编程工具
核心观点
-
问题本质:人肉提示词工程
- 用户在用自然语言手动维护一套”规范系统”,每次对话都要重新加载
- 效率低(重复注入)、不一致(每次说法可能不同)、有遗漏(忘记某些规则)、不可复用(换项目从头来)
-
Skill 是给 AI 写的 SOP
- Skill 文件(
SKILL.md)= 标准作业流程文档,AI 工具会在合适时机自动加载 - 类比:SOUL.md(身份认知)、SKILL.md(技能包)、AGENTS.md(项目规则)、MEMORY.md(历史记忆)
- Skill 文件(
-
按需加载机制
- 全局 Skill(
~/.cursor/skills/):所有项目共用,适合通用规范 - 项目级 Skill(
项目/.cursor/skills/):仅当前项目生效,适合项目特定规范 - AI 根据任务内容自动匹配相关 Skill,不相关的不加载(节省 token)
- 全局 Skill(
-
Skill 适用范围远超代码
- 开发类:代码规范、Code Review 清单、API 设计、数据库设计、Git 工作流
- 非开发类:周报模板、需求评审流程、竞品分析框架、商业计划书结构、面试评估模板
- 个人效率类:每日计划制定流程、读书笔记模板、知识卡片生成规范
-
5 个编写黄金法则
- 法则 1:一个 Skill 只做一件事(按需加载,避免 token 浪费)
- 法则 2:写”规则”而不是”教程”(AI 已知概念,只需告知怎么做)
- 法则 3:用示例代替描述(
getUserById ✓ / getData ✗胜过千言万语) - 法则 4:明确”禁止事项”(AI 擅长遵守”禁止”规则)
- 法则 5:控制篇幅(理想 200-500 行,200 行≈600-800 tokens)
-
实战效果对比数据
- 新会话启动时间:从前 5 分钟描述规范 → 即刻开始写代码
- 代码一致性:从每次风格不同 → 严格统一
- Review 通过率:从约 60% → 约 90%+
- 重复提示次数:从每会话 3-5 次 → 0 次
实操内容保留
Skill 文件基本结构模板
# Java Spring Boot 开发规范 Skill
## 触发条件
当开发 Java Spring Boot 项目时自动加载。
## 技术栈
- Java 17+
- Spring Boot 3.x
- MyBatis-Plus
- Maven
## 代码规范
### 命名规范
- 类名:大驼峰(UserService)
- 方法名:小驼峰(getUserById)
- 常量:全大写下划线(MAX_RETRY_COUNT)
- 包名:全小写(com.example.user)
### 分层结构
controller/ → 只做参数校验和返回值封装
service/ → 业务逻辑
mapper/ → 数据访问
dto/ → 数据传输对象
vo/ → 视图对象
### 必须遵守
- 所有 API 返回统一 Result<T> 包装
- 异常使用全局异常处理器
- 禁止在 Controller 中写业务逻辑
- 所有查询必须分页目录结构示例
你的项目/
├── .cursor/
│ └── skills/ ← Cursor 的 Skill 目录
│ ├── java-spring/
│ │ └── SKILL.md
│ ├── react-ts/
│ │ └── SKILL.md
│ └── code-review/
│ └── SKILL.md
│
├── AGENTS.md ← 项目级规则
└── src/
└── ...
Code Review 检查清单(P0-P3 优先级)
## 审查维度(按优先级)
### P0 — 安全性
- [ ] SQL 注入风险
- [ ] XSS 风险
- [ ] 敏感信息硬编码(密码、密钥、Token)
- [ ] 权限校验是否完整
- [ ] 输入参数是否校验
### P1 — 正确性
- [ ] 空值处理(null/undefined/空数组/空字符串)
- [ ] 边界条件(空集合、负数、超大数)
- [ ] 并发安全(竞态条件、死锁风险)
- [ ] 错误处理(异常是否被正确捕获和处理)
- [ ] 资源释放(连接、流、锁)
### P2 — 性能
- [ ] N+1 查询问题
- [ ] 不必要的重复计算
- [ ] 大集合操作(是否应该分页/流式处理)
- [ ] React 不必要的重渲染
- [ ] 接口响应体是否过大
### P3 — 可维护性
- [ ] 命名是否清晰(读代码能懂意图)
- [ ] 函数是否过长(>50 行考虑拆分)
- [ ] 重复代码(DRY 原则)
- [ ] 注释:只注释"为什么",不注释"做了什么"
- [ ] 类型定义是否完整React + TypeScript 规范示例
### 组件规范
- 使用函数式组件 + Hooks,禁止 Class 组件
- 组件文件名:PascalCase(UserProfile.tsx)
- 每个组件一个文件,不超过 200 行
- Props 必须定义 interface,不用 any
- 导出方式:named export(不用 default export)
### 状态管理
- 简单状态:useState
- 复杂状态:useReducer
- 全局状态:Zustand(不用 Redux)
- 服务端状态:TanStack Query
### TypeScript 规范
- 严格模式(strict: true)
- 禁止 any,用 unknown 替代
- 接口用 interface,类型别名用 type
- 枚举用 const enum 或 as constGit Commit Message 规范
## 格式
<type>(<scope>): <subject>
## Type 类型
- feat: 新功能
- fix: 修复 bug
- docs: 文档变更
- style: 代码格式(不影响逻辑)
- refactor: 重构
- perf: 性能优化
- test: 测试相关
- chore: 构建/工具变更
## 示例
feat(user): 新增用户注册接口
fix(order): 修复订单金额计算精度丢失
refactor(auth): 重构登录逻辑,抽取 TokenServiceRESTful API 设计规范
## URL 规范
- 使用名词复数:/api/v1/users(不是 /getUser)
- 层级关系:/api/v1/users/{id}/orders
- 版本号在 URL 中:/api/v1/
## HTTP 方法
- GET:查询(幂等)
- POST:创建
- PUT:全量更新
- PATCH:部分更新
- DELETE:删除
## 状态码
- 200:成功
- 201:创建成功
- 400:请求参数错误
- 401:未认证
- 403:无权限
- 404:资源不存在
- 500:服务器错误
## 分页格式
{
"data": [],
"pagination": {
"page": 1,
"pageSize": 20,
"total": 100,
"totalPages": 5
}
}需求分析 Skill 框架
### 第一步:需求澄清
- 用户是谁?
- 核心痛点是什么?
- 现有解决方案是什么?为什么不够好?
- 最小可行产品(MVP)包含哪些功能?
### 第二步:可行性评估
- 技术可行性:现有技术能否实现?
- 市场可行性:有多少潜在用户?
- 商业可行性:如何赚钱?客单价?
- 时间可行性:MVP 需要多久?
### 第三步:优先级排序(MoSCoW 方法)
- Must have:没有就不能上线
- Should have:重要但可延后
- Could have:锦上添花
- Won't have:明确不做从 0 到 1 搭建 Skill 体系(4 步法)
Step 1:回顾最近 10 次 AI 对话
- 找出重复说过的指令:“用 TypeScript,不要用 JavaScript”、“返回格式用 Result 包装”、“不要给我写注释”
Step 2:按场景分类
- 语言/框架规范类
- 流程规范类(Code Review、Git、API)
- 输出格式类(文档、报告)
Step 3:写第一个 Skill
- 从最常用场景开始,参考模板,写 200-300 行 Skill 文件
Step 4:测试和迭代
- 开新会话,验证 AI 是否遵守规则
- 发现遗漏 → 补充规则
- 发现冗余 → 删除
- 每 2 周 review 一次
原文精彩摘录
你在 用自然语言手动维护一套”规范系统” ,每次对话都要重新加载一遍。这个问题的本质是:你的工作流程 / 规范 / 偏好 → 每次对话都用自然语言重复一遍 → AI 执行(这次记住了)→ 新会话 → 全忘了 → 再说一遍。
当 AI 加载了这个 Skill,它就像一个”入职培训过的新员工”——知道你的规范,不需要你每次都说。
AI 特别擅长遵守”禁止”规则。与其说”最好不要”,不如说”禁止”:模糊:尽量不要使用 any 类型。明确:禁止使用 any。如果类型不确定,使用 unknown + 类型守卫。
核心判断标准:你是否在 AI 对话中重复说过 3 次以上的相同指令?如果是 → 封装成 Skill。
把 Skill 体系搭建好,你的 AI 开发工具就从”每次都要调教的实习生”变成了”熟悉你所有规范的老同事”。
关键概念
- Skill:AI 工具的技能包文件,封装标准作业流程
- 提示词工程:优化 AI 提示词以获得更好结果的技术
- Cursor:AI 编程工具
- Claude Code:Anthropic 的 AI 编程工具
- Code Review:代码审查流程
- 工作流自动化:通过工具减少重复劳动