2026 OpenClaw Frontend-Praxis:
dependency-cruiser-JSON auf Remote Mac parsen, Zyklen-Gate-Summary erzeugen und in den Pull Request mergen
Zielgruppe: Teams, die im Monorepo gerichtete Importe erzwingen und trotzdem einen lesbaren PR-Digest brauchen. Dieser HowTo-Artikel liefert einen festen JSON-Vertragspfad, eine Schwellen-Tabelle für Verletzungsgrade und Modul-Obergrenzen, sechs reproduzierbare Schritte sowie zwei Auslöser: OpenClaw-Gateway oder signiertes Skript. Vertiefung: ESLint- und Stylelint-JSON am Gateway mergen, knip-Cleanup-Summary, Token-scoped Automation. Öffentlich ohne Login: Preise, Hilfe, Kaufen.
00 Einleitung: Warum Roh-JSON nicht in den Pull Request gehört
Wenn dependency-cruiser nur als farbige Konsole läuft, verlieren Reviewerinnen den Kontext zwischen Branches. Schreiben Sie stattdessen immer dieselbe Datei relativ zum Repo-Wurzelverzeichnis und parsen Sie nur diese — dann stimmen Laptop, CI und gemieteter Remote Mac. OpenClaw oder ein schmales Gateway erhält lediglich Pfad, Git-SHA und eine Versionsnummer Ihrer Schwellen-Tabelle, nie das komplette Geheimnisdepot.
Drei wiederkehrende Schmerzpunkte:
- Unsteter cwd: unterschiedliche Auflösung von Aliassen und tsconfig-Pfaden erzeugen falsche Zyklen oder blenden echte aus.
- Überlange PR-Kommentare: voller Graph-JSON sprengt API-Limits und verwässert neben ESLint- oder Bundle-Hinweisen die Aufmerksamkeit.
- Doppelte Bots: parallele Nachtjobs und Pull-Request-Events feuern zweimal — ohne Marker und Idempotency entsteht Spam statt Governance.
01 Entscheidungsmatrix: zentrales Gateway oder direktes Skript
Die folgende Matrix hilft bei der Auswahl; beide Varianten können dieselbe Markdown-Vorlage füllen, wenn Eingaben normalisiert sind.
| Kriterium | OpenClaw-Gateway | Skript plus gh pr comment |
|---|---|---|
| Geheimnisverwaltung | Token bleibt im Dienst; CI sendet nur Pfad und Tabellen-Version. | OIDC oder Kurzlebigkeit am Runner nötig; keine Tokens im Markdown-Body. |
| Merge mehrerer Digest-Blöcke | Reihenfolge fixieren und mit Lint-Summary verketten. | Clientseitig zusammenbauen oder Marker pro Tool pflegen. |
| Auditierbarkeit | Zentrale Logs und Rate-Limits. | Repository-Skripte versionieren; Änderungen über normale Reviews. |
| Latenz | Zusätzlicher Netzwerk-Hop akzeptabel für nächtliche Gates. | Geringe Latenz direkt nach depcruise auf demselben Runner. |
02 Schwellen: Verletzungsgrade, Zyklenlängen und Modul-Obergrenzen
Übernehmen Sie die Zahlen als Startwerte und dokumentieren Sie jede Änderung mit einer Tabellen-Version im Kommentar-Kopf. So bleibt nachvollziehbar, warum ein früher grüner Branch plötzlich rot wird.
| Grad | Beispielbedingung | Exit-Code |
|---|---|---|
| info | Keine Zyklen oder ausschließlich Einträge auf der Team-Allowlist. | 0 |
| warn | Ein bis zwei Zyklen, jeder Zyklus höchstens sechs Module, höchstens acht Tabellenzeilen im PR-Text. | 0 mit sichtbarem WARN-Badge im Markdown |
| error | Drei oder mehr Zyklen, ein Zyklus länger als sechs Module, oder mehr als achthundert analysierte Module ohne angepasste Architektur-Regeln. | 1 — Merge nach Team-Policy blockieren |
Zusätzlich als zitierfähige Leitplanken: höchstens drei Zyklen vollständig im Kommentar tabellieren, pro Kante höchstens drei Pfadsegmente ausgeben, den Rest als Zähler melden. Vollständiges JSON bleibt unter dem Artefakt-Link des Laufs.
03 Sechs reproduzierbare Schritte vom Graph zum mergfertigen Kommentar
- Regeln fixieren:
no-circularund weitere dependency-cruiser-Regeln in.dependency-cruiser.jsversionieren und im README benennen. - JSON schreiben: identischen Befehl in CI und auf dem Remote Mac verwenden, Ausgabe nur in die vereinbarte Datei legen.
- Metriken extrahieren: Zyklenanzahl, maximale Ringlänge und Modulzahl des Graphen per jq oder kleinem Node-Programm auslesen.
- Markdown bauen: Kurzüberschrift, Schwellen-Version, Tabelle mit den Top-Zyklen, Link zum Artefakt.
- Exit-Code setzen: warn lässt die Pipeline grün, error bricht bewusst ab, damit Required-Checks greifen.
- Kommentar upserten: HTML-Marker
<!-- openclaw-depcruise:SHA -->nutzen und bestehende OpenClaw-Blöcke anhängen statt zu duplizieren.
npx depcruise src --config .dependency-cruiser.js --output-type json --output artifacts/depcruise/graph.json
04 Auslösen: Gateway-Webhook oder Repository-Skript nach dem Artefakt
Gateway: Nach erfolgreichem Schreiben des JSON sendet die Pipeline einen signierten POST mit relativem Pfad, Pull-Request-Identifikator und Schwellen-Version. Der Dienst antwortet mit fertigem Markdown; Hosting-APIs erhalten niemals Roh-JSON. Kombinieren Sie die Ausgabe mit anderen OpenClaw-Digesten, indem Sie die Blockreihenfolge im Gateway festlegen.
Skript: node scripts/depcruise-pr-summary.mjs liest dieselbe Datei und druckt Markdown auf stdout, das Sie an gh pr comment weiterleiten. Triggern Sie nur, wenn die Artefakt-Datei frischer ist als der letzte Marker, und setzen Sie einen Idempotency-Key aus Branch-SHA und Job-Attempt, um Race-Conditions zwischen zwei Runnern zu entschärfen.
05 Kurzfragen im Betrieb
Zeigt das JSON keine Zyklen, scheitert aber dennoch die Policy? Prüfen Sie zweite Ausgabenkanäle wie summary und vergleichen Sie cwd zwischen lokalem Laptop und Remote Mac.
Wird der Kommentar zu lang für Git-Anbieter? Kürzen Sie auf drei Zyklen plus Restmenge; vollständige Daten bleiben im Speicher des CI-Laufs.
Öffentliche Einstiege ohne Anmeldung: Startseite, Preise und Pakete, Hilfe-Center, Mieten und Kaufen, alle Technik-Einblicke.
Zyklen-Gates auf derselben Hardware wie im Team fahren
Mieten Sie einen Remote Mac, spiegeln Sie Repo-Pfade und führen Sie depcruise mit identischer Node-Version wie in CI aus. Preise, Hilfe (SSH/VNC), Kaufen / Mieten — alles öffentlich lesbar.
Für dauerhafte Gate-Last lohnt sich ein gemieteter Remote Mac statt überbuchter Laptops: dieselbe Shell-Historie, identische Artefakt-Pfade und schnelle Iteration an Schwellen — starten Sie über die Preise, wählen Sie Laufzeit und schließen Sie den Vertrag über Kaufen / Mieten ab, bevor Sie die Marker in Produktions-Workflows härten.