CClaude 中文站
🏆 最佳实践

用 CLAUDE.md 固化项目约束

2026/04/05·9 分钟阅读·Claude 中文站

系统介绍 CLAUDE.md 的作用、编写范式与常见反模式,让项目规范在每次会话中自动生效。

CLAUDE.md 是什么

CLAUDE.md 是项目级"给 AI 的说明书"。Claude Code 每次启动会自动读取,把里面的规则作为硬约束遵守。

一、加载规则

1.1 三级加载顺序

位置作用范围优先级
~/.claude/CLAUDE.md全局个人偏好最低
仓库根 CLAUDE.md项目级规范
子目录 CLAUDE.md局部规则最高

子级覆盖父级同名条目。

1.2 自动加载时机

  • claude 启动时
  • /clear 重置上下文后
  • /memory 手动重载

二、标准结构(五段式)

# 项目名

## 技术栈
[Node 版本、框架、数据库、部署方式]

## 目录约定
[哪些目录放什么]

## 编码规范
[命名、格式、风格]

## 禁止事项
[绝对不能做什么]

## 验收标准
[提交前必须满足的条件]

三、实操示例

# 某电商后端

## 技术栈
- Node.js 22 + NestJS 10
- PostgreSQL 15,ORM 用 Prisma
- 部署:Docker + K8s

## 目录约定
- src/modules/ 按业务域拆分
- src/common/ 放公共工具
- test/ 仅存 E2E,单测与源码同目录

## 编码规范
- 类型:禁止 any,所有返回值显式标注
- 命名:业务服务用 XxxService,DTO 用 XxxDto
- 日志:统一用 logger,禁用 console

## 禁止事项
- 不得绕过 Prisma 直接写 SQL
- 不得提交敏感信息(.env、key)
- 不得使用未审核的第三方库

## 验收标准
- npm run lint 通过
- npm test 全绿
- npm run build 构建成功

四、编写范式

4.1 硬约束用强动词

  • "必须" / "禁止" / "不得" —— 强约束
  • "建议" / "优先" —— 弱约束

AI 对强动词敏感度更高。

4.2 用示例替代描述

❌ "数据库查询要规范"

✅ "数据库查询示例:await prisma.user.findMany({ ... }),禁止 raw SQL"

4.3 给出正反例

正例:await userService.create(dto);
反例:new User().save();  // 不得绕过 service 层

五、常见反模式

反模式问题纠正
几千字长文占 context,模型只看前半分层拆分
只有描述没有示例AI 难以判断边界加正反例
忘记更新规则与代码不符纳入 PR checklist
写得像文档而非指令AI 不把它当约束用祈使语气

六、提交前检查清单

  • [ ] 技术栈版本具体(Node 22 而非 Node latest)
  • [ ] 禁止事项至少 3 条
  • [ ] 验收标准可执行(有具体命令)
  • [ ] 无过时规则
  • [ ] 全文 < 200 行(超出拆分到子目录)

本文为骨架版,第二阶段将补充:不同行业(前端、后端、数据、AI)的 CLAUDE.md 模板库。

相关阅读