一个用于改进Claude Code行为的单一CLAUDE.md文件,源自Andrej Karpathy对LLM编码陷阱的观察。
一个基于Andrej Karpathy对大型语言模型(LLM)编码常见陷阱的观察而设计的`CLAUDE.md`配置文件,旨在通过单一文件显著提升Claude Code的行为质量。该文件针对LLM在编程时容易出现的四大问题——包括未经确认就替用户做假设、过度复杂化代码与API、在不相关的任务中意外修改代码或注释,以及缺乏对不确定性的澄清——提出了四项核心原则:先思考后编码(明确假设与权衡)、保持简洁(拒绝过度工程化)、进行手术式修改(只改动必要部分)以及目标驱动执行(优先通过测试验证)。通过将此文件放入项目根目录,开发者可以引导Claude Code在编码时更加严谨、克制且高效,特别适用于需要高质量代码生成与维护的软件开发场景。
💡 应用场景
这个项目最适合需要控制LLM编码行为、避免过度工程和意外破坏的场景,尤其适合代码审查、遗留系统维护和复杂需求开发。
代码审查与重构
问题:LLM生成的代码经常过度工程化,添加不必要的抽象和功能,导致代码膨胀难以维护。
方案:通过CLAUDE.md中的'Simplicity First'原则,强制Claude Code只生成最小可行代码,避免过度设计。
示例:当你让Claude写一个文件读取函数时,它不会自动添加缓存、错误重试、配置类等,而是直接返回简洁的read_file()实现。
遗留代码维护
问题:LLM在修改现有代码时,常常顺手'改进'无关的注释、格式或删除看似无用的代码,导致意外破坏。
方案:利用'Surgical Changes'原则,限制Claude只修改与任务直接相关的代码行,并仅清理自身产生的遗留。
示例:修复一个bug时,Claude不会同时重构相邻的变量命名或删除你多年前留下的注释,只专注修复目标函数。
复杂需求澄清
问题:LLM经常在模糊需求下自行假设并执行,导致结果偏离用户意图,需要多次返工。
方案:通过'Think Before Coding'原则,强制Claude在编码前显式列出假设、多解释和权衡,并主动询问不确定点。
示例:当你说'优化这个API'时,Claude会先问:'你更关心响应速度还是内存占用?是否需要兼容旧版本?'而不是直接开始改代码。
测试驱动开发
问题:LLM生成的代码缺乏可验证的成功标准,开发者难以判断任务是否真正完成。
方案:应用'Goal-Driven Execution'原则,将模糊任务转化为可验证的测试用例,循环执行直到通过。
示例:实现排序功能时,Claude会先写测试用例(如空数组、重复元素),再写实现,并持续运行测试直到全部通过。
📊 项目信息
- Stars
- ⭐ 149,580
- Forks
- 15,336
- 今日新增
- +3,507
- 排名
- #6
- 收录
- 总榜
- 趋势日期
- 2026年5月23日
- 最后推送
- 2026/4/20