henning thies.

Arbeitsweise

Effektive Prompts

Kontext, Ziel und Constraints

Spezifität ist entscheidend

Die wichtigste Erkenntnis aus Anthropics Best Practices: Je spezifischer dein Prompt, desto besser das Ergebnis.

Ein guter Prompt ist wie ein Briefing an einen neuen Kollegen. Nicht "mach mal", sondern: Was ist die Situation? Was soll passieren? Was nicht?

Drei Elemente guter Prompts

Anthropic empfiehlt drei Kernelemente für effektive Prompts:

1. Kontext geben. Welche Datei? Welches Problem? Was ist der aktuelle Zustand? Claude kann dein gesamtes Projekt lesen – aber du musst sagen, wo es anfangen soll.

2. Ziel definieren. Was genau soll passieren? Welcher Edge Case? Welches Verhalten? "Füge Tests hinzu" ist vage. "Teste den Fall, wenn der User ausgeloggt ist" ist spezifisch.

3. Constraints setzen. Was soll Claude NICHT tun? Explizite Einschränkungen verhindern Over-Engineering. "Ohne Mocks", "Keine neuen Dependencies", "Nur diese Datei ändern".

Schlecht vs. Gut

Beispiele direkt aus den Anthropic Best Practices:

"add tests for foo.py"

Zu vage. Welche Tests? Welche Edge Cases? Welcher Stil?

Besser
" write a new test case for foo.py, covering the edge case where the user is logged out. avoid mocks "

"add a calendar widget"

Kein Kontext. Welche Patterns existieren? Wo soll es hin?

Besser
" look at how existing widgets are implemented on the home page to understand the patterns. then follow the pattern to implement a new calendar widget. "

Die Referenz-Technik

Ein besonders effektives Pattern: Verweise Claude auf existierenden Code als Referenz.

" Schau dir an, wie die anderen Controller in app/controllers strukturiert sind. Folge dem gleichen Pattern für einen neuen NotesController. "

Das funktioniert, weil Claude dann:

  • Bestehende Konventionen erkennt
  • Konsistent mit dem Projekt-Stil bleibt
  • Weniger eigene Annahmen trifft

Beispiel: Vollständiger Prompt

" In app/controllers/notes_controller.rb gibt es die search-Action. Aktuell ist die Suche case-sensitive und findet nur exakte Matches. Verbessere die Suche: - Case-insensitive - Partial Matching (findet 'test' in 'testing') Schau dir an, wie die Suche in posts_controller.rb implementiert ist und folge dem gleichen Ansatz. Keine neuen Gems – nutze Rails-Bordmittel. "

Dieser Prompt hat alles: Kontext (welche Datei, aktuelles Verhalten), Ziel (was soll anders sein), Referenz (bestehendes Pattern), Constraint (keine Gems).

Der häufigste Fehler

Wichtig

Zu wenig Kontext beim ersten Prompt. Die meisten Probleme entstehen, weil der initiale Prompt zu vage ist. Claude macht dann Annahmen – die oft falsch sind. Lieber einmal mehr schreiben, als dreimal korrigieren.

Cheat Sheet

Kontext: [Welche Datei? Was ist der aktuelle Zustand?]
Ziel: [Was soll konkret passieren?]
Referenz: [Welches Pattern soll Claude folgen?]
Constraint: [Was soll NICHT passieren?]

Tipp

Nicht jeder Prompt braucht alle Elemente. Bei einfachen Aufgaben reicht oft Kontext + Ziel. Aber wenn Claude nicht macht was du willst: Mehr Kontext. Mehr Constraints.

Zusammenfassung

  • Spezifität ist entscheidend – je genauer der Prompt, desto besser das Ergebnis
  • Drei Elemente: Kontext, Ziel, Constraints
  • Referenz-Technik: Verweise auf existierenden Code als Vorlage
  • Häufigster Fehler: Zu wenig Kontext im ersten Prompt

Quelle: Claude Code: Best practices for agentic coding (Anthropic)