ProfitGate
Дорожная карта продукта

Дорожная карта ProfitGate

Весь проект на одной странице: 5 волн от честной базы до подписанного паритета с прототипом. Статус единый для всех и обновляется онлайн — галочки и проценты тянутся из Linear автоматически, страница сама переспрашивает источник раз в минуту.

5 волн (0-4) 6 треков (A-F) 22 задачи + Phase 7B (маппинг) Волна 1 пройдена — GO

Общий прогресс

0 из 22 выполнено · 0 в работе · 0%
выполнено в работе в плане Источник: Linear, синк каждые 10 мин

Загрузка статуса…

A · Фронтенд B · Безопасность C · Тесты D · Бэкенд E · Данные / доки F · Инфра

Этапы

прогресс из общего источника статуса (Linear)
0
Честная база
матрица паритета, эталоны, скелет тестов
0/3
EKF2-48
E
Переразметить матрицу паритета: убрать сплошной «pass», поставить честные грейдыв работе
02:Ф1 · 06:E1
E
Карантин пустых эталонов-скриншотов + рубрика грейдовв работе
06:E3
C
Заложить скелет поведенческого теста (test.fixme)в работе
02:Ф2 · 06:C1
Выход: честная матрица из 32 экранов, рубрика грейдов, каркас вратаря.
1
Закрытие 6 блокеров фронтенда и доступа
TEST-01 + AUTH-01 + UI-пачка · условный GO
0/6
EKF2-49GO
A
Защита команд от ложного успеха CMD-01в работе
02:Ф0 / Ф5
A
Живые ссылки на главной HOME-01в работе
02:Ф0 / Ф4
A
Действия по строкам, а не только по первой ROW-01в работе
02:Ф5
A
Навигация: меню из манифеста, фильтр по правам NAV-01в работе
02:Ф0 / Ф4
A
Доступ и роли: middleware + RBAC AUTH-01в работе
02:Ф6 · 06:B1 · A+B
C
Тест-вратарь поведения + Playwright в CI TEST-01в работе
02:Ф9 · 06:C2/F1 · C+F
Выход: снят NO-GO. 7/7 поведенческих осей зелёные под жёстким CI-гейтом (T12).
2
Backend-блокер, токены, потоки, безопасность
бренд-цвет фиксируется до съёмки эталонов
0/6
EKF2-50
D
Temporal-воркер + ApprovalSLA + 24ч-постфактум согласованийв работе
06:D1
A
Бренд-цвет и токены (#C00000), убрать мёртвый бирюзовый — до съёмки эталоновв работе
02:Ф3
A
Бизнес-потоки, формы, состояния, статусыв работе
02:Ф5 / Ф7
C
Покрытие Go, Postgres-тесты в CI, домен 98%в работе
06:C4
B
Обновить Go, gosec, security-заголовкив работе
06:B3
F
Сканеры уязвимостей + Dependabot + линтерыв работе
06:F2 / F3
Выход: единый источник дизайна, backend держит бизнес-логику, можно снимать эталоны.
3
Богатые экраны, графики и визуал
съёмка эталонов и визуальная регрессия
0/4
EKF2-51
A
Богатые экраны closing / sanctions / returns / warehouse + AIв работе
02:Ф4 · 06:D2 · A+D
A
Графики echarts + визуальная регрессия + адаптивв работе
02:Ф8
D
Разбить god-file router.go, де-дуп audit, state-машинав работе
06:D3 / D4
E
README под Phase 7B, чистка мёртвого кода и жаргона, CSVв работе
06:E2 / E4
Выход: экраны как в прототипе, графики на месте, визуальный сьют зелёный по порогу.
4
Финальная приёмка
честный зелёный паритет, подпись образов
0/3
EKF2-52
A
Полный e2e + доступность + негативный контрольв работе
02:Ф9 · 06:C6 · A+C
A
Матрица → честный зелёный: каждая строка несёт имя теста + ссылку на скриншотв работе
02:Ф10 · 06:E1 · A+E
F
SBOM + подпись образов + SHA-pinning + rollback миграцийв работе
06:F4
Выход: подписанный паритет с уверенностью ≥95% строго из доказательств.
Источник статуса: status.json

Решения

зафиксировано, чтобы не перерешивать
  • Загрузка…

Phase 7B - умный маппинг источников

отдельный эпик EKF2-46/47, идёт параллельно волнам
7B
Детальное изучение источников и умный маппинг
ветка codex/phase-7b-smart-mapping-execution · бэкенд решает, ИИ объясняет
0/10
EKF2-46/47
D
Доменная модель статусов маппинга + детерминированные риск-блокировки (деньги/приватность/качество)в работе
smartmapping.go · 90.8% тестов
D
Бэкенд-шлюз к ИИ: OpenRouter (gemini-3.5-flash), fail-closed, ZDR, без фолбэковв работе
adapter/openrouter · 94.7% тестов
D
Хранилище и миграция БД: кандидаты, пакеты доказательств, бюджет-лимитыв работе
adapter/postgres + migration 20260602
D
Сборщик доказательств + входной гейт качества данных (Task 3A)в работе
usecase/smartmapping/evidence_builder.go
D
ИИ-предложитель маппинга + API + RBAC, политики, реестр промптов (Task 4/4A)в работе
spec: 2026-06-02 · не начато
E
Полный слой проверки качества данных DQ/dbt (Task 8)в работе
spec: 2026-06-02 · не начато
E
Контролируемые выборки L3/L4: согласование scope, хранение, удаление (Task 8A)в работе
spec: 2026-06-02 · не начато
A
Кокпит доказательств - экран маппинга (только чтение бэкенд-моделей) (Task 7/10)в работе
spec: 2026-06-02 · не начато
D
Готовность stage-адаптера + stage-only флаги (Task 9)в работе
spec: 2026-06-02 · не начато
C
Финальное тестирование, внешние ревью, CI-гейт, PR (Task 11)в работе
spec: 2026-06-02 · не начато
Выход: аудируемые решения по маппингу источников на бэкенде, доказательство решает - ИИ объясняет. Прод-решения и деньги во фронте не считаются.

Как сверяется визуальная часть

прототип - эталон, проверка машинная

Почему «прототип есть, а проблема на проблеме». Корень не в копировании, а в том, что проверка была слепой: тест-вратарь parity.spec.ts - дымовой, он структурно не ловил расхождений с прототипом, а матрица стояла сплошным «pass». Зелёный свет ничего не значил. Новая модель чинит саму проверку.

  • Эталон - сам прототип: скриншот снимается с prototype/fm-ls-profit/bundle.html.
  • Попарный пиксельный диф: Playwright toHaveScreenshot, 32 экрана, desktop 1440×1000 + iPhone 15, в пределах порога.
  • Страж непустых: пустой или слишком маленький скриншот отвергается.
  • md5-уникальность: не сравниваем все экраны с одним эталоном.
  • Порядок: бренд-цвет и токены (Волна 2) фиксируются до съёмки эталонов (Волна 3).
  • Никаких безусловных «pass»: каждая зелёная строка несёт имя теста + путь к скриншоту.

Это обязательный критерий приёмки: независимый Verifier на каждом фронтенд-шаге не пропустит шаг без визуального доказательства. Сборка идёт через mock-fidelity (скриншот прототипа = макет).