Verdent Docs
Best Practices

Prompt-Engineering

Best Practices für das Schreiben effektiver Prompts


Effektive Prompts sind die Grundlage für eine erfolgreiche KI-unterstützte Entwicklung. Klare, konkrete Anfragen mit dem passenden Kontext ermöglichen es Verdent, präzise und relevante Ergebnisse zu liefern.

Was Sie lernen werden

  • Best Practices für das Schreiben effektiver Prompts
  • Wie Sie Kontext bereitstellen und häufige Fehler vermeiden
  • Fortgeschrittene Techniken wie @-Erwähnungen und die Delegation an Subagenten
  • Beispiele für gut strukturierte Prompts
  • Strategien zur iterativen Verfeinerung

Was einen effektiven Prompt ausmacht

Effektive Prompts sind klar, konkret und liefern den notwendigen Kontext, damit Verdent Ihre Absicht versteht und präzise Ergebnisse liefert.

Wichtige Prinzipien:

  • Seien Sie konkret – Geben Sie genau an, was Sie brauchen, statt vager Anfragen
  • Details angeben – Nennen Sie technische Vorgaben, wenn Sie bestimmte Präferenzen haben
  • Umfang festlegen – Klären Sie, welche Dateien/Komponenten betroffen sind
  • Kontext bereitstellen – Helfen Sie Verdent, Ihre Architektur zu verstehen
  • Ergebnisse benennen – Beschreiben Sie, wie Erfolg aussieht
  • Natürliche Sprache verwenden – Keine spezielle Syntax erforderlich

Beispiel-Umformulierungen:

Schlecht:

Fix the code

Gut:

Add input validation to the email field in ContactForm.js to reject invalid email formats

Schlecht:

Add authentication

Gut:

Add JWT authentication using the same middleware pattern as auth.js, store tokens in httpOnly cookies

Häufige Fehler beim Prompten

Beispiel-Prompts:

Make the app better
Fix the bugs
ProblemLösung
Verdent weiß nicht, welche Verbesserungen Sie wünschen oder welche Fehler behoben werden sollenGeben Sie genau an, was verbessert werden soll oder welcher Fehler behoben werden muss

Beispiel-Prompts:

Add authentication
ProblemLösung
Verdent implementiert möglicherweise JWT, obwohl Sie OAuth verwenden, oder umgekehrtGeben Sie den Implementierungsansatz, vorhandene Muster und technische Anforderungen an

Beispiel-Prompts:

Build the entire user management system with authentication, authorization, profiles, settings, and admin dashboard
ProblemLösung
Komplexe Anfragen über mehrere Systeme lassen sich in einem Schritt schwerer korrekt umsetzenTeilen Sie die Aufgabe in kleinere Schritte auf – beginnen Sie mit der Authentifizierung, dann der Autorisierung, dann den Profilen

Beispiel-Prompts:

Update the validation logic
ProblemLösung
Unklar, welche Dateien oder Validierungen geändert werden sollenLegen Sie den Umfang fest: „Aktualisiere die Validierung in UserController.js, damit starke Passwörter erforderlich sind“

Beispiel-Prompts:

Expecting Verdent to know your specific business rules or constraints
ProblemLösung
Verdent implementiert generische Lösungen ohne Ihre spezifischen AnforderungenNennen Sie alle Einschränkungen, Geschäftsregeln und Anforderungen explizit

Beispiel-Prompts:

Referencing files without including them in context
ProblemLösung
Verdent hat möglicherweise keinen Zugriff auf die Dateien, über die Sie sprechenVerwenden Sie @filename.js, um relevante Dateien explizit einzubeziehen

Beispiel-Prompts:

Repeatedly asking for the same thing when Verdent encounters errors
ProblemLösung
Der gleiche Ansatz führt zu den gleichen FehlernLesen Sie die Fehlermeldungen und passen Sie den Prompt basierend auf dem Fehlschlag an

Beispiel-Prompts:

