Cursor Rules 概念、编写与接入指南
Cursor Rules 概念、编写与接入指南
第一步:Rules 是什么
一句话定义:Rules(规则)是放在项目中的简短约束文件,让 Cursor AI 在编码时始终遵守你团队的标准和惯例。
类比理解:把 Rules 想象成交通规则:
- 没有交通规则时,每个司机凭自己的判断开车,混乱且危险
- 有了交通规则后,所有人遵循统一标准,高效有序
Rules 就是给 AI 定的"交通规则"——简短、明确、始终执行。
Rules vs Skills vs MCP 对比:
┌────────────┬──────────────────────┬──────────────────────┐ │ │ 触发方式 │ 典型用途 │ ├────────────┼──────────────────────┼──────────────────────┤ │ Rules │ 始终生效 / 按文件匹配 │ 编码标准、命名约定 │ │ Skills │ AI 按场景自动加载 │ 代码审查、报告生成 │ │ MCP │ AI 按需调用 │ 查询数据库、调用API │ └────────────┴──────────────────────┴──────────────────────┘核心特点:
- 简短精炼(建议 < 50 行)
- 一个规则文件只关注一个关切点
- 可以全局生效,也可以只对特定文件类型生效
第二步:Rules 编写流程
2.1 文件格式
规则文件是.mdc后缀的 Markdown 文件,由YAML 头部+正文组成。
2.2 两种模式
模式一:始终生效
适用于全项目通用的编码标准:
--- description: 项目核心编码标准 alwaysApply: true --- # 编码标准 - 使用 TypeScript strict 模式 - 禁止使用 any 类型 - 函数最大行数不超过 50 行 - 必须处理所有错误,禁止空 catch模式二:按文件类型生效
适用于特定文件的专属规则:
--- description: Vue 组件开发规范 globs: **/*.vue alwaysApply: false --- # Vue 组件规范 - 使用 Composition API + setup 语法糖 - Props 必须定义类型 - 组件名使用 PascalCase - 事件名使用 camelCase2.3 头部字段说明
| 字段 | 类型 | 作用 |
|---|---|---|
description | string | 规则的简要描述(显示在规则选择器中) |
globs | string | 文件匹配模式,如**/*.ts、src/**/*.vue |
alwaysApply | boolean | 设为true则每次对话都生效 |
2.4 编写关键原则
- 一个文件一个关切点:不要把错误处理和命名规范混在一起
- 控制在 50 行以内:简短才能保证 AI 始终执行
- 提供正反例:用 “BAD / GOOD” 对比让 AI 一目了然
- 可操作:写法像清晰的内部文档,不是抽象的设计理念
正反例最佳实践:
--- description: 错误处理规范 globs: **/*.ts alwaysApply: false --- # 错误处理 \`\`\`typescript // BAD try { await fetchData(); } catch (e) {} // GOOD try { await fetchData(); } catch (e) { logger.error('Failed to fetch', { error: e }); throw new DataFetchError('Unable to retrieve data', { cause: e }); } \`\`\`第三步:接入方式
3.1 存放位置
规则文件统一放在项目根目录下的.cursor/rules/中:
your-project/ └── .cursor/ └── rules/ ├── coding-standards.mdc # 通用编码标准(alwaysApply: true) ├── typescript-conventions.mdc # TS 专属(globs: **/*.ts) ├── vue-patterns.mdc # Vue 专属(globs: **/*.vue) └── api-conventions.mdc # API 专属(globs: src/api/**/*.ts)不需要额外的配置文件,放到目录里即可自动识别。
3.2 globs 常用模式
| 模式 | 匹配范围 |
|---|---|
**/*.ts | 所有 TypeScript 文件 |
**/*.vue | 所有 Vue 组件 |
src/api/**/*.ts | src/api 目录下所有 TS 文件 |
**/*.test.ts | 所有测试文件 |
*.md | 根目录的 Markdown 文件 |
3.3 接入后的效果
- Cursor 自动扫描
.cursor/rules/目录 alwaysApply: true的规则在每次对话中都生效- 有
globs的规则在打开匹配文件时自动生效 - AI 生成的代码会自动遵守这些规则
总结
| 维度 | 核心要点 |
|---|---|
| 概念 | Rules = AI 的交通规则,简短的编码约束,始终或按文件类型执行 |
| 编写 | 创建.mdc文件,配好 description + globs/alwaysApply 头部,正文 < 50 行 |
| 接入 | 放到.cursor/rules/目录下即可自动生效,随仓库共享给团队 |
