Когда в одну папку сыплются сотни экспортов, «случайный» true-color PNG раздувает CDN, а лишние цвета ломают визуальную согласованность UI. Ниже — воспроизводимый контур на удалённом Mac: официальная установка OpenClaw, шлюз (gateway), мониторинг каталога доставки, вызов pngquant и optipng (или аналогов), проверка палитры и порогов по байтам, а также повтор при сбое. Slug: 2026-openclaw-png-palette-audit-remote-mac.html. Смежные материалы: watch-папка и многоразмерные PNG и цепочка CLI, retry и очередь на M-серии.
Содержание
Установка OpenClaw и шлюз (публичный сценарий 2026)
По документации проекта, базовая траектория выглядит так: подготовьте Node.js 22+ (рекомендуют и более свежие LTS), установите CLI через официальный скрипт для macOS/Linux (curl -fsSL https://openclaw.ai/install.sh | bash) либо глобально через npm install -g openclaw@latest. Далее интерактивный онбординг openclaw onboard --install-daemon проведёт через выбор провайдера модели и ключа API, каталог рабочей области (часто ~/.openclaw/workspace), параметры gateway — порт (часто 18789) и аутентификацию — а также подключение каналов уведомлений. Проверка: openclaw gateway status; при необходимости откройте панель openclaw dashboard. На удалённом Mac это удобно запускать под тем же пользователем, от которого идёт SSH-сессия и запись в папку доставки — меньше сюрпризов с ключами и песочницей.
Папка дизайн-доставки: структура и права
Закрепите физический корень, например ~/design-delivery, с ветками inbox/ (сырой экспорт), staging/ (в обработке), passed/, failed/, logs/. Договоритесь: дизайнеры или плагин экспорта пишут только в inbox; автоматика читает и перемещает. Владелец файлов и процесс launchd / shell, который дергает OpenClaw, должны совпадать или быть в одной группе с корректным ACL. Для смонтированных томов избегайте относительных путей вида ./inbox в разных cwd — пропишите абсолютный QA_ROOT в одном .env.
Триггер: мониторинг папки и дебаунс
Экспорт из графических редакторов часто идёт пачкой временных файлов. Используйте fswatch на inbox и паузу 2–5 секунд после последнего события, затем вызывайте единый bash-обработчик. Альтернатива — launchd с StartInterval раз в минуту для «псевдо-watch», если политика безопасности ограничивает постоянные демоны. OpenClaw может выступать оркестратором: по сигналу от watch запускается шаг «палитра + байты», результат уходит в лог и при необходимости — в мессенджер или тикет.
#!/usr/bin/env bash
# watch_palette_audit.sh — дебаунс и вызов аудита
export QA_ROOT="$HOME/design-delivery"
fswatch -o "$QA_ROOT/inbox" | while read -r _; do
sleep 4
"$QA_ROOT/bin/palette_audit.sh" "$QA_ROOT/inbox"
done
pngquant, optipng и пороги палитры / объёма
pngquant задаёт lossy-квантизацию: типично --quality=65-90 и лимит цветов --colors 256 (или меньше для пиктограмм). После квантизации прогоните optipng -o7 или oxipng -o 4 --strip safe для безопасной зачистки метаданных и дополнительного сжатия. Политика приёмки в JSON может включать: max_bytes по классу ассета, max_colors_after_quant, min_quality_floor (нижняя граница, ниже которой pngquant не должен опускаться), запрет роста файла относительно исходника (если исходник уже маленький — пропускать quant).
# Пример: квантизация + lossless, выход в staging
in="$1"
base=$(basename "$in" .png)
out="$QA_ROOT/staging/${base}.opt.png"
pngquant --quality=70-95 --speed 1 --force --output "$out" "$in" || exit 3
optipng -quiet -o7 "$out" || exit 4
size=$(wc -c < "$out" | awk '{print $1}')
test "$size" -le "${MAX_BYTES:-500000}" || exit 5
Число уникальных цветов до и после квантизации удобно снимать через identify -format '%k\n' (ImageMagick) или короткий скрипт на Pillow; для строгого аудита храните эталонные диапазоны вместе с версией pngquant и хешем конфигурации в README партии. Если класс ассетов допускает только lossless-цепочку, замените блок pngquant на единственный прогон optipng/oxipng и сравнивайте только байты и целостность CRC.
Сбои, пороги и повторный прогон
Классифицируйте коды выхода: 3 — качество/палитра не сошлось, 4 — сбой оптимизатора, 5 — превышен порог байт. В failed/ кладите sidecar .attempt с числом попыток; при attempt < MAX_RETRY применяйте экспоненциальный backoff (например 30 с, 2 мин, 8 мин) и возвращайте файл в inbox после ручного исправления макета. Идемпотентность: не обрабатывайте повторно успешный файл без изменения mtime/хеша; ведите отдельный журнал успешных хешей, чтобы не гонять CDN-пакеты повторно.
FAQ: типичные ошибки прав и путей
«Operation not permitted» при записи в inbox с сетевого диска
Проверьте полный путь, монтирование тома в том же сеансе, что и демон, и настройки «Full Disk Access» для терминала или родительского процесса. Для SMB иногда нужно отключить кэш или писать в локальный SSD с последующим rsync.
pngquant: «Not a PNG file» / странный путь
Убедитесь, что экспорт завершён (нет нулевой длины), имя без неразрывных пробелов и что скрипт не подхватывает .DS_Store. Добавьте фильтр find … -name '*.png' перед циклом.
Разный пользователь у cron и у дизайнера
Либо переведите cron/launchd на пользователя студии, либо задайте группу и chmod g+rwX на корень доставки. Логируйте whoami и cwd в начале каждого прогона.
Шлюз не отвечает
Сверьте openclaw gateway status, занятость порта и токен; перезапуск демона после обновления Node или самого openclaw.
На стороне продукта полезно разделить «мягкие» и «жёсткие» пороги: мягкое превышение объёма может давать предупреждение в отчёте, а жёсткое — немедленный failed без публикации в CDN. Для маркетинговых баннеров и скриншотов иногда выгоднее держать отдельный пресет pngquant с более широким диапазоном качества, чем для иконок и UI-спрайтов. Логи OpenClaw или обёртки shell стоит ротировать по дате, чтобы расследовать регрессии экспорта из конкретной версии Figma или Sketch.
Зафиксировав палитру, байтовые пороги и мониторинг папки на одном удалённом Mac, команда получает повторяемый конвейер дизайн-доставки без ручного просмотра каждого PNG. Остальные сценарии OpenClaw для ассетов смотрите в списке статей.
Узел под OpenClaw и CLI: тарифы и помощь без логина
Откройте тарифы и конфигурации, оформите аренду удалённого Mac и при необходимости прочитайте инструкции по SSH/VNC на MacPng — эти страницы доступны без обязательного входа в аккаунт, чтобы согласовать закупку узла под автоматический аудит PNG.