offplan · online
Session · conv-31

Session CONV-31

Donesessionconv-31

Resume Prompt

Wave 2 closed (8/8 chunks) — CONV-31 closed Chunk 8 end-to-end (5 ADRs 0008-0012 + 0005 v3 + ~29 callout pointer fixes + changelog v4.14 + preview sync). Plan + commits: plans/stage1-chunk-8-adr-placeholders.md + 4 commits в main (e7834f3 / c09d5f4 / 683ffd3 / 9da5635) + 1 в preview (335f559).

Next: 4 sub-plan ratifications в priority order. Start с /plan plans/permission-and-tenancy-model.md (P0, anchors ADRs 0009 + 0010 которые мы только что написали — tech-level architecture на основе ratified decisions: DB schema, RBAC matrix, API contracts для Phase 1.3.1-1.3.12). Sub-plan currently status: stub. После него → /plan plans/onboarding-trial-mode.md (P0, anchors ADR 0008 — pricing/limits/naming finalisation; depends on hosting cost projection Phase 1.7.13 + Roman pricing input). Затем P1 sub-plans: legal-multi-party-framework (jurisdiction-dependent, pending Cyprus confirmation) и buyer-profile-and-presentation (anchors 0012 + Phase 1.11.1-8).

Cyprus jurisdiction остаётся «active review» (CONV-31 user explicit choice — don't re-ask, wait for user signal). Все ADRs jurisdiction-agnostic так что не блокирует sub-plans (кроме legal-multi-party-framework которому нужен lock'нутый jurisdiction).

Также pending: 2 stale Learnings (CONV-7 5-tier model + CONV-16 S·1 Shared default) — нужны deprecation notes; brandbook reconciliation (Sergey atelier vs Roma Skeleton White из CONV-29 parallel track); Roma's Path 2 Next.js scaffold overlap с buyer-profile sub-plan thinking.

Summary

Wave 2 Chunk 8 closed end-to-end (final chunk closes Wave 2 8/8). /plan interview (6 questions, ~25 min) ratified 5 new ADRs (0008 Skeleton + 0009 Full + 0010 Full + 0011 Shell + 0012 Shell) + 0005 v3 revision (Microsoft + Custom SSO scope для Tier 3 Stage 2; Revision 2 CONV-17 preserved). /build executed in 3 stages (Approach B — Draft-all + single ratification): Stage A wrote 6 ADR files в dependency order (0009 → 0010 → 0008 → 0005 v3 → 0011 → 0012); Stage B applied ~29 plan callout pointer fixes в launch-plan-stage-1.html (3 type A 0005 broken-pointer fixes + ~26 type B pending → live links); Stage C added changelog v4.14 entry + preview repo sync + workstream pivot to 4 sub-plan ratifications. Plus Cyprus jurisdiction memory updated — user explicitly chose «active review continues» (option d), don't re-ask, wait for user signal. Step 4.5 ratification sweep surfaced Resend как 4-я email architecture для ADR 0011 (CONV-20 session note про DKIM + white-label sender-domain delegation).

Changes

Decisions

Approach B (Draft-all + single ratification, 3 commits) для Chunk 8 sequencing. Rejected A (Sequential per-ADR — too slow at 3-4ч, 12 commits, 6 ratification cycles, risk mid-session interruption) and C (Mixed paired — artificial pair coupling 0008+0005 v3 не связаны логически). Rationale: после 6-question interview content confidence high (ratified Foundational + Phase tasks дают clear scaffold); risk «cascade rewrites» low; benefit minimal touch-points (single review) + atomic cross-refs существенный. Result: 3 atomic commits (Stage A ADRs / Stage B callout fixes / Stage C changelog+sync+workstream).

ADR 0012 narrow scope (variant i) — covers только Buyer Remote Presentation use-case A. Use-case B (unit status sync between Sales Agents per line 3394) deferred to Phase 1.10 implementation as simple polling без отдельного ADR. Rationale: Phase 1.11.6-8 риск Stage 2 deferral (если Илья tech estimate показывает > 3 weeks build); use-case B latency tolerant (1-2s OK) — can be solved at implementation level; over-investment в общую Real-time Platform когда buyer presentation вообще может не быть в Stage 1 = wasted spec work. ADR shell содержит 4 architectures (Polling / SSE / WebSocket / Managed: Pusher/Ably/Supabase Realtime) с trade-off table — discussion artefact для Илья + команды.

