VEU.WathBody/1-docs/0-mng/plan.md

7.5 KiB
Raw Blame History

План проекта: WatchBody («Феникс 6X»)

Код системы — WatchBody (репозиторий https://git.mind01.ru/VEU/VEU.WathBody.git); название продукта — «Феникс 6X». План проекта — формат по sd-init-5 (std1\_rules\sd\sd-init.md); шаги процесса — std1\_process\process.md. Статусы: ⬜ — не начат, 🔄 — в работе, ✅ — завершён. План актуализируется по факту прохождения шагов.

Шаг процесса Артефакты Статус
1. Инициация разработки 1-docs\1-reqs\vision.md (утверждён 2026-10-17, v1.0), 1-docs\0-mng\plan.md ✅
2. Создание рабочей области readme.md системы, структура репозитория, .gitignore ✅
3. Разработка функциональных требований 1-docs\1-reqs\requirements.md (утверждён 2026-10-17) ✅
4. Разработка архитектуры 1-docs\2-arch\architecture.md, hld.puml (+ рендер) (утверждена 2026-10-17) ✅
5. Разработка технических требований 1-docs\3-tech\tech-requirements.md, спецификации библиотек (утверждены 2026-10-17) ✅
6. Проектирование баз данных 1-docs\2-db\ — readme, src\tables.md, ref\tables.md, functions.md (утверждены 2026-10-17) ✅
7. Итерационная разработка 3-app\ (код), 1-docs\4-modules\ (документы модулей) 🔄

Решение шага 6 (состав данных)

Принято (2026-10-17): серверная БД — PostgreSQL (реляционные данные, ссылочная целостность, изоляция атлетов); состояние телефона — локальная Room/SQLite; файлы (.fit, логи) — вне БД. Схемы-слои: src — данные тренировок, программ, атлетов, метрик; ref — справочники (двигательные группы). Документация — 1-docs\2-db\. JSON-тела (версии программ, факты .fit) — jsonb внутри таблиц.

Решение шага 7 (разбивка версии 1.0 на модули)

Принято (2026-10-17): версия 1.0 разбивается на модули по компонентам архитектуры v1.1; порядок — итерациями (итерация 1 — серверный фундамент, чек-лист шага 7 tech-requirements разд. 7). Статусы модулей: ⬜ — не начат, 🔄 — в работе, ✅ — завершён.

Модуль Состав (проект) Итерация Статус
m01-server-db Схема src/ref: миграции, psql-функции + тесты (d-dev 1–4); домен C# + DAL-репозитории (d-dev 5–7; 13 репозиториев в 8 файлах: Program.cs → Program+ProgramVersion, Workout.cs → Workout+WorkoutSet+CommandLog, DailyLog.cs → DailyLog+WorkoutMetrics+Break, Exercise.cs → Exercise+ExerciseReplacement, остальные — по классу); --mode migrate 1 ✅ (2026-10-18: 38/38 функций DONE; после З-35 — тесты psql 123/123 + C# 56/56, миграция 003 external_id)
m02-rest-api Server.WatchBody.Web: POST /api/v1/sync, GET workouts, GET programs/active, middleware ключа; MVC + fluent Kit.Helpers.Routes 1 ✅ (2026-10-18: закрыт; после З-41(а) — тесты Web 81/81 + Core 56/56)
m03-program-store Server.WatchBody.Core: версионный JSON программ, active — ровно одна 1 ✅ (2026-10-18: ProgramStore, 7 методов, тесты 19 PASS)
m04-metrics-engine Server.WatchBody.Core: adherence, тоннаж, 1ПМ (Эпли), пульс-метрики, красные флаги 2 ✅ (2026-10-18: MetricsEngine + Safety, sync-пересчёт, тесты 17 PASS)
m05-progression-rules Server.WatchBody.Core: правила прогрессии (Ф-12.2), делоад (Ф-12.4), перерывы/возврат (Ф-14), учёт ограничений (is_active/замены), draft-версии author=rules 2 ✅ (2026-10-18: ProgressionRules + BreakEngine, фильтр ограничений, тесты Web 81/81 + Core 56/56)
m06-fit-import Server.WatchBody.Import + --mode import: FitParser (FIT SDK) → workout-facts/1, сопоставление ±15 мин, дедуп fit_file_id, пакет программы, TCX/GPX, архив 2 ✅ (2026-10-18: Garmin.FIT.Sdk 21.218.0, FitParser/WorkoutImporter/ProgramPackageImporter/ImportService, тесты Web 93/93 + Core 56/56, psql 123/123)
m07-fit-fetch Server.WatchBody.Fetch + --mode fetch: GarminClient (SSO по контракту garminconnect), FitFetcher (дедуп 2 рубежей), разбор конвейером m06 2 ✅ (2026-10-18: SSO-флоу + FakeGarminHandler, тесты Web 98/98 + Core 56/56; против живого Garmin — ручная валидация прототипа, fallback — m06)
m08-admin-web Admin-консоль: UI — Flutter Web (3-app\3-web\admin-web), бэкенд — admin REST API (/api/admin/*) в Server.WatchBody.Web: атлеты, тренировки, программы, метрики, CSV 3 ⬜
m09-phone-core WorkoutCore + LocalDb (Room) + SyncQueue: тренировка, дневник, допуск, перерывы 4 ⬜
m10-phone-ui TrainingUi (Compose): экраны тренировки/истории/программ/профиля/дневника/допуска 4 ⬜
m11-voice-input VoiceInput: Vosk-STT, грамматика, TTS, журнал команд 5 ⬜
m12-watch-channel WatchChannel: companion-канал Connect IQ (прототип ОВ-3 — итерация 1, чек-лист 7.1) 5 ⬜
m13-fenix-data-field FenixDataField (Monkey C, таргет fenix6x): пульс/зоны/отдых 5 ⬜

Прототипы чек-листа шага 7 (tech-requirements разд. 7) выполняются в своих итерациях; ОВ-3 (companion-канал) — прототип в итерации 1 параллельно m01–m03 (нужен для ранней проверки канала).

Состав версий (vision 2.2–2.4, решения опросников)

  • v1.0: полный MVP-цикл (Ф-1–Ф-9) + программы без LLM (Ф-10, Ф-11, правила прогрессии), Ф-13 (MVP-состав документа метрик: дневник АД/вес/ пульс покоя/самочувствие, допуск, RPE/боль в колене, правила 1–6) и Ф-14 (перерывы, vision 2.2). Платформы: Android (Kotlin), Fenix 6X (Monkey C, поле данных; изменение vision 1.5), сервер C#/.NET 10 + PostgreSQL.
  • v2: LLM-планирование (еженедельно), wake-word, iOS, экспорт FIT, программы на часы (FIT workout).
  • v2.x: мезоциклы LLM, «генератор+ревьюер», опрос RPE, аналитика.
  • v3+: трековые виды спорта (бег/вело).