andrej-karpathy-skills README

The project's README from github.com/multica-ai/andrej-karpathy-skills. As one markdown file: README.md.

Karpathy-Inspired Claude Code Guidelines

Check out my new project Multica — an open-source platform for running and managing coding agents with reusable skills.

Follow me on X: https://x.com/jiayuan_jy

A single CLAUDE.md file to improve Claude Code behavior, derived from Andrej Karpathy's observations on LLM coding pitfalls.

English | 简体中文

The Problems

From Andrej's post:

"The models make wrong assumptions on your behalf and just run along with them without checking. They don't manage their confusion, don't seek clarifications, don't surface inconsistencies, don't present tradeoffs, don't push back when they should."

"They really like to overcomplicate code and APIs, bloat abstractions, don't clean up dead code... implement a bloated construction over 1000 lines when 100 would do."

"They still sometimes change/remove comments and code they don't sufficiently understand as side effects, even if orthogonal to the task."

The Solution

Four principles in one file that directly address these issues:

Principle Addresses
Think Before Coding Wrong assumptions, hidden confusion, missing tradeoffs
Simplicity First Overcomplication, bloated abstractions
Surgical Changes Orthogonal edits, touching code you shouldn't
Goal-Driven Execution Leverage through tests-first, verifiable success criteria

The Four Principles in Detail

1. Think Before Coding

Don't assume. Don't hide confusion. Surface tradeoffs.

LLMs often pick an interpretation silently and run with it. This principle forces explicit reasoning:

2. Simplicity First

Minimum code that solves the problem. Nothing speculative.

Combat the tendency toward overengineering:

The test: Would a senior engineer say this is overcomplicated? If yes, simplify.

3. Surgical Changes

Touch only what you must. Clean up only your own mess.

When editing existing code:

When your changes create orphans:

The test: Every changed line should trace directly to the user's request.

4. Goal-Driven Execution

Define success criteria. Loop until verified.

Transform imperative tasks into verifiable goals:

Instead of... Transform to...
"Add validation" "Write tests for invalid inputs, then make them pass"
"Fix the bug" "Write a test that reproduces it, then make it pass"
"Refactor X" "Ensure tests pass before and after"

For multi-step tasks, state a brief plan:

1. [Step] → verify: [check]
2. [Step] → verify: [check]
3. [Step] → verify: [check]

Strong success criteria let the LLM loop independently. Weak criteria ("make it work") require constant clarification.

Install

Option A: Claude Code Plugin (recommended)

From within Claude Code, first add the marketplace:

/plugin marketplace add forrestchang/andrej-karpathy-skills

Then install the plugin:

/plugin install andrej-karpathy-skills@karpathy-skills

This installs the guidelines as a Claude Code plugin, making the skill available across all your projects.

Option B: CLAUDE.md (per-project)

New project:

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

Existing project (append):

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

Using with Cursor

This repository includes a committed Cursor project rule (.cursor/rules/karpathy-guidelines.mdc) so the same guidelines apply when you open the project in Cursor. See CURSOR.md for setup, using the rule in other projects, and how this relates to Claude Code.

Key Insight

From Andrej:

"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."

The "Goal-Driven Execution" principle captures this: transform imperative instructions into declarative goals with verification loops.

How to Know It's Working

These guidelines are working if you see:

Customization

These guidelines are designed to be merged with project-specific instructions. Add them to your existing CLAUDE.md or create a new one.

For project-specific rules, add sections like:

## Project-Specific Guidelines

- Use TypeScript strict mode
- All API endpoints must have tests
- Follow the existing error handling patterns in `src/utils/errors.ts`

Tradeoff Note

These guidelines bias toward caution over speed. For trivial tasks (simple typo fixes, obvious one-liners), use judgment — not every change needs the full rigor.

The goal is reducing costly mistakes on non-trivial work, not slowing down simple tasks.

License

MIT

andrej-karpathy-skills (multica-ai/andrej-karpathy-skills)

Searching Database…

这是什么?这是一个单独的 CLAUDE.md 文件(也可以作为 Claude Code 插件分发),其中包含四条准则。这些准则来源于 Andrej Karpathy 对 LLM 编程常见误区的观察,目的是让 Claude Code 行事更谨慎,避免过度设计。
这是插件、Markdown 文件,还是两者都是?两者都是。你可以通过插件市场把它作为 Claude Code 插件安装(推荐),也可以直接把这些准则复制或追加到你自己项目的 CLAUDE.md 文件中。此外还附带了一份对应的 Cursor 项目规则。
我该怎么把这些准则加到我的环境中?在 Claude Code 中添加插件市场并安装该插件,这样技能就能在你所有项目中使用;也可以在某个具体项目中手动新建或追加 CLAUDE.md。Cursor 用户可以通过已提交的 .cursor/rules/karpathy-guidelines.mdc 文件获得相同的规则。
这会替代我自己项目里的 CLAUDE.md 规则吗?不会。它的设计是与你现有的指令合并使用,而不是替代它们。作者还指出,对于拼写修正之类的简单任务,可以放宽这些准则的严格程度。
四条核心原则是什么?先想清楚再写代码、简单优先、精准修改、目标驱动执行。每一条都针对 Karpathy 描述过的一种具体失误,从悄悄假设错误的意图,到臃肿的抽象、无关的改动,再到未经验证的修复。
我怎么知道这些准则真的在起作用?你应该会注意到:代码改动中不必要的部分变少,因过度复杂化而重写的情况减少,在出错之后才提问题变成在实现之前先提出澄清问题,而且提交的 PR 更干净、更精简。
这也能用在 Cursor 上吗?可以。仓库中已提交了一份 Cursor 项目规则(.cursor/rules/karpathy-guidelines.mdc),因此在 Cursor 中打开该项目时同样适用这些准则,具体设置说明见 CURSOR.md。
这里的 Andrej Karpathy 是谁?他是一位 AI 研究者。他公开发表的关于 LLM 编程误区的观察(包括错误假设、臃肿的抽象以及未经要求的改动)直接启发了这份文件中的四条原则。
Creator
multica-ai
Size
<0.1 MB
Stars
220.4K
Updated
CommitApr 20
Age
8mo
Commits · 90 Days