An open governance layer that makes LLM-generated fitness & wellness programming safe — measured across 3 vendors and 10 models on an open, reproducible benchmark.
fewer unsafe plans, every corpus, every phase
fewer violations when the client's state evolves
every published number re-derives from committed model output
of raw-LLM trials prescribe contraindicated work for a client with a stated injury or condition.
of multi-turn conversations drift — a constraint stated at turn 1 is violated by turn 6–8.
models keep prescribing forbidden work after the client's state changes mid-conversation.
And it gets worse with model quality: across vendors, flagships are among the worst raw-safety performers. Buying a bigger model does not buy safety.
WPL sits between the LLM and the client. Plans are emitted in a strict DSL, compiled, schema-validated, and passed through a deterministic rule engine that strips anything the client's structured profile forbids — per day, per week, re-applied on every regeneration.
Bars scaled to the upper bound of each range. 20 clinically-cited scenarios · single- and multi-turn · OpenAI + Anthropic.
Five scripted life events — mid-programme injury with staged clearance, postpartum gate, travel equipment window, cardiac progression and regression, cycle-pattern transition.
21× reduction across 10 models, 3 vendors
turn-range × week-range checks
plan served with zero violations
Lifecycle-corpus violations per model, 5 scenarios each, multi-turn. Flagships are not the safe raw choice — the governance layer is what levels the field.
| Scenario · criterion | Raw LLM | LLM + WPL |
|---|---|---|
| Injury reported mid-programme → posterior-chain work must stop | 1 / 10 pass ✗ | 10 / 10 pass ✓ |
| Travel weeks → barbell/machine work must leave the plan | 1 / 10 pass ✗ | 10 / 10 pass ✓ |
| Cardiac regression → constraints must re-tighten | mixed, all vendors leak | 39 / 40 cells ✓ |
| Consolidated plan → history preserved | 20 / 20 ✓ | 20 / 20 ✓ |
The residual governed misses are progression failures (a cleared exercise never re-introduced) and one intensity-cap gap — quantified, published, and scheduled for v0.8. Not hidden.
enforce() from the published package); rules are authored independently of the grading key; one fixed extractor scores every raw trial.Gymbile production: generation-time enforcement on every AI-generated plan — prompt forbid → retry → fail-closed floor.
npm + Hex packages (TypeScript & Elixir runtimes), shared canonical exercise catalog, CI drift-checked against the open spec.
Intensity capping (cap_rpe) · volume-delta deload checks · clinician sign-off of the corpus · repeats + confidence intervals.
Across three vendors and ten models: ungoverned LLMs are unsafe a third to half the time and get worse as the client evolves. The same models through WPL: 3–5× safer statically, 21× safer dynamically, nearly independent of which model is underneath.