WODCRAFT

Un langage ouvert · version 1.1

Le WOD s'écrit
comme au tableau.
Le compilateur
le relit.

WODCraft est un petit langage pour prescrire des séances de fitness fonctionnel — et le compilateur qui les vérifie. Strict là où ça compte (unités, mouvements, cohérence du score, plausibilité), souple là où les coachs en ont besoin.

CAP 10:00 00:00
fran.wod
# Fran
21-15-9 for time, cap 10:00
  Thruster 95/65 lb
  Pull-up

Scaled:
  Thruster 65/45 lb
  Pull-up -> Jumping pull-up
 
FRAN
21-15-9 for time · cap 10:00
  Thruster .......................... 95/65 lb
  Pull-up
Score: time (capped: reps)
Estimate: 3:22–6:14
Levels: scaled
01

Lisible par les athlètes

Tout fichier valide peut être affiché tel quel au mur de la box. Pas d'accolades, pas de YAML : la syntaxe du tableau blanc.

02

Vérifié par un compilateur

Un box jump attend une hauteur, pas une charge. 1 m Run demande si vous vouliez 1 mi. Un EMOM intenable est signalé.

03

Un seul format d'échange

Le JSON compilé suit un schéma versionné : c'est lui que s'échangent les timers, les applications et les agents IA.

04

Converti pour vous

Les charges portent kilos et livres, avec les équivalences réellement utilisées en box : 95 lb ↔ 43 kg, 24 in ↔ 60 cm.

01

Comment ça marche

Un texte entre, un document structuré sort. Cliquez sur une étape pour voir ce qu'elle produit réellement pour Fran.

  1. .wodSourceLe texte du coach
  2. lex · parseLectureUne ligne, une instruction
  3. 223 mvtsVérificationCatalogue, unités, plausibilité
  4. schema 1.1JSONLe document compilé
  5. → partoutSortiesTableau, chrono, agenda, apps
02

Le compilateur vous relit

Chaque diagnostic porte un code de la spécification, une ligne, une colonne exactes — et une suggestion quand c'est possible. Sortie réelle de wodc check.

mardi.wod
# Mardi
EMOM 10
  25 Thruster 43/30 kg
  10 Box jump 24 kg
  1 m Run
  15 Pul-up
03

Tous les formats de la box

For time, AMRAP, EMOM, intervalles, Tabata, Death by, séries de force, équipes, aller-retour… À gauche ce qu'écrit le coach, à droite ce qu'affiche le tableau.

fran.wod
# Fran
21-15-9 for time, cap 10:00
  Thruster 95/65 lb
  Pull-up

Scaled:
  Thruster 65/45 lb
  Pull-up -> Jumping pull-up
FRAN
21-15-9 for time · cap 10:00
  Thruster .......................... 95/65 lb
  Pull-up
Score: time (capped: reps)
Estimate: 3:22–6:14
Levels: scaled
04

Une prescription, chaque athlète

Le coach écrit Thruster 95/65 lb une seule fois. Le compilateur résout pour chacun : catégorie, niveau, unités, langue.

Catégorie
Niveau
Unités
Langue

Sortie de wodc show fran.wod

FRAN
21-15-9 for time · cap 10:00
  Thruster ............................. 43 kg
  Traction
Score: time (capped: reps)
Estimate: 3:22–6:14
[men · rx · kg]
05

Une séance, minute par minute

La vraie séance du 29 septembre : échauffement, AMRAP, chipper en équipe, renfo. wodc timer en tire le déroulé du chrono.

00:00
06

Essayez — le vrai compilateur, dans votre navigateur

Aucun serveur : le paquet Python de WODCraft tourne ici même grâce à Pyodide. Modifiez le WOD, cassez-le, compilez.

mon.wod
terminal
Appuyez sur « Compiler » : le compilateur (≈ 10 Mo avec Python) se charge la première fois.
07

Partout où vit un WOD

Une spécification, un schéma, une suite de conformité — et deux implémentations qui se vérifient l'une l'autre.

Terminal

Vérifier, afficher, formater comme gofmt, exporter vers l'agenda.

$ wodc check mardi.wod
$ wodc show girls/fran --me
$ wodc fmt --write mardi.wod
$ wodc export ics semaine.wod

Éditeur

Serveur de langage et extension VS Code : diagnostics en direct, complétion des mouvements, survol, corrections rapides.

python -m wodcraft.lsp

Agents IA

Un serveur MCP expose le compilateur lui-même. L'agent rédige un WOD, le compilateur répond, l'agent corrige.

check_wod · compile_wod · show_wod
format_wod · timeline_wod
search_movements · library_get

iOS · macOS

WODCraftKit : le langage porté en Swift, hors ligne, validé par la même suite de conformité.

import WODCraftKit

Service HTTP

Pour les clients qui ne peuvent pas embarquer le compilateur. Image Docker prête pour Cloud Run.

POST /compile  /check  /format  /show
GET  /catalog  /library

Le standard

Spécification (CC BY-SA), JSON Schema versionné et cas de conformité : WODCraft est fait pour être réimplémenté.

spec/SPEC.md
spec/workout.schema.json
spec/conformance/
0
mouvements au catalogue, en français et en anglais
0
WODs de référence : Girls, Heroes, Open
0
cas de conformité
0
implémentations, Python et Swift
0
dépendance à l'exécution

3, 2, 1… go.

$ pip install git+https://github.com/Nicolas78240/WODCraft
$ wodc show girls/fran --lang fr

Une collaboration : Nicolas Caussin a donné le cap et l'idée, orchestré, corrigé et validé, et nous avons itéré jusqu'à cette version. L'essentiel de l'écriture — spécification, compilateur, portage Swift, tests, documentation et ce site — a été réalisé par Claude (Anthropic) avec Claude Code.