211 lines
22 KiB
Markdown
211 lines
22 KiB
Markdown
# Сводный финансовый анализ дочерних компаний
|
||
|
||
Собери СТАТИЧНЫЙ макет всего процесса: кликабельные экраны без серверной логики, наполненные правдоподобными примерами. Без пометок «макет», «демо» и «демонстрационная версия» на экране.
|
||
Это ИНТЕРФЕЙС решения, а не паспорт в виде сайта: первым открывается главный рабочий экран сотрудника (то, с чем он работает каждый день), дальше — экраны остальных шагов процесса. Таблицы, списки и графики сразу заполнены примерами (8–15 строк), пустых состояний «ничего не найдено» при открытии быть не должно. Сведения паспорта (предпосылки, эффект, риски) — одной последней вкладкой «О решении», не первой.
|
||
|
||
# ТЗ НА ИНТЕРФЕЙС
|
||
## Что собираем
|
||
Автоматизировать сбор и анализ данных 17 дочерних компаний для подготовки сводного отчета и записки к понедельнику 15:00.
|
||
|
||
## Кто пользуется
|
||
- Аналитик: загружает файлы, проверяет данные и отклонения, отправляет результат.
|
||
- Руководитель: выборочно просматривает итоговый результат.
|
||
|
||
## Экраны (первым открывается первый)
|
||
### 1. Загрузка и распознавание
|
||
Прием файлов от 17 дочерних компаний и автоматическое сопоставление столбцов.
|
||
На экране:
|
||
- Список загруженных файлов (17 шт.) со статусом обработки
|
||
- Таблица сопоставления: исходный столбец -> целевой столбец (Выручка, EBITDA, CAPEX, Дебиторка, Кредиторка, Численность)
|
||
- Индикатор прогресса распознавания формата
|
||
- Журнал действий ИИ (логи распознавания)
|
||
Действия:
|
||
- Загрузить файлы из Outlook
|
||
- Запустить распознавание
|
||
- Вернуть в ручной режим (при ошибке)
|
||
- Перейти к проверке данных
|
||
|
||
### 2. Проверка данных и отклонений
|
||
Контроль переноса данных в сводный файл и проверка единиц измерения.
|
||
На экране:
|
||
- Сводная таблица по всем компаниям (План/Факт: Выручка, EBITDA, CAPEX, Дебиторка, Кредиторка, Численность)
|
||
- Подсветка ячеек с отклонениями
|
||
- Разметка расхождений в единицах измерения (тысячи/миллионы тенге)
|
||
- Фильтр по дочерним компаниям
|
||
Действия:
|
||
- Подтвердить корректность данных
|
||
- Исправить единицы измерения вручную
|
||
- Отметить расхождение как проверенное
|
||
- Перейти к черновику анализа
|
||
|
||
### 3. Черновик анализа
|
||
Просмотр и редактирование сгенерированного ИИ текста по каждой компании.
|
||
На экране:
|
||
- Текстовый блок с выводами по каждой из 17 компаний
|
||
- Кнопки навигации между компаниями
|
||
- Статус готовности записки (1-2 страницы)
|
||
Действия:
|
||
- Редактировать текст анализа
|
||
- Принять черновик
|
||
- Сформировать финальную записку
|
||
|
||
### 4. Итоговый результат и отправка
|
||
Финальная проверка пакета перед передачей финансовому директору.
|
||
На экране:
|
||
- Предпросмотр сводного Excel (итоговый лист + листы по организациям)
|
||
- Предпросмотр записки на 1-2 страницы
|
||
- Статус: Готово к отправке (дедлайн: понедельник 15:00)
|
||
Действия:
|
||
- Скачать сводный Excel
|
||
- Скачать записку
|
||
- Отправить пакет финансовому директору
|
||
|
||
## Данные
|
||
- Файл_Дочерней_Компании: Название_файла, Дата_получения, Статус_распознавания, Исходный_формат
|
||
- Сводные_Данные: Компания, Показатель, План, Факт, Единица_измерения, Отклонение
|
||
- Анализ_Компании: Компания, Текст_выводов, Статус_проверки
|
||
|
||
## Путь сотрудника
|
||
- Аналитик загружает файлы из Outlook на экран 'Загрузка и распознавание'
|
||
- ИИ распознает форматы и сопоставляет столбцы, аналитик подтверждает переход
|
||
- Аналитик переходит на экран 'Проверка данных и отклонений', проверяет единицы и расхождения
|
||
- Аналитик переходит на экран 'Черновик анализа', редактирует текст при необходимости
|
||
- Аналитик переходит на экран 'Итоговый результат', скачивает Excel и записку, отправляет директору
|
||
|
||
## Что делает ИИ
|
||
- Распознавание формата файлов и сопоставление столбцов (экран 'Загрузка и распознавание')
|
||
- Перенос данных в единый сводный файл (экран 'Проверка данных и отклонений')
|
||
- Подсветка отклонений в данных (экран 'Проверка данных и отклонений')
|
||
- Генерация черновика анализа по каждой дочерней компании (экран 'Черновик анализа')
|
||
|
||
## Что проверяет и решает человек
|
||
- Аналитик проверяет единицы измерения и расхождения (экран 'Проверка данных и отклонений')
|
||
- Аналитик редактирует и утверждает черновик анализа (экран 'Черновик анализа')
|
||
- Руководитель выборочно просматривает результат (экран 'Итоговый результат')
|
||
|
||
## Примеры для наполнения
|
||
Компании: 'ООО А', 'ООО Б', 'ООО В'... (17 шт.). Показатели: Выручка (млн тг), EBITDA (млн тг), CAPEX (млн тг), Дебиторка (млн тг), Кредиторка (млн тг), Численность (чел.). Пример отклонения: Факт выручки ниже плана на 15%. Пример ошибки единиц: В файле 'ООО Б' выручка указана в тысячах, а в шаблоне ожидается в миллионах.
|
||
|
||
# КОНТЕКСТ (для понимания процесса; на экраны целиком не выносить)
|
||
|
||
# ПАСПОРТ ИИ-РЕШЕНИЯ
|
||
| Поле | Значение |
|
||
|---|---|
|
||
| Наименование | Сводный финансовый анализ дочерних компаний |
|
||
| Исполнитель | владелец процесса – сборка на платформе Vibe AI |
|
||
| Пользователь | аналитик, финансовый директор |
|
||
| Дата внедрения | – |
|
||
|
||
## 1. Предпосылки
|
||
- Ручная обработка данных дочерних компаний занимает 3–4 часа в неделю
|
||
- Разный формат Excel у дочерних компаний приводит к путанице в столбцах и потере данных
|
||
|
||
## 2. Входные данные и источники
|
||
- Данные: выручка, EBITDA, CAPEX, дебиторка, кредиторка, численность персонала (план и факт)
|
||
- Источник: вложения в общем ящике Outlook от 17 дочерних компаний, приходят по пятницам
|
||
- Каждая дочерняя компания использует свой шаблон с разными листами и названиями столбцов
|
||
|
||
## 3. Процессы для внедрения ИИ
|
||
- Распознавание формата файлов и сопоставление столбцов
|
||
- Перенос данных в сводный файл
|
||
- Подсветка отклонений
|
||
- Генерация черновика анализа по каждой дочерней компании
|
||
|
||
## 4. Шаги процесса
|
||
- Дочерние компании отправляют вложения с данными в общий ящик Outlook по пятницам
|
||
- Аналитик скачивает вложения с общего ящика Outlook
|
||
- ИИ распознает формат файлов и сопоставляет столбцы
|
||
- ИИ переносит данные в единый сводный файл
|
||
- ИИ подсвечивает отклонения в данных
|
||
- ИИ генерирует черновик анализа по каждой дочерней компании
|
||
- Аналитик проверяет единицы измерения и расхождения
|
||
- Руководитель выборочно просматривает результат
|
||
- Аналитик отправляет сводный Excel и записку финансовому директору в понедельник к 15:00
|
||
|
||
## 5. Результат
|
||
- Сводный Excel с итоговым листом и отдельными листами по каждой организации
|
||
- Записка на 1–2 страницы с выводами
|
||
- Пакет передается финансовому директору в понедельник к 15:00
|
||
|
||
## 6. Ожидаемый эффект
|
||
- Финансовый директор продолжает получать готовый сводный Excel и записку к 15:00 понедельника для принятия решений
|
||
|
||
## 7. Экономический эффект
|
||
- Экономия 3–4 часов в неделю (оценка Төре)
|
||
|
||
## 8. Контроль и риски
|
||
- Ошибка ИИ из-за нестандартного формата файла и путаницы в единицах измерения (тысячи/миллионы тенге)
|
||
- Обязательная проверка единиц измерения и расхождений аналитиком
|
||
- Выборочный контроль результата руководителем
|
||
|
||
## 9. Меры по снижению
|
||
- Проверка результата человеком перед использованием.
|
||
- Журнал действий ИИ и возможность вернуть ручной режим.
|
||
|
||
## 10. Формат реализации
|
||
- Веб-интерфейс на Vibe AI: сначала статичный макет всего процесса, после согласования — рабочее решение.
|
||
- Экраны макета: Загрузка и распознавание; Проверка данных и отклонений; Черновик анализа; Итоговый результат и отправка.
|
||
|
||
Схема процесса (mermaid):
|
||
flowchart TD
|
||
S0["Дочерние компании отправляют вложения с данными в общий ящик Outlook по пятницам"]
|
||
S1["Аналитик скачивает вложения с общего ящика Outlook"]
|
||
S0 --> S1
|
||
S2["ИИ распознает формат файлов и сопоставляет столбцы · ИИ"]
|
||
S1 --> S2
|
||
S3["ИИ переносит данные в единый сводный файл · ИИ"]
|
||
S2 --> S3
|
||
S4["ИИ подсвечивает отклонения в данных · ИИ"]
|
||
S3 --> S4
|
||
S5["ИИ генерирует черновик анализа по каждой дочерней компании · ИИ"]
|
||
S4 --> S5
|
||
S6["Аналитик проверяет единицы измерения и расхождения"]
|
||
S5 --> S6
|
||
S7["Руководитель выборочно просматривает результат"]
|
||
S6 --> S7
|
||
S8["Аналитик отправляет сводный Excel и записку финансовому директору в понедельник к 15:00"]
|
||
S7 --> S8
|
||
|
||
## Объём работы
|
||
|
||
Собирай ровно то, что написано в задании. Не добавляй лишние разделы, журналы и настройки. Для статичной страницы достаточно 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/` закоммить вместе с проектом — иначе опубликованная страница останется без стилей.
|
||
|
||
## Без пометок «демо»
|
||
|
||
Не пиши на экране «Демо-данные», «демонстрационная версия», «тестовые данные», «макет» и похожие пометки. Если настоящих данных нет — наполни приложение правдоподобными примерами. Не утверждай, откуда взяты данные.
|
||
|
||
## Ничего не додумывай
|
||
|
||
Собирай по заданию. Сведений о работе, которых в задании нет, не добавляй: чужие компании и бренды, системы и интеграции, отделы, роли, сроки, цены и показатели «как в жизни» — не выдумывай. Примеры в таблицах и на графиках — обычные и нейтральные, они только показывают устройство экрана. Чего-то не хватает — оставь поле пустым или добавь пустое состояние, а не выдуманный факт.
|