187 lines
20 KiB
Markdown
187 lines
20 KiB
Markdown
# Бриф инициативы: ИИ-агент согласования отпусков
|
||
**Суть:** Руководитель отдела (Ержан) вручную проверяет остатки отпусков в 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/` закоммить вместе с проектом — иначе опубликованная страница останется без стилей.
|