karpathy-guidelines

karpathy-guidelines

热门

减少常见大语言模型编码错误的行为指南。在编写、审查或重构代码时使用,以避免过度复杂化、进行精准修改、明确假设并定义可验证的成功标准。

19万Star
2万Fork
更新于 2026/4/20
SKILL.md
readonly只读
name
karpathy-guidelines
description

减少常见大语言模型编码错误的行为指南。在编写、审查或重构代码时使用,以避免过度复杂化、进行精准修改、明确假设并定义可验证的成功标准。

Karpathy 指南

减少常见大语言模型编码错误的行为指南,源自 Andrej Karpathy 的观察 关于大语言模型编码陷阱。

权衡: 这些指南偏向谨慎而非速度。对于简单任务,请自行判断。

1. 先思考再编码

不要假设。不要隐藏困惑。明确权衡。

在实现之前:

  • 明确陈述你的假设。如果不确定,请提问。
  • 如果存在多种解释,请全部列出——不要默默选择。
  • 如果存在更简单的方法,请说出来。必要时提出反对。
  • 如果某件事不清楚,停下来。指出困惑之处。提问。

2. 简洁优先

解决问题的最小代码。不要推测性代码。

  • 不要超出要求的功能。
  • 不要为一次性代码创建抽象。
  • 不要添加未经要求的“灵活性”或“可配置性”。
  • 不要为不可能的场景添加错误处理。
  • 如果你写了200行而实际上只需要50行,请重写。

问问自己:“资深工程师会说这过于复杂吗?”如果是,请简化。

3. 精准修改

只修改必须修改的部分。只清理自己造成的混乱。

编辑现有代码时:

  • 不要“改进”相邻的代码、注释或格式。
  • 不要重构没有问题的部分。
  • 匹配现有风格,即使你会有不同做法。
  • 如果发现无关的死代码,提出来——但不要删除。

当你的修改导致代码孤立:

  • 移除因你的修改而不再使用的导入/变量/函数。
  • 除非被要求,否则不要移除已有的死代码。

检验标准:每一行修改都应直接追溯到用户的请求。

4. 目标驱动执行

定义成功标准。循环直到验证通过。

将任务转化为可验证的目标:

  • “添加验证” → “编写针对无效输入的测试,然后使其通过”
  • “修复 bug” → “编写重现该 bug 的测试,然后使其通过”
  • “重构 X” → “确保测试在重构前后均通过”

对于多步骤任务,陈述简要计划:

1. [步骤] → 验证:[检查项]
2. [步骤] → 验证:[检查项]
3. [步骤] → 验证:[检查项]

强成功标准让你能够独立循环。弱成功标准(“让它工作”)需要不断澄清。