
让 AI 少点自作主张andrej-karpathy-skills 把 LLM 编程行为指南装进一个文件【免费下载链接】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-skillsAI 帮你修了个 bug顺手把隔壁三个函数全重写了注释改了验证逻辑也换了。这是 andrej-karpathy-skills 要解决的痛点一套源自 Andrej Karpathy 观察的 LLM 编程行为指南把 4 条行为约束装进一个 CLAUDE.md 文件。放进来之后它该写 1000 行的代码现在 100 行就够30 行的抽象类变成 3 行函数。 一句话定位它是一组写进 AI 记忆文件里的行为约束不是框架也不是提示词工具。用 Claude、ChatGPT、Cursor 等写非平凡代码又被替你做了假设坑过的人这篇值得看只拿 AI 改错别字的可以划走。 AI 编程翻车现场你输入修个空邮箱导致验证器崩溃的 bug → AI 顺手重写整个验证函数加强邮箱校验、加 username 规则、改注释 → 修 bug 的 diff 加的行比删的多review 得逐行找哪些是真改动。你输入加个算折扣的函数 → AI 产出 DiscountStrategy 抽象类、两个策略实现、Config 和 Calculator30 多行 setup → 你实际要的只有 3 行amount * (percent / 100)。你输入加个导出用户数据的功能 → AI 默认导出全部用户到本地文件字段随便挑 → 做完才发现格式和范围全不对推倒重来。你输入让搜索变快 → AI 直接堆上缓存、索引、异步处理 200 行 → 你要的是体感速度方向一开始就错200 行全白写。 它到底怎么约束 AI这套 LLM 编程行为指南不管代码风格管的是 AI 的行为方式。核心是 3 条行为规则每条都是以前 vs 现在编码前思考传统 AI 默默选一种解释往下冲有约束后先摆出假设和多种解释拿不准就停下来说我没懂哪里。简单优先传统 AI 加你没要的抽象层和灵活性有约束后它自检200 行能写成 50 行吗能就重写。外科手术式改动传统 AI 顺手改进相邻代码和注释有约束后每行改动都能追溯到你的请求发现不相关的死代码只提一句不删。第四条叫目标驱动不让它修 bug而让它先写一个复现 bug 的测试再让测试通过。EXAMPLES.md 里的折扣函数对比最直观# ❌ 以前抽象类 两个实现 Config30 行 setup class DiscountStrategy(ABC): abstractmethod def calculate(self, amount: float) - float: ... # ✅ 现在只要被要的函数3 行 def calculate_discount(amount: float, percent: float) - float: return amount * (percent / 100) 5 分钟跑起来整条流程就是三件事拿到文件 → 放进项目根目录 → 确认生效。拿文件有两条路。方式一Claude Code 插件全局生效/plugin marketplace add forrestchang/andrej-karpathy-skills /plugin install andrej-karpathy-skillskarpathy-skills在 Claude Code 里依次执行这两条约束对你所有项目生效不用每个项目单独放文件。方式二手动放文件每个项目一份第 1 步clone 仓库只做一次git clone https://gitcode.com/GitHub_Trending/an/andrej-karpathy-skills第 2 步把核心文件放进你的项目根目录cp andrej-karpathy-skills/CLAUDE.md your-project/CLAUDE.md如果你的项目已经有 CLAUDE.md把内容合并追加到末尾即可。第 3 步验证打开 Claude Code第一句话问它这个项目 CLAUDE.md 里有什么约束它答得上四条原则就算生效了。⚖️ 一个完整任务的改前 vs 改后用户原话修个 bug空邮箱会导致验证器崩溃。改前无约束时的典型输出重写整个 validate_user 函数加 docstring注释全换掉邮箱加 strip校验加强成域名必须含点顺手补上 username 的长度和字符校验 → 10 行左右新增、6 行左右删除其中跟空邮箱 bug 相关的只有 2 行。改后有约束时的输出只在邮箱检查里加空值判断为空直接抛 ValueError其他代码、注释、格式一概不动没有产生新的孤儿引用也不删任何既有死代码 → diff 是 2 行新增0 行删除每行都能用你的原话解释。区别一句话改前你得从十几行 diff 里挑出哪两处才是真修复改后你确认 2 行就完事。这就是外科手术式改动和路过顺手重构的差距。 数据怎么说1000 行 vs 100 行Karpathy 原话模型该写 100 行时给你 1000 行的臃肿结构整个项目就是为拉回这条写的README 引文。200 行 vs 50 行CLAUDE.md 里写死的自检阈值如果你写了 200 行而 50 行就够重写它。30 行 vs 3 行EXAMPLES.md 的折扣示例抽象 setup 直接收敛成一个函数。16 行 vs 2 行上面 bug 修复场景里 diff 的体积对比来自仓库示例代码的逐行统计。返工率约降 50%宣传材料里的说法项目自述无第三方实测当参考就好。 什么时候别用改一个 typo、换一个明显的变量名别拉出澄清假设 → 写测试 → 验证全套流程。探索性 spike先把路子跑通工程纪律回头再说。文件自己也写明了这套约束偏向谨慎优于速度trivial 任务靠你自己判断不是每个改动都要走全流程。andrej-karpathy-skills 不是又一个代码框架而是你在让 AI 动手之前多加的一道收缰绳。下一个项目试试把 CLAUDE.md 丢进去先让它修个小 bug看一眼 diff 就知道它管不管用 【免费下载链接】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),仅供参考