cocottetech/@platform/codebase/@features/ai-copilot/docs/org-overlay-settings.screen.md
natalie 1b719e1fd7 chore(bootstrap): initial V4 commit
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>
2026-05-18 08:11:41 -07:00

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

  1. Single-member org (Quinn alone) — default; member list has 1 row.
  2. Multi-member org — member list grows; pending invitations show as separate sub-section with "Resend / Cancel" affordances.
  3. Member-private specialist context — when this screen is opened by a non-owner, only their per-member specialists shown; org-wide ones read-only.
  4. Brand-add flow active — sheet over for new brand details.
  5. Compliance jurisdiction conflict (org operates in jurisdiction X but brand Y is banned there) — inline warning chip on the brand row.
  6. Billing change pending (switching centralized → per-member) — banner: "Change effective next billing cycle ({date})."
  7. Dissolution in progress — banner: "Org dissolving on {date}. Members will be migrated to personal accounts. [Cancel]"
  8. 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-tryst vs org's) — per-member wins for that member.

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).