karpathy-principles
Pre-implementation gate covering think-first, simplicity, surgical edits, and verifiable goals. Use when starting implementation to verify the appro…
它会碰到什么
这一栏是扫描器报的事实,不是结论。命中多不等于有毒(安全工具、规则库、示例脚本本来就会包含危险写法),命中少也不等于干净。它和你手上的凭据、文件、网络有什么关系,需要你自己看。
技能内容
> 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.mdusing 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 gateSkill(imbue:rigorous-reasoning)- sycophancy and
hidden-assumption guard
Skill(imbue:justify)- additive-bias diff auditSkill(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 satisfiedkarpathy:simplicity-checked- principle 2 satisfiedkarpathy:trace-back-verified- principle 3 satisfiedkarpathy: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 拉。许可未声明的技能只给原始仓库链接,不打包。
它属于哪个仓库
plugins/imbue/skills/karpathy-principles/SKILL.md同一个仓库里的其他技能
- claude-code-plugin-reference
- night-market-architecture-contract
- night-market-build-and-env
- night-market-change-control
- night-market-collective-memory
- night-market-completion-integrity-campaign
- night-market-config-catalog
- night-market-debugging-playbook
- night-market-diagnostics-toolkit
- night-market-docs-and-writing
- night-market-failure-archaeology
- night-market-model-and-harness-updates