跳到主要内容
知仓学习社ZHICANG

karpathy-principles

Pre-implementation gate covering think-first, simplicity, surgical edits, and verifiable goals. Use when starting implementation to verify the appro…

不碰外部(只输出文字)无严重或高危命中athola/claude-night-market

它会碰到什么

扫了多少6 个文本文件,31 KB
它会碰到什么不碰外部(只输出文字)
命中总数4 处
命中统计严重 0 · 高 0 · 中 0 · 低 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)

What This Is

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.

When To Use

  • Before starting any coding task larger than a typo
  • During code review, to name the failure mode you see
  • After writing a diff, to self-audit before claiming

done

  • When training a junior engineer to read agent diffs

When NOT to Use

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.

The Four Principles

1. Think Before Coding

**State assumptions. Surface confusion. Match tone to

evidence.**

  • If multiple interpretations of the request exist,

list them. Do not silently pick.

  • If a simpler approach exists, name it. Push back

when the simpler path is correct.

  • If something is unclear, stop and ask. Hidden

assumptions are the cheapest bug to prevent and the

most expensive to find later.

  • Make claims no stronger than the evidence supports.

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.

2. Simplicity First

**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)

  • No features beyond what was asked
  • No abstractions for single-use code
  • No flexibility or configurability that wasn't

requested

  • No error handling for impossible scenarios
  • If you wrote 200 lines and it could be 50, rewrite

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.

Record the Tradeoff (decision journal)

When this step settles a decision with real alternatives, record it to

docs/tradeoffs.md while the reasoning is live (draft and confirm):

  • If leyline is installed, invoke Skill(leyline:decision-journal) and append

a tradeoff entry (the decision, the options weighed, and what was

sacrificed; set phase to plan). Show the draft; append on

confirmation.

  • Fallback (leyline absent): append to docs/tradeoffs.md using the in-file

ENTRY TEMPLATE; assign the next TR-NNN id.

3. Surgical Changes

**Touch only what you must. Clean up only your own

mess.**

  • Do not improve adjacent code, comments, or

formatting

  • Do not refactor things that aren't broken
  • Match existing style even when you would do it

differently

  • If you notice unrelated dead code, mention it; do

not delete it

  • When your changes orphan imports or variables,

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.

4. Goal-Driven Execution

**Define verifiable success criteria. Loop until

verified.**

Transform vague tasks into checkable goals:

  • "Add validation" becomes "tests for invalid inputs

pass"

  • "Fix the bug" becomes "test reproducing the bug,

then make it pass"

  • "Refactor X" becomes "tests pass before and after"
  • "Make it faster" becomes "benchmark Y under N ms"

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.

The Karpathy Self-Check

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

  • modules/anti-patterns.md - eight named drift rails

with before/after diffs

  • modules/senior-engineer-test.md - the

three-question self-check battery

  • modules/verifiable-goals.md - vague-to-verifiable

reformulation template with worked examples

  • modules/tradeoff-acknowledgment.md - when the four

principles do not apply

References

  • references/source-attribution.md - Karpathy

primary citation, Forrest Chang derivation, license,

adjacent prior art

Related Skills

  • Skill(imbue:scope-guard) - worthiness formula and

branch budgets

  • Skill(imbue:proof-of-work) - Iron Law TDD gate
  • Skill(imbue:rigorous-reasoning) - sycophancy and

hidden-assumption guard

  • Skill(imbue:justify) - additive-bias diff audit
  • Skill(leyline:additive-bias-defense) - burden of

proof on every addition

  • Skill(conserve:code-quality-principles) - KISS,

YAGNI, SOLID

  • Skill(superpowers:test-driven-development) -

RED-GREEN-REFACTOR

  • Skill(superpowers:brainstorming) - generate

options before committing

  • See docs/quality-gates.md#skill-level-quality-gate-composition

for the full gate-skill federation graph (this skill

is the synthesis hub)

Required TodoWrite Items

When invoked as a pre-flight gate, create:

  • karpathy:assumptions-listed - principle 1 satisfied
  • karpathy:simplicity-checked - principle 2 satisfied
  • karpathy:trace-back-verified - principle 3 satisfied
  • karpathy:success-criteria-defined - principle 4

satisfied

Exit Criteria

  • Each of the four principles has been answered with a

concrete artifact (assumption list, scope rationale,

diff trace, verification plan).

  • The senior-engineer test was applied at least once.
  • Verifiable success criteria are written down before

the implementation begins.

  • The chosen approach and its simplicity tradeoff are

recorded to docs/tradeoffs.md (or the in-file

template) when real alternatives were weighed.

想直接用这个技能?

本站把开放许可(MIT / Apache 等)的技能按仓库打包整理到网盘,点一下转存到你自己的网盘,不用一个个从 GitHub 拉。许可未声明的技能只给原始仓库链接,不打包。