# Project Goal — Северная звезда проекта `bit-flight-deck` > **Назначение этого документа:** возвращаться сюда каждый раз когда возникает сомнение «правильно ли мы идём», «куда мы хотим прийти», «что главное». Если фокус сбился — этот файл возвращает на курс. ## Что мы строим Система автоматизации для руководителя проектного отдела ИТ-компании. Объединяет данные 4 учётных систем (BIT.RA, EVA Desk, Битрикс24, самописная финрезная 1С) в единое read-only хранилище и даёт **автоматические ответы** на главные операционные вопросы. ## Зачем (the Why) Сейчас руководитель проектного отдела отвечает на эти вопросы вручную через 3-4 системы + Excel. Это: - не масштабируется (часов в неделе не хватает на сводку); - не даёт прогноза (только реакция постфактум); - даёт ответы с задержкой — часто пропускает критические сигналы вовремя. **Цель проекта — автоматизация принятия операционных решений**, освобождение руководителя от ручного сбора данных, проактивная сигнализация о проблемах. ## К чему хочу прийти (end state, через ~3-6 месяцев) 1. **Открыл утром дашборд — увидел всё:** кто загружен, кто свободен, какие проекты в риске, какая маржа, что подписывать в следующем месяце, прогноз финреза. 2. **Получил уведомление вовремя:** задача подвисла → Telegram-алёрт. Сделка ушла в реализацию без проектной команды → алёрт. Этап просрочен → алёрт. 3. **Прогноз вместо реакции:** вижу что через 3 недели у команды X простой, а в Битриксе квалифицированных сделок на Y часов — могу принять решение заранее. 4. **Финрез по подразделениям автоматически**, без месячного ручного Excel-сводения. 5. **Компетенции команды объективны** — выводятся из истории работ, не из «как сам себя оценил». ## Главные бизнес-вопросы которым отвечает система | Вопрос | MVP / Подсистема | |---|---| | Кто из сотрудников сейчас загружен коммерческими работами? | MVP-1 | | На какой период загружен и до когда? | MVP-1 | | Сколько часов может прилететь из сделок Битрикса? | MVP-1 | | Какие задачи подвисают и тормозят следующие работы? | MVP-2 | | В каком состоянии проекты по срокам, с декомпозицией до задачи? | MVP-2 | | Какая маржа проектов (план/факт)? | MVP-3 | | Сколько НЗП (незавершёнки) на проектах? | MVP-3 | | Сколько денег будем актировать в следующем месяце? | MVP-3 | | Какой финрез у каждого подразделения? | MVP-4 | | Прогноз финреза на основе загрузки? | MVP-4 | | Кто из сотрудников реально что умеет (компетенции)? | Подсистема D | ## Принципы (используются для разрешения спорных решений) 1. **Автоматизация, не digital Excel.** Если вижу таблицу которую пользователь должен фильтровать руками — это не цель. Дашборд = ответы без фильтрации. 2. **Read-only из источников.** Не строим параллельный учёт, не вводим данные дважды. Источники остаются мастерами. 3. **Email — главный ключ identity** между всеми системами. Если в каком-то источнике email пуст — это организационная задача дозаполнить, а не повод писать сложный fuzzy-маппер. 4. **Вертикальный срез по MVP.** Каждый MVP за 2-4 недели даёт **видимый дашборд + алёрты**, не «фундамент на 3 месяца без результата». Если MVP не даёт ответа на конкретный бизнес-вопрос — нужно либо переосмыслить MVP, либо запретить запускать. 5. **Компетенции — производная.** Из реальных работ (`core.work_log`), не из ручного справочника. Ручные справочники компетенций — антипаттерн. 6. **Single-user MVP.** Multi-user, RLS, персональные дашборды — вне scope. Когда понадобится — будет отдельный проект. 7. **Используем существующую инфру.** PostgreSQL, N8N, Cloudflare Tunnel, LiteLLM, Gitea — всё это уже стоит в `~/infrastructure/`. Не дублируем. ## Возврат к этому документу — checklist «фокус не сбился» Признаки **сбившегося фокуса** (пора открыть этот файл и пересверить): - ✖ Обсуждаем "крутую техническую вещь" которая не отвечает ни на один из 11 бизнес-вопросов выше. - ✖ Строим инфраструктуру "на вырост" без видимого MVP за 2-4 недели. - ✖ Возвращаемся к ручной фильтрации таблиц вместо автоматических ответов. - ✖ Углубляемся в один источник, теряя картину всех 4 (или общую цель). - ✖ Проектируем фичу для воображаемых будущих пользователей вместо одного руководителя проектного отдела. - ✖ Пытаемся синхронизировать что-то "потому что можно", а не потому что нужно для бизнес-вопроса. - ✖ Создаём ручной справочник там где можно вывести из данных. Если хоть один пункт совпадает — пауза, откат, чтение этого файла, переоценка. ## Roadmap высокоуровневый | MVP/Phase | Бизнес-выход | Спек | |---|---|---| | MVP-1 | Дашборд загрузки сотрудников (4 слоя) | [specs/2026-05-13-mvp1-workload-design.md](specs/2026-05-13-mvp1-workload-design.md) | | MVP-2 | Подвисшие задачи + контроль сроков + Telegram-алёрты | [specs/2026-05-13-mvp2-deadlines-design.md](specs/2026-05-13-mvp2-deadlines-design.md) | | MVP-3 | Маржа, НЗП, прогноз актирования | [specs/2026-05-13-mvp3-finance-design.md](specs/2026-05-13-mvp3-finance-design.md) | | MVP-4 | Финрез по подразделениям (с отдельным мозговым штурмом) | [specs/2026-05-13-mvp4-finrez-design.md](specs/2026-05-13-mvp4-finrez-design.md) | | Subsystem D | Компетенции команды как производная из истории работ | [specs/2026-05-13-subsystem-d-competence-design.md](specs/2026-05-13-subsystem-d-competence-design.md) | ## Что вне scope (никогда, или не в этом проекте) - ❌ Замена BIT.RA / EVA / Битрикса. Это **аналитический слой поверх**, не новая ERP. - ❌ Multi-user интерфейс. Пользователь один — Руководитель проектного отдела. - ❌ Расширение функционала источников. Если что-то нужно добавить в BIT.RA / EVA — это отдельные задачи, не часть этого проекта. - ❌ Mobile app, web frontend для сотрудников. Метабейс + NocoDB через браузер — достаточно. - ❌ Алгоритмы предсказания на ML/AI до тех пор, пока не разберёмся со статистикой простыми SQL. ## Связанные документы - **Спеки MVP** — в [specs/](specs/). - **План реализации MVP-1** — в [plans/2026-05-13-mvp1-workload.md](plans/2026-05-13-mvp1-workload.md). - **Конфигурация MVP-1** (whitelist'ы сотрудников, SD-проектов, стадий) — в [specs/mvp1-config.md](specs/mvp1-config.md). - **Декомпозиция и архитектурные решения** — в memory-системе агента (`project_workload_control`, `architecture_*`, `feedback_*`).