| name | body |
| description | Метрики тела: вес, давление, BMI, состав тела. Тренды и корреляции с WHOOP.
Триггеры: «вес», «давление», «BMI», «взвесился», «измерил давление», «body metrics»
|
Health Body — метрики тела
Профиль. До чтения и записи определи активный профиль по
.claude/shared/profile-resolution.md. Короткий путь Data/X в этом файле
означает Data/profiles/<активный>/X — буквально по нему писать нельзя.
Перед записью назови, в чей профиль она идёт.
Назначение
Фиксация и анализ метрик тела: вес, давление, BMI, состав тела. Тренды и корреляции.
Неотложные пороги — проверяются первыми
До записи и любого анализа сверься с Блоком 3 файла .claude/shared/critical-values.md.
| Показатель | Порог | Действие |
|---|
| Артериальное давление | ≥ 180/120 | Гипертонический криз. Это неотложное состояние, а не «повышенное давление». Вывести первым сообщением, рекомендовать вызвать скорую при боли в груди, одышке, нарушении зрения, речи или асимметрии лица |
| Артериальное давление | < 90/60 с обмороком, спутанностью или холодным потом | Неотложно |
| ЧСС в покое | < 40 или > 150 | Неотложно |
| Вес | потеря > 5% массы за месяц без намерения | К врачу |
При срабатывании — записать алерт с severity: "critical" и не продолжать обычный workflow, пока не выведено предупреждение.
Workflow
Добавление измерения
Спросить (все поля опциональны, кроме веса):
- вес (кг)
- давление (систолическое/диастолическое)
- пульс
- процент жира (если есть весы с анализатором)
- мышечная масса
- обхват талии
- заметки
Структура Data/body-metrics.csv — 11 колонок:
date,weight_kg,height_cm,bmi,body_fat_pct,muscle_mass_kg,systolic,diastolic,heart_rate,waist_cm,notes
→ Добавить строку:
2026-03-21,82.5,191,22.6,18.2,,120,80,65,,"утро, натощак"
Правила записи:
- Заметку с запятой обязательно брать в двойные кавычки — иначе строка получит лишнее поле и сломает разбор всего файла
height_cm заполняется всегда, значение берётся из Data/profile.json → basic.height_cm
- BMI рассчитывается как вес / (рост в метрах)², округление до одного знака
- Пустое поле оставляется пустым, пробел не ставится
- Дата в ISO 8601, не из будущего
- При существующей записи за ту же дату — спросить, заменить или добавить второе измерение
Проверка правдоподобия перед записью: вес 30–250 кг, систолическое 70–250, диастолическое 40–150, пульс 30–220. При выходе за диапазон — переспросить, возможна опечатка.
Просмотр трендов
- Прочитать
Data/body-metrics.csv
- Показать последние 10 измерений:
| Дата | Вес | BMI | Жир% | Давление | Пульс |
|------|-----|-----|------|----------|-------|
- Тренд за период:
📊 Вес за последний месяц:
Начало: 84.0 кг → Сейчас: 82.5 кг (−1.5 кг)
Min: 82.0 | Max: 84.5 | Avg: 83.2
- Целевой вес берётся из
Data/goals/YYYY.json → fitness_target.target_weight_kg. Если значение null — блок цели не показывать, вместо него предложить задать цель:
🎯 Цель: 80 кг | Осталось: 2.5 кг | Темп: −1.5 кг/мес → ~2 мес
Данные InBody
Измерения состава тела с InBody лежат в Data/labs/*_inbody.json и частично продублированы в CSV вручную.
Владелец записи — Data/labs/, CSV только отражает сводные значения. При расхождении верны данные InBody. Не создавать новую CSV-строку из InBody, если строка за эту дату уже есть.
Корреляции с WHOOP
- Подтянуть WHOOP за период через MCP-сервер
whoop. Если сервер недоступен — сказать об этом и продолжить без корреляций
- Показать связь веса с recovery, strain, sleep
Корреляция на выборке из одного человека — уровень доказательности D.
Контекст жизни
При интерпретации динамики веса и давления учитывать (Блок 4 холистической рамки):
- фазу питания из
Data/profile.json → lifestyle.nutrition — дефицит или профицит объясняет большинство изменений веса
- вещества: кальян, кофеин, алкоголь — прямое влияние на давление и пульс
- нагрузку и восстановление
Алерты
Записывать в Cache/alerts/YYYY-MM-DD.json по схеме из Блока 5 critical-values.md.
| Условие | Severity |
|---|
| Давление ≥ 180/120 или ЧСС < 40 / > 150 | critical |
| Давление 160–179 / 100–119 устойчиво | high |
| Давление > 140/90 | medium |
| Вес изменился > 2 кг за неделю | medium |
| BMI вне диапазона 18,5–24,9 | low |
Детский профиль
При возрасте младше 18 лет рост, вес и ИМТ не интерпретируются абсолютным
значением — только перцентильно по возрасту и полу (стандарты роста ВОЗ).
См. .claude/shared/pediatric-references.md, Блок 4.
- Записывать в CSV как обычно, интерпретировать — перцентильно
- Значимее положения на кривой её динамика: пересечение двух и более
перцентильных линий вниз или вверх требует внимания, тогда как стабильный
низкий коридор чаще вариант нормы
- Артериальное давление у ребёнка читается перцентилем по возрасту, полу и
росту. Взрослый порог 140/90 неприменим; неотложные пороги из
critical-values.md для детей тоже возрастные
- Без даты рождения перцентиль не считается — сказать об этом, а не
подставлять взрослую логику
Правила
- Неотложные пороги проверяются первыми — до записи и до трендов
- CSV: UTF-8, запятые, первая строка — заголовки, 11 колонок
- Новые записи — append в конец файла, существующие строки не переписывать
- Заметки с запятыми — только в двойных кавычках
- Рост берётся из
Data/profile.json → basic.height_cm
- При давлении > 140/90 — предупреждение о консультации терапевта
- Критерий завершения: строка добавлена, BMI рассчитан, алерты при срабатывании записаны
⚕️ Информация носит справочный характер. Для принятия решений о лечении обратитесь к врачу. При признаках неотложного состояния — 103 или 112.