技能介绍

本技能提供了一套 CLAUDE.md 文件指南,灵感来源于 Andrej Karpathy 对 LLM 编码陷阱的观察,旨在改善 Claude Code 的行为,减少错误、避免过度复杂化、提高代码质量。目标是获得更简洁、更精准、更符合预期的 AI 编码输出,显著减少无效重构和过度工程。适用于使用 Claude Code 进行编程的开发者。

适用场景

  • 任何使用 Claude Code 进行代码生成、编辑或重构的项目
  • 当你希望避免过度复杂的代码、不必要的抽象和意外修改时
  • 当你希望 Claude Code 在实现前澄清假设并展示权衡时
  • 在代码重构前希望先定义明确的成功标准和测试用例、把修改限制在目标范围内时

核心能力

1. 先思考再编码

  • 明确陈述假设 —— 如果不确定,询问而不是猜测
  • 呈现多种解释 —— 存在歧义时不要默默选择
  • 在必要时提出异议 —— 如果有更简单的方法,说出来
  • 困惑时停止 —— 指出不清楚的地方并请求澄清

2. 简洁优先

  • 只完成要求的功能,不添加额外功能
  • 不为一次性使用的代码创建抽象
  • 不添加未要求的「灵活性」或「可配置性」
  • 不为不可能的场景处理错误
  • 如果 200 行代码可以缩减为 50 行,重写它

检验标准:资深工程师是否会觉得过于复杂?如果是,请简化。

3. 精准修改

  • 只修改必须修改的部分
  • 不要「改进」相邻的代码、注释或格式
  • 不要重构没有问题的代码
  • 匹配现有风格,即使你更喜欢另一种方式
  • 如果发现无关的死代码,提出来 —— 不要删除它
  • 删除你的修改导致未使用的导入/变量/函数(但不要删除已有的死代码,除非被要求)

4. 目标驱动执行

  • 在实现前定义成功标准
  • 将命令式任务转化为可验证的目标
  • 对于多步骤任务,列出简要计划并附上验证步骤
↔ 左右滑动查看完整表格
不要这样做...而是这样做...
「添加验证」「编写无效输入的测试,然后让它们通过」
「修复 bug」「编写能复现它的测试,然后让它们通过」
「重构 X」「确保测试在重构前后都通过」

效果预览

Karpathy风格AI编码指南

工作方式

本技能提供了一套指南,Claude Code 在交互时会遵循这些指南。它鼓励明确推理、最小化代码更改和面向目标的验证。你可以将其与项目特定规则结合,放在 CLAUDE.md 文件中。

关键见解来自 Andrej Karpathy:

“LLMs are exceptionally good at looping until they meet specific goals... Don't tell it what to do, give it success criteria and watch it go.”

「目标驱动执行」原则体现的正是这一点:将命令式指令转化为带有验证循环的声明式目标。

权衡说明: 这些指南偏向于谨慎而非速度。对于简单任务(如修复拼写错误、明显的单行修改),请自行判断 —— 并非每次更改都需要完整的严谨性。目标是在非平凡工作上减少代价高昂的错误,而不是拖慢简单任务。

你需要提供

  • 一个 Claude Code 环境(本技能也包含用于 Cursor 的规则,参见相关文档)
  • 项目中的 CLAUDE.md 文件,用于承载这些指南;可与项目特定指令合并

你会获得

  • 差异中的不必要更改更少 —— 只出现请求的更改
  • 由于过度复杂化而重写的次数更少 —— 代码从一开始就简洁
  • 在实现之前提出澄清问题 —— 而不是在错误之后
  • 干净、最小的 PR —— 没有附带的重构或「改进」

使用示例

把它用作 CLAUDE.md 指南时,可以直接这样要求 Claude Code:

请根据Karpathy指南原则,先分析需求中的潜在歧义,列出你的假设,并在编写代码前确认实现方案。
在进行代码重构前,请先定义明确的成功标准和测试用例,确保修改仅限于目标范围,不触碰无关代码。
请审查当前代码实现,如果存在过度抽象或不必要的复杂逻辑,请按简洁至上原则进行精简。

与项目特定指令合并时,添加类似以下部分:

## 项目特定指南
- 使用 TypeScript 严格模式
- 所有 API 端点必须有测试
- 遵循 `src/utils/errors.ts` 中的现有错误处理模式