The variety you didn't ask for (but needed)
If you train planche three days a week, and every core slot on every day of every week is Dead Bug — that gets old. Not because Dead Bug isn't a great core exercise. Because doing the same accessory 12 times a month stops being training and starts being routine.
v1.49 fixes that quietly.
What actually changes for you
Same skill session. Same step (step). Same difficulty. Different movement — rotating week by week.
On your Wednesday planche day this week, your core slot might serve Dead Bug 3×10. Next week, same slot, same step: Bird Dog 3×10. The week after: back to Dead Bug, or maybe Alternating Toe Reach.
You're not being sent to something harder or easier. You're being served an equally-valid movement at the same difficulty band, so the accessory slot stops feeling like it's frozen in place.
Where this fires (and where it doesn't)
Where variety kicks in:
- Family accessory slots inside skill Focus Split sessions (planche day's core, front lever day's push, etc.)
- Only slots that are already offset down from your true step — accessory work, never the main movement of the day
Where it stays the same:
- Your primary skill movement — planche day serves planche, always. The identity of the session doesn't rotate.
- True-step slots — if a slot is training your actual current step, no rotation. Progress there stays traceable.
- Warmups — consistent movement matters more than variety when you're grooving a pattern.
- Foundations Tier 1 sessions today only get variety on the small subset of pilot steps below.
- Custom programs — untouched. What you authored is what you get. Always.
What's authored so far
Pilot scope for v1.49 covers the three families that hit the most weekly rotation traffic:
- Core steps 3-6 — variants around Side Plank, Dead Bug, Hollow Hold, Hollow Rocks
- Push steps 4-8 — variants around Bench, Knee, Negative Floor, Floor, and Feet-Elevated Push-ups
- Pull steps 4-8 — variants around Australian Row (high + low), Negative Pull-up, Band-assisted Pull-up, and Strict Pull-up
Around 35 authored variant movements total. If pilot data shows this actually helps sessions feel fresher, we'll expand into squat, hinge, and higher/lower step bands in v1.50+.
How the rotation stays predictable
The pool picks per ISO week, not per session. A user training the same skill Monday and Wednesday sees the same accessory both times — the movement rotates every Monday morning, globally, no cron needed.
Chosen this cadence deliberately: per-session was too random (accessory changes mid-week feel chaotic), per-day was too fast (you barely learn the movement before it swaps), per-month was too slow (variety promise fades). Per-week is the sweet spot for the "same movement 2-3 times this week, new movement next week" feel.
The pick is deterministic — same user, same week, same slot → always the same variant. No surprises, no randomness that makes bugs hard to reproduce.
Under the hood (the interesting bit)
The rotation isn't just a display swap. It's a real content pick that flows through rungResolver upstream of everything else — so the workout preview, the active session, and the saved history all agree on what movement you trained.
Step-progression logic (bumps, celebrations, milestones) isn't affected. Accessory offset slots don't participate in step-bump gates anyway, so the rotation is variety with zero progression cost.
Every variant is authored at the same difficulty band as its canonical pair. Bird Dog isn't "easier Dead Bug" — it's a peer. If a movement was clearly one step harder or easier, we authored it as its own step, not as a variant. That contract is what makes the rotation safe.
Coming next
If the pilot signals hold up — sessions feel fresher, retention doesn't drop — we roll variety into squat + hinge + more push/pull bands in v1.50+. If not, we've learned something and adjust.
Available in v1.49.0 on TestFlight now. Rolling out to the App Store this week. Feedback welcome at support@zenmotion.app.