supersam/docs/superpowers/specs/2026-04-14-role-switch-and-...

38 lines
2.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Role Switch And Production Copy Design
**Goal:** Убрать из пользовательского интерфейса явную demo/PWA-подачу, добавить служебный сценарий быстрого входа по специальному email с выбором роли и подготовить аккуратную клиентскую ссылку для показа выбора доставки.
## Scope
- Обычный рабочий OTP-вход остается основным сценарием.
- При вводе специального email `roles@local` логин переключается в локальный служебный режим:
- пользователь выбирает роль `manager`, `logistician` или `driver`;
- OTP не требуется;
- приложение авторизует пользователя через локальный fallback-профиль для выбранной роли.
- Из интерфейса убираются тексты и панели, которые прямо продают demo/PWA-режим.
- Для клиентского показа появляется локальный showcase-token с понятными слотами:
- завтра / послезавтра;
- до обеда / после обеда.
## UX Decisions
- Служебный email не скрывается глубоко в коде: он поддерживается формой логина напрямую, чтобы им было удобно пользоваться на встрече.
- Тексты в логине и дашборде должны звучать как рабочий продукт, без слов `demo`, `демонстрация`, `PWA-версия`, `offline demo`.
- Быстрый вход по роли оформляется как сервисный режим доступа, а не как обучающий блок.
- Клиентская showcase-ссылка должна выглядеть как реальная страница подтверждения доставки, а не как технический мок.
## Data Approach
- Для служебного role-switch входа используются уже существующие локальные профили ролей.
- Для showcase-клиента используется локально собранный invitation payload, без вызова Supabase.
- Боевой Supabase flow не меняется и продолжает обслуживать обычные invitation token.
## Validation
- Тесты на логин покрывают:
- обычный OTP-copy без demo-текста;
- служебный режим по `roles@local`;
- выбор роли без OTP.
- Тесты client flow покрывают showcase invitation.
- После правок прогоняются таргетированные тесты UI и auth.