199 lines
22 KiB
Markdown
199 lines
22 KiB
Markdown
# Сведение отчётов дочерних компаний
|
||
|
||
Собери СТАТИЧНЫЙ макет всего процесса: кликабельные экраны без серверной логики, наполненные правдоподобными примерами. Без пометок «макет», «демо» и «демонстрационная версия» на экране.
|
||
Это ИНТЕРФЕЙС решения, а не паспорт в виде сайта: первым открывается главный рабочий экран сотрудника (то, с чем он работает каждый день), дальше — экраны остальных шагов процесса. Таблицы, списки и графики сразу заполнены примерами (8–15 строк), пустых состояний «ничего не найдено» при открытии быть не должно. Сведения паспорта (предпосылки, эффект, риски) — одной последней вкладкой «О решении», не первой.
|
||
|
||
# ТЗ НА ИНТЕРФЕЙС
|
||
## Что собираем
|
||
Автоматизировать сбор и сверку отчётов 15 дочерних компаний для подготовки сводного файла и записки к 15:00 понедельника.
|
||
|
||
## Кто пользуется
|
||
- Сводящий: загружает файлы, проверяет извлечённые данные и отклонения, готовит записку
|
||
- Финансовый директор: получает итоговую записку (только просмотр результата)
|
||
|
||
## Экраны (первым открывается первый)
|
||
### 1. Загрузка и распознавание
|
||
Инициация процесса: загрузка файлов с общего ящика и автоматическое извлечение показателей.
|
||
На экране:
|
||
- Список загруженных файлов (15 шт.) со статусом обработки
|
||
- Таблица извлечённых показателей: Компания, Выручка, EBITDA, CAPEX, Дебиторская задолженность, План, Факт
|
||
- Индикатор прогресса распознавания форматов
|
||
- Журнал действий ИИ (логи обработки)
|
||
Действия:
|
||
- Загрузить файлы с общего ящика
|
||
- Запустить распознавание
|
||
- Перейти к проверке
|
||
- Вернуть в ручной режим (при ошибке)
|
||
|
||
### 2. Проверка данных и отклонений
|
||
Верификация работы ИИ: контроль переноса данных в единый свод и проверка подсветки отклонений.
|
||
На экране:
|
||
- Единый сводный табличный вид по всем компаниям
|
||
- Подсветка ячеек с отклонением от плана более 10%
|
||
- Фильтр по типу отклонения (Выручка, EBITDA, CAPEX, ДЗ)
|
||
- Статусы: 'Проверено', 'Требует внимания'
|
||
Действия:
|
||
- Отметить данные как проверенные
|
||
- Исправить ошибку вручную (если найдена)
|
||
- Сформировать сводный файл Excel
|
||
- Перейти к подготовке записки
|
||
|
||
### 3. Формирование записки
|
||
Подготовка итогового документа для финансового директора на основе проверенных данных.
|
||
На экране:
|
||
- Редактор текста записки
|
||
- Автоматически подставленные ключевые показатели и список компаний с отклонениями >10%
|
||
- Предпросмотр финального документа
|
||
- Напоминание о дедлайне: 15:00 понедельника
|
||
Действия:
|
||
- Редактировать текст записки
|
||
- Скачать записку
|
||
- Отправить на согласование
|
||
|
||
## Данные
|
||
- ОтчетКомпании: НазваниеКомпании, Выручка, EBITDA, CAPEX, ДебиторскаяЗадолженность, План, Факт, ОтклонениеПроцент
|
||
- ФайлИсходник: ИмяФайла, ДатаПолучения, СтатусРаспознавания, ТипШаблона
|
||
- ЗапискаДиректору: ТекстЗаписки, ДатаГотовности, СтатусОтправки
|
||
|
||
## Путь сотрудника
|
||
- Сводящий загружает файлы с общего ящика на экране 'Загрузка и распознавание'
|
||
- Система распознаёт форматы и извлекает показатели (ИИ)
|
||
- Система переносит данные в единый свод (ИИ)
|
||
- Система подсвечивает отклонения от плана более 10% (ИИ)
|
||
- Сводящий переходит на экран 'Проверка данных и отклонений' и верифицирует результат
|
||
- Сводящий формирует Excel и переходит на экран 'Формирование записки'
|
||
- Сводящий готовит и отправляет записку финансовому директору
|
||
|
||
## Что делает ИИ
|
||
- На экране 'Загрузка и распознавание': распознавание форматов Excel и извлечение показателей (Выручка, EBITDA, CAPEX, ДЗ, План, Факт)
|
||
- На экране 'Загрузка и распознавание': перенос данных в единый свод
|
||
- На экране 'Проверка данных и отклонений': автоматическая подсветка ячеек с отклонением от плана более 10%
|
||
|
||
## Что проверяет и решает человек
|
||
- Сводящий проверяет корректность извлечённых данных и единиц измерения на экране 'Проверка данных и отклонений'
|
||
- Сводящий принимает решение о наличии ошибок и при необходимости включает ручной режим исправления
|
||
- Сводящий формулирует и редактирует текст записки для финансового директора
|
||
|
||
# КОНТЕКСТ (для понимания процесса; на экраны целиком не выносить)
|
||
|
||
# ПАСПОРТ ИИ-РЕШЕНИЯ
|
||
| Поле | Значение |
|
||
|---|---|
|
||
| Наименование | Сведение отчётов дочерних компаний |
|
||
| Исполнитель | владелец процесса – сборка на платформе Vibe AI |
|
||
| Пользователь | Сводящий, финансовый директор |
|
||
| Дата внедрения | – |
|
||
|
||
## 1. Предпосылки
|
||
- Сведение отчётов 15 дочерних компаний вручную раз в месяц
|
||
- Использование разных шаблонов отчётности
|
||
- Длительный процесс с высоким риском ошибок
|
||
|
||
## 2. Входные данные и источники
|
||
- Файлы Excel с выручкой, EBITDA, CAPEX, дебиторской задолженностью, планом и фактом
|
||
- Доставка писем на общий ящик в пятницу
|
||
|
||
## 3. Процессы для внедрения ИИ
|
||
- Сбор файлов и распознавание форматов
|
||
- Перенос данных в единый свод
|
||
- Подсветка отклонений от плана
|
||
|
||
## 4. Шаги процесса
|
||
- Сводящий скачивает файлы отчётов с общего ящика
|
||
- Система распознаёт форматы и извлекает показатели
|
||
- Система переносит данные в единый свод
|
||
- Система подсвечивает отклонения от плана более 10%
|
||
- Сводящий проверяет результат
|
||
- Сводящий готовит записку для финансового директора
|
||
|
||
## 5. Результат
|
||
- Сводный файл Excel
|
||
- Записка финансовому директору к 15:00 понедельника
|
||
|
||
## 6. Ожидаемый эффект
|
||
- Сокращение времени на выполнение процесса
|
||
- Снижение количества ошибок
|
||
|
||
## 7. Экономический эффект
|
||
- Экономия 12–16 часов в месяц (оценка Төре)
|
||
|
||
## 8. Контроль и риски
|
||
- Возможность ошибок при обработке нестандартных файлов
|
||
- Риск ошибок в единицах измерения
|
||
- Контроль результата осуществляет сводящий
|
||
|
||
## 9. Меры по снижению
|
||
- Проверка результата человеком перед использованием.
|
||
- Журнал действий ИИ и возможность вернуть ручной режим.
|
||
|
||
## 10. Формат реализации
|
||
- Веб-интерфейс на Vibe AI: сначала статичный макет всего процесса, после согласования — рабочее решение.
|
||
- Экраны макета: Загрузка и распознавание; Проверка данных и отклонений; Формирование записки.
|
||
|
||
Схема процесса (mermaid):
|
||
flowchart TD
|
||
S0["Сводящий скачивает файлы отчётов с общего ящика · ИИ"]
|
||
S1["Система распознаёт форматы и извлекает показатели · ИИ"]
|
||
S0 --> S1
|
||
S2["Система переносит данные в единый свод · ИИ"]
|
||
S1 --> S2
|
||
S3["Система подсвечивает отклонения от плана более 10% · ИИ"]
|
||
S2 --> S3
|
||
S4["Сводящий проверяет результат"]
|
||
S3 --> S4
|
||
S5["Сводящий готовит записку для финансового директора"]
|
||
S4 --> S5
|
||
|
||
## Объём работы
|
||
|
||
Собирай ровно то, что написано в задании. Не добавляй лишние разделы, журналы и настройки. Для статичной страницы достаточно index.html. Если запрошен статичный макет, не добавляй серверную часть на этом этапе.
|
||
Если задача требует общего хранения, настоящей регистрации или рабочего приложения, реализуй серверную часть и базу данных средствами Vibe AI. Создай необходимые файлы, таблицы и обработчики, даже если владелец не перечислил их отдельно. Не подменяй общее хранение localStorage или демонстрационным списком. Собственная база приложения не требует интеграции с системами КТ и отдельного утверждения дизайна в экспрессе. При доработке существующего проекта это правило заменяет прежнее ограничение одним HTML-файлом.
|
||
Проверь сохранение записи, чтение из другой сессии, обработку ошибок и ограничения доступа. Личные данные доступны только уполномоченному пользователю, секреты не попадают в браузерный код. Не придумывай доступы или готовые интеграции. Если публикация серверной части недоступна, укажи конкретную причину и не объявляй функцию работающей. Закончив, опубликуй приложение и сообщи фактический адрес и результаты проверки; сохраняй прежний адрес, если платформа это позволяет.
|
||
|
||
## Имена файлов
|
||
|
||
Если серверная часть не нужна, скрипт интерфейса называй script.js, стили — style.css. Не создавай в корне проекта файлы app.js, main.js, index.js, server.js, bot.js, app.py, main.py, server.py и package.json со scripts.start: платформа примет проект за серверное приложение и не опубликует статичный сайт. Эти имена — только для настоящего сервера.
|
||
|
||
## Дизайн — дизайн-система 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 уходит в тёмную по системной теме). `lang` — язык интерфейса из задания: казахский — `kk`, английский — `en`, иначе `ru`. Переключатель темы можно оставить, но открываться страница должна светлой.
|
||
Цвета, отступы и размеры — только токенами `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-цвета — только внутри логотипа. Иначе это не дизайн-система, а перекраска.
|
||
Фильтры и пустое состояние тоже из ДС (`.kt-ai-select`, `.kt-ai-filter-chip`, `.kt-ai-empty`): каждый выведенный фильтр обязан менять все представления, которые задевает — таблицу, показатели, график и текст объяснения.
|
||
Таблицы, списки, журналы, дашборды и формы собирай из готовых классов ДС (`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` там нет.
|
||
Шапка страницы: слева логотип Казахтелекома — `<img src="https://code.vibe42.kz/tore/aitu/kt-logo.svg" alt="Казахтелеком" height="28">`, рядом название приложения.
|
||
Свой стиль не выдумывай, Bootstrap/Tailwind/Material/Google Fonts не подключай, сырые hex-цвета не пиши.
|
||
Папку `design-system/` закоммить вместе с проектом — иначе опубликованная страница останется без стилей.
|
||
|
||
## Телефон — основной экран
|
||
|
||
Сотрудники открывают приложение в мессенджере на телефоне. Всё рабочее — поиск, фильтры, кнопки действий, формы, переключатели — должно быть видно и работать при ширине 375px, без горизонтальной прокрутки страницы. Дизайн-система на экранах уже 640px скрывает поиск верхней панели (классы `.kt-ai-search` и `.kt-ai-search-field`): рабочий поиск по данным ставь в области контента над списком или таблицей обычным полем `.kt-ai-input`, а не этими классами.
|
||
|
||
## Без пометок «демо»
|
||
|
||
Не пиши на экране «Демо-данные», «демонстрационная версия», «тестовые данные», «макет» и похожие пометки. Если настоящих данных нет — наполни приложение правдоподобными примерами. Не утверждай, откуда взяты данные.
|
||
|
||
## Ничего не додумывай
|
||
|
||
НИЧЕГО НЕ ДОДУМЫВАЙ (правило продукта): источник — задание (в нём — слова сотрудника). Сведений о работе, которых там нет, не добавляй и не «уточняй» за сотрудника: компании и бренды, системы и интеграции, отделы и роли, адреса, числа, цены, сроки, показатели, источники данных. Чего нет — того не пиши. Предлагать своё можно, только если сотрудник сам просит предложить, придумать, подобрать, найти или изучить. Примеры в таблицах и на графиках — обычные и нейтральные, они только показывают устройство экрана. Чего-то не хватает — оставь поле пустым или добавь пустое состояние, а не выдуманный факт.
|
||
|
||
## Большие файлы — частями, скрипт — простой
|
||
|
||
Файл длиннее ~250 строк не пиши одной записью: создай его с первой частью и дописывай следующими правками (по экрану или блоку за раз). Запись слишком большого файла одним сообщением обрывается.
|
||
Скрипт пиши просто: обычные функции и циклы, без хитрых однострочников; методы строк (padStart, toFixed, slice) вызывай у значений нужного типа, к элементу обращайся после проверки, что он найден. После сборки перечитай скрипт: парные скобки, каждый экран рисуется без исключений, первый экран при открытии сразу показывает наполненные таблицы.
|
||
Интерпретатора JavaScript в песочнице нет — не ищи его и не пиши свои проверяльщики: синтаксис опубликованной страницы проверит Tõre и сообщит, если что-то не так.
|