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
cd98a60— 14-team.html in brandbook v2 canon + Settings scope expand + rendered bundler. 1250 lines Variant A IA: 5-role member table (Sergei Owner / Roman Admin / Anna SM / Ilya CE / Maria SA) с oxidised role badges (M7 5-stop), sticky role legend rail с H1 studio-language tooltips, M20 role-gated pending invites (3 sample rows), Free Guest section (Khalid Al-Mansour @ Mered + Pierre Herzog @ H&deM, Riviera narrative continuity), H14 View-as-Agent Owner-only kebab → stub modal documenting ADR 0004 v2 audit-entry shape. M19 hide-not-lock implemented via CSS guards onbody[data-role="ce"]/body[data-role="sa"]. Sprite extended +2 icons (dots-three-vertical,envelope-simple).ad43aa4— Bundled full client dashboard (7 screens) to preview.offplan.online. Bundler script inlines all dependencies into single self-contained HTML (Cloudflare Pages deploys onlydocs/rendered/). Output:admin-dashboard.html+ 6 admin-NN-*.html. Internal nav rewritten so cross-screen links work; unbuilt screens (03-13, 15, 16) gracefully fall back to dashboard menu (no 404s).9c8fbeb— Refactor: collapse 7 cards to 1 on preview index after Sergei feedback. Subfolder pattern:admin-dashboard.htmlstays top-level (1 card на index); sub-screens move todocs/rendered/admin/*.html(subfolder = served by CDN, excluded from non-recursive index glob). Absolute href paths (/admin/<stem>.html,/admin-dashboard.html) so navigation works from either location.5f9c3c4— Brandbook v2 на preview. Скопированdesign-system/bundle/project/reference/brandbook-v2.html(self-contained, inline CSS + Google Fonts CDN) →docs/rendered/brandbook-v2.html+ добавлены preview-index meta tags (kind=reference, group=brandbook, status=approved).- Workstream method amendments —
admin-panel-project-editor.md§ Method (4-step loop + module-type classification table: 7 density / 4 photo-heavy + PAUSE checkboxes),admin-panel-rbac-audit.md(scope 2→3 screens, merge conflict from upstream rebase resolved by keeping new schema fields + Settings-expanded name). Memory entryfeedback_single_entry_for_client_demos.mdwritten.
Decisions Made
- Variant A "Table-first" picked for 14-team (alternative: Variant B role-grouped cards / Variant C tabs+compact). Rationale: studios scaling to 8+ members need fast scan; role legend as right-rail reference (you remember roles after week 1). Tradeoff: more vertical density vs Variant C's compact-per-tab approach.
- Settings hub added к Phase 4 scope (16-settings.html) instead of distributing into other screens. Rationale: Stripe/Vercel/Linear pattern — single home для infrequent-but-cumulative scope (Organisation / Billing / Integrations / Notifications / Security / Domains). Alternative considered: distribute settings inline в context (Billing где upgrade prompt, Notifications в profile menu) — rejected because Stage 1 settings touch 1 раз на старте, central location easier найти через месяцы.
- Per-module 4-step design loop method adopted from
plans/sales-app-react-module-sequence.md§ "Per-module design loop" — applied к admin track via workstream amendments (not plan re-ratification). Rationale: Phase 1+2 «сразу в код» подход не масштабируется на 11 (Phase 3) + 3 (Phase 4) screens varying density. Brief →/wireframefor density-modules → Implement → Live iterate. PAUSE checkboxes make gate/build-enforceable. - Single-entry pattern for client demos on preview — subfolder for sub-screens, top-level entry-point file (
admin-dashboard.htmlстало canonical). Rationale: Sergei pushed back when initial deploy showed 7 admin cards on preview index, said «зачем плодить?» — one product = one card. Pattern reusable when sales-app-react ships to preview. - Out-of-order Phase 4 build (Phase 3 project-editor untouched) — Phase 4 surfaces functionally independent (no shell/component dependencies beyond
admin-panel-foundation). Acknowledged as flag в What's Next в обоих workstreams.
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
- Single-entry-on-preview pattern для multi-screen client demos (memorized as
feedback_single_entry_for_client_demos.md). Subfolder underdocs/rendered/deploys to CDN but excluded from non-recursive index glob — exactly what we need. build-rendered-index.pyglob is non-recursive (top-leveldocs/rendered/*.htmlonly). Subfolders are deployed but not indexed. Useful side-effect for organization.build-phosphor-sprite.shprintf-with----quirk — already documented в CONV-38, encountered again here when extending sprite. Solution remains: heredoc для header +printf -- '%s'для payload. Idempotent re-run sticks.- Per-module 4-step design loop scales наши design pipeline на surfaces с 10+ screens varying density. Атлас 11-14 admin screens without wireframes-first risk drift; with wireframes-first risk only the IA-defining moment.
Open Questions
- [OPEN] 14-team визуальный walk pending — Sergei должен открыть
https://preview.offplan.online/admin/14-team.html+?as=owner|admin|sm|ce|sa+ подтвердить role-gating работает + PAUSE checkbox[x]вworkstreams/admin-panel-rbac-audit.md - [OPEN] 15-activity.html — Phase 4 task 2, not started. Needs Brief +
/wireframe2-3 timeline-IA variants + implement. - [OPEN] 16-settings.html — Phase 4 task 3 (newly scoped), not started. Hub IA wireframe choice still open.
- [OPEN] Phase 3 project-editor (03-theme → 13-plates, 11 screens) untouched — out-of-order build flag, resumes after Phase 4 closes.
- [OPEN] Roman pricing input + legal-entity-lock — multi-session carry-over, still blocking onboarding-trial-implementation Phase 1.2.2 URL middleware (per SK-260511-01 handoff).
- [RESOLVED via SK-260511-03] Settings scope question — added к Phase 4 (was implicit но undelivered)
- [RESOLVED via SK-260511-03] 14-team IA — Variant A picked, implemented, bundled, deployed to preview
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|sarole-gating verification — PAUSE checkbox вworkstreams/admin-panel-rbac-audit.mdstill[ ]. (2) Build15-activity.htmlvia same 4-step loop — Brief →/wireframe2-3 timeline-IA variants → implement. (3) Then16-settings.htmlhub 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 — seefeedback_single_entry_for_client_demos.mdbefore any future multi-screen products. Confidence: H.
See Also
- Plan: admin-panel-redesign
- Workstream: admin-panel-rbac-audit
- Workstream: admin-panel-project-editor
- Plan: sales-app-react-module-sequence (source of 4-step design loop pattern)
- Memory: feedback_single_entry_for_client_demos
- Previous session: SK-260511-01
- Parallel admin track: CONV-38
- Live: preview.offplan.online/admin-dashboard.html
- Live: preview.offplan.online/admin/14-team.html
- Live: preview.offplan.online/brandbook-v2.html