Skip to main content
Claude Code

Karpathy CLAUDE.md Skills: I Installed It. Real Verdict

How to install the viral Karpathy CLAUDE.md in a real project — and how I adapted its four principles inside this blog's own checked-in CLAUDE.md.

7 min
Read time
1,362
Words
Published
Last revised
Engr Mejba Ahmed

Written by

Engr Mejba Ahmed

Share Article

Karpathy CLAUDE.md Skills: I Installed It. Real Verdict
Karpathy CLAUDE.md Skills: I Installed It. Real Verdict - Video thumbnail

I asked Claude Code to fix a single null check in a Laravel service class. One line — a null-coalesce instead of a nested if. It came back with a 214-line diff: new class constants, a renamed method, four unrelated refactors in files I had not opened, and a block comment explaining why the previous author was wrong. The null check was in there somewhere, correct, buried in a reorganization nobody asked for.

That failure mode — and three siblings of it — is what the Karpathy CLAUDE.md repo exists to stop. My verdict up front, after adopting it in three codebases: the file is genuinely good, but installing it verbatim is the beginner move. The value is the four named principles; the work is adapting them to your project. I know because the adapted version is checked into this blog's repository, and I will show you what the adaptation looks like.

Karpathy CLAUDE.md Skills: I Installed It. Real Verdict - overview of what the repo is and why it went viral, the four principles, and what each one actually fixes

What the repo is and why it went viral

The project is forrestchang/andrej-karpathy-skills — created in late January 2026 by developer Forrest Chang, not by Karpathy himself. The principles are distilled from Andrej Karpathy's public commentary on LLM coding failure modes: the model as a brilliant, over-eager junior collaborator with encyclopedic knowledge and very little taste, prone to doing more than asked and reporting success regardless.

The star growth was absurd for what is essentially one markdown file — tens of thousands of stars within weeks of launch, six figures within months, plus an organization mirror that pushed the combined count past 200K. People do not star a 65-line file at that rate because it is clever. They star it because it names, precisely, the four behaviors every working engineer had been cursing at their AI assistant about, and packages the fix in the one format Claude Code natively respects: instructions in the context window.

The deliverable comes in several forms — a drop-in CLAUDE.md, a Claude Code plugin manifest, a skills directory, and Cursor rules — all carrying the same four principles.

The four principles, and what each one actually fixes

1. Think Before Coding. Forces a stated plan — assumptions, interpretation, approach — before any edit. Fixes the failure where the model commits to its first plausible reading of an ambiguous request and builds confidently on sand.

2. Simplicity First. Minimum code that solves the actual problem; no speculative abstraction, no "while we're here" hardening. Fixes the 214-line-diff disease directly.

3. Surgical Changes. Touch only what the task requires; match existing style; leave the campsite as you found it minus the bug. Fixes drive-by refactors and the diff noise that makes AI-assisted PRs unreviewable.

4. Goal-Driven Execution. Define what "done" means, verify against it, and report honestly — including failures. Fixes the model's tendency to declare victory on code it has not run.

Read as a set, they are not really coding rules. They are a junior engineer's first performance review, written down. That is why they generalize across stacks — and also why, as I will get to, they occasionally need overriding.

Installing it: the three paths

Path A — plugin install. Add the repo's marketplace and install through /plugin. Cleanest for trying it out; the principles arrive as skills without touching your files.

Path B — CLAUDE.md drop-in or merge. Copy the file to a fresh project root, or — the realistic case — append its principles section beneath your existing CLAUDE.md content. Your project rules stay on top and keep precedence; the behavioral principles sit below as a distinct section. This is the path I use everywhere, for a reason the next section makes concrete.

Path C — Cursor rules. The repo ships the same content as Cursor-format rules for teams on that editor. Same principles, different delivery.

Whichever path: verify the install by asking the agent to state its active coding-behavior principles, then hand it a deliberately scope-creepy task ("fix X, and while you're there, Y") and watch whether it separates the work. If the diff stays surgical, it took.

The real work: merging it with a project that already has opinions

