Fresh history cut from cynarAI/evoo antigravity-handoff/project-timeline (Voice First + project timeline). Brand docs/titles as evOo; keep @rakazo/* packages as tech debt. Excludes node_modules, caches, secrets, voice blobs.
3.7 KiB
Persona & crew selection — personalization bar
evOo must adapt to each user more individually than any other app. Persona/crew fit is lifestyle-agnostic: office worker with hobbies, club/scene person, hardcore programming nerd — the product does not care. They get what they want in the simplest way.
Accessibility of ambition (skill floor / ceiling)
It must not matter whether the user is a power user. One product; radically different crews and Unterhaltungen.
| Example need | Crew shape | Entry | Depth |
|---|---|---|---|
| Thermomix help (mom) | Home/kitchen specialist | Grandma-simple | Excellent in that domain |
| Hard mathematical calculation | Quant / math specialist | Plain ask, no LaTeX required | Expert-grade |
| Software development | Engineer / architect Oos | Simple “build this” | Expert-grade |
Skill floor = grandma-simple — no power-user literacy required to start or win.
Skill ceiling = expert-grade per specialty — not one bot that is mediocre at everything.
Onboarding and shell copy stay on the floor; spawned specialists and thread depth carry the ceiling. Never conflate “simple UI” with “dumb agent.”
Emergent ensemble
More individualists > one generalist. Each Oo is a narrow expert; value emerges in Gruppenunterhaltungen when different lanes combine (handoffs, peer replies, parallel work). Never design copy or flows that suggest one Oo could replace the crew.
Ties: no Wunderwuzzi · specialty depth · group fun friction · docs/GROUP-CONVERSATIONS.md.
Relationship over time
| Principle | Persona/memory |
|---|---|
| Always on | Steady availability in copy — not nagging |
| Compounding | MEMORY + threads deepen with use; onboarding seeds only honest signals |
| Never creepy | No inferred lifestyle; consented harvest only |
| Not yes-men | Pushback in-lane; voice copy allows disagreement (docs/OO-RELATIONSHIP.md) |
Companion tone (never one personality for everyone)
| Mode | When |
|---|---|
| Geek-peer / Fachsimpeln | User wants depth — match enthusiasm, stay in lane, no lecture |
| Quiet-doer | User wants outcomes — execute, hand off, never act like we know better |
Both modes forbid condescending Wunderwuzzi behavior. Specialists defer out-of-lane work to other Oos.
Inference → spawn/select (not assign)
Onboarding harvest builds hints in user MEMORY.md (user-help-vibe.ts):
- Observed signals — computer attached, self-hosted model, locale, focus choice, connectors (when known)
- Suggested specialist lanes — archetypes from
bot-persona.ts, not lifestyle buckets - Interaction style —
unknownuntil focus choice or conversation; thengeek-peerorquiet-doer
| Focus choice (onboarding) | Typical lanes | Interaction lean |
|---|---|---|
| Day-to-day work | inbox-work, chief-operator, curator | quiet-doer |
| Inbox & email | inbox-work, inbox-life, chief-operator | quiet-doer |
| Research & writing | curator, builder, engineer | geek-peer |
| Specialist crew | chief-operator, specialist (+ add as needed) | learn first |
TODO: Use hints to propose Unterhaltungen, spawn templates, and project folders — never a single default crew.
Archetype detection (existing)
Runtime persona comes from bot name / title / description → resolvePersonaArchetype() in apps/web/src/lib/bot-persona.ts. Templates under templates/ are starting points; user fit beats template defaults.
When writing template copy or voice lines: narrow scope, peer tone option, no omniscient helper voice. Default utterances assume floor literacy; specialist instructions and tools assume ceiling competence in-lane.