A 12-week barbell strength programme for people who train for something else — combat sport, mobility, general resilience — and want the lifting to serve that, not compete with it.
Native iOS, SwiftUI, fully offline. Logs sets in one tap, manages volume and fatigue from what you actually did, coaches conservatively, and wraps progression in an earned armour set that only advances when you turn up.
- Programme — 3 blocks × 4 weeks × 5 sessions (A–E). Percentage-based main lifts, deloads in week 4 of each block, a real taper in week 11, a test week 12. Accessories on double progression. Conditioning as a parallel track (Zone-2 engine + short repeated-effort blocks) that stays out of the lifting's way.
- Logging loop — every set is prefilled with the prescribed load and reps; the common case is one tap. Last session's numbers sit inside the row. Steppers on the 2.5 kg grid, plate maths, auto rest timer with a local notification if you background the app.
- Coach — an on-device autoregulation engine. Reads feel (smooth / solid / hard / grind), reps missed, readiness (sleep, soreness, other load), block position and the estimated-1RM trend, then offers a per-lift delta inside hard caps (+2.5 kg press/bench, +5 kg squat/pull, floor −7.5). It explains every adjustment in one sentence and you can override in one tap.
- Load management — hard sets per week and per movement pattern, prescribed vs completed, grind share, consistency. Only from data already logged; nothing new to fill in.
- Progression — six armour slots, each ranked by real logged work. Rarity is earned by consistency over the arc, not by one big session. Zero reads as zero.
The evidence review behind the coach is in docs/. Short version, so nobody re-adds these:
- No LLM writes or adjusts programming. There is no outcome evidence for it beating a deterministic autoregulation rule (Havers et al. 2025 for the state of the art).
- No phone-camera bar velocity. Fails validation against motion capture (Renner, Mitter & Baca 2024).
- No HRV-driven load. No established link to maximal-strength gains; a subjective readiness check outperforms it (Saw, Main & Gastin 2016).
- No ACWR. Discredited (Impellizzeri et al. 2020, 2021).
- No fine-grained RPE slider. Self-reported RIR carries ±1–2 reps of error in trained lifters; four states are the honest resolution.
Requires Xcode 26+, iOS 17+, and xcodegen.
xcodegen generate
xcodebuild -project Athlos.xcodeproj -scheme Athlos \
-destination 'platform=iOS Simulator,name=iPhone 17 Pro Max' testNo third-party packages. No network. art-src/ holds the raw armour renders; the packed
catalog under Resources/ is what ships.
Issues and PRs welcome. Programme or coach changes need a citation and an evidence grade in
the PR — the bar is the same one docs/evidence.md holds itself to. Tests encode the
programme maths; if you change a percentage, update the expected value and say why. Never
delete a test to make it pass.
AGPL-3.0. Use it, fork it, contribute — and if you ship a modified version, including as a service, publish your changes under the same terms. Commercial licensing available on request.