Cindy Zhu.
Free guides
Power-user Claude

The CLAUDE.md file that makes Claude behave

Hey, it's Cindy ๐ŸŒฑ You commented CLAUDEMD, so here's the repo, the install, where the file has to live for Claude to read it, and my own starter rules.
btw the waitlist for AI System Club is now open! If you're keen on using AI to automate your content, video editing, job search, business or build AI agents, feel free to sign up (only if you want to hehe). Ps. the waitlist gets first dibs:)
what it is

One file, four rules

The repo is andrej-karpathy-skills, and the whole thing is one markdown file called CLAUDE.md. It has passed 200,000 stars on the organisation mirror, with the original sitting at forrestchang/andrej-karpathy-skills. It's MIT licensed and free.

The rules come from a post by Andrej Karpathy (co-founder of OpenAI, formerly director of AI at Tesla) listing what still goes wrong when you hand real work to a coding agent. His words: "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." Somebody turned that complaint into a file, and that file is what you're installing.

1. Think before coding Don't assume, don't hide confusion, surface tradeoffs. State assumptions out loud, present both readings when something is ambiguous, and stop and ask instead of guessing.
2. Simplicity first Minimum that solves the problem, nothing speculative. No unasked-for features, no abstractions for single-use code, no error handling for impossible scenarios.
3. Surgical changes Touch only what you must, clean up only your own mess. No drive-by improvements to code it wasn't asked about, and match the existing style even if it would do it differently.
4. Goal-driven execution Define success criteria, loop until verified. "Fix the bug" becomes "write a test that reproduces it, then make it pass", so it can check its own work instead of asking you.
๐Ÿ’ก Rule 4 is the sleeper. Karpathy's line is that models "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." Rule 4 is what turns your vague instruction into a criterion it can mark itself against, which is where most of the quality jump comes from.

pick one

Install it, two ways

Both take under three minutes. Option A drops the file into one project. Option B installs it once and it follows you into every project.

  1. ๐Ÿ“ Option A, per project. Open your terminal, move into your project folder, and run curl -o CLAUDE.md https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md. That's it, the file is in place.
  2. โž• Already have a CLAUDE.md? Append instead of overwriting, or you'll wipe what's already there: curl https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md >> CLAUDE.md. Open the file afterwards and check the two sections read sensibly together.
  3. ๐Ÿ”Œ Option B, everywhere at once. Inside Claude Code, run /plugin marketplace add forrestchang/andrej-karpathy-skills, then /plugin install andrej-karpathy-skills@karpathy-skills. Now the guidelines are available across all your projects without copying files around.
  4. โœ… Confirm it actually loaded. Start a session and run /context, then look under Memory files. If your CLAUDE.md isn't listed there, Claude cannot see it and nothing you wrote in it is doing anything.
๐Ÿ“Œ Not a coder, no terminal? Open the CLAUDE.md file on GitHub, click the copy button, and paste it into a plain text file named exactly CLAUDE.md in your project folder. Same result, no commands.

the plumbing

Where the file has to live

This is the part that quietly breaks for people: the name and the location both matter, and Claude Code will not go looking for a file you left somewhere reasonable-seeming. Anthropic's memory documentation lists the exact locations, and these are the two you actually need.

  1. ๐Ÿ“ Project rules go in ./CLAUDE.md. The root of the project folder, or ./.claude/CLAUDE.md if you prefer it tucked away. This is the one you commit, so your whole team gets the same behaviour.
  2. ๐Ÿ  Personal rules go in ~/.claude/CLAUDE.md. Preferences that apply to every project on your machine. This is where your own voice and workflow rules belong, so they follow you everywhere.
  3. ๐Ÿ™ˆ Private project notes go in ./CLAUDE.local.md. Loads alongside the project file, and you add it to .gitignore so it never gets committed. Good for anything you don't want teammates reading.
  4. ๐Ÿ“š They stack, they don't overwrite. Claude Code walks up the folder tree and concatenates everything it finds, user file first, project file after. So your personal rules and the project's rules both apply, with the more specific one read last.
โš ๏ธ CLAUDE.md is context, not a rulebook it's forced to obey. Anthropic is explicit that these files are read as context rather than enforced configuration, so vague or contradicting rules get followed unreliably. Write things a stranger could mark right or wrong ("use 2-space indentation", "run npm test before committing"), not moods ("write good code"). For something that must happen every time without exception, use a hook instead.

