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 明确提及时才会包含
---
description:
globs:
alwaysApply: true
---


-   Use our internal RPC pattern when defining services
-   Always use snake_case for service names.


@service-template.ts

嵌套规则

我们可以在项目各个位置的 .cursor/rules 中添加规则来组织不同的规则,当引用其目录的文件时,嵌套规则会自动附加

project/
  .cursor/rules/        # 项目范围的规则
  backend/
    server/
      .cursor/rules/    # 后端特定规则
  frontend/
    .cursor/rules/      # 前端特定规则

创建规则

使用 New Cursor Rule 命令,或前往 Cursor Settings > Rules 创建规则。这样会在 .cursor/rules 中创建一个新的规则文件。在设置里你能查看所有规则及其状态。

image.png  

生成规则

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

image.png

image.png  

User Rules 用户规则

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

image.png

实践

我们可以通过设置user rules 设置统一的规范,适用于所有项目,当然,每一个不同的项目也可能会有不同的规范,这个时候我们就可以利用project rules来为项目单独设置规则。

前面我们已经知道,我们可以直接通过指令让cursor自动为我们生成rules,我们也可以自己来编辑mdc文件,自己来设置特定的rules,下面我们就来设置一个组件命名的project rules。

设置组件命名规则(project rules 尝试)

首先,我们进入到cursor setting中,找到project rules,点击add rule

image.png  

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

image.png  

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

image.png

 

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

image.png  

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

image.png  

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

image.png

 

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

image.png

 

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

image.png

 

再看看其代码

image.png

 

最后生成的组件名称也是按照我们的规则来实现的,我们还可以加上其他规则,比如:组件结构规范,报错处理规范,依赖安装规范等等,来让cursor为我们生成更符合预期的代码。

 

设置组件结构规则(user rules)

尝试完project rules 我们在试试 user rules ,假如我们想要通过user rules 设置一套组件结构规则,让其按照我们的规范来生成组件,我们来添加一条 user rules

image.png

 

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

image.png

 

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

image.png

 

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

image.png

 

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

image.png  

实际业务

cursor rules 大有可为,我们可以通过一系列的rules来规定 cursor 如何为我们工作,rules的本质就是一系列的提示词,通过统一,规范化的提示为 cursor 提供定制化要求,可以大大提高我们的工作效率。

在我们的业务场景当中有这些:

  • renderder
    • 代码风格
    • 组件规范
    • 错误处理
    • 统一国际化
    • IPC通信
    • 性能优化
    • 项目结构
    • 状态管理
    • 单元测试
  • natice
    • 生命周期规范
    • 依赖管理规范
    • 错误处理
    • 文件操作规范
    • 国际化规范
    • IPC通信
    • 预加载脚本规范
    • 多进程管理规范
    • 项目结构
    • 窗口管理规范

 

一些想法

上述 rules 都是根据我们的实际的业务来规定的,其实在我看完其他文档像一下很好的场景也是很值得参考的。大有可为

例如:

  • 自动化工作流。代码提交、代码打包之类的工作
  • 自动化测试。我们实际业务项目中单元测试就属于这种
本站提供的所有下载资源均来自互联网,仅提供学习交流使用,版权归原作者所有。如需商业使用,请联系原作者获得授权。 如您发现有涉嫌侵权的内容,请联系我们 邮箱:[email protected]