Skip to content

Latest commit

 

History

History
426 lines (360 loc) · 33.3 KB

File metadata and controls

426 lines (360 loc) · 33.3 KB

Relocation Companion · Стратегический Roadmap

Единый источник истины для развития продукта от текущего состояния (v1.0.77) до запуска на массовую аудиторию (1M+ пользователей). Документ строится по ролям, экранам, функциям и спринтам.

Дата составления: 2026-05-29 · Версия документа: 1.0


Часть I · Роли и зоны ответственности

Роль Зона ответственности Решает вопросы
PM (Product Manager) Стратегия, приоритеты, метрики, R&D Что строим и зачем · в каком порядке · что измеряем
PO (Product Owner) Бэклог, спринт-планирование, acceptance Что войдёт в ближайший спринт · готов ли инкремент
UX/UI Designer Паттерны, иерархия, motion, доступность Как это выглядит и ведёт себя · WCAG
Engineering Frontend Реализация, build, performance, тесты Как это собрано · скорость · стабильность
Trust & Content Editor Корректность данных (виза/налог/медицина), свежесть, верификация Какие источники · кто проверяет · когда обновляем
Privacy & Compliance GDPR, privacy-claims, юрисдикции, opt-in/opt-out Что собираем · от кого согласие · как удалить
Growth & Marketing Активация, retention, SEO/SSG, дистрибуция Откуда трафик · что отвращает · что удерживает
Data & Analytics Телеметрия, воронки, A/B-эксперименты Что произошло · почему · сработала ли гипотеза
AI/ML Engineer Реальный LLM, prompt engineering, серверный прокси Где AI добавляет ценность · как недорого
DevOps / SRE Vercel, CI/CD, мониторинг, стоимость инфры Зелёный ли деплой · сколько стоит · масштаб
Accessibility WCAG 2.2 AA, клавиатура, screen reader, контраст Доступно ли всем · регулярный аудит
Localization Lead RU/EN и далее · копирайт · юридические нюансы по регионам На каком языке · кто переводит · что меняется по локали
Customer Success (с запуска) Жалобы, гайды, обновления, community Где спотыкаются юзеры · что им помочь сейчас

Для каждого пункта плана ниже помечены владельцы.


Часть II · Текущее состояние · честный срез

Что сильно

  • Premium-типографика (Lora), благородный dark theme — выше среднего по рынку
  • Architecture-on-the-edge: статика на Vercel CDN → масштабируется по concurrency до 100K+ trivially
  • Privacy-first by design: данные только в localStorage
  • Sprint 7 закрыт: esbuild build, CI (GitHub Actions), 10 smoke + 15 unit, RC_LOG
  • Sprint 8 закрыт: pull-to-refresh защита, единый счётчик, wrap-ряды, единый scroll-model, install-кнопка, реальные настройки + тема

Что слабо

  • Card-stacking на всех экранах — плоская иерархия, нет primary action
  • Информация без цели — метрики и числа без объяснения «зачем мне это»
  • Нет journey-сигнала — какой шаг следующий
  • Параллельные источники истины — Today и Wellbeing независимо ведут чек-ин
  • Кнопки-обманкиwindow.claude в QnA, пустые onClick={() => {}}
  • Нет аналитики — слепота на проде
  • Данные асимметричны — 16 городов в атласе, 3 с глубокими досье
  • AI-позиционирование не совпадает с реальностью (keyword search ≠ LLM)

Часть III · План по экранам

Формат: JTBD (зачем юзеру) → владельцытекущеецелевоеконкретные правкизависимости.

