Every step, visible
Steps are the atom the app trains on. Since v1.10 we've had detailed ladders — 23 steps on planche, 12 on handstand, 12 on push and pull. But the app never quite treated them like the first-class navigation objects they've become. This release fixes that: step indicators are everywhere, they're tappable, and reaching the top of a ladder is now a permanent unlock instead of a moment that vanishes.
Steps are now tappable everywhere
Six different surfaces in the app show your current step. Before v1.31, only one of them (Stats-tab skill drilldown) actually let you tap through to see the ladder. Now all six do:
- Program cards on the Programs tab show "Currently: [step name]" and a
step 8/23 ↗chip. Tap the chip → jump to the roadmap for that skill. - Home's Next Workout card shows a "Next step · [name] ↗" chip when there's a focus mission or Focus Split active. Tap → roadmap.
- The active-workout goal pill ("Toward Planche") is tappable — from anywhere mid-workout you can peek at where you are on the ladder without ending your session.
- Post-workout step-bump toasts jump to the roadmap when you bump a skill family.
- Stats-tab Athlete Profile family rows (Push, Pull, Squat, Hinge, Core) now open the universal-family roadmap. Every step of the push chain, front to back, with your position highlighted. Symmetric with the skill rows on the same view.
- Stats-tab skill rows still work the same way as before — same view, same expectation.
The design principle: every place that shows a step is a doorway to the ladder. No more "why can't I tap that?"
Elite tier as permanent achievements
Reaching the top step of a family or a skill is a big deal. Push step 12 out of 12 (One-Arm Push-Up) is a milestone maybe 0.5% of trainees ever hit. Planche step 23 (Planche Push-Up) — 0.05%. Until v1.31, those moments got the same generic step-bump toast as bumping from Wall Push-Up to Counter-Top Push-Up.
Not anymore. 16 new elite achievements:
- Push Elite / Pull Elite / Squat Elite / Hinge Elite / Core Elite — top step of each universal family.
- Planche Elite / Front Lever Elite / Back Lever Elite / Elbow Planche Elite / Handstand Elite / Muscle-Up Elite / Press to Handstand Elite / Human Flag Elite / Hefesto Elite / One-Arm Pull-Up Elite / V-Sit Elite — top step of each skill roadmap.
They live in the Achievements tab under a new "Elite" filter chip. They unlock, generate the standard share card, and stay unlocked forever — same permanent-milestone treatment as "First Pull-Up" or "50 Push-Ups in a set". If you're already at an elite step from before v1.31, the unlock triggers retroactively on your next visit to the Achievements tab.
Human Flag ladder tripled
Human Flag went from 10 steps to 18. Same band-tier pattern that landed on planche, front lever, back lever, and elbow planche in v1.10: each unassisted lever position (Tuck, Advanced Tuck, Straddle, Single-Leg, Full) now splits into three tiers — Heavy Assist (thick band), Light Assist (thin band), Unassisted.
Same reasoning as the previous band-tier waves: eight seconds of clean band-assisted tuck flag teaches the pattern better than two seconds of wobbly unassisted attempts. About half of gym-trained calisthenics athletes use bands on levers, and the app should reflect that reality.
Human Flag Calibration signals seed higher too — a solid straddle test now jumps you straight to Straddle unassisted (step 11) or Single-Leg unassisted (step 14) instead of stopping short.
Universal ladders expanded
Hinge went from 4 steps to 10, squat from 6 to 11, core from 5 to 14. The push and pull chains have been at 12 steps since v1.10; the other three families were lagging behind. Now every universal family has room to grow into for advanced trainers — no more capping at "Bulgarian Split Squat" (old squat top) or "Hollow Body Hold" (old core top) after a few months of consistent training.
Under the hood
- 90+ new movement / step entries authored across foundations_rungs.json, skill_roadmaps.json, and templates.
- New
rungFamilycolumn on the Achievement table; newrung_reachedevaluator +rungByFamilybatch-load inachievementEvaluator.ts. - New
familyRoadmapResolver.tsservice +/v1/api/roadmap/family/:familyendpoint. - iOS
SkillRoadmapViewextended with a kind enum — one view, two data sources. - Migration:
20260828180000_add_achievement_rung_family(single ADD COLUMN, safe on prod). - Zero user data lost, zero breaking API changes.
The app's mental model has always been step-based. This release closes the gap between the mental model and the UI.