Files
Ustagammon/docs/journal.md
T

4.9 KiB

Journal

Une entrée datée par session : ce qui a été fait, décidé, et la suite.

2026-11-02

Fait

  • Dépôt initialisé (branche main) avec le kit de démarrage : CLAUDE.md, docs/cadrage.md, docs/etape-0.md, PROMPTS.md.
  • Nom de l'application reporté partout : Ustagammon (lien vers le brief créatif dans CLAUDE.md et docs/cadrage.md).
  • Squelette : Makefile (help, setup, build, test, lint, deploy, clean), LICENSE (GPLv3), CREDITS.md, README.md, .gitignore, ce journal, 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 ; corrigé, et make lint les détecte désormais.
  • 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), 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).
  • Les décisions passent dans des ADR (docs/adr/) ; docs/decisions.md est remplacé par les ADR 0001 à 0006. Plans et feuille de route deviennent temporaires : le plan du choix du moteur est supprimé, son contenu durable est dans l'ADR 0005 (demande de Pierre).
  • Les hash de commit s'écrivent sans backticks, pour les liens automatiques de Gitea (demande de Pierre).

Incident (clos)

  • Les MR fusionnées restaient « open » dans Gitea : les hooks git du serveur ne s'exécutaient plus, sur toute l'instance (diagnostic par un sous-agent, en lecture seule ; brief transmis à Pierre). Pierre a réparé les hooks et marqué les MR !1 à !8 comme fusionnées. Les branches fusionnées ont été supprimées du serveur.

Suite de la session (après-midi)

  • ADR 0007 (architecture et conventions de code) et ADR 0008 (glossaire et scénarios, source unique), puis amendements : scénarios en Gherkin standard validés par l'analyseur officiel, ADR amendables (0001).
  • Étape 0a terminée, par sous-agents : gnubg de référence et 32 positions (0a.2, MR !6) ; moteur embarqué, engine.h et engine-cli (0a.3, MR !7) ; comparaison automatique aux références, tolérance 0,002, deux défauts du moteur corrigés (0a.4, MR !8).
  • Outils de compilation et de test validés par Pierre (amendement de l'ADR 0004).
  • Étape 0b : moteur en WebAssembly, même suite de contrat (écart maximal 9,5e-4), 7,3 Mo compressés, page de test et de mesure, make deploy-web, guide de test docs/guide-test-etape-0.md.

Reste à faire

  • Mesures sur le Fairphone 4 avec Pierre, puis décision du socle (ADR).
  • Étape 0d : plateau minimal jouable sur le socle retenu.
  • adb n'est pas installé sur le PC : sudo apt install adb avant les tests sur le téléphone.

2026-11-02 (soir) et 2026-11-03

Fait

  • Mesures sur le Fairphone 4 (Chrome 156) : 2 plis en 348 ms au pire, seuil 3 s ; ADR 0009 accepté (socle PWA en TypeScript), 0c abandonnée.
  • Déploiement CapRover (MR !10) : app ustagammon créée, site publié sur https://ustagammon.sans.pub (HTTPS forcé).
  • Étape 0d.1 (MR !11) : domaine « partie » en journal d'événements, scénario exécuté par Cucumber sur le vrai moteur, garde-fous d'architecture.
  • Étape 0d.2 : plateau jouable au toucher en PWA hors ligne, aide intégrée (glossaire et scénarios lus depuis leurs sources), CSP, make test-browser (parties complètes dans Chromium et Firefox). Deux bugs trouvés et corrigés : la pile du moteur WebAssembly débordait après quelques centaines de commandes (plantage en cours de partie), et le service worker échouait dans Chromium en téléchargeant les données en même temps que le moteur.
  • Interruptions de quota : reprise programmée à 23h50 ; l'agent de 0d.2 arrêté a été remplacé par un agent de reprise sur le même espace de travail.

Reste à faire

  • Vérification finale de l'étape 0 avec Pierre : une partie complète sur le Fairphone 4, en suivant le guide de test (section « Étape 0d »).
  • Sous Firefox sur PC, un tour de l'ordinateur a pris jusqu'à 5,1 s (Chromium : 0,4 s) ; Firefox sur le téléphone reste à mesurer.
  • Validation par Pierre de Playwright (Apache-2.0), outil de make test-browser.