4 4
5# Best Practices für Claude Code5# Best Practices für Claude Code
6 6
7> Tipps und Muster, um das Beste aus Claude Code herauszuholen – von der Konfiguration Ihrer Umgebung bis zur Skalierung über parallele Sessions.7> Holen Sie mehr aus Claude Code heraus: Sagen Sie Claude, was es nicht sehen kann, geben Sie ihm eine Prüfung zum Ausführen, und setzen Sie die Regeln durch, die keine Ausnahmen haben dürfen.
8 8
9Claude Code ist eine agentengesteuerte Coding-Umgebung. Im Gegensatz zu einem Chatbot, der Fragen beantwortet und wartet, kann Claude Code Ihre Dateien lesen, Befehle ausführen, Änderungen vornehmen und autonom Probleme lösen, während Sie zuschauen, umleiten oder sich ganz zurückziehen.9Claude Code ist so aufgebaut, dass in den meisten Fällen bereits Ihr erster einfacher Prompt in einer neuen Sitzung das Richtige tut, ohne dass Sie etwas einrichten müssen.
10 10
11Dies ändert Ihre Arbeitsweise. Anstatt Code selbst zu schreiben und Claude zur Überprüfung zu bitten, beschreiben Sie, was Sie möchten, und Claude findet heraus, wie es zu bauen ist. Claude erkundet, plant und implementiert.11Zum Beispiel:
12 12
13Aber diese Autonomie bringt immer noch eine Lernkurve mit sich. Claude arbeitet innerhalb bestimmter Einschränkungen, die Sie verstehen müssen.13* Damit Befehle sicher ausgeführt werden, ohne dass Sie jeden einzeln genehmigen, starten neue Terminal- und VS Code-Sitzungen im [Auto-Modus](https://code.claude.com/docs/de/permission-modes.md#eliminate-prompts-with-auto-mode), in dem ein Klassifikator alles Riskante prüft, bevor es ausgeführt wird.
14* Damit Ihre Hauptkonversation fokussiert bleibt, während unabhängige Arbeit parallel erledigt wird, delegiert Claude an Subagenten und meldet sich nur, wenn es nötig ist.
15* Damit eine lange Sitzung weiterläuft, ohne dass Sie sich darum kümmern müssen, wird Ihre Konversation automatisch komprimiert, bevor sich das Kontextfenster füllt.
14 16
15Dieser Leitfaden behandelt Muster, die sich in den internen Teams von Anthropic und bei Ingenieuren, die Claude Code in verschiedenen Codebases, Sprachen und Umgebungen nutzen, als wirksam erwiesen haben. Informationen zur Funktionsweise der agentengesteuerten Schleife finden Sie unter [How Claude Code works](https://code.claude.com/docs/de/how-claude-code-works.md).17Diese Seite behandelt, was zu tun ist, wenn die Standardeinstellungen nicht ausreichen. Das passiert meist, wenn Ihr Projekt Wissen, Regeln oder Einschränkungen hat, die Claude allein aus dem Code nicht erkennen kann:
16 18
17***19* Ein Deploy-Prozess, der nur im Kopf einer Person existiert
20* Eine Datei, die niemals gelesen werden darf
21* Eine Prüfung, die bestanden sein muss, bevor etwas als erledigt gilt
22* Ein Budget, das Sie einhalten müssen
18 23
19Die meisten Best Practices basieren auf einer Einschränkung: Claudes Kontextfenster füllt sich schnell, und die Leistung verschlechtert sich, wenn es sich füllt.24Keine Standardeinstellung kann diese Dinge über Ihr Projekt wissen, daher lohnt sich hier ein wenig Einrichtung auf Ihrer Seite.
20 25
21Claudes Kontextfenster enthält Ihre gesamte Konversation, einschließlich jeder Nachricht, jeder Datei, die Claude liest, und jeder Befehlsausgabe. Dies kann sich jedoch schnell füllen. Eine einzelne Debugging-Sitzung oder Codebase-Erkundung könnte Zehntausende von Tokens generieren und verbrauchen.26Wenn eine Sitzung nicht so verläuft, wie Sie es erwartet haben, liegt es fast immer an einem dieser Punkte:
22 27
23Dies ist wichtig, da die LLM-Leistung abnimmt, wenn sich der Kontext füllt. Wenn das Kontextfenster voll wird, könnte Claude anfangen, frühere Anweisungen zu „vergessen“ oder mehr Fehler zu machen. Das Kontextfenster ist die wichtigste Ressource, die verwaltet werden muss. Um zu sehen, wie sich eine Session in der Praxis füllt, [schauen Sie sich eine interaktive Anleitung](https://code.claude.com/docs/de/context-window.md) an, was beim Start geladen wird und was jedes Datei-Lesen kostet. Verfolgen Sie die Kontextnutzung kontinuierlich mit einer [benutzerdefinierten Statuszeile](https://code.claude.com/docs/de/statusline.md), und siehe [Token-Nutzung reduzieren](https://code.claude.com/docs/de/costs.md#reduce-token-usage) für Strategien zur Reduzierung der Token-Nutzung.28* Claude hat etwas anderes gebaut, als Sie im Sinn hatten, oder muss zu Beginn jeder Sitzung dieselbe Tatsache neu herausfinden. Ihm fehlen Informationen, die es durch Lesen des Repos nicht bekommen kann. Siehe [Sagen Sie Claude, was es nicht sehen kann](#tell-claude-what-it-cant-see).
29* Claude sagte, es sei fertig, und das stimmte nicht ganz, meist weil es keine Möglichkeit hatte, die eigene Arbeit zu prüfen. Siehe [Geben Sie Claude eine Prüfung zum Ausführen](#give-claude-a-check-to-run).
30* Claude hat etwas getan, das in diesem Repo niemals passieren darf, oder einen Schritt übersprungen, der immer passieren muss. Ein Prompt allein kann keines von beidem garantieren. Siehe [Setzen Sie die Regeln durch, die keine Ausnahmen haben dürfen](#enforce-the-rules-that-cant-have-exceptions).
31* Claude hat es richtig gemacht, aber es hat mehr Zeit, Token oder Berechtigungsabfragen gekostet, als die Aufgabe wert war. Siehe [Ändern Sie eine Standardeinstellung](#change-a-default).
24 32
25***33[Lassen Sie Claude ohne Sie arbeiten](#let-claude-run-without-you) wendet dieselben vier Punkte auf unbeaufsichtigte Läufe an, und [Was Sie nicht mehr tun müssen](#what-you-can-stop-doing) listet die Ratschläge auf, die aktuelle Modelle überflüssig gemacht haben.
26 34
27## Geben Sie Claude eine Möglichkeit, seine Arbeit zu überprüfen35> [!NOTE]
28
29> [!TIP]
30>36>
31> Geben Sie Claude eine Überprüfung, die er ausführen kann: Tests, einen Build, einen Screenshot zum Vergleichen. Das ist der Unterschied zwischen einer Sitzung, die Sie beobachten, und einer, bei der Sie sich entfernen können.37> Die Einrichtung für ein ganzes Team wird auf einer eigenen Seite behandelt: [Claude Code für Ihre Organisation einrichten](https://code.claude.com/docs/de/admin-setup.md).
32 38
33Claude stoppt, wenn die Arbeit erledigt aussieht. Ohne eine Überprüfung, die er ausführen kann, ist „sieht erledigt aus“ das einzige verfügbare Signal, und Sie werden zur Überprüfungsschleife: jeder Fehler wartet darauf, dass Sie ihn bemerken. Geben Sie Claude etwas, das ein Bestanden oder Fehlgeschlagen erzeugt, und die Schleife schließt sich von selbst. Claude führt die Arbeit aus, führt die Überprüfung aus, liest das Ergebnis und iteriert, bis die Überprüfung bestanden ist.39## Deterministische und nicht deterministische Anweisungen
34 40
35Die Überprüfung ist alles, das ein Signal zurückgibt, das Claude im Gespräch lesen kann: eine Test-Suite, ein Build-Exit-Code, ein Linter, ein Skript, das die Ausgabe mit einem Fixture vergleicht, oder ein [Browser-Screenshot](https://code.claude.com/docs/de/chrome.md), der mit einem Design verglichen wird. Führen Sie [`/verify`](https://code.claude.com/docs/de/skills#run-and-verify-your-app) selbst aus, nachdem Claudes Überprüfung bestanden ist, um die Änderung gegen die laufende App zu bestätigen.41Jede Anweisung, die Sie Claude Code geben, gehört zu einer dieser Arten:
36 42
37| Strategie | Vorher | Nachher |431. Nicht deterministisch: Sie schreiben die Anweisung, und Claude (das Modell) liest sie. Das kann Ihr Prompt, `CLAUDE.md` oder ein Skill sein. Das Modell entscheidet dann, was es mit dieser Information macht. Es folgt Ihren Anweisungen in der Regel, und aktuelle Modelle verstehen Ihre Absicht auch ohne viel Kontext gut, aber es gibt keine *Garantie*, dass es Ihren Anweisungen folgt. Es kann trotzdem entscheiden, Dinge nicht zu tun oder andere Dinge zu tun.
38| - | - | - |442. Deterministisch: Sie konfigurieren die Anweisung, und Claude Code (der Harness) *muss* sie ausführen. Das kann ein Hook, eine deny-Regel oder eine verwaltete Einstellung sein. Claude Code wendet dies jedes Mal an, unabhängig davon, was das Modell entschieden hat.
39| **Überprüfungskriterien bereitstellen** | *„implementiere eine Funktion, die E-Mail-Adressen validiert“* | *„schreibe eine validateEmail-Funktion. Beispiel-Testfälle: [user@example.com](mailto:user@example.com) ist wahr, invalid ist falsch, [user@.com](mailto:user@.com) ist falsch. führe die Tests nach der Implementierung aus“* |
40| **UI-Änderungen visuell überprüfen** | *„mache das Dashboard besser aussehen“* | *„\[Screenshot einfügen] implementiere dieses Design. mache einen Screenshot des Ergebnisses und vergleiche ihn mit dem Original. liste Unterschiede auf und behebe sie“* |
41| **Grundursachen beheben, nicht Symptome** | *„der Build schlägt fehl“* | *„der Build schlägt mit diesem Fehler fehl: \[Fehler einfügen]. behebe ihn und überprüfe, dass der Build erfolgreich ist. behebe die Grundursache, unterdrücke den Fehler nicht“* |
42 45
43Sobald die Überprüfung vorhanden ist, entscheiden Sie, wie streng sie den Stopp kontrolliert:46Die meisten Dinge in Claude Code gibt es in beiden Formen:
44 47
45* **In einer Eingabeaufforderung**: Bitten Sie Claude, die Überprüfung auszuführen und in derselben Nachricht zu iterieren, wie in der Tabelle oben.48| | Nicht deterministisch (Claude entscheidet) | Deterministisch (Claude Code setzt durch) |
46* **Über eine Sitzung**: Legen Sie die Überprüfung als [`/goal`-Bedingung](https://code.claude.com/docs/de/goal) fest. Ein separater Evaluator überprüft sie nach jedem Zug erneut und Claude arbeitet weiter, bis die Bedingung erfüllt ist. Wenn Claude steckenbleibt, beendet Claude Code den Lauf schließlich mit der noch gesetzten Bedingung — siehe [wie /goal-Evaluierung funktioniert](https://code.claude.com/docs/de/goal.md#how-evaluation-works).49| :- | :- | :- |
47* **Als deterministisches Gate**: Ein [Stop-Hook](https://code.claude.com/docs/de/hooks.md#stop) führt Ihre Überprüfung als Skript aus und blockiert das Ende des Zugs, bis er bestanden ist. [Stop-Eingabe](https://code.claude.com/docs/de/hooks.md#stop-input) behandelt die Obergrenze für aufeinanderfolgende Blockierungen.50| Was zu tun ist | Ihr Prompt, `CLAUDE.md`, Skills, die Claude selbst aufgreift | Hooks und Skills, die nur Sie starten können |
48* **Durch eine zweite Meinung**: Ein [Überprüfungs-Subagent](https://code.claude.com/docs/de/sub-agents.md) oder ein [dynamischer Workflow](https://code.claude.com/docs/de/workflows.md), der seine eigenen Erkenntnisse überprüft, lässt ein frisches Modell versuchen, das Ergebnis zu widerlegen, sodass der Agent, der die Arbeit verrichtet, nicht derjenige ist, der sie bewertet.51| Worauf es zugreifen darf | Der Klassifikator des Auto-Modus | deny-Regeln, die Sandbox im [strikten Modus](https://code.claude.com/docs/de/sandboxing.md#turn-off-the-retry-with-strict-sandbox-mode), verwaltete Einstellungen |
52| Wann es fertig ist | Eine Bitte um Belege, `/goal`, `/code-review` | Tests, Typecheck, ein `Stop`-Hook, CI |
53| Wie viel es ausgibt | Effort-Stufe, Claudes eigenes Tempo | `--max-turns` oder [`--max-budget-usd`](https://code.claude.com/docs/de/cli-reference) mit `-p`, ein von Ihnen festgelegtes [Ausgabenlimit](https://code.claude.com/docs/de/costs.md) |
54| Wer das letzte Wort hat | Claudes Zusammenfassung dessen, was es getan hat | Branch-Schutz, eine Person, die den Merge genehmigt |
49 55
50Jeder Schritt tauscht Setup gegen Aufmerksamkeit. Die Eingabeaufforderungsversion funktioniert heute bei jeder Aufgabe. Die `/goal`- und Stop-Hook-Versionen sind das, was einen unbeaufsichtigten Lauf ermöglicht, um korrekt zu beenden, ohne dass Sie eingreifen müssen.56Meistens möchten Sie, dass Claude entscheidet. Fast jede Richtlinie hat Ausnahmen, und aktuelle Modelle können den vorliegenden Code gut lesen und beurteilen, ob eine Richtlinie zur Situation passt. Mit dem tatsächlichen Code vor Augen ist Claude meist besser in der Lage, diese Entscheidung zu treffen, als eine Regel, die Sie im Voraus geschrieben haben.
51 57
52Lassen Sie Claude Belege zeigen, anstatt Erfolg zu behaupten: die Testausgabe, der Befehl, den es ausgeführt hat, und was er zurückgegeben hat, oder ein Screenshot des Ergebnisses. Die Überprüfung von Belegen ist schneller als die erneute Ausführung der Überprüfung selbst, und es funktioniert für Sitzungen, die Sie nicht beobachtet haben.58Die deterministische Art ist für Fälle gedacht, in denen Sie sicherstellen möchten, dass bestimmte Dinge *immer* passieren (oder nie), unabhängig davon, was das Modell entscheidet. Das muss nichts Dramatisches sein. Der Auto-Modus [blockiert die dramatischen Dinge](https://code.claude.com/docs/de/permission-modes.md#what-the-classifier-blocks-by-default) bereits, etwa ein Production-Deployment oder einen Force-Push über die Arbeit anderer. Meist ist es etwas, das speziell *Ihr* Projekt betrifft, und es kann so speziell sein, wie Sie möchten:
53 59
54***60* Den generierten Client in `src/gen/` nie bearbeiten
61* Nach dem Erstellen einer Datei immer das Lizenz-Header-Skript ausführen
55 62
56## Erkunden Sie zuerst, dann planen Sie, dann codieren Sie63Sie hätten beides als Zeile in `CLAUDE.md` oder in Ihrem Prompt schreiben können, und Claude würde dem fast jedes Mal folgen. Aber egal wie nachdrücklich Sie es formulieren: Ob Claude dieser Zeile in einem bestimmten Turn folgt, bleibt Claudes Entscheidung.
57 64
58> [!TIP]65> [!TIP]
59>66>
60> Trennen Sie Forschung und Planung von der Implementierung, um zu vermeiden, das falsche Problem zu lösen.67> Wenn Sie einer Zeile in `CLAUDE.md` immer mehr Nachdruck verleihen und Claude sie trotzdem übersieht, ist das ein Zeichen, dass die Zeile in einen Hook gehört. Umgekehrt gilt es ebenso: Wenn Sie Hooks für Dinge haben, die nur Vorlieben sind, löschen Sie sie und lassen Sie Claude entscheiden.
61 68
62Wenn Claude direkt zum Codieren springt, kann dies zu Code führen, der das falsche Problem löst. Verwenden Sie [Plan Mode](https://code.claude.com/docs/de/permission-modes.md#analyze-before-you-edit-with-plan-mode), um Erkundung von Ausführung zu trennen.69## Sagen Sie Claude, was es nicht sehen kann
63 70
64Der empfohlene Workflow hat vier Phasen:71> [!TIP]
72>
73> Schreiben Sie nur auf, was Claude beim Lesen des Repos nicht finden kann oder was es sonst in jeder Sitzung erneut herausfinden müsste.
65 74
66**1. Erkunden**75Claude beginnt jede Aufgabe damit, Ihren Code zu lesen, und aktuelle Modelle sind darin *sehr* gut. Sie finden Ihre Dateistruktur, Ihre Konventionen, Ihr Test-Framework und wie bestehende Komponenten aufgebaut sind, meist schneller, als Sie es erklären könnten. Das heißt, Claude weiß bereits das meiste von dem, was Sie vielleicht für es aufschreiben wollten.
67 76
68Geben Sie Plan Mode ein, indem Sie `Shift+Tab` drücken, bis die Statusleiste `⏸ plan mode on` anzeigt, oder starten Sie die Sitzung mit `claude --permission-mode plan`. Claude liest Dateien und beantwortet Fragen, ohne Änderungen vorzunehmen.77Was es nicht finden kann, sind Informationen, die nie im Repo standen:
69 78
70```txt title="claude (plan mode)" wrap theme={null}79* Eine Entscheidung, die Ihr Team in einem Meeting getroffen hat
71read /src/auth and understand how we handle sessions and login.80* Ein Deploy-Prozess, der nur im Kopf einer Person existiert
72also look at how we manage environment variables for secrets.81* Die Umgebungsvariable, die Ihre Integrationstests benötigen
73```
74 82
75**2. Planen**83Es gibt auch Informationen, die *zwar* im Repo stehen, deren Suche aber ein paar Minuten dauert, und Claude muss diese Suche zu Beginn jeder Sitzung wiederholen.
76 84
77Bitten Sie Claude, einen detaillierten Implementierungsplan zu erstellen.85Ein guter Test, bevor Sie etwas für Claude aufschreiben:
78 86
79```txt title="claude (plan mode)" wrap theme={null}871. Könnte es das durch Lesen des Codes finden?
80I want to add Google OAuth. What files need to change?882. Würde es tatsächlich nachsehen?
81What's the session flow? Create a plan.
82```
83 89
84Drücken Sie `Ctrl+G`, um den Plan in Ihrem Texteditor zur direkten Bearbeitung zu öffnen, bevor Claude fortfährt.90Wenn beides zutrifft, lassen Sie es weg.
85 91
86**3. Implementieren**92### Schreiben Sie einen spezifischen Prompt
87 93
88Wechseln Sie aus Plan Mode, indem Sie den Plan genehmigen oder `Shift+Tab` drücken, und lassen Sie Claude dann codieren, wobei Sie gegen seinen Plan überprüfen.94Ein spezifischer Prompt hilft aus demselben Grund, denn er gibt Claude Informationen, die es noch nicht hat. Wenn Sie die Datei nennen, das Symptom beschreiben und von vornherein sagen, wie „behoben“ aussieht, ersparen Sie sich meist später eine Korrekturrunde.
89 95
90```txt title="claude" wrap theme={null}96Dasselbe gilt für eine Vorliebe zwischen zwei vernünftigen Ansätzen: Claude kann sie nicht aus dem Code ablesen. Wenn es Ihnen also wichtig ist, welchen es wählt, sagen Sie es von vornherein.
91implement the OAuth flow from your plan. write tests for the
92callback handler, run the test suite and fix any failures.
93```
94 97
95**4. Commit**98| Statt | Versuchen Sie |
99| :- | :- |
100| *„behebe den Login-Bug“* | *„Benutzer berichten, dass der Login nach einem Sitzungs-Timeout fehlschlägt. schau dir den Token-Refresh in src/auth/ an, schreibe einen fehlschlagenden Test, der das reproduziert, und behebe es dann“* |
101| *„füge ein Kalender-Widget hinzu“* | *„folge dem Muster in HotDogWidget.php und baue ein Kalender-Widget, mit dem man einen Monat auswählen und zwischen Jahren blättern kann. keine neuen Bibliotheken“* |
96 102
97Bitten Sie Claude, mit einer aussagekräftigen Nachricht zu committen und einen PR zu erstellen.103Wenn Sie bereits haben, was Claude braucht, übergeben Sie es direkt, statt es zu beschreiben:
98 104
99```txt title="claude" wrap theme={null}105* Eine Datei: Geben Sie `@` und den Pfad ein, um [den Dateiinhalt](https://code.claude.com/docs/de/common-workflows.md#reference-files-and-directories) in Ihre Nachricht aufzunehmen.
100commit with a descriptive message and open a PR106* Ein Bild: Fügen Sie den Screenshot des Designs oder des Fehlers in den Prompt ein.
101```107* Befehlsausgabe: Leiten Sie sie aus Ihrer Shell mit `cat error.log | claude -p "what's going on here"` weiter.
102 108
103Plan Mode ist nützlich, bringt aber auch Overhead mit sich.109Formulierungen wie `think step by step` oder `be thorough` sind gewöhnlicher Prompt-Text und keine Schlüsselwörter. Die wichtigste Steuerung dafür, wie intensiv Claude nachdenkt, ist die [Effort-Stufe](https://code.claude.com/docs/de/model-config.md#adjust-effort-level), die unter [Ändern Sie Modell und Effort](#change-the-model-and-effort) behandelt wird. Solche Formulierungen können Claude innerhalb seiner Effort-Einstellung zwar noch etwas anstoßen, heben es aber nicht darüber hinaus.
104 110
105Für Aufgaben, bei denen der Umfang klar ist und die Lösung klein ist (wie das Beheben eines Tippfehlers, das Hinzufügen einer Log-Zeile oder das Umbenennen einer Variablen), bitten Sie Claude, es direkt zu tun.111Eine Formulierung, die weiterhin hilft, ist `be ambitious`. Claude neigt dazu, eine Anfrage zurückhaltend zu lesen und das Kleinste zu bauen, das sie erfüllt, da es nicht sehen kann, wie viel Sie sich erhofft haben. Wenn Sie die umfassendere Version möchten, mit behandelten Edge Cases und dem naheliegenden nächsten Schritt, sagen Sie es:
106 112
107Planung ist am nützlichsten, wenn Sie unsicher über den Ansatz sind, wenn die Änderung mehrere Dateien ändert, oder wenn Sie mit dem zu ändernden Code nicht vertraut sind. Wenn Sie den Diff in einem Satz beschreiben könnten, überspringen Sie den Plan.113```text theme={null}
114build the settings page from the mockup. be ambitious: empty and error states, the save flow wired up, keyboard navigation, not just the layout
115```
108 116
109***117Damit teilen Sie Claude den Umfang mit, den nur Sie kennen, und nicht, wie intensiv es nachdenken soll.
110 118
111## Geben Sie spezifischen Kontext in Ihren Prompts an119Und wenn Sie erkunden, statt etwas Bestimmtes zu beheben, ist ein vager Prompt wie `what would you improve in this file?` völlig in Ordnung. Sie korrigieren unterwegs etwas mehr, und das ist der Kompromiss.
112 120
113> [!TIP]121### Brainstormen Sie zuerst mit Claude
114>
115> Je präziser Ihre Anweisungen sind, desto weniger Korrektionen benötigen Sie.
116 122
117Claude kann Absichten ableiten, aber er kann nicht Ihre Gedanken lesen. Verweisen Sie auf spezifische Dateien, erwähnen Sie Einschränkungen und zeigen Sie auf Beispielmuster.123Wenn Sie noch nicht genau wissen, was Sie möchten, müssen Sie nicht alles ausarbeiten, bevor Sie einen Prompt schreiben. Bitten Sie Claude stattdessen, Sie zu interviewen:
118 124
119| Strategie | Vorher | Nachher |125```text theme={null}
120| - | - | - |126I want to add rate limiting to the public API but haven't thought it through yet. Interview me until you could write the spec, then write it to SPEC.md.
121| **Begrenzen Sie die Aufgabe.** Geben Sie an, welche Datei, welches Szenario und Testpräferenzen. | *„füge Tests für foo.py hinzu“* | *„schreibe einen Test für foo.py, der den Edge Case abdeckt, in dem der Benutzer abgemeldet ist. vermeide Mocks.“* |127```
122| **Zeigen Sie auf Quellen.** Leiten Sie Claude zur Quelle, die eine Frage beantworten kann. | *„warum hat ExecutionFactory eine so seltsame API?“* | *„schaue dir die Git-Historie von ExecutionFactory an und fasse zusammen, wie seine API entstanden ist“* |
123| **Verweisen Sie auf vorhandene Muster.** Zeigen Sie Claude Muster in Ihrer Codebase. | *„füge ein Calendar-Widget hinzu“* | *„schaue dir an, wie vorhandene Widgets auf der Startseite implementiert sind, um die Muster zu verstehen. HotDogWidget.php ist ein gutes Beispiel. folge dem Muster, um ein neues Calendar-Widget zu implementieren, das dem Benutzer ermöglicht, einen Monat auszuwählen und vorwärts/rückwärts zu blättern, um ein Jahr auszuwählen. baue von Grund auf ohne Bibliotheken außer denen, die bereits in der Codebase verwendet werden.“* |
124| **Beschreiben Sie das Symptom.** Geben Sie das Symptom, den wahrscheinlichen Ort und an, wie „behoben“ aussieht. | *„behebe den Login-Bug“* | *„Benutzer berichten, dass Login nach Session-Timeout fehlschlägt. überprüfe den Auth-Flow in src/auth/, besonders Token-Refresh. schreibe einen fehlgeschlagenen Test, der das Problem reproduziert, dann behebe es“* |
125 128
126Vage Prompts können nützlich sein, wenn Sie erkunden und Kurskorrektionen vornehmen können. Ein Prompt wie `„was würdest du in dieser Datei verbessern?"` kann Dinge an die Oberfläche bringen, an die Sie nicht gedacht hätten zu fragen.129Claude kommt mit Multiple-Choice-Fragen zu den Teilen zurück, die Sie noch nicht festgelegt haben: Limits pro Benutzer oder pro Schlüssel, was mit Anfragen über dem Limit passiert, was außerhalb des Umfangs liegt. Es fragt so lange weiter, bis sich aus den Antworten eine Spezifikation ergibt.
127 130
128### Geben Sie umfangreiche Inhalte an131Sobald `SPEC.md` existiert, starten Sie eine neue Sitzung, um danach zu bauen, damit die Umsetzung mit einem sauberen Kontext und einer schriftlichen Definition von „fertig“ beginnt. Es ist auch die Datei, auf die Sie später den Reviewer verweisen, in [Geben Sie Claude eine Prüfung zum Ausführen](#give-claude-a-check-to-run).
129 132
130> [!TIP]133### Halten Sie CLAUDE.md kurz
131>
132> Verwenden Sie `@`, um auf Dateien zu verweisen, fügen Sie Screenshots/Bilder ein oder leiten Sie Daten direkt weiter.
133 134
134Sie können Claude auf mehrere Arten umfangreiche Daten bereitstellen:135Claude Code lädt [`CLAUDE.md`](https://code.claude.com/docs/de/memory) in jede Sitzung, das heißt, jede Zeile darin beansprucht bei *jeder* Aufgabe ein wenig von Claudes Aufmerksamkeit, ob sie relevant ist oder nicht. Deshalb funktioniert die Datei am besten, wenn sie nur enthält, was Claude nicht selbst aus dem Code erschließen könnte:
135 136
136* **Verweisen Sie auf Dateien mit `@`** anstatt zu beschreiben, wo Code lebt. Claude liest die Datei, bevor er antwortet.137* Wie Arbeit in diesem Repo bestätigt wird: die genauen Test-, Typecheck- und Lint-Befehle und wie eine einzelne Testdatei ausgeführt wird
137* **Fügen Sie Bilder direkt ein**. Kopieren/fügen Sie Bilder ein oder ziehen Sie sie in den Prompt.138* Stellen, an denen der Code irreführend ist: ein altes Muster, das überall vorkommt, das neuer Code aber nicht kopieren darf, oder ein Verzeichnis, das ungenutzt aussieht, es aber nicht ist
138* **Geben Sie URLs** für Dokumentation und API-Referenzen an. Verwenden Sie `/permissions`, um häufig verwendete Domains auf die Allowlist zu setzen.139* Entscheidungen, die nicht im Repo stehen: auf welchen Fehler-Helper sich das Team geeinigt hat, wie Deploys funktionieren, was ein Migrations-Review braucht
139* **Leiten Sie Daten weiter**, indem Sie `cat error.log | claude -p "explain this error"` ausführen, um Dateiinhalte direkt zu senden.140* Alles, was Sie bereits zweimal korrigieren mussten
140* **Lassen Sie Claude abrufen, was es braucht**. Sagen Sie Claude, dass es Kontext selbst mit Bash-Befehlen, MCP-Tools oder durch Lesen von Dateien abrufen soll.
141 141
142***142Eine `CLAUDE.md`, die diesen Test besteht, bleibt kurz:
143 143
144## Konfigurieren Sie Ihre Umgebung144```markdown CLAUDE.md theme={null}
145# Commands
146- Install: pnpm install
147- Run one test file: pnpm vitest run path/to/file.test.ts
148- Typecheck: pnpm tsc --noEmit
145 149
146Ein paar Einrichtungsschritte machen Claude Code über alle Ihre Sessions hinweg erheblich effektiver. Einen vollständigen Überblick über Erweiterungsfunktionen und wann Sie jede verwenden sollten, finden Sie unter [Extend Claude Code](https://code.claude.com/docs/de/features-overview.md).150# Conventions
151- Use the error helpers in src/lib/errors.ts, never throw raw strings
152- src/legacy/ is still live but don't copy its patterns into new code
147 153
148### Schreiben Sie eine effektive CLAUDE.md154# Gotchas
155- Integration tests need DATABASE_URL set, see .env.example
156```
149 157
150> [!TIP]158Führen Sie in einer Sitzung `/context` aus, um zu bestätigen, dass Claude die Datei geladen hat.
151>
152> Führen Sie `/init` aus, um eine Starter-CLAUDE.md-Datei basierend auf Ihrer aktuellen Projektstruktur zu generieren, und verfeinern Sie sie dann im Laufe der Zeit.
153 159
154CLAUDE.md ist eine spezielle Datei, die Claude zu Beginn jeder Konversation liest. Fügen Sie Bash-Befehle, Code-Stil und Workflow-Regeln ein. Dies gibt Claude persistenten Kontext, den es nicht aus Code allein ableiten kann.160Beachten Sie, dass die Typecheck-Zeile nur den Befehl enthält. Claude muss den Befehl kennen, um die eigene Arbeit unterwegs prüfen zu können. Wenn Claude Code außerdem einen bestandenen Typecheck *erzwingen* soll, bevor Claude fertig ist, ist das eine Aufgabe für einen [`Stop`-Hook](#enforce-the-check-with-a-stop-hook). Eine Zeile wie `Always typecheck before you finish` in dieser Datei funktioniert meistens, aber nicht jedes Mal.
155 161
156Es gibt kein erforderliches Format für CLAUDE.md-Dateien, aber halten Sie es kurz und für Menschen lesbar. Zum Beispiel:162Sie müssen die Datei nicht von Grund auf schreiben:
157 163
158```markdown CLAUDE.md theme={null}164* `/init` erzeugt eine erste Version aus Ihrer Codebasis. Danach besteht die Arbeit meist im Entfernen von Zeilen. Der [Memory-Leitfaden](https://code.claude.com/docs/de/memory.md#write-effective-instructions) empfiehlt, unter 200 zu bleiben.
159# Code style165* `/doctor` schlägt Kürzungen für alles vor, was Claude [bereits aus dem Code erschließen kann](https://code.claude.com/docs/de/memory.md#my-claude-md-is-too-large).
160- Use ES modules (import/export) syntax, not CommonJS (require)166* `/doctor prompt-audit` kennzeichnet Anweisungen, die für ältere Modelle geschrieben wurden, auf nicht mehr vorhandene Dateien verweisen oder [einander widersprechen](https://code.claude.com/docs/de/memory.md#audit-your-instruction-files).
161- Destructure imports when possible (eg. import { foo } from 'bar')
162 167
163# Workflow168Ihre persönlichen Vorlieben gehören in `CLAUDE.local.md` statt in `CLAUDE.md`, und Sie fügen diese Datei zu `.gitignore` hinzu, damit sie nicht ins Repo gelangt.
164- Be sure to typecheck when you're done making a series of code changes
165- Prefer running single tests, and not the whole test suite, for performance
166```
167 169
168Führen Sie `/context` aus, um zu bestätigen, dass Claude die Datei geladen hat. CLAUDE.md wird jede Session geladen, also fügen Sie nur Dinge ein, die weit verbreitet gelten. Für Domänenwissen oder Workflows, die nur manchmal relevant sind, verwenden Sie stattdessen [skills](https://code.claude.com/docs/de/skills.md). Claude lädt sie bei Bedarf, ohne jede Konversation zu überlasten.170> [!NOTE]
171>
172> Wenn Claude eine Zeile, die *durchaus* in `CLAUDE.md` steht, immer wieder ignoriert, wird IMPORTANT das wahrscheinlich nicht beheben. Entweder ist die Datei so lang geworden, dass die Zeile untergeht, oder die Zeile ist eine Regel, die keine Ausnahmen haben darf; dann gehört sie in einen [Hook](#enforce-the-rules-that-cant-have-exceptions).
169 173
170Halten Sie es prägnant. Fragen Sie sich für jede Zeile: *„Würde das Entfernen dieser Zeile dazu führen, dass Claude Fehler macht?“* Wenn nicht, streichen Sie es. Überladene CLAUDE.md-Dateien führen dazu, dass Claude Ihre tatsächlichen Anweisungen ignoriert!174### Beschränken Sie Regeln auf einen Teil der Codebasis
171 175
172| ✅ Einschließen | ❌ Ausschließen |176Wenn eine Regel nur in einem Teil der Codebasis wichtig ist, legen Sie sie in [`.claude/rules/`](https://code.claude.com/docs/de/memory#path-specific-rules) mit einem `paths:`-Filter ab, damit sie nur geladen wird, wenn Claude tatsächlich dort arbeitet. Diese `.claude/rules/api.md` wird zum Beispiel für TypeScript-Dateien unter `src/api/` geladen:
173| - | - |
174| Bash-Befehle, die Claude nicht erraten kann | Alles, was Claude durch Lesen von Code herausfinden kann |
175| Code-Stil-Regeln, die von Standardwerten abweichen | Standard-Sprachkonventionen, die Claude bereits kennt |
176| Test-Anweisungen und bevorzugte Test-Runner | Detaillierte API-Dokumentation (verlinken Sie stattdessen auf Docs) |
177| Repository-Etikette (Branch-Naming, PR-Konventionen) | Informationen, die sich häufig ändern |
178| Architektonische Entscheidungen, die für Ihr Projekt spezifisch sind | Lange Erklärungen oder Tutorials |
179| Entwicklungsumgebungs-Eigenheiten (erforderliche Umgebungsvariablen) | Datei-für-Datei-Beschreibungen der Codebase |
180| Häufige Fallstricke oder nicht offensichtliche Verhaltensweisen | Selbstverständliche Praktiken wie „schreibe sauberen Code“ |
181 177
182Wenn Claude etwas tut, das Sie nicht möchten, obwohl es eine Regel dagegen gibt, ist die Datei wahrscheinlich zu lang und die Regel geht verloren. Wenn Claude Fragen stellt, die in CLAUDE.md beantwortet werden, könnte die Formulierung mehrdeutig sein. Behandeln Sie CLAUDE.md wie Code: überprüfen Sie es, wenn etwas schiefgeht, bereinigen Sie es regelmäßig, und testen Sie Änderungen, indem Sie beobachten, ob sich Claudes Verhalten tatsächlich ändert. Für eine eingecheckte CLAUDE.md führen Sie [`/doctor`](https://code.claude.com/docs/de/commands#all-commands) aus und Claude schlägt Kürzungen für Inhalte vor, die es aus der Codebase ableiten kann.178```markdown .claude/rules/api.md theme={null}
179---
180paths:
181 - "src/api/**/*.ts"
182---
183- Validate request bodies with the zod schemas in src/api/schemas/, don't hand-roll checks
184- Every new endpoint needs an entry in openapi.yaml, CI fails without it
185```
183 186
184Wenn Claude eine Anweisung immer wieder überspringt, fügen Sie Betonung wie „WICHTIG“ nur auf dieser Zeile hinzu. Wenn Sie viele Zeilen betonen, fällt keine davon auf. Checken Sie CLAUDE.md in Git ein, damit Ihr Team beitragen kann. Die Datei nimmt im Laufe der Zeit an Wert zu.187### Legen Sie Team-Abläufe in Skills ab
185 188
186CLAUDE.md-Dateien können zusätzliche Dateien mit der `@path/to/import`-Syntax importieren. Für Importregeln und wo CLAUDE.md-Dateien sich befinden können, siehe [CLAUDE.md-Dateien](https://code.claude.com/docs/de/memory.md#claude-md-files).189Ein leistungsfähigeres Modell weiß mehr über Softwareentwicklung, aber nicht, wie *Ihr* Team ein Release durchführt, was in Ihrem Incident-Runbook steht oder wie Sie API-Dokumentation geschrieben haben möchten. Diese Art von Wissen gehört in einen [Skill](https://code.claude.com/docs/de/skills.md): einen Ablauf oder ein Stück Teamwissen, gespeichert unter `.claude/skills/<name>/SKILL.md`.
187 190
188### Konfigurieren Sie Berechtigungen191Skills belasten den Kontext für diese Art von Inhalten auch weniger als `CLAUDE.md`. Bei einem Skill, den Claude selbst starten kann, sieht es in jeder Sitzung den Namen und die Beschreibung, [liest die vollständige Datei](https://code.claude.com/docs/de/skills.md#skill-content-lifecycle) aber nur, wenn die Aufgabe es erfordert. Ein langer Release-Ablauf in einem Skill belastet Ihre unabhängige Fehlerbehebung nicht so, wie er es in `CLAUDE.md` tun würde.
189 192
190> [!TIP]193> [!NOTE]
191>194>
192> Um weniger Aufforderungen zu erhalten, ohne die Kontrolle aufzugeben, genehmigen Sie die Tools, denen Sie mit `/permissions` vertrauen, im Voraus und lassen Sie Sandbox-Befehle mit `/sandbox` ohne Nachfrage ausführen. Wechseln Sie zum Manual-Modus, wenn Sie Bearbeitungen und Befehle selbst genehmigen möchten.195> Die `CLAUDE.md`-Regel gilt auch für Skills: Schreiben Sie nur auf, was Claude nicht selbst finden kann.
193 196
194Mit Claude Code v2.1.283 oder später ist der Auto-Modus der [integrierte Start-Berechtigungsmodus](https://code.claude.com/docs/de/permission-modes.md#eliminate-prompts-with-auto-mode) für interaktive Terminal- und VS Code-Sessions: ein separates Klassifikator-Modell überprüft die meisten Aktionen statt Ihnen und blockiert nur das, was riskant aussieht, wie Scope-Eskalation, unbekannte Infrastruktur oder feindselige-Inhalts-getriebene Aktionen. Bei früheren Versionen ist der Auto-Modus der integrierte Start-Berechtigungsmodus nur bei Pro-, Max- und Team-Plänen.197Für einen Workflow mit Nebenwirkungen, etwa das tatsächliche Erstellen dieses Releases, fügen Sie `disable-model-invocation: true` hinzu. Claude [kann den Skill dann nicht selbst starten](https://code.claude.com/docs/de/skills.md#control-who-invokes-a-skill), und er läuft nur, wenn Sie selbst `/release` eingeben. Gespeichert als `.claude/skills/release/SKILL.md` könnte er so aussehen:
195 198
196Im Manual-Modus fragt Claude Code vor Aktionen, die Ihr System ändern könnten: Dateischreibvorgänge, Bash-Befehle, MCP-Tools. Das ist sicher, aber mühsam. Nach der zehnten Genehmigung überprüfen Sie nicht wirklich mehr, Sie klicken einfach durch. Zwei Tools reduzieren diese Unterbrechungen im Manual-Modus und gelten auch im Auto-Modus:199```markdown .claude/skills/release/SKILL.md theme={null}
200---
201name: release
202description: Cut a new release. Bumps the version, writes the changelog entry, tags it and pushes the tag so CI can publish.
203disable-model-invocation: true
204---
2051. Make sure you're on main with a clean tree. If not, stop and ask.
2062. Run `pnpm changeset version` and commit the result.
2073. Summarize the PRs merged since the last tag into CHANGELOG.md, one line each, user-facing changes only.
2084. Tag `v<new version>` and push the tag. CI publishes from there, never publish from your machine.
209```
197 210
198* **Berechtigungs-Whitelists**: erlauben Sie spezifische Tools, die Sie kennen und die sicher sind, wie `npm run lint` oder `git commit`211### Verbinden Sie die Tools, die Claude braucht
199* **Sandboxing**: aktivieren Sie Isolation auf Betriebssystemebene, die Dateisystem- und Netzwerkzugriff einschränkt und Claude ermöglicht, freier innerhalb definierter Grenzen zu arbeiten
200 212
201Lesen Sie mehr über [Berechtigungsmodi](https://code.claude.com/docs/de/permission-modes.md), [Berechtigungsregeln](https://code.claude.com/docs/de/permissions.md) und [Sandboxing](https://code.claude.com/docs/de/sandboxing.md).213Manches von dem, was Claude nicht sehen kann, liegt ganz in einem anderen System, etwa Ihrem Issue-Tracker oder Ihrem Fehler-Dashboard. Wenn dieses System eine CLI hat, ist das meist der einfachste Zugang. Wenn `gh` installiert und angemeldet ist, öffnet Claude zum Beispiel Pull Requests und liest Review-Kommentare, ohne dass Sie etwas erklären müssen. Bei einer CLI, die es noch nicht kennt, genügt ein Hinweis auf `--help`.
202 214
203### Verwenden Sie CLI-Tools215Für Systeme ohne CLI gibt es [MCP](https://code.claude.com/docs/de/mcp.md). Sie fügen einen Server aus Ihrer Shell hinzu:
204 216
205> [!TIP]217```bash theme={null}
206>218claude mcp add --transport http notion https://mcp.notion.com/mcp
207> Sagen Sie Claude Code, dass es CLI-Tools wie `gh`, `aws`, `gcloud` und `sentry-cli` bei der Interaktion mit externen Diensten verwenden soll.219```
220
221Der Server erscheint dann in einer Sitzung unter `/mcp`. Verbundene Server fügen ihre Tool-Namen und Anweisungen dem Kontext hinzu, auch wenn Sie sie nicht verwenden. Es lohnt sich daher, dort [die nicht benötigten zu deaktivieren](https://code.claude.com/docs/de/mcp.md#disable-a-server-without-removing-it).
222
223Und wenn Sie in einer typisierten Sprache arbeiten, lässt ein [Code-Intelligence-Plugin](https://code.claude.com/docs/de/plugins/code-intelligence.md) Claude direkt zu einer Definition springen, statt viele Dateien zu durchsuchen, um sie zu finden.
208 224
209CLI-Tools sind die kontexteffizienteste Möglichkeit, mit externen Diensten zu interagieren. Wenn Sie GitHub verwenden, installieren Sie die `gh`-CLI. Claude weiß, wie man sie zum Erstellen von Issues, Öffnen von Pull Requests und Lesen von Kommentaren verwendet. Ohne `gh` kann Claude immer noch die GitHub-API verwenden, aber unauthentifizierte Anfragen treffen oft auf Rate Limits.225## Geben Sie Claude eine Prüfung zum Ausführen
210 226
211Claude ist auch effektiv beim Erlernen von CLI-Tools, die er nicht bereits kennt. Versuchen Sie Prompts wie `Use 'foo-cli-tool --help' to learn about foo tool, then use it to solve A, B, C.`227Claude hört auf, wenn die Arbeit erledigt aussieht. Wenn es nichts ausführen kann, das ihm sagt, ob die Arbeit tatsächlich erledigt *ist*, bleibt ihm nur „sieht erledigt aus“. In der Praxis werden dadurch Sie zur Test-Suite, und jeder Fehler bleibt bestehen, bis Sie ihn zufällig bemerken.
212 228
213### Verbinden Sie MCP-Server229Wenn Sie ihm etwas geben, das mit Bestanden oder Fehlgeschlagen zurückkommt, kann Claude diese Schleife selbst schließen. Es nimmt die Änderung vor, führt die Prüfung aus und liest bei einem Fehler die Ausgabe und behebt ihn, bevor es die Prüfung erneut ausführt.
214 230
215> [!TIP]231> [!TIP]
216>232>
217> Führen Sie `claude mcp add` mit einem Servernamen und einer URL oder einem Befehl aus, um externe Tools wie Notion, Figma oder Ihre Datenbank zu verbinden. Zum Beispiel: `claude mcp add --transport http notion https://mcp.notion.com/mcp`.233> Geben Sie Claude etwas, das es ausführen kann und das mit Bestanden oder Fehlgeschlagen zurückkommt. Sobald es das hat, kann es selbstständig weiterarbeiten, und Sie müssen nicht zusehen.
218 234
219Mit [MCP-Servern](https://code.claude.com/docs/de/mcp.md) können Sie Claude bitten, Funktionen von Issue-Trackern zu implementieren, Datenbanken abzufragen, Überwachungsdaten zu analysieren, Designs von Figma zu integrieren und Workflows zu automatisieren.235Die Prüfung kann fast alles sein, solange Claude das Ergebnis lesen kann:
220 236
221### Richten Sie Hooks ein237* Eine Testdatei
238* Der Exit-Code eines Builds
239* Ein Linter
240* Ein Skript, das die Ausgabe per Diff mit einem Fixture vergleicht
241* Ein [Browser-Screenshot](https://code.claude.com/docs/de/chrome.md) neben dem Mockup
222 242
223> [!TIP]243Wenn Ihr Repo bereits eines davon hat, ist die mit Abstand nützlichste Zeile in Ihrer `CLAUDE.md` der Befehl, der es ausführt.
224>
225> Verwenden Sie Hooks für Aktionen, die jedes Mal mit null Ausnahmen stattfinden müssen.
226 244
227[Hooks](https://code.claude.com/docs/de/hooks-guide.md) führen Skripte automatisch an bestimmten Punkten in Claudes Workflow aus. Im Gegensatz zu CLAUDE.md-Anweisungen, die beratend sind, sind Hooks deterministisch und garantieren, dass die Aktion stattfindet.245Wie streng Sie die Prüfung gestalten, liegt bei Ihnen. Die Optionen reichen davon, dass Claude selbst entscheidet, bis dahin, dass Claude Code sie durchsetzt:
228 246
229Claude kann Hooks für Sie schreiben. Versuchen Sie Prompts wie *„Schreibe einen Hook, der eslint nach jeder Dateibearbeitung ausführt“* oder *„Schreibe einen Hook, der Schreibvorgänge in den Migrations-Ordner blockiert.“* Bearbeiten Sie `.claude/settings.json` direkt, um Hooks von Hand zu konfigurieren, und führen Sie `/hooks` aus, um zu durchsuchen, was konfiguriert ist.247* Im Prompt: `run the auth tests after, and keep going until they pass`. Claude entscheidet selbst, wann es zufrieden ist. Das funktioniert heute für jede Aufgabe, ohne Einrichtung.
248* Als Ziel: [`/goal all tests in tests/auth pass and lint is clean`](https://code.claude.com/docs/de/goal) legt eine Bedingung fest, die ein separates Modell nach jedem Turn anhand der Konversation prüft, und Claude arbeitet weiter, bis sie erfüllt ist. In der Sitzung selbst brauchen Sie das selten. Wichtig ist es bei langen Hintergrundläufen, in denen Claude einen Turn manchmal mit einer Fortschrittszusammenfassung beendet, obwohl noch Punkte offen sind, und das Ziel es zurückschickt.
249* Als Stop-Hook: Ein [`Stop`-Hook](https://code.claude.com/docs/de/hooks#stop) führt Ihr Skript aus, wann immer Claude versucht, seinen Turn zu beenden, und schickt Claude zurück an die Arbeit, wenn das Skript mit Code 2 endet. Dies wird von Claude Code (dem Harness) durchgesetzt, sodass der Turn erst endet, wenn der Typecheck besteht oder das [Blockierungslimit](https://code.claude.com/docs/de/hooks.md#stop-input) erreicht ist. Es gibt ein [Beispiel weiter unten](#enforce-the-check-with-a-stop-hook).
250* Durch jemanden, der den Code nicht geschrieben hat: Im Terminal prüft [`/code-review`](https://code.claude.com/docs/de/code-review-local) den Diff in einem neuen Subagenten, der Ihre Konversation nie gesehen hat. Er lässt sich nicht von der Argumentation beeinflussen, die den Code hervorgebracht hat.
230 251
231### Erstellen Sie Skills252Welche Option Sie auch verwenden, bitten Sie Claude um *Belege*: den ausgeführten Befehl und seine Ausgabe oder den Screenshot. „Alle Tests bestanden“ allein sagt Ihnen sehr wenig, und die Ausgabe zu lesen geht schneller, als die Prüfung selbst erneut auszuführen. Bei einer Sitzung, die Sie nicht beobachtet haben, ist es außerdem der einzige Beleg, den Sie haben.
232 253
233> [!TIP]254> [!TIP]
234>255>
235> Erstellen Sie `SKILL.md`-Dateien in `.claude/skills/`, um Claude Domänenwissen und wiederverwendbare Workflows zu geben.256> Sobald Claude sagt, dass es fertig ist, können Sie in der Sitzung auch [`/verify`](https://code.claude.com/docs/de/skills#run-and-verify-your-app) ausführen. Damit baut und startet Claude die App und sieht sich das Ergebnis an. So werden Probleme erkannt, die Tests und Typechecks übersehen.
236 257
237[Skills](https://code.claude.com/docs/de/skills.md) erweitern Claudes Wissen mit Informationen, die für Ihr Projekt, Team oder Ihre Domäne spezifisch sind. Claude wendet sie automatisch an, wenn relevant, oder Sie können sie direkt mit `/skill-name` aufrufen.258### Prüfen Sie anhand Ihrer Spezifikation
238 259
239Erstellen Sie einen Skill, indem Sie ein Verzeichnis mit einer `SKILL.md` zu `.claude/skills/` hinzufügen:260Wenn das Review die Arbeit lieber anhand Ihres Plans prüfen soll, statt allgemein nach Fehlern zu suchen, schreiben Sie den Review-Prompt selbst:
240 261
241```markdown .claude/skills/api-conventions/SKILL.md theme={null}262```text theme={null}
242name: api-conventions263use a subagent to review the rate limiter diff against SPEC.md, check every requirement is implemented and the listed edge cases have tests, report gaps that affect correctness and skip style
243description: REST API design conventions for our services
244# API Conventions
245- Use kebab-case for URL paths
246- Use camelCase for JSON properties
247- Always include pagination for list endpoints
248- Version APIs in the URL path (/v1/, /v2/)
249```264```
250 265
251Skills können auch wiederverwendbare Workflows definieren, die Sie direkt aufrufen:266> [!NOTE]
252 267>
253```markdown .claude/skills/fix-issue/SKILL.md theme={null}268> Lassen Sie den Teil `skip style` in diesem Prompt nicht weg. Ein Reviewer, der Probleme finden soll, findet immer *etwas*. Wenn Sie jeden Befund beheben, landen Sie bei zusätzlichen Abstraktionsebenen und Tests für Fälle, die nicht eintreten können.
254name: fix-issue269
255description: Fix a GitHub issue270### Setzen Sie die Prüfung mit einem Stop-Hook durch
256disable-model-invocation: true271
257Analyze and fix the GitHub issue: $ARGUMENTS.272Die `Stop`-Hook-Version der Typecheck-Regel besteht aus ein paar Zeilen in `.claude/settings.json`. Exit-Code 2 blockiert das Beenden. Was der Befehl auf stderr ausgibt, geht als Grund, warum es noch nicht fertig sein kann, an Claude zurück. Deshalb wird die Compiler-Ausgabe dorthin umgeleitet:
258 273
2591. Use `gh issue view` to get the issue details274```json .claude/settings.json theme={null}
2602. Understand the problem described in the issue275{
2613. Search the codebase for relevant files276 "hooks": {
2624. Implement the necessary changes to fix the issue277 "Stop": [
2635. Write and run tests to verify the fix278 {
2646. Ensure code passes linting and type checking279 "hooks": [
2657. Create a descriptive commit message280 { "type": "command", "command": "pnpm tsc --noEmit 1>&2 || exit 2" }
2668. Push and create a PR281 ]
282 }
283 ]
284 }
285}
267```286```
268 287
269Führen Sie `/fix-issue 1234` aus, um es aufzurufen. Verwenden Sie `disable-model-invocation: true` für Workflows mit Nebenwirkungen, die Sie manuell auslösen möchten.288Um es in Aktion zu sehen, bitten Sie Claude um eine Änderung, die einen Typ bricht: Statt fertig zu werden, erhält es die Compiler-Fehler zurück und arbeitet weiter, bis `tsc` besteht. Wenn der Hook [acht Beendigungen hintereinander](https://code.claude.com/docs/de/hooks.md#stop-input) ohne Tool-Aufruf dazwischen blockiert, überschreibt Claude Code die nächste Blockierung und beendet den Turn. Um die Obergrenze anzuheben, setzen Sie [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](https://code.claude.com/docs/de/env-vars).
270 289
271### Erstellen Sie benutzerdefinierte Subagents290## Setzen Sie die Regeln durch, die keine Ausnahmen haben dürfen
272 291
273> [!TIP]292> [!TIP]
274>293>
275> Definieren Sie spezialisierte Assistenten in `.claude/agents/`, an die Claude für isolierte Aufgaben delegieren kann.294> Wenn etwas jedes Mal passieren muss, machen Sie daraus einen Hook, eine deny-Regel oder eine verwaltete Einstellung. `CLAUDE.md` ist für Richtlinien da, und Claude darf entscheiden, dass eine Richtlinie nicht zutrifft.
276 295
277[Subagents](https://code.claude.com/docs/de/sub-agents.md) laufen in ihrem eigenen Kontext mit ihrem eigenen Satz erlaubter Tools. Sie sind nützlich für Aufgaben, die viele Dateien lesen oder spezialisierte Aufmerksamkeit benötigen, ohne Ihre Hauptkonversation zu überlasten.296Nehmen Sie drei Regeln, die Sie heute vielleicht in `CLAUDE.md` haben: `Never read .env`, `Always run the formatter after editing`, `Don't touch the migrations folder`. Claude befolgt diese fast jedes Mal. Für die wenigen, bei denen „fast“ nicht gut genug ist, verschieben Sie sie aus `CLAUDE.md` in eine Konfiguration, die Claude Code (der Harness) selbst anwendet. Ab dann hängt das Ergebnis nicht mehr davon ab, woran sich das Modell erinnert oder was es entscheidet.
278 297
279```markdown .claude/agents/security-reviewer.md theme={null}298### Erzwingen Sie Schritte mit Hooks
280name: security-reviewer299
281description: Reviews code for security vulnerabilities300[Hooks](https://code.claude.com/docs/de/hooks-guide.md) führen etwas von Ihnen an festen Punkten in Claudes Schleife aus: vor oder nach einem Tool-Aufruf, wenn Claude versucht aufzuhören, wenn eine Sitzung startet und so weiter. Dieses Etwas kann sein:
282tools: Read, Grep, Glob, Bash301
283model: opus302* Ein Shell-Befehl (der übliche Fall)
284You are a senior security engineer. Review code for:303* Ein POST an einen HTTP-Endpunkt
285- Injection vulnerabilities (SQL, XSS, command injection)304* Ein Tool-Aufruf auf einem Ihrer MCP-Server
286- Authentication and authorization flaws305* Ein [`prompt`- oder `agent`-Hook](https://code.claude.com/docs/de/hooks#hook-handler-fields), bei dem ein Modell entscheidet
287- Secrets or credentials in code306
288- Insecure data handling307Ein `prompt`- oder `agent`-Hook lässt *ein anderes Modell* entscheiden und ist daher ebenfalls nicht deterministisch. Für echte Durchsetzung verwenden Sie einen `command`- oder `http`-Hook und fügen [`onFailure: "block"`](https://code.claude.com/docs/de/hooks#block-the-action-when-a-hook-fails) hinzu, wenn die Aktion auch dann gestoppt werden soll, wenn der Hook selbst abstürzt oder in ein Timeout läuft. Bei einem Hook, der Commits etwa nach Secrets durchsucht, blockieren Sie den Commit lieber, als ihn ungeprüft durchzulassen, während der Scanner ausgefallen ist.
308
309Hier ist die Formatter-Regel als `PostToolUse`-Hook. Er läuft nach jedem `Edit` oder `Write`, und ob Claude sich an die Regel erinnert, spielt keine Rolle mehr, weil nicht Claude sie ausführt:
289 310
290Provide specific line references and suggested fixes.311```json .claude/settings.json theme={null}
312{
313 "hooks": {
314 "PostToolUse": [
315 {
316 "matcher": "Edit|Write",
317 "hooks": [
318 { "type": "command", "command": "npx prettier --write --ignore-unknown \"$(jq -r '.tool_input.file_path')\"" }
319 ]
320 }
321 ]
322 }
323}
291```324```
292 325
293Sagen Sie Claude explizit, dass es Subagents verwenden soll: *„Verwende einen Subagent, um diesen Code auf Sicherheitsprobleme zu überprüfen.“*326Um den Hook zu testen, bitten Sie Claude, einer Datei, die Prettier formatiert, eine schlecht eingerückte Zeile hinzuzufügen. Die gespeicherte Datei kommt mit korrigierter Einrückung zurück.
294 327
295### Installieren Sie Plugins328Die Migrations-Regel wird zu einem [`PreToolUse`-Hook](https://code.claude.com/docs/de/hooks-guide#block-edits-to-protected-files), der für jeden Pfad unter `migrations/` mit Code 2 endet. Sie müssen ihn nicht selbst schreiben: `write a hook that blocks edits to the migrations folder` funktioniert als Prompt, und `/hooks` zeigt das Ergebnis. Übertreiben Sie es aber nicht: Ein Hook ist für eine Regel mit *null* Ausnahmen gedacht, und `Prefer named exports` hat viele, also bleibt diese in `CLAUDE.md`.
296 329
297> [!TIP]330### Beschränken Sie den Zugriff mit Berechtigungsregeln und der Sandbox
298>
299> Führen Sie `/plugin` aus, um den Marketplace zu durchsuchen. Plugins fügen Skills, Tools und Integrationen ohne Konfiguration hinzu.
300 331
301[Plugins](https://code.claude.com/docs/de/plugins/overview.md) bündeln Skills, Hooks, Subagents und MCP-Server in eine einzelne installierbare Einheit aus der Community und von Anthropic. Wenn Sie mit einer typisierten Sprache arbeiten, installieren Sie ein [Code-Intelligence-Plugin](https://code.claude.com/docs/de/plugins/code-intelligence.md), um Claude präzise Symbol-Navigation und automatische Fehlererkennung nach Bearbeitungen zu geben.332[Berechtigungsregeln](https://code.claude.com/docs/de/permissions.md) legen fest, was Claude ausführen, lesen und abrufen darf. `deny`-Regeln gelten in jedem Berechtigungsmodus, einschließlich Auto und `bypassPermissions`, und genau deshalb gehört die `.env`-Regel dorthin:
302 333
303Anleitungen zur Auswahl zwischen Skills, Subagents, Hooks und MCP finden Sie unter [Extend Claude Code](https://code.claude.com/docs/de/features-overview.md#match-features-to-your-goal).334```json .claude/settings.json theme={null}
335{
336 "permissions": {
337 "allow": ["Bash(pnpm tsc --noEmit)"],
338 "ask": ["Bash(git push *)"],
339 "deny": ["Read(./.env)", "Read(./.env.local)", "Read(./secrets/**)"]
340 }
341}
342```
304 343
305***344Wenn dies gespeichert ist, schlägt die Frage an Claude, was in `.env` steht, fehl, sowohl über das `Read`-Tool als auch über `cat .env`.
306 345
307## Kommunizieren Sie effektiv346Regeln erfassen Tool-Aufrufe, nicht Absichten. Es lohnt sich also zu wissen, wo die Grenzen liegen:
308 347
309Stellen Sie Claude die Fragen, die Sie einem anderen Engineer stellen würden, und lassen Sie Claude Sie für größere Features interviewen und schreiben Sie eine Spezifikation, bevor Sie mit der Implementierung beginnen.348* Die `Read`-Regel erfasst `cat .env` *durchaus*, weil Claude Code die [gängigen Befehle zum Lesen von Dateien](https://code.claude.com/docs/de/permissions.md#read-and-edit) erkennt.
349* Sie erfasst kein Skript, das die Datei öffnet.
350* Eine `WebFetch`-deny-Regel für eine Domain bewirkt nichts gegen `curl` an dieselbe Domain, es sei denn, die Sandbox ist aktiv.
310 351
311### Stellen Sie Codebase-Fragen352Für eine Begrenzung des Dateisystem- oder Netzwerkzugriffs auf Betriebssystemebene aktivieren Sie die [Sandbox](https://code.claude.com/docs/de/sandboxing.md) mit `/sandbox` in einer Sitzung. Sie schränkt Claudes Shell-Befehle unter macOS, Linux und WSL2 ein und [übernimmt auch Ihre `Read`-deny-Regeln und `WebFetch(domain:...)`-Regeln](https://code.claude.com/docs/de/sandboxing#permission-rules). Für alles Sicherheitsrelevante möchten Sie daher beides.
312 353
313> [!TIP]354Standardmäßig kann Claude weiterhin darum bitten, einen blockierten Befehl außerhalb der Sandbox erneut zu versuchen, und diese Anfrage durchläuft den normalen Berechtigungsablauf. Der [strikte Sandbox-Modus](https://code.claude.com/docs/de/sandboxing.md#turn-off-the-retry-with-strict-sandbox-mode) im Tab **Overrides** von `/sandbox` schaltet diesen Wiederholungsversuch ab.
355
356> [!WARNING]
314>357>
315> Stellen Sie Claude Fragen, die Sie einem Senior Engineer stellen würden.358> Der Auto-Modus ist ein Klassifikator-Modell, das jede Aktion beurteilt, keine feste Regel. Darin ist er gut, aber wie jede Ermessensentscheidung kann er danebenliegen. Sie können außerdem anpassen, was er als riskant einstuft, und Ihre Organisation kann ihn ganz abschalten. Ihre „Niemals“-Regeln gehören daher in deny-Regeln oder Hooks.
359
360### Legen Sie fest, für wen eine Regel gilt
316 361
317Wenn Sie sich in eine neue Codebase einarbeiten, verwenden Sie Claude Code zum Lernen und Erkunden. Sie können Claude die gleichen Fragen stellen, die Sie einem anderen Engineer stellen würden:362Wo eine Regel liegt, entscheidet, für wen sie gilt:
318 363
319* Wie funktioniert Logging?364* `.claude/settings.local.json` und `~/.claude/settings.json` gehören nur Ihnen. Wenn Sie für einen Befehl **Yes, and don't ask again** auswählen, speichert Claude Code diese Regel in der lokalen Datei.
320* Wie erstelle ich einen neuen API-Endpunkt?365* `.claude/settings.json` und die Hooks darin gehören zum Repo. Sobald Sie sie committen, gelten sie für alle, die im Repo arbeiten. Die deny-Regeln darin gelten sofort. Die `allow`-Regeln greifen erst, wenn die jeweilige Person den [Vertrauensdialog](https://code.claude.com/docs/de/permissions.md#what-runs-before-you-trust-a-folder) für diesen Ordner akzeptiert, und das [Workspace-Vertrauen](https://code.claude.com/docs/de/hooks.md#workspace-trust) entscheidet auch, wann die Hooks auf ihrem Rechner ausgeführt werden.
321* Was macht `async move { ... }` auf Zeile 134 von `foo.rs`?366* [Verwaltete Einstellungen](https://code.claude.com/docs/de/managed-settings.md) gehören der Organisation. Sie stammen aus der Admin-Konsole, aus MDM oder aus einer `managed-settings.json`-Datei, und keine persönliche Einstellungsdatei kann sie überschreiben. Damit sind sie der einzige Ort für die Richtlinien eines Sicherheitsteams. Wenn Sie diejenige Person sind, die sie festlegt, siehe [Claude Code für Ihre Organisation einrichten](https://code.claude.com/docs/de/admin-setup.md).
322* Welche Edge Cases behandelt `CustomerOnboardingFlowImpl`?
323* Warum ruft dieser Code `foo()` anstelle von `bar()` auf Zeile 333 auf?
324 367
325Die Verwendung von Claude Code auf diese Weise ist ein effektiver Onboarding-Workflow, der die Einarbeitungszeit verbessert und die Belastung anderer Engineers reduziert. Keine spezielle Prompt-Formulierung erforderlich: stellen Sie Fragen direkt.368Unabhängig vom Geltungsbereich sollten Sie die durchgesetzten Regeln klein halten. Jeder Hook und jede deny-Regel wird gelegentlich auslösen, wenn es nicht sollte, und jemand muss sie alle pflegen. Wenn Sie irgendwann bei vierzig davon angekommen sind, sind die meisten wahrscheinlich Vorlieben, die Claude selbst hätte abwägen können.
326 369
327### Lassen Sie Claude Sie interviewen370## Ändern Sie eine Standardeinstellung
328 371
329> [!TIP]372> [!TIP]
330>373>
331> Für größere Features lassen Sie Claude Sie zuerst interviewen. Beginnen Sie mit einem minimalen Prompt und bitten Sie Claude, Sie mit dem `AskUserQuestion`-Tool zu interviewen.374> Die Standardeinstellungen sind gut genug, um sie unverändert zu lassen, bis eine Aufgabe mehr Zeit, Token oder Unterbrechungen kostet, als sie sollte. Führen Sie in diesem Fall `/usage` in der Sitzung aus, um zu sehen, wohin der Verbrauch gegangen ist.
332 375
333Claude stellt Fragen zu Dingen, die Sie möglicherweise noch nicht berücksichtigt haben, einschließlich technischer Implementierung, UI/UX, Edge Cases und Tradeoffs. Ersetzen Sie `[brief description]` mit Ihrer Feature, bevor Sie den Prompt senden.376Eine neue Sitzung trifft bereits eine Handvoll Entscheidungen für Sie:
334 377
335```text wrap theme={null}378* Interaktive Terminal- und VS Code-Sitzungen starten im Auto-Modus.
336I want to build [brief description]. Interview me in detail using the AskUserQuestion tool.379* Auf den meisten Plänen und bei den meisten Anbietern läuft [Claude Opus 5.5 mit mittlerem Effort](https://code.claude.com/docs/de/model-config.md#default-model-setting).
380* Claude delegiert Arbeit an Subagenten, wenn es einen Grund dafür sieht.
381* Die Konversation wird komprimiert, wenn sie wächst.
337 382
338Ask about technical implementation, UI/UX, edge cases, concerns, and tradeoffs. Don't ask obvious questions, dig into the hard parts I might not have considered.383Meistens denken Sie nie darüber nach. Wenn eine Aufgabe doch mehr kostet, als sie sollte, ist meist einer dieser vier Punkte der Grund.
339 384
340Keep interviewing until we've covered everything, then write a complete spec to SPEC.md.385### Ändern Sie den Berechtigungsmodus
341```
342 386
343Sobald die Spezifikation fertig ist, starten Sie eine neue Session, um sie auszuführen. Die neue Session hat einen sauberen Kontext, der sich vollständig auf die Implementierung konzentriert, und Sie haben eine geschriebene Spezifikation zum Referenzieren.387Beide Enden des Berechtigungsspektrums haben ihren Preis:
344 388
345Die nützlichsten Spezifikationen sind in sich geschlossen: Sie benennen die beteiligten Dateien und Schnittstellen, geben an, was außerhalb des Geltungsbereichs liegt, und enden mit einem End-to-End-Verifizierungsschritt, der beweist, dass die Funktion funktioniert. Die Zeit, die Sie für eine präzise Spezifikation aufwenden, zahlt sich mehr aus als die Zeit, die Sie damit verbringen, die Implementierung zu beobachten.389* **Manual-Modus**: Sie genehmigen jede Bearbeitung und jeden Befehl, der nicht nur lesend ist, selbst. Sicher, aber nach der zehnten Abfrage genehmigen Sie, ohne zu lesen, und nichts geht voran, während Sie nicht an der Tastatur sind.
390* **`bypassPermissions`**: genehmigt alles, was Ihre deny- und ask-Regeln nicht abdecken. Das ist nur in einem Wegwerf-Container sinnvoll.
346 391
347***392Der [Auto-Modus](https://code.claude.com/docs/de/permission-modes.md#eliminate-prompts-with-auto-mode) liegt zwischen beiden, und in ihm [starten](https://code.claude.com/docs/de/permission-modes.md#which-mode-a-session-starts-in) interaktive Terminal- und VS Code-Sitzungen. Claude arbeitet, ohne für alltägliche Genehmigungen anzuhalten, und ein separates Klassifikator-Modell prüft Aktionen in [einer festen Reihenfolge](https://code.claude.com/docs/de/permission-modes.md#how-the-classifier-evaluates-actions), bevor sie ausgeführt werden. Es konzentriert sich auf [die Dinge, bei denen Sie möchten, dass eine Person eingreift](https://code.claude.com/docs/de/permission-modes.md#what-the-classifier-blocks-by-default):
348 393
349## Verwalten Sie Ihre Sitzung394* `curl | bash`
395* Production-Deployments und Migrationen
396* Force-Pushes über die Arbeit anderer
397* Sensible Daten, die an externe Endpunkte gesendet werden
398* Aktionen, die eher von Inhalten gesteuert wirken, die Claude gelesen hat, als von Ihnen
350 399
351Konversationen sind persistent und reversibel. Nutzen Sie dies zu Ihrem Vorteil!400Wenn er etwas blockiert, erhalten Sie eine Benachrichtigung, und die Aktion erscheint unter **Recently denied** in `/permissions`, wo Sie sie mit einer manuellen Genehmigung erneut versuchen können. Nach [drei Blockierungen hintereinander](https://code.claude.com/docs/de/permission-modes.md#when-auto-mode-falls-back) (oder zwanzig insgesamt) pausiert der Auto-Modus und fragt wieder Sie.
352 401
353### Korrigieren Sie früh und häufig402Nichts davon ersetzt Ihre deterministischen Kontrollen, weil es *nach* ihnen läuft. deny- und ask-Regeln sowie `PreToolUse`-Hooks greifen, bevor der Klassifikator etwas sieht. Eine deny-Regel blockiert im Auto-Modus also genauso wie überall sonst. Die Sandbox schränkt weiterhin die [Shell-Befehle ein, die sie umschließt](https://code.claude.com/docs/de/sandboxing.md#what-runs-outside-the-sandbox).
354 403
355> [!TIP]404> [!NOTE]
356>405>
357> Korrigieren Sie Claude, sobald Sie bemerken, dass es vom Kurs abweicht.406> Sie können in der Konversation auch `don't push until I've reviewed` sagen, und der Klassifikator [wertet das als Blockierungssignal](https://code.claude.com/docs/de/permission-modes.md#boundaries-you-state-in-conversation). Es ist aber weiterhin ein Modell, das das Transkript liest, und der Satz kann bei der Komprimierung der Konversation verloren gehen. Alles, was wichtig ist, gehört daher in eine deny-Regel.
407
408Das umgekehrte Problem ist, dass der Klassifikator wiederholt etwas stoppt, das in Ihrer Umgebung alltäglich ist. Statt es jedes Mal manuell zu genehmigen, fügen Sie es zu `autoMode.allow` hinzu oder beschreiben Ihre vertrauenswürdige Infrastruktur in der [Auto-Modus-Konfiguration](https://code.claude.com/docs/de/auto-mode-config.md). Diese wird in natürlicher Sprache statt in Mustern geschrieben, und [`/auto-mode-setup`](https://code.claude.com/docs/de/auto-mode-config#generate-environment-entries) kann den `environment`-Teil aus Ihrem Projekt und Ihren letzten Sitzungen für Sie entwerfen:
409
410```json ~/.claude/settings.json theme={null}
411{
412 "autoMode": {
413 "environment": [
414 "$defaults",
415 "Source control: github.com/example-org and every repo under it",
416 "Trusted internal domains: *.internal.example.com"
417 ],
418 "allow": [
419 "$defaults",
420 "Deploying to the staging namespace is fine, it's isolated from production and resets nightly"
421 ]
422 }
423}
424```
358 425
359Die besten Ergebnisse entstehen durch enge Feedback-Schleifen. Obwohl Claude Probleme gelegentlich beim ersten Versuch perfekt löst, führt eine schnelle Korrektur in der Regel zu besseren Lösungen in kürzerer Zeit.426> [!WARNING]
427>
428> Behalten Sie `"$defaults"` in jeder Liste bei, die Sie festlegen, denn ohne diesen Eintrag *ersetzen* Ihre Einträge die integrierten Regeln dieser Liste, statt sie zu ergänzen. Bei `environment` und `allow` würden Sie den integrierten Kontext und die Ausnahmen verlieren, und eine `soft_deny`-Liste ohne ihn verliert die integrierten Blockierungen für Force-Pushes und Production-Deployments.
429>
430> Der `autoMode`-Block muss außerdem in `~/.claude/settings.json` statt im Projekt liegen, weil der Klassifikator `autoMode` in Projekteinstellungen ignoriert.
360 431
361* **`Esc`**: Stoppen Sie Claude mit der `Esc`-Taste mitten in einer Aktion. Der Kontext bleibt erhalten, sodass Sie umleiten können.432Wenn Sie jede Bearbeitung und jeden Befehl lieber sehen möchten, bevor sie ausgeführt werden, wechselt `Shift+Tab` in der Sitzung durch die Berechtigungsmodi, einschließlich Manual, oder Sie starten mit `claude --permission-mode manual` aus Ihrer Shell. Und wenn Manual dann zu oft nachfragt, durchsucht `/fewer-permission-prompts` Ihre letzten Transkripte nach häufigen, nur lesenden Bash- und MCP-Aufrufen und fügt sie einer Allowlist in `.claude/settings.json` hinzu.
362* **`Esc + Esc` oder `/rewind`**: Drücken Sie `Esc` zweimal oder führen Sie `/rewind` aus, um das Rewind-Menü zu öffnen und den vorherigen Konversations- und Code-Status wiederherzustellen, oder fassen Sie eine ausgewählte Nachricht zusammen.
363* **`"Undo that"`**: Lassen Sie Claude seine Änderungen rückgängig machen.
364* **`/clear`**: Setzen Sie den Kontext zwischen nicht zusammenhängenden Aufgaben zurück. Lange Sitzungen mit irrelevantem Kontext können die Leistung verringern.
365 433
366Wenn Sie Claude in einer Sitzung mehr als zweimal zur gleichen Frage korrigiert haben, ist der Kontext mit fehlgeschlagenen Ansätzen überladen. Führen Sie `/clear` aus und beginnen Sie mit einer spezifischeren Eingabeaufforderung neu, die das Gelernte berücksichtigt. Eine saubere Sitzung mit einer besseren Eingabeaufforderung übertrifft fast immer eine lange Sitzung mit angesammelten Korrektionen.434### Ändern Sie Modell und Effort
367 435
368### Verwalten Sie den Kontext aggressiv436[Effort](https://code.claude.com/docs/de/model-config.md#adjust-effort-level) ist die wichtigste Steuerung dafür, wie lange Claude nachdenkt, und ersetzt das meiste, was man früher mit Prompt-Formulierungen gemacht hat. Claude Opus 5.5, Sonnet 5.5 und Haiku 5.5 verwenden standardmäßig `medium`, was für alltägliche Feature-Arbeit mit klarem Umfang völlig ausreicht. Wann Sie es mit `/effort` in der Sitzung ändern sollten:
369 437
370> [!TIP]438* Erhöhen Sie es mit `/effort high` oder `/effort xhigh`, wenn es darauf ankommt, Fälle zu erfassen, die leicht übersehen werden. Denken Sie an einen Fehler in Code, den Sie nicht geschrieben haben, einen instabilen Test oder eine Schemaänderung, bei der Claude jeden Leser der alten Struktur finden muss. Claude prüft dann mehr Edge Cases und verifiziert mehr von seiner Arbeit, bevor es antwortet. Dafür gehen die zusätzliche Zeit und die zusätzlichen Token drauf.
371>439* Senken Sie es mit `/effort low`, wenn Sie schnell hin und her arbeiten und ohnehin jedes Ergebnis prüfen: Brainstorming, ein erster Entwurf, eine Umbenennung über ein paar Dateien. Claude liefert Ihnen schneller einen Ausgangspunkt, und da Sie jeden Schritt steuern, hätte die zusätzliche Überlegung außer der Wartezeit kaum etwas geändert.
372> Führen Sie `/clear` zwischen nicht zusammenhängenden Aufgaben aus, um den Kontext zurückzusetzen.440* Heben Sie `max` für ein schwieriges Problem auf, das Claude ohne Sie durcharbeiten soll, etwa die Suche nach einer Sicherheitslücke. Bei gewöhnlichen Aufgaben neigt es dazu, zu viel nachzudenken, sodass Sie mehr für eine Antwort bezahlen, die womöglich nicht besser ist als mit `high`.
441* Wenn nur die nächste Nachricht es braucht, etwa eine knifflige Frage mitten in ansonsten alltäglicher Arbeit, schreiben Sie [`ultrathink`](https://code.claude.com/docs/de/model-config#use-ultrathink-for-one-off-deep-reasoning) in diesen Prompt, statt die Einstellung zu ändern.
373 442
374Claude Code komprimiert automatisch die Konversationshistorie, wenn Sie sich den Kontextgrenzen nähern, wodurch wichtiger Code und Entscheidungen erhalten bleiben und Platz freigegeben wird.443Was das Modell selbst angeht, bewältigt das Standardmodell Opus 5.5 die meisten Programmieraufgaben gut, und Sonnet kostet bei alltäglicher Arbeit weniger. [Claude Fable 5.1](https://code.claude.com/docs/de/model-config.md#work-with-fable) steht zur Verfügung, wenn Sie es ausdrücklich mit `/model fable` auswählen, und Haiku eignet sich gut für Subagenten mit einfachen Aufgaben. Unter [Modellkonfiguration](https://code.claude.com/docs/de/model-config.md) finden Sie die vollständige Liste pro Plan und Anbieter.
375 444
376Während langer Sitzungen kann sich das Kontextfenster von Claude mit irrelevanten Konversationen, Dateiinhalten und Befehlen füllen. Dies kann die Leistung verringern und Claude manchmal ablenken.445### Wissen Sie, was Subagenten kosten
377 446
378* Verwenden Sie `/clear` häufig zwischen Aufgaben, um das Kontextfenster vollständig zurückzusetzen447Claude delegiert selbstständig an [Subagenten](https://code.claude.com/docs/de/sub-agents.md):
379* Wenn die automatische Komprimierung ausgelöst wird, fasst Claude zusammen, was am wichtigsten ist, einschließlich Code-Muster, Dateizustände und wichtiger Entscheidungen
380* Für mehr Kontrolle führen Sie `/compact <instructions>` aus, wie `/compact Focus on the API changes`
381* Um nur einen Teil der Konversation zu komprimieren, verwenden Sie `Esc + Esc` oder `/rewind`, wählen Sie einen Nachricht-Checkpoint aus und wählen Sie **Summarize from here** oder **Summarize up to here**. Das erste komprimiert Nachrichten von diesem Punkt an, während es den früheren Kontext intakt hält; das zweite komprimiert frühere Nachrichten, während es die neuesten vollständig behält. Siehe [die Zusammenfassungsoptionen des Rewind-Menüs](https://code.claude.com/docs/de/checkpointing.md#rewind-and-summarize).
382* Passen Sie das Komprimierungsverhalten in CLAUDE.md mit Anweisungen wie `"When compacting, always preserve the full list of modified files and any test commands"` an, um sicherzustellen, dass kritischer Kontext die Zusammenfassung übersteht
383* Für Fragen, die nicht im Kontext bleiben müssen, verwenden Sie [`/btw`](https://code.claude.com/docs/de/interactive-mode#side-questions-with-%2Fbtw). Die Antwort gelangt nie in die Konversationshistorie, sodass Sie ein Detail überprüfen können, ohne den Kontext zu vergrößern.
384 448
385### Verwenden Sie Subagenten für Untersuchungen449* Breite Suchen in der Codebasis gehen an den integrierten Explore-Agenten.
450* Nebenaufgaben werden [geforkt](https://code.claude.com/docs/de/sub-agents.md#fork-the-current-conversation), solange der Fork-Modus aktiv ist (die Standardeinstellung).
451* Die Subagenten, die es startet, laufen standardmäßig im Hintergrund, sodass Ihre Hauptkonversation weiterläuft.
386 452
387> [!TIP]453Sie müssen selten um etwas davon bitten, aber es hilft zu wissen, was Sie bekommen und was es kostet.
388>
389> Delegieren Sie Recherchen mit `"use subagents to investigate X"`. Sie erkunden in einem separaten Kontext und halten Ihre Hauptkonversation sauber für die Implementierung.
390 454
391Da Kontext Ihre grundlegende Einschränkung ist, verwenden Sie Subagenten, um Recherchen aus ihm herauszuhalten. Wenn Claude eine Codebasis recherchiert, liest es viele Dateien, die alle Ihren Kontext verbrauchen. Subagenten laufen in separaten Kontextfenstern und berichten Zusammenfassungen zurück:455Subagenten lohnen sich in diesen Situationen:
392 456
393```text wrap theme={null}457* Unabhängige Arbeitspakete gleichzeitig ausführen, damit die gesamte Aufgabe schneller fertig ist
394Use subagents to investigate how our authentication system handles token458* Lange Ausgaben, etwa einen vollständigen Testlauf oder eine breite Suche, aus Ihrer Hauptkonversation heraushalten, wo sie sonst für den Rest der Sitzung mitgeschleppt würden
395refresh, and whether we have any existing OAuth utilities I should reuse.459* Einen Reviewer bekommen, der nicht gesehen hat, wie der Code geschrieben wurde
396```460* Einer Aufgabe weniger Tools geben, als die Hauptsitzung hat, etwa einem Reviewer, der lesen, aber nicht bearbeiten kann
397 461
398Sie können Subagenten auch zur Überprüfung verwenden, nachdem Claude etwas implementiert hat. Siehe [Fügen Sie einen adversarialen Überprüfungsschritt hinzu](#add-an-adversarial-review-step).462Was sie Sie kosten, sind vor allem Token, denn jeder Subagent sendet eigene Anfragen, und diese zählen zur selben Nutzung wie Ihre Hauptkonversation. Manchmal kostet es auch Zeit: Ein neuer Subagent muss zuerst Kontext sammeln, den Ihre Konversation bereits hatte, und kann daher am Ende *langsamer* sein, als die Aufgabe direkt dort zu erledigen, wo Sie sind.
399 463
400### Rewind mit Checkpoints464Und standardmäßig ist es dasselbe Modell (oder ein kleineres) an derselben Aufgabe. Sie gewinnen dadurch Parallelität oder einen frischen Blick, aber keine klügere Antwort.
401 465
402> [!TIP]466Um weniger für sie auszugeben:
403>
404> Jede Eingabeaufforderung, die Sie senden und die einen Turn startet, erstellt einen Checkpoint. Sie können Konversation, Code oder beides auf jeden vorherigen Checkpoint zurücksetzen.
405 467
406Claude erstellt automatisch Snapshots von Dateien vor jeder Änderung, sodass ein Checkpoint sie wiederherstellen kann. Drücken Sie zweimal `Escape` oder führen Sie `/rewind` aus, um das Rewind-Menü zu öffnen. Sie können nur die Konversation wiederherstellen, nur den Code wiederherstellen, beides wiederherstellen oder eine ausgewählte Nachricht zusammenfassen. Siehe [Checkpointing](https://code.claude.com/docs/de/checkpointing.md) für Details.468* Setzen Sie [`model: haiku`](https://code.claude.com/docs/de/sub-agents#choose-a-model) in der Definition eines Subagenten, wenn seine Arbeit einfach ist, etwa die Dateien zu sammeln, die ein Modul importieren, oder Links in der Dokumentation zu prüfen. Eine solche Aufgabe braucht nicht das größere Modell, und Haiku kostet pro Anfrage deutlich weniger.
469* Bitten Sie um kurze Zusammenfassungen als Rückmeldung, damit zwanzig Ergebnisse Ihren Kontext nicht trotzdem füllen.
470* Prüfen Sie mit `/usage`, welchen Anteil Ihrer Nutzung jeder Subagententyp ausmacht, damit Sie erkennen, welche ihre Kosten wert sind.
471* Geben Sie einem benutzerdefinierten Subagenten in `.claude/agents/` nur `tools: Read, Grep, Glob`. Dann ist er ein Reviewer, der nichts bearbeiten kann, und diese Einschränkung wird von Claude Code durchgesetzt, statt in einem Prompt erbeten zu werden.
407 472
408Anstatt jeden Schritt sorgfältig zu planen, können Sie Claude sagen, etwas Riskantes zu versuchen. Wenn es nicht funktioniert, rewind und versuchen Sie einen anderen Ansatz. Checkpoints werden mit der Konversation gespeichert, sodass Sie Ihr Terminal schließen, die Sitzung später fortsetzen und immer noch rewind können.473Dieser Reviewer ist eine kurze Datei, `.claude/agents/reviewer.md`:
409 474
410> [!WARNING]475```markdown .claude/agents/reviewer.md theme={null}
411>476---
412> Checkpoints verfolgen nur Änderungen, die durch Claudes Datei-Bearbeitungswerkzeuge vorgenommen wurden. Änderungen, die durch Bash-Befehle oder externe Prozesse vorgenommen wurden, werden nicht erfasst. Dies ist kein Ersatz für git.477name: reviewer
478description: Reviews changed files against the spec they were built from. Use after implementing a feature, before opening the PR.
479tools: Read, Grep, Glob
480---
481You're reviewing code you didn't write. Compare the changed files against the spec you're given,
482check that every requirement is implemented and the listed edge cases have tests,
483and report only the gaps that affect correctness. Skip style.
484```
413 485
414### Setzen Sie Konversationen fort486Bitten Sie Claude `have the reviewer compare the rate limiter against SPEC.md`, und die Lücken kommen in Ihre Sitzung zurück, wo Claude sie beheben kann.
415 487
416> [!TIP]488### Halten Sie Kosten und Kontext gering
417>
418> Benennen Sie Sitzungen mit `/rename` und behandeln Sie sie wie Branches: Jeder Arbeitsstrom erhält seinen eigenen persistenten Kontext.
419 489
420Claude Code speichert Konversationen lokal, sodass Sie den Kontext nicht erneut erklären müssen, wenn eine Aufgabe mehrere Sitzungen umfasst. Führen Sie [`claude --continue`](https://code.claude.com/docs/de/sessions#resume-a-session) aus, um dort weiterzumachen, wo Sie aufgehört haben, oder `claude --resume`, um aus einer Liste auszuwählen. Geben Sie Sitzungen aussagekräftige Namen wie `oauth-migration`, damit Sie sie später finden können. Siehe [Verwalten Sie Sitzungen](https://code.claude.com/docs/de/sessions.md) für den vollständigen Satz von Resume-, Branch- und Benennungskontrollen.490Mit einem Fenster von 1M Token bei den meisten aktuellen Modellen und einer Komprimierung nahe dessen Obergrenze geht Ihnen selten der Kontext aus. Sie können aber trotzdem für Kontext *bezahlen*, den Sie nicht brauchen. Jede Anfrage sendet die gesamte Konversation, sodass eine Sitzung, die drei unzusammenhängende Aufgaben angesammelt hat, bei jedem Turn der vierten alle drei erneut liest. Das ist [vergünstigt, solange der Cache warm ist](https://code.claude.com/docs/de/costs.md#why-usage-climbs-in-a-long-session), und kostet den vollen Preis, sobald er abläuft.
421 491
422***492[`/usage`](https://code.claude.com/docs/de/costs) ist die erste Anlaufstelle. Bei Pro, Max, Team und Enterprise schlüsselt es Ihre Nutzung nach Skill, Subagent, Plugin und MCP-Server auf. Außerdem kennzeichnet es Muster wie langen Kontext oder häufige Cache-Misses, sobald eines davon 10 % Ihrer Nutzung überschreitet. Von dort aus die üblichen Lösungen:
423 493
424## Automatisieren und skalieren Sie494* `/clear` zwischen unzusammenhängenden Aufgaben. Es kostet nichts und sorgt dafür, dass die nächste Aufgabe nicht weiter für den Verlauf der vorherigen bezahlt. `/clear oauth-migration` benennt die Sitzung, die Sie verlassen, damit Sie später zu ihr zurückkehren können.
495* `/compact` mit einem Fokus, etwa `/compact keep the API changes and the test commands`. In einer langen Sitzung ist `/compact` selbst eine große Anfrage, da es die gesamte Konversation liest, um sie zusammenzufassen, und das umso mehr, wenn der Cache abgelaufen ist.
496* Behalten Sie Hintergrundarbeit im Blick: Ein `/loop`, die Prüfung eines Ziels nach jedem Turn und Claudes eigene Subagenten senden alle weiterhin Anfragen, während Sie nicht tippen.
425 497
426Sobald Sie mit einem Claude effektiv sind, multiplizieren Sie Ihre Ausgabe mit parallelen Sitzungen, nicht interaktivem Modus und Fan-Out-Mustern.498> [!NOTE]
499>
500> Der [Prompt-Cache](https://code.claude.com/docs/de/prompt-caching.md) hält bei einem Abonnement etwa eine Stunde und bei einem API-Schlüssel, einem Cloud-Anbieter oder Nutzungsguthaben fünf Minuten. Subagenten bekommen fünf Minuten, sofern Sie das nicht ändern.
501>
502> Beim einstündigen Cache wird eine inaktive Sitzung mit mehr als etwa 200K Token kurz vor Ablauf des Caches komprimiert, sodass Sie nach der Mittagspause mit einer Zusammenfassung weitermachen. Wenn Sie den Verlauf gar nicht brauchen, ist eine neue Sitzung trotzdem günstiger.
427 503
428### Führen Sie den nicht interaktiven Modus aus504## Steuern Sie die Sitzung
429 505
430> [!TIP]506> [!TIP]
431>507>
432> Verwenden Sie `claude -p "prompt"` in CI, Pre-Commit-Hooks oder Skripten. Fügen Sie `--output-format stream-json --verbose` für Streaming-JSON-Ausgabe hinzu.508> Beobachten Sie die erste Minute, drücken Sie `Esc`, sobald Claude abschweift, und führen Sie nach zwei fehlgeschlagenen Korrekturen `/clear` aus und schreiben einen besseren Prompt, statt eine dritte Korrektur zu versuchen.
433 509
434Mit `claude -p "your prompt"` können Sie Claude nicht interaktiv ohne einen interaktiven Prompt ausführen. Der Lauf erstellt immer noch eine wiederaufnehmbare Sitzung, es sei denn, Sie übergeben `--no-session-persistence`. Mit dem [nicht interaktiven Modus](https://code.claude.com/docs/de/headless.md) integrieren Sie Claude in CI-Pipelines, Pre-Commit-Hooks oder jeden automatisierten Workflow. Die Ausgabeformate ermöglichen es Ihnen, Ergebnisse programmgesteuert zu analysieren: Klartext, JSON oder Streaming-JSON.510Keine Konfiguration ersetzt es, die erste Minute zu beobachten und einzugreifen, wenn Claude in eine Richtung geht, die Sie nicht beabsichtigt haben. Dafür gibt es nur wenige Steuerelemente, und es lohnt sich, sie auswendig zu kennen:
435 511
436```bash theme={null}512* `Esc` stoppt Claude mitten in einer Aktion und behält alles bis zu diesem Punkt, sodass Sie umlenken können, ohne Arbeit zu verlieren.
437# One-off queries513* `/rewind` oder zweimal `Esc` bei leerem Prompt öffnet das [Rewind-Menü](https://code.claude.com/docs/de/checkpointing.md#rewind-and-summarize), in dem Sie den Code, die Konversation oder beides auf einen früheren Prompt zurücksetzen. Dadurch ist es risikoarm, zuerst den mutigeren Ansatz auszuprobieren und zurückzuspulen, wenn er nicht funktioniert. Dasselbe Menü kann auch einen Teil der Konversation zusammenfassen, wenn dieser veraltet ist.
438claude -p "Explain what this project does"514* `/clear` fängt neu an. Wenn Sie dasselbe zweimal korrigiert haben und es immer noch falsch ist, ergänzt eine dritte Korrektur vor allem eine Konversation, die bereits zwei fehlgeschlagene Versuche enthält, die Claude immer wieder liest. `/clear` plus ein neuer Prompt, der das Gelernte einbezieht, funktioniert fast jedes Mal besser.
439
440# Structured output for scripts
441claude -p "List all API endpoints" --output-format json
442 515
443# Streaming for real-time processing516> [!WARNING]
444claude -p "Analyze this log file" --output-format stream-json --verbose517>
445```518> Checkpoints umfassen die Dateien, die Claude in Ihrer Hauptkonversation mit seinen eigenen Datei-Tools bearbeitet hat. Eine Datei, die nur ein Bash-Befehl verändert hat, wird daher [nicht wiederhergestellt](https://code.claude.com/docs/de/checkpointing.md#bash-command-changes-not-tracked). Sie funktionieren zusammen mit Git, statt es zu ersetzen.
446 519
447Der erste Befehl gibt Klartext aus. Das `json`-Format gibt ein einzelnes JSON-Objekt mit einem `result`-Feld zurück. Das `stream-json`-Format gibt ein JSON-Objekt pro Zeile aus, beginnend mit einem Init-Event.520Zwei kleinere: [`/btw`](https://code.claude.com/docs/de/interactive-mode#side-questions-with-%2Fbtw) beantwortet eine kurze Frage, ohne dem Verlauf etwas hinzuzufügen. Und für Arbeit, die sich über mehrere Tage erstreckt, benennt `/rename oauth-migration` die Sitzung, sodass [`claude --resume oauth-migration`](https://code.claude.com/docs/de/sessions#resume-by-session-id-or-name) aus Ihrer Shell sie später wieder aufnimmt, einschließlich Checkpoints. `claude --continue` setzt die letzte fort.
448 521
449### Führen Sie mehrere Claude-Sitzungen aus522## Lassen Sie Claude ohne Sie arbeiten
450 523
451> [!TIP]524> [!TIP]
452>525>
453> Führen Sie mehrere Claude-Sitzungen parallel aus, um die Entwicklung zu beschleunigen, isolierte Experimente auszuführen oder komplexe Workflows zu starten.526> Bevor ein Lauf unbeaufsichtigt bleibt, stellen Sie sicher, dass er weiß, wie „fertig“ aussieht, seine eigene Arbeit prüfen kann und nur anfassen kann, was er soll. Geben Sie ihm eine Obergrenze für Turns oder Ausgaben, und lassen Sie am Ende eine Person das Ergebnis genehmigen.
454
455Wählen Sie den parallelen Ansatz, der zu dem Grad der Koordination passt, den Sie selbst durchführen möchten, und fügen Sie Messaging hinzu, wenn die Sitzungen Erkenntnisse untereinander weitergeben müssen:
456 527
457* [Worktrees](https://code.claude.com/docs/de/worktrees.md): Führen Sie separate CLI-Sitzungen in isolierten Git-Checkouts aus, damit Änderungen nicht kollidieren528Alles auf dieser Seite wird etwas wichtiger, sobald Sie nicht da sind, um Fehler abzufangen. Solange Sie zusehen, ist es keine große Sache, wenn Claude ein Stück Kontext fehlt: Sie bemerken es innerhalb von ein oder zwei Nachrichten und sagen es ihm. Bei einem Lauf, den Sie vor dem Schlafengehen gestartet haben, sagt es ihm niemand, und am nächsten Morgen stellen Sie fest, dass es die ganze Nacht auf einer falschen Annahme aufgebaut hat.
458* [Cross-Session-Messaging](https://code.claude.com/docs/de/cross-session-messaging.md): Lassen Sie die Sitzungen, die Sie selbst ausführen, Erkenntnisse untereinander weitergeben
459* [Desktop-App](https://code.claude.com/docs/de/desktop.md#work-in-parallel-with-sessions): Verwalten Sie mehrere lokale Sitzungen visuell, optional jede in ihrem eigenen Worktree
460* [Claude Code in der Cloud verwenden](https://code.claude.com/docs/de/claude-code-on-the-web.md): Führen Sie Sitzungen standardmäßig auf von Anthropic verwalteter Infrastruktur aus
461* [Agent-Ansicht](https://code.claude.com/docs/de/agent-view.md): Research Preview. Führen Sie `claude agents` aus, um Sitzungen zu starten, die im Hintergrund weiterhin ausgeführt werden, und beobachten Sie sie von einem Bildschirm aus
462* [Agent-Teams](https://code.claude.com/docs/de/agent-teams.md): Experimentell und standardmäßig deaktiviert. Automatisierte Koordination mehrerer Sitzungen mit gemeinsamen Aufgaben, Messaging und einem Team Lead
463 529
464Über die Parallelisierung von Arbeit hinaus ermöglichen mehrere Sitzungen qualitätsorientierte Workflows. Ein frischer Kontext verbessert das Code-Review, da Claude nicht durch Code, den es gerade geschrieben hat, voreingenommen ist.530Bevor Sie eine Aufgabe allein laufen lassen, lohnt es sich, diese fünf Fragen mit genau dieser Aufgabe im Kopf durchzugehen:
465 531
466Verwenden Sie beispielsweise ein Writer/Reviewer-Muster:5321. Weiß es, wie „fertig“ aussieht? Eine Zielbedingung, eine Spezifikationsdatei oder ein fehlschlagender Test, den es grün machen muss.
5332. Kann es seine eigene Arbeit prüfen? Die Test-Suite, ein `Stop`-Hook, irgendein Review-Schritt.
5343. Was darf es anfassen? Berechtigungsregeln, `dontAsk`, die Sandbox, ein Worktree, der eine Branch, auf den es pushen darf.
5354. Was stoppt es? `--max-turns`, `--max-budget-usd`, ein Ausgabenlimit.
5365. Wohin geht das Ergebnis, und wer gibt es frei? Ein PR, ein Kommentar oder eine Zusammenfassung, und dann eine Person, die den Merge, das Deployment oder alles andere genehmigt, was sich nicht rückgängig machen lässt.
467 537
468| Sitzung A (Writer) | Sitzung B (Reviewer) |538Sobald es läuft, bringt Claude eine lange Aufgabe selbstständig zu Ende. Bei Ihnen bleibt, sie zu starten, festzulegen, was „fertig“ diesmal bedeutet, und am Ende den Merge zu genehmigen.
469| - | - |
470| `Implement a rate limiter for our API endpoints` | |
471| | `Review the rate limiter implementation in @src/middleware/rateLimiter.ts. Look for edge cases, race conditions, and consistency with our existing middleware patterns.` |
472| `Here's the review feedback: [Session B output]. Address these issues.` | |
473 539
474Sie können etwas Ähnliches mit Tests tun: Lassen Sie einen Claude Tests schreiben und dann einen anderen Code, der diese Tests besteht.540### Führen Sie Claude aus einem Skript aus
475 541
476### Fan Out über Dateien542[`claude -p "prompt"`](https://code.claude.com/docs/de/headless) läuft einmal und beendet sich. So landet Claude Code in CI-Jobs, Git-Hooks und Shell-Schleifen.
477
478> [!TIP]
479>
480> Durchlaufen Sie Aufgaben in einer Schleife und rufen Sie für jede `claude -p` auf. Verwenden Sie `--allowedTools`, um Tools für Batch-Operationen vorab zu genehmigen.
481 543
482Für große Migrationen oder Analysen können Sie Arbeit über viele parallele Claude-Aufrufe verteilen. Führen Sie [`/batch <instruction>`](https://code.claude.com/docs/de/commands#all-commands) aus, damit Claude die Änderung auf 5 bis 30 Subagenten verteilt. Jeder Subagent arbeitet in seinem eigenen Worktree. Um den Fan-Out stattdessen von Ihrem eigenen Skript aus zu steuern, schleifen Sie über `claude -p`:544In einem Skript möchten Sie fast immer ein paar weitere Flags:
483 545
484**1. Generieren Sie eine Aufgabenliste**546* [`--bare`](https://code.claude.com/docs/de/headless#start-faster-with-bare-mode) überspringt Hooks, Skills, Plugins, MCP-Server und `CLAUDE.md`-Dateien, sowohl die des Repos als auch die des Rechners, sodass der Lauf überall dasselbe tut. Außerdem wird Ihre claude.ai-Anmeldung nie verwendet: Die Authentifizierung kommt aus `ANTHROPIC_API_KEY`, einem `apiKeyHelper` in der Datei, die Sie mit `--settings` übergeben, oder den Anmeldedaten Ihres Cloud-Anbieters.
547* `--append-system-prompt`, `--mcp-config` und `--settings` übergeben explizit, was der Lauf *tatsächlich* braucht.
548* `--allowedTools` genehmigt seine Tools vorab, und [`--permission-mode dontAsk`](https://code.claude.com/docs/de/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) lehnt alles andere ab, das eine Abfrage ausgelöst hätte.
549* `--output-format json` liefert Ihnen ein einzelnes Ergebnisobjekt zum Parsen, und `stream-json` mit `--verbose` streamt Ereignisse, während sie auftreten.
485 550
486Lassen Sie Claude die Liste der Dateien, die migriert werden müssen, in eine Datei schreiben, damit die Schleife im nächsten Schritt sie lesen kann, mit einem Prompt wie `list all 2,000 Python files that need migrating and save the list to files.txt`551Zusammengesetzt sieht das so aus:
487
488**2. Schreiben Sie ein Skript, um die Liste zu durchlaufen**
489 552
490```bash theme={null}553```bash theme={null}
491for file in $(cat files.txt); do554for file in $(cat files.txt); do
492 claude -p "Migrate $file from Python 2 to Python 3. Return OK or FAIL." \555 claude --bare -p "Migrate $file to the new logger API and commit. Reply OK or FAIL." \
493 --allowedTools "Edit,Bash(git commit *)" \556 --allowedTools "Read,Edit,Bash(git add *),Bash(git commit *)" \
494 --permission-mode dontAsk557 --permission-mode dontAsk \
558 --max-turns 20
495done559done
496```560```
497 561
498**3. Testen Sie mit ein paar Dateien, dann führen Sie es für alle aus**562Wenn ein Lauf beendet ist, antwortet Claude mit `OK` oder `FAIL`, und ein Lauf, der das Turn-Limit erreicht, endet stattdessen mit einem Fehler. Probieren Sie es zuerst mit drei Dateien aus, sehen Sie, was schiefgeht, korrigieren Sie den Prompt und führen Sie dann den Rest aus.
499
500Verfeinern Sie Ihren Prompt basierend auf dem, was bei den ersten 2-3 Dateien schiefgeht, dann führen Sie ihn für den vollständigen Satz aus. Das `--allowedTools`-Flag genehmigt die Tools, die die Migration benötigt, vorab. [`--permission-mode dontAsk`](https://code.claude.com/docs/de/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) lehnt alles andere ab, was eine Genehmigung erfordern würde. Das ist wichtig, wenn Sie unbeaufsichtigt laufen, allerdings kann ein von Ihnen installierter [Mod](https://code.claude.com/docs/de/plugins/mods/overview.md) einige dieser Aufrufe dennoch genehmigen.
501 563
502Sie können Claude auch in vorhandene Daten-/Verarbeitungs-Pipelines integrieren:564Der Auto-Modus funktioniert auch mit `-p`, wenn Sie `--permission-mode auto` übergeben. In einem nicht interaktiven Lauf verweigert eine Blockierung durch den Klassifikator nur diese eine Aktion, und Claude macht weiter. Wiederholte Blockierungen pausieren den Lauf nicht so, wie sie es im Terminal tun. Lesen Sie, [wie die Schwellenwerte dort gelten](https://code.claude.com/docs/de/permission-modes.md#repeated-block-thresholds), bevor Sie sich darauf verlassen.
503 565
504```bash theme={null}566### Starten Sie Läufe nach Zeitplan oder bei einem Ereignis
505claude -p "<your prompt>" --output-format json | your_command
506```
507 567
508### Führen Sie autonom mit dem Auto-Modus aus568Sobald ein Lauf begonnen hat, kann Claude den Rest selbst erledigen. Das Einzige, was es nicht kann, ist zu entscheiden, *anzufangen*. Also muss etwas anderes das tun: Sie, ein Timer oder ein Ereignis wie eine fehlgeschlagene CI-Prüfung oder ein neuer PR.
509 569
510Für ununterbrochene Ausführung mit Sicherheitsprüfungen im Hintergrund verwenden Sie den [Auto-Modus](https://code.claude.com/docs/de/permission-modes.md#eliminate-prompts-with-auto-mode). Ein Klassifikator-Modell überprüft Befehle vor ihrer Ausführung und blockiert Rechteausweitungen über den Aufgabenumfang hinaus, unbekannte Infrastruktur und durch feindselige Inhalte gesteuerte Aktionen, während es alltägliche Arbeit ohne Berechtigungsabfragen durchlaufen lässt.570In einer offenen Sitzung ist das [`/loop`](https://code.claude.com/docs/de/scheduled-tasks#run-a-prompt-repeatedly-with-%2Floop), das einen Prompt in einem Intervall wiederholt:
511 571
512```bash theme={null}572```text theme={null}
513claude --permission-mode auto -p "fix all lint errors"573/loop 15m check CI on this branch, and if it's red pull the failing job's log, fix it and push
514```574```
515 575
516Wenn der Klassifikator bei einem nicht interaktiven Lauf mit dem `-p`-Flag Aktionen wiederholt blockiert, stoppt Claude Code den Lauf nicht. Siehe [wenn der Auto-Modus zurückfällt](https://code.claude.com/docs/de/permission-modes.md#when-auto-mode-falls-back) für das, was stattdessen passiert, und für die Schwellenwerte.576Jeder Lauf ist ein weiterer Turn in derselben Sitzung, lassen Sie also keinen in einer langen Konversation laufen. Für alles, was passieren soll, während Ihr Laptop zugeklappt ist, richtet [`/schedule`](https://code.claude.com/docs/de/routines#create-from-the-cli) eine [geplante Cloud-Aufgabe](https://code.claude.com/docs/de/routines.md) ein, die nach einem Timer läuft. Dafür ist eine claude.ai-Anmeldung statt eines API-Schlüssels erforderlich. Sie können einen GitHub-Ereignis-Trigger hinzufügen, indem Sie Claude darum bitten, oder einen API-Trigger unter [claude.ai/code/routines](https://claude.ai/code/routines).
517
518### Fügen Sie einen kritischen Überprüfungsschritt hinzu
519 577
520> [!TIP]578> [!WARNING]
521>579>
522> Bevor Sie eine Aufgabe als erledigt betrachten, lassen Sie einen Subagenten den Diff in einem frischen Kontext überprüfen und Lücken melden.580> Bevor Sie eine geplante Cloud-Aufgabe laufen lassen, schützen Sie `main` mit einer [GitHub-Branch-Regel, die die Aufgabe nicht umgehen kann](https://code.claude.com/docs/de/routines.md#repositories-and-branch-permissions). Und beobachten Sie die ersten paar Läufe von allem Neuen, bevor Sie ihm unbeaufsichtigt vertrauen.
523
524Je länger Claude unbeaufsichtigt arbeitet, desto wichtiger wird eine unabhängige Überprüfung, bevor Sie die Arbeit als erledigt zählen. Ein Reviewer, der in einem frischen [Subagenten](https://code.claude.com/docs/de/sub-agents.md)-Kontext läuft, sieht nur den Diff und die Kriterien, die Sie ihm geben, nicht die Begründung, die die Änderung hervorgebracht hat, daher bewertet er das Ergebnis nach seinen eigenen Maßstäben.
525 581
526Für eine Korrektheitsprüfung führen Sie den gebündelten [`/code-review`-Skill](https://code.claude.com/docs/de/commands) aus, der den aktuellen Diff in einem frischen Subagenten auf Fehler überprüft und Ergebnisse an die Sitzung zurückgibt. Um den Diff stattdessen gegen Ihren Plan zu überprüfen, schreiben Sie den Review-Prompt selbst. Nennen Sie die zu überprüfende Arbeit, den Plan, gegen den überprüft werden soll, und was als Ergebnis zählt:582### Führen Sie Sitzungen parallel aus
527 583
528```text wrap theme={null}584Wenn mehrere separate Arbeiten gleichzeitig laufen, geben Sie jeder einen eigenen Checkout, damit die Bearbeitungen nicht kollidieren können. [`claude -w feature-auth`](https://code.claude.com/docs/de/worktrees#start-claude-in-a-worktree) startet eine Sitzung in einem neuen Worktree, die [Desktop-App](https://code.claude.com/docs/de/desktop.md#work-in-parallel-with-sessions) führt mehrere davon nebeneinander aus, und [Cloud-Sitzungen](https://code.claude.com/docs/de/claude-code-on-the-web.md) führen sie in der Cloud statt auf Ihrem Rechner aus.
529Use a subagent to review the rate limiter diff against PLAN.md. Check that
530every requirement is implemented, the listed edge cases have tests, and
531nothing outside the task's scope changed. Report gaps, not style preferences.
532```
533 585
534Da der Reviewer als Subagent läuft, erhält die implementierende Sitzung die Lücken direkt und kann sie beheben und erneut überprüfen, ohne dass Sie Erkenntnisse zwischen Fenstern kopieren müssen.586Ein Worktree ist ein frischer Checkout, das heißt, von Git ignorierte Dateien wie `.env` sind nicht vorhanden und Abhängigkeiten sind nicht installiert. Für Ersteres listen Sie die benötigten ignorierten Dateien in einer [`.worktreeinclude`](https://code.claude.com/docs/de/worktrees#copy-gitignored-files-into-worktrees) im Repo-Stammverzeichnis auf (gleiche Syntax wie `.gitignore`), und Claude Code kopiert sie in jeden Worktree, den es erstellt:
535 587
536Ein Reviewer, der Lücken finden soll, wird normalerweise einige melden, auch wenn die Arbeit solide ist, weil genau das seine Aufgabe ist. Das Verfolgen jedes Ergebnisses führt zu Überentwicklung: zusätzliche Abstraktionsebenen, defensiver Code und Tests für Fälle, die nicht vorkommen können. Sagen Sie dem Reviewer, dass er nur Lücken kennzeichnen soll, die die Korrektheit oder die angegebenen Anforderungen beeinflussen, und behandeln Sie den Rest als optional.588```text .worktreeinclude theme={null}
589.env
590.env.local
591config/dev-credentials.json
592```
537 593
538***594Beschränken Sie sich auf kleine Dateien: Sie werden kopiert statt verlinkt, `node_modules` darin würde also eine vollständige Kopie pro Worktree bedeuten. Für große Verzeichnisse gibt es die Einstellung [`worktree.symlinkDirectories`](https://code.claude.com/docs/de/settings-reference#worktree-symlinkdirectories), oder Sie halten den Installationsbefehl in `CLAUDE.md` fest, damit Claude ihn ausführt, wann immer es in einem neuen Checkout startet.
539 595
540## Vermeiden Sie häufige Fehlermuster596Aufräumen müssen Sie dabei selten selbst:
541 597
542Dies sind häufige Fehler. Sie früh zu erkennen spart Zeit:598* Wenn Sie eine unbenannte Worktree-Sitzung beenden, [entfernt Claude Code den Worktree](https://code.claude.com/docs/de/worktrees.md#clean-up-worktrees), sofern nichts darin ist. Bei einer benannten Sitzung oder einer mit Änderungen fragt es, was zu tun ist.
599* Subagenten-Worktrees verschwinden, wenn der Subagent ohne Änderungen fertig wird.
600* Zurückgebliebene Worktrees von Subagenten und Hintergrundsitzungen werden entfernt, sobald sie älter als `cleanupPeriodDays` sind und keine Arbeit enthalten.
543 601
544* **Die Kitchen-Sink-Session.** Sie beginnen mit einer Aufgabe, dann fragen Claude etwas Unverwandtes, dann gehen Sie zurück zur ersten Aufgabe. Der Kontext ist voll mit irrelevanten Informationen.602> [!NOTE]
545 > **Lösung**: `/clear` zwischen nicht verwandten Aufgaben.603>
546* **Immer wieder korrigieren.** Claude macht etwas falsch, Sie korrigieren es, es ist immer noch falsch, Sie korrigieren erneut. Der Kontext ist mit fehlgeschlagenen Ansätzen verschmutzt.604> Einen `claude -p --worktree`-Lauf räumen Sie selbst auf, da er sich ohne Nachfrage beendet. Entfernen Sie solche Worktrees mit `git worktree remove <path>`, und wenn Git sich weigert, weil der Worktree gesperrt ist, führen Sie zuerst `git worktree unlock <path>` aus.
547 > **Lösung**: Nach zwei fehlgeschlagenen Korrektionen `/clear` und schreiben Sie einen besseren anfänglichen Prompt, der das Gelernte einbezieht.
548* **Die über-spezifizierte CLAUDE.md.** Wenn Ihre CLAUDE.md zu lang ist, ignoriert Claude die Hälfte davon, weil wichtige Regeln in dem Lärm verloren gehen.
549 > **Lösung**: Rücksichtslos bereinigen. Wenn Claude etwas bereits ohne die Anweisung richtig macht, löschen Sie es oder konvertieren Sie es in einen Hook.
550* **Die Trust-then-Verify-Lücke.** Claude produziert eine plausibel aussehende Implementierung, die Edge Cases nicht behandelt.
551 > **Lösung**: Geben Sie immer Überprüfung an (Tests, Skripte, Screenshots). Wenn Sie es nicht überprüfen können, versenden Sie es nicht.
552* **Die unendliche Erkundung.** Sie bitten Claude, etwas zu „untersuchen“, ohne es zu begrenzen. Claude liest Hunderte von Dateien und füllt den Kontext.
553 > **Lösung**: Begrenzen Sie Untersuchungen eng oder verwenden Sie Subagents, damit die Erkundung Ihren Hauptkontext nicht verbraucht.
554 605
555***606Für eine große mechanische Änderung über viele Dateien teilt [`/batch migrate every handler to the v2 response helpers`](https://code.claude.com/docs/de/commands) die Arbeit in 5 bis 30 Einheiten auf und zeigt Ihnen den Plan. Anschließend führt es jede Einheit in einem eigenen Worktree aus und öffnet dafür einen PR. Aus Ihrer Shell heraus bietet Ihnen [`claude agents`](https://code.claude.com/docs/de/agent-view) (noch eine Research Preview) einen Bildschirm für alles, was auf Ihrem Rechner im Hintergrund läuft.
556 607
557## Entwickeln Sie Ihre Intuition608Eine zweite Sitzung ist auch der einfachste unabhängige Reviewer, den Sie bekommen können. Eine Sitzung schreibt den Rate Limiter, eine andere prüft `@src/middleware/rateLimiter.ts`, ohne beim Schreiben zugesehen zu haben, und Sie fügen die Befunde in die erste ein. Dieselbe Idee wie `/code-review`, nur dass Sie die Nachrichten überbringen.
558 609
559Die Muster in diesem Leitfaden sind nicht in Stein gemeißelt. Sie sind Ausgangspunkte, die im Allgemeinen gut funktionieren, aber möglicherweise nicht optimal für jede Situation sind.610## Was Sie nicht mehr tun müssen
560 611
561Manchmal *sollten* Sie den Kontext ansammeln lassen, weil Sie tief in einem komplexen Problem stecken und die Geschichte wertvoll ist. Manchmal sollten Sie die Planung überspringen und Claude es herausfinden lassen, weil die Aufgabe explorativ ist. Manchmal ist ein vager Prompt genau richtig, weil Sie sehen möchten, wie Claude das Problem interpretiert, bevor Sie es einschränken.612Jeder dieser Ratschläge war gut, als er geschrieben wurde. Die meisten waren Workarounds für etwas, das das Modell damals noch nicht zuverlässig konnte, und die Modelle haben inzwischen aufgeholt. Falls einige davon noch Gewohnheiten sind, erfahren Sie hier, warum Sie sie bedenkenlos ablegen können.
562 613
563Achten Sie auf das, was funktioniert. Wenn Claude großartige Ausgabe produziert, bemerken Sie, was Sie getan haben: die Prompt-Struktur, den Kontext, den Sie bereitgestellt haben, den Modus, in dem Sie waren. Wenn Claude kämpft, fragen Sie warum. War der Kontext zu laut? Der Prompt zu vage? Die Aufgabe zu groß für einen Pass?614| Der alte Ratschlag | Warum er hinfällig ist |
615| :- | :- |
616| Das Kontextfenster ist Ihre wichtigste Einschränkung, verwalten Sie es konsequent | Die meisten aktuellen Modelle haben ein Fenster von 1M Token, und die Komprimierung erfolgt automatisch, daher geht der Kontext selten aus. `/clear` zwischen Aufgaben lohnt sich trotzdem, weil ein fokussierter Kontext bessere Antworten liefert und weniger kostet. |
617| Anweisungen, die Claude immer wieder übersieht, mit IMPORTANT oder GROSSBUCHSTABEN versehen | Ältere Modelle brauchten diesen Nachdruck manchmal. Aktuelle folgen einer schlicht formulierten Zeile, und gehäufter Nachdruck führt vor allem dazu, dass Claude die Regel übermäßig anwendet. Wenn es eine Regel ist, von der nicht abgewichen werden darf, machen Sie daraus einen Hook oder eine deny-Regel. Wenn die Zeile in einer langen Datei untergeht, muss die Datei kürzer werden. |
618| Subagenten verwenden, um Ihr Kontextfenster zu schützen | Dass der Kontext ausgeht, ist kaum noch ein Problem. Subagenten eignen sich weiterhin hervorragend für parallele Arbeit, um störende Ausgaben aus dem Weg zu halten, und für unabhängige Reviews, aber jede dieser Verwendungen kostet zusätzliche Token. |
619| Für eine bessere Antwort an einen Subagenten delegieren | Dieselbe Aufgabe an einen Subagenten zu übergeben, macht die Antwort nicht besser. Ein frischer Reviewer hilft zwar, weil er Ihre Argumentation nicht gesehen hat, aber das ist etwas anderes als Delegieren. |
620| `think hard`, `think harder`, `be thorough` im Prompt | Dafür ist Effort die Steuerung. Diese Formulierungen sind gewöhnlicher Prompt-Text, der Claude innerhalb seiner Effort-Einstellung anstößt, und keine Schlüsselwörter, die sie erhöhen. `ultrathink` funktioniert weiterhin: Es fordert für diesen einen Turn tieferes Nachdenken an, ohne Ihre Effort-Einstellung zu ändern. |
621| Claude sagen, es solle weitermachen, in einer Schleife bis zum Ende arbeiten, nicht faul sein | Aktuelle Modelle führen eine vereinbarte Aufgabe in der Regel ohne Aufforderung zu Ende, und solche Zeilen verursachen eher Mehrarbeit, als dass sie einen Stillstand beheben. Claude eine Prüfung zu geben, die bestanden werden muss, ist etwas anderes und lohnt sich weiterhin. Wenn ein Lauf doch zu früh aufhört, sagen Sie `continue`, und bei Läufen, die niemand beobachtet, setzen `/goal` oder ein `Stop`-Hook das durch. |
622| Ihre Architektur und Dateistruktur in `CLAUDE.md` beschreiben | Claude liest das Repo selbst. Schreiben Sie nur auf, was dort nicht steht. |
564 623
565Im Laufe der Zeit werden Sie Intuition entwickeln, die kein Leitfaden erfassen kann. Sie werden wissen, wann Sie spezifisch und wann offen sein sollten, wann Sie planen und wann Sie erkunden sollten, wann Sie den Kontext löschen und wann Sie ihn ansammeln lassen sollten.624Wenn sich ein anderer Ratschlag auf dieser Seite irgendwann wie reine Beschäftigung anfühlt, ist das wahrscheinlich ein Zeichen, dass er ebenfalls in diese Tabelle gehört.
566 625
567## Verwandte Ressourcen626## Verwandte Ressourcen
568 627
569* [How Claude Code works](https://code.claude.com/docs/de/how-claude-code-works.md): die agentengesteuerte Schleife, Tools und Kontextverwaltung628* [Wie Claude Code funktioniert](https://code.claude.com/docs/de/how-claude-code-works.md): die Schleife, die Tools und was beim Start geladen wird
570* [Extend Claude Code](https://code.claude.com/docs/de/features-overview.md): Skills, Hooks, MCP, Subagents und Plugins629* [Das Kontextfenster erkunden](https://code.claude.com/docs/de/context-window.md): was in einer Sitzung Platz belegt und wann es geladen wird
571* [Common workflows](https://code.claude.com/docs/de/common-workflows.md): Schritt-für-Schritt-Rezepte zum Debuggen, Testen, PRs und mehr630* [Claude Code erweitern](https://code.claude.com/docs/de/features-overview.md): die Wahl zwischen Skills, Hooks, MCP, Subagenten und Plugins
572* [CLAUDE.md](https://code.claude.com/docs/de/memory.md): speichern Sie Projektkonventionen und persistenten Kontext631* [Einen Berechtigungsmodus wählen](https://code.claude.com/docs/de/permission-modes.md) und [Berechtigungen konfigurieren](https://code.claude.com/docs/de/permissions.md)
632* [Kosten effektiv verwalten](https://code.claude.com/docs/de/costs.md)
633* [Claude Code programmatisch ausführen](https://code.claude.com/docs/de/headless.md) und [Arbeit mit geplanten Cloud-Aufgaben automatisieren](https://code.claude.com/docs/de/routines.md)
634* Für Teamleads und Admins: [Claude Code für Ihre Organisation einrichten](https://code.claude.com/docs/de/admin-setup.md)