360 Secure SkillHub
360 安全技能中心

karpathy-principles

面向编码任务的实施前门禁:要求先列假设、保持最简实现、只做外科式修改、并把模糊需求改写为可验证目标;附反模式、资深工程师自检、可验证目标、权衡取舍四个模块与四类待办项,并引用若干宿主内深层技能。纯文本规范,无可执行脚本。

athola
athola
热度 54.80
最近更新 2026-08-26 21:13:50
分类:开发依赖:纯提示词应用场景:代码生成 / 代码审查 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add nm-imbue-karpathy-principles
Metadata
name
karpathy-principles
description
Pre-implementation gate covering think-first, simplicity, surgical edits, and verifiable goals
version
1.9.8
triggers
["karpathy","coding-pitfalls","synthesis","entry-point","discipline","anti-overengineering","TDD","starting implementation to verify the approach"]
metadata
{"openclaw":{"homepage":"https://github.com/athola/claude-night-market/tree/master/plugins/imbue","emoji":"🦞","requires":{"config":["night-market.imbue:scope-guard","night-market.imbue:proof-of-work","night-market.imbue:rigorous-reasoning","night-market.leyline:additive-bias-defense","night-market.conserve:code-quality-principles"]}}}
source
claude-night-market
source_plugin
imbue

Night Market Skill — ported from claude-night-market/imbue. For the full experience with agents, hooks, and commands, install the Claude Code plugin.

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.

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.