# Décisions Les décisions structurantes du projet, la plus récente en bas. Chacune donne son contexte, le choix, les raisons et ce qu'elle implique. ## 2026-11-01 — Nom de l'application : Ustagammon **Contexte** : le nom était une question ouverte du cadrage. **Choix** : Ustagammon (« usta », le maître artisan en turc, et « gammon »). **Référence** : le brief créatif, https://claude.ai/artifact/36WMwZWqvMxXvSSVBJTgwd ## 2026-11-02 — Outils de lint dans Docker **Contexte** : la machine de développement doit rester légère ; rien n'est installé en dehors de Docker, git, make et adb. **Choix** : ShellCheck (GPLv3) tourne dans l'image `koalaman/shellcheck-alpine`, version figée, récupérée par `make setup`. **Conséquence** : `make lint` demande d'avoir lancé `make setup` une fois. ## 2026-11-02 — Pilotage par Claude Code et sous-agents, suivi dans `docs/` **Contexte** : le kit prévoyait des prompts (`PROMPTS.md`) que Pierre collait à chaque étape. **Choix** (demande de Pierre) : Claude Code pilote le projet et délègue l'exécution à des sous-agents. `PROMPTS.md` est supprimé ; son enchaînement devient `docs/feuille-de-route.md`. Chaque délégation a son plan dans `docs/plans/`. Fonctionnement détaillé dans `docs/organisation.md`. **Raison** : rendre le suivi et la mémoire du projet transparents et vérifiables a posteriori, en lisant le dépôt. ## 2026-11-02 — Source du moteur : gnubg officiel, commit `14b6798` **Contexte** : étape 0a.1, trois candidats étudiés (gnubg, gnubg-nn, CBG). Étude complète : `docs/plans/2026-11-02-choix-source-moteur.md`. **Choix** (validé par Pierre) : GNU Backgammon officiel, figé au commit `14b67984737ded0f6de43d63dcb789f729d9b06b` (1.08.003), dont on n'extrait que le cœur (évaluation, coups, videau, identifiants, équité de match, fin de partie) derrière `moteur.h`. **Alternatives écartées** : - gnubg-nn : 48 fichiers sous GPLv2 seule, incompatibles avec la GPLv3 ; videau réimplémenté, donc sans concordance possible avec gnubg de bureau. - CBG : même moteur, mais avec GLib complète et toute la logique de partie ; interface orientée partie en cours ; pas de bases de fin de partie. Gardé comme référence de lecture. **Conséquences** : - Le gnubg de bureau de référence est compilé dans Docker depuis le même commit. - GLib remplacée par un shim minimal ; tables d'équité XML à convertir. - Les tests de concordance ont une tolérance, car gnubg de bureau est compilé avec `-ffast-math`. ## 2026-11-02 — Merge requests systématiques, fusion par Claude Code **Contexte** : Pierre veut comprendre chaque changement sans suivre le travail au fil de l'eau. **Choix** (demande de Pierre) : aucun commit direct sur `main`. Chaque changement passe par une branche et une merge request Gitea dont la description explique le pourquoi, le quoi, le comment, les choix, les risques, la vérification et ce qui est hors périmètre. Claude Code la fusionne lui-même dès que `make lint` et `make test` passent. **Conséquence** : l'historique des MR sur git.sans.pub devient, avec `docs/`, la trace vérifiable du projet.