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.
Un langage ouvert · version 1.1
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.
# 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
Tout fichier valide peut être affiché tel quel au mur de la box. Pas d'accolades, pas de YAML : la syntaxe du tableau blanc.
Un box jump attend une hauteur, pas une charge. 1 m Run demande si vous vouliez 1 mi. Un EMOM intenable est signalé.
Le JSON compilé suit un schéma versionné : c'est lui que s'échangent les timers, les applications et les agents IA.
Les charges portent kilos et livres, avec les équivalences réellement utilisées en box : 95 lb ↔ 43 kg, 24 in ↔ 60 cm.
Un texte entre, un document structuré sort. Cliquez sur une étape pour voir ce qu'elle produit réellement pour Fran.
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 EMOM 10 25 Thruster 43/30 kg 10 Box jump 24 kg 1 m Run 15 Pul-up
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 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
Le coach écrit Thruster 95/65 lb une seule fois. Le compilateur résout pour chacun : 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]
La vraie séance du 29 septembre : échauffement, AMRAP, chipper en équipe, renfo. wodc timer en tire le déroulé du chrono.
Aucun serveur : le paquet Python de WODCraft tourne ici même grâce à Pyodide. Modifiez le WOD, cassez-le, compilez.
Appuyez sur « Compiler » : le compilateur (≈ 10 Mo avec Python) se charge la première fois.
Une spécification, un schéma, une suite de conformité — et deux implémentations qui se vérifient l'une l'autre.
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
Serveur de langage et extension VS Code : diagnostics en direct, complétion des mouvements, survol, corrections rapides.
python -m wodcraft.lsp
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
WODCraftKit : le langage porté en Swift, hors ligne, validé par la même suite de conformité.
import WODCraftKit
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
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/
$ 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.