news 2026/8/28 11:32:44

andrej-karpathy-skills实操避坑指南:4条规则让AI不再乱改你的代码

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
andrej-karpathy-skills实操避坑指南:4条规则让AI不再乱改你的代码

andrej-karpathy-skills实操避坑指南:4条规则让AI不再乱改你的代码

【免费下载链接】andrej-karpathy-skillsA single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills

andrej-karpathy-skills 是把 Karpathy 对 LLM 编码陷阱的观察,浓缩成一份 CLAUDE.md 行为规则文件的项目。如果你的 AI 曾悄悄做出假设就把功能写完、100 行能解决的事给你 1000 行、或"顺手"改了你没让它动的代码,这份文件是对症的。

😤 AI 背叛你的 3 种常见姿势

你大概没少遇到:AI 自作主张加类型注解、把单引号统一成双引号,还"顺手"润色了旁边的注释;或者你只让它算个折扣,它回你一个策略模式加配置类。

别慌,这不是你的运气问题。Karpathy 的原话很直接:模型会替你做出错误假设,然后不验证就一路跑下去;不管理自己的困惑,不寻求澄清,不展示权衡;特别喜欢搞复杂代码和 API,1000 行本 100 行就够;哪怕与任务无关,也会顺手改掉它并不充分理解的注释和代码。

对应到你最常踩的 3 类错误行为:

  1. 悄悄假设:只说"加个导出功能",它自己选定格式、字段、范围,一路做完;
  2. 过度工程:抽象提前建好,需求从没提过,没人用;
  3. 误伤:修个 bug,相邻代码的格式、注释、风格全变了,没法 review。

这个项目把这些问题压成 4 条规则,装进一份 CLAUDE.md。它不是工具,只是 AI 写代码前先读的一份行为契约。

⚡ 先看对比:30 行折扣代码 vs 3 行

让它"加一个折扣计算函数",它经常交出这样的东西:

❌ 典型的过度实现(摘自 EXAMPLES.md):

from abc import ABC, abstractmethod class DiscountStrategy(ABC): @abstractmethod def calculate(self, amount: float) -> float: pass class PercentageDiscount(DiscountStrategy): def __init__(self, percentage: float): self.percentage = percentage def calculate(self, amount: float) -> float: return amount * (self.percentage / 100) # ……省略无关部分:FixedDiscount、DiscountConfig、 # DiscountCalculator 及上下限校验,还有 30 多行

注意:设计本身没有错,策略模式、配置对象、上限校验,全是教科书做法。问题在时机:这些抽象对应的需求根本没出现过。

✅ 应该长这样:

def calculate_discount(amount: float, percent: float) -> float: """计算折扣金额,percent 应在 0-100 之间。""" return amount * (percent / 100) # 使用 discount = calculate_discount(100.0, 10.0) # 优惠 10 美元

好的代码是简单解决今天的问题,而不是提前解决明天的问题。真到了需要多种折扣类型的那天再重构,加一个函数的成本远低于拆一套抽象。

🧭 4 条规则,三段落地:想清楚、改准、验证过

4 条规则对应你和 AI 协作的三个阶段。

认知层:编码前思考

"不要假设,不要隐藏困惑,把权衡摆到台面上"——这是排第一的规则。

要求是:明确列出假设;存在多种解释时逐条列出,而不是默默选一条;有更简单的做法就说;不懂就停下,说出哪里不懂。

加上这条规则后,你说"让搜索更快",AI 应该回你:

"更快"可能是三件事:① 响应时间低于 100ms,加索引和缓存;② 扛更多并发,上异步;③ 感知更快,渐进加载。各自工作量不同,你最在意哪个?

而不是默默写 200 行优化代码。

操作层:简单优先 + 外科手术式修改

操作层两条,一内一外:

  • 简单优先(对内):不实现没要求的功能,不做单次使用的抽象,不为不可能的场景写错误处理;200 行能压到 50 行就重写。
  • 外科手术式修改(对外):不碰相邻代码,匹配现有风格,发现无关死代码只提一句、不删。标准是:每一行改动都能追溯回你的请求。

EXAMPLES.md 里"修 bug"的例子很典型,任务是修复空邮件导致崩溃:

❌ AI 常见的返回:

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") - # Basic email validation - if '@' not in user_data['email']: + if '@' not in email or '.' not in email.split('@')[1]: raise ValueError("Invalid 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")

第一份 diff 里真正的修复只有几行,其余全是附带的"改进"。review 时你得逐行分辨哪些是修复、哪些是自我发挥,成本立刻爆炸。

验证层:目标驱动执行

LLM 特别擅长"循环直到达成明确目标"。这条规则要求把任务翻译成可验证的目标:

  • "加校验" → 为无效输入写测试,然后让它通过;
  • "修 bug" → 先写一个能复现 bug 的测试,再让它通过;
  • "重构 X" → 保证重构前后测试都通过。

多步任务则要求先给出计划,每步带验证方式:

1. 单端点加内存限流 → 验证:100 次请求只有前 10 次通过 2. 抽成中间件 → 验证:其他端点测试不回归 3. 换 Redis → 验证:重启后计数不丢失

