offplan · online
Session · conv-38

Session CONV-38

In Progresssessionconv-38

Resume Prompt

Continue admin-panel-redesign track. Phase 1 (admin-panel-foundation) + Phase 2 (admin-panel-onboarding-overview) build-complete CONV-38 — 7 screens live at design-system/admin/: 00-welcome (fork) · 01-onboarding (wizard) · 01-quick-build (split-screen Object Builder w/ Côte sage-marine preview cascade) · 02-overview · 02b-overview-guest, plus shared CSS + Phosphor sprite + 3 wordmarks + role-switch.js + index.html with 18 thumbs. Plan amended to v1.2 (post-signup fork pattern) in plans/admin-panel-redesign.md. Two gates remain unblocked-by-build: (a) Phase 1 brand-language co-sign on _admin-overrides.css (REGISTER-NOTES sign-off block); (b) Phase 2 exit gate — Sergei walks the 00-welcome fork → each card → confirms. Next buildable: /build admin-panel-project-editor — Phase 3, 11 editor screens 03-theme through 13-plates. Start with 03-theme.html (project accent picker excludes status-* hex per M6, wordmark upload, hero font scale, dark/light preview toggle, 6-stop Stone+Moss accent ramp). Local HTTP server on 127.0.0.1:4567 (pid 77598) may still be running — restart via python3 -m http.server 4567 --bind 127.0.0.1 if not. Watch for: substring collisions with --warn/--gold/--navy in BEM class modifiers (rename to --alert pattern per REGISTER-NOTES Refinement 2); nested-anchor bug seen on 02-overview Add-project placeholder; don't touch local mods of docs/decisions/0011-email-sender.md / workstreams/onboarding-trial-implementation.md (parallel session work).

Summary

