Claude Code: sechs hart erarbeitete Setup-Lektionen
Claude Code wird die Aufgabe fast immer zu Ende bringen. Das Modell ist selten der Engpass. Was variiert, ist der Aufwand: wie lange es dauert, wie viel manuelle Steuerung es braucht und wie oft Sie eingreifen und es zurück auf Kurs bringen müssen. Diesen Aufwand haben Sie tatsächlich in der Hand — und das meiste davon hängt an der Umgebung, in die Sie das Modell setzen, nicht am Prompt, den Sie schreiben.
Wir haben das auf dem langsamen Weg gelernt. Unsere Misserfolge lagen selten am Können des Modells; sie lagen daran, wie wir die Dinge darum herum aufgesetzt hatten. Dieses Aufsetzen ist verwirrend, weil fast alles, was Sie konfigurieren, eine Markdown-Datei ist, und auf den ersten Blick sehen sie alle gleich aus. Sind sie nicht. Das sind die Fehler, die wir gemacht haben, und wozu jede Datei eigentlich da ist.
Alles ist eine Markdown-Datei, aber nicht austauschbar
CLAUDE.md, Rules, Skills, Agents, Commands. Flacher Text, dieselbe Endung, alle in einem .claude/-Ordner, alle scheinbar austauschbar. Sind sie nicht. Jede wirkt in einem anderen Moment und gehorcht einem anderen Herrn:
| Datei | Was es wirklich ist | Wann es wirkt |
|---|---|---|
CLAUDE.md | Dauerhaftes Gedächtnis, beim Start geladen | Jede Sitzung, von oben bis unten |
.claude/rules/*.md | Eingegrenzte Anweisungen, pfadaktiviert | Wenn eine Aufgabe passende Dateien berührt |
.claude/skills/ | Wissen auf Abruf | Wenn ein Auslöser passt |
.claude/agents/*.md | Eingegrenzte Teilarbeiter, eigener Kontext | Wenn Sie oder Claude delegieren |
.claude/commands/ | Gespeicherte Prompts | Wenn Sie /name tippen |
settings.json (Hooks, Sandbox, Berechtigungen) | Deterministische Harness-Regeln | Mechanisch, bei jedem passenden Ereignis |
Das mentale Modell, das es für uns geklärt hat: Diese Dateien teilen sich in zwei Familien. Manche sind probabilistisch — das Modell liest sie und entscheidet, was zu tun ist (CLAUDE.md, Rules, Skills). Andere sind deterministisch — die Harness erzwingt sie, ob es dem Modell passt oder nicht (Hooks, die Sandbox, Berechtigungen). Hören Sie auf, sie als einen einzigen Stapel von Anweisungen zu behandeln, und der Großteil der Verwirrung löst sich auf.
1. Rules sind die am meisten unterschätzte Datei in Ihrem Repo
Der Irrtum, an dem wir am längsten festhielten: Rules seien bloß eine in mehrere Dateien zerlegte CLAUDE.md. Sind sie nicht, und der Unterschied ist der ganze Punkt.
Eine Rule trägt einen paths-Glob in ihrem Frontmatter. Sie bleibt schlafend, bis eine Aufgabe eine Datei berührt, die passt — dann lädt sie. Das ist Wissen, das genau dann eintrifft, wenn es relevant ist, und sich sonst zurückhält:
---
description: Konventionen für Astro-Seiten
paths:
- "src/pages/**"
---
Jede Seite importiert BaseLayout und setzt einen lokalisierten <title>.
Beim Bearbeiten von Seiten das `i18n-keys`-Skill nutzen, um ui.ts synchron zu halten.
Diese letzte Zeile ist der eigentliche Hebel. Skills aktivieren sich nach dem Ermessen des Modells, was in der Praxis manchmal bedeutet — nie ganz dann, wenn Sie es erwartet hätten. Ein Skill in einer pfadgebundenen Rule zu benennen, macht aus “manchmal” ein “immer dann, wenn ich in dieser Ecke der Codebasis arbeite”. Eine Rule kann ein Skill nicht für Sie ausführen, aber innerhalb eines engen Pfadbereichs ist die Anweisung an Claude, eines zu nutzen, zuverlässig genug, dass die Unterscheidung keine Rolle mehr spielt.
“Warum nicht eine CLAUDE.md im Unterordner?” — weil eine verschachtelte CLAUDE.md nur ihren eigenen Verzeichnisbaum abdeckt und nur an einem Ort liegen kann. Eine Rule für **/*.ts oder **/*.spec.ts feuert, wo immer diese Dateien liegen, und Testdateien liegen überall. Rules folgen dem Dateityp; verschachtelte Gedächtnisdateien folgen dem Ordner. Wenn das Anliegen über das Repo verstreut ist, hält nur die Rule Schritt.
2. Halten Sie die Leertaste gedrückt und sprechen Sie
Im Claude-Code-Terminal halten Sie die Leertaste gedrückt, um zu diktieren. Gedrückt halten, sprechen, loslassen — es wird direkt in den Prompt transkribiert. Gemacht ist es für die langen Prompts, in denen Sie Kontext setzen und Ihre Tippgeschwindigkeit, nicht das Modell, der Engpass ist.
Die ehrlichen Einschränkungen: Es funktioniert nur im CLI (nicht in VS Code, nicht über SSH, nicht in entfernten Containern) und es braucht ein Claude.ai-Konto, da das Audio serverseitig transkribiert wird. Innerhalb dieser Grenzen verändert es, wie Sie das Modell briefen — Sie hören auf, knappe Prompts zu schreiben, weil Tippen ermüdet, und fangen an, tatsächlich zu erklären, was Sie wollen.
3. Bei Agents geht es um Grenzen, nicht um Pferdestärken
Wenn ein Modell mit einer Million Tokens Kontext alles schnell erledigen kann, wozu dann die Arbeit auf Agents aufteilen? Weil Kontextgröße nicht das ist, was Agents Ihnen bringen. Sie bringen drei Dinge, die Kontextgröße nicht leisten kann:
- Isolation. Jeder Agent läuft in einem frischen, getrennten Kontextfenster. Ein lärmender Nebenauftrag — vierzig Dateien zu lesen, um eine Frage zu beantworten — geschieht dort drüben und verschmutzt nie Ihren Haupt-Thread. Die Schlussfolgerung kommt zurück; das Durcheinander nicht.
- Grenzen. Ein eng gefasster Werkzeugsatz und ein Ein-Aufgaben-Auftrag. Ein Agent, der nur lesen und prüfen kann, nie schreiben. Ein Agent, dessen einzige Aufgabe es ist, andere Agents zu beauftragen. Die Enge ist das Merkmal: Ein Arbeiter, der nicht vom Skript abweichen kann, tut es auch nicht.
- Kosten. Legen Sie das Modell pro Agent fest. Opus für die Architekturentscheidung, wo sich Urteilsvermögen auszahlt; Haiku für die billige mechanische Schleife — durch einen Browser klicken, Logs durchsuchen, Daten hin- und herschieben. Sie zahlen nur dort Senior-Tarife, wo Senior-Denken nötig ist.
Die Regel, die wir zuerst gebrochen haben: Agents sollten kein Wissen tragen. Fachwissen gehört in Rules und Skills, die jeder Agent auf Abruf laden kann. Ein Agent, der sein eigenes Wissen hortet, ist eine weitere Sache, die gepflegt werden muss, an einem weiteren Ort, der mit allem anderen aus dem Tritt gerät. Halten Sie Agents schlank — Zuständigkeiten und Grenzen, sonst nichts. Sie können auch mehrere gleichzeitig für wirklich unabhängige Arbeit ausschwärmen lassen, aber behandeln Sie das als Bonus, nicht als ihren Daseinszweck.
4. Die Sandbox ist eine Funktion, kein Nörgeln
Früher litten wir darunter, noch einen weiteren Bash-Befehl freizugeben, nur damit Claude irgendein Datum finden konnte. Das nervt. Es hat aber einen Grund: Claude kann technisch nicht garantieren, dass ein Befehl sicher ist, bevor er läuft.
Stellen Sie sich eine langlaufende Aufgabe vor, die eine Seite per Web-Fetch abruft, und diese Seite trägt eine Prompt-Injection. Die Aufgabe ändert leise die Richtung — sie führt Befehle aus, um die Sie nie gebeten haben, und meldet Ihre Daten an einen entfernten Server, ohne Bestätigung. Die Freigabeabfrage ist die Naht, an der Sie genau das abfangen würden.
Die Lösung besteht nicht darin, das Sicherheitsnetz abzuschalten. Sie ist die gesandboxte Laufzeitumgebung. Eine Sandbox erzwingt Allowlists für Dateisystem und Netzwerk auf Betriebssystemebene. Darin läuft Claude frei; die Grenze hält, selbst wenn das Modell zu etwas Törichtem überredet wird. Sie muss einmal bewusst konfiguriert werden — jeder Netzwerk-Host und jeder beschreibbare Pfad ist etwas, das Sie absichtlich gewähren. Soll npm install funktionieren? Setzen Sie die Registry auf die Allowlist:
{
"sandbox": {
"enabled": true,
"network": { "allowedDomains": ["registry.npmjs.org", "github.com"] },
"filesystem": { "allowWrite": ["./", "/tmp"], "denyRead": ["~/.ssh", "~/.aws"] }
}
}
Jetzt laufen die langweiligen, sicheren Befehle ganz ohne Abfrage, die gefährlichen kommen weiterhin nicht an Ihre Geheimnisse heran, und Claude arbeitet autonom, ohne alle dreißig Sekunden innezuhalten und Sie zu stören.
5. Lassen Sie es planen, bevor es eine einzige Zeile schreibt
Der scheinbar schnellste Weg ist, einen Prompt abzufeuern und das Modell laufen zu lassen. Es ist auch der Ort, an dem die meisten Unterbrechungen entstehen, die Sie hassen — das Modell legt sich früh auf den falschen Ansatz fest, und Sie verbringen die nächste Stunde damit, es zurückzuziehen.
Der Plan-Modus ist das Gegenmittel. Wechseln Sie mit Shift+Tab hinein, und Claude erkundet schreibgeschützt und legt Ihnen einen Plan vor, bevor es irgendetwas bearbeitet. Sie korrigieren den Ansatz, solange Korrigieren noch billig ist — auf dem Papier, in dreißig Sekunden — statt nachdem zweihundert Zeilen falsch geschrieben wurden. Das ist der größte Hebel auf den “wie viel manuelle Steuerung”-Aufwand vom Anfang dieses Beitrags. Fünf Minuten Plan lesen ersparen regelmäßig einen Nachmittag voller Korrekturen.
6. Ein größeres Kontextfenster ist kein klügeres
Eine Million Tokens Kontext verleiten dazu, alles hineinzukippen und das Modell sortieren zu lassen. Widerstehen Sie. Kontext ist Signal-Rausch-Verhältnis, kein größerer Eimer. Je mehr unzusammenhängende Historie Sie mitschleppen, desto unzuverlässiger folgt Claude den Anweisungen, auf die es wirklich ankommt — ein vollgestopftes Fenster lässt es nicht angestrengter denken, es macht es nur leichter, Ihre Regeln im Rauschen zu verlieren.
Also halten wir es sauber. /clear zwischen unzusammenhängenden Aufgaben — debuggen Sie kein CSS im selben Thread, in dem Sie gerade ein Datenbankschema entworfen haben. Lassen Sie die automatische Komprimierung veraltete Werkzeugausgaben kürzen, oder führen Sie /compact mit einem Fokus aus, wenn Sie steuern wollen, was überlebt. Und halten Sie CLAUDE.md schlank, unter rund zweihundert Zeilen — schieben Sie alles Pfadspezifische hinunter in Rules (siehe Lektion 1), damit es nur lädt, wenn es relevant ist. Das Widersinnige daran, sobald Sie es erlebt haben: Ein kleinerer, saubererer Kontext liefert meist eine bessere Antwort als ein riesiger.
Der rote Faden
Keine dieser sechs Lektionen handelt von cleverem Prompting. Sie handeln von der Umgebung: wohin das Modell gehen darf, welches Wissen wann lädt und wie viel Rauschen es durchwaten muss, um zum Punkt zu kommen. Claude Code wird die Aufgabe zu Ende bringen — das Setup entscheidet, was es Sie kostet, dorthin zu gelangen.
So arbeiten wir auch an Kundenprojekten: spezifikationsgeführte, prüfungsgebundene agentische Lieferung. Wenn Ihnen das nützt, nehmen Sie Kontakt auf.