4.6 KiB
Definition of Done
Harte Abnahmekriterien. Eine Aufgabe gilt erst als abgeschlossen, wenn alle Kriterien erfüllt sind.
Scope
Diese Datei definiert verbindliche Abnahmekriterien für:
- Build und Deployment
- Code-Qualität
- Responsive Design
- Accessibility
- SEO
- Projektspezifikation
Geltungsbereich: Gilt global für jedes Projekt. Keine Aufgabe ist fertig, bis diese Checkliste erfüllt ist.
Read Order
Diese Datei wird nach den anderen Skills gelesen:
skills/SYSTEM_SKILLS.mdskills/UI_GUIDELINES.mdskills/DEFINITION_OF_DONE.md(diese Datei)skills/CLIENT_OVERRIDES.md
Die Definition of Done ist die finale Prüfinstanz vor Abschluss einer Aufgabe.
Non-Goals
Diese Datei definiert NICHT:
- Wie das Design aussehen soll
- Welche Farben oder Layouts verwendet werden
- Konkrete UI-Vorgaben
- Wie Code strukturiert sein soll (siehe SYSTEM_SKILLS.md)
Diese Datei prüft nur, ob Qualitätsstandards eingehalten wurden.
Build & Deployment
Pflicht
npm run builderfolgreich ohne Fehler- Keine TypeScript-Fehler
- Keine ESLint-Fehler (Warnungen dokumentieren falls unvermeidbar)
- Keine Runtime-Errors in der Console
Bei Fehlern
Build-Fehler müssen vor Abschluss behoben werden. Keine Ausnahmen.
Code-Qualität
Pflicht
- Keine
anyTypes in TypeScript - Keine auskommentierten Code-Blöcke
- Keine
console.logim Production-Code - Konsistente Namenskonventionen
- Keine ungenutzten Imports oder Variablen
- Keine Dead Code (ungenutzte Funktionen/Komponenten)
Abhängigkeiten
- Keine ungenutzten Dependencies in
package.json - Keine Sicherheitslücken in Dependencies (soweit bekannt)
Responsive Design
Pflichtprüfung
| Viewport | Bereich | Status |
|---|---|---|
| Mobile | 320px - 767px | [ ] geprüft |
| Tablet | 768px - 1023px | [ ] geprüft |
| Desktop | 1024px+ | [ ] geprüft |
Kriterien
- Keine horizontalen Scrollbars auf keinem Viewport
- Keine abgeschnittenen oder überlagernden Inhalte
- Touch-Targets mindestens 44x44px auf Touch-Geräten
- Lesbare Schriftgrößen ohne Zoom
Accessibility
Pflicht
- Kontrast WCAG AA erfüllt (4.5:1 Text, 3:1 UI-Elemente)
- Tastatur-Navigation funktioniert vollständig
- Fokus-Indikatoren sind sichtbar
- Semantisches HTML verwendet (keine
<div>statt<button>) - Alt-Texte für alle informativen Bilder
- Formular-Labels vorhanden und verknüpft
Bei Ausnahmen
Kontrast-Ausnahmen müssen dokumentiert und begründet werden. Es muss ein Plan zur Behebung existieren.
SEO Mindeststandard
Pflicht pro Seite
- Eindeutiger
<title>vorhanden - Meta-Description vorhanden
- Korrekte Heading-Hierarchie (nur ein
h1, dannh2>h3) - Open Graph Tags gesetzt
- Alt-Texte für Bilder
Pflicht global
robots.txtvorhanden- Canonical URLs gesetzt (falls relevant)
- Keine Blocking-Resources für Crawler
Performance
Pflicht
- Bilder optimiert (WebP/AVIF, responsive srcset)
- Lazy Loading für Below-the-fold-Inhalte
- Keine unnötigen Dependencies
- Bundle-Größe im Budget (JS < 100kb gzip, CSS < 30kb gzip)
Empfohlen
- Core Web Vitals im grünen Bereich (LCP < 2.5s, CLS < 0.1, INP < 200ms)
Projektspezifikation
Pflicht
- Alle Anforderungen aus
ProjectSpec.jsonumgesetzt - Design entspricht
design_tokens.jsonundstylesheet.css - Keine eigenmächtigen Design-Entscheidungen
- CLIENT_OVERRIDES.md berücksichtigt (falls vorhanden)
Dokumentation
- Änderungen in
generation_log.jsonmaschinell dokumentiert
Browser-Kompatibilität
Unterstützte Browser (letzte 2 Major-Versionen):
- Chrome
- Firefox
- Safari
- Edge
Bei bekannten Inkompatibilitäten: dokumentieren und Workaround bereitstellen.
Schnell-Checkliste
Vor Abschluss jeder Aufgabe durchgehen:
[ ] 1. npm run build erfolgreich?
[ ] 2. Mobile (320px) geprüft?
[ ] 3. Tablet (768px) geprüft?
[ ] 4. Desktop (1024px+) geprüft?
[ ] 5. Kontrast WCAG AA erfüllt?
[ ] 6. Tastatur-Navigation funktioniert?
[ ] 7. SEO-Basics vorhanden (title, description, h1)?
[ ] 8. Anforderungen aus ProjectSpec erfüllt?
[ ] 9. Kein Dead Code oder ungenutzte Dependencies?
[ ] 10. generation_log.json aktualisiert?
Zusammenfassung
Erst wenn alle Checkboxen erfüllt sind, gilt eine Aufgabe als erledigt. Keine Ausnahmen ohne explizite Dokumentation und Begründung. Build-Fehler sind Blocker. Accessibility-Verstöße sind Blocker.