---
name: xbsl-form-cards
description: >
  Создаёт форму списка в виде карточек (ПроизвольныйСписок с матричной компоновкой) для объекта
  конфигурации 1С:Элемент. Создаёт два файла: ФормаСписка.yaml и СтрокаСписка<Объект>.yaml.
  Вызывай когда пользователь хочет отображать список в виде карточек, плиток, kanban-вида,
  новостной ленты или grid-сетки (не таблицей).
  Работает для Справочников и Документов.
compatibility:
  runtime:
    - python3
---

## Отличие от стандартной ФормаСписка

Стандартная форма списка (`xbsl-form-add`) создаёт `Таблица<ДинамическийСписок>` — строчный список.
Этот скилл создаёт `ПроизвольныйСписок<ДинамическийСписок>` с `КонтейнерСтрок: Матричная` —
сетку карточек. Требует ДВУХ файлов: форма + компонент строки (`СтрокаСписка<Объект>.yaml`).

Справочная документация по YAML-шаблонам — в `references/patterns.md`.

---

## Алгоритм

### Шаг 1 — Dry-run

```bash
python3 .claude/skills/xbsl-form-cards/scripts/generate.py --object <ИмяОбъекта> --root <корень>
```

Скрипт выводит:
- роли полей (заголовок, фото, содержимое)
- тип карточки (`СтандартнаяКарточка` или `ПроизвольнаяКарточка`)
- файлы которые будут созданы/обновлены

Показать вывод пользователю.

Если вывод содержит `⚠️  Форма списка уже существует` — спросить пользователя:
- **Заменить** → продолжить с `--apply`
- **Отмена** → остановиться

Если скрипт завершился с ошибкой — сообщи пользователю и остановись.

### Шаг 2 — Применить (только после подтверждения)

```bash
python3 .claude/skills/xbsl-form-cards/scripts/generate.py --object <ИмяОбъекта> --root <корень> --apply
```

Опциональный флаг `--min-width 250` (для портретов людей) или `--min-width 400` (по умолчанию).
Скрипт автоматически выбирает 250 если есть поле `ДвоичныйОбъект.Ссылка?`.

### Шаг 3 — Итог

Перечислить созданные/изменённые файлы из вывода скрипта:
- `<Объект>ФормаСписка.yaml` — создана форма карточек
- `СтрокаСписка<Объект>.yaml` — создан компонент строки
- `<ОбъектYAML>` — обновлён `Интерфейс.Список.Форма`
