Goal
Sync docs/launch-plan-v3-full.html with the canonical markdown plans/launch-plan-v3.md v3.1 so that the polished HTML artefact reflects all the revisions we made today after the Roma + Nadezhda calls. Stakes: this is the version we send to Ilya this week for Stage 1 review (Task #6 in Monday agenda). Ilya hasn't seen v3.0 — for him this is the first plan, so the HTML is presented clean (no «was X» / «NEW» revision baggage in the body); revision metadata lives subtly in the hero meta line and Appendix G changelog only.
Success Criteria
Sergey opens
docs/launch-plan-v3-full.htmlin a browser, reviews Stage 1, and confirms «ready to send to Ilya». Ilya opens the link, reads Stage 1 cleanly without needing to know what changed since v3.0, and can identify every place his estimate is needed via the ⏱ marker.
What "done" looks like:
- A reader opens
docs/launch-plan-v3-full.htmlin a browser and sees Launch Plan v3.1 - Stage 1 reads in priority order: 1.1 Visual Redesign first, 1.8 Sales-app UX last
- Phase 1.3 (MCP Server Wrapper) is a fully populated section with 5 sub-phases
- Phase 1.8 (Sales-app UX redesign) is a fully populated section with 6 sub-phases
- Phase 1.5.8 (Flat-fee tier) is added inside the Payments section
- Banners are visible: Priority #1 on 1.1, Downgrade on 1.4 and 1.7, Conditional on 1.8
- Appendix G (Changelog) sits at the end before the footer
- All anchors and collapsibles still work
- Visually polished — palette intact, typography consistent, no broken markup
Out of scope for this plan:
docs/launch-plan-v3-visual.html— no changes (Q2 confirmed)- Notion mirror page — separate task if needed
- Major layout / styling changes — palette, typography, hero stay as-is
Approach
Surgical edits, not a rewrite. ~70% of the HTML stays untouched. The work breaks into 4 categories:
- Mechanical renumbers (find + replace) — 5 phase ID swaps across
<div id="phase-1-X">, phase-num badges, sidebar nav, task-deps cross-references - Physical phase reordering — move phase blocks in the file so they appear in priority order (1.1 → 1.8)
- New content — Phase 1.3 (MCP), Phase 1.8 (Sales-app UX), 1.5.8 Flat-fee tier, banners, Appendix G changelog
- Content rewrites — Phase 1.2 sub-phases (6 of 7 got rewritten in markdown)
We work top-down through the HTML file so each edit doesn't conflict with the next. The markdown is the source of truth — every change in HTML must match what's already in the markdown.
Steps
Step 1 — Header / Hero block (lines ~1–60)
- Update version in
<title>and hero kicker / subtitle: «v3.1 (ревизия 2026-04-27)» - Update hero meta line with new sources (add Nadezhda call 2026-04-23, add Roma call 2026-04-24)
- Add link to changelog (Appendix G)
Step 2 — Executive Summary block (lines ~263–317)
- Update «Четыре стадии» table: Стадия 1 → 8 фаз / ~40 подзадач; Стадия 4 → 4 фазы / ~15 подзадач
- Update critical/high/medium/low matrix to v3.1 numbers (18/8/6/2 for Stage 1, 0/3/8/5 for Stage 4)
- Add «Изменения в ревизии 3.1» callout block listing structural changes
Step 3 — Phase navigation sidebar (lines ~362–415)
- Re-list Stage 1 phases in priority order:
- 1.1 Admin Visual Redesign + Branding
- 1.2 Self-Serve Onboarding
- 1.3 MCP Server Wrapper
- 1.4 Admin UX Critical Blockers
- 1.5 Payments + Sales Page
- 1.6 Legal & Compliance
- 1.7 Security & Infrastructure Foundation
- 1.8 Sales-app UX redesign (new)
- Stage 4 list: remove Phase 4.1.5 (moved to 1.3), keep others
Step 4 — Stage 1 priority order callout (after «Подготовка к пилотному запуску» heading, before phase blocks)
- New callout box at top of Stage 1 with the priority order table from markdown
- Include 🎯 / 🔴 / 🟡 / 🟠 markers per phase
- Match sand/gold palette, gold-bordered callout style
Step 5 — Phase 1.1 (was 1.6, Admin Visual Redesign) — move to top of Stage 1
- Cut entire
<div id="phase-1-6">block + 3 sub-phase tasks (1.6.1 / 1.6.2 / 1.6.3) - Renumber: phase-1-6 → phase-1-1, sub-phase ids 1.6.X → 1.1.X
- Update phase title/description: add Priority #1 banner above the phase block
- Add brandbook note (Claude Design + Figma) in phase description
- Paste at top of Stage 1 (right after the priority order callout)
Step 6 — Phase 1.2 (Onboarding) — content rewrites
- Update each sub-phase:
- 1.2.1 Signup → expand task title + description with «5-level tenant access architecture»; rewrite «Что конкретно» list (10 bullets including 5-level model); update «Открытые вопросы»; update task-deps (now depends on 1.7.2 not 1.1.2)
- 1.2.2 Subdomain → rewrite for per-project (not per-studio) — new title «Per-project subdomain provisioning»
- 1.2.3 Custom domain → rewrite for «Custom domain for projects, not studios»
- 1.2.4 Wizard → remove project type field, remove Slack invite, remove Skip button (mandatory wizard)
- 1.2.5 Demo project → both approaches via Claude Design
- 1.2.6 Email sequence → mark as DEFERRED to Stage 3 (yellow banner)
- 1.2.7 Team management → expand significantly with 5 access level table + permission model spec note
Step 7 — Phase 1.3 (NEW — MCP Server Wrapper) — insert after Phase 1.2
- New
<div id="phase-1-3" class="phase">block with title «MCP Server Wrapper (NEW — перенесён из 4.1.5)» - Add prominent 🔴 critical banner with Sergey quote («без MCP не запускаться»)
- Add «Контекст и обоснование» content block (what is MCP, why for offplan.online, 5 reasons it matters, two-iteration approach)
- 5 sub-phase tasks:
- 1.3.1 — API audit + scope definition
- 1.3.2 — MCP read-only wrapper (Iteration 1)
- 1.3.3 — MCP read+write wrapper (Iteration 2) — with conditional note
- 1.3.4 — Authentication + scoped tokens
- 1.3.5 — Documentation + integration examples
- Match existing task block format (markers, details collapsibles, task-deps)
Step 8 — Phase 1.4 (was 1.3, Admin UX) — renumber + downgrade banner
- Update phase block: phase-1-3 → phase-1-4, phase-num «Фаза 1.3» → «Фаза 1.4»
- Add 🟡 downgrade banner above phase block: «Понижен в приоритете — большинство багов dev-env, нужна верификация Ильёй»
- Renumber sub-phase ids 1.3.X → 1.4.X (6 sub-phases: 1.4.1 … 1.4.6)
- Update task-deps cross-refs: 1.3.X internal refs → 1.4.X
- Add note above sub-phase 1.4.4 (Asset upload): «Tech team уже работает над backend — может стать неактуальной»
Step 9 — Phase 1.5 (was 1.4, Payments) — renumber + add 1.5.8 Flat-fee tier
- Update phase block: phase-1-4 → phase-1-5, phase-num «Фаза 1.4» → «Фаза 1.5»
- Add note about flat-fee tier addition (Nadezhda feedback) in phase description
- Renumber sub-phase ids 1.4.X → 1.5.X (7 sub-phases: 1.5.1 … 1.5.7)
- Update task-deps cross-refs
- After 1.5.7 (Billing edge cases), insert new 1.5.8 task block:
- Title «Flat-fee pricing tier (NEW — фидбек Надежды 2026-04-23)»
- Markers: Высокий, Product+Tech+Finance, ⏱, ❓
- Description + «Сценарий клиента (Надежда)» + «Что конкретно нужно сделать» + «Открытые вопросы»
- task-deps: depends on 1.5.2 + 1.5.3
Step 10 — Phase 1.6 (was 1.5, Legal) — renumber
- Update phase block: phase-1-5 → phase-1-6, phase-num «Фаза 1.5» → «Фаза 1.6»
- Renumber sub-phase ids 1.5.X → 1.6.X (6 sub-phases: 1.6.1 … 1.6.6)
- Update task-deps cross-refs (1.5.5 → 1.6.5 «Jurisdiction», 1.5.2 → 1.6.2 «Privacy», 1.1.X security refs → 1.7.X)
Step 11 — Phase 1.7 (was 1.1, Security) — renumber + downgrade banner
- Update phase block: phase-1-1 → phase-1-7, phase-num «Фаза 1.1» → «Фаза 1.7»
- Add 🟡 downgrade banner above phase block: «Базовый уровень — checklist для tech team. Илья проверяет, не первоочередная задача со стороны product team»
- Renumber sub-phase ids 1.1.X → 1.7.X (5 sub-phases: 1.7.1 … 1.7.5)
- Update task-deps: «Блокирует: Фазу 1.5.1» → «Блокирует: Фазу 1.6.1», etc.
- Update «Было: 1.1.6 Secrets management» callout note — change to «Было: 1.1.6 (старая нумерация) → теперь Фаза 3.5.4»
Step 12 — Phase 1.8 (NEW — Sales-app UX redesign) — append at end of Stage 1
- New
<div id="phase-1-8" class="phase">block with title «Sales-app UX redesign (NEW — фидбек Надежды 2026-04-23)» - Add 🟠 conditional banner: «Если эстимейт от Ильи большой — переносим часть в Стадию 2 или 3. MVP 1.8.1 фильтры остаются в Стадии 1»
- Add «Контекст (из видео-звонка с Надеждой)» content block — explain current flow problem + correct flow + 2 buyer scenarios
- 6 sub-phase tasks:
- 1.8.1 — Filter-based unit selection (MVP)
- 1.8.2 — Floor plan → vertical unit stack view
- 1.8.3 — Per-project status visibility toggle
- 1.8.4 — Status indicators redesign (kill traffic-light colors)
- 1.8.5 — Window-based panoramic views
- 1.8.6 — Currency + units toggle (USD/AED, sqm/sqft)
- Match existing task block format
- After last sub-phase, add «Связи с другими фазами» note (4.5.1 Compare units, 3.3.3 Audit log, CRM data model backlog)
Step 13 — Phase 4.1.5 stub
- Replace existing 4.1.5 task block with a single callout: «🔴 Перенесено в Стадию 1 — Фаза 1.3 (ревизия 2026-04-27). См. подробное описание в Phase 1.3.»
- Remove 4.1.1's «Блокирует: Фаза 4.1.5» reference
Step 14 — Appendix G (Changelog) — append at end before footer
- New
<section id="appendix-g">with<h2>Appendix G — Changelog</h2> - v3.1 changelog: structural changes to Stage 1 (renumbering map), new phases (1.3, 1.8), expansions (1.2.x sub-phases, 1.5.8), Stage 4 changes (4.1.5 moved), CRM data model backlog note
- v3.0 entry: «Первая версия плана: 4 стадии, 21 фаза, ~110 подзадач»
- Add link in topnav: «Changelog» pointing to #appendix-g
Step 15 — Smoke test
- Open
docs/launch-plan-v3-full.htmlin browser - Verify hero shows «v3.1»
- Click each Stage 1 anchor in topnav and sidebar — lands on right phase
- Verify phase order: 1.1 first, 1.8 last
- Open all sub-phase collapsibles — they expand correctly
- Verify Phase 1.3 (5 sub-phases) and Phase 1.8 (6 sub-phases) render
- Verify banners visible (Priority #1 / Downgrade / Conditional)
- Verify Appendix G renders at bottom
- Mobile viewport check (Chrome DevTools)
Files
| File | Action |
|---|---|
docs/launch-plan-v3-full.html |
Edit — primary deliverable |
plans/html-render-v3-1-update.md |
This plan (already written by /plan) |
plans/launch-plan-v3.md |
No changes (already at v3.1, source of truth) |
docs/launch-plan-v3-visual.html |
No changes (Q2 confirmed) |
docs/sessions/CONV-10.md |
Will be updated by /handoff at end of session |
Dependencies
plans/launch-plan-v3.mdv3.1 — must already contain all v3.1 content (✅ done in earlier commits)- Existing HTML structure (sand/gold palette, Inter font, collapsible details pattern) — must be preserved
- No external blockers — entirely self-contained
Testing
Browser smoke test (Chrome / Safari):
- Hero block displays v3.1 + new sources line
- Top nav has all anchor links working
- Stage 1 reads in priority order
- Phase 1.3 (MCP) section fully populated with 5 sub-phases
- Phase 1.8 (Sales-app UX) section fully populated with 6 sub-phases
- All banners visible (Priority #1, Downgrade x2, Conditional)
- All collapsible
<details>blocks open / close correctly - Appendix G visible at bottom
Cross-reference check:
- Search HTML body for any leftover stale numbers —
1.6.[1-3](now 1.1),1.3.[1-6](now 1.4),1.4.[1-7](now 1.5),1.5.[1-6](now 1.6),1.1.[1-5](now 1.7) in non-anchor text - Verify all task-deps lines are consistent
Visual regression:
- Compare against current HTML on key sections — no broken markup, no CSS class typos
- Mobile viewport (≤480px width) — readable
Sign-off:
- Sergey reviews in browser, confirms ready to share with Ilya
Workstreams
The whole task fits in one ~25-minute session, so it's a single workstream rather than several. Internal phasing exists for execution discipline (browser checks between blocks), but it's all one unit of work.
| Name | Priority | Depends On | Tags | Tasks |
|---|---|---|---|---|
html-render-v3-1-update |
P0 | — | tooling, claude-code, ops | Steps 1–15 |
Internal execution phases inside this workstream (for the agent's own discipline, not separate workstreams):
- Phase A — Skeleton + Stage 1 reorder (~10 min): Steps 1, 2, 3, 4, 5, 11 — header, exec summary, nav, priority callout, move 1.6→1.1 to top, move 1.1→1.7
- Phase B — New phases (~8 min): Steps 7, 12 — insert new Phase 1.3 (MCP), append new Phase 1.8 (Sales UX)
- Phase C — Renumber + content edits (~7 min): Steps 6, 8, 9, 10 — Phase 1.2 sub-phase rewrites, renumber 1.3→1.4 / 1.4→1.5 / 1.5→1.6 with banners + flat-fee tier
- Phase D — Cleanup + smoke test (~5 min): Steps 13, 14, 15 — Phase 4.1.5 stub, Appendix G, browser test
Open browser between phases — catch visual breakage early, not at the end.
Important framing for execution: Ilya hasn't seen v3.0. Strip all «was 1.6» / «NEW — moved from 4.1.5» / «понижен в приоритете» tags from the body. Replace «понижен» with neutral framing («базовый уровень — требует верификации tech team» / «базовый чек-лист, ответственность tech team»). Revision metadata lives only in:
- Hero meta line: «Версия 3.1 · 2026-04-27 · Revision history →» (link to #appendix-g)
- Top nav: «Changelog» as last item
- Appendix G: short, structured, scannable changelog (~25 lines, more detail than the markdown's Appendix G but still compact)
Risks
R1 — Stale cross-references (likelihood: medium, impact: low)
- Sub-phase task-deps may have leftover
Фаза 1.X.Ynumbers from old numbering. Need a final grep pass to catch them. - Mitigation: Step 15 explicit cross-reference check.
R2 — Visual breakage (likelihood: low, impact: medium)
- HTML edits could accidentally break a CSS class or close a
<div>wrong. Page would render misshapen. - Mitigation: open in browser after each major step (not at the very end), so we catch it early.
R3 — Missed banner / callout (likelihood: low, impact: low)
- Forget to add one of: Priority #1 on 1.1, Downgrade on 1.4 / 1.7, Conditional on 1.8.
- Mitigation: explicit checklist in Step 15 includes all four banners.
R4 — Phase 1.3 content gap (likelihood: medium, impact: medium)
- Markdown's MCP section is rich (context, rationale, 5 sub-phases). HTML translation needs careful copy without losing the «без MCP не запускаться» framing.
- Mitigation: copy markdown sub-phase content verbatim into task blocks; preserve key Sergey quote in callout.
R5 — Phase 1.8 over-detail vs MVP framing (likelihood: low, impact: low)
- Risk that all 6 sub-phases look equally critical when some can move to Stage 2/3.
- Mitigation: add explicit «MVP — должно остаться в Стадии 1» note on 1.8.1, and «Если сложно — переносим в Стадию 2/3» on 1.8.2 / 1.8.5.
R6 — Sub-phase markdown ↔ HTML drift (likelihood: medium, impact: low)
- After this update, future markdown edits will need parallel HTML edits. We have no automation.
- Mitigation: log this in System Improvements Notion page as an open backlog item («generate HTML from markdown automatically» as Stage 2 tooling task).
From Learnings DB
Searched Notion Learnings for: html, render, plan, markdown, changelog, docs, launch-plan, tooling, claude-code. Top relevant items:
- L «Claude Code hooks cannot switch model automatically» [tooling, gotcha, claude-code] — tangential. Reinforces «hooks suggest, code acts» discipline; no impact on HTML edits.
- L «notion-offplan MCP tools vanish when NOTION_OFFPLAN_TOKEN not exported at startup» [tooling, gotcha, notion] — irrelevant; HTML edit doesn't touch Notion MCP.
- L «Support chat options for launch: Crisp, Intercom, Tawk.to» [vendor, ops, ux] — irrelevant.
Net: No prior Learnings warn about this specific work. This plan adds a new Learning candidate after execution: «markdown ↔ HTML drift is taxed every revision; build a generator if revisions exceed 3» — capture in /handoff if R6 plays out as expected.
Evaluation
Done when all of the following are true:
- [ ] Hero displays «v3.1 (ревизия 2026-04-27)»
- [ ] Executive Summary table shows Стадия 1: 8 фаз / Стадия 4: 4 фазы
- [ ] Top nav + sidebar list Stage 1 in priority order (1.1 first → 1.8 last)
- [ ] «🎯 Логический порядок приоритетов» callout visible at top of Stage 1
- [ ] Phase 1.1 (Admin Visual Redesign) is the first phase block in Stage 1
- [ ] Phase 1.1 has Priority #1 banner + brandbook note
- [ ] Phase 1.2 has 7 sub-phases with v3.1 content (5-level access in 1.2.1, per-project subdomain in 1.2.2, etc.)
- [ ] Phase 1.3 (MCP) is a fully populated section with context block + 5 sub-phases
- [ ] Phase 1.4 (Admin UX) has 🟡 downgrade banner + sub-phases renumbered to 1.4.X
- [ ] Phase 1.5 (Payments) has flat-fee note + 8 sub-phases (1.5.1 … 1.5.8) including new Flat-fee tier
- [ ] Phase 1.6 (Legal) has 6 sub-phases renumbered to 1.6.X
- [ ] Phase 1.7 (Security) has 🟡 downgrade banner + 5 sub-phases renumbered to 1.7.X
- [ ] Phase 1.8 (Sales-app UX) is a fully populated section with context block + 6 sub-phases + 🟠 conditional banner
- [ ] Phase 4.1.5 in Stage 4 is a stub with «moved to 1.3» pointer
- [ ] Appendix G (Changelog) is visible at bottom of document
- [ ] No stale «Фаза 1.6.X» / «Фаза 1.3.X» / «Фаза 1.4.X» / «Фаза 1.5.X» / «Фаза 1.1.X» numbers in body text (Stage 1 only — old 1.X.Y references corrected)
- [ ] All collapsibles open / close correctly
- [ ] Mobile viewport (≤480px) is usable
- [ ] Sergey opens in browser and confirms «Ready to send to Ilya»
Out of scope for this evaluation:
- Notion mirror (separate task)
- Visual appendix (Q2 unchanged)
- Markdown source (already at v3.1)
After this plan ratifies → /build
Run /build with this plan to execute Steps 1–15. Once Sergey signs off in browser, commit + push, then send Ilya the GitHub raw URL or a deployed link to the HTML for Stage 1 review (Task #6 in plans/agenda-2026-04-27.md).