cursor rules 实践

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 都是根据我们的实际的业务来规定的,其实在我看完其他文档像一下很好的场景也是很值得参考的。大有可为

例如:

  • 自动化工作流。代码提交、代码打包之类的工作
  • 自动化测试。我们实际业务项目中单元测试就属于这种
相关推荐
路修远i2 小时前
前端-跨域梳理
前端
路修远i2 小时前
npm发包
前端
Nan_Shu_6142 小时前
学习:uniapp全栈微信小程序vue3后台 (24)
前端·学习·微信小程序·小程序·uni-app
骑驴看星星a2 小时前
Vue中的路由细节
前端·javascript·vue.js
你的人类朋友2 小时前
说下token和refresh-token
前端·后端·安全
Copper peas2 小时前
Vue动态组件详细用法指南
前端·javascript·vue.js
YAY_tyy3 小时前
【JavaScript 性能优化实战】第四篇:webpack 与 vite 打包优化实战
前端·javascript·性能优化
hunteritself3 小时前
DeepSeek 登《自然》封面,OpenAI 推出 GPT-5-Codex,Notion Agent 首亮相!| AI Weekly 9.15-9.21
前端·人工智能·chrome·gpt·深度学习·notion
希希不嘻嘻~傻希希3 小时前
告别随意改属性!用 ES6 Class 实现数据封装
前端·javascript