# Abläufe ## Neue Website aufsetzen 1. `lit-site-status` und `lit-content-types` lesen. 2. Grundeinstellungen: `lit/wp-settings-get`, dann `lit/wp-settings-update` (Titel, Untertitel, Sprache, Zeitzone, Datumsformat, Permalinks `/%postname%/`). `previous` in der Antwort enthält die alten Werte. 3. Seiten als Entwürfe anlegen (`lit-content-create`), Hierarchie über `parent`. 4. Startseite: Seite veröffentlichen (nach Rückfrage), dann `{"settings": {"page_on_front": , "show_on_front": "page"}}`. 5. Menü: `lit/menu-create` (optional mit `location` aus `lit/menu-list`), Einträge mit `lit/menu-set-items` – mit `menu_id` und `menu_rev` aus der Antwort von `lit/menu-create` (kein `lit/menu-get` nötig). 6. Veröffentlichen erst, wenn der Nutzer es ausdrücklich möchte. ## Divi-Seite bauen 1. `lit-divi-design-system` lesen (Farben, Schriften, Presets) und `lit-divi-catalog` für die Module. 2. Seite als Entwurf mit Inhalt anlegen: `lit-content-create` mit `divi` (Abschnitte in Kurzform, siehe `divi-shortform`) – oder eine leere Seite anlegen und Abschnitte mit `lit-divi-insert` einfügen. 3. Weitere Abschnitte/Module mit `lit-divi-insert`, Anpassungen mit `lit-divi-update`; immer die `tree_rev` der letzten Antwort mitgeben. 4. `lit-page-render-summary` prüfen, `warnings` beheben, dem Nutzer `preview_url` und `edit_url` (Divi-Builder) nennen. Veröffentlichen nur auf Wunsch (`lit-post-publish`). ## Ein Divi-Werkzeug lehnt ab Antwortet ein Divi-Werkzeug mit `divi_untested` oder `divi_incompatible`, ist nur eine Fähigkeit gesperrt, nicht Divi insgesamt: 1. `lit-site-status` lesen: `components` → `divi` → `features` nennt je Fähigkeit Zustand, Quelle, Probleme und die betroffenen Werkzeuge. 2. Mit Werkzeugen weiterarbeiten, deren Fähigkeit `released` ist (z. B. Seiten lesen mit `lit-divi-outline`), und den gesperrten Teil auslassen. 3. Dem Nutzer sagen, welche Fähigkeit gesperrt ist: bei `untested` muss ein Administrator unter Einstellungen → LIT MCP → Divi die Prüfung ausführen und freigeben, bei `incompatible` muss LIT MCP aktualisiert werden. ## Bibliothek und globale Module Vorhandene Abschnitte aus der Divi-Bibliothek zuerst suchen (`lit/library-list`) und mit `lit-library-insert` einfügen, statt sie neu zu bauen. Einen gelungenen Abschnitt für später speichern: `lit/library-save`. Abschnitte zwischen Seiten kopieren: `lit/divi-node-copy`. Wiederkehrende Abschnitte finden und zu globalen Modulen machen: `lit/library-find-similar`, `lit/library-make-global`. Globale Module ändern und neue vorschlagen: `lit-guide` topic `divi-library`. ## Design auf Seiten ausrollen Ein Preset soll auf vielen Seiten gelten oder ein altes Preset verschwinden (Presets anlegen: `divi-design-system`): 1. `lit-divi-design-system` lesen (Presets je Modul) und das Preset bei Bedarf mit `lit/divi-presets-set` anlegen (Probelauf, nach Rückfrage `confirm: true` mit `design_rev`). 2. Einzelne Module: `lit-divi-update` mit `preset` (auch Stapel) und `group_presets`; `warnings` zu überdeckten lokalen Werten dem Nutzer nennen, auf Wunsch `clear_overrides: true`. 3. Viele Seiten: `lit/divi-presets-assign` mit `module`, `preset`/`group_presets` und Filter (`post_ids`, `only_without_preset`, `only_with_preset`) zuerst ohne `confirm`. Dem Nutzer die Seiten, die Zahl der Module und die Überdeckungen zeigen; nach seiner Antwort denselben Aufruf mit `confirm: true`. Bei `remaining` größer als 0 wiederholen (höchstens 50 Seiten je Aufruf). Jede Seite bekommt eine Revision. 4. Ein Preset aufgeben: `lit/divi-design-detach` (Probelauf, nach Rückfrage `confirm: true`, mit `design_rev`, wenn der Probelauf eine nennt; bei `remaining` wiederholen), danach `lit/divi-presets-delete` (ebenfalls Probelauf und `confirm`). 5. Stichprobe: `lit-divi-outline` einer betroffenen Seite (zeigt Preset und Gruppen-Presets je Modul) und `lit-page-render-summary`; dem Nutzer die Vorschau nennen. ## Text auf vielen Seiten ersetzen `lit/divi-replace-text` zuerst mit `dry_run: true` (Standard): zeigt Treffer je Seite mit `tree_rev`. Nach Rückfrage mit `dry_run: false`, `targets` (post_id + tree_rev aus dem Probelauf) und `confirm: true` ausführen; jede Seite bekommt eine eigene Revision, `results` meldet das Ergebnis je Seite. Ersetzt wird nur sichtbarer Text (keine Links, Stile, Code oder dynamischen Inhalte); in reinen Textfeldern (Titel, Button-Texte) werden Leerzeichen am Anfang und Ende der Ersetzung entfernt. Globale Module werden nicht geändert, sondern in `skipped_nodes` genannt – sie im Bibliothekseintrag ändern (`lit-guide` topic `divi-library`). ## Menüs pflegen - `lit/menu-get` liefert den Baum und `menu_rev` (Stand des Menüs; für ein neues Menü schon `lit/menu-create`). `lit/menu-set-items` verlangt diese `menu_rev`; hat sich das Menü inzwischen geändert, kommt `rev_mismatch` – dann mit `lit/menu-get` neu lesen. Die Antwort enthält die neue `menu_rev` für weitere Änderungen. - Für größere Umbauten den Baum verändern und vollständig als `items` an `lit/menu-set-items` senden (bestehende Einträge mit `id`, neue ohne `id`). Wird der Baum unverändert zurückgeschickt, meldet das Tool „keine Änderung“ und schreibt nichts. - Für kleine Änderungen `operations`: `{op: "add", item, parent_id?, position?}`, `{op: "move", id, parent_id?, position?}`, `{op: "remove", id}` (Kinder eines entfernten Eintrags rücken an seine Stelle). - Neue Einträge ohne `id`: `type` `post`/`taxonomy` mit `object_id`, oder `custom` mit `url` (`/pfad`, `#anker`, `http(s)`, `mailto`, `tel`) und `title`; jeweils optional `children`. Das Ziel eines bestehenden Eintrags lässt sich nicht ändern – dafür entfernen und neu anlegen. - Verlinkt werden nur für den Nutzer lesbare, veröffentlichte Inhalte und Begriffe öffentlicher Taxonomien. Private Inhalte sind immer ausgeschlossen. Entwürfe, ausstehende oder geplante Inhalte lassen sich nur mit `allow_unpublished: true` verlinken – WordPress zeigt den Menüpunkt sofort an, Besucher bekommen bis zur Veröffentlichung einen toten Link (die Antwort enthält dazu eine Warnung). - Fallen dabei Einträge weg, verlangt das Tool `confirm: true`; `previous_items` (Stand vorher) erlaubt das Zurückbauen – neu angelegte Einträge erhalten dabei eine neue `id`, CSS-Klassen, Linkziel und Beschreibung gehen verloren. - `lit/menu-assign-location` mit `menu_id: 0` entfernt ein Menü von seiner Position (es verschwindet dann von der Website) und braucht dafür `confirm: true` nach Rückfrage; die Antwort nennt das entfernte Menü. ## Einträge eines eigenen Inhaltstyps (Pods) 1. `lit-content-types` mit `post_type` → Pflichtfelder, Auswahlwerte, Beziehungsziele. 2. `lit-content-create` mit allen Pflichtfeldern in `fields`. 3. Beziehungen über IDs (vorher mit `lit-content-query` suchen). ## Vorlage für einen Inhaltstyp (Theme Builder) Wie Einträge eines Inhaltstyps (z. B. Personen) auf der Website aussehen, legt eine Theme-Builder-Vorlage fest. Ablauf und Regeln: `lit-guide` topic `theme-builder`. Neue Vorlagen sind deaktiviert; aktiviert wird nur auf ausdrücklichen Wunsch mit `lit/tb-activate`.