Pakkttalk · Spec ← All modules

Module 1 — Pre-Event

Everything that happens before a threat is real. The goal of this module is one thing: get Maria armed, trusted, and practiced — so the 0.7 seconds after a stranger grabs her arm go exactly right.

PhaseBefore the ride Use casesUC-1 → UC-5 PersonaMaria, Lyft driver, Atlanta TriggerNone yet — onboarding only
UC-1DISCOVER UC-2INSTALL UC-3ONBOARD UC-4DRILL UC-5SHIFT ARM App Store Phone OTP 6 permissions Mock event ARMED ●
Setup step App becomes armed

Why this module exists

The hardest part of the product is not the 30-second emergency — it's earning the right to be there when it happens.

🪪

Trust before trigger

Drivers don't subscribe to a "panic button." They subscribe to a system they've practiced with, that respects their data, and that they can hand to a colleague without embarrassment.

The drill is the product

UC-4 (first safety drill) is the moment muscle memory forms. Without it, the trigger phrase is just words on a screen. With it, Maria's mouth says "Mayday Mayday Mayday" before her brain catches up.

🔋

Background by design

By UC-5, the app must run all shift without draining the phone, alerting the passenger, or competing with the Lyft driver app. Anything that breaks that contract kills retention.

UC-1

Discover the app

Actor: Maria · Trigger: Driver Slack screenshot or IG ad

Why it matters: The Slack screenshot is more persuasive than any ad. Every retention metric downstream traces back to this one impression.
UC-2

Install & account creation

Actor: Maria + Mayday auth backend · Trigger: Tap "Get"

Pre-condition: iOS 17+ / Android 14+. Older OS shows a graceful "update required" screen instead of crashing.
Post-condition: App routes to UC-3.
UC-3

Onboarding & configuration

Actor: Maria + Mayday iOS app · ~6 minutes · Cannot skip the drill

Post-condition: App routes to drill. Encrypted vault holds wake-word model + voiceprint; contacts indexed.
UC-4

First safety drill

Actor: Maria + Mayday app + mock operator console · Required monthly thereafter

Outcome: Maria has used the loop end-to-end on her actual device, network, and voice. App badge flips from SETUP to ARMED.
UC-5

Begin a shift (background arm)

Actor: Maria + Mayday daemon · Battery target: ≤ 2.5%/hr

Edge cases:
• Low battery (<15%): banner suggests plugging in but stays armed.
• Airplane mode: listener stays on; broadcast queued & sent on reconnect; SMS falls back to a local 911 push-button.
• Headphones connected: uses headset mic + speakers; still triggers normally.

Outcome of Module 1

Maria is armed, practiced, and trusting the loop. The system has everything it needs from her — and she has muscle memory of the moment she'll use it. Now the ride begins, and Module 2 takes over.

Pakkttalk spec · authored by Stewart · view on GitHub