Zuerst die Zahlen. Ob Karpathy Skills (Community-Regeln in CLAUDE.md) wirklich helfen, habe ich mit 10 echten Tickets geprüft — Claude Opus 4.8 fix, einzige Variable: Karpathy-Vierer an oder aus. Nach einer Woche bleiben hängen:
xcodebuild test-Grün in derselben Task-Gruppe: 5/10 → 8/10 (+30 pp). Median manuelles CR: 38 → 22 Min.
Enttäuschend war auch was — bei einer Einzeiler-Konstante halfen die Regeln kaum, dafür kam eine Extra-Runde „Annahmen klären“. Erfolg und Fail dokumentiere ich gleichermaßen, plus unsere finale CLAUDE.md zum Kopieren (für Suchende nach Claude Code Rules / Claude Code Prompt).
Warum Claude Code am Falschen herumfeilt
Es ist selten „schwaches Modell“, sondern ein anderes Optimierungsziel: schnell einen „fertig wirkenden“ Patch liefern — mehr Abstraktion, Nachbarfiles anfassen, Unklarheiten nicht nachfragen. Andrej Karpathy hat auf X vier chronische Muster benannt: loslegen ohne Klärung, Over-Engineering bei einfachen Specs, Nebenbei-Fixes in falschen Dateien, „fertig“ statt verifizierbarem Ziel.
Früh 2026 hat die Community das in ein CLAUDE.md von wenigen Dutzend Zeilen gepackt (forrestchang/andrej-karpathy-skills, kurz Karpathy Skills). Kein neues Runtime — vier Verhaltensverträge, die Claude Code jede Sitzung liest. Mich interessierte: I tested it — wie groß sind die Zahlen?
Was Karpathy Skills sind
„Skills“ im Namen, in der Praxis eine Projekt-Anweisungsdatei — nicht OpenAI-GPT-Skills, nicht OpenHuman-SKILL.md. Claude Code liest CLAUDE.md im Repo-Root (plus Plugin-Text global) bevor die erste Zeile Code entsteht und lenkt so Denken und Diff-Schnitt.
Die vier Prinzipien entsprechen dem Upstream-CLAUDE.md:
- Think Before Coding: Hypothesen benennen, Ambiguität zeigen, einfachere Wege vorschlagen — nicht still eine Interpretation wählen.
- Simplicity First: Minimale Lösung. Keine ungefragten Abstraktionen, Configs oder „für später“-Schichten.
- Surgical Changes: Nur task-relevante Zeilen. Kein Aufräumen/Formatieren nebenan. Eigener Dead Code weg; Legacy nur erwähnen.
- Goal-Driven Execution: Bugs/Validierung in prüfbare Ziele (wenn möglich failing Test zuerst). Mehrschritt: Verify pro Schritt.
Installation: Plugin /plugin install andrej-karpathy-skills@karpathy-skills oder Upstream-CLAUDE.md ins Root mergen — unten steht die kopierbare Endversion.
So habe ich gemessen
Variablen eng gehalten (Lauf auf Mac mini M4 Cloud Mac — tmux-Langlauf und xcodebuild ohne Abbruch; Zahlen lokal reproduzierbar):
- 10 echte Tickets: vier kleine Swift-Features, zwei Cross-File-Renames, zwei Test-Ergänzungen, zwei CI-Skripte.
- Modell fix:
claude-opus-4-8, Efforthigh, keine Minor-Upgrades in derselben Woche. - Einzige Variable: Kontrolle = alte
CLAUDE.mdohne Karpathy; Experiment = Vierer + zwei Teamregeln unten. - Jedes Ticket zweimal (A→B oder tageweise alternierend), gegen „guter Tag“-Bias.
Fünf Metriken, die im Review wirklich Zeit fressen:
| Metrik | Bedeutung | Erfassung |
|---|---|---|
| Scope creep | Anteil irrelevanter Dateien / Hunks | git diff --stat vs. deklarierte Pfade |
| Diff-Volumen | Ob ± Zeilen über Task-Nötiges hinausgehen | Zeilenzählung + manuell „ging kleiner“ |
| Erstes Grün | xcodebuild test / CI vor erstem PR |
Build-Log auf derselben Cloud-Mac-Maschine |
| Revert / Neu | Revert oder Agent-Neuwrite innerhalb 48 h nach Merge | Ticket + git log |
| Klärung vor Code | Hypothesen / Optionen vor Implementierung | Session-Export, manuell 0/1 |
Ergebnisse der 10 Tickets
Tabelle = Median (n=10, kein offizieller Benchmark). Eine Zahl merken: irrelevante Diffs −78 %.
| Metrik | Ohne Karpathy (Median) | Mit Karpathy (Median) | Relative Änderung |
|---|---|---|---|
| Anteil irrelevanter Pfad-Diffs | 18 % | 4 % | ca. −78 % |
| Task-relevante Diff-Zeilen (± gesamt) | 412 | 286 | ca. −31 % (weniger Over-Implementation) |
| Erstes CI-Grün | 5/10 | 8/10 | +30 pp |
| Revert / Neuwrite in 48 h | 3/10 | 1/10 | −67 % (kleines n, Größenordnung) |
| Klärung vor Code (0/1) | 2/10 | 7/10 | Think Before Coding auffällig |
18 % → 4 % irrelevant: oft noch viele Dateien, aber „Payment-Modul nebenbei formatiert“ verschwindet aus dem Diff — Surgical Changes. 5/10 → 8/10 erstes Grün vor allem durch Goal-Driven Execution: failing Tests vor der Implementierung.
Wo der Effekt am größten ist
- Cross-File-Rename / Signaturänderung: −78 % irrelevant fühlt sich am stärksten an; CR kein Minenfeld mehr.
- Leicht vage Mini-Features: Think Before Coding listet Hypothesen zuerst — Rework 3× → 1× (PAY-1842, AUTH-901).
- Tests + Implementierung: Erstes Grün steigt; „rot → grün“ in
CLAUDE.mdstabilisiert.
Orthogonal zum Code-Knowledge-Graph: Graph = wo ändern, CLAUDE.md = nichts Nebenbei anfassen.
Wo es kaum hilft (inkl. Fail)
Enttäuschend: eine Konstante. Ticket CFG-77: maxRetryCount 3→5, Pfad vorgegeben. Mit Karpathy fragte der Agent trotzdem: „Backoff-Strategie und Test-Defaults auch anpassen?“ — +1 Klärrunde, Diff genauso sauber wie ohne Regeln, +4 Min. gesamt. Bei kristallklaren Einzeilern ist die Vorsicht der Vierer ~0 Nutzen.
Sonst kaum Effekt:
- Team-
CLAUDE.mdschon lang und doppelt zu Karpathy — abnehmender Grenznutzen. - Keine Tests / kein
xcodebuild— Goal-Driven schließt nicht, „fertig“-Gefühl bleibt. - Nur Chat, nichts ins Repo —
CLAUDE.mdwird nicht geladen.
Meine finale CLAUDE.md (zum Kopieren)
Wer CLAUDE.md, Claude Code Rules oder Claude Code Prompt sucht, will ein paste-fertiges Artefakt. Karpathy-Vierer + zwei iOS-Teamregeln (Englisch im Block — Modell folgt dem Original; Erklärung hier auf Deutsch):
# CLAUDE.md — Karpathy rules + Vuncloud iOS team ## Think Before Coding Don't assume. Don't hide confusion. Surface tradeoffs. Before implementing: state assumptions; if unclear, ask; if a simpler approach exists, say so. ## Simplicity First Minimum code that solves the problem. Nothing speculative. No extra abstractions, config, or error handling for impossible cases. ## Surgical Changes Touch only what you must. Don't "improve" adjacent code or formatting. Match existing style. Mention unrelated dead code; don't delete unless asked. ## Goal-Driven Execution Transform tasks into verifiable goals (tests first when applicable). Multi-step: list plan with verify check per step. ## Vuncloud: Build Verification (custom) After code changes to Swift/ObjC targets, run before claiming done: xcodebuild test -scheme YourApp -destination 'platform=iOS Simulator,name=iPhone 16' Report exit code. If tests fail, fix or stop — do not claim success. ## Vuncloud: Path Allowlist (custom) Unless the user explicitly expands scope, only edit paths they named or standard paired test paths (e.g. Sources/Foo/ ↔ Tests/Foo/).
Upstream installieren:
/plugin marketplace add forrestchang/andrej-karpathy-skills /plugin install andrej-karpathy-skills@karpathy-skills # or per-project: curl -fsSL -o /tmp/karpathy-claude.md \ https://raw.githubusercontent.com/forrestchang/andrej-karpathy-skills/main/CLAUDE.md # merge paragraphs; do not overwrite existing CLAUDE.md
Cursor-Nutzer: .cursor/rules/karpathy-guidelines.mdc synchron halten, gleiche Semantik wie Claude Code. Beim Karpathy-Messen claude-opus-4-8 fixieren, nicht mit Modell-Upgrades vermischen — siehe Opus-4.8-Langlauf-Guide.
Cloud Mac für Langläufer (Claude Code → tmux → Mac mini)
Passender als OpenHuman, weil die Kette schließt: lange Claude-Code-Sitzung → tmux überlebt SSH → xcodebuild auf derselben Maschine → dediziertes Mac mini. A/B, Nacht-Agent, CR über Zeitzonen — Laptop-Sleep ist Gift. Cloud Mac nur für stabile Umgebung; Metriken lokal nachbaubar.
- tmux + Claude Code: Session bleibt bei SSH-Drop (Beispiele im Opus-4.8-Artikel).
- Persistentes
CLAUDE.md: Regeln und Monorepo zusammen, Config bleibt. - Goal-Driven hart: Build Verification in CLAUDE.md — Scheme muss laufen vor „done“.
- Mac-Cloud-CI auf derselben Maschine: ändern, sofort prüfen.
Skript-Snippets für den A/B-Lauf
TASK_ID="PAY-1842"
git diff --stat main...HEAD > "/tmp/${TASK_ID}-stat.txt"
git diff --name-only main...HEAD | wc -l | awk '{print "files_changed=" $1}'
# irrelevant paths: manual or allowlist compare
xcodebuild test -scheme YourApp -destination 'platform=iOS Simulator,name=iPhone 16' \
| tee "/tmp/${TASK_ID}-xcodebuild.log"
echo "exit=$?" >> "/tmp/${TASK_ID}-xcodebuild.log"
Tasks in Claude Code als Ziel-Prompt formulieren — trifft Prinzip vier:
Ziel: Nicht-Positive-Prüfung in CheckoutViewModel.validateAmount ergänzen. Verifikation: 1) Unit-Tests für 0, negative Werte und NaN; 2) xcodebuild test -scheme YourApp grün; Umfang: nur Sources/Checkout/ und zugehörige Tests/ — kein UI-Theming, keine anderen Module.
Häufige Fragen (FAQ)
Von Karpathy selbst? Die Ideen stammen aus X-Beobachtungen; CLAUDE.md ist Community (Forrest Chang u. a.). Karpathy hat Repos geteilt — README ist maßgeblich.
Konflikt mit Claude-Code-Memory / Projektbeschreibung? Mergen, nicht ersetzen. Vierer vorne, Team-Naming, Branches, Testbefehle hinten.
Ersetzt Code Review? Nein. Weniger Rauschen im Diff, aber Merge-Gates, menschliches CR und Security-Scans bleiben Pflicht.
Cursor-Nutzer? Kopie unter .cursor/rules/; bei gemeinsamem Git dieselbe Semantik wie Claude Code.
Prozentwerte zitierbar? Nur eigene A/B-Daten zitieren. Tabelle hier: Vuncloud-Pilot n=10, kein strenges Doppelblind.
Fazit
Karpathy Skills gemessen — nicht „wirkt irgendwie“. Zehn Tickets, Opus 4.8 fix: irrelevante Diffs ~78 % weniger, erstes CI-Grün +30 pp; Konstantenänderung fast nutzlos (CFG-77). Wertvoll ist CLAUDE.md im Repo — Karpathy-Vierer plus eigene Build- und Pfadregeln. Claude Code 7×24: Mac-mini Cloud Mac + tmux schließt natürlicher als OpenHuman — Agent, Terminal und Xcode gehören auf dieselbe macOS-Instanz.
Mac mini M4 mieten — Claude Code Langlauf & A/B
Vuncloud dediziertes Mac mini M4 Cloud Mac: persistentes CLAUDE.md, tmux, xcodebuild auf derselben Maschine — wie im Opus-4.8-Nacht-Agent-Setup.