Команды контента и дизайн-доставки регулярно получают сотни PNG: где-то «пропала» прозрачность, где-то файл раздулся до мегабайт, а имена не совпадают со спецификацией фронтенда. Ниже — воспроизводимый пайплайн на удалённом Mac с OpenClaw: как зафиксировать метрики PNG QA, оркестрировать задачи, подключить скрипты и мониторинг папок, задать пороги и организовать пакетную проверку с возвратом брака и повторным прогоном. Ключевые темы: прозрачные пиксели, объём файла, размеры кадра и дисциплина именования.
Содержание
Определение показателей контроля качества (объём, прозрачность, размеры)
Прежде чем писать скрипты, зафиксируйте «контракт» приёмки в одном документе или JSON — так пакетная проверка остаётся спорной только на этапе продукта, а не на этапе интерпретации логов.
- Объём (размер файла): верхняя граница в байтах по классу ассета. Пример: иконки 64×64 — не более 80 КБ после экспорта; баннер 1920×1080 — не более 900 КБ, если в спецификации нет lossless-режима. Пороги зависят от CDN и LCP; храните их в конфиге как
max_bytes. - Прозрачность и альфа: для UI и наклеек на видео обычно нужен альфа-канал и осмысленная прозрачность: либо доля пикселей с
alpha < 255выше минимума, либо проверка «не все пиксели непрозрачны» для ассетов с прозрачным фоном. Для фото-PNG без альфы — наоборот, требование отсутствия альфа или полностью непрозрачного слоя. - Размеры кадра: точные W×H или допустимый список (например 1080×1080, 1080×1920). Дополнительно — чётность сторон для видеокодеков, минимальный размер для ретины и запрет апскейла.
- Именование: регекс или грамматика имён:
^[a-z0-9]+(__[a-z]+)?__\d+x\d+\.png$, запрет пробелов и кириллицы в путях сборки, единый разделитель.
Шаги оркестрации задач OpenClaw
OpenClaw выступает координатором: он запускает проверки, агрегирует результат и при необходимости вызывает человека или тикет в таск-трекере.
- Каталоги: заведите дерево
inbox/(сырой экспорт),staging/(в работе),passed/,failed/,logs/. Права на запись должны совпадать у экспорта и у процесса автоматизации. - Триггер: либо
fswatchнаinboxс дебаунсом (например 2–5 с после последнего изменения), либо периодический запуск поlaunchd/cron на удалённом Mac, либо явный вызов по SSH после пакетного экспорта. - Цепочка задач: (а) нормализация имён — (б) техническая валидация PNG — (в) запись JSON/CSV-отчёта — (г) перемещение в
passedилиfailed. OpenClaw может вызывать каждый шаг как отдельный «скилл» или один shell-скрипт-обёртку. - Идемпотентность: по хешу файла или mtime не гоняйте один и тот же объект бесконечно; храните sidecar
.qa.jsonс результатом последнего прогона. - Наблюдаемость: один агрегированный лог на партию плюс уведомление (webhook, почта, Slack) при ненулевом
failed.
На удалённом Mac весь цикл выполняется в той же файловой системе, куда дизайнеры складывают экспорт через смонтированный том или rsync — меньше рассинхрона путей, чем на смешанных Windows/macOS рабочих местах.
Шаблоны скриптов и примеры параметров
Ниже — минимальные ориентиры; подставьте пути и пороги из своего конфига. Скрипты удобно вызывать из OpenClaw как внешние команды по SSH.
1) Мониторинг папки (macOS, дебаунс):
#!/usr/bin/env bash
# watch_inbox.sh — при стабилизации каталога запускает валидацию
export QA_ROOT="$HOME/png-qa"
fswatch -o "$QA_ROOT/inbox" | while read -r; do
sleep 3
"$QA_ROOT/bin/validate_png_batch.sh" "$QA_ROOT/inbox"
done
2) Пороги в переменных окружения (пример):
export MAX_BYTES_ICON=81920 # 80 KiB
export MAX_BYTES_BANNER=921600 # ~900 KiB
export MIN_ALPHA_PIXEL_PCT=0.1 # доля пикселей с alpha < 255, %
export ALLOWED_SIZES="1080x1080,1080x1920,1200x628"
3) Проверка размеров кадра через sips (встроено в macOS):
sips -g pixelWidth -g pixelHeight "$f" | grep -E 'pixelWidth|pixelHeight'
4) Прозрачность и альфа: для детального разбора удобен Python с Pillow (image.getchannel('A') и гистограмма) или identify -verbose в ImageMagick. Правило «есть хотя бы один полностью прозрачный пиксель» часто отсекает случайный экспорт на непрозрачном фоне для иконок.
5) Имя файла: проверка через [[ $basename =~ ^[a-z0-9_-]+__${w}x${h}\.png$ ]] в Bash после извлечения W×H из метаданных.
| Класс ассета | Пример порога объёма | Прозрачность |
|---|---|---|
| Иконка приложения 512×512 | ≤ 400 КБ (после оптимизации) | Альфа обязательна; фон не «залит» белым |
| OG/соц 1200×628 | ≤ 1,2 МБ | По гайду: часто без альфы |
| Оверлей для монтажа | По битрейту проекта | Частичная прозрачность по краям |
Возврат неуспешных образцов и повторный прогон
Без дисциплины failed автоматизация превращается в свалку. Договоритесь о процессе:
- Отчёт: для каждого файла — код ошибки (
SIZE,BYTES,ALPHA,NAME), фактические и ожидаемые значения. OpenClaw может приложить строку к тикету Jira/Notion. - Исправление: дизайнер правит макет или пресет экспорта; файл кладут обратно в
inbox(или вstagingс тем же именем после согласования). - Повторный прогон: тот же скрипт; при успехе — перемещение в
passedи обновление.qa.json. Не удаляйте старый отчёт — архивируйте по дате партии. - Регресс: если ломается один файл из пакета, не помечайте всю партию зелёной; используйте порог «100% passed» для релиза набора.
Типичные сбои и отладка: PNG с встроенным ICC и «кажущимся» сдвигом цвета — не путать с QA прозрачности; сначала отделите цветовой профиль в отдельную проверку. «Ложные» срабатывания по альфе на экспортах из некоторых редакторов — снимите один кадр в Preview и прогоните пиксельный тест на сэмпле 1×1 сеткой. Пустой inbox при срабатывании fswatch — проверьте, что события не от фильтра временных файлов (.tmp, .DS_Store); добавьте игнор-лист.
FAQ
Нужен ли OpenClaw, если достаточно одного Bash-скрипта?
Не обязательно. OpenClaw полезен, когда нужны цепочки с ИИ-подсказками, классификацией ошибок и интеграцией с чатом или тасками. Минимальный QA можно собрать на shell + Python; OpenClaw оборачивает это в управляемый рабочий процесс.
Как не убить производительность на тысячах файлов?
Кэшируйте результаты по mtime и размеру файла, распараллельте с xargs -P с разумным лимитом, не декодируйте PNG целиком, если достаточно заголовка и быстрой выборки альфы.
Совместимость с CI?
Тот же скрипт можно вызывать из GitHub Actions или внутреннего раннера, но эталонная среда для дизайн-экспорта чаще совпадает с macOS. Удалённый Mac выступает эталонным валидатором перед выкладкой.
Где смотреть тарифы и доступ без входа?
Страницы аренды, тарифов и помощи по SSH/VNC на сайте MacPng можно открыть без регистрации и входа в аккаунт — удобно для согласования закупки узла под конвейер QA.
Масштабируемое управление материалами начинается с ясных метрик и повторяемого контура. Закрепив OpenClaw, пороги объёма, правила прозрачных пикселей и именование на одном удалённом Mac, команды контента и доставки дизайна снимают ручной хаос с приёмки PNG.
Запустите пакетный PNG QA на выделенном Mac mini M4
Ознакомьтесь с конфигурациями и ценами на странице тарифов и оформите аренду удалённого Mac — материалы по подключению доступны на странице помощи без обязательного входа в аккаунт. Подходит командам, которым нужен круглосуточный узел под скрипты и OpenClaw.