| name | orchestrator-skill |
| description | Оркестратор субагентов для анализа данных и кода. Паттерн "менеджер + работники": агент-аналитик данных + агент-аналитик кода работают параллельно, менеджер собирает результаты и формирует ТЗ. Используй когда нужно проанализировать файл данных (CSV, XML, JSON, Excel) и одновременно найти точки входа в коде, а затем получить готовое техническое задание на доработку. |
Оркестратор: анализ данных + анализ кода -> ТЗ
Скилл для параллельного анализа файлов данных и исходного кода с автоматическим формированием технического задания.
Когда использовать
- Нужно загрузить/обработать файл данных (CSV, XML, JSON, Excel, DBF) в программе
- Нужно понять структуру входных данных И найти где в коде их обрабатывать
- Нужно сформировать ТЗ на доработку обработки/загрузки/выгрузки
- Задача затрагивает и данные и код одновременно
Когда НЕ использовать
- Задача только про код без внешних данных — используй обычный анализ
- Задача только про данные без изменений в коде — просто проанализируй файл
- Простая правка в одном месте — субагенты избыточны
Архитектура
┌──────────────────────────────────────────────────┐
│ МЕНЕДЖЕР (основной агент) │
│ │
│ 1. Принимает задачу от пользователя │
│ 2. Формулирует задания для субагентов │
│ 3. Запускает субагентов ПАРАЛЛЕЛЬНО │
│ 4. Собирает результаты │
│ 5. Формирует итоговое ТЗ │
│ │
│ ┌────────────────┐ ┌────────────────┐ │
│ │ СУБАГЕНТ 1 │ │ СУБАГЕНТ 2 │ │
│ │ Аналитик │ │ Аналитик │ │
│ │ данных │ │ кода │ │
│ │ │ │ │ │
│ │ - структура │ │ - точки входа │ │
│ │ - типы полей │ │ - цепочки │ │
│ │ - аномалии │ │ вызовов │ │
│ │ - объём │ │ - модели │ │
│ │ - кодировка │ │ данных │ │
│ └───────┬────────┘ └───────┬────────┘ │
│ │ │ │
│ └─────────┬───────────┘ │
│ ▼ │
│ СИНТЕЗ И ФОРМИРОВАНИЕ ТЗ │
└──────────────────────────────────────────────────┘
Протокол работы
Шаг 0: Получить задачу
Пользователь описывает что нужно сделать. Менеджер извлекает из описания:
| Параметр | Что выяснить | Пример |
|---|
| Файл данных | Путь к файлу с данными | /data/prices.csv |
| Код/модуль | Где искать точки входа | Обработка ЗагрузкаЦен, модуль РаботаСФайлами |
| Цель | Что нужно получить в итоге | Загрузить цены в справочник Номенклатура |
| Ограничения | Особые требования | Не трогать существующие цены, только добавлять новые |
Если чего-то не хватает — спросить пользователя до запуска субагентов.
Шаг 1: Запустить субагентов параллельно
Запустить оба субагента одновременно через инструмент Agent.
Субагент 1: Аналитик данных
Задание для субагента:
Проанализируй файл данных: {путь_к_файлу}
Контекст задачи: {цель пользователя}
Выполни анализ и верни результат строго в следующем формате:
## Структура файла
- Формат: (CSV/XML/JSON/Excel/DBF)
- Кодировка: (UTF-8/Windows-1251/CP866/...)
- Разделитель: (для CSV — запятая, точка с запятой, табуляция)
- Количество записей: N
- Размер файла: N КБ/МБ
## Колонки/поля
| # | Имя поля | Тип данных | Пример значения | Пустых значений | Примечание |
|---|----------|-----------|-----------------|-----------------|------------|
| 1 | ... | ... | ... | N из M | ... |
## Особенности данных
- Уникальные ключи: какие поля могут служить идентификатором
- Связи: какие поля ссылаются на внешние справочники
- Аномалии: дубликаты, пустые обязательные поля, некорректные форматы
- Диапазоны: мин/макс значений числовых и дат
## Готовность к загрузке
- Что нужно преобразовать (формат дат, разделители, кодировка)
- Какие поля нужно маппить на справочники
- Потенциальные проблемы при загрузке
Субагент 2: Аналитик кода
Задание для субагента:
Проанализируй код для задачи: {цель пользователя}
Где искать: {модуль/обработка/файл}
Выполни анализ и верни результат строго в следующем формате:
## Точки входа
Для каждой точки входа:
- Файл и строка: путь:номер_строки
- Сигнатура: первая строка функции/процедуры
- Назначение: одна фраза что делает
## Цепочки вызовов
От каждой точки входа — вглубь:
- функция1 → функция2 → функция3
- с указанием файлов и строк
## Модели данных
- Какие структуры/объекты/таблицы задействованы
- Поля и типы
- Связи между объектами
## Текущая логика обработки
- Как сейчас работает загрузка/обработка (если есть)
- Какие проверки выполняются
- Как обрабатываются ошибки
## Точки расширения
- Где именно нужно вносить изменения
- Какие функции затрагиваются
- Какие зависимости нужно учесть
Шаг 2: Собрать результаты
Дождаться завершения обоих субагентов. Прочитать оба отчёта.
Шаг 3: Синтезировать ТЗ
На основе обоих отчётов сформировать техническое задание:
# Техническое задание: {название задачи}
## Исходные данные
### Файл данных
{Краткая выжимка из отчёта Субагента 1}
- формат, объём, ключевые поля
- особенности и аномалии
### Текущий код
{Краткая выжимка из отчёта Субагента 2}
- точки входа
- текущая логика
## Маппинг: данные → код
| Поле в файле | Куда загружается | Преобразование | Примечание |
|-------------|------------------|----------------|------------|
| ... | ... | ... | ... |
## Что нужно сделать
### Изменения в коде
Для каждого изменения:
1. **Где**: файл:строка, функция
2. **Что**: описание изменения
3. **Почему**: зачем это нужно
4. **Зависимости**: от чего зависит это изменение
### Новый код (если нужен)
- Какие новые функции/модули создать
- Что они должны делать
### Порядок реализации
1. Фаза 1: ... (от основания к верхушке)
2. Фаза 2: ...
3. ...
## Проверка
- Как убедиться что всё работает
- Тестовые сценарии
- Граничные случаи
## Риски и ограничения
- Что может пойти не так
- На что обратить внимание
Шаг 4: Показать пользователю
Показать готовое ТЗ и спросить:
- Всё ли учтено?
- Нужно ли что-то добавить/убрать?
- Можно ли приступать к реализации?
Не начинать реализацию без одобрения пользователя.
Расширение: дополнительные субагенты
При необходимости менеджер может запустить дополнительных субагентов:
| Субагент | Когда нужен | Что делает |
|---|
| Аналитик БД | Данные грузятся в базу | Анализирует схему таблиц, индексы, ограничения |
| Аналитик зависимостей | Много связанных модулей | Строит граф зависимостей, находит побочные эффекты |
| Валидатор | Критичные данные | Проверяет данные на соответствие бизнес-правилам |
| Тестировщик | После реализации | Генерирует тестовые данные и проверяет результат |
Дополнительные субагенты запускаются параллельно с основными если это возможно.
Правила менеджера
- Не делать работу субагентов — менеджер только координирует и синтезирует
- Параллельность — всё что можно запустить одновременно, запускать одновременно
- Только факты — в ТЗ только то что нашли субагенты, никаких домыслов
- Спрашивать — если данных недостаточно, спросить пользователя, а не додумывать
- Минимальное ТЗ — описывать только необходимые изменения, без "заодно улучшим"
- Полные отчёты субагентов — сохранять оригинальные отчёты, не терять детали при синтезе
Пример использования
Пользователь: "Вот CSV с ценами поставщиков /data/prices.csv. Нужно загрузить их в 1С в справочник Номенклатура, обновив закупочные цены."
Менеджер:
- Извлекает: файл =
/data/prices.csv, код = обработка загрузки цен в 1С, цель = обновить закупочные цены в Номенклатуре
- Запускает параллельно:
- Субагент 1 → анализирует CSV (колонки, типы, кодировка, аномалии)
- Субагент 2 → через MCP ищет обработку загрузки цен, точки входа, текущую логику маппинга
- Получает оба отчёта
- Формирует ТЗ: маппинг полей CSV → реквизиты Номенклатуры, какие функции менять, порядок реализации
- Показывает пользователю для одобрения