WPL · Wellness Plan Language

Safety is a property of the governance layer,
not the model.

An open governance layer that makes LLM-generated fitness & wellness programming safe — measured across 3 vendors and 10 models on an open, reproducible benchmark.

Static safety

3–5×

fewer unsafe plans, every corpus, every phase

Adaptability

21×

fewer violations when the client's state evolves

Reproducible

$0

every published number re-derives from committed model output

The problem

Raw LLMs write fluent, unsafe programming — and it doesn't fix itself.

32–51%

of raw-LLM trials prescribe contraindicated work for a client with a stated injury or condition.

42%

of multi-turn conversations drift — a constraint stated at turn 1 is violated by turn 6–8.

9/10

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.

What WPL is

The model writes through a grammar. The client receives a validated artifact.

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.

LLM
WPL-AI DSL
compiler
schema validator
rule engine · enforce(ClientContext)
served plan
Evidence · static safety (v0.6 corpus, 560 trials)

Same model, same scenario — governed output is 3–5× safer.

Raw LLMLLM + WPL
Unsafe-plan rate (range across corpora) 32–51% 8–17% Multi-turn constraint drift 42% 6% (0% on Anthropic)

Bars scaled to the upper bound of each range. 20 clinically-cited scenarios · single- and multi-turn · OpenAI + Anthropic.

Evidence · adaptability (v0.7 lifecycle corpus, 100 trials)

When the client changes mid-programme, governance is the difference.

Five scripted life events — mid-programme injury with staged clearance, postpartum gate, travel equipment window, cardiac progression and regression, cycle-pattern transition.

State-conditional violations

21010

21× reduction across 10 models, 3 vendors

Per-state criterion pass

65%94%

turn-range × week-range checks

Clean trials

46%84%

plan served with zero violations

Evidence · per model

Every model improves. Governed performance is nearly flat.

Raw LLMLLM + WPL
claude-haiku-4-5 36 0 claude-opus-4-7 28 2 gemini-3.5-flash 27 0 gpt-5-mini 23 0 gpt-4.1 22 1 gemini-3.1-pro-preview22 1 gpt-5-nano 20 3 gemini-3.1-flash-lite13 1 gpt-5 11 0 claude-sonnet-4-6 8 2

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.

The starkest cells

Raw LLMs can't take back what they already prescribed.

Scenario · criterionRaw LLMLLM + WPL
Injury reported mid-programme → posterior-chain work must stop1 / 10 pass ✗10 / 10 pass ✓
Travel weeks → barbell/machine work must leave the plan1 / 10 pass ✗10 / 10 pass ✓
Cardiac regression → constraints must re-tightenmixed, all vendors leak39 / 40 cells ✓
Consolidated plan → history preserved20 / 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.

Why the numbers hold up

Built to be audited, not admired.

Where it runs today

In production, published, and scheduled.

Live

Gymbile production: generation-time enforcement on every AI-generated plan — prompt forbid → retry → fail-closed floor.

Published

npm + Hex packages (TypeScript & Elixir runtimes), shared canonical exercise catalog, CI drift-checked against the open spec.

Next (v0.8)

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.

wpl.dev · github.com/gymbile/wpl-eval · all figures from the committed v0.6 (560-trial) and v0.7 (100-trial) corpora