Загружай этот скилл когда нужно быстро получить тестовые картинки, иконки, фото-заглушки.
scripts/test-graphics.py — Python-скрипт в папке скилла (относительный путь от корня скилла).
Запуск: python3 scripts/test-graphics.py ....
Зависимости: Python 3, Pillow, requests (есть на системе).
scripts/test-graphics.py photo [width] [height] [output]
Источник: picsum.dev (1-й приоритет), loremflickr.com (fallback), placehold.co (цветной блок), Pillow-генерация (полный fallback).
Примеры:
# Случайное фото 800x600
scripts/test-graphics.py photo
# 200x150
scripts/test-graphics.py photo 200 150
# В конкретный файл
scripts/test-graphics.py photo 1920 1080 ./assets/hero.jpg
scripts/test-graphics.py placeholder <width> <height> [color] [text] [output]
Примеры:
# Базовый 800x600 со случайным цветом
scripts/test-graphics.py placeholder
# 200×150 красный
scripts/test-graphics.py placeholder 200 150 "#FF0000" "My Image"
# Синий с текстом
scripts/test-graphics.py placeholder 300 200 "#3498DB" "Hello"
Цвета: #RRGGBB. Если текст содержит пробелы — в кавычки.
scripts/test-graphics.py icon <name> [color] [size] [output]
Список всех иконок:
scripts/test-graphics.py list-icons
Примеры:
# Красная звезда 64×64
scripts/test-graphics.py icon star "#E74C3C"
# Синий дом 48×48
scripts/test-graphics.py icon home "#3498DB" 48
# В папку
scripts/test-graphics.py icon user "#2ECC71" 96 ./icons/user.svg
Доступные имена: star, circle, square, triangle, heart, home, user, mail, settings, search, arrow-{right,left,up,down}, check, cross, plus, minus, info, warning, download, upload, folder, file, image, calendar, clock, location, tag, cart, eye, lock, phone, chart, gift.
Генерирует иконку-аватар по имени с настраиваемым фоном/цветом.
scripts/test-graphics.py avatar <name> [--param value] [output]
Параметры (все опциональные, -- перед значением):
| Параметр | По умолч. | Описание |
|---|---|---|
--size |
64 | Размер в px |
--background |
random | Цвет фона HEX (000, 4ECDC4) |
--color |
fff | Цвет текста HEX |
--length |
— | Длина инициалов (1 или 2) |
--font-size |
— | Размер шрифта (0.5) |
--rounded |
false | true для круглого аватара |
--uppercase |
true | false для строчных |
--bold |
false | true для жирного |
--format |
png | svg для SVG |
Примеры:
# Стандартный аватар
scripts/test-graphics.py avatar "John Doe"
# Круглый красный на чёрном 128px
scripts/test-graphics.py avatar "AB" --size 128 --background 000 --color ff0000 --rounded true
# SVG формат
scripts/test-graphics.py avatar "User" --size 200 --format svg ./icons/user-avatar.svg
scripts/test-graphics.py batch-photos <count> [output_dir]
Пример: scripts/test-graphics.py batch-photos 10 ./assets/photos/
scripts/test-graphics.py batch-icons <count> [output_dir]
Пример: scripts/test-graphics.py batch-icons 20 ./assets/icons/
Иконки будут случайных цветов и размеров (32/48/64/96px).
scripts/test-graphics.py download-icons <names> [output_dir]
Пример: scripts/test-graphics.py download-icons "star,heart,home,user,settings" ./icons/
Загружает настоящие SVG из репозитория Lucide (MIT license). GitHub может rate-limit’ить — просто повтори позже для упавших.
scripts/test-graphics.py lucide <name> [output_dir]
Пример: scripts/test-graphics.py lucide arrow-right ./icons/
Список встроенных — scripts/test-graphics.py list-icons (35 штук).
Если нужно что-то конкретное — download-icons из Lucide (4000+ иконок, MIT).
Скрипт использует 4 источника в порядке приоритета:
В любом случае файл будет создан.
При загрузке этого скилла можно вызывать скрипт напрямую через bash:
scripts/test-graphics.py photo 800 600 ./public/images/hero.jpg
Агент (Sisyphus) координирует: определяет что нужно (фото/иконка/placeholder), выбирает размеры и цвета, запускает скрипт, сообщает результат.
Полный разбор — в references/canonical-patterns.md. Ключевые каноны:
Fnv1a+Mulberry32 PRNG, версионированный HTTP API (10.x), rate limits (50/10 rps), CLI пачка с --optimize-check, EOL 5.x–8.x 30.04.2028.scope: 'worker', auto: true), toHaveScreenshot с maxDiffPixelRatio, testInfo.attach/outputPath() для артефактов.optimize() + multipass + preset-default (~30 плагинов), CLI datauri=base64, оптимизация сгенерированных SVG.createLucideIcon фабрика + tree-shaking, дефолтные атрибуты stroke="currentColor", fill="none", strokeWidth=2, dynamicIconImports.cy.fixture (base64/Buffer), cy.intercept({fixture}) для перехвата изображений, кодировки и лимит ~100 MB.staticDirs паттерн: placeholder-картинки как локальные статические ассеты вместо внешних URL.