ii-agent-soglasovanie-otpusk/brief.md

187 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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