# Etappe 4 – Designsystem schreiben: Entscheidungen (Entwurf) Stand 2026-09-28, Brainstorming läuft (Weg: architektonisch → Spec → Plan). Branch `etappe-4` (ab main 903246d). ## Verstandenes Ziel - Corporate Design in einem Rutsch übernehmen: lesen (`lit/divi-design-system`) → Zuordnung vorschlagen → nach Bestätigung schreiben. - Schreiben nur über Divis eigene Funktionen; vor jeder Änderung ein Snapshot (Standard 20), Wiederherstellen per Tool. - Preset-Sperren wie bei Modulen (Lottie, Interactions, rohes HTML/CSS ohne `unfiltered_html`) – offen aus 3a. - Rechte: `edit_theme_options`, für Variablen zusätzlich Divis `variables_manager` (strenger als Divi selbst). ## Antworten der Auftraggeberin/des Auftraggebers - G1 Echte Designdaten: (b) selbst über Divis Funktionen anlegen → erledigt, Commit 65bd86f, Formate in `2026-09-28-etappe-4-divi-formate.md`, Fixtures in `tests/Fixtures/divi/stage4/`, Seite 3182 „[Fixture] Designsystem“ (Entwurf). - G2 Site-weite Änderungen (Presets, Farben, Variablen): (a) wie globale Module – Probelauf zeigt Änderung und betroffene Seiten, erst `confirm: true` schreibt; Snapshot immer. - G4 Zuschnitt (2026-10-16): (b) ganz Etappe 4 in einer Spec; Presets lesen (inkl. Einstellungen), anlegen, ändern und zuweisen (Modul- und Gruppen-Presets) sind ausdrücklicher Teil. - G3 Theme-Optionen-Umfang (2026-10-16): (a) Design-Optionen ohne SEO (Theme-Schriften/-Größen, Akzent-/Linkfarben, Layout-Breiten). Annahme: Button-Standards (`all_buttons_*`) und Logo (`divi_logo`, ePanel) bleiben draußen. - G5 Löschen (2026-10-16): (b) Preset/Variable nur löschen, wenn nirgends verwendet; sonst Fehler mit Fundstellen. Dazu eigene site-weite Funktion „Verweise überall entfernen“ (Seiten, Bibliothek, Theme Builder): (a) nur den Verweis entfernen, Module fallen auf Standard zurück; Probelauf je Seite, `confirm: true`, Revision je Seite, Snapshot vorher. - G6 Snapshots (2026-10-16): (a) je Bereich (Farben, Variablen, Presets, Theme-Optionen) getrennt, je 20; Liste per Tool; Wiederherstellen mit Probelauf (Diff) und `confirm: true`, vorher selbst ein Snapshot; Seiteninhalte nicht (WordPress-Revisionen). - Farben löschen: nur „inaktiv“ wie Divi (Annahme, nicht widersprochen). - G7 Preset-Inhalt (2026-10-16): (a) `set` (Kurzform) + `attrs` (Vollform) wie lit-divi-update, gleiche Prüfung/Sperren/Platzhalter; zusätzlich `from_node` {post_id, id} übernimmt das Design eines Moduls (ohne Texte/Inhalte). Gruppen-Presets analog mit `group`, nur Attribute dieser Gruppe. - G8 Zuweisen (2026-10-16): insert/update um Stapel (`preset` als Liste) und `group_presets` {Gruppe: Name|null} erweitern; zusätzlich site-weite Massenzuweisung (a) – gleiches Gerüst wie „Verweise entfernen“ (G5), Filter Modultyp, Seiten, nur ohne Preset / mit bestimmtem bisherigem Preset. - G9 Lokale Werte vs. Preset (2026-10-16): (a) Probelauf/Antwort meldet je Modul lokale Werte, die das Preset überdecken; `clear_overrides: true` entfernt genau diese; sonst nur Warnung. Gilt für Einzel- und Massenzuweisung. - G10 Schriften (2026-10-16): (b) Google-Fonts aus Divis Liste (Namensprüfung mit Vorschlägen) und eigene Schriftdateien hochladen (Divi „Custom Fonts“, Option `et_uploaded_fonts`). Annahme: Quelle per URL wie lit-media-upload-from-url. Code: `FontsUtility::font_add()` (B5 `VisualBuilder/Fonts/FontsUtility.php:102`) nutzt `wp_handle_upload` (prüft `is_uploaded_file`) → für geladene Dateien eigener Sideload mit Divis Filtern `upload_dir_font`/`check_filetype_and_ext_font` nötig; DSGVO-Lokal-Laden bleibt Theme-Einstellung. - G11 Ablauf „Corporate Design übernehmen“ (2026-10-16): (c) kein eigener Ablauf/Prompt, nur Tools; Claude stellt den Ablauf selbst zusammen. - G12 Schleifen-Inhalte (2026-10-16): in Etappe 4 aufnehmen. Befund: `DynamicContentRules::fieldsFor()` (`src/Integrations/Divi/Compose/DynamicContentRules.php:117`) lehnt `loop_*` immer ab (Ruling S36, E12) – kein Erkennungsfehler; Meldung „nur innerhalb von Divi-Schleifen“ irreführend. Praxisfall: Datumsformat in Karten (`loop_post_date`), Pills (Kategorien/Tags) in Modulen unter einer Schleifen-Spalte. Ziel: Schleifen-Kontext aus dem nächsten Vorfahren mit `module.advanced.loop.desktop.value.enable` (+ `queryType`) bestimmen und passende `loop_*`-Optionen zulassen (S36 lockern, Sicherheitsblick). - Ansatz (2026-10-16): A – ein Tool je Bereich, gemeinsame Änderungs-Pipeline; gemeinsamer Baustein für Seiten-Umschreiben (Zuweisen/Entfernen); `lit/divi-preset-get` zum Lesen. - Entwurf Abschnitt 1 (Pipeline + Snapshots) freigegeben (2026-10-16); übrige Abschnitte direkt in die Spec `docs/superpowers/specs/2026-10-16-etappe-4-designsystem-design.md` (Annahmen A1–A11), Freigabe der Spec ausstehend. ## Noch zu klären (je eine Frage) - (alle Fragen beantwortet) ## Danach Ansätze vorschlagen → Entwurf abschnittsweise freigeben → Spec schreiben → Plan (writing-plans) → Umsetzung subagent-driven mit Reviews, Security-Audit am Ende.