Requesting large refactorings or multi-file changes without using Plan Mode first
ProblemLösung
Sie sehen den vollständigen Umfang erst, wenn Dateien bereits geändert wurdenWechseln Sie bei komplexen Aufgaben in den Plan Mode, um den Ansatz vor der Ausführung zu prüfen

Aktivieren Sie Plan Mode bei komplexen Änderungen, um den Ansatz vor der Ausführung zu prüfen – so werden Missverständnisse frühzeitig erkannt.

Beispiel-Prompts:

Using Auto-Run or Skip Permission Mode without Git initialized
ProblemLösung
Kein Sicherheitsnetz, falls Verdent unerwünschte Änderungen vornimmtStellen Sie sicher, dass Git initialisiert ist und Änderungen committet sind, bevor Sie freizügigere Modi verwenden

Beispiel-Prompts:

Providing incomplete requirements and expecting Verdent to guess correctly
ProblemLösung
Verdent implementiert basierend auf Annahmen, die möglicherweise nicht Ihren Anforderungen entsprechenBitten Sie Verdent darum, Ihnen Fragen zu stellen: „Stelle mir klärende Fragen zu den Anforderungen, bevor du den Plan erstellst“

Beispiele für gut strukturierte Prompts

Neue Funktionalität mit klaren Anforderungen und Einschränkungen erstellen:

Create a POST /api/tasks endpoint that:
- Accepts task title (required), description (optional), and category_id (required)
- Validates that the category exists in the database
- Returns 400 if validation fails with descriptive error messages
- Saves the task to the database and returns the created task with 201 status
- Add this to the existing tasks router in routes/tasks.js
- Create the controller method in controllers/taskController.js
- Use the existing error handling pattern from other controllers

Was das effektiv macht:

  • Klare Anforderungen für Eingaben und Validierung
  • Konkrete Dateipfade für die Implementierung
  • Verweis auf vorhandene Muster zur Wahrung der Konsistenz
  • Erwartete HTTP-Statuscodes und Fehlerbehandlung

Probleme mit Kontext und vorgeschlagenen Lösungen beschreiben:

Fix the race condition in payment processing at checkout. When multiple users submit payments simultaneously, some transactions fail with "duplicate order ID" errors. The issue appears to be in PaymentController.js around line 45 where we generate order IDs. Implement proper locking or use UUID generation to ensure unique IDs even under concurrent load.

Was das effektiv macht:

  • Klare Problembeschreibung mit Symptomen
  • Konkrete Fehlerstelle (Datei und Zeilennummer)
  • Kontext dazu, wann es auftritt (gleichzeitige Nutzer)
  • Vorgeschlagene Lösungsansätze

Implementierung ändern, während das Verhalten erhalten bleibt:

Refactor the authentication middleware in middleware/auth.js to use JWT tokens instead of session cookies. Keep the same authorization logic, but:
- Replace session validation with JWT verification
- Store tokens in httpOnly cookies
- Maintain the existing user object structure that routes expect
- Update only the authentication mechanism, don't change authorization rules
- Ensure all existing routes continue to work without modification

Was das effektiv macht:

  • Klares Ziel (JWT statt Sessions)
  • Konkrete Datei für das Refactoring
  • Explizite Einschränkungen (was sich NICHT ändern soll)
  • Anforderung der Abwärtskompatibilität

Tests mit umfassender Abdeckung schreiben:

Write comprehensive unit tests for the UserService class in services/UserService.js. Cover:
- User creation with valid and invalid data
- Email validation edge cases (empty, malformed, duplicate)
- Password hashing verification
- User lookup by ID and email
- Error handling for database failures
Use Jest and follow the testing patterns in existing service tests

Was das effektiv macht:

  • Konkrete Klasse/Datei zum Testen
  • Vollständige Liste der abzudeckenden Szenarien
  • Angegebenes Test-Framework
  • Verweis auf vorhandene Testmuster

UI-Komponenten mit detaillierten Vorgaben erstellen:

