# System Skills Verbindliche Regeln für die KI-gestützte Website-Generierung im Agentur-Kontext. --- ## Scope Diese Datei definiert den **harten Rahmen** für: - Arbeitsweise und Workflow - Code-Qualität und Repo-Konventionen - Source of Truth für Design und Anforderungen - Verbote und Pflichten **Geltungsbereich:** Gilt global für jedes Projekt. CLIENT_OVERRIDES.md darf diese Regeln präzisieren oder erweitern, aber niemals widersprechen. --- ## Read Order Die KI muss Dateien in folgender Reihenfolge lesen: 1. `skills/SYSTEM_SKILLS.md` (diese Datei) 2. `skills/UI_GUIDELINES.md` 3. `skills/DEFINITION_OF_DONE.md` 4. `skills/CLIENT_OVERRIDES.md` (falls vorhanden) 5. `spec/ProjectSpec.json` 6. `spec/design_tokens.json` 7. `theme/stylesheet.css` / `theme/globals.css` Bei Konflikten gilt: **Globale Skills > Client Overrides** --- ## Non-Goals Diese Datei definiert **NICHT**: - Konkrete Design-Vorgaben (Farben, Layouts, Abstände) - UI-Templates oder vorgefertigte Komponenten - Visuelle Entscheidungen jeglicher Art - Landingpage-Strukturen oder Section-Vorlagen Design entsteht ausschließlich aus den Projekt-Specs, nicht aus diesen Skills. --- ## Parameter-Interpreter-Modus Das System arbeitet mit **9 strukturierten Parameter-Kategorien (A–J)**. Diese Kategorien sind in `CLIENT_OVERRIDES.md` und `master_prompt.md` vollständig aufbereitet. ### Die 9 Kategorien | Kat. | Name | Beschreibung | |------|------|--------------| | A | Unternehmensidentität & Kontext | Name, Slug, Beschreibung, Branche, Standort, Einzugsgebiet, Unternehmensgröße, Reifegrad, Locale, Kontaktdaten | | B | Zielgruppe & Psychografie | Hauptzielgruppe, Altersbereich, Geschlecht, Entscheidertyp, Wissensstand, typische Einwände, Hauptprobleme | | C | Tonalität & Kommunikation | Ansprache (Du/Sie), Basis-Tonalität, Schreibstil, emotionales Gefühl | | D | Angebot & Leistungsstruktur | Angebotstyp, Leistungen mit Titel/Beschreibung/Nutzen, Preissensitivität, Upsells | | E | Seitenarchitektur | Website-Typ (Onepager/Multipage), Seiten mit Slug/Titel/Beschreibung/Zweck/Priorität/Sections | | F | Marken- & Stilparameter | Farben (12 Token), Fonts, Logo, Stil-Adjektive (max 5), Stil-Verbote | | G | UX & Interaktion | Interaktionsniveau, Animationen, Scroll-Verhalten | | H | Vertrauen & Conversion | Primärer & Sekundärer CTA, Kontaktmethoden, Vertrauenselemente | | I | Technik & Recht | Domain, Hosting, Tracking, Legal-Daten, Features, Integrationen | | J | KI-Kontext | Freitext: Was ist BESONDERS WICHTIG, was darf AUF KEINEN FALL passieren, Referenzen | ### Arbeitsweise - Jede Kategorie enthält fertig aufbereitete Parameter - **Keine Interpretation nötig** — die Parameter werden 1:1 umgesetzt - Bei fehlenden Parametern: Sinnvolle Defaults verwenden, aber dokumentieren --- ## KI-Kontext Gewichtungshierarchie Die Priorität bei Konflikten folgt dieser Hierarchie (höchste zuerst): ``` 1. SYSTEM_SKILLS.md 2. UI_GUIDELINES.md 3. DEFINITION_OF_DONE.md 4. KI-KONTEXT (Kategorie J) 5. CLIENT_OVERRIDES (Kategorien A–I) ``` ### Spezielle Regeln für Kategorie J - **Kategorie J hat die höchste Gewichtung innerhalb der Client-Parameter** - Bei Konflikten zwischen Kat. J und Kat. A–I: **Kat. J gewinnt** - Bei Konflikten zwischen Kat. J und SYSTEM_SKILLS/UI_GUIDELINES: **Skills gewinnen** - `whatIsImportant` aus Kat. J muss in **JEDER Designentscheidung** berücksichtigt werden - `whatToAvoid` aus Kat. J sind **harte Verbote** — keine Ausnahmen ### Beispiel Wenn Kat. J sagt "Keine Animationen" und Kat. G sagt "Interaktionsniveau: dynamisch", dann gilt: **Keine Animationen**. --- ## Seiten-Zweck-System Jede Seite in Kat. E hat einen definierten `purpose` und eine `priority`. ### Purpose-Typen | Purpose | Beschreibung | Content-Strategie | |---------|--------------|-------------------| | `informieren` | Fakten vermitteln | Fakten zuerst, klare Struktur, erklärende Sprache, CTAs dezent | | `ueberzeugen` | Überzeugungsarbeit leisten | USPs hervorheben, Social Proof, emotionale + rationale Argumentation | | `konvertieren` | Zur Handlung bewegen | Prominente CTAs, Einwände adressieren, Trust-Elemente, Urgency | ### Priority-Levels | Priority | Beschreibung | |----------|--------------| | `hoch` | Maximaler Detailgrad, höchste Aufmerksamkeit bei der Implementierung | | `mittel` | Solide Umsetzung mit allen wesentlichen Elementen | | `niedrig` | Basis-Umsetzung, funktional aber ohne Extras | ### Umsetzung - **Informieren:** H2-Struktur für Scanability, Inhaltsverzeichnis bei langen Seiten, CTAs am Ende von Sektionen - **Überzeugen:** Problem → Lösung → Beweis → CTA Flow, USP-Cards/Feature-Grid, Social Proof prominent - **Konvertieren:** Above-the-fold CTA, Trust-Section direkt unter Hero, Einwand-Entkräftung vor Kontaktformular --- ## Kommunikations-Parameter Die Kommunikation wird durch Kategorie C definiert und muss **konsistent auf ALLEN Seiten** umgesetzt werden. ### Ansprache (address) | Wert | Verwendung | Beispiel | |------|------------|----------| | `du` | Informelle Ansprache | "Schick uns eine Nachricht", "Dein Name" | | `sie` | Formelle Ansprache | "Senden Sie uns eine Nachricht", "Ihr Name" | **Pflicht:** Die gewählte Ansprache gilt für: - Alle Fließtexte - Alle Button-Labels - Alle Formular-Labels und Placeholders - Alle Microcopy-Elemente - Alle CTAs ### Tonalität (baseTone) | Wert | Beschreibung | |------|--------------| | `sachlich` | Neutral, faktenbasiert, nüchtern | | `freundlich` | Warm, einladend, zugänglich | | `beratend` | Kompetent, hilfsbereit, lösungsorientiert | | `motivierend` | Energetisch, inspirierend, aktivierend | | `exklusiv` | Premium, distinguiert, hochwertig | ### Schreibstil (writingStyle) | Wert | Beschreibung | |------|--------------| | `kurz_praegnant` | Kurze Sätze, auf den Punkt, keine Füllwörter | | `erklaerend` | Ausführlicher, didaktisch, schrittweise | | `emotional` | Gefühlsbetont, storytelling, persönlich | | `technisch` | Fachsprachlich, präzise, detailliert | ### Emotionales Gefühl (emotionalFeeling) Beschreibt das gewünschte Gesamtgefühl der Website (z.B. "vertrauenswürdig und modern", "dynamisch und innovativ"). Muss sich im Gesamtdesign widerspiegeln. --- ## Vertrauens- & Conversion-Elemente Kategorie H definiert, wie Vertrauen aufgebaut und Conversions erzielt werden. ### Vertrauenselemente (trustElements) | Element | Implementierung | |---------|-----------------| | `bewertungen` | Google/Trustpilot-Widgets oder Zitat-Karten mit Sternebewertung | | `zertifikate` | Logo-Leiste mit Zertifizierungen (TÜV, ISO, etc.) | | `referenzen` | Kundenlogos oder Case-Study-Snippets | | `community` | Mitglieder-Zahlen, Social-Media-Feeds, Follower-Counts | ### Kontaktmethoden (contactMethods) | Methode | Implementierung | |---------|-----------------| | `formular` | Kontaktformular prominent auf Kontaktseite, ggf. auch in Footer | | `telefon` | Telefonnummer im Header + sticky CTA auf Mobile | | `buchung` | Buchungstool-Integration (z.B. Calendly-Embed) auf Kontaktseite | ### CTA-Implementierung - **Primärer CTA:** Haupthandlungsaufforderung, prominent platziert (Hero, Header, Sticky) - **Sekundärer CTA:** Alternative Handlung, weniger prominent aber sichtbar --- ## Interaktions-Level Kategorie G definiert das Interaktionsniveau der Website. ### Level-Definitionen | Level | Beschreibung | Regeln | |-------|--------------|--------| | `ruhig` | Maximale visuelle Ruhe | Keine Animationen, kein Parallax, statisches Layout, **framer-motion NICHT verwenden**, maximal 1 CTA pro Viewport | | `moderat` | Ausgewogenes Layout | Dezente Fade-In Animationen, subtile Hover-Effekte, **framer-motion sparsam einsetzen**, IntersectionObserver-basierte Reveals | | `dynamisch` | Lebendige Interaktion | Scroll-Animationen, Parallax erlaubt, Micro-Interactions, **framer-motion aktiv eingesetzt**, Sticky CTAs | ### Animations-Einstellung (animations) | Wert | Beschreibung | |------|--------------| | `keine` | Absolut keine Animationen, auch keine Hover-Transitions | | `dezent` | Nur subtile Transitions (opacity, transform), max. 300ms | | `praesent` | Auffälligere Animationen, Scroll-triggered, Stagger-Effekte | ### Scroll-Verhalten (scrollBehavior) | Wert | CSS-Umsetzung | |------|---------------| | `normal` | `scroll-behavior: auto` | | `smooth` | `scroll-behavior: smooth` (auf `html` Element) | --- ## Integrationen Kategorie I definiert technische Integrationen. ### Newsletter Wenn `newsletter: true`: - Newsletter-Signup-Formular im Footer - Dedizierte Section auf der Startseite (optional) - Platzhalter für Newsletter-Provider (Mailchimp, etc.) ### Buchungstool Wenn `bookingTool` gesetzt: - Als iframe/embed auf der Kontaktseite einbinden - Platzhalter-Embed wenn kein konkreter Anbieter angegeben: ```html
Buchungstool wird hier eingebunden
``` ### Externe Integrationen Externe Integrationen als Platzhalter-Kommentare im Code markieren: ```typescript // TODO: Integration ${name} - ${description} ``` --- ## Impressum & Datenschutz ### Impressum Legal-Daten kommen aus `spec.technical.legal.impressum` mit folgender Struktur: ```json { "companyName": "Firmenname GmbH", "street": "Musterstraße 1", "postalCode": "12345", "city": "Musterstadt", "country": "Deutschland", "email": "info@example.com", "phone": "+49 123 456789", "vatId": "DE123456789", "register": "HRB 12345, Amtsgericht Musterstadt" } ``` **Pflicht:** Die KI generiert aus diesen Daten automatisch eine korrekte Impressum-Seite gemäß DACH-Recht. ### Datenschutz Datenschutz-Seite enthält mindestens: - Cookie-Hinweis - Hosting-Info (aus `spec.technical.hosting`) - Analytics-Angabe (aus `spec.technical.tracking`) - Kontaktdaten des Verantwortlichen - Hinweis auf Rechte der Betroffenen --- ## Research-Insights Nutzung Die `llmResearch`-Daten im ProjectSpec enthalten wertvolle Insights. ### Verfügbare Research-Daten | Feld | Verwendung | |------|------------| | `audienceAnalysis` | Bei Content-Erstellung für Kat. B berücksichtigen | | `uxRecommendations` | Bei Layout-Entscheidungen berücksichtigen | | `conversionStrategy` | Bei CTA-Platzierung und Funnel-Design berücksichtigen | | `suggestedUSPs` | Auf Startseite und Überzeugungsseiten prominent platzieren | ### Umsetzung - USPs aus `suggestedUSPs` als Feature-Cards oder Hero-Bullet-Points - `conversionStrategy` bestimmt den Aufbau von Conversion-Seiten - `uxRecommendations` fließen in Layout-Entscheidungen ein --- ## Source of Truth Das Design und die Anforderungen einer Website basieren ausschließlich auf: | Quelle | Inhalt | |--------|--------| | `spec/ProjectSpec.json` | Projektanforderungen, Ziele, Inhalte | | `spec/design_tokens.json` | Farben, Typografie, Spacing-System | | `theme/stylesheet.css` | Projektspezifische Styles | | `theme/globals.css` | Globale CSS-Variablen und Resets | **Regel:** Keine Design-Entscheidung ohne Grundlage in diesen Quellen. --- ## Verbote ### Absolut verboten: - **KEINE** Templates oder vorgefertigten Layouts - **KEINE** Copy-Paste-Strukturen aus anderen Projekten - **KEINE** Boilerplate-Landingpages - **KEINE** Standard-Hero/Feature/CTA-Sections ohne Spec-Grundlage - **KEINE** eigenmächtigen Design-Entscheidungen - **KEINE** hardcodierten Farben, Größen oder Abstände - **KEINE** UI-Libraries (shadcn, MUI, Chakra, Radix, etc.) - **KEINE** CSS-Frameworks außer Tailwind (falls im Projekt konfiguriert) - **KEINE** inline Styles (außer dynamische Werte) - **KEINE** `!important` (außer dokumentierte Ausnahmen) - **KEINE** Secrets im Repository (nur .env, .env.local) ### Daten und Secrets: - Sensible Daten gehören in `.env` / `.env.local` - `.env*` Dateien sind in `.gitignore` - API-Keys, Passwörter, Tokens niemals committen --- ## Arbeitsprozess Jede Aufgabe folgt diesem Ablauf: ### 1. Lesen - `/skills` vollständig lesen - `/spec` vollständig lesen - Bestehenden Code verstehen ### 2. Planen - Anforderungen analysieren - Struktur und Komponenten konzipieren - Abhängigkeiten identifizieren ### 3. Implementieren - Code schreiben - Design-Tokens verwenden - Keine eigenmächtigen Entscheidungen ### 4. Self-Check - `npm run build` ausführen - Gegen Definition of Done validieren - Responsive und Accessibility prüfen ### 5. Dokumentieren - Änderungen in `generation_log.json` maschinell festhalten - Keine manuellen Einträge im Log --- ## Coding-Standards ### TypeScript - **Strict Mode** ist Pflicht - Keine `any` Types - Explizite Typdefinitionen für Props und State - Keine Type-Assertions ohne Notwendigkeit - Strict null checks beachten ```typescript // Korrekt interface ComponentProps { title: string; items: ReadonlyArray; onSelect?: (item: Item) => void; } // Falsch const props: any = { ... } ``` ### React / Next.js - Funktionale Komponenten - Server Components wo möglich - Client Components nur wenn nötig (`"use client"`) - Keine unnötigen `useEffect` / `useState` - Keine Over-Abstraktionen ### CSS - CSS-Variablen aus `globals.css` verwenden - Tailwind für Utility-Klassen (falls konfiguriert) - Eigene Klassen für wiederverwendbare Patterns - Mobile-first Breakpoints ```css .element { color: var(--color-foreground); padding: var(--spacing-md); } ``` ### Allgemein - Lesbarkeit > Cleverness - Keine unnötigen Abstraktionen - Keine Over-Engineering - Konsistente Namenskonventionen - Keine auskommentierten Code-Blöcke - Keine `console.log` im Production-Code --- ## Pflichten ### Performance - Core Web Vitals optimieren - Lazy Loading für Below-the-fold-Inhalte - Kritisches CSS inline - JavaScript-Bundle minimieren - Fonts optimieren (`display: swap`) - Bildformate: WebP/AVIF bevorzugen - Keine unnötigen Dependencies ### SEO - Semantisches HTML (`header`, `main`, `nav`, `article`, `section`, `footer`) - Korrekte Heading-Hierarchie (`h1` > `h2` > `h3`) - Meta-Tags (`title`, `description`) - Open Graph Tags - Alt-Texte für alle Bilder - Strukturierte Daten wo sinnvoll ### Mobile-First - Responsive Design ist Pflicht - Touch-Targets mindestens 44x44px - Keine horizontalen Scrollbars - Lesbare Schriftgrößen ohne Zoom --- ## Logging ### generation_log.json - Nur maschinell befüllen - Keine manuellen Einträge - Dokumentiert: was wurde generiert, wann, welche Dateien - Dient der Nachvollziehbarkeit --- ## Zusammenfassung > Jede Website ist einzigartig. Design kommt aus den Specs, nicht aus dem Bauch. > Code ist sauber, typisiert und wartbar. Build muss laufen. > Diese Regeln sind nicht verhandelbar.