Cursor 终于支持 Skills 了,一条命令从 Rules 迁移过去
2026 年 1 月 22 日,Cursor 终于在正式版中推出了 Agent Skills 功能!
这个功能在 nightly 通道测试了一段时间,现在所有用户都可以使用了。如果你已经在用 Cursor Rules 来定制 AI 的行为,那么恭喜你——你已经走在了大多数开发者前面。而 Agent Skills 带来了一种全新的扩展方式,可能会彻底改变你组织 AI 指令的方式。
这篇文章将帮助你理解 Rules 和 Skills 的本质区别,以及如何智能地进行迁移——不是简单地把所有 Rules 都变成 Skills,而是让它们各得其所。
Rules 和 Skills:两种不同的扩展机制
先来明确一个核心概念:Rules 和 Skills 不是替代关系,而是互补关系。
Rules:静态上下文
Rules 提供持续生效的指令,Agent 在每次对话开始时都会看到这些内容。适合:
- 🔧 项目命令:
npm run build、bun test等常用命令 - 📐 代码风格:ES 模块 vs CommonJS、命名规范等
- 📁 项目结构:API 路由放在哪、组件如何组织
- 🔗 规范引用:指向代码库中的标准示例文件
# .cursor/rules/project-conventions.mdc
---
alwaysApply: true
---
# 项目规范
## 命令
- `bun run build` : 构建项目
- `bun run typecheck` : 类型检查
- `bun run test` : 运行测试
## 代码风格
- 使用 ES 模块(import/export),而非 CommonJS(require)
- 参考 `components/Button.tsx` 了解标准组件结构
## 工作流
- 代码修改后始终运行类型检查
- API 路由放在 `app/api/` 目录Skills:动态能力
Skills 是按需加载的专业能力包,只有当 Agent 判断相关时才会加载。适合:
- ⚡ 自定义命令:通过
/命令名触发的可复用工作流 - 🔄 自动化流程:配合 Hooks 实现自动化
- 📚 领域知识:特定任务的详细指令(如部署流程、数据库迁移等)
# .cursor/skills/deploy-app/SKILL.md
---
name: deploy-app
description: 将应用部署到预发布或生产环境。在部署代码、发布或切换环境时使用。
---
# 部署应用
使用以下脚本部署应用。
## 使用方式
运行部署脚本: `scripts/deploy.sh <environment>`
其中 `<environment>` 为 `staging` 或 `production`。
## 部署前验证
部署前先运行验证脚本: `python scripts/validate.py`为什么需要区分?
关键在于上下文窗口的效率:
| 特性 | Rules | Skills |
|---|---|---|
| 加载时机 | 每次对话开始 | 按需加载 |
| 上下文占用 | 始终占用 | 仅在需要时 |
| 适合内容 | 简短、高频使用 | 详细、特定场景 |
| 触发方式 | 自动应用 | Agent 判断 或 /命令 |
如果你把所有内容都放在 Rules 里,Agent 的上下文窗口会被大量可能用不到的指令塞满。而 Skills 的按需加载机制,让你可以提供丰富的专业能力而不牺牲效率。
官方迁移命令的局限
Cursor 2.4 内置了 /migrate-to-skills 命令,但它的迁移策略比较简单:
会迁移的:
- 设置为”智能应用”的规则(有
description,无globs,无alwaysApply: true) - 所有斜杠命令
不会迁移的:
- 设置了
alwaysApply: true的规则 - 指定了
globs模式的规则
这种机械式的迁移没有考虑内容本身是否适合成为 Skill。比如,一个”智能应用”的规则如果内容是项目级的代码风格约定,其实更适合保留为 Rule。
智能迁移:让 Rules 和 Skills 各得其所
基于 Cursor 官方最佳实践 ,我设计了一个更智能的迁移策略。
判断标准
应该保留为 Rules 的内容:
- 项目命令清单:build、test、lint 等常用命令
- 代码风格规范:命名规则、导入方式、文件组织
- 规范文件引用:指向代码库中的标准示例
- 工作流指令:如”修改代码后运行类型检查”
- 简短且高频使用:每次对话都可能用到的内容
应该迁移为 Skills 的内容:
- 详细的操作流程:多步骤的部署、发布、数据库迁移等
- 特定场景的指令:只在特定任务中需要的详细知识
- 可复用的工作流:PR 创建、Issue 处理、代码审查等
- 包含脚本的能力:需要执行脚本或复杂命令的流程
- 内容较长:超过 50 行的详细指令
智能迁移命令
在 Agent 聊天中输入以下提示词,执行智能迁移分析:
## 任务:智能分析并迁移 Cursor Rules 到 Skills
请分析项目中的所有 Cursor Rules,根据最佳实践决定哪些应该迁移为 Skills,哪些应该保留为 Rules。
### 分析范围
扫描以下位置的规则文件:
- 项目级:`{workspaceFolder}/**/.cursor/rules/*.mdc`
- 项目命令:`{workspaceFolder}/**/.cursor/commands/*.md`
- 用户命令:`~/.cursor/commands/*.md`
忽略:
- `~/.cursor/worktrees` 目录
- `~/.cursor/skills-cursor` 目录(系统内置)
### 分类标准
**保留为 Rules** 的内容特征:
1. 项目命令清单(build、test、lint 等)
2. 代码风格规范(命名、导入、文件组织)
3. 对项目中规范文件的引用
4. 简短的工作流指令(< 30 行)
5. 每次对话都可能用到的高频内容
6. 已设置 `alwaysApply: true` 的规则
7. 指定了 `globs` 模式的规则(针对特定文件类型)
**迁移为 Skills** 的内容特征:
1. 详细的多步骤操作流程(部署、发布、迁移等)
2. 特定场景才需要的详细指令
3. 可复用的工作流(PR、Issue、审查等)
4. 包含或引用可执行脚本的流程
5. 内容较长(> 50 行)的详细指南
6. 原本就是斜杠命令的内容
### 执行步骤
1. **扫描阶段**
- 列出所有找到的规则和命令文件
- 读取每个文件的内容
2. **分析阶段**
- 对每个文件进行分类分析
- 输出分析表格:
| 文件 | 当前类型 | 建议 | 原因 |
|------|----------|------|------|
| xxx.mdc | Rule | 保留 | 包含项目命令清单,高频使用 |
| yyy.mdc | Rule | 迁移 | 详细的部署流程,特定场景使用 |
| zzz.md | Command | 迁移 | 可复用的 PR 工作流 |
3. **确认阶段**
- 展示分析结果,等待用户确认
- 用户可以调整个别文件的处理方式
4. **执行阶段**(用户确认后)
- 对于"迁移"的文件:
- 在 `.cursor/skills/{name}/` 创建 `SKILL.md`
- 保留原始内容,添加正确的 frontmatter
- 斜杠命令添加 `disable-model-invocation: true`
- 删除原文件
- 对于"保留"的文件:
- 不做任何修改
- 如果是"智能应用"规则但内容适合 Rules,建议添加 `alwaysApply: true`
5. **报告阶段**
- 输出迁移摘要
- 列出新创建的 Skills
- 列出保留的 Rules
- 提供撤销说明
### SKILL.md 格式
迁移后的 Skill 文件格式:
```markdown
---
name: skill-name
description: 描述此技能的功能及使用时机
disable-model-invocation: true # 仅斜杠命令添加此行
---
# 标题
原始内容(保持不变)...
```
### 注意事项
- `name` 字段必须是小写字母和连字符
- `description` 是 Agent 发现技能的关键,务必准确描述
- **严格保留原始内容**,不要修改、重排或"改进"
- 如果用户要求撤销,执行反向操作恢复原文件迁移示例
假设你有这样的 Rules 结构:
.cursor/rules/
├── project-commands.mdc # 项目命令清单
├── code-style.mdc # 代码风格规范
├── deployment-guide.mdc # 详细的部署流程
├── api-conventions.mdc # API 约定(针对 *.api.ts)
└── pr-workflow.mdc # PR 创建工作流智能迁移后:
.cursor/
├── rules/
│ ├── project-commands.mdc # 保留 - 高频使用的命令
│ ├── code-style.mdc # 保留 - 代码风格规范
│ └── api-conventions.mdc # 保留 - 有 globs 限定
└── skills/
├── deployment-guide/
│ └── SKILL.md # 迁移 - 详细流程,特定场景
└── pr-workflow/
└── SKILL.md # 迁移 - 可复用工作流最佳实践建议
1. 从简单开始
只有当你发现 Agent 反复犯同样的错误时,再新增规则。在真正理解自己的模式之前,不要过度优化。
不要急于创建大量 Rules 或 Skills。观察 Agent 的行为,针对性地添加。
2. Rules 保持简洁
Rules 应该聚焦在要点上:
- ✅ 引用文件而不是复制内容
- ✅ 列出关键命令和模式
- ❌ 不要复制整份风格指南(用 linter)
- ❌ 不要记录所有可能的命令(Agent 已了解常用工具)
3. Skills 提供丰富细节
Skills 可以包含详细的分步指令、脚本引用、边界情况处理等。因为只在需要时加载,不用担心占用上下文。
4. 提交到 Git
将 Rules 和 Skills 都提交到 Git,让整个团队受益。当 Agent 犯错时,更新对应的规则或技能。
5. 利用 Hooks 增强 Skills
Skills 可以配合 Hooks 实现强大的自动化,比如:
// .cursor/hooks.json
{
"version": 1,
"hooks": {
"stop": [{
"command": "bun run .cursor/hooks/verify-tests.ts"
}]
}
}这个 Hook 可以让 Agent 持续工作直到所有测试通过。
总结
| Rules | Skills | |
|---|---|---|
| 定位 | 静态上下文 | 动态能力 |
| 加载 | 每次对话 | 按需加载 |
| 适合 | 简短、高频、规范性 | 详细、特定场景、流程性 |
| 格式 | .mdc 文件 | SKILL.md + 可选脚本 |
| 触发 | 自动/Globs | Agent 判断 / /命令 |
迁移不是目的,让 AI 更高效地理解和执行你的意图才是目的。
使用本文提供的智能迁移策略,让你的 Rules 和 Skills 各司其职,构建一个高效的 Cursor 开发环境。
进阶:从代码库自动提取 Rules 和 Skills
如果你是从零开始,或者想让 Cursor 自动分析你的项目并生成合适的 Rules 和 Skills,可以使用以下命令。
这个命令会扫描你的代码库,分析项目结构、技术栈、配置文件和代码模式,然后自动生成:
- Rules:项目级的规范和约定
- Skills:可复用的工作流和专业能力
代码库扫描与提取命令
在 Agent 聊天中输入以下提示词:
## 任务:扫描代码库,自动提取 Rules 和 Skills
请全面分析当前项目的代码库,自动生成合适的 Cursor Rules 和 Agent Skills。
### 第一步:项目分析
扫描并分析以下内容:
1. **项目配置**
- `package.json` / `Cargo.toml` / `pyproject.toml` 等依赖管理文件
- `tsconfig.json` / `jsconfig.json` 等编译配置
- `.eslintrc` / `prettier.config` / `biome.json` 等代码风格配置
- `Dockerfile` / `docker-compose.yml` 等容器配置
- CI/CD 配置文件(`.github/workflows/`、`.gitlab-ci.yml` 等)
2. **项目结构**
- 目录组织方式(src/、app/、lib/、components/ 等)
- 文件命名约定(kebab-case、camelCase、PascalCase)
- 模块划分模式(按功能、按领域、按层级)
3. **代码模式**
- 导入/导出风格(ES modules、CommonJS)
- 组件结构(函数组件、类组件、组合式 API)
- 状态管理方案(Redux、Zustand、Pinia、Context)
- API 调用模式(fetch、axios、SWR、React Query)
- 错误处理模式
- 测试组织方式
4. **常用命令**
- 从 package.json scripts 提取
- 从 Makefile 提取
- 从 README 提取
5. **现有规范文档**
- README.md
- CONTRIBUTING.md
- docs/ 目录下的文档
- 已有的 .cursor/rules/ 文件
### 第二步:生成 Rules
根据分析结果,生成以下 Rules(放在 `.cursor/rules/` 目录):
**1. project-overview.mdc**(始终应用)
```markdown
---
alwaysApply: true
---
# 项目概述
## 技术栈
[从分析中提取]
## 项目结构
[从分析中提取目录说明]
## 常用命令
[从 package.json scripts 等提取]
```
**2. code-style.mdc**(始终应用)
```markdown
---
alwaysApply: true
---
# 代码风格
[从分析中提取的代码风格规范]
[引用项目中的规范示例文件]
```
**3. 针对特定文件类型的 Rules**(使用 globs)
```markdown
---
globs: ["*.tsx", "*.jsx"]
---
# React 组件规范
[针对该文件类型的具体规范]
```
### 第三步:生成 Skills
根据分析结果,生成以下 Skills(放在 `.cursor/skills/` 目录):
**1. 根据项目类型生成对应的工作流 Skills**
例如,如果是 Web 项目:
- `create-component/SKILL.md`:创建新组件的标准流程
- `create-api-route/SKILL.md`:创建 API 路由的标准流程
- `add-feature/SKILL.md`:添加新功能的完整流程
如果有 CI/CD:
- `deploy/SKILL.md`:部署流程
- `release/SKILL.md`:发布流程
如果有测试:
- `add-tests/SKILL.md`:为现有代码添加测试
- `tdd/SKILL.md`:测试驱动开发流程
**2. Git 工作流 Skills**
- `pr/SKILL.md`:创建 Pull Request
- `fix-issue/SKILL.md`:修复 Issue 的标准流程
### 第四步:输出报告
完成后输出:
1. **分析摘要**
- 识别到的技术栈
- 识别到的代码模式
- 识别到的项目规范
2. **生成的文件列表**
| 类型 | 文件路径 | 说明 |
|------|----------|------|
| Rule | .cursor/rules/xxx.mdc | 描述 |
| Skill | .cursor/skills/xxx/SKILL.md | 描述 |
3. **建议**
- 可能需要手动补充的内容
- 推荐添加的额外 Rules 或 Skills
### 注意事项
- **不要复制整份文档**:Rules 应该引用文件,而不是复制内容
- **保持简洁**:Rules 聚焦要点,详细内容放到 Skills
- **使用规范示例**:在 Rules 中引用项目中的规范文件作为示例
- **遵循命名规范**:文件名使用 kebab-case,Skill name 使用小写字母和连字符
- **提供准确的 description**:这是 Agent 发现 Skill 的关键使用示例
运行命令后,Cursor 会自动分析你的项目并生成类似这样的结构:
.cursor/
├── rules/
│ ├── project-overview.mdc # 项目概述、技术栈、常用命令
│ ├── code-style.mdc # 代码风格规范
│ ├── react-components.mdc # React 组件规范 (globs: *.tsx)
│ └── api-routes.mdc # API 路由规范 (globs: */api/*)
└── skills/
├── create-component/
│ └── SKILL.md # 创建组件的标准流程
├── create-api-route/
│ └── SKILL.md # 创建 API 路由的流程
├── pr/
│ └── SKILL.md # 创建 PR 的流程
└── deploy/
└── SKILL.md # 部署流程这样,你就拥有了一个根据项目实际情况定制的 Cursor 配置,而不是从网上复制来的通用模板。
总结
| Rules | Skills | |
|---|---|---|
| 定位 | 静态上下文 | 动态能力 |
| 加载 | 每次对话 | 按需加载 |
| 适合 | 简短、高频、规范性 | 详细、特定场景、流程性 |
| 格式 | .mdc 文件 | SKILL.md + 可选脚本 |
| 触发 | 自动/Globs | Agent 判断 / /命令 |
迁移不是目的,让 AI 更高效地理解和执行你的意图才是目的。
本文提供了两个实用命令:
- 智能迁移命令:分析现有 Rules,智能决定保留还是迁移
- 代码库扫描命令:从零开始,自动提取项目规范生成 Rules 和 Skills
让你的 Rules 和 Skills 各司其职,构建一个高效的 Cursor 开发环境。
📌 提示:Agent Skills 功能需要 Cursor 2.4 及以上版本。
💬 有问题或建议?欢迎在评论区交流,或提交 Issue 到 GitHub 仓库 。