Health Body — метрики тела
SkillMonitoring & opsBody metrics: weight, blood pressure, BMI, body composition. Trends and correlations with WHOOP. Triggers: «вес», «давление», «BMI», «взвесился», «измерил давление», «body metrics»
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Health Body — метрики тела skill
What this skill tells your AI
The instructions your AI receives, as published by alxyrgin/health-os in .claude/skills/body/SKILL.md and read by ahel’s review.
Профиль. До чтения и записи определи активный профиль по
.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.
Signals
- GitHub stars
- 38
- Forks
- 7
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
body- Source
- github.com/alxyrgin/health-os