Create a reusable SearchBar component for the product catalog with:
- Text input with real-time debounced search (300ms delay)
- Category dropdown filter (fetch options from /api/categories)
- Price range slider (min $0, max $1000)
- Clear filters button
- Use Material-UI components to match existing design
- Emit search parameters via onChange callback to parent
- Include PropTypes for all props

Was das effektiv macht:

  • Vollständige Funktionsliste mit konkreten Details
  • Technische Vorgaben (300 ms Debounce, Preisspanne)
  • Angegebene UI-Bibliothek (Material-UI)
  • Integrationsansatz (Callback zum übergeordneten Element)

Fortgeschrittene Prompting-Techniken

Verweisen Sie auf bestimmte Dateien, Komponenten oder Subagenten:

@auth.js @UserController.js Refactor authentication to use the same validation pattern

Vorteile:

  • Stellt sicher, dass Verdent den genauen Kontext hat, indem bestimmte Dateien explizit einbezogen werden
  • Verhindert Mehrdeutigkeiten in großen Codebasen mit ähnlichen Dateinamen
  • Garantiert, dass der gesamte relevante Code gleichzeitig sichtbar ist, für präzises Refactoring und Musterabgleich
  • Unverzichtbar, wenn Implementierungsmuster aus einer Datei auf eine andere übertragen werden sollen

Wechseln Sie vor der Ausführung großer Änderungen in Plan Mode:

Switch to Plan Mode
Refactor the entire API layer to use TypeScript with strict type checking

Vorteile:

  • Prüfen Sie den vollständigen Ansatz von Verdent, bevor Dateien geändert werden
  • Verhindert kostspielige Fehler bei großen Refactorings oder Architekturänderungen
  • Verfeinern Sie den Plan, fügen Sie Einschränkungen hinzu oder ändern Sie die Richtung vollständig, bevor die Ausführung beginnt
  • Bitten Sie Verdent, Ihnen im Voraus klärende Fragen zu stellen, um alle Anforderungen zu erfassen

Delegieren Sie spezialisierte Aufgaben an integrierte oder benutzerdefinierte Subagenten:

@Code-reviewer Review the security vulnerabilities in authentication flow
@Explorer Find all files that import the deprecated API client
@Verifier Validate the authentication logic in the middleware

Vorteile:

  • Nutzen Sie spezialisierte Agenten, die für bestimmte Aufgaben optimiert sind (Exploration, Verifizierung, Code-Review)
  • Gezielte Expertise und schnellere Ergebnisse als bei allgemeiner Verarbeitung
  • Führen Sie mehrere Analysen parallel aus, um die Gesamtausführungszeit drastisch zu verkürzen
  • Erstellen Sie benutzerdefinierte Subagenten mit domänenspezifischem Wissen für die individuellen Anforderungen Ihres Projekts

Integrierte Standard-Subagenten:

  • @Verifier – Schnelle Code-Prüfungen und Validierung
  • @Explorer – Schnelle Exploration der Codebasis und Dateisuche
  • @Code-reviewer – Bewertung der Codequalität

Verwenden Sie @Explorer für Fragen zur Codebasis und @Code-reviewer für Sicherheitsanalysen – gezielte Delegation ist schneller als das Routing über den Haupt-Agenten.

Aktivieren Sie erweitertes Reasoning für anspruchsvolle Herausforderungen:

Think: Design the optimal database schema for a multi-tenant SaaS application

Vorteile:

  • Aktiviert erweitertes Reasoning für eine tiefere Analyse komplexer Probleme aus mehreren Perspektiven
  • Bewertet alternative Ansätze und Grenzfälle gründlicher
  • Liefert robuste Lösungen, bei denen Korrektheit entscheidend ist
  • Langsamere Antworten und höherer Credit-Verbrauch, verhindert aber kostspielige Nachbesserungen durch übereilte, suboptimale Lösungen

Think Hard Mode eignet sich besonders gut für Architekturentscheidungen, komplexes Debugging und algorithmische Probleme, die eine tiefgehende Analyse erfordern.

Bauen Sie mit fortschreitender Verfeinerung auf vorherigen Antworten auf:

