ii-agent-soglasovanie-otpusk/brief.md

20 KiB
Raw Permalink Blame History

Бриф инициативы: ИИ-агент согласования отпусков

Суть: Руководитель отдела (Ержан) вручную проверяет остатки отпусков в 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. Тема по умолчанию — светлая: <html lang="ru" data-theme="light">; не ставь 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) в своём <style> не переопределяй — ДС рисует их сама; свой <style> — только сетка и отступы. <body class="kt-ai-app">. Перед публикацией проверь сам: в HTML не меньше десятка классов kt-ai-*, каждый var(--kt-ai-…) есть в tokens.css, свои hex-цвета — только внутри логотипа. Иначе это не дизайн-система, а перекраска. Таблицы, списки, журналы, дашборды и формы собирай из готовых классов ДС (design-system/COMPONENTS.md), архетип экрана выбирай по design-system/docs/ARCHETYPES.md. Каркас страницы — из design.md, с обычными <link>. Шаблон design-system/templates/kt-ai-app-shell.html целиком не копируй: его скрипты-загрузчики (data-kt-ai-base-resolver, data-kt-ai-boot) тянут CSS с корня сайта по абсолютному пути /design-system/…, а сайт публикуется в подпапке — стили не загрузятся. Подключай только файлы, которые реально лежат в design-system/ (проверь ls design-system): файла kt-ai-components.js там нет. Свой стиль не выдумывай, Bootstrap/Tailwind/Material/Google Fonts не подключай, сырые hex-цвета не пиши. Папку design-system/ закоммить вместе с проектом — иначе опубликованная страница останется без стилей.