公司动态
一份CLAUDE.md让LLM少犯四个编码错误
一份CLAUDE.md让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-skills你有没有遇到过这种情况给 Claude Code 提了一个很小的需求它交付的 diff 却混进了大量无关改动或者你只想要一个 20 行的函数它却搭起了抽象基类加策略模式。andrej-karpathy-skills 是一个把 Andrej Karpathy 对 LLM 编码通病的观察整理成行为的开源项目核心就是一份 CLAUDE.md用来约束 Claude Code 的编码习惯让 AI 生成的代码更少跑偏。 三个让你头疼的典型场景实际用起来你会发现LLM 的麻烦往往不在不会写代码而在写代码的方式。这个项目的出发点来自 Karpathy 的三句吐槽模型会替你做错误假设然后一路狂奔从不回头确认它不管理自己的困惑、不主动澄清、不暴露矛盾、该反驳时不反驳。模型偏爱过度复杂化抽象膨胀、死代码不清理100 行能解决的事堆出 1000 行的构造。模型会顺手改动它并不真正理解的注释和代码哪怕这些内容与当前任务毫无关系。把这三句话翻译成日常场景就是你说导出用户数据它默默选了 CSV 格式直接开写没人问你要不要 Excel你说修个 bug它改完 bug 还顺手重排了隔壁函数的缩进。这个项目的做法很直接不训模型而是用一份行为准则文件把这四种毛病在流程上堵住。 三分钟上手两种装法怎么选整个项目最核心的文件只有一个CLAUDE.md其余都是说明文档。安装分两条路。装法一Claude Code 插件推荐全项目生效在 Claude Code 里先添加市场再安装插件/plugin marketplace add forrestchang/andrej-karpathy-skills /plugin install andrej-karpathy-skillskarpathy-skills装完所有项目都能用这套准则适合装一次就忘的场景。装法二把文件放进单个项目新项目直接拉取curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md已有 CLAUDE.md 的项目则追加合并echo CLAUDE.md curl https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md CLAUDE.md用 Cursor 的话仓库里也带了项目规则文件CURSOR.md 里写了具体的配置方法。四条规则对应四个检查点准则不长读完只要几分钟。它没有堆术语而是把四条原则各自锚定到一个具体检查点上。编码前先亮底牌。要求模型把假设明确说出来不确定就问存在多种解读时列出选项让你挑而不是默默选一个开跑有困惑就停下来说清楚哪里不清楚。这一条针对的是替你做假设的毛病。默认取简单解。只实现被要求的功能不为单次使用建抽象层、不加没人要的可配置性、不为不可能发生的场景堆错误处理。还有一条很实用的自检写出来 200 行而 50 行就够的重写。判断标准也很朴素——资深工程师会不会说这写复杂了改动必须可追溯。每一行被修改的代码都应该能直接对应到你的请求。相邻代码哪怕写得再难看也不许顺手改进注意到无关的死代码可以提一句但不删。自己的改动造成的孤儿导入、废弃变量则必须清掉。把指令翻译成可验证的目标。这是四条里最值钱的一条。模糊指令会让模型反复回头问你可验证的标准则允许它自己循环验证直到通过加验证变成先写无效输入的测试再让它通过修 bug变成先写能复现 bug 的测试再修。多步骤任务还要求先给出带验证点的简短计划。 效果对比跑一遍会看到什么看一个最典型的场景——写个折扣计算。没加准则前你大概率收到这样的东西class DiscountStrategy(ABC): abstractmethod def calculate(self, amount: float) - float: ... class PercentageDiscount(DiscountStrategy): def __init__(self, percentage: float): ... def calculate(self, amount: float) - float: return amount * (self.percentage / 100)三十多行起步抽象、枚举、协议一套配齐而且说实话每一行都不算错——问题出在时机。加上准则后产出通常是def calculate_discount(amount: float, percent: float) - float: 计算折扣金额percent 取 0-100 return amount * (percent / 100)三行够用。等哪天真出现多种折扣类型再抽象也不迟。更多真实场景的对照可以看 EXAMPLES.md里面有添加用户数据导出这类需求的完整前后对比。怎么判断它真的起作用了效果不需要玄学判断看四个可观察的信号就行diff 里只剩下你请求的改动附带重构消失了第一版代码就是简单的不用为过度复杂化返工重写澄清问题出现在动手之前而不是犯错之后PR 干净最小没有路过顺手改的痕迹准则文件里也写明了这个标准diff 中的非必要改动变少重写变少问题前置。边界在哪什么时候可以放宽这份准则明确偏谨慎而非速度所以别指望它对每个任务都全套上。改个拼写错误、明显的一行修改用判断力放行就好不必让模型先声明假设再列验证点。它的设计目标是减少非平凡工作中的高代价错误而不是拖慢简单任务。另外它是设计来与你自己的项目规则合并使用的往现有 CLAUDE.md 里追加即可两者不冲突。 关键文件入口准则本体装它就够了CLAUDE.md项目说明与安装细节README.md真实场景示例EXAMPLES.md技能定义skills/karpathy-guidelines/SKILL.mdCursor 使用方式CURSOR.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创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考