Initial: "Create a dashboard component"
Follow-up: "Add real-time data updates using WebSockets"
Follow-up: "Now add filtering and sorting capabilities"

Vorteile:

  • Ermöglicht inkrementelle Entwicklung mit Tests bei jedem Schritt, bevor weitere Komplexität hinzukommt
  • Reduziert das Risiko, indem jede Ebene auf Korrektheit geprüft wird, bevor darauf aufgebaut wird
  • Korrigieren Sie den Kurs sofort, wenn Iterationen unerwartete Ergebnisse liefern
  • Erleichtert die Identifikation, welche konkrete Änderung einen Fehler verursacht hat, da jede Iteration klein und in sich abgeschlossen ist

Iterative Verfeinerung reduziert das Risiko – beginnen Sie mit einem kleinen Umfang, überprüfen Sie die Ergebnisse und erweitern Sie dann schrittweise.

Geben Sie neben dem, was geändert werden soll, auch an, was NICHT geändert werden soll:

Add caching to the API endpoints, but:
- Don't modify the authentication middleware
- Keep the existing error handling unchanged
- Maintain backward compatibility with mobile clients

Vorteile:

  • Definiert explizit Grenzen, um Änderungen an kritischen Systemen zu verhindern (Authentifizierung, Zahlungen)
  • Schützt stabile Systeme, die aus Compliance- oder Risikogründen unverändert bleiben müssen
  • Vermeidet kostspielige Zyklen aus Implementieren von Änderungen, Entdecken defekter Funktionalität und Nacharbeiten von Lösungen
  • Erhält die Abwärtskompatibilität und schützt bewährten Code vor unnötigem Refactoring

Verweisen Sie auf vorhandenen Code als Implementierungsbeispiele:

Implement the new ProductService following the same pattern as UserService.js, including error handling, validation, and database transaction management

Vorteile:

  • Stellt sicher, dass neue Implementierungen mit etablierten Konventionen konsistent bleiben
  • Macht die Codebasis besser wartbar und vorhersehbarer
  • Reduziert den Erklärungsaufwand drastisch – verweisen Sie auf Beispiele, statt Ansätze im Detail zu beschreiben
  • Nutzt bewährte, erprobte Muster, statt Lösungen neu zu erfinden
  • Reduziert Fehler und sorgt für eine nahtlose Integration mit vorhandenen Systemen

Erstellen Sie eine Datei todos.md, um komplexe, mehrstufige Aufgaben nachzuverfolgen:

Create a todos.md file with these tasks:
1. Refactor authentication to use JWT tokens
2. Update all controllers to use new auth middleware
3. Add tests for authentication flow
4. Update API documentation

Vorteile:

  • Erstellt eine klare, schriftliche Roadmap, die überprüft, verfeinert und mit Teammitgliedern geteilt werden kann
  • Lässt sich leicht anpassen, wenn sich die Anforderungen im Projektverlauf ändern
  • Bleibt über Sessions hinweg erhalten, sodass Sie die Arbeit unterbrechen, später fortsetzen und sofort erkennen können, wo Sie aufgehört haben
  • Dient als Projektartefakt, das dokumentiert, was geplant, abgeschlossen und für zukünftige Wartung und Onboarding noch offen ist

Starten Sie zwischen unterschiedlichen Aufgaben neue Sessions für einen frischen Kontext:

After completing todo #1: "Start a new session"
Then: "Let's work on todo #2 from todos.md"

Vorteile:

  • Verhindert Kontextvermischung, bei der Details früherer Aufgaben die aktuelle Arbeit unangemessen beeinflussen
  • Stellt sicher, dass sich der Fokus ausschließlich auf die aktuelle Aufgabe richtet, ohne Altlasten aus vorherigen Aufgaben
  • Reduziert den Token-Verbrauch, da kein unnötiger Gesprächsverlauf geladen wird
  • Macht Antworten schneller und Credit-effizienter
  • Schafft natürliche Checkpoints zum Testen und Committen von Änderungen, erhält eine saubere Git-Historie und erleichtert die Eingrenzung von Problemen

