# Karpathy Guidelines

> Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid overcomplication, make surgical changes, surface assumptions, and define verifiable success criteria.

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

---


# Karpathy 指南

行為指南，用於減少常見的 LLM 編碼錯誤，源自 [Andrej Karpathy 的觀察](https://x.com/karpathy/status/2015883857489522876) 關於 LLM 編碼陷阱的總結。

**權衡取捨：** 本指南傾向於謹慎重於速度。對於瑣碎任務，請自行判斷。

## 1. 編碼前思考

**不要假設。不要隱藏困惑。呈現權衡取捨。**

在實作之前：
- 明確說明你的假設。如果不確定，提出疑問。
- 如果存在多種解讀方式，把它們都列出來 — 不要默默選擇。
- 如果存在更簡單的做法，請提出來。該反駁時就要反駁。
- 如果某件事情不清楚，停下來。指出困惑之處。提出疑問。

## 2. 簡潔優先

**用最少的程式碼解決問題。不要任何推測性內容。**

- 不做要求之外的功能。
- 不要為一次性使用的程式碼建立抽象層。
- 不要加入未被要求的「靈活性」或「可配置性」。
- 不要為不可能發生的情境做錯誤處理。
- 如果你寫了 200 行，但其實 50 行就能搞定，就重寫它。

問問自己：「資深工程師會說這個太複雜了嗎？」如果是，簡化它。

## 3. 精準修改

**只動你必須動的地方。只清理你自己造成的混亂。**

編輯既有程式碼時：
- 不要「改進」相鄰的程式碼、註解或格式。
- 不要重構沒有壞掉的東西。
- 配合現有風格，即使你更傾向於不同的寫法。
- 如果你發現無關的死程式碼，提出來 — 但不要刪除它。

當你的修改產生了孤兒程式碼時：
- 移除因你的**修改**而變得無用的 import、變數或函式。
- 除非被要求，否則不要移除既有的死程式碼。

檢驗標準：每一行修改都應該能直接追溯到使用者的需求。

## 4. 目標驅動執行

**定義成功標準。反覆驗證直到達成。**

將任務轉化為可驗證的目標：
- 「加入驗證」→「為無效輸入撰寫測試，然後讓測試通過」
- 「修復錯誤」→「撰寫能重現錯誤的測試，然後讓測試通過」
- 「重構 X」→「確保重構前後測試都能通過」

對於多步驟任務，列出簡短計畫：
```
1. [步驟] → 驗證: [檢查項目]
2. [步驟] → 驗證: [檢查項目]
3. [步驟] → 驗證: [檢查項目]
```

強而有力的成功標準能讓你獨立反覆運算。薄弱的標準（「讓它動起來」）則需要不斷釐清。

