Product Specification
Версия: 4.1 Дата: 2026-04-24
Этот документ — системный слой продуктовой спеки: архитектурные принципы, сквозные метрики (Батарейка), логика рекомендаций, ранняя диагностика, карта SDK и ограничения. Экраны описаны отдельно в screens/.
1. Архитектурные принципы
Заголовок раздела «1. Архитектурные принципы»1.1 Одна героическая метрика — Батарейка
Заголовок раздела «1.1 Одна героическая метрика — Батарейка»Вся продуктовая модель строится вокруг Батарейки (0–100%) — живой метрики, которая отражает состояние организма в моменте и обновляется в реальном времени в течение дня.
Это сознательный гибрид трёх школ:
- Oura — строгая наука, прозрачные контрибьюторы, одна цифра Readiness утром. Минус: не меняется днём, скучно.
- Welltory / Garmin / Ultrahuman — живая Battery / Dynamic Recovery. Минус: теряется «прогноз на день».
- Lumo — Батарейка живёт в течение дня + строка «−11% с пробуждения» сохраняет Oura Readiness в виде дельты.
1.2 Иерархия
Заголовок раздела «1.2 Иерархия»Герой (Батарейка) → Индикаторы (Стресс / Энергия / Здоровье) → Карточки (Сон / Энергия / Стресс / Активность / Цикл) → Raw-метрики (HRV / Пульс / RHR / SpO2 / Температура)Конкретная раскладка главного экрана — см. screens/03-home.md.
1.3 Принципы
Заголовок раздела «1.3 Принципы»- Одна цифра на вершине — Батарейка, всегда видна.
- Три квалитативных индикатора под ней — Стресс, Энергия, Здоровье. Без цифр, только ярлыки. Разные временные горизонты (минуты / часы / недели).
- Одна рекомендация — максимально конкретная, без спама.
- Пять карточек — Сон, Энергия, Стресс, Активность, Цикл (последняя опционально). У каждой — цифра, микрочарт, детальный экран.
- Прогрессивное раскрытие: индикаторы (ярлык) → карточки (цифра + микрочарт) → детальный экран (полные данные). Энергия и Стресс присутствуют на двух уровнях: как индикатор («сейчас») и как карточка («динамика за день с числом»).
- Базовые показатели — raw-данные с сенсоров для скептиков.
- Отказались от прежней Layer 0/1/2 архитектуры — заменили на «герой → индикаторы → карточки → raw».
1.4 Индикаторы — философия подачи
Заголовок раздела «1.4 Индикаторы — философия подачи»Почему без цифр:
- Главную цифру (99%) уже даёт Батарейка — больше героев не нужно.
- Индикаторы отвечают на квалитативный вопрос: «стресс высокий?», «энергия есть?», «организм устойчив?». Ярлык читается моментально.
- Числа провоцируют micro-optimization («хочу 55 а не 50») — вредное поведение на медленных метриках.
- Цифры доступны при провале внутрь индикатора или в соответствующей карточке ниже (для Стресса и Энергии).
- Аналогия: Oura именно так подаёт Resilience (Exceptional / Strong / Solid / Adequate / Limited).
Связь индикаторов с карточками:
- Стресс и Энергия имеют и индикатор, и карточку — прогрессивное раскрытие одного концепта. Индикатор = «сейчас», карточка = «динамика за день с числом».
- Здоровье — только индикатор, без карточки. Метрика медленная (±1–2% в день), ежедневная карточка была бы шумом. Детали — при провале внутрь индикатора (см. screens/05-health-detail.md).
2. Батарейка — главная метрика
Заголовок раздела «2. Батарейка — главная метрика»Батарейка — единственная сквозная метрика приложения (0–100%, live-обновление).
- Семантика, зоны, формула — screens/04-battery-detail.md
- Строка «−11% с пробуждения» (UI героя главного экрана) — screens/03-home.md
Глава оставлена как якорь: сюда дописываем только сквозные принципы, если они появятся.
3. Рекомендация Lumo — логика
Заголовок раздела «3. Рекомендация Lumo — логика»3.1 Принципы
Заголовок раздела «3.1 Принципы»- Одна рекомендация на экране
- 1–2 предложения, максимально конкретная
- Тон: уверенный, нейтральный, без алармизма, без ⚠️
- Формат: заголовок + действие
3.2 Приоритизация
Заголовок раздела «3.2 Приоритизация»Приоритет 1: Паттерн болезни / переутомления (см. раздел 4)Приоритет 2: Здоровье < 40 (долгосрочный red flag)Приоритет 3: Батарейка < 40Приоритет 4: Стресс > 70 и держится > 2чПриоритет 5: Контекстуальный триггер (кофеин / алкоголь / тренировка)Приоритет 6: Конкретная метрика ниже нормыПриоритет 7: Позитивная / мотивирующая3.3 Адаптация по времени суток
Заголовок раздела «3.3 Адаптация по времени суток»Утро (06:00–11:00):
- По Энергии: «Отличный заряд — планируйте интенсивные задачи»
- По Сну: «Глубокого сна меньше обычного — сегодня лёгкий день»
День (11:00–19:00):
- По Стрессу: «Высокий стресс. Прогулка или дыхание по квадрату помогут»
- По движению: «Вы сидите 2+ часа — встаньте и разомнитесь»
Вечер (19:00–23:00):
- По подготовке ко сну: «Оптимальное время сна — 22:45»
- По контексту: «Кофеин активен до 21:30 — Deep Sleep может просесть»
4. Ранняя диагностика — фоновые паттерны
Заголовок раздела «4. Ранняя диагностика — фоновые паттерны»Модуль анализирует отклонения от baseline на горизонте 2–7 дней. Результат подаётся в Рекомендацию и создаёт контекстуальную карточку. История сработавших паттернов — screens/13-insights-history.md.
4.1 Начало болезни
Заголовок раздела «4.1 Начало болезни»Условие (2 из 3):
- Температура > baseline + 0.5°C (2+ дня)
- RHR > baseline + 5 bpm (2+ дня)
- HRV < baseline − 20% (2+ дня)
Подача:
🌡️ Возможное начало болезниТемпература выше нормы 2 дня. Пульс +7 bpm, HRV −22%.Приоритет: сон, снижение нагрузки.4.2 Переутомление
Заголовок раздела «4.2 Переутомление»Условие:
- HRV < baseline − 15% (3+ дня)
- RHR > baseline + 3 bpm (3+ дня)
- Sleep Score < 70 (3+ дня)
Подача:
HRV и сон ниже нормы 4 дня.Уберите интенсивные тренировки на 2 дня.4.3 Хронический стресс
Заголовок раздела «4.3 Хронический стресс»Условие:
- Средний Стресс > 60 (7+ дней)
- HRV стабильно снижена (7+ дней)
- REM < 18% (7+ дней)
Подача:
Организм под нагрузкой уже неделю.Обратите внимание на качество отдыха.5. Карта SDK
Заголовок раздела «5. Карта SDK»| Метрика | SDK объект | Режим |
|---|---|---|
| Фазы сна | QCSleepModel | Ночной batch |
| Пульс фоновый | QCSchedualHeartRateModel | Каждые 5 мин |
| Пульс real-time | realTimeHeartRate | Стриминг |
| Пульс покоя (RHR) | производная от QCSchedualHeartRateModel | Ночной batch |
| HRV | QCHRVModel | Дневной batch |
| HRV + RR (on-demand) | QCRealOneKeyMeasureHeartRateModel | По запросу |
| SpO2 | QCBloodOxygenModel | Ночью + manual |
| Температура | QCThreeValueTemperatureModel | Интервально |
| Стресс (raw) | QCStressModel | Интервально |
| Шаги / активность | QCSportModel | Batch |
| Шаги real-time | currentStepInfo | Стриминг |
| Тренировки | QCExerciseModel | По событию |
| Сидячесть | QCSedentaryModel | По событию |
| Давление | QCBloodPressureModel | Scheduled + manual |
| Глюкоза | QCBloodGlucoseModel | Scheduled + manual |
6. Ограничения и дисклеймеры
Заголовок раздела «6. Ограничения и дисклеймеры»| Функция | Ограничение |
|---|---|
| Давление | PTT без манжеты, погрешность ±10–15 mmHg |
| Глюкоза | Оптический метод, не замена CGM |
| ЭКГ / AFib | Нет — отсутствует электрод |
| Дыхание (ЧДД) | V2 — требует доступа к непрерывным RR за ночь (запрос к вендору) или raw PPG |
| GPS | Через телефон (Bluetooth) |
| Baseline Батарейки | Точен после 14 дней ношения |
| Здоровье | Появляется после 10 дней данных |
7. Экраны
Заголовок раздела «7. Экраны»Детальные спеки экранов — в screens/:
| Файл | Экран |
|---|---|
| screens/00-auth.md | Авторизация (Apple / регистрация) |
| screens/01-onboarding.md | Онбординг (профиль) |
| screens/02-ring-sync.md | Синхронизация с кольцом |
| screens/03-home.md | Главный экран |
| screens/04-battery-detail.md | Детальный экран Батарейки |
| screens/05-health-detail.md | Детальный экран «Здоровье» |
| screens/06-sleep-detail.md | Детальный экран «Сон» |
| screens/07-energy-detail.md | Детальный экран «Энергия» |
| screens/08-stress-detail.md | Детальный экран «Стресс» (+ on-demand RR) |
| screens/09-activity-detail.md | Детальный экран «Активность» (+ live-тренировка) |
| screens/10-cycle-detail.md | Детальный экран «Цикл» |
| screens/11-raw-metrics.md | Базовые показатели |
| screens/12-context-logging.md | Контекстуальные карточки и логирование |
| screens/13-insights-history.md | История инсайтов |
| screens/14-profile-settings.md | Профиль и настройки (+ уведомления) |
8. Открытые вопросы
Заголовок раздела «8. Открытые вопросы»Что ещё на обсуждении:
- «Здоровье» как название — возможно слишком претенциозное для медленной метрики. Альтернативы: «Резерв», «Форма», «Устойчивость». У Oura — «Resilience». Нужно custdev-тестирование.
- Финальные ярлыки индикаторов (Стресс / Энергия / Здоровье) — текущие варианты драфтовые, надо прогнать через редактуру и тесты читаемости.
- Порядок карточек в блоке 4 — сейчас Сон → Энергия → Стресс → Активность → Цикл. Возможно, утром Энергия должна быть первой, а днём Стресс поднимается выше. Динамический порядок по времени суток?
- Риск визуального дубля — Стресс и Энергия присутствуют в двух местах (индикатор Батарейки + карточка). Обязательно проверить на custdev: не путает ли пользователя. Если путает — упростим до одного места.
- Формула on-demand стресса — кандидат Baevsky SI, окончательно не решили.
- Дневник (Journal) — единая точка для логов и корреляций. Пока закрываем минимально (кнопка «+» и контекстуальные карточки), полноценный Дневник — v1.1.
- Cardiovascular Age / Chronotype — slow-metrics, добавляем в v2, когда у пользователей накопится 90+ дней данных.
- ✅ Верхняя граница Батарейки — 100%, «прозапас» скрыт внутри (не показываем >100%)
- ✅ Целевые шаги по умолчанию — 8 000, с подтягиванием из HealthKit / Google Fit
- ✅ Ведущая рука — спрашиваем при онбординге (для шагомера и PPG)
- ✅ Индикаторы Батарейки — квалитативные ярлыки, без цифр
- ✅ 3 индикатора Батарейки — Стресс (сейчас) / Энергия (сегодня) / Здоровье (недели)
- ✅ Readiness / Recovery не разделяем — это одна концепция под именем «Энергия»
- ✅ 5 карточек в блоке 4 — Сон, Энергия, Стресс, Активность, Цикл (последняя опционально)
- ✅ Стресс и Энергия — и индикатор, и карточка (прогрессивное раскрытие). Здоровье — только индикатор, без карточки.
- ✅ Тренировки — внутри карточки Активности, не отдельной карточкой (решает проблему пустой карточки для неактивных пользователей)
- ✅ Базовые показатели v1 — HRV, Пульс, Пульс покоя (RHR), SpO2, Температура. Дыхание отложено в v2 (нет непрерывных RR в текущем SDK)
- ✅ Стресс: фоновый расчёт — путь Oura/Garmin (HRV vs personal baseline). On-demand измерение через RR — на детальном экране Стресса.
- ✅ Вход — Sign in with Apple или регистрация.
Версия: 4.1 Последнее обновление: 2026-04-24