Zielgruppe: Forschungs- und Datenvisualisierungs-Teams, die aus Matplotlib, Plotly oder Skripten wiederholt PNG für Papers, Poster und Folien exportieren — und dieselben Fehlerklassen loswerden wollen: falsche effektive Auflösung, inkonsistente Farbräume (fehlendes oder falsches ICC) und überdimensionierte Dateien, die CMS oder Repos ablehnen. Auf einem Remote Mac kapselt OpenClaw die QC-Kette: ein entprellter Ordner-Watch auf den Exportpfad, deterministische CLI-Sonden und ein JSONL-Protokoll pro Lauf. Grundlagen: OpenClaw-Installationsleitfaden; Export-Parameter und Tool-Matrix: Matplotlib vs. Plotly PNG auf Remote Mac; Betrieb mit Retries: Watch, Retry & Log-Archiv.
Inhalt
Gateway & Daemon: Minimalsetup & typische Fehler
Rollen Sie OpenClaw auf dem Remote-Rechner bewusst schlank aus: ein Dienstkonto, festgepinnte Version, /health nur auf 127.0.0.1, API-Token in ~/.config/openclaw.env mit Modus 600. Prüfen Sie curl -sS http://127.0.0.1:<port>/health sowohl nach GUI-Login als auch per ssh user@host bash -lc '…' — nicht-interaktive Shells vermissen häufig PATH-Einträge für magick und exiftool.
Häufige Gateway-/LaunchAgent-Probleme:
- 401 / leerer Health: Token-Scope oder fehlende Umgebungsvariablen in der
launchd-plist —EnvironmentVariablessetzen oderopenclaw.envim Wrapper explizitsource-en;launchctl print user/<uid>zum Abgleich. - Skill startet, QC nicht: Gateway ok, aber der Worker läuft unter anderer UID als
inbox/— Besitzer angleichen oder ACLs dokumentieren. - Daemon „stirbt“ nach Logout:
launchd-Job alsLaunchAgentim richtigen Benutzer-Label; keine Abhängigkeit von Finder-Sitzungen für reine CLI-Pfade. - Doppelstarts: zwei plist-Dateien mit identischem
Label— konsolidieren, sonst parallele Watcher und inkonsistente JSONL.
Watch-Strategie gegen halbe Dateien & Stürme
Diagramm-Exporter schreiben oft atomar über temporäre Namen oder feuern beim Speichern eine Kette von Metadaten-Updates. Lenken Sie Ausgaben auf ~/science_figures/inbox auf lokaler SSD (kein iCloud-Desktop, kein langsames SMB). Strukturieren Sie inbox, pass, quarantine, logs analog zu bestehenden OpenClaw-Patterns.
Regeln, die Stürme entschärfen:
- Nur
*.png;*.tmp,*.crdownload,.DS_Storeignorieren. - Stabile Größe: zwei identische
stat-Ergebnisse im Abstand von ca. 400–800 ms. - Debounce: 1–3 s nach
fswatch-Batch oder Ruhefenster 20–45 s bei Massenexport. - Single-Flight: ein Worker pro Inbox, damit Schwellenprüfungen serialisiert bleiben.
which magick exiftool, magick identify -version.
Ausführbare Schwellen-Tabelle (Figure-Klassen)
Die Werte sind Startpunkte — passen Sie min_px, max_px und max_bytes an Ihre Journal-Vorlage und Ziel-DPI an. ICC-Policy: embed_srgb verlangt eine lesbare Signatur IEC 61966-2.1 (oder Ihre Whitelist); assume_srgb_if_missing akzeptiert fehlendes Profil nur, wenn Ihr Einreichungsprozess Downstream explizit nach sRGB taggt (sonst entstehen leise Farbverschiebungen).
| Figure-Klasse | min Breite × Höhe (px) | max Breite × Höhe (px) | max_bytes | ICC-Policy |
|---|---|---|---|---|
| Einzelpanel (Paper, 1 Spalte) | 1200 × 800 | 2400 × 1800 | 1.5 MiB | embed_srgb |
| Mehrpanel-Figure | 2000 × 1200 | 4000 × 2400 | 4 MiB | embed_srgb |
| Poster / großes Banner | 3000 × 2000 | 6000 × 4000 | 12 MiB | embed_srgb |
| Folie (16:9, Bildschirm) | 1920 × 1080 | 3840 × 2160 | 6 MiB | assume_srgb_if_missing |
| Thumbnail / Repo-Preview | 400 × 300 | 1200 × 900 | 400 KiB | assume_srgb_if_missing |
QC-Pipeline & kopierbare Sonden
Ein schlanker Treiber liest die Tabelle (YAML/JSON), klassifiziert Dateinamen oder ein Sidecar-manifest.json, und schreibt pro Datei eine Zeile nach logs/qc.jsonl. Kernsonden:
- Pixelmaße:
magick identify -format '%w %h' "$PNG" - Profil / Farbraum-Hinweis:
magick identify -verbose "$PNG"nachProfile- oderICM-Blöcken filtern; ergänzendexiftool -s3 -ColorSpace -ProfileDescription "$PNG" - Dateigröße:
stat -f%z "$PNG"(BSD/macOS)
fswatch-Skizze (zsh):
INBOX=~/science_figures/inbox
fswatch -o "$INBOX" | while read -r; do
sleep 2
/usr/local/bin/science_png_qc_driver.zsh
done
Versagen gegen max_bytes oder ICC-Policy → atomar nach quarantine/YYYY-MM-DD/ mit Grundcode im Dateinamen-Suffix; Pass → pass/. OpenClaw-Skill ruft nur den Treiber auf und mappt Exit-Codes auf Benachrichtigungen — so bleibt die Logik ohne Agent-Loop testbar.
Fehlalarme gezielt reduzieren
Nicht jeder QC-Fail ist ein Qualitätsproblem — manchmal ist die Schwellen-Map veraltet. Trennen Sie strikt: (1) harte Fehler wie falsche Pixelmaße für die eingereichte Figure-Klasse oder Verletzung einer Redaktions-Vorgabe zu eingebettetem Profil; (2) weiche Hinweise wie leicht überzogenes max_bytes nach einem Font-Update. Für ersteres genügt Quarantäne plus manuelle Sichtung; für letzteres eignen sich wöchentliche Histogramm-Auswertungen aus JSONL (jq nach fail_reason gruppieren). Achten Sie bei Liniendiagrammen und dünnen Strichen darauf, dass manche Journals gerade Kantenlängen oder Mindeststrichstärken in der Druck-PDF erwarten — reine PNG-Pixelchecks ersetzen keine Vektor-Finalisierung, verhindern aber den häufigsten Crash: ein 400×300-Thumbnail, das irrtümlich als „Paper-Figure“ klassifiziert wurde. Versionieren Sie die Schwellen-Tabelle mit Git neben Ihren Export-Skripten, damit ein OpenClaw-Lauf aus April 2026 exakt reproduzierbar bleibt.
FAQ: Berechtigungen, Watch-Sturm, Fehlalarme
Operation not permitted / leere Directory-Listings — was tun?
TCC: exaktes Terminal- oder Hilfsbinary unter Systemeinstellungen → Datenschutz & Sicherheit → Festplattenvollzugriff freischalten; Pfade müssen der UID des Dienstes gehören; keine sensiblen Ordner anderer Nutzer ohne ACL.
Der Watcher feuert hundertmal pro Export — Performance bricht ein.
Ruhefenster nach dem letzten Event, Ereignisse pro Verzeichnis bündeln, stabile Bytegröße erzwingen; optional Batch-Modus: „wenn 30 s Ruhe, dann gesamte Inbox sortiert abarbeiten“.
Matplotlib-PNG ohne ICC — alles rot?
Oft Fehlalarm: Agg-Pipeline nimmt sRGB-ähnliche Werte an, ohne Chunk. Entweder Policy auf assume_srgb_if_missing für diese Klasse lockern oder Export mit explizitem Embed konfigurieren (siehe verlinkte Plotly/Matplotlib-Matrix).
Plotly liefert riesige Dateien trotz akzeptabler Pixel — Gate schlägt zu.
Alpha-Flächen, unnötige DPI-Multiplikatoren oder eingebettete Vorschauen — DPI und scale in der Export-Skriptquelle prüfen; max_bytes für „Poster“-Klasse anheben oder verlustfreie Rekompression als separaten Schritt nach QC planen.
Gateway 401, lokal aber ok — Remote-Trigger scheitert.
Token nicht in der SSH-Session exportiert; falsche Authorization-Header-Länge durch Windows-Zeilenumbrüche in .env; Zeitdrift minimal prüfen, falls JWT — Server mit sntp synchron halten.
Fazit: Wissenschaftliche PNG-QC wird zuverlässig, wenn Sie Exportordner auf schnellen Volumes isolieren, Schreib-Stürme entprellen und Schwellen pro Figure-Klasse versionieren — nicht pro Laptop-Gefühl. OpenClaw verbindet dieselbe CLI-Kette mit Gateway und Skills, ohne dass jeder Mitarbeiter lokale Sonderkonfigurationen pflegt. Für dauerhaft erreichbare Apple-Silicon-Kapazität — nächtliche Batches, Watch-Folder, geteilte QC-Logs — lohnt ein Miet-Mac bei MacPng: Jetzt mieten / kaufen, Preise & Pakete, Hilfe & SSH/VNC sind ohne Login lesbar; vertiefende Artikel im Technik-Insights-Index.
Remote Mac für OpenClaw-QC: Diagramm-Exports rund um die Uhr prüfen
Vertiefung: PNG-CLI-Kette & Retry, sRGB vs. Display P3, PNG-QA-Batch.