弱目标("让它能跑")需要你不停确认;强目标让 AI 自己循环。这就是杠杆。

🧪 3 个高频场景 × 各自该盯什么

只记一条决策路径的话,记这个:

规则落到你最高的三个场景:

场景最容易翻车点规则逼 AI 做什么一句话自查
写新功能假设蔓延、投机性功能列出假设,只做被要求的事每行代码是否来自我明确提出的需求?
修 Bug不复现就改、改完说不清先写复现测试,修完确认无回归diff 里是否只有与本 bug 相关的行?
改老代码顺手重构、风格漂移匹配现有风格,只清理本次产生的孤儿代码每处改动能否追溯到请求?

🔌 上手:给 CLAUDE.md 追加规则的正确姿势

仓库很小,核心就 4 个文件:

  • CLAUDE.md:主规则文件,你要装的就是它;
  • EXAMPLES.md:每条规则的正反代码对比;
  • skills/karpathy-guidelines/SKILL.md:同样内容打包成的可复用技能;
  • CURSOR.md:Cursor 规则接入说明。

方式 A:Claude Code 插件,一次安装、所有项目可用:

/plugin marketplace add forrestchang/andrej-karpathy-skills /plugin install andrej-karpathy-skills@karpathy-skills

方式 B:按项目安装,适合任何读根目录指令文件的工具:

git clone https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills cp andrej-karpathy-skills/CLAUDE.md 你的项目根目录/

已有 CLAUDE.md 就追加进去,规则文件本来就是设计来与项目专属规则合并的。用 Cursor 的话,把仓库里的.cursor/rules/karpathy-guidelines.mdc拷进项目即可,它带alwaysApply: true,开箱生效。

🚧 什么时候不用较真

这套规则整体偏向谨慎而非速度:目标是非平凡任务上少犯昂贵错误,不是拖慢简单任务。

这几种情况可以松一松:

  • 修拼写、改一行明显的笔误;
  • 绿地项目,没有存量风格需要匹配;
  • 你本来就希望 AI 把多种架构方案列出来给你挑。

怎么确认规则生效了?看三个可观察信号:diff 里与请求无关的改动变少、因过度复杂而返工变少、澄清问题出现在实现之前而不是出错之后。

下一步:clone 这个仓库,把 CLAUDE.md 放进你的项目根目录,然后在下一个任务里看 AI 先问你什么。

【免费下载链接】andrej-karpathy-skillsA single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.项目地址: https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 11:31:09

600W无风扇医疗AC-DC电源设计:热设计、安规与EMI实战解析

医疗电源做到600W还要无风扇,这个需求放在十年前基本没几个方案公司敢接,现在不管是结构设计还是功率器件,都有了更好的解。我自己做完一轮完整的无风扇AC-DC医疗电源项目之后,最大的感触是:难点根本不在电路能不能工作…

作者头像 李华
网站建设 2026/8/28 11:29:28

口碑好的谷歌SEO代运营,大鱼营销或成优质之选

在全球化数字营销的浪潮中,谷歌SEO已成为中国企业开拓海外市场、实现品牌破圈的核心手段。寻找一家口碑好的谷歌SEO代运营公司,对出海企业而言至关重要,而深圳大鱼营销有限公司或许能成为众多企业的优质选择。深圳大鱼营销有限公司是一家专注…

作者头像 李华
网站建设 2026/8/28 11:29:00

该如何把IoT模块现场测试费用降下来?一套系统化裁剪方案

物联网这个圈子里,“IoT模块的现场测试”是很多人又爱又恨的环节。爱是因为它确实能暴露问题,恨是因为它烧钱、耗时,还经常在项目后期打乱量产计划。最近看到“Firms Team Up to Minimize Field Testing for IoT Modules”这个项目标题&#…

作者头像 李华
网站建设 2026/8/28 11:28:59

西安交大SDN实验课:Mininet+Ryu实战全解析

简介:软件定义网络(SDN)是一种将网络控制平面与数据平面分离的架构范式,其核心原理在于通过可编程控制器动态管理流表与网络行为。技术价值体现在提升网络灵活性、自动化运维能力及快速策略迭代效率。典型应用场景包括高校网络教学…

作者头像 李华
网站建设 2026/8/28 11:28:38

Superpowers 最简环境配置:5 分钟搭好你的 AI 开发工作空间

Superpowers 最简环境配置:5 分钟搭好你的 AI 开发工作空间 【免费下载链接】superpowers An agentic skills framework & software development methodology that works. 项目地址: https://gitcode.com/GitHub_Trending/su/superpowers Superpowers 是…

作者头像 李华
网站建设 2026/8/28 11:28:34

DAL A级BSP落地:Deos RTOS与多核PowerPC平台的技术解析

1. 一次安全关键领域的“官宣”意味着什么如果你长期混在航空电子、防务电子或者工业控制圈,看到 DDC-I 和 North Atlantic Industries(NAI)这两个名字放在一起,基本就知道这不是一次普通的产品新闻。DDC-I 是 Deos 实时操作系统的…

作者头像 李华