Э1 · Сегодня (today.jsx)

  • JTBD: «Я открыл приложение — что мне делать сегодня?»
  • Владельцы: PM, UX, Engineering
  • Текущее: 7-9 карточек стеком, пульс из 5 колец, приоритет-задача, климат, финансы, чек-ин, AI-эмбед. Плотный дашборд.
  • Целевое: ОДИН primary action на экране · hero countdown · одна следующая задача · одна insight-карточка · остальное (пульс, климат, финансы) — drill-down через tap.
  • Правки:
    • 🔴 «детали →» в подвале пульса (:216) — сделать кликабельным или убрать (выглядит как ссылка)
    • 🔴 Тап по конкретному кольцу пульса → детальный экран этой метрики, а не общий Profile
    • 🟡 Hero countdown укрупнить, остальное свернуть в expandable
    • 🟡 Action Loop: чёткое «Сегодня важно: …» с одним действием
  • Зависимости: Design System (Sprint 9), IA-решение (Sprint 10)

Э2 · Локации / Атлас (atlas.jsx)

  • JTBD: «Какие города реально подходят мне?»
  • Владельцы: PM, UX, Content Editor, Data
  • Текущее: 16 локаций в plain-листе, фильтры (море/влажность/AQI/ЖКТ/EU), match-score рассчитывается, шорт-лист.
  • Целевое: Journey-aware ранкинг с объяснением «почему этот город подходит ВАМ» (атопия + гастро + бюджет). Деление: «Топ для тебя» (3) → «Похожие» (5) → «Все» (collapsed). Бейджи глубины данных (полное досье / только сводка).
  • Правки:
    • 🟡 Бейдж «глубокое досье / краткая сводка» на карточках (3 vs 13 локаций)
    • 🟡 На каждой карточке — 1-2 строки объяснения «совпало по: атопия, бюджет, безвиз»
    • 🟡 Сортировка по умолчанию = «match для меня», а не общий score
  • Зависимости: Content pipeline (15+ городов с глубокими досье), Design System

Э3 · Досье города (location.jsx)

  • JTBD: «Подходит ли мне ЭТОТ город?»
  • Владельцы: Content Editor, UX, Engineering
  • Текущее: 13 секций (климат, виза, налоги, медицина, гастро, расходы, школы, ВНЖ, права, риски, …). Длинная страница с табами.
  • Целевое: Hero-summary (топ-3 риска и топ-3 плюса под МОЙ профиль) → секции через tab/sheet, не «полотно».
  • Правки:
    • 🔴 :443 «детали →» корзины → nav.goto('basket', { id: l.id })
    • 🔴 :509 «веса →» → открыть Compare с weights sheet
    • 🔴 :508 «по весам семьи Π» → «по вашим весам» (личный артефакт)
  • Зависимости:

Э4 · Сравнение (compare.jsx)

  • JTBD: «Между 2-3 городами — что выбрать?»
  • Владельцы: UX, Engineering
  • Текущее: Hero «лидер сейчас» + swipe-cards по каждому городу + weights sheet + gastro-справочник + devil's advocate.
  • Целевое: Без больших изменений — лучший экран сейчас. Добавить экспорт сравнения (PDF/share).
  • Правки: 🟡 export to PDF/image для шаринга (Growth-канал)
  • Зависимости:

Э5 · Болезни и климат (conditions.jsx)

  • JTBD: «Какой город лучше для моей атопии/СРК?»
  • Владельцы: Content Editor, Trust, UX
  • Текущее: Каталог болезней (атопический дерматит, СРК, ринит, экзема рук), для каждой — top-3/bot-3 локаций по climate-score.
  • Целевое: Сохранить как есть. Добавить отдачу профильных болезней юзера в Today как insight.
  • Правки:
    • 🟢 :117 defensive fallback «Функция скоринга не загружена» — мёртвая ветка, убрать
    • 🟡 Расширить каталог: эндокрин (диабет 1/2 типа), кардио (гипертония)
  • Зависимости: Trust-валидация PMID-источников

