---
name: xbsl-subsystem-add
description: >
  Добавление новой подсистемы в существующий проект 1С:Элемент (XBSL). Используй этот
  скилл когда пользователь хочет создать подсистему (раздел проекта): создаёт папку и
  Подсистема.yaml. Вызывай при запросах «добавь подсистему», «создай подсистему»,
  «новый раздел», «новая подсистема». НЕ для: создания нового проекта с нуля (xbsl-init),
  создания объектов метаданных (xbsl-meta-add), добавления форм (xbsl-form-add).
---

# Добавление подсистемы в проект 1С:Элемент

## Шаг 0: Собери параметры

Из запроса пользователя определи:

| Параметр | Обязательный | Дефолт |
|---|---|---|
| `ИмяПодсистемы` | Да | — |
| `ВключатьВАвтоИнтерфейс` | Нет | `Истина` |
| `Представление` | Нет | — |
| `Использование` | Нет | — (список имён других подсистем) |

Если `ИмяПодсистемы` не указано — спроси пользователя.

## Шаг 1: Найди проект и проверь конфликт

```bash
find . -name "Проект.yaml" -not -path "*/.claude/*" | head -5
```

Используй родительскую папку найденных `Проект.yaml` как `{root}`, запусти разведку:

```bash
python3 .claude/skills/xbsl-explore/scripts/explore.py --root {root}
```

Из результата возьми путь к проекту (`projects[0].path`). Если проектов нет — предложи создать проект через `xbsl-init`.

Проверь конфликт: если файл `{project_path}/{ИмяПодсистемы}/Подсистема.yaml` уже существует — сообщи пользователю и остановись.

Если проектов несколько — уточни у пользователя, в какой добавить подсистему.

## Шаг 2: Создай файл

Создай `{project_path}/{ИмяПодсистемы}/Подсистема.yaml`.

Собирай файл из блоков по условию:

**Блок `Использование`** — добавлять только если указан параметр `Использование`:
```yaml
Использование:
    - {Подсистема1}
    - {Подсистема2}
```

**Блок `Интерфейс`** — добавлять если `ВключатьВАвтоИнтерфейс: Истина`, либо задано `Представление` или `Изображение`:
```yaml
Интерфейс:
    ВключатьВАвтоИнтерфейс: Истина
```

Добавить `Представление` внутрь блока только если задано пользователем:
```yaml
    Представление: {Представление}
```

Если ни один блок не нужен (нет зависимостей, `ВключатьВАвтоИнтерфейс: Ложь`, нет представления) — создай пустой файл.

### Примеры готовых файлов

**Навигационный раздел (минимальный):**
```yaml
Интерфейс:
    ВключатьВАвтоИнтерфейс: Истина
```

**Вспомогательная (зависимости, не в навигации):**
```yaml
Использование:
    - Основное
    - Общие
```

**С представлением:**
```yaml
Использование:
    - Основное
Интерфейс:
    ВключатьВАвтоИнтерфейс: Истина
    Представление: Мои задачи
```

## Шаг 3: Выведи итог

```
Подсистема создана:
  {project_path}/{ИмяПодсистемы}/Подсистема.yaml

Следующий шаг: добавь объекты через xbsl-meta-add
```
