Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
118 lines
8.0 KiB
Markdown
118 lines
8.0 KiB
Markdown
# 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 Integrationsskripte `divi-write-smoke.sh`,
|
||
`divi-read-smoke.sh`, `mcp-smoke.sh`, `wp-basis-smoke.sh` und `media-admin-smoke.sh` (alle in
|
||
`tests/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-insert` direkt, `lit/library-list`, `lit/library-save`, `lit/divi-node-copy` und
|
||
`lit/divi-dynamic-sources` indirekt, 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-list` zeigt 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_required` und 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 von
|
||
`lit/library-save`, `lit-library-insert` (Kopie) und `lit/divi-node-copy` abgelehnt, harmlose Knoten gehen;
|
||
- Gruppe „Divi-Bibliothek“ deaktiviert: Bibliothekseinträge sind in den Divi-Lesetools `not_found`, die
|
||
Bibliothekstools verschwinden;
|
||
- `lit-guide` mit Thema „all“, `lit-site-status` ohne Befunde bei Divi, `lit/divi-dynamic-sources` fü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-insert` sichtbar.
|
||
- [ ] Nach einem Lauf von `divi-library-smoke.sh` ist nichts übrig:
|
||
`cd /home/janniclas/Projekte/WordPress && ddev wp post list --post_type=et_pb_layout,page --post_status=any --s="LIT Smoke" --format=count`
|
||
ergibt `0`.
|
||
- [ ] 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-insert` in 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-summary` zeigt globale Module nicht (über die Schnittstelle rendert Divi sie
|
||
nicht) und nennt sie unter `notes`; 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-copy` auf 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-list` und `lit/library-save`.
|
||
- [ ] Gruppe auf „nur lesen“: nach neuer Verbindung fehlt `lit-library-insert` in der Werkzeugliste;
|
||
Bibliothekseinträge lassen sich lesen (`lit-divi-outline`), Änderungen daran werden abgelehnt.
|
||
- [ ] Gruppe deaktivieren: nach neuer Verbindung fehlen die Bibliothekstools; eine Bibliotheks-ID gilt in
|
||
`lit-divi-outline` als 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 Zugriff freigegeben): 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.
|
||
- [ ] `lit-site-status`: bei Divi keine Einträge unter `problems`.
|
||
|
||
## 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.
|