Первым шагом Excel-файл переводится в структурированное представление. Для каждого листа сохраняются колонки, типы данных, формулы, число строк, пропуски и контрольные суммы. Пользовательская фраза из Telegram не исполняется напрямую: она сопоставляется со схемой книги и доступными операциями.
Так бот отличает безопасную задачу вроде «собери сводку по регионам» от запроса, где не хватает колонок, есть неоднозначная метрика или нужна ручная проверка исходных данных.

Дальше запрос превращается в план операций. План содержит не свободный текст, а шаги: какие листы читать, какие колонки использовать, как группировать данные, какие формулы или сводные таблицы создать и какие проверки выполнить. На этом уровне можно запретить опасные действия: сетевые вызовы, доступ к чужим файлам, запись вне рабочей директории или операции без лимитов.
LLM здесь работает как планировщик и генератор кода, но финальное исполнение контролируется правилами: разрешённые библиотеки, лимит памяти, таймаут, allowlist операций и обязательные проверки перед выдачей результата.

После исполнения система сравнивает исходную и итоговую книгу. Проверяются суммы, количество строк, дубликаты, пустые значения, типы данных, формулы и аномальные выбросы. Если контрольные значения не сходятся или найден риск, бот возвращает предупреждение вместо тихой отправки неверного отчёта.
Это особенно важно для регулярных финансовых и операционных отчётов: ошибка в одной формуле может пройти незаметно, если нет формального слоя validation перед отправкой файла в Telegram, почту или портал.

Финальный артефакт — не только XLSX-файл. Вместе с отчётом сохраняется audit log: входной файл, хэш результата, список операций, затронутые строки, предупреждения, время исполнения и версия шаблона. Поэтому регулярный отчёт можно воспроизвести и объяснить внутреннему контролю.
Такой подход делает Telegram удобным интерфейсом, но не превращает процесс в непрозрачный чат. Пользователь получает готовый файл, а команда сохраняет управляемость: кто запустил обработку, что изменилось и почему результат можно принять.

На выходе получается не «бот, который правит таблицу», а воспроизводимый back office-процесс: файл, план операций, sandbox-исполнение, quality checks, audit log и понятный канал доставки результата.

