AI 改代码总跑偏?把 Karpathy 4 条编码纪律写进 CLAUDE.md 的落地做法
AI 改代码总跑偏把 Karpathy 4 条编码纪律写进 CLAUDE.md 的落地做法【免费下载链接】andrej-karpathy-skillsA single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathys observations on LLM coding pitfalls.项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills最近我们组把 andrej-karpathy-skills 仓库里的 Karpathy 编码原则正式装进了日常协作。说白了这个仓库只干一件事把 Andrej Karpathy 对大模型写代码坏习惯的观察浓缩成一个 CLAUDE.md 行为文件给 AI 编程加一道防错护栏。复盘一次顺手修改80 行 diff 为什么排查了一小时上周有个需求给登录接口加失败次数限制。我们把任务丢给 AI 助手拿回来的 diff 只有 80 行测试全绿。直到预发环境的老账号全部登录失败才发现问题——AI 在加限流的同时顺手改了一处旧密码校验的参数还统一了周边代码的格式。行为层面的改动藏在一堆格式变化里肉眼很难分辨哪行是真逻辑。事后复盘根子不在模型能力而在于我们从来没告诉它只改必须改的。Karpathy 对此的观察很准模型会替你做错误的假设然后一路顺着跑下去不澄清、不暴露矛盾、不权衡取舍。他的解法是把行为约束写进模型能看见的地方。andrej-karpathy-skills 就是照着这个思路做的一个文件四条纪律相当于给 AI 定了一套入职守则。纪律一编码前思考先交假设清单再动键盘 这条对应 Think Before Coding。老毛病大家都见过你说加个用户校验AI 脑子里已经默默选了一种解释——也许直接上完整的 OAuth——然后开写等你发现时返工成本已经翻倍。装上这条纪律后AI 动手前会先做三件事把假设摆上台面我假设输入都是字符串如果存在多种解释列出两三种做法和各自的代价由你拍板遇到真不懂的地方停下来说出困惑而不是猜。效果大致是这样对话体示意你说加导出功能我先确认三件事导出是全量还是筛选后的子集导出指浏览器下载还是后台任务包含哪些字段、有没有敏感信息 我的倾向先做一个返回分页 JSON 的接口改动最小如果确定要落文件我再确认格式和位置。说白了就是把理解需求从一次性猜测变成可以来回确认的过程。纪律二简单优先50 行能解决就别交 200 行对应 Simplicity First。AI 写代码的通病是给小问题上大架构一个 50 行能搞定的文件上传交付出来是抽象工厂加策略模式还带一堆以防万一的配置开关。这条纪律的边界画得很具体没要求的功能不加只用一次的代码不抽抽象没人要的灵活性不做不可能发生的场景不做错误处理200 行能缩到 50 行的重写。# 常见的交付示意200 行 class UploadStrategy(ABC): ... class UploadFactory: ... # 工厂 策略 配置开关 # 这条纪律要求的交付50 行 def upload(path): ... # 直接解决问题仓库里给的自检问题很实用一个资深工程师看到这段代码会说它过度复杂吗会的话继续简化。我们内部的补充习惯是同一种写法出现第三次之前不急着抽象——这条是我们自己的经验不是 Karpathy 原话。纪律三精准修改diff 有多大需求就有多大对应 Surgical Changes。前面那个登录事故栽的正是这条顺手改格式、顺手优化相邻代码让审查的人分不清哪行是行为变更哪行只是搬家。这条的规矩是只碰必须碰的没坏的代码不重构现有风格即使你不喜欢也先保持一致看到无关的死代码指出来但不删。清理方面只清自己造成的——你的改动让某个 import 或变量失去用途就删掉改动之前就存在的废弃代码除非被明确要求否则不碰。验收标准就一句话每一行改动都应该能追溯到你的某句需求。做不到追溯的行就是混进来的。纪律四目标驱动执行给 AI 一个能验收的终点对应 Goal-Driven Execution。Karpathy 有个判断大模型特别擅长朝着具体目标循环直到达成。所以别只丢一句把性能提上去丢一个可验证的成功标准让它自己循环。落到操作层面就是做任务翻译。加校验翻译成先给非法输入写测试再让测试通过修这个 bug翻译成先写一个能复现它的测试再修到通过重构 X翻译成改动前后的测试都保持通过。多步骤任务则让 AI 先报一个带验证点的计划1. 抽出排序函数 → 验证现有测试全绿 2. 替换比较逻辑 → 验证复现用例通过 3. 全量回归 → 验证无新增失败标准定得强AI 能独立迭代标准定得弱让它能跑就行你就得全程追着确认。把守则装进工具CLAUDE.md 配置与 Cursor 规则仓库的主体就一个文件CLAUDE.md开头特意留了一句权衡——这些守则偏向稳而不是快琐碎的小任务用你自己的判断别为了走流程拖慢简单活。用法分两种。用 Claude Code 的可以把这四条纪律合并进项目根的 CLAUDE.md再附上你自己的项目规则比如所有接口必须带测试也可以在 Claude Code 里走插件市场安装README 里给了两条路径。用 Cursor 的话仓库里已经提交了一份项目规则文件打开项目即生效细节见 CURSOR.md。如果只想把四原则当一份速查卡skills/karpathy-guidelines/SKILL.md 里有可直接复用的版本。 怎么判断守则起作用了看三个信号diff 里无关改动变少了第一版代码不再过度设计、不用推倒重写澄清问题出现在动手之前而不是出事之后。这四条纪律本质就是给 AI 编程防错立的行为约束。本周就能做的最小动作把你手头一个项目的指令文件翻出来把这四条纪律合并进去或直接采用仓库里的 CLAUDE.md。下次提需求时先让 AI 把假设清单交上来从下一次任务开始验收。【免费下载链接】andrej-karpathy-skillsA single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathys observations on LLM coding pitfalls.项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
上一篇/下一篇内容由系统自动关联
返回资讯列表 →