Summary
Two parallel tracks shipped end-to-end. (1) Ilya designer brief for 7 React Email trial cascade templates (per ADR 0011 T5) — docs/briefs/ilya-email-templates.md. (2) Long iterative cleanup of the Stage 1 plan rendering pipeline: renamed legacy launch-plan-v3-full.html → launch-plan-stage-2.html (post-CONV-19/37 splits had left it dominated by Stage 2 content); applied brandbook v2 tokens (sand/gold/navy → Skeleton White / stone / oxidised severity) across 21 rendered files; restored Exec Summary section with companion-docs cards prepended to master via slice_marker; trimmed Exec/Goal/Method chrome + Stage 1 stub + phase-nav grid per iterative user review. Critical late find: a stage1_hero typo (</p> instead of </div>) left .hero unclosed across the entire page body, so the navy gradient painted the whole page dark — initially misdiagnosed as Firefox/Safari auto-dark-mode (4 commits of CSS overrides) before tracing to the actual HTML bug. Parallel claude session (Roman, P4-P11f of repo-as-canonical-store-flip) shipped a massive amount during the same window; multiple rebase rounds normal.
What I Did
- Ilya designer brief (
d472f32) — 444-line brief covering 7 trial cascade emails (T-7 / T-3 / T-1 / T+0 / T+7 / T+23 / T+29) + 4 standard transactional templates (signup verify / password reset / billing receipt / tier transition). Each cascade email has subject + preheader + trigger + audience state + CTA + body sections + variables. Brandbook v2 token pulls,.tsxcomponent contract, 3-checkpoint review loop, ~14-day timeline, 9 open questions for Ilya before C1. - Rename
launch-plan-v3-full.html→launch-plan-stage-2.html(b887833) — post-CONV-19/37 splits had left the file containing Stage 1 STUB + Stage 2 FULL content + Stage 3-4 stubs + Team/Process/Appendix A+F. Title «(Full)» was 6 months stale; rename reflects what's actually inside. Updated 21 cross-link refs across 7 live HTML files + build script (PART_V3FULL→PART_STAGE2, regex alternations, footer label). - Audit-fix pass (
6f68ad7) — bookkeeping on Stage 1 fragments: hero title v4.4/CONV-17 → v4.18/CONV-39; 13 fragments draft → in_review; Brandbook v1.1 stale «draft» qualifier dropped + v2 cross-link added; Cyprus PRODUCT-parked card flipped → Abu Dhabi (UAE) leading candidate per CONV-35 signal. - Option A dedup: exclude 00-overview from assembled outputs (
bacc540) —load_stage1_fragments()filters out overview fragment (which contained own copies of every phase block). Phase 1.1 block count: 2 → 1. Master shrunk 731 → 567 KB. - Strip leftover Phase 1.1 + 1.2 blocks from 00-overview (
134f3fe) — pre-split legacy content (251 lines) that was dup of03-phase-1-1.html+04-phase-1-2.html. Overview now ends cleanly at FOUNDATIONAL DECISIONS section. - Apply brandbook v2 tokens (
f296994) — sand/gold/navy v1 → Skeleton White / stone / oxidised severity v2 across 21 rendered files (15 fragments + 4 launch-plan siblings + 2 cross-refs). Variable names preserved (backward-compatible); reproducible via newscripts/apply-brandbook-v2-tokens.sh. - Symptom-treatment trap: page-renders-dark (commits
180e1d9,19eee8c,7c23303,9b6e7d0— all eventually-redundant) — addedcolor-scheme: lightCSS, then<meta name="color-scheme" content="light">, then hardcodedbackground-color: #F2F0EDon html+body, then!important+@media (prefers-color-scheme: dark)override. All treating wrong cause. - Real fix: close
<div class="hero">typo (31b5bd0) —stage1_hero()in build script had</p>instead of</div>on hero-meta line. Result:.heronever closed; hero gradient painted entire body navy.master_hero()was correct, hence master rendered fine. Fix is one character. Diagnosed via DOM div-balance walk: stage-1 body had +1 unclosed div, master had 0. - Navigation cleanup (
66c7b6b,454ac4c,b9a3d2f) — stage-1 topnav: Master link added, Exec Summary removed, «Фазы» →#phases(new id on priority order table). Stage-2 topnav: Exec Summary link + Цель + Методология dropped, Master link added. Stage-2 body: Exec Summary heading + intro removed, «Навигация по фазам» heading + description removed, Stage 1 stub card + callout removed, phase-nav grid removed entirely (kept only companion-docs cards). - brandbook-v2.html added to preview (
5f9c3c4) — added todocs/rendered/so customer-facing v2 register is visible on preview.offplan.online alongside v1.
Decisions Made
- Option A vs Option B for brandbook migration — chose Option A (token-value swap, keep variable names) over Option B (selective re-author of element styles). Alternative considered: Option C (full Atelier redesign — 3-4h). User picked A; ~30 min implementation. Plan body layout stays as-is, just looks like v2.
- 00-overview exclusion vs strip-duplicates — chose Option A (build script skips overview when assembling) over Option B (edit overview to remove duplicates). Alternative was simpler in script (~3 lines) and preserved overview as standalone executive summary doc. Subsequent commit (
134f3fe) ALSO stripped Phase 1.1/1.2 leftover from overview because they were stale pre-split content unrelated to overview's actual purpose. - Rename
v3-fullinstead of restructure — chosegit mvover splitting Stage 2 out into its own file with stub-pointing. Content was already dominantly Stage 2; rename + meta tag update made it semantically correct without restructure churn. - Exec Summary architecture — chose to wrap companion-docs + phase-nav in
<section id="exec">inside stage-2.html with<!-- ══ EXEC SUMMARY START / END ══ -->markers, then havebuild_masterextract chunk viaslice_markerand prepend to body_text. Alternative: hardcode Exec Summary content inmaster_hero(rejected — would diverge from stage-2's view). User iterated 3x on what should stay inside (heading + intro + grid kept first, then trimmed all but cards).
For Future Me
Symptom-treatment trap — Sergei said "body is dark on stage-1" and I spent 4 commits piling CSS-level fixes (color-scheme:light, meta tag, !important, prefers-color-scheme:dark force-light) because I assumed browser/OS auto-dark-mode. The diagnostic clue that broke the trail: «на других страницах работает, только одна не работает». That single sentence narrowed "browser/CDN/extension issue" to "this file's generation is broken". Once scoped to "only stage-1", the bug appeared in 5 minutes (DOM div-balance walk).
Lesson: when treating page-render bugs that "look like" environment/cache/browser issues, ask the user about SCOPE before patching CSS. If only one file/route has the issue, it's localised and you should diagnose the file's actual HTML/JS — not the browser.
Parallel-claude race-condition cost — Roman's session ran in parallel, shipping ~5 multi-phase commits per hour (P4 → P5 → P6 → P11c → P11d → P11f). Every push of mine required pull-rebase-autostash → conflict on auto-generated outputs → re-resolve → retry. Each rebase ~30 sec. Counted ~6 rebase rounds during this session. Acceptable cost when both shipping; would be intolerable for longer sessions. If user wants quieter workdays, run sessions serially.
Build-script-typo trap II — the stage1_hero had </p> instead of </div>. It rendered FINE on quick visual review because the page had cards on top of the gradient. Only the body-background colour gave it away. Always run div-balance check (grep -c '<div\b' vs '</div>') on auto-generated HTML when something looks "off" without a clear CSS cause. Wrote into the script-edit reflex.
Workstreams visibility on preview — Roman's P10/P11b shipped 19 workstream HTML files to docs/rendered/ + status-filter chips on the index. User flagged "не уверен надо ли это всё public, обсуди с Ромой". Deferred — Roman's system, his call.
Learnings
- Symptom-vs-cause when "page is dark": 4 CSS commits before DOM div-balance diagnosis. Trigger: user says "одна страница не работает, другие OK". Mitigation:
grep -c '<div\b'vs'</div>'per file BEFORE adding!importantor color-scheme overrides. - Parallel-claude race normal during active vault work: Roman shipped P4-P11f in same window; ~6 rebase rounds. Cost is manageable when both ship; expect autostash mechanics to leave parallel session's WIP files in your staged set — always check
git statusbeforegit commit, nevergit add -Ablindly. git diff <iso>..HEADinvalid syntax —git diffwants commit refs, not timestamps. Usegit log --since=<iso>for time-based filters. Handoff doc Step 4.5(c) already calls this out (saved me one debug round when I tried it).
Open Questions
- [OPEN] Workstreams visible on preview.offplan.online — Roman's P10/P11b shipped 19 workstream HTML files + status-filter chips. User said «я не думаю что нам надо это всё тут или это Рома?». Deferred to Roman.
- [OPEN] Priority-order tables per Stage 2/3/4 — Stage 1 has its priority table in 01-stage-1-intro.html. User asked for similar in Stages 2/3/4, then interrupted with «не выноси в стадиях фазы пока не надо остальное делай». Deferred.
- [OPEN] Legal entity Abu Dhabi structure — text updated in 14-open-questions.html to reflect CONV-35 signal (Abu Dhabi UAE leading candidate). Specific structure (ADGM / Mainland / DMCC / IFZA / etc.) pending Sergei legal consultation. Unblocks Sub-plan 6 + UAE tax research.
- [RESOLVED via SK-260511-02] Stage 1 plan rendering dark-body bug — closed
<div class="hero">typo instage1_hero(commit31b5bd0). - [RESOLVED via SK-260511-02] Stale
launch-plan-v3-full.html— renamed tolaunch-plan-stage-2.htmlmatching actual content.
Resume Prompt
Stage 1 plan rendering is stable: brandbook v2 palette applied, Exec Summary restored to master with companion-docs cards (Operator Panel / Admin v5 / Brandbook v1.1 / Visual Appendix / Landing / Payments / Legal), critical hero-div typo fix in stage1_hero (commit 31b5bd0). Ilya designer brief committed at docs/briefs/ilya-email-templates.md (7 trial cascade emails T-7…T+29 + 4 standard transactional). (Next 3-5: ping Ilya with brief link; T1 Resend DNS verify offplan.online + offplanonline.com SPF/DKIM/DMARC ~30 min with Roman; Roman pricing → pricing-config.ts; legal entity Abu Dhabi structure consultation; decide with Roman whether 19 workstreams should stay public on preview.offplan.online — his P10/P11b system.) Watch out for: parallel-claude rebase rounds normal (Roman shipped P4-P11f same window); priority-order tables per Stages 2/3/4 deferred — don't auto-add; hero-div symptom trap — «page is dark» looked like browser/CDN/CSS issue for 5 commits, real cause was unbalanced HTML, diagnose with
grep '<div\b' | wc -lvs</div>per file. Confidence: H.
See Also
- Designer brief — Ilya email templates
- Workstream — onboarding-trial-implementation
- Workstream — stage1-roman-integration
- Plan — onboarding-trial-mode (consumes brief)
- ADR 0011 — Email sender architecture (brief implements T5)
- Previous session SK-260511-01
- Parallel session RT-260511-03 (Roman, P4-P11f)