一套经过一线生产项目验证的 AI 编码规范,适用于 Cursor(.cursor/rules/)和 Claude Code(.claude/rules/),帮助 AI 像靠谱的工程师一样写代码。
背景:在一个 15 天 10 万行代码、95% 由 AI 生成的真实项目中沉淀出来。核心理念——不是教 AI 写代码,而是告诉 AI 什么不能做。
- 将
rules/目录下的.mdc文件复制到你项目的.cursor/rules/目录 - 将
skills/目录复制到你的~/.cursor/skills/目录(全局生效) - 根据你的项目修改
project-architecture-template.mdc(这是唯一需要大改的文件) - 开始和 AI 对话——它会自动遵守这些规范
cp -r rules/ your-project/.cursor/rules/
cp -r skills/ ~/.cursor/skills/Claude Code 的 .claude/rules/ 只识别 .md 文件,需要将 .mdc 改为 .md 后缀:
# 复制并重命名后缀
mkdir -p your-project/.claude/rules/
for f in rules/*.mdc; do cp "$f" "your-project/.claude/rules/$(basename "${f%.mdc}.md")"; done
# Skills 复制到全局目录
cp -r skills/ ~/.claude/skills/同样需要修改 project-architecture-template.md(注意后缀变了)。
Cursor 用
.mdc,Claude Code 用.md——内容完全一样,只是文件后缀不同。.mdc本质就是 Markdown,改后缀即可。Frontmatter 差异:Cursor 用
globs做条件匹配,Claude Code 用paths。本仓库中仅java-spring-conventions使用了globs: "**/*.java",Claude Code 用户需改为paths: "**/*.java"。其余文件设置了alwaysApply: true,两边通用无需改动。
rules/
├── development-workflow.mdc # 通用层 — Leader-Worker-Judge 工作流
├── design-principles.mdc # 通用层 — 设计原则(红线 + 传统工程原则)
├── java-spring-conventions.mdc # 技术栈层 — Java/Spring 编码规范 + 静态分析
└── project-architecture-template.mdc # 项目层 — 域边界表 + 数据访问分层(需自定义)
| 层级 | 文件 | 谁能用 | 需要改吗 |
|---|---|---|---|
| 通用层 | development-workflow.mdc |
前端/后端/客户端/全栈 | 基本不用改,工作流细节可以自行调整 |
| 通用层 | design-principles.mdc |
前端/后端/客户端/全栈 | 代码示例可换成你的语言 |
| 技术栈层 | java-spring-conventions.mdc |
Java/Spring Boot 后端 | 按团队规范微调 |
| 项目层 | project-architecture-template.mdc |
你的具体项目 | 必须根据项目填写 |
通过关键词触发 AI 在三个角色间切换:
- Leader(
分析需求方案设计定接口):多问少做,输出设计文档和 API 骨架 - Worker(
开始开发写代码写测试):按方案执行,一次一个功能点 - Judge(
review跑测试能部署了吗):跑测试、跑静态检查、给出证据再下结论 - BugFix(
修bugfix):定位→改码→补测试→跑通,四步闭环
4 条红线(违反即 Judge 不通过):
- 逻辑收口 — 同一职责只有一个归属
- 复用优先 — 先找再写
- 禁止循环依赖 — 传递依赖链至少查 3 跳
- 禁止魔法值 — 枚举/常量统一
9 条重要原则:模块化、幂等性、防御性编程、副作用可预测、优雅降级、可测试性、日志有效性、开闭原则、设计模式问题驱动。
附带 8 项自检清单,每次开发新功能前过一遍。
- 依赖注入:构造器注入,禁止
@Autowired字段注入 - 异常处理:统一
BizException+ResultCode - 返回类型:统一
Result<T> - 静态分析工具矩阵:Enforcer / CheckStyle / PMD / CPD / SpotBugs
- 域边界表:告诉 AI 每个业务域有哪些 Service、DAO,改哪个域的代码该找哪个类
- 数据访问分层:Controller → Service(编排/领域)→ Repository → DAO 的职责和规则
- 模块职责:哪个模块放什么,禁止什么
人类工程师的经验(单一职责、幂等性、不循环依赖)是内化的,AI 没有。你不说,它不知道。
- 写"禁止"比写"建议"有效 10 倍 — AI 对"必须/禁止"的遵从度远高于"建议/推荐"
- 带正反代码示例 — AI 看
✅和❌比看文字描述理解快 - 项目层必须有域边界表 — 没有这张表,AI 不知道代码该放哪
除了 Rules,建议在项目中维护:
docs/
├── plans/ # 技术方案(Leader 输出)
├── flow/ # API 交互流程(Leader 输出)
└── database/ # DB Schema 文档
├── mysql-all-tables.sql
└── mongodb-indexes.js
这些文档是 AI 的"长期记忆"——新开窗口时,AI 可以快速检索上下文。
除了 Rules(告诉 AI 什么能做什么不能做),Skills 告诉 AI 怎么做。Skills 是可复用的工作方法论,当 AI 遇到特定场景时自动激活。
本仓库的 Skills 基于两个优秀的开源项目,移除了 git 操作相关部分并做了适配:
- 开发工作流 Skills(12 个)— 基于 obra/superpowers
- 上下文工程 Skills(7 个)— 基于 muratcankoylan/Agent-Skills-for-Context-Engineering
skills/
├── 开发工作流(基于 superpowers)
│ ├── brainstorming/ # 需求头脑风暴,创意工作前必用
│ ├── writing-plans/ # 编写实施计划
│ ├── executing-plans/ # 按计划分批执行
│ ├── subagent-driven-development/ # 子 Agent 驱动开发(含 prompt 模板)
│ ├── dispatching-parallel-agents/ # 并行派发多个 Agent
│ ├── test-driven-development/ # TDD 红绿重构
│ ├── systematic-debugging/ # 系统化调试(含根因追溯技术)
│ ├── requesting-code-review/ # 请求代码审查
│ ├── receiving-code-review/ # 接收代码审查反馈
│ ├── verification-before-completion/ # 完成前必须验证
│ ├── finishing-a-development-branch/ # 开发分支收尾
│ └── using-superpowers/ # Skills 调度入口
│
├── 上下文工程(基于 Agent-Skills-for-Context-Engineering)
│ ├── context-fundamentals/ # 上下文工程基础
│ ├── context-degradation/ # 上下文退化模式
│ ├── context-compression/ # 上下文压缩策略
│ ├── context-optimization/ # 上下文优化技术
│ ├── filesystem-context/ # 文件系统上下文管理
│ ├── multi-agent-patterns/ # 多 Agent 架构模式
│ └── tool-design/ # Agent 工具设计
| Skill | 一句话说明 | 何时触发 |
|---|---|---|
| brainstorming | 把模糊想法变成清晰设计方案 | 做任何创造性工作之前 |
| writing-plans | 把需求拆成 TDD 友好的执行步骤 | 有需求/设计稿,准备动手之前 |
| systematic-debugging | 四阶段调试:根因→模式→假设→修复 | 遇到任何 Bug |
| test-driven-development | 先写测试,看到红,再写代码 | 实现任何功能 |
| verification-before-completion | 没跑过验证命令不许说"完成了" | 声称工作完成之前 |
| context-fundamentals | 理解上下文窗口和注意力机制 | 设计 Agent 系统架构 |
| context-compression | 长对话压缩,不丢关键信息 | Agent 会话超出上下文限制 |
| multi-agent-patterns | 多 Agent 协作的三种架构模式 | 设计多 Agent 系统 |
目前 java-spring-conventions.mdc 是 Java/Spring Boot 专用。如果你用其他技术栈:
- 前端(React/Vue/Next.js):
development-workflow.mdc和design-principles.mdc直接可用,另写一份前端编码规范替换 Java 那份 - Go / Python / Node.js:同上,替换技术栈层的编码规范
- 客户端(iOS/Android/Flutter):同上
通用层的两份文件(工作流 + 设计原则)不需要改,直接用。
- obra/superpowers — 开发工作流 Skills 的原始来源
- muratcankoylan/Agent-Skills-for-Context-Engineering — 上下文工程 Skills 的原始来源
MIT