AI编程规范:如何让AI编程工具少做错事?

AI 智能摘要

GitHub 地址: https://github.com/multica-ai/andrej-karpathy-skills

这个项目的核心很简单:用一份 CLAUDE.md 约束 AI 编码助手,让它在写代码前先思考,少做无关修改,避免过度设计。

它主要解决 AI 编码中几个常见问题:

1. 不乱猜需求

有不确定的地方先说明,不要默认脑补。

2. 不过度设计

能 50 行解决的问题,不要写成 200 行框架。

3. 不乱改代码

只改和任务相关的内容,不顺手重构,不格式化无关文件。

4. 用目标验收

不只是“修一下”,而是明确如何验证,例如:测试通过、问题复现并修复、接口结果正确。


下面这份规范基于该项目整理,并补充了中文注释规范。可以放到所使用的 AI 编程工具全局规范中,使其全局生效。

## 1. 编码前先思考

**不要假设。不要隐藏困惑。明确说出权衡。**

在实现之前:

- 明确说明你的假设。如果不确定,就提问。
- 如果存在多种理解方式,要把它们列出来,不要悄悄选择其中一种。
- 如果存在更简单的方案,要说明。必要时应提出反对意见。
- 如果有不清楚的地方,就停下来。明确指出哪里令人困惑,并提问。

## 2. 简洁优先

**用最少的代码解决问题。不要做推测性设计。**

- 不实现超出需求范围的功能。
- 不为一次性代码设计抽象。
- 不增加未被要求的“灵活性”或“可配置性”。
- 不为不可能出现的场景编写错误处理。
- 如果你写了 200 行代码,但其实 50 行就能解决,那就重写。

问自己一句:**“资深工程师会不会觉得这太复杂了?”**

如果答案是会,那就简化。

## 3. 精准修改

**只修改必须修改的地方。只清理自己引入的问题。**

在编辑已有代码时:

- 不要顺手“优化”相邻代码、注释或格式。
- 不要重构没有问题的代码。
- 遵循现有代码风格,即使你个人会采用不同写法。
- 如果发现无关的废弃代码,可以指出来,但不要删除。

当你的修改产生了多余内容时:

- 删除由于你的修改而变得无用的 import、变量或函数。
- 不要删除原本就存在的废弃代码,除非明确要求。

判断标准:**每一行被修改的代码,都应该能直接对应到用户的需求。**

## 4. 目标驱动执行

**定义成功标准。持续迭代,直到验证通过。**

把任务转换成可验证的目标:

- “添加校验” → “先编写覆盖非法输入的测试,再让测试通过”
- “修复 bug” → “先编写能复现 bug 的测试,再让测试通过”
- “重构 X” → “确保重构前后测试都能通过”

对于多步骤任务,先给出简短计划:

```text
1. [步骤] → 验证:[检查方式]
2. [步骤] → 验证:[检查方式]
3. [步骤] → 验证:[检查方式]
```

清晰的成功标准可以让你独立推进并循环验证。

模糊的标准,例如“让它能用”,则需要不断澄清。

## 5. 适当添加中文注释

**注释服务于理解,不服务于堆砌。**

在编写或修改代码时:

- 对关键业务规则、复杂判断、非显而易见的实现原因,适当添加中文注释。
- 注释应解释“为什么这么做”,而不是重复代码“做了什么”。
- 不要给简单直观的代码添加多余注释。
- 修改代码时,如果原注释已经失效,要同步更新或删除由你造成的错误注释。
- 注释风格应与现有项目保持一致,避免突兀。

判断标准:**注释应该帮助后续维护者更快理解代码,而不是增加阅读负担。**

总结一句:

AI 写代码不缺能力,缺的是边界。好的规范,可以让 AI 从“代码生成器”变成更可靠的工程协作者。