跳到主要内容
VibeStacks
工具条目备选

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 编程助手。

.cursor/rules/tests.mdc
---
description: 编写和修改测试时的约定
globs: ["tests/**/*.ts", "src/**/*.test.ts"]
alwaysApply: false
---

- 测试名用一句话描述被验证的行为,而不是函数名。
- 每个测试只验证一个行为;准备数据、执行、断言三段分开。
- 修复缺陷时,先写一个能复现问题的失败测试,再修改实现。
- 不要为了让测试通过而放宽断言、跳过测试或删除测试。
- 不在测试里访问真实网络或真实数据库;用项目已有的测试替身。
  • 工具条目首选

    AGENTS.md

    写给 AI 编程 Agent 的 README:一个放在仓库根目录、几乎所有工具都会读的 Markdown 文件。

  • 工具条目首选

    Cursor

    基于 VS Code 的 AI IDE:补全、对话、Agent 和代码在同一个窗口,改动以 diff 呈现。