cocottetech/@platform/codebase/@features/ai-copilot/docs/surfaces-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

8.7 KiB
Raw Blame History

Surfaces settings · screen

The operational view of every surface Quinn touches. Reached from chat-home settings overlay or from any surface chip's long-press. Pairs with brief O (canonical roster), brief F §F5 (iconography + status-state overlays), brief L §L1 (specialist routing per surface).

Voice register: plain — this is an operational surface, not a hearth one.

Layout (iPhone, scrollable)

┌────────────────────────────────────────┐
│  ←   Surfaces                          │
├────────────────────────────────────────┤
│  [filter: live · pending · blocked]    │
├────────────────────────────────────────┤
│  N1 · Content (11)                ▾    │
│  ◉ OnlyFans      live · last post 2h   │
│  ◉ X (Twitter)   live · last post 47m  │
│  ◌ Instagram     thin · draft-only     │
│  ◌ TikTok        thin · draft-only     │
│  ◌ Threads       thin · cross-post     │
│  ◌ Bluesky       not active · enable   │
│  ◌ Reddit        not active · enable   │
│  ◌ Fansly        not active · enable   │
│  ◌ YouTube       not active            │
│  ◌ Twitch        not active            │
│  ◌ Facebook      not active            │
├────────────────────────────────────────┤
│  N2 · Escort directories (12)     ▾    │
│  ◉ Tryst         live · bumping 4h     │
│  ◉ TS4Rent       live · bumping 4h     │
│  ◉ Seeking       live · listing        │
│  ⚠ PrivateDelights pending verification│
│  ◉ TSEscorts     live · Berkeley CA    │
│  ◉ AdultSearch   live · ID 3809904     │
│  ◉ AdultLook     live · plain-text     │
│  🔒 Eros          blocked · legal name  │
│  ⚠ EroticMonkey  verification video    │
│  ⚠ SkipTheGames  photo rejected        │
│  ◌ MegaPersonals not started           │
│  ⚠ ts.live       email-verify pending  │
├────────────────────────────────────────┤
│  N3 · Brand sites (3)             ▾    │
│  ⬛ transquinnftw.com  live · canonical  │
│  ⬛ adult-therapy…    live · tour pages │
│  ⬛ futa-waifu-tour    live · niche     │
├────────────────────────────────────────┤
│  N4 · Channels (6)                ▾    │
│  ▣ iMessage    live · auto-reply       │
│  ▣ SMS         live · draft-only       │
│  ▣ Email (Proton: hi@cocotte.maison)   │
│                  live · draft-only     │
│  ▣ Email (Proton: myprivatedelights@…) │
│                  live · auto-archive   │
│  ▣ Email (Gmail) read-only             │
│  ▣ Sniffies    light · hands-off       │
├────────────────────────────────────────┤
│  N5 · Commerce (4) — P5+ enumerated only │
└────────────────────────────────────────┘

Status-state glyphs (per brief F F5b overlays)

Glyph Meaning Color
◉ filled circle live, active accent-rose
◌ hollow circle live but thin / not in use neutral
⚠ amber pending verification or verification problem amber
🔒 lock blocked (legal / policy) neutral-low-opacity
rounded square Quinn-owned brand site (N3) rose
▣ rounded square (channel) N4 channel (geometry distinguishes from surface) channel tint

Status glyph + display name + one-line context (last action / current policy / verification state).

Row interactions

  • Tap row: opens surface-detail sheet (below).
  • Long-press: bulk-select for "snooze all selected" / "set posture to draft-only on selected" / "open audit for selected."
  • Swipe left: snooze (per H1 vacation pattern, scoped to this surface).
  • Swipe right: shortcut to the corresponding specialist drawer (brief B6).

Surface-detail sheet (the per-row deep-dive)

┌────────────────────────────────────────┐
│  Tryst                              ✕  │
│  N2 · Escort directory                 │
│  Specialist: bookings-tryst            │
├────────────────────────────────────────┤
│  Status     live                       │
│  Policy     4h bumps (active 1002)    │
│  Last bump  11:02 · OK                 │
│  Next bump  15:02 · in 1h 23m          │
│  Last fail  03:14 → recovered 03:16    │
├────────────────────────────────────────┤
│  Trust (last 30d)   0.94 ▰▰▰▰▰▰▰▱▱▱   │
│  Actions            247 · 3 corrections│
│  Profile            edited 2 days ago  │
├────────────────────────────────────────┤
│  [ Edit policy ]                       │
│  [ Open audit (Tryst slice) ]          │
│  [ Pause bumps ]   [ Snooze ]          │
│  [ Re-auth ]       [ Archive surface ] │
└────────────────────────────────────────┘

States to render

  1. Default — all surfaces grouped, filter "all", live + pending visible.
  2. Filter: live only — N3 brand sites and live N2 directories shown.
  3. Filter: pending — surfaces needing Quinn attention (verification, photo rejected, email pending).
  4. Filter: blocked — surfaces locked behind external dependencies (Eros legal name).
  5. Empty after filter — "No surfaces in this state right now."
  6. Surface-detail sheet for a live surface (Tryst pattern above).
  7. Surface-detail sheet for a pending surface — replaces policy block with verification-status block + a "What's needed" list.
  8. Surface-detail sheet for a blocked surface — replaces actions with a single "What's blocking" note (e.g. "Legal name change must complete first") and a "Notify me when ready" toggle.
  9. N5 commerce stub — section collapsed by default with explainer: "Enumerated for completeness. No design effort until Quinn opts in."

Edge cases

  • Newly-active surface (e.g. Quinn just turned Bluesky on) — appears with a small new chip until Quinn acknowledges by opening the detail sheet once.
  • Status drift (Tryst lost auth overnight; system flips status to pending behind the scenes) — appears as ⚠ with banner inside the detail sheet: "Auth expired at 04:12. Re-auth to resume."
  • Specialist promotion proposal (bookings-directories is suggesting seeking graduate to its own specialist per brief L promotion path) — surface-detail sheet for seeking shows an inline card: "Cocotte thinks Seeking has earned its own specialist. Promote to bookings-seeking? — Approve / hold."
  • Bulk-select with mixed states — disable bulk actions that don't apply (e.g. "pause bumps" disabled if selection includes a non-bumping surface).

Brief O open questions that touch this screen

  • O-Q1 Sniffies — currently rendered under N4 channels with light surface label; if reclassified to N2 directory the row moves and gets a bump policy.
  • O-Q2 Seeking — currently under N2; if reclassified to its own category, a new section appears between N2 and N3.
  • O-Q3 Bluesky / Reddit / Fansly priority — rendered as not active · enable rows; if deprioritized to noise, they should be filterable to hidden.

These three are blocking for the rendering choices made above. See OPEN-DECISIONS.md.

  • brief O — canonical roster.
  • brief F §F5 — iconography + status overlays.
  • brief L §L1 — specialist routing per surface.
  • brief H §H5 — multi-surface card density (relevant when "snooze N selected" fans out).
  • brief K §K3c-4 — Eros blocked-state hard rule.
  • degraded-mode.flow.md — what happens when a surface row flips to ⚠.