If you use Claude Code (or any AI coding agent) daily, you've probably run into these problems:
These aren't random bugs — they're well-documented patterns. Andrej Karpathy (former Director of AI at Tesla, OpenAI co-founder) called them out directly in a post on X, describing how LLMs "make wrong assumptions on your behalf and just run along with them without checking," and how they "really like to overcomplicate code and APIs, bloat abstractions... implement a bloated construction over 1000 lines when 100 would do."
A developer turned those observations into a single, install-and-forget plugin: andrej-karpathy-skills.
The plugin loads a behavioral instruction set into Claude Code that's built around four core principles:
1. Think Before Coding Forces the model to state assumptions out loud, present alternative interpretations when something is ambiguous, push back when warranted, and stop to ask instead of silently guessing.
2. Simplicity First Caps scope to exactly what was asked. No speculative features, no abstractions for one-off code, no unrequested "flexibility." The internal test it applies: "Would a senior engineer say this is overcomplicated?" If yes, it rewrites.
3. Surgical Changes Limits edits to only what the task requires. No "cleaning up" surrounding code, no refactoring things that aren't broken, no incidental rewrites of comments it doesn't fully understand.
4. Goal-Driven Execution Converts vague instructions into verifiable success criteria — write a failing test, then fix it; confirm tests pass before and after a refactor — so the model can iterate on its own instead of needing constant hand-holding.
In practice, teams using this plugin report:
GitHub (current, maintained version): https://github.com/multica-ai/andrej-karpathy-skills
Note: the plugin originally lived at
forrestchang/andrej-karpathy-skills. That repo now redirects to the Multica org above, which ships it as a full Claude Code plugin with a structured skill, Cursor support, and examples — not just a loose file.
If you're running Claude Code on a fresh VPS (Ubuntu/Debian, default setup, Claude Code already installed), you have two options:
Inside the Claude Code CLI, run:
/plugin marketplace add forrestchang/andrej-karpathy-skills
/plugin install andrej-karpathy-skills@karpathy-skills
That's it. The guidelines now apply automatically across every project on that VPS.
If you'd rather scope it to a single project instead of installing it globally, drop the rules straight into that project's CLAUDE.md:
cd /path/to/your/project
# if CLAUDE.md doesn't exist yet:
curl -L https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md -o CLAUDE.md
# if CLAUDE.md already exists, append instead:
echo "" >> CLAUDE.md
curl -L https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md >> CLAUDE.md
Cursor users get the same behavior automatically — the repo ships a committed project rule at .cursor/rules/karpathy-guidelines.mdc, so just opening the project in Cursor picks it up.
This isn't a magic fix for AI coding — it's a guardrail. It won't make Claude Code smarter, but it will make it more honest about what it doesn't know, and more disciplined about touching only what you asked it to touch. For a two-command install, that's a high-leverage trade.
This article was AI-assisted and edited by Mervin. All facts were verified against primary sources before publishing.