Cinq premières leçons, progression et carte de l'accueil (1g) #61

Manually merged
pierre merged 6 commits from lecons into main 2026-11-12 17:31:27 +00:00
Owner

Pourquoi

L'étape 1 doit permettre à un débutant d'apprendre seul : c'est le critère de fin de docs/etape-1.md.

Le tutoriel des règles existe depuis 0e.5. Il manquait :

  • les leçons numérotées prévues par l'ADR 0011 ;
  • la carte « prochaine leçon » de l'accueil, prévue par la charte.

Le 2026-11-09, Pierre a décidé de livrer les leçons sans relecture préalable par un joueur fort. Deux garde-fous doivent alors être vérifiés automatiquement :

  • chaque réponse attendue est le meilleur coup du moteur ;
  • le texte n'affirme rien que le moteur ne confirme.

Quoi

  • Cinq leçons et seize exercices « à vous », joués sur le vrai plateau :
    1. les ouvertures ;
    2. construire ses cases ;
    3. frapper ou non ;
    4. la course et le compte de points ;
    5. sortir sans se faire frapper.
  • Réponse du maître : le coup du maître est salué ; les autres coups sont refusés par une phrase qui met sur la voie.
  • Liste #/lecons : elle montre l'état de chaque leçon (à commencer, « 1 exercice sur 4 », terminée). Toutes les leçons restent ouvertes.
  • Accueil : il propose la prochaine leçon et résume la progression.
  • Menu : il gagne une ligne « Les leçons ».
  • Progression : elle survit à un rechargement.

Comment

Le travail a été délégué à un sous-agent, interrompu une fois par la limite d'usage.

  • Contenus. Les leçons sont des fichiers Markdown dans docs/lecons/, sous licence CC BY-SA 4.0, au format du tutoriel. Elles sont copiées par make site.

  • Écrans. L'écran du tutoriel est réutilisé, paramétré par une interface Course.

  • Stockage de la progression. C'est une valeur versionnée, rangée sous une nouvelle clé lessons du magasin settings d'IndexedDB, avec localStorage en repli. Le schéma ne change pas ; l'ADR 0007 est amendé.

  • Adresses. #/lecons, #/lecons/<n>/<étape>[/a-vous] et /fin sont ajoutées à l'ADR 0013. L'ADR 0011 est amendé.

  • Garde-fous testés (app/tests/lessons.test.ts, sur le vrai moteur) :

    • chaque coup attendu ou illustré est classé premier à 2 plis, avec plus de 0,04 d'avance sur le deuxième ;
    • chaque exercice refuse tous les autres coups légaux ;
    • les comptes de points cités sont ceux du moteur ;
    • le texte ne contient ni « ! », ni « camp », ni reproche ;
    • chaque lien vers le glossaire mène à une fiche existante.

    Les écarts les plus serrés valent 0,052 et 0,054.

Vérification :

  • make lint : aucun problème ;
  • make test : 10/10, 52 scénarios, dont le nouveau suivre-une-lecon.feature ;
  • make test-browser : suite complète au vert dans Chromium et Firefox.

Choix et compromis

  • Fin de leçon. Une leçon est « terminée » quand tous ses exercices sont réussis. Cet état se déduit, il n'est pas stocké.
  • Lien de sortie. Il s'appelle « Quitter » et non « Passer », un mot réservé au videau.
  • Textes sobres. Ils ne citent que des faits lisibles dans la position ou confirmés par le moteur. Ils seront enrichis sur les retours d'experts, selon la décision de Pierre.
  • Exercice guidé. Après un refus, la phrase guide souvent jusqu'au coup attendu. L'exercice compte quand même comme réussi ensuite.

Risques et déploiement

  • Tutoriel. Son écran est refactorisé. Ses tests navigateur passent dans les deux navigateurs.
  • Données. Aucune migration n'est nécessaire : une base existante se lit simplement sans progression.
  • Retour arrière. Annuler la fusion.

Comment vérifier

make lint && make test && SCRIPTS=lecons make test-browser
ls build/browser-shots/lecons/

À la main :

  1. Ouvrir l'accueil, puis « Toutes les leçons », puis la leçon 1.
  2. Jouer 13/11 : le coup est refusé.
  3. Jouer 8/4 6/4 : le coup est salué.
  4. Recharger #/lecons : la leçon 1 affiche « 1 exercice sur 4 ».

Hors périmètre

  • Enrichissement des textes par un joueur fort.
  • Exercices de videau.
  • Leçons au-delà de la cinquième.

Generated with Claude Code https://claude.com/claude-code

