diff --git a/.planning/REQUIREMENTS.md b/.planning/REQUIREMENTS.md new file mode 100644 index 0000000..9e4218a --- /dev/null +++ b/.planning/REQUIREMENTS.md @@ -0,0 +1,78 @@ +# Requirements: Gravl Workout UX + +**Defined:** 2026-02-15 +**Core Value:** Att logga ett träningspass ska vara snabbt, tydligt och flexibelt + +## v1 Requirements + +### Input UX + +- [ ] **INP-01**: Viktfält visar "kg" suffix synligt i inputen +- [ ] **INP-02**: Reps-input förhindrar negativa värden (min=0) +- [ ] **INP-03**: Vikt-input förhindrar negativa värden (min=0) +- [ ] **INP-04**: Alla input-fält och knappar har minst 44px höjd (touch targets) +- [ ] **INP-05**: Input font-size minst 16px (förhindrar iOS auto-zoom) +- [ ] **INP-06**: Stepper-input med +/- knappar för vikt (steg 2.5kg) +- [ ] **INP-07**: Stepper-input med +/- knappar för reps (steg 1) + +### Set Management + +- [ ] **SET-01**: Användare kan lägga till extra set på vilken övning som helst under ett pass +- [ ] **SET-02**: Användare kan ta bort set från vilken övning som helst under ett pass +- [ ] **SET-03**: Tillagda/borttagna set sparas korrekt i databasen + +### Workout Modification + +- [ ] **MOD-01**: Användare kan modifiera ett programpass genom att byta ut övningar +- [ ] **MOD-02**: Användare kan lägga till övningar till ett programpass +- [ ] **MOD-03**: Modifierat pass sparas som eget pass (forkar, ändrar inte programmet) + +## v2 Requirements + +### Custom Workouts + +- **CUS-01**: Användare kan bygga helt eget pass från övningslista +- **CUS-02**: Användare kan spara eget pass som återanvändbar mall +- **CUS-03**: Egna pass visas i WorkoutSelectPage bredvid programpass + +### Enhanced UX + +- **ENH-01**: Förfyll förra passens vikt/reps som referens +- **ENH-02**: Vila-timer med browser-notifikationer + +## Out of Scope + +| Feature | Reason | +|---------|--------| +| Bygg helt nytt pass från scratch | Skjuts till v2 (CUS-01/02/03) | +| Periodisering/programplanering | Scope creep — Gravl är en enkel PPL-tracker | +| Sociala funktioner | Inte relevant för personlig träningsloggning | +| Video-övningsdemos | Lagring/bandbredd, inte core value | +| Gamification (badges, streaks) | Distraherar från snabb loggning | + +## Traceability + +| Requirement | Phase | Status | +|-------------|-------|--------| +| INP-01 | TBD | Pending | +| INP-02 | TBD | Pending | +| INP-03 | TBD | Pending | +| INP-04 | TBD | Pending | +| INP-05 | TBD | Pending | +| INP-06 | TBD | Pending | +| INP-07 | TBD | Pending | +| SET-01 | TBD | Pending | +| SET-02 | TBD | Pending | +| SET-03 | TBD | Pending | +| MOD-01 | TBD | Pending | +| MOD-02 | TBD | Pending | +| MOD-03 | TBD | Pending | + +**Coverage:** +- v1 requirements: 13 total +- Mapped to phases: 0 +- Unmapped: 13 + +--- +*Requirements defined: 2026-02-15* +*Last updated: 2026-02-15 after initial definition*