Э6 · План (roadmap.jsx)

  • JTBD: «Что мне делать в следующие 12 месяцев?»
  • Владельцы: PM, UX
  • Текущее: Kanban с 6 swimlanes (Документы / Жильё / Логистика / Финансы / Здоровье / ЖКТ) + рекомендации под профиль + редактор задач.
  • Целевое: Плоский kanban → timeline с вехами. Горизонтальная ось «T-12 → T-0 → T+3», swimlanes — drill-down. Добавить генерацию задач под выбранный город из его досье (если в досье требуется апостиль свидетельства — задача появляется автоматически).
  • Правки:
    • 🟡 «РАЗДЕЛ 04» → убрать (жаргон)
    • 🟡 «T-9 мес» → human render (как уже сделано на Today)
    • 🟡 Timeline-view (toggle с Kanban)
    • 🟡 Auto-generate задач из profile.targetCity досье
  • Зависимости: Design System, Content schema v2 (досье хранят рекомендуемые задачи)

Э7 · AI / Чат (chat.jsx)

  • JTBD: «У меня вопрос, нужен ответ в контексте моей ситуации»
  • Владельцы: PM (позиционирование), AI/ML, Content Editor
  • Текущее: Smart keyword search по 307 Q&A с loc-boost и audience-boost. Источники, кнопки «В план» и «Добавить в базу».
  • Целевое (P2): Реальный Claude API через серверный прокси (Vercel Edge Function), RAG по досье + профилю. Honest позиционирование сейчас.
  • Правки:
    • 🟡 Сейчас: переименовать «AI-Компаньон» → «Поиск по базе знаний» (честность)
    • 🟡 Потом (Sprint 15): Claude API через прокси с rate-limit и prompt caching
  • Зависимости: AI/ML стратегия · бюджет на API · серверный прокси

Э8 · База знаний (qna.jsx)

  • JTBD: «Прямой поиск по конкретной теме (визы, банки, налоги)»
  • Владельцы: UX, Content Editor
  • Текущее: 307+ Q&A по 13 категориям, профильная подсветка «для меня», кнопка «Спросить AI».
  • Целевое: Убрать кнопку-обманку до настоящего AI. Сделать ленивую загрузку (P0-bandwidth fix).
  • Правки:
    • 🔴 «Спросить AI» (:108) → удалить кнопку ИЛИ заменить на честный response из той же базы поиска. Сейчас всегда «Claude API недоступен» — обман пользователя.
    • 🟡 Lazy-load qna.js (вынести из бандла — 310 KB gzip!)
  • Зависимости: Performance refactor (Sprint 11)

Э9 · Самочувствие (wellbeing.jsx)

  • JTBD: «Я в каком состоянии физически и эмоционально? Как мне помочь себе?»
  • Владельцы: PM, UX, Engineering
  • Текущее: 6 фаз релокации с инструментами, ежедневный чек-ин (6 шкал), журнал, дневник пары, симптом-трекер, рефлексия. Параллельно с Today чек-ином — отдельный store.
  • Целевое: Единый источник истины для чек-ина. Today пишет в checkin:log, Wellbeing читает оттуда же и показывает историю. Один scale model.
  • Правки:
    • 🔴 АРХИТЕКТУРНАЯ: Объединить checkin:log (Today) и wb:mood/wb:history (Wellbeing). Today — quick entry. Wellbeing — extended journal по тем же датам.
    • 🟡 Phase auto-detect из daysLeft, не выбор пользователя
  • Зависимости: Engineering refactor (один store, миграция данных существующих юзеров)

Э10 · Финансы (finance.jsx)

  • JTBD: «Сколько мне это будет стоить и хватит ли денег?»
  • Владельцы: PM, Engineering, Trust
  • Текущее: Monte Carlo 12-60 мес, транзит капитала, ROI-калькулятор, FX-курс из заглушки.
  • Целевое: Реальный FX из надёжного источника (cbr.ru через Edge Function с кешем 1h).
  • Правки:
    • 🟡 FX endpoint: vercel.json rewrite /api/fx → Edge Function проксирует cbr.ru/openexchange, кеш 1h
    • 🟡 Убрать «заглушка» Tag когда реальный курс есть
  • Зависимости: DevOps (Edge Function)

