This project was not a single brief. It was three separate bodies of back-end work – each with its own logic, its own rules, and its own engineering requirements – alongside the front-end UI design that brought them to life.
The AI Tone System governs how Pura communicates. The Notification Governance Framework governs when. The Progressive Profiling system governs what the platform learns, and in what order.
Built independently, they function as one – a connected intelligence layer that makes Pura behave less like an app and more like a healthcare advisor and personal companion that genuinely understands you.
01
AI Tone System
Why personas fail in a health context
The instinct in most healthcare products is to define user types and write for them. The problem is that a persona is a snapshot – it tells you who someone is on average, not who they are right now.
A user waiting on cancer results is not the same person who opened the app three weeks ago to track their steps. A label like “Health Beginner” tells you nothing about what that person needs to hear in this moment, on this day, in this session.
“Personas are useful for team empathy. They are not system inputs.”
David Quill
The shift from static types to dynamic attributes
The Tone System moved Pura from personas to attributes. Instead of asking who is this user, the system asks what signals are we detecting right now.
A live combination of dimensions – call these adaptive dimensions – medical circumstance, behavioural state, comprehension level, intent, lifecycle stage. They combine in real time to determine not just what the AI says, but how it frames it, how much it explains, how hard it pushes, and when it steps back entirely.
The same user can receive a completely different output on different days. That is not inconsistency. That is the system working.
Non-negotiables
Sitting above all adaptive logic are four dimensions that override everything. They are never adjusted. They are always on.
Dimension
What it does
Emergency detection
A binary clinical safety gate that locks the tone to urgent and empathetic the moment it is triggered.
Accessibility
Visual, cognitive, and motor needs that affect all delivery.
Content guardrails
The system guides users and never diagnoses, always citing sources and maintaining clinical accuracy.
Language & cultural context
Full EN/AR support with cultural sensitivity around directness, formality, and family involvement in health decisions.
Contextual – Intent, Medical Circumstance, Lifecycle
Intent reads what the user needs from this specific interaction – a quick answer, reassurance, decision support, or simply to vent – and shapes the response accordingly.
Medical circumstance layers in diagnosis type, severity, and journey position, adjusting tone weight and vocabulary to match where the user is clinically.
Lifecycle tracks where the user is in their Pura journey, from first-time awareness through to long-term retention or re-entry after a lapse, ensuring the system never treats a returning user like a stranger.
Behavioural Signals – positive and negative states
Psychological states inferred from behaviour, not self-report. Positive signals – curiosity, motivation, confidence – tell the system to encourage, celebrate, or step back and let the user lead.
Negative signals – anxiety, denial, hopelessness, overwhelm, shame, distrust – each trigger a specific and calibrated response. A user who has opened a critical document – a diagnosis, a treatment plan, a set of results that shape what comes next – three times without viewing it receives a different message to one who questions the AI’s accuracy twice in a row.
The system detects the pattern. It responds to the root cause, not the surface behaviour.
Comprehension – Technical and Health
The existing system tracked a single comprehension dimension – technical only. How much guidance the user needed through tasks. It worked for the app, but it collapsed the moment medicine entered the conversation. Someone who knows the app isn’t the same person who knows the medicine, and the AI was treating them as one.
I added a second comprehension dimension – health – and split the system into two independent axes that can each be high or low regardless of the other. Technical comprehension determines how much guidance the user receives through tasks – step by step, grouped, or outcome only. Health comprehension determines how much medical explanation the AI provides – plain language, common terms, or full clinical vocabulary.
An elderly retired doctor has high health comprehension and may have low technical comprehension. A single dimension would have told you neither. Two independent ones tell you both, and the AI talks to them differently in the same sentence.
02
Notification Governance
The P1–P5 priority architecture
The original design merged medical and marketing notifications into a single queue. I split them into two parallel systems that work together but are governed separately.
Medical notifications run through the P1–P5 priority framework. Marketing notifications – insurance, telehealth bookings, module promotion, retention – run alongside, with their own logic and their own goals. The two systems are aware of each other through the user’s medical state, and the marketing side knows when to hold and when to speak.
The same priority architecture reaches into the UI itself. What the user sees on screen – banners, prompts, surfaced content – adapts to the active priority. Higher priority notifications suppress lower priority ones. The system always knows what is most important – and so does the interface.
Level
Type
Behaviour
P1
CRUCIAL
Time-critical, safety-adjacent
Uncapped, delivered immediately via the highest available channel.
P2
BEHAVIOURAL
Signal-based AI outreach
Time-sensitive but not an emergency.
P3
TRANSACTIONAL
Confirmations, routine results, administrative
Standard channels, standard frequency caps.
P4
ENGAGEMENT
Wellness nudges, streaks, progress updates
Heavily capped, suppressed by anything higher.
P5
LOWEST STAKES
In-conversation only
Never pushed.
The Results Day Protocol
When a user is expecting test results, the day of delivery follows a specific sequence designed to reduce anticipatory anxiety and give users space to process.
We deliberately avoid sending a notification the day before. Telling someone “your results arrive tomorrow” hands them 24 hours of anxiety and a broken night’s sleep. Instead, the protocol stays quiet until the morning of – one gentle heads-up so the user can prepare themselves mentally for that day, on that day.
From the morning reminder, the next thing the user hears is the result itself. Once results are delivered, all non-clinical communications are suppressed for the remainder of the day. When the user taps the notification, the app opens directly to results – no splash screen, no interstitials, no modals. The AI is available but does not push. The user leads.
“The kindest thing the system can do on results day is stay quiet until the user is ready to hear it.”
David Quill
03
Progressive Profiling
Rule Zero – the governing principle
Most progressive profiling frameworks start with the question “what data do we need to unlock X, Y, Z?” – X being revenue, Y being retention, Z being a feature unlock. I reversed it.
The only question this system asks is when should we capture this piece of data, and how will it benefit the user when we do? Progression is paced by what helps the person on the other end – their health, their experience, their trust – not by what the business wants to learn next.
Before any ask fires, the system must be able to answer yes to one question: if the user knew exactly why we were asking this – would they agree it was for their benefit? If the answer is uncertain, the ask does not fire.
This is not a guideline. It is a hard constraint that overrides every other rule in the system. Business outcomes follow from health outcomes. Never the other way around.
The nervous system mental model
The analogy that sits at the centre of the entire framework. The human nervous system does not diagnose from a single signal – it receives input from thousands of nerve endings simultaneously, builds a picture, and decides how to respond.
Pura works the same way. Individual modules – nutrition, sleep, fitness, biology – are the nerve endings. Each sends signals. The intelligence layer is the brain. It receives everything, finds patterns across modules, and decides what to do.
Progressive profiling is how the brain learns. Not a data collection exercise. A relationship built over time.
The 7 Dimensions of Health
The framework that every module maps back to. These are not product categories. They are human ones.
Dimension
Module
We Input
Nutrition and medication
We Move
Fitness
We Feel
Mental wellbeing
We Exist Biologically
Biology and PureScore
We Live Somewhere
Environment
We Sleep
Passive data layer
We Age
Expressed through PureScore healthy years
When every feature has a clear home inside one of these dimensions, the connections between modules become obvious. The complexity does not disappear – it becomes manageable.
Concentric rings – how understanding builds over time
Each user is understood through a set of concentric rings that build outward from the centre. The system earns each ring. It never jumps ahead.
Ring
Stage
What it does
1
Core data
Universal, collected from day one, the foundation everything else builds on.
2
Recommendation moment
Pura reads the core and decides whether to recommend a journey or let the user choose.
3
Journey layer
A health dimension activates and a new ring of data requirements opens around the core.
4
Progressive profiling
The intelligence layer fills the gaps, passively observing and asking only when it needs to.
5
Intelligence moment
Pura has built enough of a picture to surface a finding that feels genuinely different.
Three user types, same journey, different realities
Every health journey in Pura has the same entry point. Underneath, the reason a user is there – and what Pura needs to do for them – can be completely different.
The Informed User knows their condition and tells Pura upfront. Pura’s job is to manage it well.
The Unaware User knows something feels wrong but has no diagnosis. Pura’s job is to build the picture quietly and surface a finding at the right moment.
The Prevention User has nothing wrong yet – but patterns suggest future risk. Pura’s job is to catch it before it becomes a problem.
The Nutrition module was built as the proof of concept: three users, same entry point, diabetic, cardiovascular risk, dietary intolerance – the same screen, the system knowing exactly what sits beneath each of them.
How signals cross modules
No module operates in isolation. A signal detected in Nutrition may only become meaningful when cross-referenced with something observed in Sleep. A pattern in Fitness may confirm a metabolic risk that nutritional data alone could not prove.
Data collected in one module feeds the intelligence layer shared by all modules. A late meal timing signal in Nutrition flags to Sleep. Stress data captured in Nutrition passes immediately to Mental Wellbeing. Vitamin D deficiency from a blood panel flags to Environment – confirming sun avoidance in a country where deficiency should not exist.
The user does not need to understand any of this. They experience Pura getting smarter over time.
The full picture
The complete specification – every rule, table, edge case, and engineering schema across all three systems.
04
Visual Design
Three back-end systems. One front-end experience. Six flows that show how the rules become an interface.
Each flow below is a different facet of the agentic experience – how Pura listens, how it adapts, how it reaches out, and how it stays in context across conversations.
Flow 01
Spotted something. Nothing major. Want to know more?
Pura reaches out softly, then asks permission before going any deeper.
“Nothing urgent — but worth a conversation.”
The notification names the system (“Pura Agent — Health Data Detection”) and leads with reassurance. No red badge, no urgent language. The user sees the framing before they see anything else.
Flow 02
The same home screen, reading the user’s state.
One screen, two states. The user-state machine decides what gets shown.
Normal state – celebrate.
“Congratulation, Fatima!” A trophy card with a Redeem CTA sits at the top of Discover. Below it, a Daily Steps chart with momentum visible across the week. Motivation is the right register for this day.
Flow 03
An image goes in. The full Tone System fires before Pura speaks.
System note: image triggers emergency detection first. No threshold crossed – agent enters reassurance mode. Comprehension defaults to plain language. Intent: reassurance-seeking. The conversation then runs all the way to a real-world prescription order.
Quick prompts, screen-aware.
Tapping the FAB opens entry points tied to the page: “Ask about this screen”, “Identify a medication”, “Schedule a follow up appointment”, “What habits would improve my health?” The agent shows up where the user already is.
Flow 04
Voice changes the modality. The Tone System still runs underneath.
Strip the chat UI away. The same backend logic decides what the agent says.
“Go ahead, I’m listening.”
An open ring orb signals the system state: listening. No chat bubbles, no buttons crowding the surface – the conversation has the floor. Transparency from the Tone System, expressed visually.
Flow 05
Hand the user the wheel. Everything is interactive.
The agent waits. The user picks the thread.
“Tap the Pura FAB to discuss further.”
Your Assessment lays out the diagnosis in three sections: What you have, What that means, Learn more. A hypertension reading explained calmly. The FAB sits in the corner – the door, not the doorman.
Flow 06
Why healthcare can’t rely on a flat chat history.
Claude and ChatGPT give you a long scroll. Pin it yourself. Over a multi-year health journey, that breaks – so the agent does the organising.
Entry, always in context.
The history opens from the same FAB the user already trusts – sitting over any screen with screen-aware prompts. No separate inbox, no break in flow.
Next walk-through