# WatchBody — «Феникс 6X», контроль силовых тренировок Код системы — **WatchBody** (репозиторий `https://git.mind01.ru/VEU/VEU.WathBody.git`); отображаемое название продукта — **«Феникс 6X»**. Компоненты: **Phone.WatchBody** (Android- приложение атлета), **Server.WatchBody** (серверная часть); поле данных часов — WatchBody Data Field. Персональный комплекс «часы Garmin Fenix 6X + телефон Android + личный сервер»: голосовой учёт подходов, кардиоконтроль на запястье, ведение и корректировка программ тренировок, полный архив с пульсом в собственной базе. ## Концепция Для атлета-любителя, который тренируется со штангой и гантелями и хочет вести учёт и контролировать нагрузку, не выпуская из рук снаряд, **«Феникс 6X»** — персональный комплекс «часы Garmin + телефон + личный сервер», который голосом записывает подходы, показывает кардионагрузку и отдых на запястье, ведёт тренировку по программе и автоматически собирает полный архив с пульсом в собственной базе; в отличие от блокнотов, приложений-дневников с ручным вводом и штатных экранов Garmin, наш продукт фиксирует результаты без рук, сверяет их с программой и на основании результатов корректирует следующие тренировки, храня данные у владельца, а не в чужом облаке. Полный образ проекта — [1-docs\1-reqs\vision.md](1-docs/1-reqs/vision.md) (утверждён 2026-10-17). ## Версии - **v1.0** — полный MVP-цикл: голосовой учёт подходов (офлайн), кардиоконтроль на часах (поле данных в профиле «Силовая»), офлайн-учёт с автосинхронизацией, серверный архив из .fit (Garmin Connect), веб-история с CSV, программы тренировок с контролем «план/факт» и правилами прогрессии (без LLM). - **v2** — LLM-планирование (еженедельные предложения через валидатор), wake-word «Феникс, записывай», iOS, экспорт FIT, программы на часы. - **v2.x** — мезоциклы LLM, «генератор+ревьюер», опрос RPE, аналитика. - **v3+** — трековые виды спорта (бег/вело). ## Состав системы и архитектурные фиксации - **Часы Garmin Fenix 6X** — Monkey C (Connect IQ SDK): поле данных в штатном профиле «Силовая»; пульс, зоны (50/70/85 %), Lap — конец подхода; полностью автономны от телефона. - **Телефон** — нативный Android (Kotlin, Room, офлайн-STT Vosk/sherpa-onnx): голосовой учёт, экран тренировки, программы, локальная БД, очередь синхронизации; работает без часов, интернета и сервера. - **Сервер** — C# / .NET 10 + PostgreSQL по стандарту std1: REST API (статический ключ, идемпотентность), забор .fit из Garmin Connect (неофициальный клиент; деградация — ручной экспорт в папку импорта), парсинг FIT (Garmin FIT SDK), MetricsEngine, ProgramStore (версионированный JSON-программы), веб-интерфейс с CSV. - **Форматы** — FIT основной; импорт FIT/TCX/GPX; внутреннее хранение и API — JSON; CSV — отчётные выгрузки; GPX для силовых данных не используется. - **Офлайн-first и независимость частей** — каждая часть (часы, телефон, сервер) работает при отсутствии остальных; данные досылаются автоматически, дубликаты исключаются идемпотентностью. - **LLM — планировщик, код — источник истины** — LLM только предлагает изменения структурным JSON; детерминированный валидатор и подтверждение пользователя обязательны; офлайн-fallback — правила прогрессии. ## Слои Серверная часть (БД, DAL, документация делятся одинаково): - `src` — основные данные: тренировки, подходы, программы, метрики; - `ref` — справочники: библиотека упражнений, двигательные группы. ## Структура репозитория ``` readme.md — этот файл Техническое задание.md — исходное ТЗ (17.10.2026) Требование.md — требование по стекам (сервер — std1) Форматы_тренировок_и_рекомендации.md — обзор форматов Архитектура_LLM_планирования_тренировок.md — дизайн LLM-планирования 1-docs\ 0-mng\ — управление проектом (план проекта) 1-reqs\ — vision, функциональные требования 2-arch\ — архитектура (components, hld.puml) 3-tech\ — технические требования, спецификации библиотек 4-modules\ — документы модулей 2-db\ — функции БД (psql, тесты) 3-app\ 1-lib\ — разделяемые библиотеки (Kit.Helpers и др.) 2-cli\ — приложения/модули сервера ``` ## Ссылки - Стандарт разработки std1: `I:\Kit\Kit.DevAi\std1` (процесс — `_process\process.md`, правила — `_rules\`). - План проекта: [1-docs\0-mng\plan.md](1-docs/0-mng/plan.md).