Agent Skills

Test Graphics — Генератор тестовых изображений

Загружай этот скилл когда нужно быстро получить тестовые картинки, иконки, фото-заглушки.

Инструмент

scripts/test-graphics.py — Python-скрипт в папке скилла (относительный путь от корня скилла). Запуск: python3 scripts/test-graphics.py .... Зависимости: Python 3, Pillow, requests (есть на системе).

Команды

Фото (настоящие, random)

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

Placeholder (цветной блок с текстом)

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. Если текст содержит пробелы — в кавычки.

Иконка (SVG, встроенные 35 штук)

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.

Аватар (ui-avatars.com)

Генерирует иконку-аватар по имени с настраиваемым фоном/цветом.

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

Batch — пачка фото

scripts/test-graphics.py batch-photos <count> [output_dir]

Пример: scripts/test-graphics.py batch-photos 10 ./assets/photos/

Batch — пачка иконок

scripts/test-graphics.py batch-icons <count> [output_dir]

Пример: scripts/test-graphics.py batch-icons 20 ./assets/icons/

Иконки будут случайных цветов и размеров (32/48/64/96px).

Скачать иконки из Lucide

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’ить — просто повтори позже для упавших.

Скачать одну иконку из Lucide

scripts/test-graphics.py lucide <name> [output_dir]

Пример: scripts/test-graphics.py lucide arrow-right ./icons/

AI-фото по промту (themed / batch-themed)

Генерация тематического изображения по текстовому промту через picsum.dev (AI, без ключа).

scripts/test-graphics.py themed <category> <prompt> [output] [width] [height]
scripts/test-graphics.py batch-themed <category> <prompt> <count> [output_dir] [width] [height]

Категории: nature, animals, food, architecture, technology, business, travel, abstract, people, fashion, sports, space, art.

Генератор всегда отдаёт оригинал 1024×1024. Если указаны width и height — скилл запрашивает серверный ресайз picsum.dev/i/{id}/{w}/{h} (нативный размер, без локальной обработки); если серверный ресайз недоступен — локальный cover-кроп + ресайз под аспект (без искажений). Формат файла определяется расширением output (.jpg/.webp/.png). Без размеров — оригинал 1024×1024. Готовые изображения галереи доступны напрямую: picsum.dev/i/{id}/{w}/{h} (например i/500/800/600).

Лимит: ~10 запросов/мин, генерация 5–20 сек. При сбое — fallback (placehold.co, затем градиент).

Примеры:

# Офисная сцена 800×600 для лендинга (категория business)
scripts/test-graphics.py themed business "modern accounting office interior, desks with computers" ./assets/img/office-1.jpg 800 600

# Оригинал 1024×1024 без размеров
scripts/test-graphics.py themed food "pizza with basil on wooden table"

# Пачка из 6 вариантов 1920×1080
scripts/test-graphics.py batch-themed technology "server room with glowing racks" 6 ./assets/img/ 1920 1080

Когда применять

Do not use

Если не хватает иконок

Список встроенных — scripts/test-graphics.py list-icons (35 штук). Если нужно что-то конкретное — download-icons из Lucide (4000+ иконок, MIT).

Если фото не загружаются

Скрипт использует 4 источника в порядке приоритета:

  1. picsum.dev — настоящие фото, без ключа
  2. loremflickr.com — резерв
  3. placehold.co — цветной блок с размером
  4. Pillow — градиент (полный fallback)

В любом случае файл будет создан.

Варианты использования в других скиллах

При загрузке этого скилла можно вызывать скрипт напрямую через bash:

scripts/test-graphics.py photo 800 600 ./public/images/hero.jpg

Агент (Sisyphus) координирует: определяет что нужно (фото/иконка/placeholder), выбирает размеры и цвета, запускает скрипт, сообщает результат.

Canonical analogues

Полный разбор — в references/canonical-patterns.md. Ключевые каноны:

Boundaries

Evidence and completion gate

Run the documented command against the user’s actual input. Report the command, exit status, files changed or produced, and relevant stdout/stderr. Separate blocked or pre-existing failures from failures introduced by the current work. Do not call the result complete when the script was only described or when an artifact was not reopened and checked.