cursor rules 定义
通过可复用且有作用域的指令,控制 Agent 模型的行为。规则为 Agent 和 Inline Edit 提供系统级指令。可以把它们看作项目的持久化上下文、偏好或工作流。
现在cursor rules 支持四种类型的规则:
- project rules
-
- 存在.cursor/rules中,受版本控制,作用范围限定在你的代码库里
- user rules
-
- 作用于你的cursor全局环境。在设置中定义,并且始终生效、
- AGENTS.md
-
- 用markdown编写的Agent指令,是.cursor/rules的简化替代方案
- .cursorrules
-
- 仍然支持,已经弃用的rules类型,可以使用project rules
我们主要围绕 project rules 和 user rules 展开,规则的存在,其实就是在提示层提供了持久、可复用的上下文。
Project Rules 项目规则
项目规则位于 .cursor/rules .每条规则都是一个文件,并纳入版本控制。它们可以通过路径模式限定作用域、手动触发,或按相关性自动包含。子目录也可以放置各自的 .cursor/rules 目录,仅作用于该文件夹。
用项目规则来:
- 编码与你代码库相关的领域知识
- 自动化项目特定的工作流或模板
- 统一风格或架构决策
项目规则的每一个规则文件应该通过MDC(.mdc)文件编写。这是一种同时支持原数据和内容的格式。通过类型下拉菜单控制规则的应用方式,该操作会更改 description、globs、alwaysApply 属性。
规则类型 | 描述 |
---|---|
Always | 始终包含在模型上下文中 |
Auto Attached | 当引用与某个 glob 模式匹配的文件时包含 |
Agent Requested | 提供给 AI,由其决定是否包含。必须提供描述 |
Manual | 只有在使用 @ruleName 明确提及时才会包含 |
yaml
---
description:
globs:
alwaysApply: true
---
- Use our internal RPC pattern when defining services
- Always use snake_case for service names.
@service-template.ts
嵌套规则
我们可以在项目各个位置的 .cursor/rules 中添加规则来组织不同的规则,当引用其目录的文件时,嵌套规则会自动附加
bash
project/
.cursor/rules/ # 项目范围的规则
backend/
server/
.cursor/rules/ # 后端特定规则
frontend/
.cursor/rules/ # 前端特定规则
创建规则
使用 New Cursor Rule 命令,或前往 Cursor Settings > Rules 创建规则。这样会在 .cursor/rules 中创建一个新的规则文件。在设置里你能查看所有规则及其状态。

生成规则
我们也可以直接在对话中使用/Generate Cursor Rules 命令生成规则


User Rules 用户规则
用户规则是在 Cursor Settings → Rules 中定义的全局偏好设置,适用于所有项目。它们为纯文本,非常适合用于设定偏好的沟通风格或编码规范

实践
我们可以通过设置user rules 设置统一的规范,适用于所有项目,当然,每一个不同的项目也可能会有不同的规范,这个时候我们就可以利用project rules来为项目单独设置规则。
我的理解是每一个rules都是一系列提示词,作为每一次提问agent的前置提示词,也就意味着,你每一次提问,都会带上rules中的提示作为一个条件,与你的提问一起提供给agent
前面我们已经知道,我们可以直接通过指令让cursor自动为我们生成rules,我们也可以自己来编辑mdc文件,自己来设置特定的rules,下面我们就来设置一个组件命名的project rules。
设置组件命名规则(project rules 尝试)
首先,我们进入到cursor setting中,找到project rules,点击add rule

然后,我们将组件命名规则命名为 component-name-test

我们可以在这个位置设置 规则的作用范围,因为这里是一个命名规范,所以我们将其设置为Always Apply

我们写了一个简单的案例测试

接下来,我们可以打开 curosr setting 查看该命名规则是否有被识别到

我们已经成功看到该 rules 被成功识别到了,我们让cursor给我们写一个简单的组件尝试,看看这个规则是否应用上。

在这个聊天框这个按钮中,我们可以看到当前会话下会应用到的规则

在AI的回答当中,我们已经看到AI已经应用到 命名规则 了

再看看其代码

最后生成的组件名称也是按照我们的规则来实现的,我们还可以加上其他规则,比如:组件结构规范,报错处理规范,依赖安装规范等等,来让cursor为我们生成更符合预期的代码。
设置组件结构规则(user rules)
尝试完project rules 我们在试试 user rules ,假如我们想要通过user rules 设置一套组件结构规则,让其按照我们的规范来生成组件,我们来添加一条 user rules

我们简单写了一套测试命名规则

我们再让cursor给我们写一个简单弹窗组件

我们可以看到ai返回的回答也按照我们的user rules来了

我们可以看到不仅仅是符合命名规范,组件结构也是按照我们的 user rules来的

实际业务
cursor rules 大有可为,我们可以通过一系列的rules来规定 cursor 如何为我们工作,rules的本质就是一系列的提示词,通过统一,规范化的提示为 cursor 提供定制化要求,可以大大提高我们的工作效率。
在我们的业务场景当中有这些:
- renderder
-
- 代码风格
- 组件规范
- 错误处理
- 统一国际化
- IPC通信
- 性能优化
- 项目结构
- 状态管理
- 单元测试
- natice
-
- 生命周期规范
- 依赖管理规范
- 错误处理
- 文件操作规范
- 国际化规范
- IPC通信
- 预加载脚本规范
- 多进程管理规范
- 项目结构
- 窗口管理规范
一些想法
上述 rules 都是根据我们的实际的业务来规定的,其实在我看完其他文档像一下很好的场景也是很值得参考的。大有可为
例如:
- 自动化工作流。代码提交、代码打包之类的工作
- 自动化测试。我们实际业务项目中单元测试就属于这种