MoSCoW Prioritization — Personal Training OS (v1 / race-week MVP)¶
Artifact: 1.2 (Phase 1 — Planning) · Owner: Product Owner (Primary User) Version: v1.0 — RATIFIED by PO 2026-07-04 · Date: 2026-07-04
MoSCoW sorts scope into Must (no v1 without it), Should (important, not vital), Could (nice, first to drop), Won't (explicitly out this release). Discipline rule: Must-haves should be a minority of effort — if everything is Must, nothing is prioritized. "Won't" is a real decision, carried from the Charter's out-of-scope.
Prioritized at capability level (not all 94 requirements). Note: creating the 15 database structures is itself a Must (requirement ARCH-001); what varies below is how far each is seeded, viewed, and automated for v1.
Must — the race-week MVP (usable for the SF races, 25–26 Jul)¶
| Capability | Serves |
|---|---|
| All 15 DBs created with schema, relationships & automation-ready fields | ARCH-001; foundation |
| People + Primary User & Secondary User as first-class | SC3 |
| Training Sessions core (log runs / races / workouts) | core |
| Races DB + Example Half Marathon & Example 5K seeds | race week |
| Historical run seeds (11-mi, 5-mi) | continuity |
| Running Shoes + auto mileage rollup | SC6 (gear) |
| Running Routes + generic seeds | core |
| Hockey game sessions + attendance / counts-toward-training logic | core rule |
| Dashboard + core views (This Week, Planned Runs, Races, Hockey both teams, Shoe Mileage) | SC1 |
| Calendar import for planned runs (low-effort capture) | SC2 |
| Core rollups (shoe mileage, hockey load) | SC4 |
Should — valuable; do if time before race week, else fast-follow¶
| Capability | Serves |
|---|---|
| Metrics / Check-ins usable (manual daily) | SC4 |
| Nutrition Log usable (manual) | future SC2 |
| Goals + Training Blocks with views | insight |
| Weekly Reviews (manual) | habit/SC1 |
| Exercise Library + Workout Templates populated | SC5 |
| ≥1 running + 1 strength + 1 hockey plan (linked/embedded materials) | SC5 |
| Hockey Drills + Resources seeded | SC5 |
Could — nice-to-have; first to drop under time pressure¶
| Capability | Serves |
|---|---|
| Richer insight dashboards (beyond mileage + load) | SC4+ |
| Embedded videos / extra plan materials | SC5+ |
| Equipment/balance-board nuance, extra routes | polish |
Won't (this release) — deferred by Charter, revisit post-v1¶
| Deferred | Why / status |
|---|---|
| ~~Garmin live sync~~ | ✅ PROMOTED → SHIPPED as Increment 2 (2026-07-05). Was deferred for time; time recovered (ahead of schedule) → built. |
| MyFitnessPal / Apple Health / Strava live sync | Still deferred. Discovery done 2026-07-05: Strava = your subscription-cost call; MyFitnessPal = no viable automated path (API partner-only, scraper broke on MFP's Dec-2025 SPA rewrite, ToS bans scraping) → recommend FatSecret/Cronometer or manual; Apple Health = no cloud API, needs on-device Health Auto Export bridge, largely redundant with Garmin. |
| RAG / AI-insight capability | Charter §5. Candidate for a post-race-week Increment 4 (payoff grows with logged data). |
| Other life domains ("everything eventually") | Charter §5 — mission boundary, not a schedule call. Keep out. |
| Users beyond Primary User + Secondary User (family/friends/kids) | Charter §5 — keep out unless a real need appears. |
| ~~Auto-schedule hockey games into Training Sessions~~ | ✅ PROMOTED → SHIPPED as Increment 3 (2026-07-05). Upcoming games auto-create Planned Hockey sessions linked to the game; TBD bracket placeholders are filtered (team must be a named participant); the plan-vs-actual reconciler flips the row to Attended when the Garmin skate lands. Built to ADR-0003 (game DBs stay source-of-truth). |
PO ratification: ✅ 2026-07-04 — accepted as drafted. SC5 (training-plan materials) accepted as Should / fast-follow: go-live (G6) may precede SC5, with materials landing shortly after race week.
Amendment v1.1 (2026-07-05): added one Won't-this-release item (auto-schedule hockey games) from UAT validation. Verification passed (built to ADR-0003) but validation flagged an expectation gap; PO disposition = accept MVP as-is, deferred automation logged above. No change to Must/Should/Could.
Amendment v1.3 (2026-07-05): re-triage after finishing Must+Should+Could ahead of schedule (build complete ~3 weeks before race week 25–26 Jul). "Won't" is a time-boxed decision, so two items were promoted out of Won't and shipped: (1) Garmin live sync → Increment 2; (2) auto-schedule hockey games → Increment 3 (this change). Also corrected drift: the Won't list had still shown Garmin as deferred after it shipped. Discovery run on the remaining integrations (MyFitnessPal, Apple Health) — findings folded into the Won't table above. No change to Must/Should/Could scope. Change driver = capacity, logged in RAID.