← 返回AI教程
🧠 Skills

Karpathy 编程准则使用教程

Karpathy 编程准则使用教程

用 AI 写代码,最让人头疼的不是它写得慢,而是它"自作主张"——不确认就开工、100 行能解决的写成 1000 行、顺手改一堆无关代码、改完也无法验证对不对。karpathy-skills 基于 Andrej Karpathy 对 LLM 编码陷阱的观察,用 4 条准则根治这些通病,通过单文件 CLAUDE.md 或插件形式加载,MIT 开源协议,零成本开箱即用。

官网地址:https://github.com/forrestchang/andrej-karpathy-skills


一、背景:LLM 编码的核心痛点

Karpathy 总结了大模型编码的典型问题,也是这套准则要解决的核心:

  1. 盲目假设:不经确认就自行解读需求,隐藏困惑,不暴露权衡

  2. 过度工程:代码臃肿、抽象泛滥,100 行能解决的问题写成 1000 行

  3. 无效改动:随意修改无关代码、注释、格式,带来非必要风险

  4. 目标模糊:只执行步骤不定义成功标准,无法验证交付结果


二、四大核心准则(实战详解)

以上痛点对应 4 条准则,每条准则解决一个具体问题。

1. 先思考再编码(Think Before Coding)

解决问题:错误假设、隐藏困惑、遗漏权衡
执行规则

  • 明确陈述假设,不确定就提问,绝不瞎猜

  • 存在歧义时列出多种解读,不私自做决定

  • 发现更简单方案时主动提出,合理反驳不合理需求

  • 遇到困惑立即停止,明确说明问题并请求澄清

实战示例
需求:“给用户数据加导出功能”
AI 会先确认:导出格式、数据范围、权限控制、是否异步处理,再开始编码。

2. 简洁优先(Simplicity First)

解决问题:过度复杂、臃肿抽象、冗余代码
执行规则

  • 只实现需求明确的功能,不添加额外 “speculative 特性”

  • 单次使用的代码不设计抽象,不做无必要的灵活配置

  • 不为不可能的场景编写异常处理

  • 能 50 行实现绝不写 200 行,以资深工程师的简洁标准自查

实战示例
需求:“写计算折扣的函数”
拒绝策略模式 + 工厂类的过度设计,直接用最简函数实现需求逻辑。

3. 精准修改(Surgical Changes)

解决问题:无关修改、随意重构、破坏原有代码
执行规则

  • 只修改与需求直接相关的代码,不 “顺手优化” 相邻内容

  • 不重构未损坏的模块,严格匹配项目现有代码风格

  • 发现无关死代码仅提示,不擅自删除

  • 只清理自身改动产生的冗余(导入、变量、函数),不碰原有冗余

校验标准:每一行修改都能直接追溯到用户需求。

4. 目标驱动执行(Goal-Driven Execution)

解决问题:目标模糊、无验证、虚假完成
执行规则

  • 将命令式任务转为可验证的成功标准

  • 多步骤任务必须给出分步计划 + 验证方式

  • 测试先行,用测试闭环保证交付质量

转换示例

  • “添加校验”→“编写无效输入测试用例并让其全部通过”

  • “修复 Bug”→“编写复现测试,修改代码后测试通过”

  • “重构 X”→“保证重构前后测试全部通过”

多步骤模板

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

三、安装与使用(两种方式)

理解准则内容后,选择以下任一方式安装,即可让 AI 自动遵循。

方式 A:Claude Code 插件(推荐,全局生效)

在 Claude Code 中直接执行以下命令:

# 添加插件市场
/plugin marketplace add forrestchang/andrej-karpathy-skills
# 安装准则插件
/plugin install andrej-karpathy-skills@karpathy-skills

安装后所有项目自动生效,无需额外配置。

方式 B:项目级 [CLAUDE.md](CLAUDE.md)(单项目生效,支持定制)

新项目(直接下载):

curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md

现有项目(追加到已有 [CLAUDE.md](CLAUDE.md)):

echo "" >> CLAUDE.md
curl https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md >> CLAUDE.md

将文件放在项目根目录,Claude Code 启动时自动读取。


四、如何判断准则已生效

安装后无需手动调用,当你观察到以下表现,说明准则已正常工作。

当你看到以下表现,说明 karpathy-skills 正在正常工作:

  1. Diff 干净:仅出现需求相关改动,无无关格式化、重构

  2. 少返工:一次产出简洁可用代码,无过度设计

  3. 先问后做:实现前主动确认歧义,而非出错后修正

  4. 可验证交付:输出包含测试结果、验证步骤,而非空泛完成提示


五、自定义与项目适配

通用准则之外,可在 CLAUDE.md 中追加项目专属规范,两者同时生效。

可将准则与项目专属规范合并,直接在 CLAUDE\.md 中追加项目规则,例如:

## 项目专属规范
- 启用 TypeScript strict 模式
- 所有接口必须编写单元测试
- 错误处理遵循 src/utils/errors.ts 规范

适配后 AI 会同时遵守通用准则与项目规范。


六、使用权衡与场景建议

  • 这套准则偏向谨慎而非速度,优先用于非 trivial 的开发任务(功能开发、Bug 修复、重构)

  • 简单场景(如修复 typo、单行修改)可酌情使用,不必严格遵循全流程

  • 核心价值:降低复杂任务的返工成本与线上风险,而非加速简单操作


七、总结

karpathy-skills 用 4 条准则把 AI 编码从”自由发挥”变为”可控交付”:先思考防瞎猜、简洁防臃肿、精准防乱改、目标防敷衍。建议从插件方式全局安装开始,在非 trivial 的开发任务中观察效果,再根据项目需要追加自定义规则。

返回列表