Команды, которые арендуют удалённый Mac через MacPng, часто отгружают один и тот же артефакт дважды: сначала «чистый» мастер из Figma, затем клиентский PNG с видимой меткой, доказательством целостности и аудируемым бандлом. Ниже — воспроизводимый сценарий для типичной PNG-доставки: структура каталогов, шаблон Bash + ImageMagick, SHA-256, датированные архивы и подвеска контура к OpenClaw (Gateway и навыки) с JSONL-журналами и повторами при сбоях. Slug: 2026-openclaw-remote-mac-figma-export-png-watermark-archive-steps.html. Согласуйте установку с руководством по установке OpenClaw на все платформы, параметры экспорта — с чеклистом экспорта PNG из Sketch и Figma, а дебаунс и backoff — с пакетным watch, retry и архивом логов, чтобы права и политика повторов совпадали во всех пайплайнах на Apple Silicon.
Содержание
Каталог экспорта: соглашения и права
Десктопное приложение Figma пишет файлы туда, куда укажет дизайнер; для автоматизации зафиксируйте один абсолютный путь на кампанию (или симлинк с понятным именем). На удалённом Mac держите весь контур под одним пользователем POSIX — тем же, что владеет SSH-сессиями, LaunchAgent и воркером OpenClaw: так проще TCC, блокировки и предсказуемые пути для MacPng.
Рекомендуемое дерево (корень переименуйте, смысл сохраните):
~/FigmaDelivery/inbox— цель пункта «Export» в Figma; наблюдатель смотрит только сюда (плоская структура проще ACL).~/FigmaDelivery/staging— атомарный перенос перед наложением водяного знака, чтобы не композить полузаписанный PNG.~/FigmaDelivery/watermarked— итоговые PNG после checksum и ворот QA.~/FigmaDelivery/archive— неизменяемые tar.gz и копии манифестов на релиз.~/FigmaDelivery/failed— входы и JSON-sidecar с причиной.~/FigmaDelivery/logs— дополняемый JSONL (одна строка на этап).
Чеклист прав: (1) chmod 750 на корне; на общих хостах не используйте 777. (2) В plist launchd передавайте HOME и абсолютные пути — тильда раскрывается ненадёжно. (3) Установите ImageMagick туда, откуда воркер его видит (часто brew install imagemagick). (4) Если экспорт идёт на сетевой том, проверьте задержку блокировок: медленный SMB ломает наивную проверку «стабильного размера» — увеличьте дебаунс или сначала копируйте на локальный SSD. Качество исходника (sRGB, альфа, масштаб) сверьте с сравнением прозрачности Figma и Sketch, прежде чем прожигать маркер на неверном мастере.
Параметры водяного знака: положение, прозрачность и безопасная зона
Промышленный водяной знак — это договор: юристы хотят читаемость, бренд — деликатность, продуктовый дизайн — чтобы критичный UI и лица не попадали в зону наложения. Закрепите правила как константы рядом со скриптом, а не разовыми кликами в GUI.
Ассет: прозрачный PNG-маркер (RGBA) в 2× по ширине относительно типичного композита — ImageMagick аккуратно уменьшит. Горячий путь без кэша не усложняйте растеризацией SVG; для исходников в SVG см. матрицу SVG → Retina PNG.
Таблица геометрии (стартовые значения, подстройте под гайдлайн):
| Параметр | Типичное значение | Заметки |
|---|---|---|
| Gravity | SouthEast или SouthWest |
Угол хорошо читается в превью; для RTL-локалей можно зеркалить угол. |
| Отступ от края (безопасное поле) | 24–48 px при 1× |
Для ультрашироких баннеров масштабируйте через %, например -geometry +5%+5% после опорной ширины. |
| Прозрачность / dissolve | 30–45% визуально |
-dissolve 35 (проценты) или умножение альфы; проверьте на светлом и тёмном фоне. |
| Безопасная зона контента | Нижний правый квадрант с полем | Для кадров с лицами переключитесь на NorthEast или добавьте опциональную проверку пересечения (например OpenCV). |
Шаблон композита одного файла (синтаксис ImageMagick v7; подставьте пути):
MAGICK_WATERMARK="$HOME/FigmaDelivery/assets/mark_rgba.png"
IN="$1"
OUT="$2"
magick "$IN" "$MAGICK_WATERMARK" -gravity SouthEast -geometry +32+32 \
-compose dissolve -define compose:args=35 -composite "$OUT"
Оборачивайте циклом все *.png в staging/; логируйте stage=composite и длительность. Беспотерьное сжатие байтов выносите в отдельный этап — см. метаданные PNG, ICC/sRGB и lossless, чтобы не снять ICC до подписи клиента.
Контрольные суммы, манифест и версионный архив
Контрольные суммы превращают папку PNG в пакет доказательств: операции могут показать, что ушло с хоста, а QA через месяцы воспроизведёт те же байты.
Чеклист манифеста:
- На файл: относительный путь,
sha256, размер в байтах,mtime(UTC ISO), опционально ключ файла Figma из имени родителя. - На задание:
job_id(UUID),pipeline_version(semver скрипта),watermark_asset_sha256,git_sha, если пресеты живут в репозитории. - Правило продвижения: дописывайте строку в
manifest.jsonlтолько после успешного композита и опциональных ворот QA для PNG.
Checksum дерева:
(cd "$WATERMARKED_DIR" && find . -name '*.png' -print0 | \
sort -z | xargs -0 shasum -a 256) > "$ARCHIVE_DIR/manifest-${JOB_ID}.sha256"
Версионный архив: после успешного батча создайте archive/drop_YYYYMMDDThhmmssZ_${GIT_SHORT:-local}.tar.gz с каталогом watermarked/ и манифестом. То же имя tarball занесите в тикет. Для дифференциальной отгрузки дополнительно отдайте manifest.jsonl под импортёр CMS — ту же схему можно стыковать с материалом цепочка CLI, retry и очередь на M-серии.
Триггеры OpenClaw и обратная передача логов
OpenClaw должен оркестрировать, а не переписывать ImageMagick. Считайте Bash- или Python-точку входа единственным источником истины для кодов выхода; Gateway или зарегистрированный навык лишь планирует запуск и собирает stdout/stderr.
Варианты триггера:
- Watch папки → задача:
fswatch(или интеграция watch в OpenClaw) отдаёт пути; дебаунс и постановка job в очередь. - Вызов навыка: действие
figma_png_watermark.runс полями{ "inbox": "...", "mark": "...", "campaign": "..." }; пути валидируйте по allow-list, чтобы исключить произвольный shell. - Срез по расписанию: ночные бандлы удобнее вызывать через
launchdс замороженным конфигом OpenClaw — проще планировать нагрузку, чем на чистых событиях.
Обратная передача логов: на каждый этап — одна JSON-строка: {"ts":"...","job_id":"...","stage":"move|composite|sha256|archive","path":"...","exit":0,"ms":124}. Хвостите файлы в наблюдаемость или шлите компактный webhook после job. Упаковку навыков согласуйте с эволюцией навыков и кода OpenClaw и локальной базой знаний в Markdown, чтобы промпты и runbook версионировались рядом со скриптом.
Шаблон повтора: при exit!=0 классифицируйте stderr: «resource busy» / «disk full» → экспоненциальный backoff (5 с, 20 с, 60 с), до трёх попыток; «corrupt image» / нарушение политики → сразу в failed/. Текст backoff держите согласованным с материалом про watch и retry, чтобы у дежурного был один runbook.
FAQ по типовым сбоям
В: Композит прошёл, но цвета бледнее, чем в Figma.
О: Убедитесь, что экспорт и композит в sRGB; не подмешивайте CMYK-маркер случайно. Перечитайте чеклист PNG: sRGB и Display P3 до смены профилей в середине контура.
В: Один и тот же PNG обработали дважды — двойной водяной знак.
О: Введите идемпотентность: mv из inbox в staging или кэш inode+mtime в SQLite/JSON. OpenClaw должен прокидывать job_id в окружение, чтобы повторы были прослеживаемы.
В: Gateway «успех», а tarball пустой.
О: Часто относительные пути при tar — всегда cd в родителя watermarked/ или абсолютные пути. Логируйте ls на этапе stage=archive.
В: На кадрах 4K производительность падает.
О: Ограничьте параллельные magick по советам из пакетного экспорта 4K PNG на удалённом Mac; наложение чувствительно к пропускной способности памяти.
В: Юристы просят IPTC после водяного знака.
О: Вторым этапом подключите exiftool по шагам IPTC и мониторинга; сначала пиксели, затем метаданные, чтобы ревью совпадало с отгрузкой.
Кратко: удалённый Mac — удачная площадка для PNG-доставки из Figma: стабильные пути, нативный ImageMagick и запас по CPU/RAM для checksum и архива, который на дорожном ноутбуке раздражает. Когда манифест, tarball и JSONL сходятся, клиентский QA перестаёт спорить «какой вложение финальное» и подписывает хэш бандла. Если у вас несколько заданий OpenClaw, переиспользуйте те же имена каталогов, что и в watch для многоразмерных PNG, и в этом материале — один дежурный runbook на все кампании.
Удалённый Mac для ночных пайплайнов Figma → PNG
Откройте главную MacPng, изучите варианты аренды, тарифы и узлы и инструкцию по SSH/VNC без создания аккаунта (внутри сайта — ограниченный по времени доступ без логина). Выберите узел, подключите воркер и перенесите этот HowTo без правок: те же папки, тот же контракт checksum и те же хуки OpenClaw.