offplan · online
Session · sk-260511-03

SK-260511-03 — admin Phase 4 unblocked: 14-team.html + Settings hub scope + per-module 4-step loop + brandbook on preview

Phase 4 admin-panel-rbac-audit unblocked out-of-order (Phase 3 project-editor untouched). 14-team.html shipped in brandbook v2 canon — Variant A 'Table-first' IA picked from 3-variant wireframe sweep; 5-role member table + sticky role legend rail + role-gated pending invites (M20) + Free Guest with Mered+H&deM Riviera narrative + View-as-Agent stub modal (H14) + studio-language tooltips (H1) + M19 hide-not-lock destructive. Settings hub added as 3rd Phase 4 deliverable (16-settings.html, 6 sections: Organisation/Billing/Integrations/Notifications/Security/Domains) — was implicit in plan but undelivered. New scripts/build-rendered-admin.py self-contained bundler — inlines admin.css + 4 @imports + bundle tokens + Google Fonts + Phosphor sprite + role-switch.js. Initial deploy surfaced 7 admin cards on preview index → Sergei pushed back, restructured to single-entry pattern (top-level admin-dashboard.html + sub-screens under /admin/ subfolder, absolute href paths). Brandbook v2 also copied to preview as canonical reference. Per-module 4-step design loop methodology adopted from sales-app-react plan and amended into admin-panel-project-editor + admin-panel-rbac-audit workstreams.

sessionsk-260511-03
Created
2026-05-11
Updated
2026-05-11
Plan
admin-panel-redesign
Tags
ux, design, architecture, ops, infra

Summary

Phase 4 admin-panel-rbac-audit unblocked out-of-order (Phase 3 project-editor sections 03-13 untouched). 14-team.html shipped in brandbook v2 canon — Variant A "Table-first" IA picked from 3-variant wireframe sweep; 5-role member table + sticky role legend rail + role-gated pending invites (M20) + Free Guest with Mered + H&deM Riviera-narrative reviewers + View-as-Agent stub modal (H14) + studio-language tooltips (H1) + M19 hide-not-lock destructive. Settings hub added as 3rd Phase 4 deliverable (16-settings.html, 6 sections: Organisation / Billing / Integrations / Notifications / Security / Domains) — было implicit в plan (line 245-246 sidebar gear + 02-overview line 206 dead aria-label="Settings" button) но undelivered. New scripts/build-rendered-admin.py self-contained bundler — inlines admin.css + 4 @imports + bundle tokens + Google Fonts + Phosphor sprite + role-switch.js. Initial deploy surfaced 7 admin cards на preview index → Sergei pushed back («зачем плодить?»), restructured к single-entry pattern (top-level admin-dashboard.html + sub-screens под /admin/ subfolder, absolute href paths). Brandbook v2 также скопирован на preview как canonical reference. Per-module 4-step design loop methodology adopted from plans/sales-app-react-module-sequence.md § "Per-module design loop" и amended in workstreams/admin-panel-project-editor.md + workstreams/admin-panel-rbac-audit.md.

What I Did

Decisions Made

For Future Me

Главное что хочется не потерять — bundler идемпотентный, но требует обновления BUILT_SCREENS set когда новые screens ship. В scripts/build-rendered-admin.py есть set BUILT_SCREENS = {...} — добавляешь stem туда + добавляешь SCREEN_META entry + запускаешь python3 scripts/build-rendered-admin.py <new-stem> + python3 scripts/build-rendered-index.py. Если забыть — внутренние href в новых screens будут bounce'ить обратно к dashboard как unbuilt, даже если файл уже существует.

Merge conflicts с parallel session'ами were recurring — Sergei работал в parallel terminal на launch-plan-stage-1.html (через скрипт build-launch-plan-master.py) во время моей admin track work. Каждый push требовал git pull --rebase сначала. Конфликт был один раз в workstreams/admin-panel-rbac-audit.md (upstream добавил schema fields, я переименовал name) — resolved keeping both. Если parallel session снова активна, делать atomic commits + push immediately после Write.

14-team.html визуально не verified — у меня НЕТ chrome-devtools / playwright MCP в этой сессии. Verification была только программная (HTTP 200, HTML balance, drift greps, hex literals, AU English). Sergei должен лично walk через ?as= URL params чтобы убедиться role-gating работает. PAUSE checkbox в workstream остаётся [ ] until walked.

Build flow для 15-activity / 16-settings: тот же 4-step loop. Step 1 Brief — читай plan §339-356 + амендменты для 15-activity / читай новый scope для 16-settings в workstreams/admin-panel-rbac-audit.md строки 81-95. Step 2 /wireframe — для 15-activity: timeline-first vs filter-first vs grouped-by-actor (3 IA variants). Для 16-settings: left section nav vs accordion vs sidebar-within-sidebar. Step 3 Implement в design-system/admin/. Step 4 Live iterate.

Learnings

Open Questions

Resume Prompt

Continue admin track — Phase 4 (admin-panel-rbac-audit). 14-team.html shipped в Variant A brandbook v2 canon, live at preview.offplan.online/admin/14-team.html; Settings hub (16-settings) added as 3rd Phase 4 deliverable. Next 3-5: (1) Sergei visual walk-through of 14-team with ?as=owner|admin|sm|ce|sa role-gating verification — PAUSE checkbox в workstreams/admin-panel-rbac-audit.md still [ ]. (2) Build 15-activity.html via same 4-step loop — Brief → /wireframe 2-3 timeline-IA variants → implement. (3) Then 16-settings.html hub IA. (4) Phase 3 project-editor (03-theme → 13-plates) still untouched — out-of-order flag stays. (5) Phase 5 sign-off after 14/15/16. Watch out for: bundler идемпотентный — python3 scripts/build-rendered-admin.py <stems> && python3 scripts/build-rendered-index.py. When 15/16 ship, добавь stems к BUILT_SCREENS + SCREEN_META в scripts/build-rendered-admin.py. Single-entry pattern для preview index memorized — see feedback_single_entry_for_client_demos.md before any future multi-screen products. Confidence: H.

See Also