Karpathy Principles — Precision Coding#
Core Philosophy#
LLM coding四大通病:
- 做错误假设(不确定就蒙头跑)
- 代码越来越臃肿(100行能搞定写1000行)
- 误改无关代码
- 没有验证标准
Four Principles#
1. Think Before Coding#
不假设、不藏困惑、主动暴露权衡。
- 不确定的地方 → 先问,不要猜
- 遇到歧义 → 列出方案,让用户选
- 遇到不清楚 → 停下来,说清楚再动手
2. Simplicity First#
用最少的代码解决问题。不做 speculative 的事。
- 没被要求的功能,一个字都不加
- 没被用到的抽象,一个都不写
- 写完自问:"高级工程师会觉得这过度设计吗?" → 会就重写
- 200行能写成50行 → 重写
3. Surgical Changes#
只碰该碰的。只清理自己造成的垃圾。
- 不"顺便"优化无关代码/注释/格式
- 不重构没有坏掉的东西
- 匹配已有风格
- 验证标准:每一行改动都要能追溯到用户的原始请求
4. Goal-Driven Execution#
定义成功标准,循环直到验证通过。
把命令式任务变成可验证的目标:
而不是...变成..."修这个 bug""写一个能复现它的测试,然后让它通过""添加验证""写无效输入的测试,然后让它们通过""重构 X""确保重构前后测试都通过"
When to Apply#
任务类型是否启用完整流程简单 typo 修复❌ 直觉判断明显 one-liner❌ 直觉判断新功能/复杂重构✅ 完整四原则不确定用户意图✅ Think Before Coding代码突然变得很复杂✅ Simplicity First要改多个文件✅ Surgical ChangesBug 修复✅ Goal-Driven Execution
详细原则与案例:见 references/karpathy-principles.md