Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
8.7 KiB
8.7 KiB
Etappe 3a – Manuelle Abnahme (Divi-Bibliothek)
Automatisch geprüft sind bereits:
- alle Unit-Tests (
composer test) und Lint (composer lint); divi-library-smoke.sh(neu) und die fünf bisherigen Integrationsskriptedivi-write-smoke.sh,divi-read-smoke.sh,mcp-smoke.sh,wp-basis-smoke.shundmedia-admin-smoke.sh(alle intests/Integration/).
divi-library-smoke.sh prüft über den OAuth-Endpunkt, nur mit temporären Daten, die es danach wieder löscht:
- Werkzeugliste:
lit-library-insertdirekt,lit/library-list,lit/library-save,lit/divi-node-copyundlit/divi-dynamic-sourcesindirekt, insgesamt 22 direkte Tools; - Speichern als normaler und als globaler Eintrag: Inhalt byte-gleich mit Divis eigenen Einträgen, dieselben
Begriffe (
scope,layout_type,module_width) und Divi-Metadaten, keine Divi-Kennzeichen, Quellseite unverändert;lit/library-listzeigt beide Einträge; - Einfügen als globale Instanz und als Kopie: Bytes wie beim Visual Builder, keine Windows-Zeilenumbrüche;
- globale Änderung: Probelauf mit
confirm_requiredund den betroffenen Seiten,confirmändert den Eintrag mit Revision, die Bytes der Seiten bleiben gleich (sie verweisen nur auf den Eintrag); - ein Redakteur, der eine private Seite mit der Instanz nicht bearbeiten darf: Probelauf mit
blocked_ids, Bestätigung abgelehnt (forbidden), nichts gespeichert; - Knoten kopieren zwischen Seiten, auch die Ablehnung einer veralteten
source_tree_rev; {{link:ID}}im Button: gespeichert als Divis „Seite Link“ (post_link_url_page), ein Entwurf als Ziel erscheint nur als?page_id=…; in Textfeldern abgelehnt;- ein Redakteur ohne
unfiltered_html: Interaktionen, Lottie-Quelle und eigenes HTML werden vonlit/library-save,lit-library-insert(Kopie) undlit/divi-node-copyabgelehnt, harmlose Knoten gehen; - Gruppe „Divi-Bibliothek“ deaktiviert: Bibliothekseinträge sind in den Divi-Lesetools
not_found, die Bibliothekstools verschwinden; lit-guidemit Thema „all“,lit-site-statusohne Befunde bei Divi,lit/divi-dynamic-sourcesfür Seiten.
Die folgenden Punkte brauchen den echten Visual Builder bzw. einen verbundenen KI-Assistenten. Abweichungen als kurze Notiz zurückmelden; sie werden Folgeaufgaben.
Vorbereitung
- DDEV läuft, Divi 5.2.1 ist aktiv, LIT MCP zeigt Version 0.4.0 (Plugins-Seite).
- Unter Einstellungen → LIT MCP → Tools stehen die Gruppen „Divi“ und „Divi-Bibliothek“ auf ihrem Standard (nicht „nur lesen“, nicht deaktiviert).
- Den KI-Assistenten neu verbinden, damit er die neuen Tools und Hinweise lädt. In einer neuen
Unterhaltung ist
lit-library-insertsichtbar. - Nach einem Lauf von
divi-library-smoke.shist nichts übrig: unter Seiten → Alle Seiten und unter Divi → Divi-Bibliothek nach „LIT Smoke“ suchen (jeweils auch im Papierkorb) – keine Treffer. - Zwei Entwurfsseiten mit dem Divi Builder anlegen, z. B. „Abnahme 3a – Seite A“ und „Abnahme 3a – Seite B“, jede mit mindestens einem Abschnitt, einer Zeile und einem Textmodul. Die „[Fixture]“- und „[Test]“-Inhalte nicht verwenden und nicht ändern.
1. Vom Plugin angelegte Bibliothekseinträge im Visual Builder
- Den KI-Assistenten bitten, einen Abschnitt von Seite A als normalen Eintrag und ein Textmodul von Seite A als globalen Eintrag in der Divi-Bibliothek zu speichern (Titel mit „Abnahme 3a“).
- Divi → Divi-Bibliothek öffnen: beide Einträge erscheinen mit dem richtigen Typ (Abschnitt bzw. Modul), der Modul-Eintrag ist als global gekennzeichnet.
- Beide Einträge in der Bibliothek mit dem Visual Builder öffnen: der Inhalt stimmt mit dem Knoten auf Seite A überein, der Builder meldet keine Fehler.
- Seite A im Visual Builder öffnen: sie ist unverändert (Speichern in die Bibliothek ändert die Quelle nicht).
- Im Visual Builder von Seite B „Aus Bibliothek hinzufügen“: beide Einträge sind auswählbar und lassen sich einfügen. Danach die Seite ohne Speichern verlassen.
2. Vom Plugin eingefügte globale Instanz und Kopie
- Den KI-Assistenten bitten, den globalen Eintrag mit
lit-library-insertin Seite B einzufügen (als Instanz) und den normalen Eintrag als Kopie. - Seite B im Visual Builder öffnen: das Modul ist als global markiert (Divis Kennzeichnung für globale Module) und zeigt den Inhalt aus der Bibliothek; der kopierte Abschnitt ist nicht global.
- Die Kopie im Builder ändern und speichern: der Bibliothekseintrag und Seite A bleiben unverändert.
- Das globale Modul im Builder ändern und speichern: die Änderung erscheint im Bibliothekseintrag und überall, wo die Instanz steht.
- Vorschau von Seite B: der Inhalt des globalen Moduls wird angezeigt.
- Hinweis:
lit-page-render-summaryzeigt globale Module nicht (über die Schnittstelle rendert Divi sie nicht) und nennt sie unternotes; das ist erwartet.
3. Globales Modul über den KI-Assistenten ändern (Probelauf und Bestätigung)
- Den KI-Assistenten bitten, den Text des globalen Moduls zu ändern. Er muss zuerst den Probelauf zeigen: welche Seiten betroffen sind (hier mindestens Seite B), und nachfragen, bevor er etwas speichert.
- Nach der Nachfrage ablehnen: der Eintrag bleibt unverändert (in der Divi-Bibliothek prüfen).
- Erneut bitten und zustimmen: der Assistent speichert mit Bestätigung (
confirm). - Vorschau aller betroffenen Seiten zeigt den neuen Text; die Seiten selbst wurden nicht neu gespeichert (unter „Revisionen“ der Seite B keine neue Revision).
- Beim Bibliothekseintrag ist unter „Revisionen“ der Stand vor der Änderung sichtbar.
- Unter Einstellungen → LIT MCP → Protokoll steht die Änderung des Eintrags.
- Den Eintrag im Visual Builder öffnen: er lässt sich weiter bearbeiten und speichern.
4. Knoten zwischen Seiten kopieren
- Den KI-Assistenten bitten, einen Abschnitt von Seite A mit
lit/divi-node-copyauf Seite B zu kopieren. - Seite B im Builder öffnen, den kopierten Abschnitt ändern und speichern: Seite A bleibt unverändert.
5. Interner Link
- Den KI-Assistenten bitten, auf Seite B einen Button mit
{{link:<ID von Seite A>}}einzufügen. - Im Builder zeigt das Link-Feld des Buttons dynamischen Inhalt „Seite Link“ mit Seite A.
- Solange Seite A ein Entwurf ist, verlinkt der Button in der Vorschau auf
?page_id=<ID>. - Seite A veröffentlichen: der Button verlinkt auf die schöne Adresse. Danach Seite A wieder als Entwurf speichern.
6. Rechte und die Gruppe „Divi-Bibliothek“
- Einstellungen → LIT MCP → Tools: die Gruppe „Divi-Bibliothek“ ist sichtbar, mit
lit-library-insert,lit/library-listundlit/library-save. - Gruppe auf „nur lesen“: nach neuer Verbindung fehlt
lit-library-insertin der Werkzeugliste; Bibliothekseinträge lassen sich lesen (lit-divi-outline), Änderungen daran werden abgelehnt, undlit/divi-node-copymit einem Bibliothekseintrag als Quelle wird ebenfalls abgelehnt. Hinweis: Steht dagegen die Gruppe „Divi“ auf „nur lesen“, bleibtlit-library-insertin der Liste, lehnt aber jedes Einfügen ab (unsupported, „Divi-Änderungen sind … abgeschaltet“) – das ist so gewollt, kein Fehler. - Gruppe deaktivieren: nach neuer Verbindung fehlen die Bibliothekstools; eine Bibliotheks-ID gilt in
lit-divi-outlineals nicht vorhanden. Seiten lassen sich weiter lesen und bearbeiten. - Die Gruppe wieder auf ihren Standard stellen und neu verbinden.
- Optional mit einem Redakteurs-Konto: unter Einstellungen → LIT MCP → Zugriff die Rolle „Redakteur“ freigeben. Im KI-Assistenten die Verbindung trennen und neu verbinden; bei der Anmeldung (OAuth) mit dem Redakteurs-Konto einloggen – am einfachsten in einem privaten Browserfenster, in dem niemand bei WordPress angemeldet ist. Dann in Divi → Rollen-Editor für „Redakteur“ „Globale Bibliothekselemente bearbeiten“ abschalten und den Assistenten ein globales Modul ändern lassen: Ablehnung mit Hinweis auf den Rollen-Editor. Danach das Recht wieder einschalten, die Freigabe der Rolle zurücknehmen und den Assistenten wieder als Administrator verbinden.
lit-site-status: bei Divi keine Einträge unterproblems.
Aufräumen
- Die Einträge „Abnahme 3a …“ in der Divi-Bibliothek und die Seiten A und B löschen (auch aus dem Papierkorb).
- Divi legt fehlende Systembegriffe (
scope,layout_type,module_width) beim nächsten Speichern selbst an; sie nicht von Hand löschen. - Optional: die Einträge der Abnahme im Protokoll-Tab über „Protokoll leeren“ entfernen.