Screens and flow for milestones F4 (Movement hierarchy) · F5 (enrollment & plan management) · F6 (session runner)
of docs/proposal/training-engine.md. Direction mockup, not a pixel spec, colors and shapes come from
Tokens.swift (BOLD, light-only, green #00D280). All product copy in English.
Scroll each section horizontally to follow the sequence.
← What ships first in F1–F3 (before/after) · ▶ Session runner, interactive (F6)
Move hub5 areas, §18
→
Plan detailsExplore
→
Enrolldays · reminders · review
→
Today cardone honest action
→
Runnersets · rest · swap
→
Summaryunlocks next
1 · Move hub, five legible areas (F4, §18)
Quick movement first (no plan needed), then Today only when something is actionable,
then My programs, Explore, History. The green card is reserved for a real action: Start, Continue or Do it today.
Walk types: small cards, horizontal scroll, star ★ pins favoritesSteps live in the Move header, never a competing cardToday card: plan + session name, session counts don’t scale to long plansMy programs: progress bar + vanity stats (sessions · sets · reps · kg moved); tap → plan detailOrder: starred by most-used, then unstarred by most-usedToday never disappears, rest days say “No session today” + the next date (amends §18.2)§9.3 a waiting session shows its date, never a backlog countForbidden words: pending · overdue · behind
A · Hub, session actionable todayToday hero + all five areas
9:41●●●
Move
4,306 steps
🕘
QUICK MOVEMENT
★
10 min
Daily loop
★
15 min
Brisk
☆
8 min
Easy start
☆
12 min
Steady
Counts after 1 minute · starred first, then your most-used
Only ONE current session per plan. Five missed days still show one card, never five.
TodayMoveProgressLearnYou
→session done · next projected Friday
C · Hub, nothing due todayexplicit rest day · train ahead is explicit
9:41●●●
Move
4,306 steps
🕘
QUICK MOVEMENT
★
10 min
Daily loop
★
15 min
Brisk
☆
8 min
Easy start
TODAY
No session today
Next up · Strength 3. Friday, Aug 14 · VitalPath
MY PROGRAMS
MTWTFSS
VitalPath
MentorSport · Beginner · Up next: Strength 3. Friday
Do it today
Edit days
ACTIVITY HISTORY
All movement›
Rest day is explicit. Today never disappears: “No session today” plus the next date (amends §18.2). “Do it today” remains the only way to pull a future session forward (§9.6).
See all → full catalog with categories, filters and sorting → Plan details → Choose your training days →
Reminders → Review your schedule → Start plan. Atomic: enrollment + finite schedule are created together.
Multiple plans allowed, same days allowed, zero warnings.
Explore in the hub = horizontal shelf + See allSee all = vertical catalog: categories, filters, sort by duration and more§9.1 weekdays belong to THIS enrollment onlyPrinciple 7: overlapping plans, no lecturesPlans are finite, they end, they never loop
D0. All plans· “See all” from Explore
9:41●●●
‹ Move
Programs
All2 weeks3 weeks4 weeks6 weeks
Category ▾ · Level ▾ · Equipment ▾6
2 weeks3×/week
VitalPathBeginner · Full body
6 weeks3×/week
Dumbbell BasicsBeginner · Strength
3 weeks5×/week
Mobility ResetAll levels · Mobility
4 weeks3×/week
Chair StrengthBeginner · Low impact
Reference pattern (Speediance): duration tabs on top, cover grid with length + suggested-frequency badges, name and level · category below. Category/level/equipment stay as secondary filters. Every program is finite.
→pick a plan
D · Program detail· tiles + weekly schedule
9:41●●●
‹ Programs
♡
▶
VitalPath
MentorSport · Official program
2Weeks
3×Per week
BeginnerDifficulty
INTRODUCTION
Short full-body sessions to build a resistance habit. Show up, the program handles the order.
PROGRAM SCHEDULE
Week 1 ⌃
Day1
Day2
Day3
Day4
Day5
Day6
Day7
Strength 19 movements · ~15 min
›
Strength 29 movements · ~15 min
›
Week 2 ⌄
Join program
Duration · frequency · difficulty tiles, introduction, and the schedule by weeks (reference pattern). Suggested days show the template's rhythm, your real days are chosen at join and can change anytime.
→Join program
E · Choose your training daysPer-enrollment, no limits
9:41●●●
‹ Back1 of 3
Choose your training days
These days belong to this plan only. They create structure, not restrictions.
M
T
W
T
F
S
S
3 days a week · sessions follow your order on these days
Already following another plan on Monday? That’s fine, plans never limit each other.
Continue
→Continue
F · RemindersOptional, one per day max
9:41●●●
‹ Back2 of 3
Reminders
A single gentle heads-up on your training days.
Training day reminder
“Your next session is ready, about 15 minutes.”
Never more than one Sculpi notification per day. A missed session never triggers repeated reminders.
Continue
→Continue
G · Review your scheduleFinite projected sequence
9:41●●●
‹ Back3 of 3
Review your schedule
4 sessions on Mon · Wed · Fri, starting this week.
1
Strength 1Wed, Aug 12
2
Strength 2Fri, Aug 14
3
Strength 3Mon, Aug 17
4
Strength 4Wed, Aug 19
Future dates are projections, they reflow with you and unlock in order. The plan ends after Strength 4.
Join program
→enrollment + schedule created atomically
↩ Back to hubToday card live (screen A)
VitalPath
Strength 1
▶ Start today's session
3 · Plan detail & management (F5, §9)
The finite sequence with honest states, completed, skipped, current, locked. Management lives here:
Do it today, Move date, Skip, Edit days, Pause (finite), Leave. After 14+ waiting days, a discreet in-context offer.
§9.2 exactly one current session; the rest are locked, not pending§9.5 skip needs confirmation and never pulls the next session to today§9.11 pause always has a return date · silences all coaching§9.10 resume/restart offer only in context, never a notification
H · Plan detail, mixed statesThe sequence, legible
9:41●●●
‹ Move
⋯
VitalPath
MentorSport · Beginner
MTWTFSS
1Sessions
18Sets
152Reps
14:20Time
✓
Strength 1Completed · Mon, Aug 3
–
Strength 2Skipped · Wed, Aug 5
Current · Waiting since Thu, Aug 6
Strength 3
Start
Move date
Skip session
🔒
Strength 4Unlocks after Strength 3 · projected Mon, Aug 17
Edit days
Pause
Leave
→Skip session
I · Skip confirmationNeutral, factual, valid choice
Skip this session?
This closes Strength 3 and unlocks Strength 4 on your next training day, Friday. Skipping is a decision, not a failure.
Skip session
Keep it
→Pause
J · Pause plan (finite)Return date required
Pause VitalPath
No reminders, no cards, no coaching until you’re back. Your sequence stays exactly where it is.
Back onMon, Aug 24 ▾
You can come back earlier or move the date anytime.
Pause until Aug 24
Cancel
→14+ days waiting, plan opened
K · Long absence offerIn-context only, no guilt
9:41●●●
‹ Move
⋯
VitalPath
Welcome back
Strength 3 has been ready since Jul 22. Continue where you were, or start the plan fresh, both keep your history.
Pick up where you left off
Start over
✓
Strength 1Completed · Jul 13
✓
Strength 2Completed · Jul 20
3
Strength 3Current
🔒
Strength 4Locked
No streak shaming, no “you missed 21 days”. Start over = new enrollment (§9.9); the old one is archived intact.
4 · Session runner (F6, §10)
Blocks in authored order → exercises → sets. Every value auto-saves; closing the app never loses work.
Rest is suggested, never enforced. Swap replaces without shame. The summary closes the loop and unlocks the next session.
§10.2 resume at the first unresolved item§7.4 rest: Skip · +15 sec · Start next set, never blocks§10.6 swap keeps completed sets on the original exercisePartial work is saved to history but does NOT advance the plan
L · Session overviewContinue banner when partial
9:41●●●
‹ Plan~15 min
Strength 3
You stopped at Half squat · set 2. Continue where you left off, everything is saved.
MAIN · 9 EXERCISES
✓
Hip abduction hold2 × 20″ per side
▶
Half squatSet 2 of 3 · 8–12 reps
3
Back extension2 × 8
4
Wide squat2 × 8
…
5 more
Continue
→Continue
M · Exercise + set loggingVideo · reps · effort · pain flag
9:41●●●
▶
Half squat
Set 2 of 3Target 8–12 reps
−
10reps
+
HOW DID IT FEEL?
Had 3+ left1–2 leftAt my limitPain
Log set
Swap exercise
Skip exercise
Weight steppers appear for external-load exercises, pre-filled with the last used load (editable, never auto-increased).
→Log set (rest authored)
N · Rest timerUser controls it, data recorded
9:41●●●
Rest · then Half squat set 3
0:28of 0:45
+15 sec
Skip rest
Start next set
Suggested rest, actual rest, extensions and skips are all recorded (§12.2), future progression signals.
→Swap exercise
O · Similar exercisesNo reason asked · scoped
Similar exercises
Same muscle intent as Half squat. No reason needed.
1
Wide squatQuads · Glutes · no equipment
›
2
Sit to standQuads · Glutes · chair
›
APPLY
Just this sessionFor this plan
Your 1 completed set stays with Half squat; remaining sets use the replacement. Loads never copy across exercises.
Swap to Wide squat
→all items resolved
P · Session summaryConstancy, volume, honest labels
9:41●●●
VitalPath
You showed up.
Active 12:40 · Rest 4:15 · 8 of 9 exercises
Volumeseparate units, never mixed
84 reps · 2:00 held ·, kg (body weight)
Quadriceps32%
Glutes24%
Core18%
Next up
Strength 4 · projected Friday, Aug 14. Last session of the plan.
Done
Celebrates presence only, never weight. e1RM cards appear here labeled “Estimated 1RM” with confidence, when external load exists.
5 · Quick movement & unified history (F7 preview, §11)
A walk needs one tap and one minute. Everything, quick, partial, plan, lands in one ledger;
a day counts once for consistency no matter how much you move.
§11.1 qualifies at 60 verified active seconds§11.2 one ledger, origins filtered, never separated§11.3 same habit event as a plan session → same streak
Q · Walk in progressThe one-minute rule, visible
9:41●●●
Walk
0:47counts at 1:00
At 1:00 this walk counts for today, stop anytime after and it still counts.