Продуктовый роадмап с date.uxbrain.ru (понедельный гант на 16 недель, релизы Р0–Р3 по месяцам, спецификация скоупа из документа для CPO) сопоставлен с тем, что реально лежит в ветке main репозитория farmgameowner/plibvi. Только продуктовые возможности; техника упомянута там, где она сама является задачей ганта.
Две оговорки к чтению. Роадмап читался по копиям страниц от 25–27.08.2026: живые страницы закрыты basic auth, пароля в сессии нет. Даты в ганте зашиты в код страницы и вряд ли менялись, но если план с тех пор правили, сверку надо повторить. Второе: утром 19.09 в main влиты интеграционная ветка (сборщик Telegram-каналов, журнал ошибок приложений GlitchTip, правки DUSHA-45…54) и PR #2 с правками вёрстки «По душе» — отчёт обновлён по состоянию 2894cd60. Третье: созвон команды 17.09 (DUSHA-M-1 в трекере) учтён как источник статусов, которых в коде не видно: нагрузочные прогоны и ход iOS.
aps-environment=development.Серая полоса — план из ганта, цветная — когда это появилось в main. Пунктир красным — задача без кода. Красная вертикаль — сегодня, конец W12.
| Веха | План | Факт |
|---|---|---|
| m1 · Стенды развёрнуты, CI зелёный | конец W3 · 19.07 | Стенд dusha — W3 (веб «По любви» выкачен 13.07). CI — только W9 (26–27.08). с опозданием |
| m2 · SSO live, совместимость токенов | конец W7 · 16.08 | Достигнуто по построению: «По душе» ходит в те же auth/otp, auth/otp/verify, что и «По любви»; токены не менялись, совместимость с приложениями из сторов доказана при накате форка 26.08. достигнуто иначе |
| m4 · Events-backend готов (API) | конец W11 · 13.09 | Событийная поверхность готова с W7 (40 ручек с проверкой контракта 11.08, 65 путей к 13.09). Но веха зависит от d3 (деньги), а его нет. частично |
| m3 · Dating net-new в бете | конец W12 · 20.09 | Четыре фичи в коде и в Android с W2–3, но без SpeechKit, ЕСИА/ФССП и CV-провайдеров бета номинальная. частично |
| m5 · Интеграция events↔dating — демо | конец W14 · 04.10 | Через две недели. Ядро f1 не начато. под угрозой |
| m6 · Релиз в прод | конец W16 · 18.10 | Без iOS «По душе» и платежей состав Р3 недостижим; реалистичный состав — Android «По душе» + «По любви» на копии прода cloud.ru, готовой к трафику с 14.09. |
Дата — первый коммит в main, где возможность появилась. «Где» — путь в репозитории.
| Возможность | Роадмап | В коде с | Где и в каком виде | Статус |
|---|---|---|---|---|
| Единый аккаунт: телефон + код на оба приложенияР1 · b1, m2 | Единый вход без повторных регистраций | 29.06 / 16.08 | Один бэкенд, продуктовый пользователь users.ExternalUser; Android «По душе» использует те же ручки OTP, что и дейтинг | сделано |
| Каталог офлайн-событий с автоимпортомР2 · d1, d2 | «Автоимпорт решает пустой каталог с первого дня» | 10.07 / 07.08 | events (27 моделей), сервис ingestion/: 28 источников (27 площадок и Telegram-каналы), склейка дублей, гео-справочник OSM, политика источника, четыре шлюза до ленты; на стенде с 07.08 около 1 600 событий, к 10.08 — 4 683 | раньше плана |
| Запись на событие (RSVP)Р2 · d1 | Мгновенно / по одобрению, waitlist, capacity | 10.08 | events/rsvp.py, EventParticipation: going / pending / waitlist, очередь поднимается сразу, отказ организатора окончателен; в Android «По душе» и в вебе | раньше плана |
| Чек-ин на местеР2 · d1 | Geo-fenced check-in | 10.08 | events/checkin.py: радиус 200 м + окно по времени; честно записано, что антифрода против подмены GPS нет | раньше плана |
| Создание событий пользователями, уровни L1/L2CPO §2.1 | Создание L1/L2, серии | 10.08 | Мастер из двух шагов (authoring.py, EventDraft), серии сеансов, право L2 считается по пяти условиям (l2_gate.py), кабинет организатора в Android и вебе | раньше плана |
| Отзыв после события, репутация явкиCPO §2.1 | Post-event review, репутация | 10.08 | reviews.py, reputation.py: 0–100, +3 пришёл, −5 не пришёл, анонимные впечатления о людях | раньше плана |
| Чат события до встречиCPO §2.1 | Pre-event чат | 18.08 | FastAPI-чат, ручка /event-chats/{id}/messages, экран переписки в Android «По душе» | сделано |
| Карта + список как главный экран, геопоискCPO §2.1 | PostGIS, карта/список | 10.08 / 16.08 | Районы и округа двумя уровнями (GeoArea), карта MapLibre в Android, Leaflet с кластерами в вебе | сделано |
| События в свайп-ленте дейтинга, «пошёл бы / не интересно»CPO §2.1, f1 | Смешанная лента | 10.07 | GET /feed: люди из общей колоды + события, реакция would_go усиливает подбор (event_match_boost, shared_event_interests на карточке) | раньше плана |
| «Встречались вживую» как сигналР2 · f1 met-IRL | Общие события усиливают подбор | 10.08 | Взаимное «хочу продолжить» после события создаёт EventMatch — мост в дейтинг; поиск людей только среди пересечений на прошедших событиях | частично |
| «Вы пересекались» — GPS-пересеченияР1 · c2 | Бета в августе | 10.07 | geo: пинги, пересечения, чистка по сроку; экран Encounters в Android и вебе; BLE-радар исключён ещё в июне | бета есть |
| AI-модерация фото и чатовР1 · c1 | Фейки, NSFW и скам ловятся до жалоб | 29.06 / 10.07 | Сервис верификации с NSFW-моделью (вендорский), политика фото и правила чата → флаги в очередь консоли. Платных CV/text-провайдеров нет | каркас |
| Голосовой онбордингР1 · c3 | Бета в конце августа | 10.07 | voice: сессии, реплики, применение к анкете; в Android распознавание на устройстве и текстовый фолбэк. SpeechKit и LLM не подключены (нет ключей) | каркас |
| Бейдж «подтверждён»: ЕСИА, ФССП, справкиР2 · c4 | Добровольная проверка через Госуслуги | 10.07 / 10.08 | scoring: провайдеры ЕСИА/ФССП как HTTP-заглушки, чип доверия на карточке, экран с согласием; справка о самозанятости (НПД) загружается и проверяется оператором. Реального ЕСИА нет — ждёт статуса ИС | заглушка |
| Единая модерация и поддержкаР3 · f3 | Один центр управления двумя продуктами | 10.07 / 08.08 | backend/admin-panel + adminpanel: три пространства (Платформа / По любви / По душе), 8 ролей, аудит чтений ПДн, очереди модерации, жалобы, тикеты, DSR, финансы, ingest, SEO; замечания владельца LYUBVI-3 закрыты 14.09 | раньше плана |
| Удаление и блокировка аккаунта каскадомCPO §3.3 · f2 | Soft-delete с окном отмены, purge, отзыв сессий | 27.08 | users/services/account_deletion.py: заявка, грейс 14 дней, тумбстоун телефона, каскады; экран «Удаление профиля» в Android 12.09 | раньше плана |
| Лендинги событий для SEOe3 | W12–13 | 11.08 | web-events: посадочная «город + тема», публичные карточки без JWT, sitemap-логика витрины | раньше плана |
| Android-клиент «По душе»Р3 · e2 | Kotlin / Compose, W9–15 | 16.08 | android-events: 14 разделов экранов, вёрстка по 623 кадрам Figma, живой API; круги DUSHA-20…54 с 15.09; правки DUSHA-45…54 и семейный статус (DUSHA-51) в main с 18–19.09 | в графике |
| Нативные клиенты «По любви»e4, CPO §5.3 | В W14–16 — только план перехода | 10.07 / 30.07 | android, ios: полный core loop, ручные проходы по Figma Ф0–Ф5, iOS в TestFlight с 01.09, экраны по нодам 14–18.09 (по созвону 17.09 — около 42 из 70 экранов) | далеко впереди |
| Дев-стенд, проект в контуре компании, CIР0 · a1–a6 | Июль | 13.07 / 04.08 / 27.08 | Стенд dusha.uxbrain.ru, монорепозиторий на GitHub 04.08, копия прода и стейдж на cloud.ru 24–31.08, CI и приёмка образов 26–27.08 | с опозданием, сделано |
| Готовность к ростуР3 · g1 | Нагрузочное, автомасштабирование | 27.08 / 10.09 | Мониторинг Prometheus + Loki на cloud.ru, пакет k6 с регламентом и предохранителями. Первые прогоны на копии прода — с 17.09: бэкенд падает на 3 000 одновременных пользователей, причина не найдена; HPA не доказан | подготовлено |
| Возможность | Где обещано | Что есть вместо | Вес для релиза |
|---|---|---|---|
| Платные события: билеты, онлайн-оплата, эскроу, выплаты организаторам, чеки ФНС | Р3 октябрь; гант d3 W8–11; CPO §2.1 | Только рамка kb/30-backend/81 от 16.08 со статусом «не к реализации» и пятью вопросами владельцу без ответа; создание платного события закрыто 409 l2_required; цена в мобильном мастере — текст. Внешний процесс KYC ЮKassa (a2, W1–4) в трекере не виден | критично метрика Р3 «GMV платных событий» недостижима к 18.10 |
| iOS-клиент «По душе» | Р3 «в App Store»; гант e1 W9–15 (Николай) | Каталог ios/ — только «По любви» (конфигурации Dusha / Dushalove / Stage / Prod, bundle ru.polyubvi). Все iOS-коммиты 14–18.09 — экраны «По любви» по нодам | критично должен был стартовать 24.08 |
| Статус «открыт для знакомств», «4 из 20 участников открыты и подходят», переход в анкету «По любви» в один тап | Р2 сентябрь; гант f1 W12–14; CPO §2.1 | Флага на identity нет, cross-API нет, диплинка из «По душе» в «По любви» нет. В профиле «По душе» — статичный баннер «Связать с дейтингом» из макета без действия | высокий веха m5 (демо, 04.10) через две недели |
| Пуши «По любви» на iPhone снова доходят | Р0 июль, «чиним первым делом»; CPO §7.1 | backend/po-lyubvi-flutter/ios/Runner/*.entitlements — во всех девяти aps-environment=development; Flutter не менялся с импорта 29.06. Если чинили в вендорском Jenkins вне репозитория, это нужно подтвердить | проверить |
| Реальные проверки ЕСИА и ФССП для бейджа | Р2; гант c4 и внешний a3 (статус ИС, W1–6) | Заглушки провайдеров. В коде также лежат типы проверок «судимости» и «соцсети», которые CPO-документ прямо исключил | внешний блокер |
| Голос через SpeechKit + LLM | Р1 бета; гант c3 | Каркас с распознаванием на устройстве, ключей нет с июля | внешний блокер |
| Платные CV/text-провайдеры модерации | Р1; гант c1 | NSFW-модель и правила; «SLA очереди 4 ч» не подтверждён | внешний блокер |
| Единый журнал внутренних событий по таксономии §4 (Kafka, correlation_id) | Гант f2; CPO §3–4 | Аудит-лог операторов, продуктовая аналитика, очереди модерации. Сквозной трассы «событие → реакция → журнал» по correlation_id нет | средний |
| ТГ-бот верификации и ТГ-бот алертов | CPO §6.4 | Бот анонсов «По душе» (другая задача), алерты в Grafana | низкий |
| Rust PoC: WS fan-out + ONNX-матчинг | Гант r0 W2–4 | Ни одного .rs; решение «Python-база, Rust точечно позже» | снято |
| Пентест, ревью сторов, регистрация в РКН и согласия на биометрию | Гант g2, g4, g3 (W12–16) | Срок не подошёл или процесс внешний. В коде есть DSR, согласия в экранах, режим ПДн для справок НПД | ещё не срок |
Продуктовые возможности, которых нет ни в ганте, ни в релизах по месяцам, ни в спецификации скоупа. Часть из них пришла из ТЗ дейтинга и брифа команды, часть — из макетов Figma. Не считаются возможности дейтинга, унаследованные от вендорского прода (подписки и IAP, рефералка, сообщества, «Открывашки», кружки, лимит лайков): CPO-документ переносит их «как есть», в нативных клиентах они пересобраны, но новыми не являются.
| Возможность | В коде с | Где | Замечание |
|---|---|---|---|
| Полноценная веб-версия «По душе» | 11.08 | web-events (Nuxt SSR): лента, карта с кластерами, каталог, подборки, «Популярное», поиск, карточка события, профиль организатора, мастер создания, кабинет, отзыв, жалоба, «мои события»; на стенде и на копии прода | Роадмап обещал только SEO-лендинги |
Веб-клиент «По любви» /app/ | 13.07 | backend/web-app (React), паритет с Android | Не развивается с 11.08 |
| SEO-редакция: блог, ИИ-помощник, подбор запросов из Вордстата, SEO-балл | 27.08 | seo, раздел «SEO» в консоли, витрина блога в web-events; ИИ — Claude Opus 5, облачный Вордстат | Решения гриля 27.08; блокер — публичный домен к го-лайву |
| Редакторские подборки, сторис над лентой, «Популярное» | 08–12.08 | EventCollection, Story с обязательным сроком, ранг и прирост за сутки | Ручной ответ на «куда пойти с ребёнком», который нельзя вывести фильтром |
| Подписки на организатора и тему, «твоя неделя», лента уведомлений | 11.08 | CalendarSubscription, Notification, колокольчик в Android «По душе» | Пуши событий по сценариям — в events/notifications.py |
| «Позвать своих» — приглашение компании 5+ | 11.07 | CompanyInvite: до 20 получателей, лимит в сутки, дедуп, диплинк polubvi://events; Android и веб | Из ТЗ дейтинга, не из роадмапа |
| Поиск людей только среди пересечений на прошедших событиях | 12.08 | events/people.py | Решение владельца 12.08: открытый поиск развернул бы приватность |
| Бот анонсов «По душе», короткий адрес podushe.pro, счётчик переходов в MAX | 12–16.08 | events/telegram_bot.py, раздел «Telegram-бот» в консоли, баннер для печати | Маркетинговый канал, не из плана |
| Операторский контур сборщиков | 07.08 | ingestion/ui + раздел «Сборщики» в консоли: прогоны, политики источников, словарь интересов без релиза, разбор дублей, отчёт по таксономии | В плане это «парсинг афиш» на две недели |
| Telegram-каналы как источник событий с проверкой оператором | 17.09 | ingestion/collectors/telegram, страница канала в консоли | в main с 18.09 28-й источник; выкачен на стенд dusha |
| Раздел «Ошибки приложений» и журнал падений обоих Android | 17.09 | Sentry SDK → GlitchTip, adminpanel/views/applogs.py | в main с 18.09 приёмник GlitchTip на cloud.ru ждёт DevOps |
| Экран скидок и QR-страница события в «По душе» | 18.08 / 11.09 | ProfileDiscountsNodeScreen, EventQrNodeScreen по макету | Ручек API под скидки нет — экран на данных макета |
| Копия прода на cloud.ru с демо-данными и тестовым входом по списку номеров | 14.09 | migration/cloud-ru, засев с меткой и полным удалением, песочница оплаты | Инфраструктура для ручных проходов и приёмки владельцем |
Три доски на 21.09.2026: трекер salam0nn (DUSHA — 58 карточек, LYUBVI — 51) и беклог сборщиков tazzz (35 карточек). Ниже только то, что меняет продукт или его состав; круги тестировщика (DUSHA-20…54, LYUBVI-21…51) и техдолг по ревью кода (DUSHA-7…10, 42, 44) не перечислены — это качество уже обещанного, а не новые возможности.
| Что в беклоге | Карточки | Статус | Почему это вне роадмапа |
|---|---|---|---|
| Перевёрстка обоих приложений по макетам Figma | DUSHA-4, LYUBVI-1, LYUBVI-39 | Android «По душе» и «По любви» на проверке; iOS «По любви» волны В0–В6 в беклоге, по созвону 17.09 около 42 из 70 экранов | Гант не знает про новый дизайн: он появился на «дизайн-неделе» из брифа 23.07 и съел W9–W12 у обоих нативов. Именно эта работа объясняет, почему e1 (iOS «По душе») не начат |
| Расширение источников афиш сверх «cold-start» | DUSHA-2, DUSHA-3; tazzz SRC-TELEGRAM, SRC-EDTECH, SRC-RUNETID, SRC-PONOMINALU, SRC-TICKETSCLOUD, SRC-2DO2GO | Пять новых организаций у Егора в работе; Telegram в работе (код уже в main); пять площадок заблокированы — мёртвые сайты или анти-бот | В плане d2 — две недели на парсинг; беклог ведёт сбор как постоянный продуктовый поток с волнами 6–9 |
| Качество каталога как продуктовая задача | DUSHA-57, DUSHA-59, DUSHA-60, DUSHA-55 | В беклоге: битые обложки all-events (70 % ссылок 404), превью обложек на сервере, организатор отсутствует у 2 763 событий из 2 764, районы на cloud.ru не проставлены | Роадмап меряет «события в неделю», но не полноту карточки; без этих четырёх лента на проде выглядит хуже стенда |
| Песочница оплаты и контракт для нативных клиентов дейтинга | LYUBVI-2 (готово), LYUBVI-13, 14, 16, 17 | Песочница платежей на стейдже, карточка подписки, диплинк рефералки, лимиты реакций сделаны 14.09; подписи вебхуков T-Bank и Apple на проверке; DEMO-терминал T-Bank в беклоге | CPO-документ переносит IAP и подписки дейтинга «как есть», а на деле их пришлось довести до контракта и обложить тестами. Открытые вопросы карточки: домен для invite_link, раздел «Твои пары», настоящие ролики |
| Обучающие ролики в ленте «По любви» | LYUBVI-10 (готово) | Раздел «Рекламное видео» в консоли, ручка для клиентов, частота показа | Унаследованная механика вендора, переосмысленная 14.09 как обучение новичка; в роадмапе её нет |
| Готовые ответы на «очень частые вопросы» | LYUBVI-23 | На проверке | Контент FAQ для дейтинга; роадмап про контент молчит |
| Подсказка в пустой ленте: «дозаполни анкету» | LYUBVI-42 | Беклог, high | Порог анкеты 54 % есть на сервере, а клиент молчит; продуктовое состояние, которого нет ни в макете, ни в плане |
| Гендерно нейтральные тексты, понятные подписи консоли | LYUBVI-29, DUSHA-16, 17, 18, LYUBVI-44 | Беклог и проверка | Тон и словарь продукта; в роадмапе только «единая админка» без требований к текстам |
| Переезд на прод cloud.ru как воронка карточек | LYUBVI-11 и девять подзадач, DUSHA-56, DUSHA-62 | Эпик в работе: воркеры готовы, вебхуки на проверке, бэкапы, нагрузочный прогон и окно cutover в беклоге | В ганте это a1/a5 «в контуре заказчика» к W3 одной строкой; беклог показывает, что переезд ещё не закончен на W13 |
Обратная сторона. У самых тяжёлых пунктов роадмапа карточек нет ни на одной доске: iOS «По душе», платные события с ЮKassa и эскроу, связка «открыт для знакомств», ключи ЕСИА/ФССП/SpeechKit, пентест, регистрация в РКН, листинги сторов. Если трекер отражает намерения команды, эти задачи никто не взял. Из созвона 17.09 не попал в трекер и «список гэпов бэкенда», который ждут от Lord.
fix/tests-after-merge в один коммит. Что выкатывать на cloud.ru — теперь просто main./roadmap.html (гант, старт 29.06.2026, 16 недель), /product.html (Р0–Р3), / (документ для CPO, §2.1 скоуп, §3 ситуативы, §6.4 боты, §7 аудит Flutter) — копии от 25–27.08.2026; dusha.uxbrain.ru/team/ — бриф от 23.07.origin/main на 2894cd60 (19.09.2026, слияние PR #2): полный лог 728 коммитов по датам, docs/internal/*, kb/*, backend/docs/*, поиск по коду по ключевым сущностям.