ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

为什么AI总爱写出千行臃肿代码?5分钟实操andrej-karpathy-skills的Claude Code行为指南

2026/8/28 23:31:14 拓冰建站 浏览量
为什么AI总爱写出千行臃肿代码?5分钟实操andrej-karpathy-skills的Claude Code行为指南 为什么AI总爱写出千行臃肿代码5分钟实操andrej-karpathy-skills的Claude Code行为指南【免费下载链接】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修一个Bug它为什么改回来半个文件你只说了一句修一下这个空值崩溃它却把注释重写了、引号换了、顺手给没人要的功能加了校验。你翻diff就是AI提交的代码改动对比60行变更真正和Bug有关的可能只有3行。andrej-karpathy-skills把Andrej Karpathy对LLM编码陷阱的观察浓缩成一份放进CLAUDE.md的行为指南用四条准则约束Claude Code先想后做、少写代码、精准修改、验证收尾。说白了它不帮你写代码它管的是AI怎么干活。上手路径两条路线把行为指南装进项目整个项目没有构建、没有依赖核心就是一个 CLAUDE.md 文件外加配套说明。装它的方式只有两种路线一装成Claude Code插件一次安装全局生效推荐在Claude Code里执行两条斜杠命令/plugin marketplace add forrestchang/andrej-karpathy-skills /plugin install andrej-karpathy-skillskarpathy-skills装完后你名下所有项目都会带这套指南不用每个仓库单独配置。路线二放进项目目录跟着仓库走插件装不了、或者想让它只作用于某个仓库时把源文件拿下来git clone https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills # 新项目直接作为 CLAUDE.md cp andrej-karpathy-skills/CLAUDE.md your-project/CLAUDE.md # 老项目追加到已有 CLAUDE.md 末尾 echo your-project/CLAUDE.md cat andrej-karpathy-skills/CLAUDE.md your-project/CLAUDE.md你用Cursor的话仓库里已自带一份项目规则.cursor/rules/karpathy-guidelines.mdc把它拷进目标项目的.cursor/rules/目录即可具体见 CURSOR.md。核心机制解析四条准则是一条因果链各堵一个真实漏洞这四条不是并列的清单而是按动手前→动手时→改代码时→收工时串起来的链条每一环都对应一个高发的翻车场景。先堵入口动手前逼AI亮出假设问题在于LLM遇到模糊需求时会默默挑一种解释然后跑到底。你说把搜索做快一点它可能直接上缓存、加索引、改异步——从头到尾没问你到底要哪种快。这条准则要求它在写第一行代码前把假设摊开不确定就问多种解释就列出来让你选有困惑就停住说清困惑在哪。实际效果是澄清问题发生在实现之前而不是错误发生之后。你可以通过以下方式确认它生效了下一次提模糊需求时看它是先反问还是先动手。再管住手只写解决问题的最小代码问题在于LLM一开写就容易过度工程。让它算个折扣它还你一套策略模式加抽象类让它存个用户偏好它顺手把缓存、校验、变更通知全加上了——这些设计模式本身没错错在时机。准则给的硬约束很直接没被要求的功能不写、单次使用的代码不抽象、不存在的场景不做错误处理200行能压到50行就重写。仓库 EXAMPLES.md 里放了一组对照代码同一个折扣计算策略模式版要30多行搭台正确做法就是一个两行函数真需要多种折扣类型时再重构不迟。然后管住改动范围外科手术式修改问题在于AI改老代码时爱顺手改进单引号换双引号、补docstring、重构看着不顺眼的函数。每处改动单独看都合理叠起来diff就没法审了。准则的语气非常直白只碰必须碰的现有风格即使你不喜欢也要匹配看到不相关的死代码提一嘴就行别删但你自己改动产生的孤儿用不上的导入、变量要清掉。你可以通过以下方式确认它生效了修完一个Bug后逐行过diff每一行变更都能直接追溯到你的那句需求多出来的都算犯规。最后给它一个退出条件把去做变成做到什么程度算完前三条管怎么开始、怎么写这条管何时算完。Andrej Karpathy有个观察LLM特别擅长循环直到达成目标所以别告诉它做什么给它成功标准。准则要求把指令式任务改写成可验证目标加校验变成先写一个非法输入会失败的测试再让它通过修Bug变成先写一个能复现Bug的测试再让它通过多步任务则输出带验证点的简短计划一步一个检查。成功标准强的时候AI能自己循环到验证通过为止标准弱的时候让它能跑就行你就得全程陪跑澄清。实战走查一个真实Bug修复看修复前后的完整差异跑一遍完整流程。场景Web项目里校验函数遇到空邮箱会崩你发给Claude Code的只有一句话——fix the bug where empty emails crash the validator。没装指南时典型输出大概长这样def validate_user(user_data): - # Check email format - if not user_data.get(email): Validate user data. email user_data.get(email, ).strip() if not email: raise ValueError(Email required) - if not in user_data[email]: if not in email or . not in email.split()[1]: raise ValueError(Invalid email)Bug是修了但注释被重写、邮箱校验被增强、docstring被补上——这还只是开胃菜后面通常跟着几十行顺手改进。装了指南后同一句话的交互流程变成先亮假设Think Before Coding我理解crash是email为空或纯空格时抛异常对吗只改与修复直接相关的两行def validate_user(user_data): # Check email format - if not user_data.get(email): email user_data.get(email, ) if not email or not email.strip(): raise ValueError(Email required)给出完成标准Goal-Driven Execution先写一个空邮箱会失败的测试 → 修复 → 该测试通过且现有测试全绿才算完。路过时提一句旁边发现一个重复的校验函数没动它Surgical Changes——只报告不代删。四个准则各有一组AI做错什么/应该怎么做的对照案例都在 EXAMPLES.md 里值得通读一遍。坦诚提醒这套指南能做什么、不能做什么 几条边界提前说清楚它偏向谨慎而非速度。指南原文就写了目标是减少非琐碎工作中的代价高昂的错误不是拖慢简单任务。改个错字、调个配置值别走全套流程直接让它改完收工。它是软约束不是硬保障。CLAUDE.md改变的是模型的行为倾向极端情况下仍会跑偏。硬保证永远要靠测试和CI就是每次提交自动跑的测试与构建流水线指南只是让测试变红的次数更少。收益和场景强相关。项目测试完善、类型严格时AI本来就少犯错提升有限在没测试、代码风格混乱的大仓库里外科手术式修改目标驱动组合的价值才最明显。别把规则堆成小山。CLAUDE.md里每多一行都在占上下文和注意力保留四条核心准则只加你真正需要的项目规则。进阶混入自己的项目规则同步到Cursor这份指南设计上就是用来和项目专属指令合并的。在CLAUDE.md里加一段自己的规则即可## Project-Specific Guidelines - Use TypeScript strict mode - All API endpoints must have tests - Follow the existing error handling patterns in src/utils/errors.ts想让同一套准则作为个人可复用技能比如放进Cursor的~/.cursor/skills可以直接用仓库里的 skills/karpathy-guidelines/SKILL.md内容和CLAUDE.md一致只是带上了技能格式的元信息。最后一个容易踩的坑如果你改了准则内容记得让 CLAUDE.md 和.cursor/rules/下的规则文件保持同步否则两个工具里的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),仅供参考