Э11 · Я / Профиль (profile.jsx)

  • JTBD: «Кто я в этом приложении · мои данные · контроль»
  • Владельцы: PM, UX, Privacy
  • Текущее: Identity, family, health, finance, privacy actions, multi-profile, danger zone. Карточка «О приложении» + Диагностика.
  • Целевое: Чистый разделение «кто я» (identity) от «как работает приложение» (Settings). Карточку Диагностика — за debug-флаг (не показывать обычным юзерам).
  • Правки:
    • 🔴 Шестерёнка ⚙ топбара (:72) — onClick={() => {}}nav.goto('settings')
    • 🟡 Toggle питомцев (:204) — однонаправленный (только убрать). Сделать двунаправленным или вынести в форму «добавить питомца».
    • 🟡 alert/prompt → Sheet'ы (:57,59,305,315,433,437) — нативные диалоги выпадают из дизайна.
    • 🟡 Диагностика — спрятать за ?debug=1 или long-press на версии. Обычный юзер видит «6 ошибок» — подрыв доверия.
  • Зависимости: Design System (Sheet pattern), Privacy review

Э12 · Настройки (_stubs.jsx → ScreenSettings)

  • JTBD: «Настроить под себя приложение»
  • Владельцы: UX
  • Текущее: Тема (тёмная/светлая), курс ₽/$, язык-инфо. Реализовано в Sprint 8.
  • Целевое: Добавить язык RU/EN переключатель когда есть локализация. Add notifications opt-in (когда web-push реализуем).
  • Правки:
  • Зависимости: Localization, Notifications

Э13 · Документы (Docs) — НЕРЕАЛИЗОВАН

  • JTBD: «Все мои сертификаты, апостили, выписки в одном месте — экспорт когда надо»
  • Владельцы: PM, UX, Privacy
  • Текущее: Зарегистрирован маршрут /docs, заглушка «Vault для апостилей». В UI нет точки входа. План уже считает «Документы 0/3» в swimlanes Plan — обещание есть, реализации нет.
  • Целевое: Полноценный Document Vault. Список документов с категориями (визы, медицина, образование), статусом (нужно / в процессе / готово), сроками, файлами (превью + ссылка). Файлы НЕ хранятся (privacy-first) — только метаданные и пользовательская ссылка на свой Google Drive / Telegram saved messages.
  • Правки:
    • 🟡 Sprint 14: реализовать ScreenDocs полноценно с категориями и связью с Plan
    • Связь: задача в Plan «Апостиль свидетельства» → линк на Documents → запись с превью статуса
  • Зависимости: Plan schema extension, Privacy review (что хранить локально)

Э14 · Онбординг (onboarding.jsx)

  • JTBD: «Расскажи приложению о себе за 2 минуты — чтобы получить персональную ценность»
  • Владельцы: UX, PM, Growth
  • Текущее: 8 шагов (welcome, name, tags, family, health, finance, target, ready). Drafts persist в localStorage. Install-кнопка на welcome.
  • Целевое: Сократить required-шаги до 2 (name + tags), остальное opt-in после первого «Сегодня». Добавить opt-in аналитики как явный шаг (privacy-first прозрачность).
  • Правки:
    • 🟡 Перенести family/health/finance/target из required-стэка в «можно потом» через Today-CTA
    • 🟡 Шаг «согласие на анонимную телеметрию» с понятным объяснением (Privacy)
    • 🟡 Анимация прогресс-бара плавнее, copy теплее
  • Зависимости: Analytics integration

Спец-экраны: Empty / Loading / Error

  • Целевое: Единые паттерны для всех экранов. Сейчас разнобой.
  • Правки: Design System включает: <Empty icon title sub action>, <Skeleton>, <ErrorBoundary> — уже есть, формализовать в DS.

