# Spec: Roadmap post-Plan 5 — birdseye до production launch

**Версия:** 1.0
**Дата:** 11.05.2026
**Автор:** Claude Code (skill: superpowers:brainstorming)
**Заказчик:** Дмитрий
**Статус:** черновик, ждёт review заказчика
**Базовый HEAD:** `48f27b4` (Plan 5 specs+plans on origin/main; реализация на ветке `plan5-frontend-projects`)
**Отношение к v1.0:** [roadmap-to-production-design.md](2026-05-10-roadmap-to-production-design.md) v1.0 (320 строк, deep-reference) остаётся в силе для детализации Sprint 5–9; этот документ — birdseye-обзор поверх v1.0 с учётом supplier-линии Plans 1–5 и факта закрытия Sprint 0 / Sprint 4

## 1. Что уже закрыто (state на 11.05.2026)

- **MVP закрыт 09.05.2026** (`830a652`): 13/13 экранов handoff покрыты, Pest/Vitest зелёные
- **Sprint 0 push разблокирован**: fine-grained PAT `Workflows: Read & Write` активен
- **Sprint 4 «Audit tail» ✅** (`ffe34e1`): keyset pagination в DealController + 8 Vue split'ов + bundle analyzer + knip
- **Plans 1+2+2.5+2.6+3+4 supplier integration ✅** merged на origin/main `48f27b4`: schema v8.11→v8.19 (62 базовые таблицы / 117 индексов / 39 RLS), 7-ступенчатый pricing-tier биллинг, CSV reconcile hourly, auto-pause, 3 admin/tenant UI экрана
- **Plan 5 «Frontend Projects UI + Backend CRUD»** в работе на ветке `plan5-frontend-projects` (12 Tasks TDD; design+plan на main, реализация в progress)

## 2. Линейная лента «от Plan 5 до public launch»

```
[NOW] Plan 5 «Frontend Projects UI» (12 Tasks, in progress)
   │
   ▼
[Sprint 5] Pre-prod tooling local (0.5 нед.)
   • Semgrep SAST + Semgrep MCP
   • GitHub Dependabot (.github/dependabot.yml)
   • Trivy script + workflow stub (активация в Sprint 9)
   • plan готов: docs/superpowers/plans/2026-05-10-sprint5-preprod-tooling-plan.md
   │
   ▼
[Sprint 6] Post-MVP backend (1.5 нед.)
   • Reports backend providers (Managers/Sources/Billing) + file download endpoint
   • AdminTenantDetail доделки (inn/contact_phone/legal_address; user_roles)
   • Notification integrations (new_device_login, deep-link bell, ЮKassa webhook scaffold)
   • Phase-A plan готов: docs/superpowers/plans/2026-05-10-sprint6-phase-a-reports-plan.md
   │
   ▼  ←─── жёсткая зависимость от Б-1: если ещё не закрыт — пауза
[Sprint 7] YC infrastructure (1–1.5 нед., требует Б-1)
   • Compute (2 VM: web + db replica) + Managed PG 16 + Managed Redis
   • Object Storage (reports) + Container Registry (YCR)
   • Sentry self-hosted (отдельная VM, sentry.liderra.ru)
   • Домен liderra.ru + Let's Encrypt SSL
   │
   ▼
[Sprint 8] CI/CD + Б-1-features (1.5–2 нед.)
   • CI deploy: GitHub Actions → docker build → YCR push → ssh deploy
   • Secrets: Yandex Lockbox (DB / ЮKassa / Yandex 360 / Sentry DSN)
   • Unisender Go SMTP-relay (реальные креды)
   • SSO Yandex 360 (#6) + auth-middleware на /api/admin/*
   • Лендинг (по лендинг/TZ_landing_v1_0.md) + JivoSite виджет
   │
   ▼
[Sprint 9] Hardening + soft-launch (1–2 нед. work + 2 нед. soft-launch)
   • pg_audit + pg_anonymizer (на Managed PG)
   • Trivy полный pipeline (block на CVE high+)
   • Backup strategy + restore drill
   • Yandex Monitoring + alerting (Telegram bot default)
   • Pre-launch security review (Semgrep + Trivy + OWASP top-10 manual)
   • Pa11y на live URL
   • Soft-launch на 3–5 доверенных tenant'ах
   │
   ▼
[PUBLIC LAUNCH]
```

**Параллельная линия (Track C, external):** регистрация ООО → Б-1 / Прил. Ж юр. оферта + Политика конфиденциальности / Прил. З уведомление в РКН (152-ФЗ). Триггеры для Sprint 7 / 8 footer / 9 pre-launch.