Built admin-panel-redesign Phase 1 (foundation: 7 shared CSS/asset/JS files — colors_and_type.css w/ --color-* aliases over bundle import, _admin-overrides.css gold/glass/navy/warn guard, admin.css single-entry, _shell.css scoped to [data-app="admin"], _components.css, 37-icon Phosphor sprite + idempotent build script, 3 wordmark variants, role-switch.js, REGISTER-NOTES, index.html with 16-thumb review menu) and Phase 2 (onboarding-overview: 4-step wizard 01-onboarding.html + workspace landing 02-overview.html with verbatim Sub-plan 2 Pick #3 + Pick #14 trial-banner copy + Free Guest landing 02b-overview-guest.html with restricted sidebar). Plan amended mid-build to v1.2 after Sergei feedback that the 4-step wizard missed the atelier Quick Build "wow-moment" — added 00-welcome.html post-signup fork screen with 3 cards (Quick Build / Set up your organisation / Skip to admin) + 01-quick-build.html split-screen Object Builder using bundle's [data-project="cote"] + .project-themed cascade to demo sage-marine live preview end-to-end. Total 7 admin screens live + index.html showing 18 thumbs across 3 phases (Phase 2 = 5 done; Phase 3 + 4 still placeholder pending). Survived a mid-session git pull --rebase --abort from a parallel launch-plan-master split (parallel work merged into main on subsequent fetch; took CONV-37 on Notion). 20 admin commits + 1 plan amendment + 5 workstream-update commits. Visual walks ✓ via Playwright @ 1440×900 across all 7 screens, 0 console errors.

Changes

Decisions

Plan SPEC-AMEND v1.2 mid-build. Sergei pointed at admin-quick-build-atelier-standalone.html (atelier mockup he'd been using outside the canon) and asked "where does this fit?" The original plan called for a 4-step wizard as the entire 01-onboarding — methodical but lost the atelier's split-screen Quick Build wow-moment. Resolution: amend Phase 2 IA to a 3-way post-signup fork. New 00-welcome.html is the chooser; existing 01-onboarding.html stays as the methodical path (Sergei explicitly said the URL should keep pointing at the wizard); new 01-quick-build.html is the fast path; "Skip" goes straight to 02-overview.html. Rejected: rewriting 01-onboarding.html as Quick Build (would orphan committed work, plus methodical users still need the wizard). Coherent narrative kept by reusing Côte Résidence across the entire mock — same project already in 02-overview + 02b-guest + bundle [data-project="cote"] tokens, so Quick Build preview lights up sage-marine "for free" via the brand-contract cascade.

H4 drift-grep regex refined twice mid-build as substring collisions surfaced. Original H4 pattern --gold|--navy|--warn was meant to catch atelier token leftovers but also matched --warning inside BEM modifiers (.banner--warning). Refinement 1: added non-letter boundary ([^a-zA-Z]|$). Refinement 2: even with boundary, .kpi__meta--warn collides because the trailing space is non-letter — basic ERE can't do lookbehind. Convention now is to avoid --warn / --gold / --navy as BEM suffixes; rename to --alert / --caution / similar. Captured in REGISTER-NOTES.md so future contributors don't trip the gate on legitimate class names.

Phosphor sprite via curl-fetch script vs hand-coded paths. Wrote scripts/build-phosphor-sprite.sh (L10 amendment) that fetches 37 icons from phosphor-icons/core@main/raw/regular, strips outer <svg> wrapper, rewraps as <symbol viewBox="0 0 256 256">. Idempotent re-run. Sample script hit a printf-with-leading--- quirk twice (--> was parsed as --+>); fixed by switching the header block to a heredoc and using printf -- '%s' on payload-bearing lines. Rejected: hand-coding 37 SVG paths (high error rate, no rebuild path), or skipping the script and committing the sprite raw (loses reproducibility per L10).

Mid-session git pull --rebase recovery. Sergei pulled mid-build; rebase replayed 11 of my admin commits cleanly, then hit conflict on docs/rendered/launch-plan-stage-1.html (auto-generated artefact from the parallel launch-plan-master split). I picked --theirs per Sergei's choice. Rebase then auto-aborted on the final pick of my aa6747a (01-onboarding) commit. Recovery clean — reflog showed --abort returned to original HEAD; my admin commits intact at their original SHAs; parallel session's work landed on origin/main and was merged in by subsequent fetches. 02-overview.html was uncommitted at pull time and got wiped; rebuilt from session context. No data loss. Documented in workstream session log + this handoff.

Atelier mockup explicitly NOT canon per ADR 0015. Re-affirmed: admin-quick-build-atelier-standalone.html is a visual reference for IA / layout / density inspiration, not a source of canonical tokens or visual register. Our 01-quick-build.html follows the atelier's split-screen structure but renders in brandbook v2 canon (Skeleton White / Helvetica Neue / oxidised status / no gold / no glass). Brand-contract cascade ([data-project="cote"] + .project-themed from bundle) inside the preview frame is the engineered demonstration that the per-project brand system works end-to-end.

Next Steps

  1. Sergei walks 00-welcome.html → clicks each of 3 cards → confirms correct landings (Phase 2 v1.2 exit gate)
  2. brand-language-and-identity workstream owner co-signs _admin-overrides.css defensive unset list in REGISTER-NOTES.md sign-off block (Phase 1 close)
  3. /build admin-panel-project-editor — Phase 3, 11 screens 03-theme through 13-plates. Start with 03-theme.html (project accent picker excludes --color-status-* per M6, wordmark upload, hero font scale, dark/light preview toggle, 6-stop Stone+Moss accent ramp)
  4. After Phase 3: /build admin-panel-rbac-audit (14-team.html + 15-activity.html per ADR 0004 v2) then /build admin-panel-sign-off (axe-core a11y sweep + OPEN-QUESTIONS + Roma+Ilya review)
  5. After Phase 5 sign-off: open follow-on admin-panel-trial-ux workstream — 2 trial-period locks + 8-12 post-trial locks + 3 success upsells + reactivation modal + 7 trial email templates from CONV-35 Sub-plan 2

Open Questions

Context for next session