Verwenden Sie MCP (Model Context Protocol)-Server, um spezialisierten Kontext einzubringen:

  • Projektspezifische Dokumentation
  • API-Spezifikationen (OpenAPI, GraphQL-Schemas)
  • Framework-spezifisches Wissen

Vorteile:

  • Verbessert das Verständnis von Verdent für benutzerdefinierte Frameworks, interne Werkzeuge und spezialisierte Domänen, die nicht in den Trainingsdaten enthalten sind
  • Erübrigt die wiederholte Erklärung benutzerdefinierter Systeme, indem organisationsspezifische API-Spezifikationen und Dokumentation direkt eingebracht werden
  • Ermöglicht die korrekte Nutzung interner APIs und proprietärer Systeme, die sich allein über Prompts nicht vermitteln ließen

Kontext in Prompts einbinden

Binden Sie relevante Dateien explizit in den Kontext ein:

@models/User.js @controllers/UserController.js Add password reset functionality

Wann Sie dies verwenden sollten:

  • Bei der Arbeit mit eng gekoppelten Dateien (Model und Controller, Service und Tests)
  • Beim Verweis auf Implementierungsmuster aus einer Datei, die auf eine andere übertragen werden sollen
  • Bei der Koordination von Änderungen über mehrere zusammenhängende Dateien hinweg
  • In großen Codebasen mit ähnlichen Dateinamen, bei denen die automatische Erkennung Kontext übersehen könnte
  • Immer verwenden, wenn Sie Verdent bitten, „dem gleichen Muster wie ... zu folgen“, um sicherzustellen, dass der exakte Code vorliegt

Geben Sie übergeordneten Kontext zu Ihrem Stack an:

This is a MERN stack application (MongoDB, Express, React, Node.js) with JWT authentication. Add role-based access control following our existing middleware pattern.

Wann Sie dies verwenden sollten:

  • Bei der Implementierung von Funktionen, die sich in Ihren vorhandenen Tech-Stack integrieren müssen
  • Bei der ersten Arbeit in einer Codebasis oder bei Funktionen, die mehrere Ebenen umfassen (Frontend bis Datenbank)
  • Wenn Ihr Stack klare Vorgaben hat (GraphQL vs. REST, Redux vs. Context API), die die Implementierungsentscheidungen beeinflussen
  • Wenn Verdent den zu Ihrem System passenden Ansatz wählen soll, statt eine generische Lösung zu liefern

Verweisen Sie auf Code, der Ihre Konventionen zeigt:

Follow the same error handling pattern used in ProductController.js - return consistent error objects with status codes and descriptive messages

Wann Sie dies verwenden sollten:

  • Wenn neuer Code mit etablierten Konventionen konsistent bleiben soll (Fehlerbehandlung, Validierung, Logging, Testing)
  • Bei der Implementierung ähnlicher Funktionalität in einem neuen Bereich der Codebasis
  • Beim Einarbeiten in unbekannte Teile der Codebasis, wenn Sie vorhandene Muster lernen und übernehmen möchten
  • Wenn Sie vermeiden möchten, Muster im Detail zu beschreiben, und Verdent Nuancen erfassen soll, die schwer in Worte zu fassen sind

Geben Sie Beschränkungen oder Anforderungen an:

We're using TypeScript with strict mode enabled, React 18 with hooks only (no class components), and Material-UI v5 for styling

Wann Sie dies verwenden sollten:

  • Wenn Ihr Projekt spezifische Technologieanforderungen hat (TypeScript-Strict-Modus, nur React-Hooks, keine externen Abhängigkeiten)
  • Bei der Arbeit mit Legacy-Einschränkungen (IE11-Unterstützung, Node.js-14-Kompatibilität)
  • Wenn Compliance-Anforderungen die Entscheidungen bestimmen (WCAG-Barrierefreiheit, DSGVO-Datenverarbeitung)
  • Bei der Verwendung bestimmter Bibliotheksversionen mit Breaking Changes zwischen Versionen
  • Wenn Sie verhindern möchten, dass Verdent Lösungen vorschlägt, die die technischen Grenzen Ihres Projekts verletzen

