Décision : moteur gnubg officiel ; travail par merge requests
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
cbde02bc90
commit
9b6534cd43
@@ -51,7 +51,7 @@ Des cibles plus fines (`make engine`, `make engine-wasm`, `make bench`…) sont
|
||||
2. **Tests d'abord pour le moteur.** Les positions de référence sont évaluées avec le GNU Backgammon de bureau (en ligne de commande, dans Docker) et stockées dans `tests/reference/`. Le moteur embarqué doit concorder.
|
||||
3. **Expliquer simplement.** Après chaque étape : ce qui a été fait, comment le vérifier soi-même (commande exacte), ce qui reste.
|
||||
4. **Ne jamais masquer un échec.** Pas de test désactivé, pas de résultat simulé. Dire clairement ce qui bloque et la cause probable.
|
||||
5. **Commits fréquents**, messages courts en français. Ne jamais pousser sur le dépôt distant sans demande explicite.
|
||||
5. **Commits fréquents**, messages courts en français, sur une branche dédiée. Jamais de commit direct sur `main` : chaque changement passe par une merge request Gitea (`tea pulls create --login sans-pub`), décrite selon `docs/organisation.md`. Claude Code la fusionne lui-même une fois `make lint` et `make test` au vert.
|
||||
6. **Dépendances** : peu, maintenues, compatibles GPLv3. Signaler chaque nouvelle dépendance et sa licence.
|
||||
7. **Journal** : `docs/journal.md` reçoit une entrée datée à la fin de chaque session (fait, décidé, reste à faire). Les décisions structurantes vont dans `docs/decisions.md`.
|
||||
|
||||
|
||||
@@ -27,3 +27,36 @@ 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.
|
||||
|
||||
@@ -10,8 +10,8 @@ Légende : ✅ terminé · 🔄 en cours · ⏳ à venir · ⏸ conditionnel
|
||||
| Sous-étape | Contenu | État | Plans |
|
||||
| --- | --- | --- | --- |
|
||||
| Socle | Dépôt, Makefile, lint, tests, organisation | ✅ | — |
|
||||
| 0a.1 | Choisir la source du moteur (gnubg, gnubg-nn, CBG) — étude faite, recommandation : gnubg officiel ; en attente de validation de Pierre | 🔄 | `plans/2026-11-02-choix-source-moteur.md` |
|
||||
| 0a.2 | Image Docker GNU Backgammon de bureau, 30+ positions de référence dans `tests/reference/` | ⏳ | |
|
||||
| 0a.1 | Choisir la source du moteur : gnubg officiel, commit `14b6798` (validé) | ✅ | `plans/2026-11-02-choix-source-moteur.md` |
|
||||
| 0a.2 | Image Docker GNU Backgammon de bureau (compilé depuis le commit `14b6798`), 30+ positions de référence dans `tests/reference/` | ⏳ | |
|
||||
| 0a.3 | Interface C `engine/include/moteur.h` et `engine-cli` (JSON) | ⏳ | |
|
||||
| 0a.4 | `make test` compare `engine-cli` aux références | ⏳ | |
|
||||
| 0b | Moteur en WebAssembly, page de test dans un Web Worker, `make deploy-web`, `make bench` | ⏳ | |
|
||||
|
||||
+8
-4
@@ -14,7 +14,6 @@ Une entrée datée par session : ce qui a été fait, décidé, et la suite.
|
||||
`docs/decisions.md`.
|
||||
- Premiers tests : contrat du Makefile (`tests/test_makefile.sh`) ; lint du dépôt
|
||||
(`tests/lint.sh`, avec ShellCheck dans Docker).
|
||||
|
||||
- `main` poussé sur Gitea (`git@git.sans.pub:pierre/Ustagammon.git`), après
|
||||
fusion avec le commit initial créé par Gitea (LICENSE et README). Incident :
|
||||
le premier envoi contenait un `README.md` avec des marqueurs de conflit ;
|
||||
@@ -22,14 +21,19 @@ Une entrée datée par session : ce qui a été fait, décidé, et la suite.
|
||||
- `PROMPTS.md` supprimé ; ajout de `docs/organisation.md`,
|
||||
`docs/feuille-de-route.md` et `docs/plans/`.
|
||||
- Étape 0a.1 lancée : étude des trois sources du moteur confiée à un
|
||||
sous-agent (`docs/plans/2026-11-02-choix-source-moteur.md`).
|
||||
sous-agent (`docs/plans/2026-11-02-choix-source-moteur.md`), puis clôturée
|
||||
avec vérification des points clés par la session principale.
|
||||
|
||||
**Décidé**
|
||||
- Les outils de lint tournent dans Docker, comme les autres chaînes d'outils.
|
||||
- Claude Code pilote le projet par sous-agents ; tout le suivi est dans `docs/`.
|
||||
- Moteur : gnubg officiel, commit `14b6798` (validé par Pierre).
|
||||
- Toute modification passe par une merge request Gitea décrite en détail,
|
||||
fusionnée par Claude Code une fois `make lint` et `make test` au vert
|
||||
(demande de Pierre).
|
||||
|
||||
**Reste à faire**
|
||||
- Étude du moteur clôturée : recommandation gnubg officiel (commit `14b6798`),
|
||||
soumise à Pierre.
|
||||
- Étape 0a.2 : image Docker de gnubg de bureau compilé depuis le même commit,
|
||||
et 30 positions de référence ou plus.
|
||||
- `adb` n'est pas installé sur le PC : `sudo apt install adb` avant les tests sur
|
||||
le téléphone.
|
||||
|
||||
@@ -72,6 +72,29 @@ Rempli à la clôture : fait, écarts, preuves (sorties de commandes, mesures),
|
||||
suites à donner.
|
||||
```
|
||||
|
||||
## Branches et merge requests
|
||||
|
||||
Aucun commit direct sur `main`. Pour chaque changement :
|
||||
|
||||
1. Une branche au nom court et explicite (`moteur-reference`, `engine-cli`…).
|
||||
2. Des commits petits, en français.
|
||||
3. `make lint` et `make test` au vert.
|
||||
4. Une merge request sur git.sans.pub (`tea pulls create --login sans-pub`),
|
||||
dont la description permet à quelqu'un qui n'a pas suivi le travail de
|
||||
comprendre le changement. Rédigée en prose, pas en liste de commits :
|
||||
- **Pourquoi** : le problème, comment il est apparu, son impact, avec preuves ;
|
||||
- **Quoi** : ce qui change, du point de vue du comportement ;
|
||||
- **Comment** : l'approche technique et le raisonnement ;
|
||||
- **Choix et compromis** : alternatives écartées, limites assumées ;
|
||||
- **Risques** : ce qui peut casser, comment revenir en arrière ;
|
||||
- **Comment vérifier** : commandes exactes ;
|
||||
- **Hors périmètre** : ce qui a été repéré mais laissé de côté.
|
||||
5. Fusion par Claude Code (commit de fusion, pour garder l'historique de la
|
||||
branche), puis suppression de la branche.
|
||||
|
||||
Une MR qui touche à un point soumis à validation (voir ci-dessous) n'est
|
||||
fusionnée qu'après l'accord de Pierre, consigné dans `docs/decisions.md`.
|
||||
|
||||
## Validation par Pierre
|
||||
|
||||
Sont soumis à Pierre avant d'être appliqués : le choix de la source du moteur,
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
- **Date** : 2026-11-02
|
||||
- **Étape** : 0a.1
|
||||
- **Statut** : terminé — recommandation en attente de validation par Pierre
|
||||
- **Statut** : terminé — recommandation validée par Pierre le 2026-11-02
|
||||
- **Exécutant** : sous-agent general-purpose (étude, sans modification du dépôt)
|
||||
|
||||
## Objectif
|
||||
|
||||
Reference in New Issue
Block a user