paste this under it

My starter rules

The four rules in the repo are aimed at code. Most of what Claude does for me is not code, so these are the lines I keep in my own ~/.claude/CLAUDE.md, written the same way: specific, checkable, and each one added because something annoyed me. Paste them under the repo's four and delete whatever doesn't match how you work.

๐Ÿ“„ add to your CLAUDE.md
## How to work with me

- Ask before assuming. If my request has two sensible readings, tell me both and ask which one, do not pick silently and build the wrong thing.
- One question at a time. If you need three things from me, ask the one that blocks you most and wait.
- Never say done until you have verified it. State how you checked, and if you could not check it, say "not verified" instead of implying you did.
- If I am about to do something that will not work, say so plainly before doing it. I would rather be told than be agreed with.

## Facts and sources

- Every stat, quote or factual claim comes with a real link I can open, plus the sentence in the source that backs it.
- If you cannot find a real source, write "I could not verify this" and leave the claim out. Do not fill the gap with something that sounds plausible.
- Never invent a tool, a library, a feature, a menu path or a person's quote. If you are not sure a feature exists, check before you describe it.
- Before you send, reread your own draft and delete or flag anything you cannot back up.

## Writing

- No em dashes anywhere. Use commas, full stops, brackets or colons instead.
- Sentence case for headings, no title case.
- Plain words over corporate ones. Do not use delve, leverage, robust, seamless, unlock, elevate or "it's not X, it's Y".
- Match the length I asked for. If I asked for three lines, do not send six.

## Working style

- Show me the actual thing, not a description of the thing. Real output over a summary of what you would produce.
- When you finish a task, end with what you changed and anything you were unsure about, in two lines maximum.
- If a task takes more than three steps, tell me the plan first and wait for a yes.
๐ŸŒฑ Keep the whole file under about 200 lines. Anthropic's own guidance is that longer files eat context and get followed less reliably, so a tight file genuinely outperforms a long one. When yours gets big, split it: personal rules stay in ~/.claude/CLAUDE.md, project-specific detail moves to that project's file.

not using claude code

The any-Claude version

CLAUDE.md is a Claude Code mechanism, so if you work in the Claude app the file itself does nothing for you. The equivalent is a project: a container with its own custom instructions that get applied to every chat inside it. Same idea, different door.

  1. ๐Ÿ“ Make a project. In the Claude app, open Projects in the sidebar and create one for the work you do most (your job, your business, your writing).
  2. ๐Ÿ“ Paste the rules into its instructions. Open the project's custom instructions and paste the starter rules above, minus anything code-specific. Every chat you start inside that project now runs with them.
  3. ๐Ÿ” Keep editing it, same habit. The whole value is in the maintenance loop, not the first paste. Every time Claude does something you have to correct, that correction becomes a line.

the actual habit

One line every time it annoys you

The repo file is a strong starting point, and it's still somebody else's file. What makes your Claude better than everyone else's is the twenty lines you add over the next few months, because those encode your work, your standards, and your specific pet peeves. The rule is boring and it works: the moment you type a correction you have typed before, that correction becomes a permanent line.

You don't even have to write it well. Have Claude turn the annoyance into a proper rule:

โœ๏ธ turn an annoyance into a rule
You just did something I have had to correct before, so let's make it permanent. Here is what happened: [describe it, for example "you gave me a five paragraph answer when I asked for a one line answer"].

Write me a single CLAUDE.md rule that prevents it, in the style of the rules already in my file: one line, specific, and written so it is obvious whether you followed it or not. Avoid vague words like clear, good or appropriate, because I cannot check those. Then tell me which file it belongs in (my personal one at ~/.claude/CLAUDE.md, or this project's CLAUDE.md) and why, and show me the exact line to paste.
๐Ÿ“Œ Review it once a month. Contradicting rules are the main reason a big CLAUDE.md stops working: when two lines disagree, Claude picks one, and you cannot predict which. Delete the stale ones as ruthlessly as you add the new ones.

Proof

The repo, andrej-karpathy-skills (MIT licensed, free)
The CLAUDE.md file itself, read it before you install it
Andrej Karpathy's original post, the source of the four rules
Anthropic's memory docs, file locations, load order and size guidance

the waitlist is now open

AI System Club is launching soon

Build AI systems with me through recorded lessons you can follow at your own pace. Join the waitlist for first access and the founding price.

btw this list gets first dibs
the moment doors open :)