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>
5.5 KiB
5.5 KiB
persona-drawer.screen
The persona drawer — Quinn's voice/identity facets per brief B §persona + the persona system ported from v2 per brief J. One per-persona card per row; tap to edit. Voice: working.
Layout (full-screen drawer)
┌─────────────────────────────────────────────────┐
│ ◄ Chat + new │ 56pt
├─────────────────────────────────────────────────┤
│ 4 personas active │
│ │
│ ┌─────────────────────────────────────────────┐│
│ │ Cocotte umbrella · hearth ││ persona card
│ │ Used by: content-onlyfans, content-social, ││ consumed-by chips
│ │ bookings-tryst (receipts only) ││
│ │ Last edited: 2d ago ││
│ │ [ Edit voice → ] [ See prompt fragment ] ││
│ └─────────────────────────────────────────────┘│
│ ┌─────────────────────────────────────────────┐│
│ │ Cocotte booking · working ││
│ │ Used by: bookings-* on policy lines ││
│ │ Last edited: 5d ago ││
│ └─────────────────────────────────────────────┘│
│ ┌─────────────────────────────────────────────┐│
│ │ transquinnftw-contact · plain ││
│ │ Used by: ai-copilot when subject matters ││
│ └─────────────────────────────────────────────┘│
│ ┌─────────────────────────────────────────────┐│
│ │ Sansonnet · hearth (separately-held) ││ per brand-family
│ │ Used by: bookings-*-sansonnet, content-*-… ││
│ └─────────────────────────────────────────────┘│
│ │
│ ─── Inactive / archived ─── │
│ [ Show archived ▾ ] │
│ │
└─────────────────────────────────────────────────┘
Components
| Component | Notes |
|---|---|
| Top bar | Back + "+ new" persona. |
| Persona card | Name + voice lean (hearth/working/plain) + consumed-by chips + last-edited + edit / see-prompt actions. |
| Brand-family note | Personas marked per DESIGN.md §7.5 — Cocotte umbrella vs Sansonnet separately-held vs Quinn-talent. No demimonde* personas exist (back-office, never customer-facing). |
| Archived section | Soft-deleted personas (audit-preserved per brief I). |
States
- Default — list of active personas.
- Editing a persona (Edit tapped) → persona-edit sheet (separate component): voice register lean, prompt fragment, off-limits, brand association.
- Creating new ("+ new" tapped) → blank persona-edit sheet.
- Persona linked to a retired specialist — chip "consumed-by 0 specialists."
- Persona last-edited > 90d — chip "stale, may need refresh."
- Conflicting personas (overlap in voice lean + consumed-by) — warning chip "overlaps with {other persona}; consolidate?"
- VoiceOver — cards read name + lean + consumed-by + last-edited.
Interactions
- Tap "Edit voice" → persona-edit sheet.
- Tap "See prompt fragment" → fragment viewer (read-only by default; editable for power users).
- Tap a consumed-by chip → specialist-drawer.screen.md.
- Long-press card → "Archive" / "Duplicate" / "Talk to a specialist using this persona."
- Tap "+ new" → persona-edit sheet.
Edge cases
- Persona with no consumed-by specialists — chip "orphaned"; suggested action: "Archive or attach to a specialist."
- Editing prompt fragment introduces banned phrases (per voice §V6) — inline warning on save.
- Brand-family migration (rename of brand domain) — auto-suggests persona-rename consistent with brand changes.
Related
- Brief B — parent.
- Brief J — persona shape ported from v2.
voice.md— voice lean source.- specialist-drawer.screen.md — consumed-by target.
- DESIGN.md §7.5 brand-family — naming conventions for personas.
- persona-seed-interview.screen.md — first-run persona seeding.
Out of scope
- Persona-edit sheet interior (its own screen if grows beyond a textarea + toggles).
- Cross-tenant persona sharing (brief Y marketplace).