11 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
- 9 Parameter-Kategorien (A–J)
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.
Kategorie A — Unternehmensidentität
Pflicht
- Client-Name erscheint im Seitentitel
- Client-Name erscheint im Footer
- Client-Name erscheint im Impressum
lang-Attribut entspricht dem definierten Locale (z.B.de,de-AT,en)- Standort korrekt im Footer/Kontaktbereich dargestellt (falls definiert)
- Kontaktdaten korrekt dargestellt (falls definiert)
Kategorie B — Zielgruppe
Pflicht
- Content ist auf das Wissensniveau der Zielgruppe abgestimmt
- Typische Einwände werden auf Überzeugungsseiten adressiert (falls definiert)
- Hauptprobleme der Zielgruppe werden in Hero/Intro angesprochen (falls definiert)
- Sprachniveau passt zum definierten Entscheidertyp
Bei Zielgruppen-spezifischen Inhalten
- Fachbegriffe erklärt (wenn Zielgruppe = Laien)
- Fachbegriffe verwendet (wenn Zielgruppe = Experten)
Kategorie C — Kommunikation
Pflicht
- Ansprache (du/sie) ist konsistent auf ALLEN Seiten
- Ansprache ist konsistent in ALLEN UI-Elementen (Buttons, Labels, Microcopy)
- Tonalität entspricht den definierten
baseTone-Werten - Schreibstil entspricht den definierten
writingStyle-Werten - Emotionales Gefühl spiegelt sich im Gesamtdesign wider
Konsistenz-Check
[ ] Alle Buttons mit korrekter Ansprache?
[ ] Alle Formular-Labels mit korrekter Ansprache?
[ ] Alle Microcopy-Elemente mit korrekter Ansprache?
[ ] Keine Mischung von Du und Sie?
Kategorie D — Angebot
Pflicht
- Alle definierten Leistungen sind auf der Website dargestellt
- Jede Leistung hat Titel
- Jede Leistung hat Beschreibung
- Jede Leistung hat Nutzen-Kommunikation (falls definiert)
- Angebotstyp bestimmt das Layout:
- Dienstleistung → Services-Grid oder Liste
- Produkt → Produkt-Karten
- Beratung → Prozess-Darstellung
Kategorie E — Seitenarchitektur
Pflicht
- Alle definierten Seiten existieren als Routes unter
app/ - Jede Seite erfüllt ihren definierten Zweck:
informieren: Fakten-First, klare Struktur, CTAs dezentueberzeugen: USPs prominent, Social Proof, Argumentationkonvertieren: CTAs above-the-fold, Trust-Elemente, Einwand-Behandlung
- Seiten mit Priorität
hochsind am detailliertesten umgesetzt - Navigation enthält alle Seiten in logischer Reihenfolge
- Interne Verlinkungswünsche umgesetzt (falls definiert)
Seiten-Zweck-Check
| Seite | Purpose | Priority | Umgesetzt |
|---|---|---|---|
| (aus Spec) | (aus Spec) | (aus Spec) | [ ] |
Kategorie F — Marke & Stil
Pflicht
- Alle Farben kommen aus Design-Tokens (
globals.css) - Keine hardcodierten Hex/RGB-Werte im Code
- Heading-Font entspricht
brand.fonts.heading.family - Body-Font entspricht
brand.fonts.body.family - Visueller Stil entspricht den Stil-Adjektiven
- Keines der Stil-Verbote wurde verletzt
Stil-Check
[ ] Passt jedes UI-Element zu den Stil-Adjektiven?
[ ] Verstößt kein Element gegen die Stil-Verbote?
[ ] Logo korrekt eingebunden (falls vorhanden)?
Kategorie G — UX & Interaktion
Pflicht
- Interaktionsniveau entspricht dem definierten Level (
ruhig/moderat/dynamisch) - Animations-Level ist korrekt (
keine/dezent/praesent) - Scroll-Verhalten ist korrekt konfiguriert (
normal/smooth)
Level-spezifische Checks
Bei ruhig:
- Keine framer-motion Animationen vorhanden
- Kein Parallax
- Maximal 1 CTA pro Viewport
- Große Whitespace-Blöcke
Bei moderat:
- Nur dezente Fade-In Animationen
- Subtile Hover-Effekte
- framer-motion sparsam eingesetzt
Bei dynamisch:
- Scroll-Animationen vorhanden
- Micro-Interactions implementiert
- framer-motion aktiv eingesetzt
Kategorie H — Conversion
Pflicht
- Primärer CTA-Text korrekt implementiert
- Primärer CTA-Ziel korrekt verlinkt
- Sekundärer CTA-Text korrekt implementiert (falls definiert)
- Sekundärer CTA-Ziel korrekt verlinkt (falls definiert)
Kontaktmethoden
formular: Kontaktformular auf Kontaktseite vorhandentelefon: Telefonnummer im Header sichtbarbuchung: Buchungstool-Embed vorhanden (oder Platzhalter)
Vertrauenselemente
bewertungen: Bewertungs-Widgets oder Zitat-Karten platziertzertifikate: Logo-Leiste mit Zertifizierungen vorhandenreferenzen: Kundenlogos oder Case-Studies eingebundencommunity: Mitglieder-Zahlen oder Social-Feeds vorhanden
Conversion-Seiten-Check
- Konvertierungsseiten haben prominente CTAs above-the-fold
- Trust-Section direkt unter Hero auf Conversion-Seiten
- Einwand-Entkräftung vor Kontaktformular
Kategorie I — Technik & Recht
Impressum
- Impressum-Seite unter
/impressumvorhanden companyNamekorrektstreetkorrektpostalCode+citykorrektcountrykorrektemailkorrektphonekorrekt (falls definiert)vatIdkorrekt (falls definiert)registerkorrekt (falls definiert)
Datenschutz
- Datenschutz-Seite unter
/datenschutzvorhanden - Cookie-Hinweis enthalten
- Hosting-Info enthalten (aus
spec.technical.hosting) - Analytics-Angabe enthalten (aus
spec.technical.tracking)
Integrationen
- Newsletter-Integration vorhanden (wenn
newsletter: true) - Newsletter-Signup im Footer
- Buchungstool-Embed vorhanden (wenn
bookingTooldefiniert) - Externe Integrationen als TODO-Kommentare markiert
Kategorie J — KI-Kontext
Pflicht
whatIsImportantwurde bei JEDER Designentscheidung berücksichtigtwhatToAvoidwurde nirgendwo verletzt- Positive Referenzen wurden als Inspiration erkennbar einbezogen (falls definiert)
- Negative Referenzen wurden bewusst vermieden (falls definiert)
KI-Kontext-Check
[ ] Was ist besonders wichtig? → Umgesetzt?
[ ] Was darf auf keinen Fall passieren? → Vermieden?
[ ] Bei Konflikten: Kat. J priorisiert?
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)
Browser-Kompatibilität
Unterstützte Browser (letzte 2 Major-Versionen):
- Chrome
- Firefox
- Safari
- Edge
Bei bekannten Inkompatibilitäten: dokumentieren und Workaround bereitstellen.
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
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?
Kategorie-Schnellcheck
[ ] A. Unternehmensidentität korrekt?
[ ] B. Zielgruppe berücksichtigt?
[ ] C. Ansprache konsistent?
[ ] D. Alle Leistungen dargestellt?
[ ] E. Alle Seiten mit richtigem Purpose?
[ ] F. Stil-Adjektive eingehalten, Verbote vermieden?
[ ] G. Interaktionsniveau korrekt?
[ ] H. CTAs und Trust-Elemente platziert?
[ ] I. Impressum und Datenschutz vollständig?
[ ] J. KI-Kontext beachtet?
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. KI-Kontext-Verstöße (Kat. J
whatToAvoid) sind Blocker.