Smarter warmups

For a year, warmup was a checklist: wrist circles, shoulder pass-throughs, scap pulls. Same list before a Planche Focus session as before a Foundations day. Generic mobility, tapped-off in 60 seconds, then straight into the hard work.

That's fine for beginner rep-based training. It's not enough before a max-effort straddle planche hold — the exact position that fails from a broken hip line or an unbraced core, not from lack of shoulder strength.

v1.37 makes the warmup skill-specific. And it teaches the app that some steps need more than strength to earn.

Activation, not just mobility

Before every skill-focused session at step 7 or above (Tuck Planche territory and up), the warmup gets two new slots after the generic mobility pass:

  • A core primer — Hollow Body Hold for advanced athletes, Dead Bug for intermediates, floored at Side Plank for everyone else. 2 sets, 20 seconds. Enough to wake the anterior chain; nowhere near enough to fatigue it.
  • A posterior primer — on skills where hip lock matters (planche, front lever, elbow planche, human flag, PtH), a Single-leg Glute Bridge for the same 2×10.

The steps scale. If your core is at Dragon Flag level, we don't put you on Dragon Flag as activation — that's training. The cap is Hollow Body Hold, always. Advanced users find the primer trivially easy. That's the point: neurological wake-up, not training volume.

On beginner-step sessions (Wall Push-Up territory), activation stays silent. The main work isn't max-effort anyway.

The 2-set signal

Activation exercises show a small "Activation" pill next to the exercise name, plus two progress dots. Tap set 1 — first dot fills. Round rolls over, tap set 2 — second dot fills. Card completes.

Generic mobility rows keep their compact tap-to-complete UX. You see, at a glance, which rows are 1-set mobility versus 2-set primers.

The antagonist cap

Same planche session had another quiet problem: the pull accessory kept resolving to Archer Pull-Up (step 10) for anyone with heavy pull strength. Archer is max-effort work. Doing it as antagonist on a planche day burned out the same delts and scaps the planche hold depended on.

v1.37 adds antagonist caps to skill Focus Splits. On planche Foundation, Mobility, and Skill Practice days, the pull slot caps at Strict Pull-Up (step 8). Challenging bodyweight, but not near-max. On Pull Balance day, where pull IS the emphasis, the cap lifts. Cross-training that supports the main work rather than competing with it.

Mobility as prerequisite

The trickiest failure mode in the step model surfaced during my own Press-to-Handstand session. Strength-wise I could do Stalder Press-to-Handstand — I've got the pushing power. Mobility-wise? Not remotely. Pancake compression to floor is a real ask, and my hips said no. The app pushed me into a position my body couldn't enter.

The fix isn't to demote the step. It's to acknowledge that some steps need more than strength.

Skill steps now support a requires field: the highest step the app will serve you is the one where all requirements are met. Currently authored on:

  • PtH step 6 (Pike Press) — needs mobility step 4 (seated pike fold, chest to thighs)
  • PtH step 7 (Stalder) — needs mobility step 5 (straddle pancake, chest 30cm above floor)
  • PtH step 8+ (Straddle → Full → Weighted) — needs mobility step 6 (pancake within 15cm of floor)
  • V-Sit step 7+ (Modified V-Sit → Manna) — same pattern, pike + straddle compression gates

If your strength is at PtH step 8 but your mobility is at step 3, you get served step 5 (Band-Assisted Thin, no gate). Your strength step doesn't move down. When your mobility catches up — via Foundations mobility work, dedicated stretching, or life-improved hip flexion — the cap silently lifts. You unlock Pike Press, then Stalder, then Straddle, one mobility gain at a time. No re-calibration required.

What's next in this direction

This is horizon 1 of a longer arc, documented in the backend CLAUDE.md.

Horizon 2 — branching variants per step. PtH has two natural paths: bent-arm (mobility-lenient) and straight-arm (mobility-strict). Both progress on strength; the app picks the variant that matches your mobility profile. This is weeks-months work; horizon 1 has to prove itself in the wild first.

Horizon 3 — universal requires. Any step on any ladder can gate on any other step. Muscle-Up requires pull step 8. Front Lever requires core step 5. The ladder becomes a directed graph, not a line. This is v2.0-scale; a rewrite, not an extension.

For now, horizon 1 does the work: PtH and V-Sit stop pushing users into positions their bodies can't enter. If the same pattern shows up on human flag or muscle-up in real sessions, we'll extend authorship. If not, one strong iteration beats speculative coverage.

The design principle

Steps aren't linear achievements. They're capability zones. When a zone is composite — strength × mobility × neural pattern — the ladder has to gate on multiple axes, or it will misprescribe for exactly the users who are strongest in one and weakest in another. That's the class of user who benefits most from calisthenics honestly, and the class this app was previously most likely to fail.

v1.37 is one axis added. The direction is right.

Available in v1.37.0 on TestFlight now. Rolling out to the App Store this week.