cocottetech/@platform/codebase/@features/ai-copilot/docs/D-onboarding.brief.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

4.3 KiB
Raw Blame History

D — Onboarding + persona-seed interview

Goal

First-run experience: get Quinn from cold-install to a working ai-copilot in under 5 minutes, with a seeded personas row that ai-copilot + content-* specialists can lean on from day one.

Designer skim

  • Headline UX: 5-minute first-run. SSO device-link → conversational persona-seed interview (812 Qs via voice or text) → ai-copilot summarizes + Quinn approves → handoff to chat-home.
  • Flows (3): D1 SSO device-link · D2 persona-seed interview · D3 first-run empty state.
  • States (7): splash · device-link in progress · device-link error · mid-interview turn · persona summary review · persona save error · onboarding complete.
  • Pair-with: persona-seed-interview.screen.md.
  • Blocking Qs: OPEN-DECISIONS.md → D-Q1 voice-vs-text default, D-Q2 interruptible TTS.

Constraints

  • Auth via SSO device-link against quinn.sso (federated, P0); will migrate to platform.sso later — UI should be auth-provider-agnostic.
  • Persona-seed interview is voice + text: Quinn can speak answers (TTS prompts; STT capture) OR type. Mixing is fine.
  • Persona is written via PATCH /api/v1/personas/:user_id once the user record exists.
  • Reuse lilith-messenger-ios/Core/Auth/{AuthManager,SSOAuthenticator,KeychainService}.swift — port unchanged.

Flows

  1. Splash with brand mark (CocotteAI).
  2. Tap "Sign in" → opens device-link QR / code displayed on iPhone.
  3. Quinn scans on a trusted device OR enters the code in quinn.sso's portal.
  4. Device link confirmed → JWT issued → Keychain storage → home.
  5. If user has no personas row → push to D2.

D2 — Persona-seed interview

A guided conversation, ~812 questions, surfaced as a chat thread with ai-copilot. NOT a form.

Question shapes (designer to refine wording):

  • "What's your brand voice in one sentence?" (free text, ~140 chars)
  • "Pick 35 words your audience would say about you." (chip select with custom-add)
  • "Who's your audience? Walk me through a typical fan." (free text / voice)
  • "What surfaces do we plan for? OF / X / IG / TikTok / Tryst / TS4Rent / others?" (multi-select)
  • For each selected surface: "Different voice here than your default? (yes/no — if yes, how?)"
  • "What's off-limits? Topics, kinks, places I should never bring up." (free text, multiline)
  • "What's a typical week like? When do you shoot? When do you post?" (free text / voice)
  • "Anything I should know to not embarrass you?" (catch-all)

After: ai-copilot summarizes the persona back to Quinn and asks for sign-off. On approval → write personas row.

D3 — First-run empty state (after persona seed)

  • "Welcome — strategist is drafting your first 14 days. Back in ~30 seconds."
  • Progress indicator while strategist runs (post-P0 — for P0 this state is "We're ready when you upload your first shoot or DM us a question").

States to design

  • Splash (signed-out).
  • Device-link in progress (waiting on QR scan).
  • Device-link error (timeout, wrong code).
  • Mid-interview turn (question + voice/text input options).
  • Persona summary review.
  • Persona save error.
  • Onboarding complete → handoff to chat home.

In-the-wild copy

Splash CTA (hearth, dialed warmer — first impression):

Welcome. Set the kitchen up.

Device-link in progress (working):

Scan the code on a trusted device. Cocotte will know it's you.

Mid-interview question, voice or text (hearth):

Two more, then she'll let you go. What's a typical week? When do you shoot, when do you post?

Persona summary review (working — Quinn is deciding):

Here's what Cocotte heard. Voice: warm, dry, no marketing. Off-limits: real name, ex, Vegas. Surfaces: OF, X, Tryst, TS4Rent. Save and start, or rework anything?

Onboarding complete, handoff (hearth):

She's ready. Drafts will be in the drawer by morning.

Out of scope

  • Multi-account switching (Quinn's only operator P0).
  • Reset-and-redo persona (lives in persona-editor drawer, brief B5).

Open questions

  • Voice-first or text-first as the default input mode?
  • Should the interview accept Quinn typing while ai-copilot is still speaking the next question (interruptible TTS)?
  • Skip-to-end affordance, or force completion?