Every rung, visible
Rungs are the atom the app trains on. Since v1.10 we've had detailed ladders — 23 rungs 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: rung indicators are everywhere, they're tappable, and reaching the top of a ladder is now a permanent unlock instead of a moment that vanishes.
Rungs are now tappable everywhere
Six different surfaces in the app show your current rung. 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: [rung name]" and a
rung 8/23 ↗chip. Tap the chip → jump to the roadmap for that skill. - Home's Next Workout card shows a "Next rung · [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 rung-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 rung 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 rung is a doorway to the ladder. No more "why can't I tap that?"
Elite tier as permanent achievements
Reaching the top rung of a family or a skill is a big deal. Push rung 12 out of 12 (One-Arm Push-Up) is a milestone maybe 0.5% of trainees ever hit. Planche rung 23 (Planche Push-Up) — 0.05%. Until v1.31, those moments got the same generic rung-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 rung 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 rung 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 rung 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 rungs 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 (rung 11) or Single-Leg unassisted (rung 14) instead of stopping short.
Universal ladders expanded
Hinge went from 4 rungs to 10, squat from 6 to 11, core from 5 to 14. The push and pull chains have been at 12 rungs 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 / rung 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 rung-based. This release closes the gap between the mental model and the UI.