offplan · online
Session · conv-34

Session CONV-34

In Progresssessionconv-34

Resume Prompt

Continue Sub-plan 2 (plans/onboarding-trial-mode.md) — Step 1 closed CONV-34 (14 picks ratified, scratch state). Resume at Step 2 (Research): Notion Learnings DB query (keywords: onboarding, trial, billing, conversion, stripe, pricing); codebase scan (existing Stripe integration patterns в Roma's design-system если есть); external research (Stripe Checkout + Customer Portal best practices Stage 1). После Step 2 → Step 3 (Approaches — likely single approach, picks concrete enough) → Step 4 (Plan write-up, ~600-900 lines body) → Step 4.4 (Business review: 5 concern agents — Studios / Sales motion / CS / Finance+Billing / Security; 5 scenarios traced) → Step 4.5 (Ratification sweep) → Step 5 (Workstream onboarding-trial-implementation P0). После Step 5 — flip scratch-interview-closedratified + Phase 1.2 HTML callout update + ADR 0008 amendment commit + Phase 1.2.2 amendment (Org subdomain + project path).

Hard prerequisites flagged: ADR 0011 (email sender) + ADR 0014 (MCP wrapper auth) ratification gates для Phase 1.2 launch. ADR 0011 needs separate /plan session (6 emails depend on it). ADR 0014 needs separate /plan session before Phase 1.5.6.

Plus carry-overs: Roman pricing strategy input (pricing-config.ts TBD numbers) · 2 stale Learnings deprecation в Notion (CONV-7 5-tier + «Invite клиента» VV legacy — 5+ sessions carry-over) · Notion workstream relation Sessions row — 5th попытка empty, investigate · Cyprus jurisdiction active review (don't re-ask).

Roma's CONV-30 stream pulled in this session: docs/plan → docs/rendered rename, Sergei parity skills/commands/ADRs, SETUP_SERGEI.md. New skills available для use: apply-tweaks, inspect, make-tweakable, wireframe, verify-artifact, screenshot, done, preview, serve.

Summary

CONV-34 session — three distinct work streams executed end-to-end. (1) SPEC-AMEND closure — closed all 21 HIGH findings from CONV-33 Phase 1.3 sub-plan business review via v4.17 + v4.18 inline patches к plans/permission-and-tenancy-model.md; added ADR 0004 v2 amendment + new ADRs 0013 (proration policy — asymmetric: upgrade prorated, downgrade end-of-period) + 0014 (MCP wrapper auth — placeholder shell, Phase 1.5.6 implementation gate). (2) HTML audit + hygiene — ran read-only audit on canonical docs/rendered/launch-plan-stage-1.html, applied 10 P0+P1 fixes (hero v4.4 → v4.18 bump, critical Phase 1.5 ADR 0014 blocker callout, ADR 0004 → v2 markers, 7 Tech Unknowns table 3✅ resolved + 3 new questions, Foundational/Open Questions kicker notes updated, Phase 1.2/1.9/1.11 callout cross-links). (3) Sub-plan 2 Step 1 interview — launched /plan onboarding-trial-mode, closed 13 picks ratified (Tier naming Hybrid · Free Guest expiry Soft 12mo · Conversion triggers Full cascade · Trial lock UX Click-through · URL architecture · Slug rules · Custom domains · AI Floor Plan tags · Live Preview · Object Builder reuse · Free Guest sidebar · Plan&Billing scope); saved 381-line scratch state (status: scratch-interview-closed) для defensive persistence. Mid-session pivot — Sergey пушнул back: «мы топчемся на месте, ты хочешь это все закрыть чтобы в каждой фазе была инфо что тех команде делать?» → я признал overplanning, pivot из «launch next sub-plan immediately» в «audit + HTML hygiene for tech-team handoff». Pulled Roma's parallel CONV-30 stream twice via rebase (docs/plan → docs/rendered rename + Sergei parity skills/commands/ADRs).

Changes

Decisions

«Drive top-to-bottom» SPEC-AMEND closure без pause-per-theme. Sergey said «drive» after /resume → я применил all 21 HIGH findings одним sweep (Themes 1+2 = v4.17, Themes 3+4 = v4.18). Rejected: pause for review per theme (would have 4x'нуло turn count). Speed > granularity потому что 21 findings были clearly classified в Risks section и treatment policy уже locked CONV-33.

Audit-first instead of next sub-plan (mid-session pivot). Sergey pushback «мы топчемся на месте» surface'ил классический overplanning antipattern. Я признал и pivot'нул к launch-plan-stage-1.html hygiene pass (10 P0+P1 fixes) вместо «launch next sub-plan immediately». Rejected: pivot к prototyping / vertical slice (Sergey clarified — Roma scaffolds design только, не код; цель = readable plan для tech-team handoff). Audit produced critical finding: Phase 1.5 секция HTML не имела warning callout про ADR 0014 implementation gate — это safety-critical для tech-team. Fix landed.

Sub-plan 2 picks ratified pack-mode after 4 individual questions. Tier naming (C-Hybrid) + Free Guest expiry (B-Soft 12mo) + Conversion triggers (C-Full cascade) + Trial lock UX (C-Click-through) спрашивались individually via AskUserQuestion (cleanly bounded A/B/C choices). Затем 10 URL/UX picks batched в 2 pack-mode questions (5 items each, plain text «yes all / no #X»). Rejected: continuing all individually (would have been 14+ separate turns). Pattern works в hybrid режиме: individual для high-impact bounded decisions, pack-mode для tactical sweeps.

Scratch save sub-plan 2 в plan file, не HTML callout. User asked «надо ли это сейчас в хтмл закинуть чтобы не потерялось?». Я предложил scratch save в plans/onboarding-trial-mode.md с status scratch-interview-closed (новый промежуточный статус между stub и draft), не HTML callout (premature — mirror Phase 1.3 pattern: HTML flips ratified только когда sub-plan полностью written + Step 4.4 done). Rejected: ничего не сохранять (defensive persistence prevents compaction loss); update HTML callout сейчас (misleads readers, breaks ratification pipeline).

ADR 0014 placeholder shell instead of full spec. Security HIGH 5 finding требовала gating Phase 1.5.6 implementation. Я создал placeholder ADR с risks + cross-references + explicit «full spec deferred to dedicated /plan session». Rejected: full ADR spec в CONV-34 (would have added 2-3h additional work; security review better done dedicated session с AI security review).

14th pick added к Sub-plan 2 (Plan & Billing scope) — config-driven pricing. В Pack #2 batch (5 items) я предложил «config-driven pricing display» — UI рендерит layout, numbers подгружаются из pricing-config.ts post-Roman input. This resolves Sergey's «numbers parked» instruction elegantly: structure ratified (page layout + components + Stripe Checkout integration); numbers config-driven (можно update без code change after Roman input). Avoids «pending Roman» as blocking gate для Phase 1.2 launch.

Next Steps

  1. /plan onboarding-trial-mode Step 2 (Research) — Notion Learnings DB query (keywords: onboarding, trial, billing, conversion, stripe, pricing) + codebase scan (existing Stripe integration patterns в Roma's design-system/sales-app/ если есть) + external research (Stripe Checkout + Customer Portal best practices Stage 1).
  2. Step 3 (Approaches) — likely single approach (interview-closed picks concrete enough). Confirm в Step 3 brief.
  3. Step 4 (Plan write-up ~600-900 lines body) — expand 14 picks в полный body: Goal · Success Criteria · Approach · Implementation Steps · Files to Create/Modify · Dependencies · Testing · Workstreams · Risks · Evaluation. Плюс: day-by-day trial timeline (T-14 → T+30) detailed · trial badge edge cases (header только на admin? sales-app тоже?) · ADR 0008 amendment text (status note + config-driven numbers) · Phase 1.2.2 HTML amendment text (Org subdomain + project path resolution).
  4. Step 4.4 (Business review) — 5 concern agents in parallel (Studios · Sales motion · Customer Success · Finance + Billing · Security — lighter чем Phase 1.3 потому что Stage 1 patterns уже validated CONV-33). Scenarios traced: trial signup happy path · trial-to-paid happy path · trial expiry → Free Guest · Free Guest archive → un-archive · tier downgrade.
  5. Step 4.5 (Ratification sweep) — Learnings DB re-query post-write.
  6. Step 5 (Workstream)onboarding-trial-implementation (P0, tags: ux, billing, vendor).
  7. После Step 5 — flip plans/onboarding-trial-mode.md status scratch-interview-closedratified + Phase 1.2 HTML callout update (mirror Phase 1.3 pattern) + ADR 0008 amendment commit + Phase 1.2.2 HTML amendment commit.

Open Questions

Context for next session