Erklären Sie domänenspezifische Regeln:

Users can only view tasks assigned to them or their team. Managers can view all tasks in their department. Admins can view everything.

Wann Sie dies verwenden sollten:

  • Bei der Implementierung von Funktionen mit domänenspezifischen Regeln, die Verdent nicht allein aus dem Code ableiten kann
  • Autorisierungslogik (wer auf was zugreifen darf), Geschäftsworkflows (Freigabeprozesse, Zustandsautomaten)
  • Validierungsregeln (Passwortrichtlinien, Datenbeschränkungen), Domäneneinschränkungen (Bestandsgrenzen, Preisregeln)
  • Beim Aufbau von Datenmodellen, bei denen Entitätsbeziehungen und Kardinalität erklärt werden müssen
  • Bei der Implementierung von Berechnungen (Rabattregeln, Steuerberechnung, Provisionsstrukturen)
  • Wenn Verdent die Geschäftsregeln Ihrer Organisation korrekt durchsetzen soll, nicht nur funktionalen Code liefern soll

Teilen Sie beim Debuggen Fehlermeldungen oder Logs:

Getting "TypeError: Cannot read property 'id' of undefined" at UserController.js:42 when trying to update user profiles. The req.user object exists but doesn't have an id property after the recent auth middleware changes.

Wann Sie dies verwenden sollten:

  • Fügen Sie bei der Fehlerbehebung immer die vollständige Fehlermeldung, den Stacktrace und die Logs hinzu
  • Laufzeitfehler (Exceptions, Abstürze), Build-Fehler (Kompilierungsfehler, Linting-Verstöße)
  • Testfehler (Assertion-Fehler, Timeout-Probleme), unerwartetes Verhalten (falsche Ausgabe, fehlende Daten)
  • Wenn Sie genaue Fehlermeldungen mit Zeilennummern und vollständigem Stacktrace haben, der die Aufrufkette zeigt
  • Wenn Sie Kontext dazu liefern können, wann der Fehler auftritt (immer, gelegentlich, unter bestimmten Bedingungen)
  • Wenn Sie die Fähigkeit von Verdent deutlich verbessern möchten, die Ursache zu erkennen, statt zu raten

Verdent lädt basierend auf Ihrer Anfrage automatisch relevante Dateien:

  • Im Prompt namentlich genannte Dateien
  • Verwandte Dateien im selben Verzeichnis
  • Häufig verwendete Projektdateien

Wann Sie sich darauf verlassen sollten:

  • Bei Standard-Dateiverweisen, bei denen Beziehungen offensichtlich sind
  • Beim namentlichen Erwähnen von Komponenten, wenn Verdent genau diese Datei laden muss
  • Bei der Arbeit mit Dateien im selben Verzeichnis, die üblicherweise zusammen verwendet werden
  • Beim Zugriff auf häufig verwendete Projektdateien (package.json, Konfigurationsdateien)
  • Funktioniert gut bei einfachen Szenarien in gut organisierten Codebasen
  • Bei komplexem Multi-Datei-Refactoring, weit entfernten Codebasis-Teilen oder mehrdeutigen Dateinamen sollten Sie stattdessen explizite @-Erwähnungen verwenden

Konfigurieren Sie dauerhaften Kontext über Regeldateien (Einstellungen → Regeln):

Benutzerregeln (VERDENT.md): Globale Präferenzen, die auf alle Projekte angewendet werden

Projektregeln (AGENTS.md): Projektspezifische Standards – Architekturmuster, Coding-Standards

Plan-Regeln (plan_rules.md): Format und Inhalt des Plans in Plan Mode anpassen

