svedenie-otchetov-dochernih/brief.md

199 lines
22 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.

# Сведение отчётов дочерних компаний
Собери СТАТИЧНЫЙ макет всего процесса: кликабельные экраны без серверной логики, наполненные правдоподобными примерами. Без пометок «макет», «демо» и «демонстрационная версия» на экране.
Это ИНТЕРФЕЙС решения, а не паспорт в виде сайта: первым открывается главный рабочий экран сотрудника (то, с чем он работает каждый день), дальше — экраны остальных шагов процесса. Таблицы, списки и графики сразу заполнены примерами (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 и сообщит, если что-то не так.