## Pourquoi L'étape 1 doit permettre à un débutant d'apprendre seul : c'est le critère de fin de `docs/etape-1.md`. Le tutoriel des règles existe depuis 0e.5. Il manquait : - les leçons numérotées prévues par l'ADR 0011 ; - la carte « prochaine leçon » de l'accueil, prévue par la charte. Le 2026-11-09, Pierre a décidé de livrer les leçons sans relecture préalable par un joueur fort. Deux garde-fous doivent alors être vérifiés automatiquement : - chaque réponse attendue est le meilleur coup du moteur ; - le texte n'affirme rien que le moteur ne confirme. ## Quoi - **Cinq leçons** et seize exercices « à vous », joués sur le vrai plateau : 1. les ouvertures ; 2. construire ses cases ; 3. frapper ou non ; 4. la course et le compte de points ; 5. sortir sans se faire frapper. - **Réponse du maître** : le coup du maître est salué ; les autres coups sont refusés par une phrase qui met sur la voie. - **Liste `#/lecons`** : elle montre l'état de chaque leçon (à commencer, « 1 exercice sur 4 », terminée). Toutes les leçons restent ouvertes. - **Accueil** : il propose la prochaine leçon et résume la progression. - **Menu** : il gagne une ligne « Les leçons ». - **Progression** : elle survit à un rechargement. ## Comment Le travail a été délégué à un sous-agent, interrompu une fois par la limite d'usage. - **Contenus.** Les leçons sont des fichiers Markdown dans `docs/lecons/`, sous licence CC BY-SA 4.0, au format du tutoriel. Elles sont copiées par `make site`. - **Écrans.** L'écran du tutoriel est réutilisé, paramétré par une interface `Course`. - **Stockage de la progression.** C'est une valeur versionnée, rangée sous une nouvelle clé `lessons` du magasin `settings` d'IndexedDB, avec `localStorage` en repli. Le schéma ne change pas ; l'ADR 0007 est amendé. - **Adresses.** `#/lecons`, `#/lecons/<n>/<étape>[/a-vous]` et `/fin` sont ajoutées à l'ADR 0013. L'ADR 0011 est amendé. - **Garde-fous testés** (`app/tests/lessons.test.ts`, sur le vrai moteur) : - chaque coup attendu ou illustré est classé premier à 2 plis, avec plus de 0,04 d'avance sur le deuxième ; - chaque exercice refuse tous les autres coups légaux ; - les comptes de points cités sont ceux du moteur ; - le texte ne contient ni « ! », ni « camp », ni reproche ; - chaque lien vers le glossaire mène à une fiche existante. Les écarts les plus serrés valent 0,052 et 0,054. **Vérification :** - `make lint` : aucun problème ; - `make test` : 10/10, 52 scénarios, dont le nouveau `suivre-une-lecon.feature` ; - `make test-browser` : suite complète au vert dans Chromium et Firefox. ## Choix et compromis - **Fin de leçon.** Une leçon est « terminée » quand tous ses exercices sont réussis. Cet état se déduit, il n'est pas stocké. - **Lien de sortie.** Il s'appelle « Quitter » et non « Passer », un mot réservé au videau. - **Textes sobres.** Ils ne citent que des faits lisibles dans la position ou confirmés par le moteur. Ils seront enrichis sur les retours d'experts, selon la décision de Pierre. - **Exercice guidé.** Après un refus, la phrase guide souvent jusqu'au coup attendu. L'exercice compte quand même comme réussi ensuite. ## Risques et déploiement - **Tutoriel.** Son écran est refactorisé. Ses tests navigateur passent dans les deux navigateurs. - **Données.** Aucune migration n'est nécessaire : une base existante se lit simplement sans progression. - **Retour arrière.** Annuler la fusion. ## Comment vérifier ``` make lint && make test && SCRIPTS=lecons make test-browser ls build/browser-shots/lecons/ ``` À la main : 1. Ouvrir l'accueil, puis « Toutes les leçons », puis la leçon 1. 2. Jouer 13/11 : le coup est refusé. 3. Jouer 8/4 6/4 : le coup est salué. 4. Recharger `#/lecons` : la leçon 1 affiche « 1 exercice sur 4 ». ## Hors périmètre - Enrichissement des textes par un joueur fort. - Exercices de videau. - Leçons au-delà de la cinquième. Generated with Claude Code https://claude.com/claude-code
pierre added 3 commits 2026-11-12 12:32:33 +00:00
Les ouvertures, construire ses cases, frapper ou non, la course et le
compte de points, sortir sans se faire frapper : seize exercices au
format du tutoriel, avec le compte de points en plus. Amendement de
l'ADR 0011 : pas de relecture préalable, garde-fous du moteur.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Nouvelle clé « lessons » du magasin settings d'IndexedDB (et
ustagammon.lessons en repli), format versionné relu par
readLessonProgress. Amendement de l'ADR 0007.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Liste des leçons, écrans d'une leçon sur le moteur d'écrans du
tutoriel, carte « prochaine leçon » de l'accueil, ligne du menu.
Tests du contenu sur le vrai moteur, scénario Gherkin, test navigateur.
Amendement de l'ADR 0013 ; 1g faite, plan clos.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pierre added 2 commits 2026-11-12 13:17:32 +00:00
Leçon 1 §2 (flèche 7 vide, 5 déjà bloqué), leçon 2 « Faire des points »,
flèches 7 à 12, reformulations des leçons 3 et 4. Écran des leçons et du
tutoriel : « Retour » et « Continuer » en bas en portrait, « Revoir » sur
la ligne du titre, ligne « Leçon n · … » gardée en paysage. Barre haute
visible hors de l'écran de jeu en paysage (défaut antérieur à 1g), avec
un contrôle dans la recette automatique. Rappel des règles haut de
44 px ; « Aucune leçon terminée sur 5 · … » sur l'accueil.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
pierre added 1 commit 2026-11-12 13:23:49 +00:00
pierre manually merged commit ac27625e67 into main 2026-11-12 17:31:27 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: pierre/Ustagammon#61