**Deferred / non-blocking:**

- Plan 3 Tasks 1–2 (CSV discovery) — BLOCKED credentials заказчика, не на критическом пути к launch'у
- 7 новых Биз-25..31 (от Plan 4) — pre-launch review
- 5 🟦 структурных вопросов реестра — ждут заказчика
- OPEN-FE-1 (Histoire ↔ Vite 8) — non-blocking, ждёт релиз Histoire с peerDep `vite ^8`

## 3. Definition of done public launch

- Приложение развёрнуто в Yandex Cloud (compute + Managed PG 16 + Managed Redis + Object Storage + Container Registry)
- Домен `liderra.ru` + SSL активны, `*.liderra.ru` wildcard для subdomain'ов
- SSO Yandex 360 для saas-admin работает, `/api/admin/*` без auth = 401
- 0 known P0 / P1 в реестре; audit O-* закрыт или явно отложен с условием снятия
- Phase 3 tooling активен: Semgrep + Trivy + Dependabot + pg_audit + pg_anonymizer
- Pa11y на live URL = 0 violations
- Sentry self-hosted принимает события из prod
- Backup restore проверен на staging (drill пройден)
- Smoke на `staging.liderra.ru` зелёный: 5 ключевых flow (login → создать deal → import webhook → оплатить → отчёт)
- Soft-launch 14 дней без P0 на 3–5 tenant'ах

## 4. Критический путь и зависимость от Б-1

**Если Б-1 закрыт до конца Sprint 6:**

```
Plan 5 → Sprint 5 → 6 → 7 → 8 → 9 → launch
~8–11 недель от Plan 5 finish (включая 2 недели soft-launch)
```

**Если Б-1 задерживается:**

```
Plan 5 → Sprint 5 → 6 → [пауза, ожидание Б-1] → 7 → 8 → 9 → launch
Track A автономен ~2 недели; затем упор в Б-1
```

**Жёсткие зависимости:**

- Sprint 7 ⇐ Б-1 (нельзя купить YC compute / Managed PG без реквизитов ООО)
- Sprint 9 ⇐ Sprint 7 (pg_audit + pg_anonymizer только на Managed PG)
- Sprint 9 ⇐ Прил. Ж + Прил. З (нельзя запустить без РКН-уведомления и оферты)
- Sprint 8 footer ⇐ Прил. Ж (оферта в подвале лендинга)

**Мягкие зависимости:**

- Sprint 6 после Sprint 5 (Semgrep clean полезен до расширения API)
- YC quota application можно подать параллельно со Sprint 6 (до Sprint 7 старта)

## 5. Риски одной строкой

| Риск | Mitigation |
|---|---|
| Б-1 затягивается на 2+ месяца | Track A автономен 2 спринта (5+6); затем заказчик решает: ждать / перейти на ИП / физлицо |
| Юрист задерживает Прил. Ж / Прил. З | Заказчик ставит юристу deadline под закрытие Sprint 7 |
| YC quota / verification нового аккаунта долгий | Заявка подаётся параллельно со Sprint 6 |
| Pa11y на live находит violations (CDN / fonts) | Включить Pa11y в Sprint 9 acceptance до soft-launch |
| Pre-launch security review (Semgrep + Trivy + manual) находит P0 | Sprint 5 / 9 ловят 80% заранее; запас 1 неделя в Sprint 9 |
| Soft-launch выявляет UX-проблему | Плановое: 2 недели запас |
| Plan 5 finish задерживается | Sprint 5 не стартует пока Plan 5 не на main; план compose'нут так что Plan 5 = pre-requisite |

## 6. Что вне scope этого birdseye

- Детализация Sprint-задач до Task-level — см. v1.0 deep-reference или конкретные sprint-plans в `docs/superpowers/plans/`
- Plan 6+ supplier integration (если потребуются новые supplier-фичи поверх Plan 4) — отдельный brainstorm по запросу
- 5 🟦 структурных вопросов реестра — ждут заказчика
- Post-launch фичи (новые модули CRM, аналитика второго порядка, мобильное приложение)
- «Refactor ради рефактора» вне списка O-*

## 7. История версий

- **v1.0 от 11.05.2026** — birdseye обзор post-Plan 5 до public launch. Линейная лента Sprint 5 → 6 → 7 → 8 → 9 → soft-launch → public launch. Учитывает закрытые Sprint 0 / Sprint 4 и факт supplier-линии Plans 1–5. Базовый HEAD `48f27b4`.
