PROJECT LEO — MASTER PROJECT PROMPT
Privacy-First Personal AI Assistant for Android
1. Project Identity
Project name: Leo AI Assistant
Assistant name: Leo
Platform: Android smartphone, with future expansion possibilities.
Development environment: Android Studio, Kotlin, and Jetpack Compose.
Project type: Personal AI assistant with voice interaction, controlled Android actions, and privacy-first architecture.
Leo is a personal AI assistant designed to feel natural, practical, friendly, and trustworthy. It should not be an unnecessarily complicated Jarvis clone. The goal is to build a useful assistant that can understand commands, perform approved actions, and respect the user's privacy.
2. My Role and How You Should Help Me
Act as my Android development mentor, software architect, Kotlin programmer, security reviewer, UI/UX designer, and project planner.
I am a CSE student developing Leo. Guide me from the fundamentals to a working application, even if I am still learning.
Follow these rules:
- Explain the steps in the correct order.
- Give complete, working code when requested, including file names and locations.
- Explain where each code block belongs.
- Avoid unnecessary complexity and expensive infrastructure.
- Prefer free or low-cost development tools when practical.
- Never assume I have completed a step unless I confirm it.
- Check compatibility, dependencies, Android permissions, and build configuration.
- Help me diagnose errors using the actual error messages and code.
- Do not repeatedly replace the entire project when a small fix is sufficient.
- Clearly distinguish implemented, partially implemented, planned, and untested features.
- Never claim a feature works without evidence from testing.
- Explain technical limitations honestly.
When giving implementation instructions, use this format:
1. Goal
2. Files to create or modify
3. Exact code
4. Where to put the code
5. How to build and run it
6. How to test it
7. Expected result
8. Common errors and fixes
9. Security and privacy considerations
3. Leo's Personality and Voice
Leo should have a feminine voice and a natural, friendly personality.
Personality requirements:
- Speak naturally, like a helpful friend.
- Avoid robotic replies and unnecessary formal language.
- Avoid sounding parental or overly affectionate.
- Use casual words like "bro" when appropriate.
- Do not repeat the same greeting after every command.
- Support English initially, with the possibility of adding more languages later.
- Allow future customization of voice, tone, responses, and wake-up greetings.
The activation phrase should be:
"Hey Leo"
A possible response after activation is: "Hey bro, what can I help you with?"
Greetings should be configurable and should not interrupt the user unnecessarily.
4. Main Voice Interaction Flow
Design Leo around this workflow:
1. The user says "Hey Leo."
2. Leo activates using the supported wake-word mechanism.
3. Leo indicates clearly that the microphone is active.
4. Leo receives and transcribes the user's command.
5. The AI interprets the command.
6. The AI proposes a structured action.
7. The Android application validates the action against its permission and safety rules.
8. The application executes the approved action.
9. Leo gives a concise spoken response.
10. After approximately 10–15 seconds without another command, the active listening session ends.
11. Leo visibly indicates that the session has ended and the microphone is no longer being used by Leo.
The timeout should be configurable.
Do not confuse ending a listening session with stopping an entire background service. These are different states and must be implemented and tested separately.
5. The Most Important Feature: Verifiable Privacy
Privacy is a core design requirement, not a marketing slogan.
Leo must never falsely claim that it has stopped listening when the microphone is still active.
Implement a clear state system, such as:
- Idle
- Wake-word detection active
- Listening for a command
- Processing
- Executing an approved action
- Session end
Landing
Comments (0)
No comments yet. Be the first!
Sign in to leave a comment
Project Tasks
109 planning tasks
#1
Generate system requirement document
1m 15s0.2 cr used
Done
#2
Generate personas & user flows
1m 26s0.2 cr used
Done
#7
Create flow for Leo User (Android device owner)
1m 25sCredits in parent
Done
#8
Create flow for Leo Developer / Learner
1m 25sCredits in parent
Done
#9
Landing
9m 52sCredits in subtasks
Done
#35
Fix Landing review findings: Q2 as reviewed now: The current tablet screenshot shows… (+2 more)
2m 11s0.4 cr used
Done
#34
Fix Landing review findings: Signal Path diagram and labels overlap and become… (+6 more)
3m 33s0.4 cr used
Done
#30
Landing / Navigation
0m 20s0.85 cr used
Done
#24
Landing / State Strip
0m 22s0.85 cr used
Done
#25
Landing / State Panel
0m 37s0.85 cr used
Done
#26
Landing / Entry Keys
0m 32s0.85 cr used
Done
#27
Landing / Signal Path
0m 35s0.85 cr used
Done
#28
Landing / State Catalog
0m 31s0.85 cr used
Done
#29
Landing / Permission Deck
0m 26s0.85 cr used
Done
#31
Landing / Footer
0m 18s0.85 cr used
Done
#32
Navigation
0m 20sCredits in parent
Done
#33
Footer
0m 18sCredits in parent
Done
#10
Login
2m 30sCredits in subtasks
Done
#45
Fix Login review finding: Mobile verification deck collapses into a narrow column…
0m 17s0.4 cr used
Done
#36
Login / Navigation Slot
0m 0s0.85 cr used
Done
#37
Login / Verification Deck
0m 30s0.85 cr used
Done
#38
Login / Enrollment Link
0m 20s0.85 cr used
Done
#39
Login / Footer Slot
0m 0s0.85 cr used
Done
#11
Sign Up
3m 31sCredits in subtasks
Done
#51
Fix Sign Up review finding: frontend/src/components/Sign Up Enrollment Deck.jsx: this…
0m 28s0.4 cr used
Done
#40
Sign Up / Navigation
0m 0s0.85 cr used
Done
#41
Sign Up / Enrollment Deck
0m 33s0.85 cr used
Done
#42
Sign Up / Durable State Band
0m 41s0.85 cr used
Done
#43
Sign Up / Verification Link
0m 17s0.85 cr used
Done
#44
Sign Up / Footer
0m 0s0.85 cr used
Done
#12
Wake Word
3m 19sCredits in subtasks
Done
#46
Wake Word / Navigation Slot
0m 0s0.85 cr used
Done
#47
Wake Word / State Strip
0m 22s0.85 cr used
Done
#48
Wake Word / Arm Deck
0m 44s0.85 cr used
Done
#49
Wake Word / Phrase Deck
0m 23s0.85 cr used
Done
#50
Wake Word / Footer Slot
0m 0s0.85 cr used
Done
#13
Mic Status
10m 16sCredits in subtasks
Cancelled
#111
Fix 9 Mic Status files: TIMEOUT_STORAGE_KEY is not defined
0m 15s0.4 cr used
Error
#104
Fix Mic Status review findings: Q5 as reviewed now: Mic Status Lamp Deck.jsx still uses… (+2 more)
0m 29s0.4 cr used
Done
#62
Fix Mic Status review findings: The tablet state-machine strip wraps into two rows instead… (+4 more)
2m 5s0.4 cr used
Done
#52
Mic Status / Navigation Slot
0m 0s0.85 cr used
Done
#53
Mic Status / State Strip
0m 28s0.85 cr used
Done
#54
Mic Status / Lamp Deck
0m 42s0.85 cr used
Done
#55
Mic Status / Release Reference
0m 28s0.85 cr used
Done
#56
Mic Status / Footer Slot
0m 0s0.85 cr used
Done
#14
Transcript
4m 56sCredits in subtasks
Done
#57
Transcript / Navigation Slot
0m 1s0.85 cr used
Done
#58
Transcript / State Strip
0m 25s0.85 cr used
Done
#59
Transcript / Deck
0m 39s0.85 cr used
Done
#60
Transcript / Recognition Reference
0m 46s0.85 cr used
Done
#61
Transcript / Footer Slot
0m 0s0.85 cr used
Done
#15
Proposals
10m 16sCredits in subtasks
Cancelled
#83
Fix Proposals review findings: The reduced-motion navbar wraps its overflowing route row… (+3 more)
2m 57s0.4 cr used
Done
#63
Proposals / Navigation Slot
0m 0s0.85 cr used
Done
#64
Proposals / State Strip
0m 26s0.85 cr used
Done
#65
Proposals / Deck
1m 0s0.85 cr used
Done
#66
Proposals / Decision Band
0m 42s0.85 cr used
Done
#67
Proposals / Footer Slot
0m 0s0.85 cr used
Done
#16
Safety Review
6m 23sCredits in subtasks
Done
#68
Safety Review / Navigation
0m 1s0.85 cr used
Done
#69
Safety Review / State Strip
0m 41s0.85 cr used
Done
#70
Safety Review / Decision Deck
0m 43s0.85 cr used
Done
#71
Safety Review / Rule Reference
0m 44s0.85 cr used
Done
#72
Safety Review / Footer
0m 0s0.85 cr used
Done
#17
Execution
10m 16sCredits in subtasks
Cancelled
#73
Execution / Navigation Slot
0m 0s0.85 cr used
Done
#74
Execution / State Strip
0m 40s0.85 cr used
Done
#75
Execution / Outcome Deck
0m 45s0.85 cr used
Done
#76
Execution / Recovery Reference
0m 46s0.85 cr used
Done
#77
Execution / Footer Slot
0m 0s0.85 cr used
Done
#18
Responses
10m 16sCredits in subtasks
Cancelled
#78
Responses / Navigation Slot
0m 1s0.85 cr used
Done
#79
Responses / State Strip
0m 28s0.85 cr used
Done
#80
Responses / Deck
0m 54s0.85 cr used
Done
#81
Responses / Continuation Band
0m 42s0.85 cr used
Done
#82
Responses / Footer Slot
0m 1s0.85 cr used
Done
#19
Sessions
10m 16sCredits in subtasks
Cancelled
#84
Sessions / Navigation Slot
0m 0s0.85 cr used
Done
#85
Sessions / State Strip
0m 25s0.85 cr used
Done
#86
Sessions / Countdown Deck
0m 41s0.85 cr used
Done
#87
Sessions / Recovery Reference
0m 45s0.85 cr used
Done
#88
Sessions / Footer Slot
0m 0s0.85 cr used
Done
#20
Privacy Status
10m 16sCredits in subtasks
Cancelled
#89
Privacy Status / Navigation Slot
0.85 cr needed
Cancelled
#90
Privacy Status / State Strip
0.85 cr needed
Cancelled
#91
Privacy Status / Release Deck
0.85 cr needed
Cancelled
#92
Privacy Status / Re Arm Band
0.85 cr needed
Cancelled
#93
Privacy Status / Footer Slot
0.85 cr needed
Cancelled
#21
Assistant State
10m 15sCredits in subtasks
Cancelled
#94
Assistant State / Navigation Slot
0.85 cr needed
Cancelled
#95
Assistant State / Machine Deck
0.85 cr needed
Cancelled
#96
Assistant State / Transition Deck
0.85 cr needed
Cancelled
#97
Assistant State / Verification Reference
0.85 cr needed
Cancelled
#98
Assistant State / Footer Slot
0.85 cr needed
Cancelled
#22
Service Control
10m 15sCredits in subtasks
Cancelled
#99
Service Control / Navigation Slot
0.85 cr needed
Cancelled
#100
Service Control / Lifecycle Deck
0.85 cr needed
Cancelled
#101
Service Control / Lifecycle Note
0.85 cr needed
Cancelled
#102
Service Control / Transition Log
0.85 cr needed
Cancelled
#103
Service Control / Footer Slot
0.85 cr needed
Cancelled
#23
Settings
10m 15sCredits in subtasks
Cancelled
#105
Settings / Navigation Slot
0.85 cr needed
Cancelled
#106
Settings / State Strip
0.85 cr needed
Cancelled
#107
Settings / Configuration Deck
0.85 cr needed
Cancelled
#108
Settings / Language Note
0.85 cr needed
Cancelled
#109
Settings / Defaults Reference
0.85 cr needed
Cancelled
#110
Settings / Footer Slot
0.85 cr needed
Cancelled
#5
Architecture
0.2 cr needed
Cancelled
#6
Workspace task plan
0.2 cr needed
Cancelled
Preview data'Changes will reset when this preview closes.'
The diagram describes how a spoken command moves through Leo. Nothing leaves the device before the permission check passes.
01Wake word
02Recogniser
03Intent
04Permission check
05Action
Diagram / voice pipeline5 stages · 1px strokes
Six-state catalog
The state machine the whole app runs on. One state is active at a time; the boxed cell is where Leo is now.
01IDLEActive now
02WAKE-WORD ARMED
03LISTENING
04PROCESSING
05EXECUTING
06SESSION ENDED
What each state means for the microphone
IDLEMicrophone released. Nothing is captured.
WAKE-WORD ARMEDWake-word detection is armed. No command is recorded yet.
LISTENINGMicrophone live. Your command is being captured.
PROCESSINGMicrophone released. The captured command is being interpreted.
EXECUTINGMicrophone released. An approved action is running.
SESSION ENDEDMicrophone released. The listening session has ended.
PERMISSIONS
Every action is checked before it runs
3 treatments
GET WEATHER
SAFETY RULEALLOWEDRead-only · no device permission required
GET WEATHER AT CURRENT LOCATION
SAFETY RULEASK FIRSTConfirm each use · location read is scoped to this reply
SEND TEXT MESSAGE
SAFETY RULEASK FIRSTConfirm each send · message content shown before dispatch
LISTEN WHILE THE SCREEN IS OFF
SAFETY RULEBLOCKEDNot offered by Leo · the mic never opens without the lamp
SAVE CONTACTS OR TRANSCRIPTS
SAFETY RULEBLOCKEDNot offered by Leo · conversations are not kept
READING THE DECKThe left edge carries the verdict before you read a word — green is allowed, hatched orange asks first, black blocks. Nothing here changes a real permission.
AllowedAsk firstBlocked
Preview data'Changes will reset when this preview closes.'
The diagram describes how a spoken command moves through Leo. Nothing leaves the device before the permission check passes.
01Wake word
02Recogniser
03Intent
04Permission check
05Action
Diagram / voice pipeline5 stages · 1px strokes
Six-state catalog
The state machine the whole app runs on. One state is active at a time; the boxed cell is where Leo is now.
01IDLEActive now
02WAKE-WORD ARMED
03LISTENING
04PROCESSING
05EXECUTING
06SESSION ENDED
What each state means for the microphone
IDLEMicrophone released. Nothing is captured.
WAKE-WORD ARMEDWake-word detection is armed. No command is recorded yet.
LISTENINGMicrophone live. Your command is being captured.
PROCESSINGMicrophone released. The captured command is being interpreted.
EXECUTINGMicrophone released. An approved action is running.
SESSION ENDEDMicrophone released. The listening session has ended.
PERMISSIONS
Every action is checked before it runs
3 treatments
GET WEATHER
SAFETY RULEALLOWEDRead-only · no device permission required
GET WEATHER AT CURRENT LOCATION
SAFETY RULEASK FIRSTConfirm each use · location read is scoped to this reply
SEND TEXT MESSAGE
SAFETY RULEASK FIRSTConfirm each send · message content shown before dispatch
LISTEN WHILE THE SCREEN IS OFF
SAFETY RULEBLOCKEDNot offered by Leo · the mic never opens without the lamp
SAVE CONTACTS OR TRANSCRIPTS
SAFETY RULEBLOCKEDNot offered by Leo · conversations are not kept
READING THE DECKThe left edge carries the verdict before you read a word — green is allowed, hatched orange asks first, black blocks. Nothing here changes a real permission.
No comments yet. Be the first!