还在担心AI写的代码一团糟?这份 CLAUDE.md 提示词专治各种不规范

最近在交流群里看到不少小伙伴吐槽:用 AI 写代码是爽了,效率提上去了,但回头看代码库简直惨不忍睹。

一会用驼峰命名,一会用下划线;有的地方写了注释,有的地方光秃秃;函数名一会 verbNoun 一会 nounVerb……最崩溃的是,当你试图让 AI 修改代码时,它甚至记不住你之前的风格偏好,每次生成的代码都像是在玩“随机风格大转盘”。

AI writing messy code illustration

AI 代码风格混乱的示意图

如果你也有这种焦虑,别急着关掉你的 AI 编辑器。问题不在于 AI “不懂”编程,而在于你没有给它立规矩。

为什么你的 AI 写代码像“游击队”?

目前的代码生成模型(无论是 Claude 还是 GPT-4),本质上是在基于概率进行续写。如果你只是简单地说“帮我写一个用户登录接口”,它会根据全网的数据统计,吐出一个“最大概率正确”的代码块。

但“正确”不代表“规范”。你的项目可能强制使用 TypeScript strict 模式,可能要求所有函数必须有 JSDoc,可能禁止使用 any 类型。这些上下文信息,如果你不显式地告诉它,它是猜不到的。

CLAUDE.md file content example

CLAUDE.md 文件内容示例

这就是为什么我们需要在项目根目录下放一个 CLAUDE.md(或者类似的上下文文件)。

CLAUDE.md 是什么?

简单来说,这就是一份给 AI 看的“项目开发手册”。当你启用某种 AI 编程工具(如 Bolt.new、Cursor、Windsurf)或者直接把项目文件扔给 Claude 时,它首先会读取这个文件。

在这个文件里,你要用自然语言把你的“霸道条款”列出来,强迫 AI 遵守。

实战:一份标准的 CLAUDE.md 模版

不要直接把代码扔给 AI,先试试在你的项目根目录创建这样一个文件。下面是一份经过实战检验的通用模版,你可以直接复制并根据项目微调:

# 项目编码规范与上下文

## 核心原则
- 代码质量 > 开发速度。宁可多写几行,也不要通过牺牲可读性来凑合。
- 安全第一。永远不要在输出中包含硬编码的密钥或敏感信息。
- 遵循 DRY (Don't Repeat Yourself) 原则,如果现有工具函数能满足需求,必须复用。

## 代码风格
- **变量命名**:必须使用 camelCase(驼峰命名法),严禁使用拼音或无意义的缩写(如 a, b, tmp)。
- **常量命名**:必须使用 UPPER_SNAKE_CASE。
- **组件命名**:对于 React/Vue 组件,必须使用 PascalCase。
- **注释**:所有涉及复杂业务逻辑的函数必须包含 JSDoc 注释,说明参数、返回值及业务含义。
- **缩进**:统一使用 2 个空格,不要使用 Tab。

## 技术栈约束
- **TypeScript**:必须开启 strict 模式,严禁使用 `any` 类型,如果类型不确定请使用 `unknown` 并进行类型守卫。
- **框架规范**:
  - React:所有 Hooks 必须放在组件顶层,不要在循环或条件语句中调用。
  - API 请求:统一使用项目封装的 `request` 实例,不要直接用 axios 或 fetch。
- **文件结构**:请遵循 `/src/components`、`/src/utils`、`/src/api` 的目录结构,不要随意造文件。

## 错误处理
- 所有异步操作必须包含 `try...catch` 错误捕获。
- 错误信息必须通过统一的 Toast 组件反馈给用户,不要直接 `console.error` 了事。
- 不要吞没错误,Catch 块中必须要有日志上报逻辑。

## Git 提交规范
- 生成 commit message 时,请遵循 Conventional Commits 规范:
  `feat: 新增功能`
  `fix: 修复 bug`
  `docs: 更新文档`

进阶技巧:如何让 AI “看懂”你的心思?

有了上面的模版还不够, AI 有时候像是个不懂变通的老古董。为了让效果更好,我有几个私藏的经验分享:

1. 动态引用示例代码

别只告诉它“怎么做”,直接给它“做好的样子”。你可以在 CLAUDE.md 里加上一段:

## 代码示例
请参考以下文件的风格进行开发:
- /src/utils/helper.ts (完美的工具函数示例)
- /src/components/Button.tsx (完美的组件示例)

在写新代码前,请务必读取这些文件的内容。

这样AI就会去读取现有的“模范代码”,从而模仿你的编码风格。

2. 架构层面的限制

对于大型项目,你可能需要约束架构模式。比如:

## 架构模式
- 本项目采用 MVP (Model-View-Presenter) 模式,请勿在 View 层直接包含业务逻辑。
- 数据流必须单向流动,禁止跨层级直接修改状态。

这对于接手别人代码或者 AI 从零开始搭建脚手架时非常有用。

3. 针对 AI “幻觉”的防御条款

AI 喜欢瞎编不存在的库或者 API。你可以加上:

## 依赖使用
- 只能使用 package.json 中已存在的依赖库。
- 如果需要引入新库,必须先告知开发者,并说明理由,不得擅自安装。
- 假设的 API 或库不要在代码中直接调用,先确认是否存在。

常见问题与解决方案

Q1:我改了 CLAUDE.md,但 AI 还是照旧写乱码代码?

A:有些 AI 工具有上下文窗口限制,或者缓存了之前的对话。最好的办法是开启一个新的对话窗口,或者在 Prompt 里显式提示:“请重新阅读根目录下的 CLAUDE.md 文件,并按照最新规则重写代码。”

Q2:前端和后端的规则不一样怎么办?

A:如果你的项目是 Monorepo,建议拆分成 frontend/CLAUDE.mdbackend/CLAUDE.md,分别定义不同的技术栈约束(比如一个要求 React Hooks,一个要求 Dependency Injection)。

Q3:这是不是只适用于 Claude?

A:文件名叫 CLAUDE.md 是因为现在很多工具默认优先识别这个文件名。实际上,你可以叫 .ai-rules 或者 INSTRUCTIONS.md。关键在于你使用的 AI IDE 是否支持自动注入这个文件的内容。如果不支持,手动把这个文件的内容复制到 System Prompt 里也是一样的效果。

总结

把 AI 当作一个极其聪明但完全没有经验的实习生。

你不能只对它喊“去干活”,你需要给它一本详尽的《员工手册》。CLAUDE.md 就是这本手册。一旦把这套流程跑通,你会发现 AI 写的代码不再是需要你重写的垃圾,而是直接可以合并进主分支的高质量产出。

别再犹豫了,现在就去你的项目里建这个文件吧。

标签: none

评论已关闭