Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Pre-implementation gate covering think-first, simplicity, surgical edits, and verifiable goals. Use when starting implementation to verify the approach.
.claude/skills/athola-karpathy-principles/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 90% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 47% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 442% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 38% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 64% | 0% |
> 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. > > (Andrej Karpathy, on agentic coding failure modes)
A four-principle contract for reducing the most common LLM coding pitfalls. Compact entry-point. Each principle has a deeper-dive skill in night-market; this skill is the index, not the encyclopedia.
Derivation: distilled by Forrest Chang (forrestchang/andrej-karpathy-skills, MIT) from Karpathy's observations. Full attribution in references/source-attribution.md.
done
These principles bias toward caution over speed. For cases listed in modules/tradeoff-acknowledgment.md, use judgment: trivial fixes, exploratory spikes, documentation-only edits, and time-boxed prototypes.
State assumptions. Surface confusion. Match tone to evidence.
list them. Do not silently pick.
when the simpler path is correct.
assumptions are the cheapest bug to prevent and the most expensive to find later.
Calibrated tone beats confident hand-waving.
Deep dives: Skill(imbue:rigorous-reasoning) for the sycophancy guard, Skill(superpowers:brainstorming) for option generation, /spec-kit:speckit-clarify command for ambiguity drilldown.
Minimum code that solves the problem. Nothing speculative.
> They really like to overcomplicate code and APIs, > bloat abstractions. > > (Andrej Karpathy, on the same agentic-coding thread)
requested
it
Self-check: would a senior engineer say this is overcomplicated? See modules/senior-engineer-test.md.
Deep dives: Skill(imbue:scope-guard) for the worthiness formula and branch budgets, Skill(leyline:additive-bias-defense) for burden of proof on every addition, Skill(conserve:code-quality-principles) for the KISS / YAGNI / SOLID foundation.
When this step settles a decision with real alternatives, record it to docs/tradeoffs.md while the reasoning is live (draft and confirm):
Skill(leyline:decision-journal) and appenda tradeoff entry (the decision, the options weighed, and what was sacrificed; set phase to plan). Show the draft; append on confirmation.
docs/tradeoffs.md using the in-fileENTRY TEMPLATE; assign the next TR-NNN id.
Touch only what you must. Clean up only your own mess.
formatting
differently
not delete it
remove the orphans you created. Pre-existing dead code stays unless asked.
The trace-back test: every changed line should trace directly to the user's request.
Deep dives: Skill(imbue:justify) for additive-bias audits on diffs, Skill(leyline:additive-bias-defense) for the burden-of-proof contract, the bounded-discovery.md rule for read-budget caps.
Define verifiable success criteria. Loop until verified.
Transform vague tasks into checkable goals:
pass"
then make it pass"
For multi-step tasks, state a brief plan with verification per step. Strong success criteria let you loop independently. Weak criteria require constant clarification.
See modules/verifiable-goals.md for the full reformulation template.
Deep dives: Skill(imbue:proof-of-work) for the Iron Law (no implementation without a failing test first), Skill(superpowers:test-driven-development) for the RED-GREEN-REFACTOR loop.
Before you ship, four questions:
| Principle | Question | |-----------|----------| | Think Before Coding | Did I list assumptions, or did I guess silently? | | Simplicity First | Would a senior engineer call this overcomplicated? | | Surgical Changes | Does every changed line trace to the request? | | Goal-Driven Execution | Can I prove this is done with a check, not a feeling? |
Four "yes" answers means ship. Anything else means iterate.
modules/anti-patterns.md - eight named drift railswith before/after diffs
modules/senior-engineer-test.md - thethree-question self-check battery
modules/verifiable-goals.md - vague-to-verifiablereformulation template with worked examples
modules/tradeoff-acknowledgment.md - when the fourprinciples do not apply
references/source-attribution.md - Karpathyprimary citation, Forrest Chang derivation, license, adjacent prior art
Skill(imbue:scope-guard) - worthiness formula andbranch budgets
Skill(imbue:proof-of-work) - Iron Law TDD gateSkill(imbue:rigorous-reasoning) - sycophancy andhidden-assumption guard
Skill(imbue:justify) - additive-bias diff auditSkill(leyline:additive-bias-defense) - burden ofproof on every addition
Skill(conserve:code-quality-principles) - KISS,YAGNI, SOLID
Skill(superpowers:test-driven-development) -RED-GREEN-REFACTOR
Skill(superpowers:brainstorming) - generateoptions before committing
docs/quality-gates.md#skill-level-quality-gate-compositionfor the full gate-skill federation graph (this skill is the synthesis hub)
When invoked as a pre-flight gate, create:
karpathy:assumptions-listed - principle 1 satisfiedkarpathy:simplicity-checked - principle 2 satisfiedkarpathy:trace-back-verified - principle 3 satisfiedkarpathy:success-criteria-defined - principle 4satisfied
concrete artifact (assumption list, scope rationale, diff trace, verification plan).
the implementation begins.
recorded to docs/tradeoffs.md (or the in-file template) when real alternatives were weighed.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 15,563 | 15,880 | +2% | 1 | 1 | 0% | 2,399 | 4,554 | +90% | 0 | 0 | — |
case-02 | fail→fail | 1,750 | 7,606 | +335% | 1 | 1 | 0% | 208 | 2,967 | +1326% | 0 | 0 | — |
case-03 | pass→pass | 12,062 | 9,022 | -25% | 1 | 1 | 0% | 1,763 | 3,303 | +87% | 0 | 0 | — |
case-08 | pass→pass | 8,642 | 3,186 | -63% | 1 | 1 | 0% | 1,345 | 2,399 | +78% | 0 | 0 | — |
case-04 | pass→pass | 8,243 | 6,549 | -21% | 1 | 1 | 0% | 1,184 | 2,846 | +140% | 0 | 0 | — |
case-05 | fail→pass | 14,731 | 10,308 | -30% | 1 | 1 | 0% | 2,287 | 3,370 | +47% | 0 | 0 | — |
case-06 | pass→pass | 13,740 | 7,953 | -42% | 1 | 1 | 0% | 2,066 | 3,055 | +48% | 0 | 0 | — |
case-07 | fail→pass | 4,940 | 12,874 | +161% | 1 | 1 | 0% | 732 | 3,966 | +442% | 0 | 0 | — |
case-17 | pass→pass | 13,041 | 7,171 | -45% | 1 | 1 | 0% | 2,077 | 2,933 | +41% | 0 | 0 | — |
case-09 | fail→pass | 14,241 | 9,231 | -35% | 1 | 1 | 0% | 2,406 | 3,311 | +38% | 0 | 0 | — |
case-10 | fail→fail | 7,274 | 6,511 | -10% | 1 | 1 | 0% | 1,205 | 2,364 | +96% | 0 | 0 | — |
case-11 | pass→pass | 11,598 | 9,408 | -19% | 1 | 1 | 0% | 1,837 | 3,350 | +82% | 0 | 0 | — |
case-12 | fail→pass | 8,773 | 3,058 | -65% | 1 | 1 | 0% | 1,463 | 2,401 | +64% | 0 | 0 | — |
case-13 | fail→pass | 14,781 | 11,078 | -25% | 1 | 1 | 0% | 2,459 | 3,722 | +51% | 0 | 0 | — |
case-14 | pass→pass | 13,456 | 9,196 | -32% | 1 | 1 | 0% | 2,139 | 3,327 | +56% | 0 | 0 | — |
case-15 | pass→pass | 5,961 | 4,241 | -29% | 1 | 1 | 0% | 1,058 | 2,504 | +137% | 0 | 0 | — |
case-16 | fail→pass | 6,510 | 7,160 | +10% | 1 | 1 | 0% | 1,079 | 2,965 | +175% | 0 | 0 | — |
case-18 | pass→pass | 12,071 | 8,246 | -32% | 1 | 1 | 0% | 1,921 | 3,205 | +67% | 0 | 0 | — |
case-19 | fail→pass | 9,766 | 5,647 | -42% | 1 | 1 | 0% | 1,656 | 2,756 | +66% | 0 | 0 | — |
case-20 | pass→pass | 5,479 | 4,408 | -20% | 1 | 1 | 0% | 890 | 2,591 | +191% | 0 | 0 | — |
case-21 | fail→pass | 13,504 | 11,362 | -16% | 1 | 1 | 0% | 2,075 | 3,769 | +82% | 0 | 0 | — |
case-22 | pass→pass | 21,463 | 5,577 | -74% | 1 | 1 | 0% | 1,710 | 2,723 | +59% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +41 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.