# Бриф инициативы: ИИ-агент согласования отпусков **Суть:** Руководитель отдела (Ержан) вручную проверяет остатки отпусков в KTWorks, согласовывает даты в Telegram и обновляет график в Excel на сетевом диске; процесс занимает 4–12 часов в месяц и несёт риск конфликтов графиков из-за человеческого фактора, который предлагается устранить агентом с авто-валидацией правил и подтверждением в чате. ## 1. Контакты владельца процесса - ФИО: - Ержан (фамилия не подтверждена – уточнит владелец). - Контакт: - Telegram ID: не подтверждено – уточнит владелец (разговор ведётся в Telegram). - Телефон: не подтверждено – уточнит владелец. - Департамент / дивизион: - не подтверждено – уточнит владелец (руководитель отдела). ## 2. Процесс и владелец - Название процесса и роль владельца. - Согласование и учёт ежегодных отпусков сотрудников отдела. - Владелец – руководитель отдела (Ержан). - Что входит в объём задачи и что явно вне объёма (out of scope). - В объём входит проверка остатков дней отпуска в KTWorks. - В объём входит проверка правил покрытия (макс. 2 человека одновременно, наличие дежурного). - В объём входит ответ сотруднику в Telegram. - В объём входит внесение данных в Excel-файл на сетевом диске. - В объём входит еженедельная отправка списка HR. - Вне объёма – издание приказов (это делает HR), расчёт зарплаты отпусков. ## 3. Процесс AS-IS - Триггер: - Запрос сотрудника в Telegram на согласование дат отпуска. - Участники: - Сотрудник (инициатор). - Руководитель отдела (Ержан) – проверяет, согласовывает, вносит данные. - HR – получает итоговый список, издаёт приказы. - Системы: - Telegram – канал коммуникации с сотрудниками. - KTWorks (кадровый профиль) – источник данных об остатках дней отпуска. - Сетевая папка (`\\fs-dept\otdel\Отпуска\`) – хранение графика (`График отпусков 2026.xlsx`). - Что происходит сейчас: - Сотрудник пишет запрос в Telegram. - Руководитель вручную заходит в KTWorks, проверяет остаток дней. - Руководитель мысленно проверяет график на наличие конфликтов (дежурный, лимит 2 человек). - Руководитель отвечает в чате. - Руководитель вечером вручную вносит строку в Excel на сетевом диске. - Раз в неделю руководитель формирует список для HR. ## 4. Боль и потери - Основная боль – риск забыть внести данные в Excel после согласования (реализовался в августе). - Последствия ошибок – конфликт графиков (одновременно ушли >2 человек), отсутствие дежурного старшего. - Бизнес-ущерб – срыв клиентских запросов (ожидание 2 дня), задержка приказов HR из-за позднего предоставления данных. - Потери времени – рутинная проверка остатков и перенос данных (4–12 часов в месяц). ## 5. Объёмы и baseline - Частота запросов: около 5 в неделю (в летний период до 15). - Время на одну обработку: 10–15 минут (проверка KTWorks + ответ + внесение в Excel). - Суммарная нагрузка: ~4–5 часов в месяц (летом до 12 часов). - Тройка «сейчас / нужно / цель» не применяется (процесс обязательный для всех запросов). ## 6. Данные и источники - KTWorks (кадровый профиль). - Точка входа: корпоративный логин (веб-интерфейс или приложение). - Данные: остаток дней отпуска, ФИО сотрудника. - Владелец данных: HR-департамент. - Excel-файл `График отпусков 2026.xlsx`. - Точка входа: сетевая папка `\\fs-dept\otdel\Отпуска\`. - Формат: таблица Excel. - Колонки: ФИО, дата начала, дата окончания, тип (ежегодный/без содержания/учебный), статус (согласовано/в приказе), примечание. - Владелец файла: руководитель отдела. - Telegram. - Канал входящих запросов и уведомлений. ## 7. Рекомендуемое решение TO-BE - Ядро решения. - ИИ-агент мониторит запросы в Telegram. - Агент автоматически проверяет остатки в KTWorks (через API/MCP). - Агент валидирует даты по правилам: макс. 2 человека одновременно, наличие дежурного из 3 старших. - Агент готовит строку для Excel и отправляет руководителю уведомление в Telegram с кнопкой «Согласовать». - После нажатия кнопки агент самостоятельно обновляет файл на сетевом диске и фиксирует статус. - Главный выходной артефакт. - Обновлённая строка в Excel-файле `График отпусков 2026.xlsx`. - Уведомление в Telegram с итогом согласования. - Еженедельный список для HR (автоматическая рассылка). - Система-приёмник. - Excel-файл на сетевом диске (`\\fs-dept\otdel\Отпуска\`). - Уровень автономности. - Черновик с подтверждением (human-in-the-loop): агент всё готовит, человек нажимает кнопку. - Порог уверенности/точности. - 100% соблюдение жёстких правил (дежурный, лимит людей); при конфликте – блокировка и эскалация. - Рекомендуемый формат реализации. - `Alem-only (чат/API)` – агент работает внутри Telegram через API Alem, используя MCP для доступа к KTWorks и файловой системе. - Рассмотренные варианты. - `Alem + веб-панель` – отклонён: владелец прямо заявил «отдельный экран не нужен», поток не требует табличной сверки. - `Отдельный продукт` – отклонён: логика укладывается в возможности Alem, нет требований к сложной обработке вне платформы. ## 8. Пользователи и действия после результата - Руководитель отдела (Ержан). - Действие: получает уведомление в Telegram, нажимает кнопку «Согласовать». - Дальнейшее действие: ничего не делает, агент сам обновляет файл. - HR-специалист. - Действие: получает готовый еженедельный список письмом. - Дальнейшее действие: издаёт приказы без задержек. - Сотрудник. - Действие: получает быстрый ответ о статусе отпуска. ## 9. Граница проверки человеком - Что проверяет человек. - Финальное подтверждение корректности предложенных дат (кнопка в Telegram). - Сигнал для проверки. - Уведомление от агента: «Сотрудник X, даты Y–Z, остаток N дней, конфликтов нет». - Что может сделать человек. - Подтвердить (нажать кнопку) – агент вносит данные. - Отклонить – агент отменяет операцию и сообщает сотруднику. ## 10. Критерии приёмки - Как руководитель отдела, когда приходит запрос в Telegram, я хочу видеть проверку остатка и правил в одном сообщении, чтобы нажать кнопку и не переключаться в другие системы. - Вход: сообщение «Прошу отпуск с...». - Ожидаемый выход: сообщение агента с данными из KTWorks, проверкой правил и кнопкой. - Ошибка: если правила нарушены – агент пишет причину отказа сразу. - Как руководитель, когда я нажимаю «Согласовать», я хочу, чтобы строка появилась в Excel на сетевом диске автоматически. - Вход: нажатие кнопки. - Ожидаемый выход: файл `\\fs-dept\otdel\Отпуска\График отпусков 2026.xlsx` обновлён. - Ошибка: если файл заблокирован – агент уведомляет руководителя. - Как HR, раз в неделю я хочу получать полный список согласованных отпусков письмом. - Вход: таймер (раз в неделю). - Ожидаемый выход: письмо со списком. - Числовой порог качества. - 0 конфликтов графиков (нарушение правила «2 человека» или «дежурный» недопустимо). - Время реакции агента < 1 минуты. ## 11. Метрики успешности проекта и ожидаемый эффект - Сокращение времени обработки запроса с 10–15 минут до 1 минуты (время владельца на нажатие кнопки). - Экономия рабочего времени руководителя: ~4 часа в месяц (летом до 12 часов). - Устранение конфликтов графиков: 0 случаев нарушения правил покрытия благодаря автоматической валидации. - Ускорение процесса для HR: приказы издаются вовремя, без задержек из-за «забытого» графика. - Снижение риска человеческой ошибки (забывчивость при ручном внесении) до нуля. ## 12. Риски, SLA и ограничения - Риск недоступности сетевой папки (`\\fs-dept\otdel\Отпуска\`) в момент записи – агент должен уметь повторить попытку и уведомить. - Риск изменения структуры Excel-файла (переименование колонок) – агент перестанет вносить данные, требуется мониторинг формата. - Риск неверных данных в KTWorks (остаток не обновлён) – агент передаст ошибку на проверку руководителю. - SLA процесса: ответ сотруднику должен быть дан в день запроса (сейчас иногда срывается). - **Оценка аналитика: нулевой вариант (можно ли проще, без ИИ).** - Проще нельзя: риск ошибок (конфликты графиков) вызван человеческим фактором (забывчивость при ручном внесении), который нельзя устранить изменением регламента без автоматизации записи и проверки правил. ## 13. Передача в работу - Access contacts: - Владелец: Ержан (руководитель отдела). - ИТ-поддержка: заявка на доступ агента к сетевой папке от имени руководителя. - HR и ДЦБ: согласование доступа агента к данным KTWorks. - Previous automation attempts: - Не было, процесс полностью ручной. - Рабочие артефакты: - Файл `\\fs-dept\otdel\Отпуска\График отпусков 2026.xlsx`. ## 14. Что осталось уточнить - Фамилия и отчество владельца – уточнит владелец. - Точный Telegram ID владельца – уточнит владелец (для настройки бота). - Название отдела и дивизиона – уточнит владелец (для паспорта). - Конкретное имя контакта в HR, который получает списки – уточнит владелец. - Детали правил ротации дежурных (кто именно входит в «тройку старших») – уточнит владелец (для загрузки в базу знаний агента). Пожалуйста, проверьте бриф: если всё верно, я перейду к схеме процесса; если есть правки – напишите их кратко. ## Объём работы Собирай ровно то, что написано в задании, и ничего сверх: без дополнительных разделов, журналов, историй, настроек и «на всякий случай» — их не просили. Свои файлы — только index.html (стили и скрипт внутри него) плюс то, что задание просит создать явно; без сборщиков и фреймворков, без комментариев в коде. Демо-данные короткие и реалистичные. Вопросов не задавай: чего в задании нет — реши сам разумно и коротко. Закончив, опубликуй сайт. ## Дизайн — дизайн-система KT AI Весь интерфейс собирай на дизайн-системе KT AI, которая уже лежит в папке проекта `design-system/`. Перед первой строкой вёрстки прочитай `design.md` и `design-system/AGENTS.md` и следуй им. Подключай файлы ДС относительными путями и в этом порядке: `./design-system/kt-ai-fonts.css`, `./design-system/kt-ai-tokens.css`, `./design-system/kt-ai-components.css`, `./design-system/kt-ai-page.css`. Тема по умолчанию — светлая: ``; не ставь `dark` и не ставь `auto` (auto уходит в тёмную по системной теме). Переключатель темы можно оставить, но открываться страница должна светлой. Цвета, отступы и размеры — только токенами `var(--kt-ai-…)`, иконки — из `design-system/icons/kt-ai-lucide-sprite.svg`. Плашки показателей — `.kt-ai-kpi` (`.value`, `.label`, `.hint`) в полосе `.kt-ai-kpi-strip`; таблицы — по правилам ДС (frameless, `.kt-ai-table-wrap`, числа вправо, `tabular-nums`); графики — чистый SVG/div высотой 190–220px, столбцы 20–28px с радиусом 2px, цвета только `var(--kt-ai-chart-blue|green|orange|pink|red|salmon)`, подсказки значений — `data-kt-tip` + `./design-system/kt-ai-chart-tip.js`. Имена токенов не выдумывай — только существующие в `design-system/kt-ai-tokens.css`: --kt-ai-fg / -fg-muted / -fg-faint, --kt-ai-bg / -bg-soft, --kt-ai-card-bg / -card-border, --kt-ai-border / -border-strong, --kt-ai-primary, --kt-ai-radius-xl / -3xl, --kt-ai-font-sans / -mono, --kt-ai-chart-blue / -green / -orange / -pink / -red / -salmon, --kt-ai-status-ok-fg / -warn-fg / -risk-fg. Несуществующий токен (`--kt-ai-text-primary`, `--kt-ai-bg-surface`, `--kt-ai-font-family`) молча не применится — страница выйдет в Times New Roman без рамок. Классы ДС (`.kt-ai-kpi`, `.kt-ai-card`, `.kt-ai-table`, `.kt-ai-btn`, `.kt-ai-chip`, `.kt-ai-input`) в своём `