ADR 0005 v3 in-place revision vs creating new ADR. Rationale: Microsoft + Custom SSO scope additive (does not reverse Stage 1 Google + email/password decision). Standard ADR practice: in-place for additive scope; new ADR for full reversal. Preserves «Revision 2 (2026-05-07, CONV-17)» note as historical record (renamed from «Revision note» since now there are multiple revisions). New «Stage 2 Tier 3 SSO methods (Revision 3)» subsection в Decision area; Alternatives Considered re-classifies Microsoft + Custom SSO from «rejected/deferred» to «accepted for Stage 2 Tier 3»; Consequences gets Tier 3 gate + Stage 2 implementation trigger («after first Tier 3 customer commitment»).

Per-ADR depth pattern (per L2): 0008 Skeleton (~50 lines target / 67 actual — structure ratified, numbers defer to sub-plan); 0009 Full spec (~80-100 / 105 — Foundational §1+§2+§4 ratified consolidation); 0010 Full spec (~60-70 / 71 — Foundational §4.4 ratified); 0011 Shell (~30 / 44 — decision не сформировано, 4 architectures + criteria); 0012 Shell (~30 / 47 — pending Илья tech estimate, 4 architectures detailed). Rejected one-size-fits-all (would either over-spec shells or under-spec ratified Full content); rejected all-shells (under-investment когда Foundational decisions ratified); rejected all-Full (over-investment в Shell territory когда decisions не сформированы).

Step 4.4 (Business review) skipped per L11. Reason: pure plan-document refactor (ADR consolidation of already-ratified decisions); underlying decisions прошли prior ratification cycles в Chunks 4-7 (Foundational §1-§5 ratification + Phase 1.3-1.11 deep rewrites); Chunk 8 не вводит новых user-facing changes — кодифицирует existing decisions. Re-running 5-6 concern agents для consolidation work = redundant.

Step 4.5 surfaced Resend as 4th email architecture (CONV-20 session note про «DKIM + white-label sender-domain delegation for offplan.online — Resend recommended»). ADR 0011 expanded from 3 → 4 architectures. Trade-off table got new column variant: «D. Resend white-label delegation (CONV-20 recommended) — 🟢 simple build, 🟢 managed by vendor ops, 🟢 strong white-label, 🔴 high vendor lock-in». Decision criteria added «vendor lock-in» as 5th axis.

Cyprus jurisdiction — active review continues (CONV-31 user explicit choice option d). User не «momentary doubt», не «specific alternative being chased» — genuine open question. Memory updated «don't re-ask proactively, wait for user signal». ADRs остаются jurisdiction-agnostic. Net effect для следующего /resume: no false alarm про «Cyprus needs clarification»; question stays parked until user signals readiness to lock.

Local CONV-31 vs Notion CONV-30 conflict (same pattern as CONV-30/Notion-29). Notion auto-assigned CONV-30 (next number after CONV-29 which was previous session's local CONV-30). To avoid local filename collision (docs/sessions/CONV-30.md already exists from previous session) — local file uses CONV-31. Notion Session ID rich_text patched to «CONV-31 (Notion auto CONV-30 — local sequence skips Roma's parallel git track CONV-29)» for searchability. CONV unique_id=30 в Notion — immutable.

Next Steps

  1. /plan plans/permission-and-tenancy-model.md (P0) — sub-plan ratification #1, anchors ADRs 0009 + 0010 (which we just wrote). Tech-level architecture (DB schema, RBAC matrix, API contracts) для Phase 1.3.1-1.3.12 implementation. Sub-plan currently status: stub.
  2. /plan plans/onboarding-trial-mode.md (P0) — sub-plan ratification #2, anchors ADR 0008. Pricing per tier, exact limits (X projects / Y team members / N units), naming finalisation (T1/T2/T3 vs Starter/Studio/Agency/Enterprise), Free Guest expiry policy + conversion triggers. Depends on Phase 1.7.13 hosting cost projection + Roman pricing input.
  3. /plan plans/legal-multi-party-framework.md (P1) — jurisdiction-dependent (pending Cyprus confirmation per memory). 4 new legal documents для multi-party access framework.
  4. /plan plans/buyer-profile-and-presentation.md (P1) — anchors ADR 0012 + Phase 1.11.1-8. Buyer entity + tokenised URL + Remote Presentation flow. Если Phase 1.11.6-8 не лезут в Stage 1 timeline → переезжают в Stage 2.
  5. Optional: 2 stale Learnings cleanup (CONV-7 «Multi-level access 5-tier model» — superseded by Org-based RBAC per ADR 0009; CONV-16 «S·1 Shared default + Single + exclusivity scope» — reshaped to Closed pool default per CONV-18 + ADR 0010). Best handled via Notion direct edit (deprecation notes), not files.
  6. Optional: Brandbook reconciliation (Sergey atelier vs Roma Skeleton White из CONV-29 parallel track в design-system/sales-app/) — отдельная сессия после HTML plan polish.

Open Questions

Context for next session