AI Rules 配置实战
AI Rules 配置实战
.cursorrules、CLAUDE.md、Skills 是三种互补不是替代的配置格式。混用前必须搞清楚每种擅长什么、不擅长什么,否则就是把同一份规则写三遍——团队里没人维护得动。
如果还没动手写过,先看 Cursor Rules 入门 和 Claude Code Skills 实战 跑通基础。本章讲三种格式怎么分工、怎么在团队里同步。
三种格式的真实定位
| 格式 | 加载机制 | 粒度 | 最适合 |
|---|---|---|---|
.cursorrules | Cursor 启动时全量加载 | 项目级单文件 | 小项目(<500 行规则)、纯 Cursor 团队 |
.cursor/rules/*.mdc | 按 glob 自动注入 / agent 触发 | 多文件 + frontmatter glob | 大项目,按 file pattern 加载不同规则 |
CLAUDE.md | Claude Code 启动时加载 + 嵌套加载子目录 | 项目级 + 用户级 + 子目录 | 长期持久化的架构规则、domain 知识 |
Skills(~/.claude/skills/) | 按需触发,不进入默认 context | 命名包,SKILL.md + 资源文件 | 高频但只在特定任务用的复杂工作流(>200 行 SOP) |
关键区别:
.cursorrules/CLAUDE.md是默认 always-on context,写多了 token 就爆- Skills 是懒加载,只在 AI 判断需要时才读,可以放很多 SOP 不污染 context
.cursor/rules/*.mdc介于两者之间,按 glob 匹配
内容怎么分
最常见的错误是把所有规则塞进 CLAUDE.md,导致它涨到 2000 行、每次会话烧 5K token。正确分法:
| 规则类型 | 放哪 | 例子 |
|---|---|---|
| 架构铁律(永远要遵守) | CLAUDE.md 顶部 | "service 不超过 600 行"、"ID 优先用 ObjectId" |
| 代码风格 | .cursorrules 或 .cursor/rules/style.mdc | 命名约定、import order、tab vs space |
| Domain 知识 | CLAUDE.md 中段 | "我们的 user 分 free/paid/enterprise 三级,权限走 RBAC" |
| 复杂工作流 SOP(>200 行) | Skill | 部署流程、数据迁移、cert 生成 |
| Tech-stack 特定 | .cursor/rules/{stack}.mdc 用 glob | React-specific 规则只对 *.tsx 生效 |
| 个人偏好 | ~/.claude/CLAUDE.md(用户级) | "用 bun 不用 npm"、"commit message 用中文" |
团队同步策略
规则只有 commit 进 git 才有意义。三个层级,三种处理:
# 1) 项目级 — 全部 commit
git add .cursorrules .cursor/rules/ CLAUDE.md
git commit -m "chore: update AI rules for new auth pattern"
# 2) 项目级 Skills — commit 进 .claude/skills/
git add .claude/skills/deploy-prod/
git commit -m "skill: add prod deploy SOP"
# 3) 用户级 — 不进 repo
# ~/.claude/CLAUDE.md 和 ~/.claude/skills/ 是个人偏好,不要 commit
.gitignore 通常加这两行:
# AI cache + 个人 settings 不进 repo
.claude/settings.local.json
.cursor/settings.local.json
# 但项目级规则必须 commit
# !.cursorrules
# !.cursor/rules/
# !CLAUDE.md
# !.claude/skills/
强制 review:CLAUDE.md / .cursorrules 的修改必须走 PR,不允许直接 push。这些文件影响每个工程师的 AI 行为,等同于改 lint config,需要团队达成共识。
真实例子:JR Academy 的分层
~/.claude/CLAUDE.md # 个人偏好 (50 行)
└─ "用 bun 不用 npm"
└─ "commit 后自动 push"
└─ Projects Registry
jr-academy-ai/CLAUDE.md # 项目铁律 (~600 行)
└─ ABSOLUTE RULES (rm 政策、git 安全)
└─ Service 架构 (600 行上限、单一职责)
└─ ID-First Principle (生产事故复盘)
└─ Anti-Template Content Rule
└─ MongoDB / Auth / Testing 约束
.cursor/rules/frontend.mdc # glob: *.tsx
└─ styled-components 规则
└─ z-index 约定
.claude/skills/bootcamp-sync/ # 复杂 SOP (~400 行)
└─ SKILL.md:从 curriculum/ 同步到 prod
└─ scripts/diff-check.ts
└─ templates/
.claude/skills/lesson-design/ # 复杂 SOP
└─ SKILL.md
效果:日常会话 context 大约 8K(CLAUDE.md),需要部署或同步时 AI 自动 trigger 对应 skill 加载额外 5-10K。比把所有内容塞 CLAUDE.md 节省 60% token。
常见踩坑
- 规则写得太抽象 - "代码要清晰可维护" 是废话,AI 用不上。要写成 "service 文件超过 600 行必须拆"
- 规则之间矛盾 -
.cursorrules写 "用 tab",CLAUDE.md写 "用 4 空格",AI 行为不可预测。定期 audit - Skills 触发条件不写清楚 - SKILL.md 的 description 写"帮助代码审查",AI 永远不会主动用。要写"审查 PR 时自动触发,输入 PR diff,输出 5 类问题清单"
- 不更新规则 - 团队 6 个月前定的"用 React 17",现在已经升 React 19,AI 还在按老规则写。每季度 audit 一次
下一步
- MCP 开发最佳实践 — 把 AI 工具能力扩展到外部系统
- AI 规则持续改进 — 规则的版本化和迭代
- Claude Code Context Management — 控制规则加载的 token 成本
📚 相关资源
❓ 常见问题
关于本章主题最常被搜索的问题,点击展开答案
.cursorrules 和 CLAUDE.md 是干什么的?
它们是把团队的编码规范、架构约定、踩坑记录沉淀给 AI 的『工作手册』。.cursorrules 给 Cursor 用,CLAUDE.md 给 Claude Code 用 —— 写清 tech stack、命名规则、禁止行为、重复出现的 bug 模式。每次开新对话 AI 自动读取,不用每次粘贴 repo 上下文,团队多人协作输出风格也能稳定。
什么时候应该新增一条 AI rule?
5 个触发条件:同一个新技术 / 模式被 3+ 个 file 用到、某类 bug 反复出现且能被规则提前挡掉、code review 反复给出相同反馈、出现新的 security 或 performance 模式、复杂任务需要团队一致做法。规则不是越多越好,没满足这些条件就先别加。
什么时候应该更新已有 AI rule?
5 个信号:codebase 里出现了更好的实现示例、发现新的 edge case、相关规则刚更新需要联动、底层实现细节变了(比如换了框架版本)、团队反馈这条规则容易引起歧义。更新时打 version + 写 breaking changes,不要直接覆盖 —— 老规则可能还有人在引用。
一条好 rule 应该长什么样?
6 段式:Purpose(这条规则解决什么)、When to Apply(什么场景触发)、Implementation(最小可用示例 + 进阶模式)、Common Pitfalls(已知坑 + 怎么避)、References(关联规则 + 外部文档)。质量 checklist 6 项:actionable / specific / tested / complete / current / linked —— 缺一项规则就是『写了但没人按它做』。
怎么衡量一条 AI rule 真的有用?
4 个指标:usage count(这条规则被引用多少次)、error prevention(避免了多少 bug)、time saved(每周省多少小时)、user feedback 评分。月度 review 用量、季度做大更新、年度做 deprecation review。没有指标的规则,3 个月后通常没人记得它存在 —— rule library 会变成 dead weight。