Karpathy风格AI编码指南

获得更简洁、更精准、更符合预期的AI编码输出,显著减少无效重构和过度工程。

详细介绍

Karpathy 风格的 Claude Code 指南

本技能提供了一套 CLAUDE.md 文件指南,灵感来源于 Andrej Karpathy 对 LLM 编码陷阱的观察,旨在改善 Claude Code 的行为,减少错误、避免过度复杂化、提高代码质量。适用于使用 Claude Code 进行编程的开发者。

适用场景

任何使用 Claude Code 进行代码生成、编辑或重构的项目

当你希望避免过度复杂的代码、不必要的抽象和意外修改时

当你希望 Claude Code 在实现前澄清假设并展示权衡时

核心原则

1. 先思考再编码

明确陈述假设 —— 如果不确定,询问而不是猜测

呈现多种解释 —— 存在歧义时不要默默选择

在必要时提出异议 —— 如果有更简单的方法,说出来

困惑时停止 —— 指出不清楚的地方并请求澄清

2. 简洁优先

只完成要求的功能,不添加额外功能

不为一次性使用的代码创建抽象

不添加未要求的“灵活性”或“可配置性”

不为不可能的场景处理错误

如果 200 行代码可以缩减为 50 行,重写它

检验标准: 资深工程师是否会觉得过于复杂?如果是,请简化。

3. 精准修改

只修改必须修改的部分

不要“改进”相邻的代码、注释或格式

不要重构没有问题的代码

匹配现有风格,即使你更喜欢另一种方式

如果发现无关的死代码,提出来 —— 不要删除它

删除你的修改导致未使用的导入/变量/函数(但不要删除已有的死代码,除非被要求)

4. 目标驱动执行

在实现前定义成功标准

将命令式任务转化为可验证的目标

对于多步骤任务,列出简要计划并附上验证步骤

不要这样做…
而是这样做…

“添加验证”
“编写无效输入的测试,然后让它们通过”

“修复 bug”
“编写能复现它的测试,然后让它们通过”

“重构 X”
“确保测试在重构前后都通过”

工作方式

本技能提供了一套指南,Claude Code 在交互时会遵循这些指南。它鼓励明确推理、最小化代码更改和面向目标的验证。你可以将其与项目特定规则结合,放在 CLAUDE.md 文件中。

你会获得

差异中的不必要更改更少 —— 只出现请求的更改

由于过度复杂化而重写的次数更少 —— 代码从一开始就简洁

在实现之前提出澄清问题 —— 而不是在错误之后

干净、最小的 PR —— 没有附带的重构或“改进”

关键见解

“LLMs are exceptionally good at looping until they meet specific goals… Don't tell it what to do, give it success criteria and watch it go.”
— Andrej Karpathy

“目标驱动执行”原则体现了这一点:将命令式指令转化为带有验证循环的声明式目标。

自定义

这些指南可以与项目特定指令合并。添加类似以下部分:

## 项目特定指南
– 使用 TypeScript 严格模式
– 所有 API 端点必须有测试
– 遵循 `src/utils/errors.ts` 中的现有错误处理模式

权衡说明

这些指南偏向于谨慎而非速度。对于简单任务(如修复拼写错误、明显的单行修改),请自行判断 —— 并非每次更改都需要完整的严谨性。目标是在非平凡工作上减少代价高昂的错误,而不是拖慢简单任务。

兼容性

本技能可与 Claude Code 一起使用。它还包含用于 Cursor 的规则(参见相关文档)。

试试这样做

  • 请根据Karpathy指南原则,先分析需求中的潜在歧义,列出你的假设,并在编写代码前确认实现方案。
  • 在进行代码重构前,请先定义明确的成功标准和测试用例,确保修改仅限于目标范围,不触碰无关代码。
  • 请审查当前代码实现,如果存在过度抽象或不必要的复杂逻辑,请按简洁至上原则进行精简。

作者:multica-ai 开发者 / åˆ›ä¸šè€ | GitHub Stars 196K | 标签:编程开发 知识管理 已认证 开源许可: 未知 License

来源:colaos.ai | Skill ID:andrej-karpathy-skills