Часть IV · План по сквозным функциям

Ф1 · PWA / Service Worker / Offline

  • Владельцы: Engineering, DevOps
  • Текущее: SW network-first, manifest, install-prompt, update-flow.
  • План:
    • Web Push notifications (P2) — для критичных обновлений визовых правил по target-city
    • Background sync (P3) — отложенные действия при offline

Ф2 · RC_LOG / Диагностика

  • Текущее: Локальные логи 200 событий, ?logs=1 viewer, watchdog.
  • План:
    • Opt-in upload-эндпоинт для crash-репортов (Sprint 13, аналитика)
    • Скрыть UI диагностики за ?debug=1 (Sprint 8.2)

Ф3 · Тема (Theme)

  • Текущее: dark/light через data-theme, Settings + toggle на Today.
  • План:
    • prefer-color-scheme: media-query для авто-detect при первом старте
    • High-contrast mode (Accessibility, P3)

Ф4 · Локализация (i18n)

  • Текущее: только RU.
  • План (P3, Sprint 15-16):
    • Вынести строки из JSX в app/i18n/{ru,en}.json
    • Хук useT(key) с fallback на RU
    • Settings → переключатель RU/EN
    • EN-копи — Marketing/Localization Lead с релевантной аудиторией (англоязычные релоканты в РФ)

Ф5 · Реальный AI (Claude API)

  • Владельцы: AI/ML, DevOps, PM
  • Текущее: keyword search + кнопка-обманка window.claude.
  • План (Sprint 15):
    • Vercel Edge Function /api/ai → проксирует Anthropic API (key в env)
    • Rate-limit per session (10/hour free, расширение в premium)
    • Prompt caching через Anthropic prompt-cache feature → 80%+ экономии стоимости
    • RAG: контекст из выбранного города + профиля (анонимный)
    • Honest output: «AI-ответ может содержать ошибки, не юридический совет» disclaimer

Ф6 · FX-курс

  • Владельцы: Engineering, Trust
  • Текущее: хардкод window.FX snapshot.
  • План (P2):
    • Edge Function /api/fx → cbr.ru или openexchangerates, кеш 1h
    • Источник + дата обновления видны в UI
    • Fallback на снапшот при ошибке API

Ф7 · Карта (Map)

  • Владельцы: UX, Engineering
  • Текущее: удалён схематичный MiniMap.
  • План (P2):
    • MapLibre GL JS с self-hosted vector tiles (или ProtoMaps free tier) — works на RU-сетях
    • Пины городов из досье, кластеризация, цветовая кодировка по match-score
    • Только на Atlas как опциональный toggle (default = list)

Ф8 · Sync между устройствами

  • Владельцы: Privacy, Engineering, PM
  • Текущее: только локально (localStorage).
  • План (P3, после публичного запуска):
    • E2E-зашифрованный sync через короткий код (как Bitwarden / Signal). Юзер вводит код на втором устройстве — получает копию профиля.
    • Альтернатива: только manual JSON export/import (как сейчас) + QR-код для быстрого переноса.

Ф9 · Web Push Notifications

  • Владельцы: Engineering, Growth
  • Текущее: нет.
  • План (P3, после достижения retention baseline):
    • Opt-in после первой недели использования
    • События: «свежее обновление по визе для [твой город]», «новая задача по плану», «месяц до переезда»
    • Privacy: только локальные триггеры или анонимные топики

