Clean successor to V3 (forge: lilith/atlilith). Seeded from local Mac working tree at ~/Code/@projects/@cocottetech/. node_modules and build artifacts excluded via .gitignore. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
6.1 KiB
6.1 KiB
org-overlay-settings.screen
Org-level settings (members, brands, billing inheritance, data scoping) for org-admins. Implements brief W. P5+ — speculative. Reached from settings-root.screen.md when Quinn-as-org-admin context is active. Voice: working.
Layout (full-screen sheet)
┌─────────────────────────────────────────────────┐
│ ◄ Settings Done │ 56pt
├─────────────────────────────────────────────────┤
│ │
│ Demimonde (back-office) │ org name
│ Owner: Quinn · Members: 1 · Brands: 1 │ summary
│ │
│ ─── Identity ─── │
│ Legal name: Demimonde LLC │
│ Customer-facing brand: Cocotte │
│ Tax ID: ••• · [ Update ] │
│ Compliance jurisdictions: US-CA, DE-BE │
│ │
│ ─── Members ─── │
│ • Quinn (owner) · since 2026-05 │
│ [ + Invite member → ] │
│ │
│ ─── Brands operated ─── │
│ • Cocotte umbrella · cocotte.maison │
│ • ADULT Therapy Tour · adulttherapytour.com │
│ • Futa Waifu Tour · futawaifutour.com │
│ [ + Add brand → ] │
│ │
│ ─── Data scope ─── │
│ Org data visible to all members: [☑ default ] │
│ Per-member private data: [ Member private ▼ ] │
│ │
│ ─── Billing inheritance ─── │
│ Members billed: ● Centrally by Demimonde │
│ Personal plans: ○ Each member pays │
│ Current spend: $49 (1 member) │
│ │
│ ─── Specialist scope ─── │
│ Org-wide specialists: triage, prospect-resolver│
│ Per-member specialists: bookings-*, content-* │
│ [ Edit scoping → ] │
│ │
│ [ Dissolve org ▼ ] │
│ │
└─────────────────────────────────────────────────┘
Components
| Component | Notes |
|---|---|
| Identity | Legal name (back-office), customer-facing brand, tax ID, compliance jurisdictions per K §K4. |
| Members | Member list with role + join date + invite CTA. Routes to second-member-invite.screen.md. |
| Brands | Brands operated under this org. Each row + "add brand" CTA. |
| Data scope | Who sees what. Default = all members see all org data; per-member private slice supported. |
| Billing inheritance | Centralized (org pays for everything) or per-member. Per brief Z. |
| Specialist scope | Which specialists are org-wide (shared trust + history) vs per-member (each member has their own). |
| Dissolve org | Destructive — multi-step. |
States
- Single-member org (Quinn alone) — default; member list has 1 row.
- Multi-member org — member list grows; pending invitations show as separate sub-section with "Resend / Cancel" affordances.
- Member-private specialist context — when this screen is opened by a non-owner, only their per-member specialists shown; org-wide ones read-only.
- Brand-add flow active — sheet over for new brand details.
- Compliance jurisdiction conflict (org operates in jurisdiction X but brand Y is banned there) — inline warning chip on the brand row.
- Billing change pending (switching centralized → per-member) — banner: "Change effective next billing cycle ({date})."
- Dissolution in progress — banner: "Org dissolving on {date}. Members will be migrated to personal accounts. [Cancel]"
- VoiceOver — sections read in declared order; sensitive fields (tax ID) announce as "redacted, double-tap to reveal."
Interactions
- Tap "Invite member" → second-member-invite.screen.md.
- Tap a member row → member-detail (own screen if grows).
- Tap "Add brand" → brand-config sheet.
- Tap "Edit scoping" → specialist-scope editor.
- Tap "Dissolve org" → multi-step confirmation; routes through V-style erasure flow for any org-only data.
Edge cases
- Removing the only owner → blocked; chip: "The owner can't be removed without transferring ownership first."
- Dissolution while billing-failed — pre-dissolution requires settling outstanding balances or arranging it.
- Brand sharing with a separately-held Sansonnet org (per DESIGN brand-family) — Sansonnet has its own org overlay; cross-org brand listing not supported.
- Member private specialists conflict with org-wide ones (e.g. one member's
bookings-trystvs org's) — per-member wins for that member.
Related
- Brief W — parent.
- Brief Z — billing inheritance.
- Brief K §K4 — jurisdiction.
- Brief V — dissolution data flows.
- second-member-invite.screen.md — invite target.
- DESIGN.md §7.5 brand-family — the Cocotte / Demimonde / Sansonnet model.
Out of scope
- Cross-org member sharing (one member working for two orgs — defer).
- Org-level analytics drill-down (separate screen).
- Org migration (one org owner transferring to another — defer).