规则配置(Rules)
规则允许您为 Agent 和 Cmd-K AI 提供系统级的指导。您可以将它们视为为项目或个人持久化编码上下文、偏好设置或工作流程的方式。
Cursor 支持三种类型的规则:
规则工作原理
大型语言模型在生成补全内容时不会保留记忆。规则通过在提示词层面提供持久化、可复用的上下文来解决这一问题。
当应用规则时,其内容会被包含在模型上下文的起始位置。这为 AI 提供了持续指导,无论它是在生成代码、解释编辑操作,还是协助工作流程。
规则同时适用于chat功能 和 行内编辑功能(Cmd/Ctrl + K)
项目规则
项目规则存储在 .cursor/rules
目录中。每个规则以文件形式保存并支持版本控制。它们可以通过路径模式限定作用范围,手动调用,或根据相关性自动包含。子目录可以包含自己的 .cursor/rules
目录,其作用范围限定于该文件夹。
项目规则的典型用途:
- 编码与代码库相 关的领域知识
- 自动化项目特定的工作流程或模板
- 标准化代码风格或架构决策
规则类型
每个规则文件都使用 MDC(.mdc
)格式编写,这是一种轻量级格式,支持在单个文件中存储元数据和内容。规则支持以下类型:
规则类型 | 描述 |
---|---|
Always | 始终包含在模型的上下文中 |
Auto Attached | 当引用与通配符模式匹配的文件时自动包含 |
Agent Requested | 规则对 AI 可见,由其决定是否包含(必须提供描述) |
Manual | 仅在使用 @ruleName 显式提及时才会包含 |
MDC 规则示例
---
description: RPC 服务样板(boilerplate)代码
globs:
alwaysApply: false
---
- 定义服务时请使用我们内部的 RPC 模式
- 服务名称始终使用 snake_case 命名规范
@service-template.ts
当规则被触发时,类似 @service-template.ts
的引用文件将作为额外上下文被包含。
你可以使用 Cmd + Shift + P > "New Cursor Rule" 在 Cursor 中快速创建规则。
嵌套规则
您可以通过在项目结构中创建 .cursor/rules
目录来组织规则。例如:
project/
.cursor/rules/ # 项目全局规则
backend/
server/
.cursor/rules/ # 后端专用规则
frontend/
.cursor/rules/ # 前端专用规则
嵌套规则具有以下特点:
- 自动关联:当目录中的文件被引用时自动生效
- 全局可见:仍会出现在上下文选择器和 Agent 可访问的规则列表中
- 便于管理:适合将领域特定规则就近存放在相关代码附近
这种组织方式特别适用于以下场景:
- 需要独立指导规范的 Monorepo 项目
- 包含多个独立组件的复杂工程
- 不同模块需要差异化规则配置的代码库
创建规则
您可以通过以下两种方式创建规则:使用 New Cursor Rule
命令,或前往 Cursor Settings >Rules
。新建的规则文件将存储在 .cursor/rules
目录中。在设置界面中,您可以查看所有规则的列表及其启用状态。
生成规则
您可以直接在聊天会话中使用 /Generate Cursor Rules
命令生成规则。
当您与 AI 完成关于如何定义智能体行为的对话后,此功能尤为实用。生成的规则可保存并复用至未来场景。
团队规则管理
目前系统尚未内置跨项目共享规则的功能。
我们计划在未来支持基于 MDC 格式 的共享规则体系,实现团队项目间的规则复用。现阶段可采用以下替代方案:
- 将公共规则集中存储于独立代码库
- 通过复制或符号链接方式,将规则文件部署至各项目的
.cursor/rules
目录
最佳实践指南
优质规则应具备聚焦性、可操作性和明确适用范围。
- 保持规则简洁:建议单文件控制在 500 行以内
- 模块化设计:将复杂概念拆解为多个可组合的子规则
- 示例驱动:必要时提供具体代码示例或引用相关文件
- 避免模糊表述:采用内部技术文档的清晰编写标准
- 复用优先:当发现聊天中重复使用相同提示词时,应及时抽象为可复用规则
示例
领域特定规范
前端组件与 API 验证标准
本规范为前端组件制定统一标准,确保样式与动画一致性:
在 components 目录中工作时:
- 必须使用 Tailwind 进行样式设计
- 动画实现采用 Framer Motion
- 遵循组件命名规范
本规范强化 API 端点的验证标准:
在 API 目录中:
- 所有验证使用 zod
- 通过 zod schema 定义返回类型
- 导出由 schema 生成的类型
样板代码与模板
Express 服务与 React 组件模板
本规范提供创建新 Express 服务的模板:
新建 Express 服务时使用此模板:
- 遵循 RESTful 原则
- 包含错误处理中间件
- 配置完善的日志系统
@express-service-template.ts
本规范定义 React 组件结构:
React 组件应遵循以下布局:
- 顶部声明 Props 接口
- 组件作为命名导出
- 样式定义置于底部
@component-template.tsx
工作流自动化
开发流程与文档生成自动化
开发流程与文档生成自动化
本规范实现应用分析流程自动化:
当请求分析应用时:
- 通过
npm run dev
启动开发服务器 - 从控制台获取日志
- 提出性能优化建议
本规范助力代码文档自动生成:
通过以下方式辅助编写文档:
- 提取代码注释
- 分析 README.md
- 生成 Markdown 文档
来自 Cursor 代码库
以下是我们 Cursor 内部使用的规则
在 Cursor 中使用 Tailwind
这个 VS Code 分支已支持 Tailwind!
使用示例:
text-error-foreground
bg-input-border
在 Cursor 中添加新设置项
首先在 @reactiveStorageTypes.ts
中创建切换属性。
在 @reactiveStorageService.tsx
的 INIT_APPLICATION_USER_PERSISTENT_STORAGE
中为其添加默认值。
如果是测试版功能,在 @settingsBetaTab.tsx
中添加开关;否则添加到 @settingsGeneralTab.tsx
。常规复选框可使用 <SettingsSubSection>
组件添加。其他类型的控件可参考文件中的现有示例。
<SettingsSubSection
label="你的功能名称"
description="功能描述"
value={
vsContext.reactiveStorageService.applicationUserPersistentStorage
.myNewProperty ?? false
}
onChange={(newVal) => {
vsContext.reactiveStorageService.setApplicationUserPersistentStorage(
'myNewProperty',
newVal
);
}}
/>
在应用中使用时,请导入 reactiveStorageService 并调用相关属性:
const flagIsEnabled = vsContext.reactiveStorageService.applicationUserPersistentStorage.myNewProperty
您可以在 Next.js、Cloudflare 和 Browserbase 等供应商的示例中找到更多规则。社区贡献的规则可在线查阅多个众包合集和代码仓库。