Lecture de l'état de la session.
Ouvre l'onglet Course une première fois pour charger l'état.
46,5 km mesurés, 2 475 m de dénivelé positif lissé. Les six points de passage retrouvés sur la trace sont à moins de 10 m d'altitude du roadbook.
C'est cette image que le modèle lit pour remplir la fiche. Les icônes disent les services : ravitaillement, bus d'abandon, barrière horaire, repas chaud, sacs, secours, douche, massage.
| Quand je suis libre | Ce que je sais faire | Ce que je voudrais faire | Remarques |
|---|---|---|---|
| samedi du matin jusqu'à minuit | je marche bien en montagne, langues : anglais | idéalement signaleur sur la route ou serre-file | j'ai 17 ans |
| Je cours le Marathon samedi (dossard 312) mais je peux aider le vendredi soir et le dimanche après-midi | samaritain, permis, véhiculé | plutôt le parking ou le pointage, pas la nuit | 67 ans, encore en forme |
| samedi 10h-20h | samaritain, randonneur, 5 éditions comme bénévole | le PC course, je peux tenir un poste | Je viens avec 3 personnes, on prend un ravito ensemble. |
| Je suis libre samedi toute la journée et le soir | je fais du trail, déjà bénévole 2 fois | plutôt ravito, pas après 20h, je peux tenir un poste | Je viens en train, pas de voiture. |
100 lignes comme celles-ci, en texte libre. Le modèle les traduit en champs que le solveur comprend ; ce qui ne rentre dans aucun champ devient une remarque pour le contradicteur.
Chargées avec l'état.
Vide tant que rien n'a été décidé.
A volunteer coordinator drops in the roadbook and the sign-up form. The assistant turns them into structured posts and volunteers, a solver computes the plan, two reviews check it, and nothing goes out unless the organizer says so. On race day, it repairs the plan with as few moves as possible.
| Block | Role | Nature |
|---|---|---|
| Orchestrator | Holds the conversation, calls the tools in order to prepare the race, reasons freely on race day | Strands agent, Claude Sonnet 4.6 |
| Contradictor | Re-reads every plan with a blank context and returns findings ranked by severity; changes nothing | Strands agent, Claude Opus 4.6 |
| Read the roadbook | PDF pages as images to a closed race sheet, with the doubts to double-check | one model call, strict JSON schema |
| Translate the form | Each free-text line of the sign-up form to the fields the solver understands, plus labelled remarks | one model call per line |
| Build the posts | The race sheet and a « trail » template to 50 to 60 dated shifts | code |
| Solver | Assigns 100 people to 50 shifts: hard constraints, weighted objective, a cost for every change on race day | code, OR-Tools CP-SAT, under 10 s |
| Checker | 9 blocking rules, 11 warnings, duplicates by phone number | code |
| Log | Who decided what, when, why; never erased | code |
| What | Result |
|---|---|
| Form translation, 100 lines | availability 99/100, skills 100/100, night refusals 99/100, companions 100/100, post leaders 100/100, pairs 100/100; the only availability gap is the Marathon runner, whose Saturday the model rightly removes |
| Roadbook reading, 5 pages | 6 checkpoints exact (km, altitude, times, cut-offs); 2 service icons confused and flagged as doubts |
| Solver, 50 shifts and 100 volunteers | full plan in 10 s, one person missing (a 4x4 on Friday), with the reason; with 55 volunteers, 19 people missing across 11 shifts, each one named |
| Race day, 5 no-shows at 6:30 | 1 removal, 6 additions, 0.5 s, no shift below its minimum |
| Contradictor, unprompted | a post leader whose three unlisted companions carry the whole bib pickup, a lone volunteer named on the evening standby, a 13-hour day, a 4x4 chain too tight |
Code, data and design notes are public: github.com/YISOWAK/rubalise. What is real: the race (public roadbook, GPS track). What is not: the 100 volunteers, synthetic, and the messages, written in a file.