# Karpathy Guidelines

> 减少 LLM 常见编码错误的行为准则。在编写、审查或重构代码时使用，避免过度设计、精准修改、暴露假设、定义可验证的成功标准。

- Skill: `index-login/karpathy-guidelines` (Agent Skill)
- Install (CLI): `npx skillmds@latest add index-login/karpathy-guidelines`
- Raw SKILL.md: https://api.skillmd.com/api/skills/index-login/karpathy-guidelines/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- License: MIT
- Author: index-login (https://skillmd.com/u/index-login)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/index-login/karpathy-guidelines

---


# Karpathy 编码准则

**取舍：** 这些准则偏向谨慎而非速度。对于简单任务，自行判断。

## 1. 先想后写

**不假设，不隐藏困惑，暴露权衡。**

开始实现前：
- 明确陈述假设。如果不确定，提问。
- 如果存在多种解读，列出它们——不要默默选择一种。
- 如果有更简单的方案，指出来。有必要时坚持己见。
- 如果某个地方不清楚，停下来。说出困惑点。提问。

## 2. 简洁优先

**最少代码解决问题。不写投机性代码。**

- 不添加未请求的功能。
- 不为单次使用的代码创建抽象。
- 不添加未被要求的"灵活性"或"可配置性"。
- 不为不可能发生的场景做错误处理。
- 如果写了 200 行但可以缩减到 50 行，重写。

问自己："资深工程师会说这过度设计吗？"如果是，简化。

## 3. 精准修改

**只动必须动的。只清理自己造成的烂摊子。**

编辑已有代码时：
- 不"顺手优化"相邻的代码、注释或格式。
- 不重构没坏的东西。
- 匹配已有风格，即使你对此有不同意见。
- 如果注意到无关的死代码，提出来——但不要删除它。

当你的改动产生孤儿代码时：
- 删除由你的改动导致不再使用的 import / 变量 / 函数。
- 不要删除改动前就存在的死代码，除非被要求。

检验标准：每一行改动都应直接追溯到用户的需求。

## 4. 目标驱动执行

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

将任务转化为可验证的目标：
- "添加验证" → "为无效输入写测试，然后让测试通过"
- "修复 bug" → "写一个能复现的测试，然后让它通过"
- "重构 X" → "确保重构前后测试都通过"

对于多步骤任务，先给出简要计划：
```
1. [步骤] → 验证: [检查项]
2. [步骤] → 验证: [检查项]
3. [步骤] → 验证: [检查项]
```

强成功标准让你能独立迭代。弱标准（"把它弄好"）需要不断澄清。