Wann Sie dies verwenden sollten:

  • Wenn Sie denselben Kontext wiederholt über Sessions hinweg bereitstellen
  • Benutzerregeln für persönliche Präferenzen (Coding-Stil, bevorzugte Bibliotheken, favorisierte Muster)
  • Projektregeln für Team-Standards (Architekturentscheidungen, Namenskonventionen, Testanforderungen)
  • Wertvoll für das Onboarding neuer Teammitglieder (kodifiziert implizites Wissen)
  • Wahrung der Konsistenz in großen Teams und Reduzierung der Prompt-Ausführlichkeit
  • Investieren Sie in Regeldateien, wenn Ihr Projekt so weit gereift ist, dass sich etablierte, dokumentationswürdige Muster gebildet haben

Fügen Sie Screenshots, Mockups oder Diagramme hinzu:

@screenshot.png Implement this UI design with React components

Wann Sie dies verwenden sollten:

  • Wenn visuelle Informationen Anforderungen effektiver vermitteln als Text
  • UI/UX-Implementierung (Design-Mockups, Wireframes, User-Flows)
  • Beim Debuggen visueller Probleme (Screenshot eines defekten Layouts, Renderingprobleme)
  • Beim Verständnis komplexer Architekturen (Systemdiagramme, Datenbankschemata, Flussdiagramme)
  • Unverzichtbar für responsives Design, Barrierefreiheitsanalysen und Fehlerreproduktion
  • Beim Übersetzen von Designs aus Tools wie Figma oder Sketch in Code
  • Ein einziger gut aufgenommener Screenshot vermittelt oft Details, für die man sonst Absätze bräuchte

Strategien zur iterativen Verfeinerung

Erster Prompt:

Add authentication to the API

Die Antwort von Verdent könnte generisch sein. Verfeinern Sie:

Use JWT tokens stored in httpOnly cookies, implement refresh token rotation, and follow the authentication pattern from our existing UserController

Wann verwenden: Beginnen Sie mit einer allgemeinen Anfrage und fügen Sie dann basierend auf der ersten Antwort Details hinzu

Wenn die Implementierung von Verdent nicht Ihren Erwartungen entspricht:

The validation logic is good, but use Joi schema validation instead of manual checks. Match the validation pattern in ProductController.js

Wann verwenden: Nach der Überprüfung der Ausgabe und dem Identifizieren konkreter Verbesserungen

Bauen Sie inkrementell auf:

Initial: "Create a UserProfile component"
Follow-up: "Add an avatar upload feature with image preview"
Follow-up: "Add validation - max 5MB, only jpg/png formats"
Follow-up: "Show upload progress with a progress bar"

Wann verwenden: Beim schrittweisen Aufbau von Funktionen in derselben Session

Wenn die Implementierung unerwartet erscheint:

Why did you use Redux instead of Context API? Can you explain the trade-offs for this use case?

Verfeinern Sie dann basierend auf dem Verständnis:

Actually, use Context API for consistency with the rest of our application

Wann verwenden: Um die Begründung zu verstehen, bevor Sie Änderungen anfordern

Bei komplexen Änderungen:

Switch to Plan Mode
Show me how you would refactor the authentication system to support OAuth providers

Prüfen Sie den Plan, stellen Sie Fragen und verfeinern Sie den Ansatz vor der Ausführung.

Wann verwenden: Bei größeren Architekturänderungen, die eine Überprüfung erfordern

Wenn der Stil von Verdent nicht Ihrem entspricht:

The component structure is close, but use this pattern instead:
[paste example of your preferred structure]
Apply this same pattern to the remaining components

Wann verwenden: Um Präferenzen für den Codestil festzulegen oder zu bekräftigen

Wenn die Ausgabe gegen nicht genannte Einschränkungen verstößt:

Good approach, but don't modify the database schema - work within the existing User table structure

Wann verwenden: Beim Hinzufügen von Einschränkungen, die nach der ersten Implementierung entdeckt wurden

Beginnen Sie mit der Kernfunktionalität und fügen Sie Funktionen iterativ hinzu:

