Karpathy Claude Code Skills

Andrej Karpathy's observations on LLM coding failure modes, codified into four principles. Now shipped as a Claude Code plugin under the Multica org.

The canonical home moved from forrestchang/andrej-karpathy-skills to the Multica org, where the same four principles now ship as a packaged Claude Code plugin (not just a loose CLAUDE.md). Use the multica-ai repo as the current source.

The original repo (same author, now a 301 redirect) is still referenced for the raw CLAUDE.md URL:

What It Is

A CLAUDE.md derived from Andrej Karpathy's observations about how LLMs go wrong when coding. Four principles aimed at fixing silent assumptions and over-engineering.

The multica-ai version goes beyond a single file. It ships:

  • A Claude Code plugin (.claude-plugin/plugin.json + marketplace.json), installable via /plugin marketplace add then /plugin install.
  • A structured skill at skills/karpathy-guidelines/SKILL.md.
  • Cursor support: a committed project rule (.cursor/rules/karpathy-guidelines.mdc) plus a CURSOR.md guide.
  • An EXAMPLES.md and a Chinese README (README.zh.md).

Same four principles as the original, but distributed as a proper plugin rather than a file to copy.

The four failure modes it addresses:

  1. Silent assumptions instead of asking for clarification.
  2. Overcomplicating code with unnecessary abstractions.
  3. Unintentionally modifying unrelated code sections.
  4. Lacking clear success criteria, so iteration drifts.

Language

Markdown. A single CLAUDE.md file, language-agnostic in effect.

Install

Option A, as a Claude Code plugin (recommended):

/plugin marketplace add forrestchang/andrej-karpathy-skills
/plugin install andrej-karpathy-skills@karpathy-skills

Option B, append the CLAUDE.md to a project:

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

Customize with project-specific rules after appending. The raw URL still resolves through the redirect.

The Four Principles

1. Think Before Coding. State assumptions explicitly. Present alternative interpretations. Ask when ambiguous.

2. Simplicity First. Write minimal code solving only what was requested. No speculative features. No premature abstractions.

3. Surgical Changes. Edit only what the request requires. Match existing style. Don't refactor working code.

4. Goal-Driven Execution. Turn vague imperatives into verifiable success criteria. Lets the model loop toward a measurable target.

Value

Key insight from the repo: "LLMs are exceptionally good at looping until they meet specific goals." Clear success metrics beat step-by-step instructions. Tell the model what "done" looks like, then let it iterate.