---
name: skill-creator-design
description: >
Генератор настраиваемых дизайн-проектов Skill (включая SKILL.md + references/), который предоставляет пользователям постоянное руководство в процессе проектирования, от определения требований до поставки. Срабатывает, когда пользователь выражает желание выполнить дизайнерскую работу ("Я хочу спроектировать X", "Разработать решение для X", "Помогите мне спроектировать X", "Создать дизайн", "Переработать X", "Переделать X", "Подумать, как сделать X", "design X", "redesign X"), или запрашивает создание дизайн-плана, дизайн-skill ("Создать дизайн-проект", "generate a design skill", "Помогите мне спланировать этот дизайн"). Охватывает проектирование продуктов, UX/UI-дизайн, информационную архитектуру, визуальные решения и т.д. Установка этого skill означает, что пользователь предпочитает систематическое управление дизайном, а не спонтанный мозговой штурм.
tools: [write, bash]
---
# Skill Creator: Design
Генерирует настраиваемый дизайн-проект Skill на основе запросов пользователя. Результатом является автономный файл SKILL.md (+ references/), который при установке обеспечивает постоянное руководство пользователя на всех этапах проектирования, от определения требований до поставки.
Этот Creator выполняет однократный процесс сбора информации → генерации → поставки, а не является постоянным помощником.
---
## Phase 1: Сбор информации (Intake)
Цель: собрать ключевую информацию, необходимую для генерации, посредством 2-3 раундов естественного диалога. Как опытный дизайнер, понимающий потребности, а не заполняющий форму.
### Первый раунд: Тема + Цель
После активации, сначала кратко объясните, что вы делаете, а затем задайте два самых важных вопроса:
> "Я могу помочь вам создать дизайн-проект Skill, который будет направлять вас в процессе проектирования, от определения требований до поставки.
> Сначала расскажите: что вы хотите спроектировать? Какой результат вы хотите получить?"
Эта информация обычно является самой четкой в голове пользователя, когда он активирует Creator, и имеет самый низкий порог входа.
### Второй раунд: Объем/Контекст + Ограничения + Дополнительные вопросы
Сначала кратко отреагируйте на ответ пользователя (покажите, что вы понимаете), а затем запросите дополнительную информацию:
> "[Краткий ответ, демонстрирующий понимание цели дизайна]. Теперь расскажите еще о двух вещах: какой объем работы? Это создание нового продукта с нуля или итерация существующего? Какие ограничения следует учитывать? Например, технические ограничения, бюджет, время, определенная платформа?"
Дополнительные вопросы (активируются только при недостатке информации):
| Ситуация | Способ запроса |
|---|---|
| Неизмеримая цель (например, "сделать хороший дизайн") | "Как вы определите, что дизайн успешен? Есть ли конкретные показатели или критерии?" |
| Неопределенный объем | "Это совершенно новый продукт или функциональность/итерация существующего?" |
| Отсутствие ограничений | "Есть ли какие-либо ограничения, которые следует учитывать? Например, технические, бюджетные, временные?" |
| Объем или ограничения уже упомянуты | Задайте только недостающую информацию, не повторяйте вопросы |
| Вся необходимая информация предоставлена | Переходите к сводке и подтверждению |
**Опциональные переменные** — не задавайте напрямую, извлекайте из диалога:
- Целевая аудитория/портрет пользователя (например, "это в основном для команды маркетинга") → перекрывает дефолтное предположение, основанное на теме
- Предпочтения по результатам (например, "мне нужна спецификация") → перекрывает дефолтную рекомендацию по области
- Если не упомянуто, используйте значения по умолчанию
### Третий раунд: Сводка и подтверждение
Структурированное представление собранной информации + рекомендация шаблона:
```
Я понял следующее:
- Тема дизайна: [Тема]
- Цель дизайна: [Цель, сформулированная измеримо]
- Объем дизайна: [0→1 Новый продукт / Функциональная доработка / Итерация]
- Ограничения: [Описание ограничений или "Ограничений нет"]
- Рекомендуемый шаблон: [Легкий / Полный]
└ Легкий шаблон: быстрое продвижение, автоматическое углубление при принятии важных решений; Полный шаблон: глубокая система, автоматическое упрощение простых этапов.
Нужно ли что-то исправить? После подтверждения я начну генерировать предварительный вид skill.
```
Правила рекомендации шаблона:
- Простой дизайн / небольшая итерация → Рекомендуется легкий шаблон (небольшой объем, низкая окупаемость глубокого исследования и систематической проверки)
- Новый продукт 0→1 / крупная функциональность → Рекомендуется полный шаблон (большой объем, требуется тщательное исследование, систематическая проверка и полное документирование решений)
- Неопределенность → Рекомендуется полный шаблон (лучше перестраховаться, пользователь может пропустить шаги)
- Пользователь может переопределить рекомендацию, уважайте выбор
**Минимальные требования к полноте информации** — проверка перед переходом к сводке:
- ✅ Четкая тема (можно использовать для именования файлов и определения области)
- ✅ Определенная цель (можно ответить на вопрос "чего вы хотите достичь в результате дизайна")
- ✅ Определенный объем (новый продукт / функциональность / итерация, на уровне масштаба)
- ✅ Известны ограничения или подтверждено их отсутствие
Если информация неполная, используйте разумные предположения и **явно укажите** в сводке, какие предположения сделаны, чтобы пользователь мог их подтвердить. Например:
> "Вы не упомянули ограничения, поэтому я пока предполагаю отсутствие жестких технических или бюджетных ограничений. Если это не так, сообщите мне, и я скорректирую акцент в руководстве по дизайну."
---
## Phase 2: Генерация и предварительный просмотр (Generate & Preview)
После подтверждения сводки пользователем начинается процесс генерации.
### Подготовка переменных
Извлеките необходимые для генерации переменные из собранной информации:
| Переменная | Источник | Обработка |
|---|---|---|
| `topic` | Предоставленная пользователем тема дизайна | Использовать как есть |
| `topic_slug` | Производная от topic | Преобразование в формат, подходящий для именования файлов и поля `name` (строчные буквы, подчеркивания, без пробелов, например, "user_onboarding") |
| `goal` | Предоставленная пользователем цель дизайна | Убедитесь, что цель сформулирована измеримо |
| `scope` | Предоставленный пользователем объем/контекст дизайна | Использовать как есть |
| `constraints` | Предоставленные пользователем ограничения | Использовать как есть или "Ограничений нет" |
| `mode` | Выбранный пользователем режим | "Легкий" или "Полный" |
| `target_audience_override` | Опционально, целевая аудитория, указанная пользователем | Если не указано, оставить пустым (удалить заполнитель) |
| `deliverable_override` | Опционально, предпочтения по результатам, указанные пользователем | Если не указано, оставить пустым (удалить заполнитель) |
| `lang` | Язык, используемый пользователем в диалоге | Использовать тот же язык для генерации |
| `project_dir` | Производная от topic_slug | `design_` + topic_slug + `/` (например, `design_user_onboarding/`), каталог для хранения файлов проекта |
| `generated_by` | Идентификатор версии Creator | Фиксированное значение `skill_creator_design v1.2.0` |
### Логика генерации
1. На основе `mode` выбирается соответствующий шаблон:
- Легкий режим → Чтение `references/templates/skill/lite.md`
- Полный режим → Чтение `references/templates/skill/full.md`
2. Замена заполнителей в шаблоне на собранные переменные (`{{topic}}`, `{{goal}}` и т.д.)
3. Обработка опциональных переменных для условной вставки:
- `target_audience_override`: Если пользователь указал целевую аудиторию, вставить строку в позицию `{{target_audience_override}}` в шаблоне, например, "- Целевая аудитория: команда маркетинга (без технических знаний)".
- `deliverable_override`: Если пользователь указал предпочтения по результатам, вставить пояснение в позицию `{{deliverable_override}}` в шаблоне, например, "n- Обратите внимание: по запросу пользователя, результатом проекта является техническое задание, формат вывода соответствует ему".
- Если не указано, удалить заполнитель (не оставлять пустую строку).
4. Подготовка файлов `references/`:
- Для обоих режимов: чтение `references/templates/guides/review_checklist.md` → создание `review_checklist.md`
- Для обоих режимов: выбор соответствующего шаблона руководства в зависимости от режима:
- Легкий режим → Чтение `references/templates/guides/summary_guide_lite.md` → создание `summary_guide.md`
- Полный режим → Чтение `references/templates/guides/summary_guide_full.md` → создание `summary_guide.md`
5. Если язык диалога не русский, перевести весь сгенерированный текст на язык, используемый пользователем, сохраняя структуру и форматирование.
### Предварительный просмотр
Отобразить пользователю полный сгенерированный файл SKILL.md, а затем перечислить файлы в каталоге `references/`:
> "Кроме того, будут созданы следующие сопутствующие файлы:
> - references/review_checklist.md — контрольный список для проверки (три перспективы + вопросы)
> - references/summary_guide.md — руководство по созданию сводки ([легкая/полная] версия)
>
> Вы можете предложить изменения, или подтвердить, чтобы я начал процесс создания."
### Обработка изменений
| Тип изменения | Критерий | Обработка |
|---|---|---|
| Структурные изменения | Влияют на структуру процесса или логику управления файлами (например, "не нужен этап исследования", "добавить этап пользовательского тестирования") | Изменить шаблон, перегенерировать затронутые части, снова отобразить полный результат |
| Незначительные правки | Не влияют на структуру (например, "изменить описание цели", "добавить ограничение") | Внести локальные изменения, отобразить только измененные части ("Обновлено XX, остальное без изменений. Подтверждаете?") |
Итеративное руководство:
- В первый раз: "Вы можете предложить изменения, или подтвердить, чтобы я начал процесс создания."
- В последующие разы: "Изменения внесены. Что-нибудь еще нужно изменить? Если нет, я начну процесс создания."
- Без ограничений по количеству итераций, пользователь может вносить изменения сколько угодно.
### Таблица соответствия заполнителей
Перед генерацией необходимо проверить каждый заполнитель, чтобы убедиться, что он обработан:
| Заполнитель | Источник | Обработка |
|---|---|---|
| `{{topic}}` | Предоставленная пользователем тема дизайна | Заменить |
| `{{topic_slug}}` | Производная от topic | Заменить |
| `{{goal}}` | Предоставленная пользователем цель дизайна (сформулированная измеримо) | Заменить |
| `{{scope}}` | Предоставленный пользователем объем/контекст дизайна | Заменить |
| `{{constraints}}` | Предоставленные пользователем ограничения | Заменить |
| `{{target_audience_override}}` | Опционально, целевая аудитория, указанная пользователем | Если указана, вставить текст пояснения; если не указана, удалить заполнитель (не оставлять пустую строку) |
| `{{deliverable_override}}` | Опционально, предпочтения по результатам, указанные пользователем | Если указаны, вставить текст пояснения; если не указаны, удалить заполнитель (не оставлять пустую строку) |
| `{{project_dir}}` | Производная от topic_slug | `design_` + topic_slug + `/` (например, `design_saas_dashboard/`), заменить |
| `{{generated_by}}` | Идентификатор версии Creator | Фиксированное значение `skill_creator_design v1.2.0`, заменить |
> **⚠️ После подтверждения генерации пользователем, необходимо перейти к Phase 3 для выполнения процесса поставки. Не создавайте файлы напрямую — Phase 3 включает в себя обнаружение пути установки, запрос способа поставки и другие необходимые шаги.**
---
## Phase 3: Поставка (Deliver)
После подтверждения предварительного просмотра пользователем, запросите способ поставки:
> "Как вы хотите, чтобы я это доставил?
> 1. **Непосредственная установка в текущую рабочую область** — skill и файлы проекта будут созданы в текущей рабочей области, сразу к использованию.
> 2. **Упаковка в ZIP** — будет создан ZIP-архив, который вы можете распаковать в любое место или поделиться им с другими."
### Обнаружение пути установки
Независимо от выбранного способа поставки, необходимо сначала определить префикс каталога установки skill. Обнаружение происходит в следующем порядке приоритета:
1. **Проверка наличия существующего skill в текущей рабочей области:** Сканирование корневого каталога проекта на наличие каталогов `.claude/skills/`, `.agents/skills/`, `.agent/skills/`, `_agents/skills/`, `_agent/skills/`, `.workbuddy/skills/`, `skills/`. Если найден любой из них, используется этот путь.
2. **Проверка наличия глобального skill в корневой директории пользователя (~/):** Сканирование на наличие каталогов `~/.claude/skills/`, `~/.openclaw/skills/`, `~/.agents/skills/`, `~/.gemini/antigravity/skills/`. Если найден, это указывает на использование соответствующей платформы, и путь проекта использует соответствующий префикс.
3. **Значение по умолчанию:** Если ничего не найдено, используется `.agents/skills/` в качестве префикса по умолчанию (открытый стандарт Agent Skills, обеспечивает наибольшую совместимость).
Обнаруженный префикс сохраняется в переменной `{skill_prefix}`. Окончательный путь установки skill: `{skill_prefix}/design_{{topic_slug}}/SKILL.md`
### Вариант 1: Непосредственная установка в текущую рабочую область
**Выполните следующие шаги (обязательно в указанном порядке):**
1. Создайте каталог skill в текущей рабочей области, используя обнаруженный `{skill_prefix}`: `{skill_prefix}/design_{{topic_slug}}/`
2. Запишите сгенерированный файл SKILL.md в этот каталог.
3. Создайте подкаталог `references/` в этом каталоге и запишите в него файлы `review_checklist.md` и `summary_guide.md`.
4. Создайте каталог файлов проекта `design_{{topic_slug}}/` в корневой директории рабочей области (для хранения всех файлов, созданных в процессе проектирования: планы, спецификации, решения и т.д.).
5. Обратите внимание: для создания файлов используйте инструменты записи файлов напрямую, избегайте использования Shell heredoc (`cat <<EOF`) или перенаправления.
6. Сообщите пользователю:
> "Дизайн-проект установлен в текущей рабочей области:
> - Skill находится в `{skill_prefix}/design_{{topic_slug}}/`
> - Файлы проекта будут храниться в каталоге `design_{{topic_slug}}/`
>
> Просто начните диалог, сказав "Начать дизайн" или "Продолжить дизайн"."
### Вариант 2: Упаковка в ZIP
**Выполните следующие шаги (обязательно в указанном порядке):**
1. Создайте временный каталог `design_{{topic_slug}}_package/` в `/tmp/`.
2. Создайте структуру каталогов skill во временном каталоге, используя обнаруженный `{skill_prefix}`: `{skill_prefix}/design_{{topic_slug}}/SKILL.md` + `{skill_prefix}/design_{{topic_slug}}/references/`
3. Создайте каталог файлов проекта во временном каталоге: `design_{{topic_slug}}/` (пустой каталог, будет инициализирован при первом использовании).
4. Запишите все файлы (как в шаге 2 варианта 1). Также используйте инструменты записи файлов, избегайте Shell heredoc.
5. Выполните архивацию: `cd /tmp && zip -r design_{{topic_slug}}.zip design_{{topic_slug}}_package/`
6. Переместите ZIP-файл в рабочую директорию пользователя.
7. Удалите временный каталог.
8. Сообщите пользователю:
> "Создан ZIP-архив `design_{{topic_slug}}.zip`.
> Распакуйте его в корневую директорию вашей рабочей области. Skill автоматически станет активным, файлы проекта будут храниться в каталоге `