Step 1: "Create basic CRUD endpoints for tasks"
Step 2: "Add pagination to the GET endpoint"
Step 3: "Add filtering by status and priority"
Step 4: "Add full-text search across title and description"

Wann verwenden: Beim schrittweisen Aufbau komplexer Funktionen mit Tests bei jedem Schritt


Häufig gestellte Fragen

Wie spezifisch sollten meine Prompts sein?

Seien Sie präzise genug, um Mehrdeutigkeiten auszuschließen, erklären Sie aber offensichtliche Details nicht übermäßig. Nennen Sie: genaue Dateipfade, Implementierungsansatz, erwartete Ergebnisse und Einschränkungen. Schlecht: „Behebe den Code“ – zu vage. Gut: „Füge eine Eingabevalidierung für das E-Mail-Feld in ContactForm.js hinzu, um ungültige E-Mail-Formate abzulehnen“ – klarer Umfang und klares Ziel. Im Zweifelsfall lieber zu konkret als zu vage sein.

Was ist der Unterschied zwischen @-Erwähnungen und automatischem Laden von Dateien?

Verdent lädt automatisch Dateien, die im Prompt namentlich genannt werden, sowie verwandte Dateien im selben Verzeichnis. @-mentions (@filename.js) garantieren explizit, dass sich eine Datei im Kontext befindet – entscheidend bei der Arbeit mit eng gekoppelten Dateien, beim Verweis auf Muster aus einer Datei, die auf eine andere übertragen werden sollen, oder wenn die automatische Erkennung in großen Codebasen Kontext übersehen könnte. Verwenden Sie immer @-mentions, wenn Sie Verdent bitten, „dem gleichen Muster wie ... zu folgen“, um einen exakten Codeverweis sicherzustellen.

Wann sollte ich Plan Mode statt des normalen Modus verwenden?

Verwenden Sie Plan Mode für: große Refactorings oder Architekturänderungen, Änderungen an mehreren Dateien, bei denen Sie den Umfang vor der Ausführung prüfen möchten, komplexe Aufgaben, bei denen Sie sich bei den Anforderungen unsicher sind, oder wenn Verdent Sie vor der Implementierung mit klärenden Fragen befragen soll. Verzichten Sie auf Plan Mode bei: einfachen, klar definierten Aufgaben, schnellen Fehlerbehebungen oder Routineaufgaben. Plan Mode bringt zusätzlichen Aufwand mit sich, verhindert aber kostspielige Fehler bei komplexer Arbeit.

Was, wenn Verdent meinen Prompt nicht richtig versteht oder befolgt?

Nutzen Sie iterative Verfeinerung: Prüfen Sie die Ausgabe, identifizieren Sie, was falsch ist, und geben Sie dann Korrekturen in einem Folge-Prompt an. Beispiel: „Die Validierungslogik ist gut, aber verwende Joi-Schema-Validierung statt manueller Prüfungen. Halte dich an das Validierungsmuster in ProductController.js.“ Sie können auch nach Erklärungen fragen: „Warum hast du Redux statt Context API verwendet?“ und dann basierend auf dem Verständnis verfeinern. Wiederholen Sie nicht denselben Prompt – passen Sie ihn basierend auf dem Fehlschlag an.

Muss ich den Projektkontext in jedem Prompt innerhalb einer Session wiederholen?

Nein – Verdent behält den Gesprächskontext innerhalb einer Session, sodass Sie bereits besprochene Architekturdetails oder Konventionen nicht wiederholen müssen. Bei kritischen Einschränkungen oder wenn Sessions sehr lang werden (100+ Nachrichten), sollten Sie wichtigen Kontext jedoch erneut nennen. Besserer Ansatz: Verwenden Sie Projektregeln (AGENTS.md), um dauerhaften Kontext wie Tech-Stack, Coding-Standards und Muster zu dokumentieren – dann müssen Sie sie nie wiederholen.

Gut strukturierte Prompts mit klarer Absicht, relevantem Kontext und konkreten Einschränkungen führen durchweg zu besseren Ergebnissen.


Siehe auch