Hevy Periodizer est le successeur open source d’un tracker privé que j’ai fait tourner sur mon propre programme pendant un an. La réécriture garde l’idée et retire la personne. Tout ce qui relève d’une opinion est passé dans athlete.yaml et program.yaml, si bien que le même moteur sert un powerlifter avec quatre max testés et un athlète en rééducation qui possède une paire d’haltères réglables et ne testera jamais de max. Deux exemples livrés encodent exactement ces deux athlètes. Un test d’intégration construit les deux et échoue s’ils cessent de diverger, ce qui garde la généralité honnête.
La partie la plus testée est la couche de charge, parce que c’est le calcul le plus susceptible de blesser quelqu’un. Un programme dit 85 % de 140 kg. Ça fait 119, et personne ne charge 119 sur une barre avec des disques de 1,25 kg. Le moteur sait qu’une barre avance par pas de deux fois le plus petit disque, qu’une ceinture de lest avance d’un seul, que des haltères fixes ont des trous dans leur gamme, et que les pourcentages au poids du corps s’appliquent à l’athlète plus la ceinture. Les suites par propriétés génèrent des inventaires et vérifient les invariants : chaque réponse est chargeable, résoudre deux fois ne change rien, et l’arrondi vers le bas ne dépasse jamais, la garantie sur laquelle repose le travail de rééducation. Claude s’installe au-dessus via le plugin hevy-coach. Lancer ./start ouvre une conversation de coaching qui écrit la config, passe la semaine en revue face à ce que Hevy a enregistré, et explique pourquoi un chiffre a changé. Le moteur calcule. Le coach décide.