2026 OpenClaw Frontend auf Remote Mac:
ESLint/Stylelint-JSON parsen & Fix-Branch-Entwurf
Zielgruppe: Frontend-Teams und Release-Verantwortliche, die auf einem Remote Mac wiederholbare Lint-Läufe brauchen und aus ESLint- sowie Stylelint-JSON klare Fix-Branch-Entwürfe für OpenClaw oder menschliche Reviewer erzeugen wollen. Dieser Leitfaden liefert Installations- und Konfigurationsschritte, eine Pfadkonvention unter artifacts/lint/, eine Entscheidungstabelle für Ausgabeformate sowie CI-Preflight-Reihenfolge vor teuren Jobs. Vertiefung mit drei bestehenden OpenClaw-Playbooks: package.json-Preflight & Diff-Report, npm/pnpm-Audit JSON & Gateway, Lighthouse, tote Links & A11y-Gates.
01 Typische Schmerzpunkte
Lint-Drift zwischen Laptop und Remote Runner entsteht fast immer, wenn Node-Version, Plugin-Auflösung oder Arbeitsverzeichnis leicht abweichen; hübsche Terminalfarben helfen OpenClaw nicht, wenn keine stabile JSON-Datei existiert.
- Pfad- und Glob-Inkonsistenz: relativer Startpunkt auf dem Remote Mac weicht vom lokalen Editor ab, wodurch
eslint .andere Dateien sieht als erwartet. - Verwechslung Exit-Code vs. Parserfehler: ein Linter mit Funden endet regulär mit Status ungleich null, während die JSON-Datei dennoch gültig ist — CI braucht getrennte Prüfungen.
- Stille Auto-Fixes: ohne Fix-Branch-Entwurf landen Massenänderungen auf
mainund kollidieren mit parallelen Features; Auditierbarkeit leidet ebenso wie bei undokumentierten Skriptänderungen inpackage.json.
02 Format-Matrix: ESLint vs. Stylelint vs. Terminal
Die folgende Tabelle priorisiert maschinenlesbare Ausgaben für Parser, Agenten und Schwellen-Gates; sie ergänzt visuelle Checks in der Pre-Release-Kette.
| Format | Maschinenlesbarkeit | Parser-Aufwand | Typische Fehlerquelle |
|---|---|---|---|
ESLint --format json |
Sehr hoch | Gering mit jq/Node | Fehlende Plugins im Runner-Cache |
Stylelint --formatter json |
Sehr hoch | Mittel wegen customSyntax | Falsche Dateimasken im Monorepo |
| Stylish / farbiges tty | Niedrig | Hoher Regex-Aufwand | ANSI-Sequenzen in CI-Logs |
03 Installation & Pfadkonvention
Grundinstallation: im Repository-Root npm ci oder pnpm install --frozen-lockfile ausführen; node -v und Paketmanagerversion in jede Log-Datei schreiben. ESLint und Stylelint als Projektabhängigkeiten pinnen, globale CLI nur, wenn die Pipeline dasselbe Executable referenziert.
Pfadkonvention artifacts/lint/: nicht versionieren, aber CI-Upload erlauben. Namensschema eslint.<short_sha>.json und stylelint.<short_sha>.json; optional summary.<short_sha>.md für Menschen. Parallel dazu stderr nach artifacts/lint/*.log umleiten, damit OpenClaw Stacktraces von gültigem JSON trennt.
mkdir -p artifacts/lint
npx eslint . --ext .ts,.tsx,.js,.mjs,.cjs --format json > "artifacts/lint/eslint.${SHORT_SHA}.json" 2> "artifacts/lint/eslint.${SHORT_SHA}.log"
npx stylelint "**/*.{css,scss}" --formatter json > "artifacts/lint/stylelint.${SHORT_SHA}.json" 2> "artifacts/lint/stylelint.${SHORT_SHA}.log"
- ☐ Sicherheit: keine Secrets in Config-Kommentaren ausgeben; Reports nur in private Artefakt-Speicher legen.
- ☐ Reproduzierbarkeit:
pwdundgit rev-parse HEADin den Kopf jeder JSON-Begleitdatei schreiben.
04 Reproduzierbare Lauf-Schritte
Schritt 1 — Baseline: sauberen Worktree auf dem Ziel-Branch checken, identische Umgebungsvariablen wie in der Referenz-CI setzen, CI=true erzwingen, damit Linter kein TTY simulieren.
Schritt 2 — JSON erzeugen: obige Befehle ausführen; Dateigröße beobachten — bei sehr großen Projekten nach Paketgrenzen splitten oder nur geänderte Pfade über git diff --name-only füttern.
Schritt 3 — Schema sanity: mit jq empty oder kleinem Node-Skript validieren; Zähler errorCount je Regel aggregieren und Top-Regeln für Slack/Webhook-Kurzmeldung ausgeben.
Schritt 4 — OpenClaw: absoluten Pfad der JSON-Dateien und die Aggregates in die Task-Payload; Anweisung, einen Fix-Branch-Entwurf mit klar benannten Commits vorzuschlagen, ohne direkt zu pushen, sofern Policy das verbietet.
Schritt 5 — Branch anlegen: git checkout -b fix/lint-openclaw-${SHORT_SHA}; Report-Markdown hinzufügen; optional zweiter Commit nur mit eslint --fix nach expliziter Freigabe.
Schritt 6 — Review-Gate: Pull-Request als Entwurf markieren, mindestens einen menschlichen Review für Style- und API-Risiken einplanen; bei Monorepos pro Paket eigene Zusammenfassungstabellen erzeugen.
05 CI- und Pre-Release-Kette
Reihenfolge auf dem Remote Mac-Runner: Dependency-Install und Lockfile-Check, danach JSON-Lint-Job, erst dann Bundles, statische Assets und teure Browserjobs. So vermeiden Sie Wartezeit, wenn offensichtliche Regelverletzungen ohnehin blockieren.
Policy-Beispiel: errorCount > 0 → Pipeline rot; warningCount über Schwellen → gelbes Gate mit manueller Freigabe. Artefakte an den nächsten Schritt weiterreichen, etwa Lighthouse oder Smoke, damit derselbe Commit-Kontext dokumentiert bleibt.
Zahlen & Parameter zum Zitieren: typische JSON-Größe 0,5–20 MB je nach Repo; Aggregations-Skript soll unter zehn Sekunden bleiben, sonst parallelisieren. Drei Review-Fragen: Welche Regeln sind neu? Welche Verzeichnisse waren ausgeschlossen? Stimmt die Stylelint-customSyntax-Version mit dem Bundler überein?
06 FAQ & Triage
Leere JSON trotz lokaler Treffer: Arbeitsverzeichnis prüfen, --ignore-path und Editor-Settings vergleichen, Symlinks auf dem Runner.
Parser bricht: zuerst Datei-Encoding und Trailing-Kommas ausschließen; dann Plugin-Versionen gegen Lockfile diffen.
Performance: --cache für ESLint auf dem Remote Host aktivieren, Cache-Pfad unter artifacts/eslint-cache/ definieren und pro Branch isolieren.
| Symptom | Wahrscheinliche Ursache | Maßnahme |
|---|---|---|
| Stylelint 0 Funde, ESLint viele | Glob deckt Styles nicht | Pfade in stylelint.config explizit setzen |
| CI grün, OpenClaw verwirrt | Alter Report-Pfad gecacht | SHA im Dateinamen erzwingen |
| Exit 2 ohne JSON | Konfigurationsfehler | stderr-Log analysieren, Pluginpfad fixen |
JSON-first, Pfade mit Commit-SHA, Exit-Codes von Scheidung trennen — dann werden ESLint und Stylelint auf dem Remote Mac zuverlässige Eingaben für OpenClaw und menschliche Reviewer. So entstehen nachvollziehbare Fix-Branch-Entwürfe, die sich sauber in CI- und Pre-Release-Ketten einreihen lassen.
Dedizierter Apple-Silicon-Knoten für Lint, OpenClaw & Pre-Deploy
Brauchen Sie einen stabilen Remote Mac für JSON-Linter, Artefakt-Uploads und verkettete Gates? In der Hilfe finden Sie SSH-, Runner- und Troubleshooting-Schritte ohne Login. Im Blog liegen weitere OpenClaw-Playbooks. Über kaufen.html mieten Sie einen Mac Mini M4 mit Checkout ohne Konto — ideal, um Lint-Pipelines und Pre-Release-Checks vor der Bindung zu validieren.