offplan · online
Session · conv-22

Session CONV-22

In Progresssessionconv-22

Resume Prompt

CONV-22 — большая сессия по entity model. После долгого обсуждения с Ромой/Сергеем уточнили иерархию: Client (человек с логином) → создаёт Organisation (tenant) → содержит Project → Unit. Сделали Wave 1 (bulk rename Partner→Client / Workspace→Organisation / роли с Sales-/Content- префиксами + Russian формы), Wave 1.5 (selective entity-vs-identity disambiguation, §1 переписан с диаграммой и двумя таблицами). Закоммитили (a56033a) и засинкали preview (e4f736a). Запустили Wave 2 — закончили Chunk 1 of 8 (§2 Onboarding & Auth: entry-point choice screen + Microsoft SSO в Stage 1 + Custom SSO в Stage 2/Tier 3). Chunk 1 НЕ закоммичен.

Следующее — Wave 2 Chunk 2: §3 Billing & Tier model. Это самый большой и требует полной переписки текущей «Модель 4» секции (lines ~756-800 в launch-plan-stage-1.html). В Chunk 2: 3-tier structure (T1 Simple / T2 Pro c custom domain / T3 Custom), 14-day trial period per Project, project ownership transfer flow с hard constraint «только до payment» (T), auto-demote Owner→Admin при transfer (J), drop seat-based language (M), standalone walkthrough explicit non-goal (L). Решить первым делом: commit Chunk 1 раздельно или bundle с Chunk 2.

После §3 — Chunks 3-8: §4 Access, §5 Visibility, §6 User Journeys, §7 Edge cases, Phase callouts, ADR placeholders. Sergey выбрал режим B — кусками с чек-поинтами.

Не трогай Stage 2/3/4 — только Stage 1.

Summary

Сессия по entity model. Обсудили транскрипт длинного звонка Sergey+Roman по Foundational decisions — ~22 пункта (терминология, роли, stock allocation, billing, public visibility, status changes, buyer flow, channels, SSO, tier model, ownership transfer). Sergey ответил по каждому. Главный концептуальный сдвиг — разделение Client (человек с логином) и Organisation (tenant): Client создаёт Organisation, внутри Organisation живут Projects. Wave 1 (bulk terminology rename — Partner/Workspace/role-prefixes + Russian формы, ~120 замен) и Wave 1.5 (selective entity-vs-identity disambiguation, §1 entity glossary переписан с диаграммой и двумя таблицами) — закоммичены и запушены (a56033a). Preview repo засинкан после 4 коммитов отставания (e4f736a). Запустили Wave 2 — Chunk 1 of 8 готов (§2 Onboarding & Auth: entry-point choice screen + Microsoft SSO в Stage 1 + Custom SSO Stage 2/Tier 3 mention). Chunk 1 не закоммичен. Sergey выбрал режим B — кусками с чек-поинтами после каждого §.

Changes

Decisions

Client/Organisation/Project entity model (refined hierarchy). До Wave 1 plan описывал «Partner» как «юр. лицо-плательщик — корневая сущность» — Sergey изначально предложил Partner→Client. Но в середине Wave 1.5 (после моего вопроса «есть понимание где organisation а где проект а где workspace») Sergey уточнил: «есть клиент и он создает организацию в которой есть проект». Это значит Client = человек с логином (login identity), а Organisation = tenant (бизнес-сущность) — две разные вещи. Это стандартный SaaS B2B паттерн (Slack: User → Workspace; Notion: User → Workspace). Wave 1.5 selective re-rename: ~25 мест где «Client» означало entity → Organisation; остальные ~29 мест где Client означал person — оставлено. Workspace вообще исчез как термин (был ромин misnaming).

Microsoft OAuth добавляется в Stage 1. Sergey: «все наши кампании сидят на Майкрософт». Auth methods после Wave 2 Chunk 1: Google + Microsoft + email/password (3 primary methods). Custom SAML/OIDC SSO — Stage 2 в Tier 3 (Enterprise) feature. Отвергнуто: оставить только Google + email/password как было в ADR 0005 v1.

14-day trial period per Project + hard constraint «transfer только до payment». Sergey прямо подчеркнул T: «надо избежать передачи акка после оплаты. Только до в течении бесплатного периода». Это блокирует юридически сложный сценарий пост-payment ownership change. Студия создаёт проект для девелопера → 14 дней trial → либо студия оплачивает либо передаёт ownership девелоперу (двухсторонняя верификация code) → после payment transfer-button disabled навсегда. Auto-demote: Owner studio → Admin при transfer accept; новый Owner может demote/remove studio дальше.

Status-change form unified с buyer-link auto-creation (D+E как один механизм). Объединение пунктов D (status protection) и E (buyer↔unit linkage). Email-lookup при заполнении статус-формы → match existing Buyer record this Sales Agent работает с (через token-link history) → auto-link Buyer to Unit OR create new. Триггеры: Available→Reserved, Available→Sold, Reserved→Sold (с pre-fill «same buyer?»). Полная спека отрисована в conversation (data model, edge cases, permissions). Рассматривалось как 2 отдельных механизма (status form + manual unit-buyer link в карточке) — отвергнуто как излишняя ручная работа.

3-tier pricing: T1 Simple / T2 Pro / T3 Custom. T1 — visual-only, без агентств/рассылок, ~$300/мес («должно казаться дёшево»); T2 — T1 + agencies/external agents + email blasts + custom domain; T3 — Enterprise (annual / кастомные фичи / Custom SSO). Custom domain в T2 не T1 (Sergey коррекция от моего initial предложения T1). Standalone walkthrough product (соперничество с Kuula $20/mo) — explicit non-goal: «не наше, нахрен», направляем такие запросы в Kuula. Отвергнуто: seat-based pricing — Sergey: «места это не надо, точно нет».

Wave 2 chunked approach (8 chunks) с чек-поинтами. Sergey выбрал «Вариант B» из двух вариантов (одним заходом vs кусками). Chunks: §2 Onboarding (done) → §3 Billing → §4 Access → §5 Visibility → §6 User Journeys → §7 Edge cases → Phase callouts → ADR placeholders. После каждого chunk я делаю отчёт и жду «дальше» / правки. Альтернатива (одним заходом) — быстрее по wall-clock, но без shanса заметить если ушёл не туда в раннем разделе.

Next Steps

  1. Wave 2 Chunk 2 — §3 Billing & Tier model (lines ~756-800 в launch-plan-stage-1.html): полный rewrite «Модели 4» с 3-tier структурой (T1 Simple / T2 Pro c custom domain / T3 Custom), 14-day trial period per Project, ownership transfer flow с T constraint (только до payment), auto-demote Owner→Admin при transfer, drop seat-based language, standalone walkthrough explicit non-goal. Размер: L.
  2. Перед Chunk 2 — решить: commit Chunk 1 раздельно или bundle с Chunk 2.
  3. Wave 2 Chunks 3-8: §4 Access (Internal/External Sales Agent split, Permission Matrix Actions column, Cross-org isolation, View-as-Agent режим, Internal pool fix), §5 Visibility (PIN-protected как 4-й preset + Custom cleanup), §6 User Journeys (status-form D+E + request-more F + channels G), §7 Edge cases, Phase callouts (1.2/1.4/1.7/1.10/1.11), ADR placeholders.
  4. После Wave 2 complete — preview sync round 2, отправить ссылку Роме на review.
  5. ADR 0005 v3 — добавить Microsoft + Custom SSO scope (отдельный файл в docs/decisions/, либо update existing).

Open Questions

Context for next session