Ф10 · Аналитика (Privacy-first)

  • Владельцы: Data, Privacy, DevOps
  • Текущее: ноль аналитики.
  • План (Sprint 13):
    • Self-hosted Plausible ИЛИ собственный Edge endpoint /api/track
    • События без PII (см. taxonomy ниже)
    • Opt-in по умолчанию false, активация через явный шаг онбординга или Settings
    • Event taxonomy:
      • app.boot — version, platform
      • onboarding.step_complete — step_id, duration
      • onboarding.complete — total_duration, steps_skipped
      • screen.view — screen_id
      • action.task_complete — lane
      • action.shortlist_change — count
      • action.compare_view — count
      • action.dossier_open — city_id
      • action.install_prompt — outcome (accepted/dismissed)
      • error.boundary — screen, message_hash (без stack-trace с PII)
    • Воронки:
      • F1 Activation: install → onboarding_complete → 1st task complete (D0)
      • F2 Decision: shortlist≥2 → compare → target_city_set
      • F3 Retention: D7, D14, D30 return
    • Dashboard: простой self-hosted, доступ только PM

Ф11 · A/B-тестирование

  • Владельцы: Data, PM
  • Текущее: нет.
  • План (P3, после стабильной базы метрик):
    • Простой experiments.json с deterministic hash от user-id (анонимный uuid из localStorage)
    • Аналитика записывает variant_id в каждом событии
    • Тестировать: копирайт CTA, порядок onboarding-шагов, дефолтные веса

Ф12 · Контент-pipeline (наполнение городов)

  • Владельцы: Content Editor, Trust
  • Текущее: 3 полных досье (Кобулети, Поморие, Ереван), 13 в индексе с краткой сводкой.
  • План (Sprint 14, параллельно):
    • Приоритет следующих 7: Тбилиси, Белград, Будапешт, Алматы, Ташкент, Лиссабон, Стамбул
    • Каждое досье — следовать recuest.md шаблону + AJV-валидация (CI блокирует если поля missing)
    • Freshness-аудит раз в квартал (npm run audit:freshness)
    • Source tier уже реализован (official / community / secondary) — поддерживать

Ф13 · Доступность (a11y)

  • Владельцы: Accessibility, UX
  • Текущее: базовый aria-label на IconBtn, не аудировалось.
  • План (P3):
    • WCAG 2.2 AA audit (контраст, keyboard nav, screen reader)
    • Focus management в Sheet'ах
    • Динамические aria-live для async-загрузки
    • Skip-link на Today

Ф14 · Performance

  • Владельцы: Engineering, DevOps
  • Текущее: bundle 1.6 МБ (~460 KB gzip), Time-to-Interactive ~3-4s на 4G.
  • План:
    • Sprint 11: lazy-load qna.js (вынести из бандла) → −310 KB первой загрузки
    • Sprint 11: code-split по экранам (когда перейдём на ES modules)
    • Sprint 11: minify: true в build.mjs для prod
    • Sprint 11: иммутабельные хеши в именах ассетов (app.[hash].bundle.js)
    • Sprint 12: Web Vitals мониторинг через RC_LOG

Часть V · Сквозные инициативы

И1 · Design System (Sprint 9 · P0)

  • Tokens: typography scale, spacing scale (4/8/12/16/24/32/48), elevation, motion timings, semantic colors
  • Component library audit: инлайн-стили → классы, канонизация Card/Button/Input/Pill/Sheet/Tag
  • Motion-язык: 3 durations, 1 easing, стандартные переходы
  • Empty/Loading/Error templates: один паттерн
  • Icon-set: финализировать

И2 · IA & Navigation (Sprint 10)

  • 4 таба вместо 5: Сегодня / Атлас / План / Я. AI — FAB или контекстный, не отдельный таб
  • Journey-сценарии: Just exploring / Have a city / Comparing / In execution / Settled
  • Primary action per screen

И3 · Полировка доверия (Sprint 8.2 · P0)

  • 🔴 Все кнопки-обманки убрать: пустые onClick, window.claude
  • 🔴 Личные следы убрать: «Π», «$2400» в index.js:502
  • Жаргон на Plan: «РАЗДЕЛ 04» → удалить, «T-X» → human
  • Диагностика → за ?debug=1

И4 · Privacy-first аналитика (Sprint 13)

