工具条目备选
Rules
只在特定目录或文件类型生效的工具专属规则,用来补充 AGENTS.md 放不下的局部约定。
- 最后审阅
适合
- 某些目录有与众不同的写法,例如测试、数据库迁移、生成代码
- 只用一种 AI 工具,并且需要它独有的规则能力(按路径匹配、手动引用)
- AGENTS.md 已经太长,需要把局部规则拆出去
不适合
- 整个项目通用的约定(写进 AGENTS.md,所有工具都能读到)
- 团队成员使用不同工具的项目,把关键规则只写在某个工具的格式里
Rules 是各个 AI 工具自己的规则机制。以 Cursor 为例:规则是 .cursor/rules/ 下的 .mdc 文件,开头的 frontmatter 决定它什么时候生效。
为什么是备选
AGENTS.md 能被几乎所有工具读到,Rules 只对写它的那个工具生效。所以我们的默认做法是先写 AGENTS.md,只把它放不下的局部规则写成 Rules。如果团队只用一种工具、规则又很多,Rules 的作用域能力才真正值得。
生效方式(以 Cursor 为例)
frontmatter 有三个字段:
alwaysApply: true:每次都加载,等同于 AGENTS.md 的作用。globs:匹配到的文件被读写时才加载,例如tests/**/*.ts。description:写清楚这条规则管什么,Agent 会据此判断是否需要读取。
注意:规则文件必须是带 frontmatter 的 .mdc,普通 .md 放进去不会生效;旧的单文件 .cursorrules 已不在官方文档中,新项目不要再用。
写好一条规则
- 一个文件只管一件事。 测试的写法、迁移的写法分成两个文件。
- 写可检查的要求。 “测试名用中文描述行为”比“写好测试”有用得多。
- 保持简短。 规则多了会互相冲突,Agent 也更容易忽略。
纪念品
带走给你的 AI
把这份 .cursor/rules/tests.mdc 放进项目,或直接粘贴给 AI 编程助手。
--- description: 编写和修改测试时的约定 globs: ["tests/**/*.ts", "src/**/*.test.ts"] alwaysApply: false --- - 测试名用一句话描述被验证的行为,而不是函数名。 - 每个测试只验证一个行为;准备数据、执行、断言三段分开。 - 修复缺陷时,先写一个能复现问题的失败测试,再修改实现。 - 不要为了让测试通过而放宽断言、跳过测试或删除测试。 - 不在测试里访问真实网络或真实数据库;用项目已有的测试替身。
相关内容
- 工具条目首选
AGENTS.md
写给 AI 编程 Agent 的 README:一个放在仓库根目录、几乎所有工具都会读的 Markdown 文件。
- 工具条目首选
Cursor
基于 VS Code 的 AI IDE:补全、对话、Agent 和代码在同一个窗口,改动以 diff 呈现。
- 主题文章
给 AI 的上下文有哪几件
AGENTS.md 管规矩,Rules 管局部,MCP 接外部能力,Skills 装按需取用的经验。