Here is the part no install guide covers, demonstrated from production. This blog's repository has carried a Karpathy + Project Workflow section in its checked-in CLAUDE.md through months of daily agent work. It does not copy the viral file — it specializes each principle against this codebase:

  • Think Before Coding became: before implementing, state the domain (Blog / Shop / Website / core), name the sibling file you are patterning from, and list the concrete verify commands. Generic "think first" produces generic thinking; forcing the plan into project vocabulary produces plans that survive contact with the code.
  • Goal-Driven Execution became actual commands: php artisan test --filter=<TestName>, vendor/bin/pint, static analysis at level 8, load the page in the browser for UI changes — with domain-specific swaps (Filament changes get exercised in the admin; sitemap-relevant changes trigger the observer). "Verify your work" is a wish; a command list is a contract.
  • Simplicity First got explicit limits. This is the adaptation I would defend hardest. Applied naively to a Filament admin, Simplicity First strips form helper texts, hints, and translation calls as "unnecessary" — which breaks UX and a six-locale setup in the name of minimalism. My CLAUDE.md carries a guardrails block saying exactly that: keep ->helperText(), never strip ->translateLabel(), keep form-request validation even where Filament also validates. Principles need veto clauses where your architecture knows better.
  • A skip-ceremony list. Four-principle deliberation on a typo fix is waste. The file lists the task classes — formatting-only changes, translation keys, seed tweaks — where the ceremony is explicitly waived. Discipline you cannot afford to apply everywhere will quietly stop being applied anywhere, so scope it honestly.

That is the verdict in practice: the repo's four names are the durable contribution. The verbatim file is a starting template. Three codebases in — a client Laravel platform, a Next.js side build, and this blog's content pipeline — the adapted versions have all diverged from the original, and all four principle names survive in each. Names are what the model reliably respects; the specifics beneath them should be yours.

Where it wins, where it does not

Wins: maintenance work on mature codebases (surgical changes shine), ambiguous tickets (stated assumptions surface misreads early), and any team reviewing AI-assisted PRs (diff noise drops immediately — the effect you notice in the first week).

Does not: greenfield exploration, where Simplicity First can under-build scaffolding you know you will need; and design-heavy work, where "minimum code" and "good interface" genuinely conflict. It also does not replace workflow tooling — the principles govern how the agent codes, not what process it follows. Process enforcement is a different layer, which is why this file coexists in my setup with the workflow skills covered in my skills-worth-installing shortlist, and why some people extend the Karpathy base with memory layers — I tested one such extension in Super Skills and Karpathy-style memory.

The wider context is worth a read too: Karpathy's own framing of where software authorship is going explains why one markdown file can reshape a tool's behavior at all — my notes on that are in Karpathy and the Software 3.0 builders. And if you are deciding what else belongs in the same context window, the plugins I actually run daily is the companion inventory.

Quick answers

Do I need the plugin or just the file? Just the file works. The plugin is convenient for multi-project consistency; the drop-in gives you the merge control that matters long-term.

Does it conflict with existing skills or CLAUDE.md rules? Your file's earlier sections take practical precedence, but overlapping instructions dilute each other — merge deliberately, do not just concatenate forever.

Is it worth it on a solo project? That is where I noticed the difference most. Nobody reviews a solo dev's AI diffs; these principles are the closest thing to a reviewer in the loop.

The repo earned its stars by naming the problem well. Earn your copy of it by making the names specific to your codebase — the adapted section sitting in this blog's repository has paid for itself every working day since it landed.

The three projects running this adapted workflow are shipping real software with it — you can judge the results yourself on my projects page.

Advertisement
Coffee cup

Enjoyed this article?

Your support helps me create more in-depth technical content, open-source tools, and free resources for the developer community.

Related Topics

Engr Mejba Ahmed

Engr Mejba Ahmed

Engr. Mejba Ahmed builds AI-powered applications and secure cloud systems for businesses worldwide. With 8+ years shipping production software in Laravel, Python, and AWS, he's helped companies automate workflows, reduce infrastructure costs, and scale without security headaches. He writes about practical AI integration, cloud architecture, and developer productivity.

Related Articles

Browse All

Comments

Leave a Comment

Comments are moderated before appearing.

Learning Resources

Expand Your Knowledge

Accelerate your growth with structured courses, verified certificates, interactive flashcards, and production-ready AI agent skills.

Sample Certificate of Completion

Sample certificate — complete any course to earn yours

Engr Mejba Ahmed

Engr Mejba Ahmed

AI assistant · trained on my work

👋

Hey there!

Quick Actions

WhatsApp Direct line to me

Chat on WhatsApp

+880 1723 741224 · Replies within the hour on working days

Popular Questions

Engr Mejba Ahmed is connected
Engr Mejba Ahmed is typing...
Engr Mejba Ahmed avatar

✉ Want me to follow up? Drop your email

Engr Mejba Ahmed avatar

📞 Connect Directly

Choose how you'd like to reach me

WhatsApp

+880 1723 741224

Email

mejba.13@gmail.com

✓ Details sent! I'll get back to you shortly.

Powered by OpenAI

335+

Blog Posts

25

AI Courses

63

Projects

Services & Expertise

Pricing & Process

Learning & Resources

Connect & Support