И5 · Real LLM (Sprint 15)

И6 · Content pipeline (Sprint 14, параллельно)

И7 · SEO/SSG публичные городские страницы (Sprint 16)

  • JTBD юзера: «Гуглю "переезд в Тбилиси", нахожу нас»
  • Каждый город → статическая HTML-страница с мета-тегами, OG-image, structured data (schema.org Place)
  • Google индексирует → органический трафик = главный канал на 1M

И8 · Freemium монетизация (Sprint 17)

  • Что бесплатно: атлас, базовое сравнение, план, чек-ин, чат с базой
  • Premium ($5-10/мес): реальный AI без лимитов, экспорт планов в PDF, sync между устройствами, приоритетная поддержка по визам
  • B2B (отдельно): «релокация-сервис» белого лейбла для HR-отделов компаний (зарплата AI-агента ниже стоимости найма консультанта)

Часть VI · Метрики успеха

Категория Метрика Цель (3 мес) Цель (12 мес)
Activation % завершивших онбординг 60% 75%
Activation % выбравших target_city за 7 дней 30% 50%
Engagement D7 retention 25% 40%
Engagement D30 retention 10% 20%
Value Avg # городов в шорт-листе 2.5 3.5
Value % открывших полное досье 40% 60%
Performance TTI на 4G (p75) < 4s < 2.5s
Performance Crash-free sessions 99% 99.9%
Trust NPS proxy (если опросим) +20 +40
Growth Органический трафик (% от total) 20% 60%

Часть VII · Последовательность спринтов

Sprint Название Содержание Владельцы Критерий выхода
8.2 Cleanup критических багов QnA AI-кнопка, шестерёнка Profile, 2 пустые кнопки location, «Π/$2400», Plan-жаргон, Диагностика за ?debug=1 Eng, UX Все 🔴 из аудита закрыты
9 Design System Tokens, компонент-аудит, motion, empty/loading/error patterns UX, Eng DS-doc + storybook-like reference
10 IA & Navigation 4 таба, FAB-AI, journey-mapping PM, UX Карта navigation утверждена
11 Performance lazy qna.js, minify, immutable hashes, Web Vitals в RC_LOG Eng, DevOps TTI 4G < 4s, bundle < 200KB initial
12 Today + Атлас redesign Primary action, progressive disclosure, journey-aware атлас UX, Eng Юзер-тесты с 5+ человек
13 Аналитика Self-hosted Plausible или Edge endpoint, event taxonomy, dashboards Data, DevOps, Privacy Воронки видны в dashboard
14 Документы + Контент ScreenDocs полноценный · 7 новых городских досье UX, Content 10 городов с глубокими досье
15 Real AI (Claude) Edge Function-прокси, rate-limit, prompt caching, RAG AI/ML, DevOps AI-чат отвечает на 50 тест-вопросах
16 SEO/SSG + EN Static city pages, OG-images, EN-локализация core-flow Growth, Localization, Eng Google индексирует, EN core working
17 Freemium + B2B Stripe-интеграция, Premium-фичи, B2B-pitch deck PM, Eng Первая платная подписка

Параллельно постоянно: Trust-валидация данных, freshness-аудит, a11y, security review.


Часть VIII · Riski и зависимости

Риск Митигация
Vercel Hobby лимиты (100 GB/мес) Sprint 11 lazy + Pro plan ($20/мес)
Anthropic стоимость на масштабе Sprint 15 prompt caching + rate-limit + freemium-лимит
RU-сети блокируют CDN Уже решено self-host (vendor/), для карты MapLibre — self-host tiles
Корректность визовых данных (юр. ответственность) Trust Editor + disclaimer «не юридический совет» везде
AI hallucinations Disclaimer + ссылки на источники + ручная проверка топ-100 ответов

История изменений документа

  • 1.0 (2026-05-29) — первая версия, основана на аудите v1.0.77