V1.5 · "Twin can do" · workflows + architecture review
Gemini can talk; your Twin can do
Two end-to-end workflows on the voice-first Twin surface — a booking task and a guided goal — and the architecture changes that make them possible.
1 · one-tap entry from Home
Your twin is listening, Marlize
Find me a plumber in Sandton|
Home command bar is the entry point — submitting opens the Twin surface with the message already sent (B1).
2 · find_service returns options
MyTwin+
● Online · ready to act
Find me a plumber in Sandton please
Found 3 well-rated plumbers near Sandton. Pick one and I'll book.
🔧
Pro Plumber Sandton
4.8★ · 76 reviews · 1.2 km
Book this one
🔧
Plumber Sandton
4.5★ · 52 reviews · 2.8 km
Book this one
Gemini calls find_service("plumber","Sandton") — the declared-tool version of the existing Places path (A1).
3 · one clarifying question
MyTwin+
● Online · ready to act
Book Pro Plumber
When suits you? They have slots tomorrow.
Tomorrow 09:00
Afternoon
Pick a day
One question, one at a time — quick chips answer it in a tap. Conversation state comes from the last 10 stored messages (A4).
4 · executed, confirmed, undoable
MyTwin+
● Online · ready to act
Pro Plumber Sandton · added to your calendar with a reminder 1 hr before.
Done. Want me to text you their number too?
→ users/uid/events (Calendar streams it)
→ users/uid/reminders
undo window: 5 min
action_done card with 5-min Undo. The executor wrote to Firestore, so Calendar shows the event with no app restart.
1 · broad goal → short interview
MyTwin+
● Online · ready to act
Twin help me plan my 18th birthday 🎉
Yes! Let's get it done. Two quick things — roughly how many friends?
And the vibe — pool party, dinner, or something wild?
pool party 💦
System prompt caps the interview at 2–3 questions, one at a time — never an interrogation (A2).
2 · create_plan → checklist card
MyTwin+
● Online · ready to act
Plan · 18th birthday pool party
Assuming ±20 guests, home pool, budget ~R2 500 — correct me.
Venue shortlist — 3 pool venues near you
Date poll to friends group
Budget estimate — R2 500 split
Playlist draft
Cake order — reminder 12 Aug
Invites out 2 weeks before
Add all to calendar
Saved your plan — 6 steps. Cake reminder is on 12 Aug; I'll nudge you. Find pool venues now?
Draft plan with stated assumptions beats a 4th question. Steps live at users/uid/plans/planId; tapping a step writes back.
3 · preference remembered
MyTwin+
● Online · ready to act
no meat for the braai, I'm vegetarian btw
Got it — updated the menu to vegetarian options.
Remembered: food · dietary · vegetarian
edit
save_preference("food","dietary","vegetarian")
→ users/uid/twin_profile/preferences
no-op if consent flag is false
A stable preference is saved transparently — the inline chip links straight to the memory screen. Sensitive data is never stored (A2).
4 · "My Twin's memory" (POPIA)
My Twin's memory
Your Twin remembers these to personalise help. Delete anything — it stops being used immediately.
Food
Style
Budget band: mid✕
Likes: pool parties✕
Forget everything
Profile → My Twin's memory streams the preferences doc; per-item delete + "Forget everything" (B2). Consent captured at onboarding (B3).