small-hackathon-trainer / MVP_COMPROMISES.md
Lucas
Add llama.cpp parser backend for Space
95cf15d
|
Raw
History Blame Contribute Delete
4.07 kB

A newer version of the Gradio SDK is available: 6.20.0

Upgrade

MVP_COMPROMISES.md — What we are deliberately simplifying

This file tracks the compromises we are making to finish a real, runnable MVP without forgetting what is missing afterward.

Product compromises

  • Single user only. No profiles, account system, sharing, or multi-athlete support.
  • One fixed 4-day template. The app does not generate a split or choose exercises from a broad database.
  • One-minute rests everywhere. The supplied rest differences are normalized to 1 minute for the MVP.
  • One goal context. The MVP is for hypertrophy and continuous progress during a lean bulk or maintenance phase.
  • Today tab first. Plan, Progress, Research, and richer coach views are deferred until the daily loop works.
  • No fancy UI polish yet. The interface should be usable and clear, not custom or highly styled.

Training-engine compromises

  • Classic straight sets only. Supersets, drop sets, rest-pause, myo-reps, circuits, and other advanced set structures are deferred.
  • No automatic substitutions yet. Exercise equipment and availability are not in the schema yet.
  • No pain substitutions yet. The deterministic engine can remove exercises that hit a painful muscle, but it does not yet choose replacement exercises.
  • MVP exercise muscle tags. Exercise-to-muscle mappings are fixed for the current template and should be reviewed/refined later.
  • Simple time compression. The engine reduces sets for short sessions, but it does not yet estimate true exercise duration, warm-up time, or transition cost.
  • Simple readiness adaptation. The engine reduces sets/RIR from a weighted score, but soreness is still inferred from free text and stress/mood share one field.
  • Simple load increments. Double progression uses fixed +1 kg jumps for all exercises. Later, increments should vary by exercise, equipment, available plates, and whether the movement is compound or isolation.
  • Incomplete progression gating. Double progression now moves reps before load, but the MVP progression rule still checks reps and latest load only. Target RIR, form quality, pain severity, and exercise-specific edge cases are follow-up decisions.
  • No periodization yet. Deloads, mesocycles, volume landmarks, and planned up/down weeks are out of scope for the MVP.

Parser compromises

  • The parser is not the coach. It extracts structured check-in data and asks follow-up questions; it does not make training decisions.
  • Multi-round clarification over one-shot perfection. The small model proposes structured follow-up questions, and deterministic cleanup removes obvious duplicates, already-answered questions, and unsupported activity/body-area follow-ups.
  • Local development uses Ollama. This is fast and useful locally. Hugging Face Spaces use a GGUF llama.cpp backend so CPU deployment does not rely on slow PyTorch Transformers generation.
  • Acceptance fixtures are test coverage, not product proof. They help catch obvious regressions, but real value still comes from logged sessions.

Persistence compromises

  • Local JSON default. The app defaults to local JSON so it can run fully locally without cloud dependency. Hugging Face Dataset storage is optional deployment persistence enabled by environment variables.
  • Minimal history first. We only store completed date, day number, exercise id, set number, actual reps, actual load, and optional RPE/notes before adding richer analytics.
  • No sync/conflict handling. Single-user MVP means no concurrent edits or merge logic.

Hackathon compromises

  • Backyard AI proof over breadth. Real logged use, a precise parser job, and a deterministic engine matter more than many features.
  • Small-model badge only if it does not break the spine. Tiny/local model work is valuable, but the daily training loop comes first.
  • Research-reader and fine-tuning are stretch. They stay out until check-in → session → log → next session works end to end.