Claude Code Handoff · Master Project Brief
Reflekt Health
Project Context
Everything Claude Code needs to continue this project without losing any decisions, rules, or context. Read this file first. Then open the files listed. Then continue.
Project Foundation
Who is Reflekt Health and what are we building?
One-Sentence Product Definition
Reflekt Health is a pre-crisis intelligence system for elderly independent living — a Luma smart speaker + mmWave radar + wearable that tells adult children whether their ageing parent is safe, without surveillance or anxiety.
Two Users
Senior (70+) — lives alone, interacts passively with Luma speaker. Primary interface: voice. Secondary interface: ambient screen.
Adult Child (35–55) — remote, time-constrained, checks Family App. Needs 3-second clarity: safe or not?
Two Surfaces
Luma Screen — ambient display on smart speaker. Passive. No buttons. No menus. Voice-only interaction. Seen from 2–4 metres.
Family App — mobile app for adult child. State-driven. One primary action per state. 3-second decision interface.
Core Product Philosophy (non-negotiable)
✦Not monitoring — independence. The product supports the senior's independence; safety is the floor, not the ceiling.
✦Interpret, don't display. Sensor data is never shown raw. Always translated into human conclusions: "Safe right now", not "HR: 72bpm".
✦Calm technology. No flashing, no non-emergency alerts, no red warning blocks except in HELP state.
✦Dignity first. The senior is a person, not a patient. Copy is warm, first-person, relationship-anchored.
✦Reduce anxiety, not increase it. The app should make adult children less anxious over time, not more dependent on it.
Target Markets
United States (primary) and Europe (secondary). English first. Chinese-language version in parallel development (Guangzhou dev team).
What Has Been Decided — Do Not Revisit
Locked decisions and why they're locked.
These decisions were made after extensive design review, expert input, and CEO approval. They are settled. Claude Code should not re-open them unless explicitly asked.
| Decision | What Was Decided | Why It's Locked |
| State System |
6 states: CALM / REMINDER / FAMILY / ALERT / HELP / OFFLINE |
Validated by 3 rounds of expert review. Priority: HELP > ALERT > OFFLINE > FAMILY > REMINDER > CALM. |
| Visual Identity |
Direction D: Clear Day. Teal #3D9A94, Night #141E1E, Cloud #F4F6F6. Libre Baskerville + DM Sans. |
Chosen from 4 fully-realised directions. Best for US/EU markets. Modern but not clinical. |
| ALERT naming |
"ALERT" is internal only. Senior-facing copy uses "I'm a little worried" / "Are you okay?" |
Clinical language breaks trust with seniors. The word "alert" activates fear, not calm. |
| HELP escalation |
Multi-signal required: 30s no response + at least one of: radar inactive / HR anomaly / location unchanged. |
Single timer causes false positives. False positives destroy trust in real alerts. |
| Luma interaction |
Zero buttons. Zero menus. Passive display only. All interaction via voice. |
Buttons require motor precision seniors may not have. Voice is the natural interface for this age group. |
| Safe right now |
Must be time-bounded: fresh (0–5min) / "as of [time]" (5–15min) / OFFLINE trigger (>15min). |
Stale "Safe right now" is a false assurance — it destroys trust when a real event has occurred. |
| Old logo |
Blue shield logo is retired. New visual identity is Clear Day direction. |
Shield signals surveillance/insurance. Clear Day signals trusted companion. Different positioning entirely. |
| Reminder system |
3 types: self (senior-created, private), collaborative (family suggests, senior confirms), safety (system/family, pause-only). |
Senior must be the owner of their reminders. Family can suggest, not mandate. |
Clear Day Design System
Tokens, typography, and state colours.
Core Colour Tokens
/* ── CLEAR DAY DESIGN TOKENS ── */
--cloud: #F4F6F6; /* Background, primary surface */
--mist: #E8EFEF; /* Cards, secondary surface */
--vapor: #B8CACA; /* Disabled, placeholder */
--fog: #8AA0A0; /* Supporting text */
--slate: #5A7070; /* Body text, secondary */
--teal: #3D9A94; /* ★ Primary accent — the ONE signal colour */
--teal-light: #EBF5F5; /* Teal backgrounds */
--night-mid: #2A3838; /* Dark surfaces */
--night: #141E1E; /* Primary text, CTAs, Luma background */
/* ── STATE COLOURS ── */
--calm: #4A8A5A; --calm-bg: #EBF4ED;
--remind: #8A7040; --remind-bg: #F5F0E4;
--family: #3D6A9A; --family-bg: #EAF0F8;
--alert: #9A5040; --alert-bg: #F8EDEB;
--help: #8A3030; --help-bg: #F5EAEA;
--offline: #5A6060; --offline-bg: #ECEEED;
/* ── TYPOGRAPHY ── */
--font-display: 'Libre Baskerville', Georgia, serif; /* Headings, status, greetings */
--font-body: 'DM Sans', system-ui, sans-serif; /* All body copy, UI labels */
--font-mono: 'JetBrains Mono', monospace; /* Timestamps, technical values */
/* ── SPACING & RADII ── */
--r-card: 16px; --r-btn: 12px; --r-phone: 40px;
Absolute Forbidden — Visual
No medical blue (#007AFF). No bright red (#FF0000). No amber warnings except in ALERT state. No health data values displayed raw. No charts, graphs, percentages, or trend lines. No "Everything looks great" or "All is well" copy. No buttons on the Luma screen.
Absolute Forbidden — Copy (Senior-facing)
Never use: medication, health, detected, monitoring, alert (as display word), sensor, system, calm (as instruction), pleasant, "All is well", "Everything looks great", any drug names or dosages, any clinical terminology.
File Registry
Every file, what it is, what to use it for.
These are the canonical files. Always use the highest version number. Earlier versions are superseded.
★ Core Active Files — Use These
🎨
Reflekt_Phase1_Screen_System.html ACTIVE
Complete Phase 1 screen system. All 6 Family App states, 3 empty states, all 6 Luma states, full token system. Clear Day direction. This is the canonical visual reference for all screens.
🎨
Reflekt_Visual_Identity_Directions.html DONE
All 4 visual identity directions. Direction D (Clear Day) was selected. Keep for reference. Do not revisit the choice.
📋
Luma_Daily_Presence_Playbook_v1.2.html ACTIVE
Complete Luma state definitions. Screen content, voice scripts, family app sync for all 6 states. Includes OFFLINE A/B split, ALERT vs HELP distinction, ASR/NLU tolerance rules.
📋
Family_App_State_Playbook_v1.1.html ACTIVE
Complete Family App state definitions. Home screen content, push notification rules, message list, CTA logic for all 6 states. Includes System Control Layer (priority, data freshness, escalation rules).
📋
Reflekt_Reminder_System_Spec_v1.1.html ACTIVE
Complete reminder system spec. 3 reminder types (self/collaborative/safety), family custom (with background note field), senior custom (voice-only), permission table, NLU requirements, engineering schema.
📋
Reflekt_Experience_Enhancement_Spec_v1.0.html ACTIVE
6 experience enhancement modules: Senior Agency (Voice Postcard upgrade), 7-day Onboarding Ritual, Guilt Relief Design, Positive Visibility (Quiet Wins), Life Network (Life Moments), Transition Design. Full engineering specs per module.
📄
Reflekt_System_UI_Guidance_v1.1.docx ACTIVE
One-page system brief for engineering + design. State definitions, priority chain, CTA rules, notification rules, common mistakes. For handoff to Guangzhou dev team.
Supporting Files — Use as Reference
📋
Reflekt_Reminder_System_Bilingual_v1.1.html
Bilingual (Chinese + English) version of the Reminder System Spec. For Guangzhou team.
📋
Reflekt_Experience_Enhancement_Bilingual_v1.0.html
Bilingual version of Experience Enhancement Spec. For Guangzhou team.
📦
Reflekt_Delivery_Package_2026Q1.html
Delivery checklist for Guangzhou team. File descriptions, reading order, P0/P1/P2 priorities, submission requirements.
Non-Negotiable Rules
These rules cannot be overridden by any request.
Family App Rules
✓Home screen answers one question in 3 seconds: safe or not?
✓One primary CTA per state — no competing actions
✓Main status and message list must never contradict each other
✓CALM + REMINDER: no push notification
✓ALERT + HELP + OFFLINE: immediate push
✗"Missed" / "Not confirmed" — never show
✗Raw health data, charts, percentages
✗"Mum hasn't replied" — never trigger guilt
✗"Safe right now" when data > 15 minutes old
Luma Screen Rules
✓Zero buttons. Zero menus. Passive display only.
✓All text minimum 12px. Display text minimum 48px.
✓Voice copy: first-person, relationship-anchored, life language
✓ALERT state: ask senior first, escalate only on multi-signal
✓ASR/NLU must accept natural responses, not just fixed phrases
✗"ALERT" / "WARNING" / "DETECTED" on screen — ever
✗Health values (HR, BP, SpO2) on screen
✗"Help is on the way" (before confirmed)
✗CALM copy when device is OFFLINE
Reminder System Rules
✓Senior owns their reminders. Self-created reminders are private by default.
✓Family suggests, senior confirms. Family cannot create active reminders without senior acceptance.
✓Background note field on family-created reminders — Luma-internal only, never spoken to senior.
✓Max 5 active reminders. System enforced, not just UX guidance.
✗Drug names, dosages, clinical format in any reminder copy
✗"Missed" reminder status visible to family
Full Execution Roadmap
14 weeks. Six phases.
PHASE 0 · COMPLETE · Weeks 1–2
Foundation
Done: Visual identity (4 directions built, Direction D selected). Design token system locked. Old logo retired.
PHASE 1 · COMPLETE · Weeks 3–6
Core Experience
Done: All 6 Family App state screens. 3 empty states. All 6 Luma state screens. Full accessibility annotations. Token system documented. File: Reflekt_Phase1_Screen_System.html
PHASE 2 · NEXT · Weeks 5–8
Sensory Layer
To build: (A) Sonic identity brief — 3 core sounds defined precisely enough for a sound designer to execute in 3 days. (B) Motion language spec — 4 principles with CSS prototypes. Full brief in next section.
PHASE 3 · Weeks 7–9
Edge Cases
Luma mishear recovery scripts + screens. False alert recovery design. Extended no-response handling (senior is fine, just away). All three scenarios fully scripted and designed.
PHASE 4 · Weeks 9–12
Generative Layer
Onboarding visual arc (Day 1→7 visible progression, 3 key moments). Memory Prompt feature (family initiates a question for Luma to ask senior). Family-initiated connection moments.
PHASE 5 · Weeks 11–14
Validation
Internal testing protocol (5 family members + 3 seniors + 2 cold-test users). 3-second test, senior comfort score, family anxiety score. Iteration prioritisation matrix.
Phase 2 · Full Brief
Sensory Layer — sound and motion.
This is the complete brief for Phase 2. Claude Code should build these two deliverables next, in this order.
2A · Sonic Identity Brief
We cannot generate audio files directly, but we can define the three core Luma sounds precisely enough that a sound designer can execute them in 3 days. The output is an HTML brief with: emotional direction, frequency guidance, duration, reference tracks, and "must not sound like" examples.
1Wake Tone — plays when Luma activates. Must not startle a sleeping senior. Recognisable without being intrusive. Think: the feeling of a warm lamp being switched on, not a phone ringing.
2Confirmation Tone — plays when reminder is set, message sent, action confirmed. Warmth, completion, gentle satisfaction. Think: a small wooden block placed precisely on a table.
3Alert Tone — plays in ALERT/HELP state. Must be urgent but not frightening. A senior should be able to hear it and feel "something needs attention" not "something terrible is happening." This is the hardest sound to design. Think: a caring hand on a shoulder.
2B · Motion Language Spec
Four motion principles with CSS animation prototypes demonstrating each. The output is an HTML file with live examples — a developer can copy the CSS directly.
1Entrance — how screens and content arrive. Not a bounce. Everything breathes in. Suggest: ease(0.2, 0, 0, 1) 400ms. Think the feeling of paper being placed on a table.
2State Transition — how states change. CALM→ALERT should feel different from CALM→FAMILY. Former: gentle urgency. Latter: warmth arriving.
3Feedback — how the interface responds to touch. Immediate, confirming, not bouncy. Accessibility: never more than 300ms. Never motion that could cause vestibular issues.
4Ambient — what moves on the Luma screen passively. The clock tick. The greeting fade-in. The state badge pulse. Should feel like breathing, not machinery.
Claude Code Start Prompt
Copy this. Paste it. Start.
Use this exact prompt to begin a new Claude Code session. It gives Claude Code everything it needs without needing this entire conversation history.
Paste this into Claude Code to start Phase 2
ROLE & PROJECT
I am the CEO of Reflekt Health, an early-stage AgeTech startup. You are my Head of Product Experience. We are building a care companion system for elderly independent living: a Luma smart speaker (voice + ambient screen) + Family App (for adult children).
COMPLETED WORK
Phase 0 (Visual Identity) and Phase 1 (All screens) are complete. Our design direction is "Clear Day" — teal #3D9A94, night #141E1E, cloud #F4F6F6, Libre Baskerville display, DM Sans body.
All completed work is in the /reflekt-design/ folder. The master brief is in: Reflekt_Master_Project_Brief.html — read this first.
The canonical screen file is: Reflekt_Phase1_Screen_System.html
WHAT WE'RE BUILDING NEXT
Phase 2: Sensory Layer. Two deliverables:
1. Sonic Identity Brief (HTML) — define 3 core Luma sounds precisely enough for a sound designer to execute: Wake Tone, Confirmation Tone, Alert Tone. Include emotional direction, Hz guidance, duration, reference tracks, must-not-sound-like examples.
2. Motion Language Spec (HTML) — 4 motion principles with live CSS animation prototypes: Entrance, State Transition, Touch Feedback, Ambient (Luma clock/greeting). Developer-ready: copy-paste CSS.
CORE RULES (never break these)
— No buttons or menus on Luma screen. Passive display only.
— Luma copy: first-person, no clinical terms, no "Alert/Warning/Detected"
— Family App: one CTA per state, no "Missed" labels, no raw health data
— "Safe right now" must be time-bounded (stale after 15 min = OFFLINE)
— ALERT → HELP requires multi-signal, not single timer
— Reminder system: senior owns their reminders, family can only suggest
OUTPUT FORMAT
Build as HTML files using the Clear Day token system. Match the visual quality of Reflekt_Phase1_Screen_System.html. Save outputs to /reflekt-design/outputs/. Start with 2A (Sonic Identity Brief).
Important Note on File Organisation
Create a folder called reflekt-design/ on your computer. Move all HTML outputs there. When you open Claude Code, navigate to that folder first. Claude Code can then read all files directly without needing to paste content.
Recommended folder structure:
reflekt-design/
├── briefs/ (Playbooks, Specs, Guidance docs)
├── screens/ (Phase 1, Phase 2, Phase 3...)
├── identity/ (Visual Identity Directions)
└── Reflekt_Master_Project_Brief.html (this file)