Compare commits
11
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0a88e835d2 | ||
|
|
dd5954a113 | ||
|
|
4cdef612fd | ||
|
|
2eaa8ef304 | ||
|
|
71a30cb2b6 | ||
|
|
76fd72bbb5 | ||
|
|
0e816564f9 | ||
|
|
b40b28d25b | ||
|
|
9a6e82a2db | ||
|
|
edcbcea131 | ||
|
|
5c75f29f32 |
+1
-1
@@ -20,7 +20,7 @@ Repris du cadrage (modules, écrans clés, IA générative en V1) et des ADR 001
|
||||
| 1a. Moteur pour l'analyse (fait) | Niveaux de jeu (plis et bruit de GNU Backgammon : débutant à expert), classement des coups d'un jet avec équités, analyse d'un coup joué et d'une décision de videau, chance d'un jet ; exposés par `engine.h`, `engine-cli` et le Worker, avec positions de référence comparées à gnubg de bureau | — |
|
||||
| 1b. Parties enregistrées (fait) | Stockage IndexedDB derrière l'interface de stockage existante : plusieurs parties, reprise automatique, branches (« Rejouer d'ici » crée une branche, l'originale reste intacte et rechargeable), export SGF avec variantes | — |
|
||||
| 1c. Match et réglages | Partie libre ou match en N points, règle Crawford, règle Jacoby, choix du niveau de l'ordinateur, conseil du maître activable ou non ; écran de nouvelle partie | 1a, 1b |
|
||||
| 1d. Conseil du maître | Après chaque coup du joueur, jamais avant (ADR 0011) : appréciation du moteur (bon coup, imprécision, erreur, gaffe) avec mot, icône et couleur, phrase du maître fondée sur les chiffres du moteur, coup recommandé montré sur demande ; aussi pour les décisions de videau ; calcul en arrière-plan sans retarder le jeu | 1a |
|
||||
| 1d. Conseil du maître | Après chaque coup du joueur, jamais avant (ADR 0011) : appréciation du moteur (bon coup, imprécision, erreur, grosse erreur) avec mot, icône et couleur, phrase du maître fondée sur les chiffres du moteur, coup recommandé montré sur demande ; aussi pour les décisions de videau ; calcul en arrière-plan sans retarder le jeu | 1a |
|
||||
| 1e. Fin de partie et analyse | Bilan (ADR 0011) : résultat, coups par appréciation, taux d'erreur comparé à la chance, « le coup à revoir » ; écran d'analyse : graphe d'équité (toucher un point ouvre la position), liste des erreurs filtrable, visualiseur pas à pas coup joué contre meilleur coup, « Rejouer d'ici » | 1a, 1b, 1d |
|
||||
| 1f. Prompts à copier | Gabarits versionnés et testés (`docs/prompts/` ou équivalent, source unique), bouton « Demander à une IA » sur le plateau, le conseil du maître, l'analyse et la fin de partie ; le moteur décide, l'IA explique | 1d, 1e |
|
||||
| 1g. Accueil, tutoriel et leçons | Accueil (reprendre, nouvelle partie, prochaine leçon, progression résumée), tutoriel des règles interactif et illustré (0e.5), cinq premières leçons numérotées (ADR 0011) avec positions et « à vous de jouer », progression locale ; contenus CC BY-SA 4.0 en brouillon, à relire par un joueur fort | 0e.5, 1a |
|
||||
|
||||
@@ -24,7 +24,7 @@ Demandes de Pierre du 2026-11-03, traitées avant d'ouvrir l'étape 1.
|
||||
| Sous-étape | Contenu | État | Plan |
|
||||
| --- | --- | --- | --- |
|
||||
| 0e.4 | Une adresse par écran (aide, glossaire, menu, mes parties…) et par position, par de vrais liens (ADR 0013 amendé) | ⏳ | `plans/2026-11-03-position-dans-l-adresse.md` |
|
||||
| 0e.5 | Page d'accueil, installation en un toucher (« Ajouter à l'écran d'accueil », proposée par l'app), tutoriel des règles très didactique avec plateaux illustrés, aide réécrite sur un ton plus humain ; textes à valider par Pierre | ⏳ | `plans/2026-11-03-accueil-tutoriel-aide.md` |
|
||||
| 0e.5 | Page d'accueil, mise à jour de l'app en un toucher, installation en un toucher (« Ajouter à l'écran d'accueil », proposée par l'app), tutoriel des règles très didactique avec plateaux illustrés, aide réécrite sur un ton plus humain ; textes à valider par Pierre | ⏳ | `plans/2026-11-03-accueil-tutoriel-aide.md` |
|
||||
|
||||
## Étapes suivantes
|
||||
|
||||
|
||||
@@ -14,6 +14,7 @@ Décisions : ADR 0010. Fichiers du logo et des icônes : `../logo/`.
|
||||
| Fichier | Contenu |
|
||||
| --- | --- |
|
||||
| `guide-de-marque.md` | Règles d'usage : ton, couleurs, typographie, formes, mouvement, icônes, composants |
|
||||
| `ecrans-etape-1.md` | Écrans de l'étape 1, lot par lot : nouvelle partie et match (1c), conseil du maître (1d), bilan et analyse (1e), IA (1f), leçons (1g), progression (1h), gestes (1i) |
|
||||
| `accueil-tutoriel-aide.md` | Accueil, installation sans intrusion, tutoriel des règles (forme et première version du texte), aide en questions |
|
||||
| `recette-ux.md` | Critères de recette design de l'écran de jeu, à cocher sur les captures et sur le téléphone |
|
||||
| `interaction.md` | Comportement : réponse immédiate, annuler plutôt que confirmer, mouvement, vibrations, clavier, mises en page de l'écran de jeu (portrait, paysage, ordinateur), pictogrammes |
|
||||
|
||||
@@ -0,0 +1,253 @@
|
||||
# Écrans de l'étape 1
|
||||
|
||||
Règles de design des écrans de l'étape 1 (`docs/etape-1.md`), lot par lot.
|
||||
Maquettes : canevas https://claude.ai/artifact/CQw6vbDpi6XQqVWQa4sANe, rangées
|
||||
« Étape 1 ». Comportement général : `interaction.md` ; liens : ADR 0013.
|
||||
|
||||
## 1c. Nouvelle partie et match
|
||||
|
||||
### Écran « Nouvelle partie » (`#/nouvelle-partie`)
|
||||
|
||||
Ouvert depuis le menu, l'accueil et la fin de partie. Une seule page, sans
|
||||
étapes, de haut en bas :
|
||||
|
||||
1. **Type de partie** : un sélecteur à deux segments, « Partie libre » et
|
||||
« Match » (fond `surface-sunken`, segment choisi en `surface` avec
|
||||
`shadow-raised`).
|
||||
- **Match** : « Le premier à [3] [5] [7] [11] points », quatre boutons
|
||||
carrés de 44 px, le choisi en brique. Dessous, une phrase sur la règle de
|
||||
Crawford, avec le lien vers sa fiche du glossaire.
|
||||
- **Partie libre** : une phrase sur la règle de Jacoby, avec le lien vers
|
||||
sa fiche. Pas d'interrupteur pour Crawford ni Jacoby : ce sont les règles
|
||||
usuelles, et le joueur débutant n'a pas à les choisir.
|
||||
2. **Niveau de l'ordinateur** : six barres de hauteur croissante, à toucher
|
||||
(Débutant, Amateur, Intermédiaire, Avancé, Expert, Champion) ; les barres
|
||||
jusqu'au niveau choisi sont en brique, le niveau choisi porte l'anneau de
|
||||
focus. Dessous, le nom en `heading` et une phrase qui le décrit en mots de
|
||||
joueur, jamais en plis ni en bruit :
|
||||
- Débutant : « Joue simplement et laisse passer des occasions. Idéal pour
|
||||
vos premières parties. »
|
||||
- Amateur : « Un joueur qui connaît les règles et commet encore des
|
||||
erreurs. »
|
||||
- Intermédiaire : « Un habitué de la table : solide, sans être
|
||||
implacable. »
|
||||
- Avancé : « Un bon joueur de club. Peu d'erreurs de pions, un videau
|
||||
sérieux. »
|
||||
- Expert : « Très peu d'erreurs. Chaque point se gagne. »
|
||||
- Champion : « GNU Backgammon à son meilleur niveau sur ce téléphone. »
|
||||
3. **Pendant la partie** : interrupteur « Conseil du maître », sous-titre
|
||||
« Une ligne après chacun de vos coups ».
|
||||
4. **Barre d'action collée en bas** : un seul bouton principal, qui dit ce
|
||||
qu'il lance (« Commencer la partie » ou « Commencer le match en 5
|
||||
points »), et la mention « Vos choix sont gardés pour la prochaine fois. ».
|
||||
|
||||
Par défaut : partie libre, Intermédiaire, conseil activé. Fermer (croix en
|
||||
haut à gauche, ou retour du téléphone) ne change rien à la partie en cours.
|
||||
Commencer une nouvelle partie alors qu'une partie est en cours suit la règle
|
||||
« annuler plutôt que confirmer » (bandeau « Reprendre l'ancienne »).
|
||||
|
||||
### Score de match sur l'écran de jeu
|
||||
|
||||
- **Portrait** : une ligne `overline` centrée sous la barre haute, « Match en
|
||||
5 points », complétée par « · partie Crawford » pendant la partie Crawford ;
|
||||
dans chaque bandeau, une pastille carrée (contour `border-strong`, chiffre
|
||||
gras) avec le score de ce joueur, juste avant son compte de points.
|
||||
- **Paysage** : dans la colonne de commandes, sous le menu, une case qui
|
||||
empile le score de l'ordinateur, « sur 5 », puis le vôtre (même ordre que
|
||||
les bandeaux : l'ordinateur en haut, vous en bas).
|
||||
- Le score se lit aussi au lecteur d'écran : « Match en 5 points :
|
||||
l'ordinateur 4, vous 2 ».
|
||||
- Pendant la partie Crawford, le videau n'est pas affiché : il n'existe pas
|
||||
pour cette partie.
|
||||
|
||||
## 1d. Conseil du maître
|
||||
|
||||
### La ligne du maître
|
||||
|
||||
Maquette « Portrait révisé : conseil du maître après le coup ». Une ligne de
|
||||
44 px, réservée sous le bandeau du joueur (elle ne pousse rien) :
|
||||
|
||||
- icône d'appréciation, puis le **mot en couleur** suivi d'un point
|
||||
(« Bon coup. »), puis la **phrase du maître en italique**, sur une ligne,
|
||||
tronquée par des points de suspension si elle est trop longue, et un
|
||||
chevron ;
|
||||
- elle apparaît **après** la validation du coup du joueur (ou sa décision de
|
||||
videau), dès que l'analyse est prête, en fondu de `duration-fast` ; elle
|
||||
s'efface à l'action suivante du joueur (lancer les dés, toucher un pion) ;
|
||||
- **pendant que le joueur réfléchit, rien n'apparaît** ; si l'analyse arrive
|
||||
trop tard (le joueur a déjà relancé), la ligne n'apparaît pas, et le coup
|
||||
reste commenté dans le bilan ;
|
||||
- conseil désactivé : la ligne reste réservée et vide (la mise en page ne
|
||||
bouge pas).
|
||||
|
||||
### Les mots
|
||||
|
||||
| Seuil gnubg (écart d'équité) | Mot | Couleur | Icône |
|
||||
| --- | --- | --- | --- |
|
||||
| meilleur coup, ou moins de 0,03 | Bon coup | `verdict-good` | coche |
|
||||
| 0,03 à 0,06 (doubtful) | Imprécision | `verdict-doubtful` | point d'interrogation |
|
||||
| 0,06 à 0,12 (bad) | Erreur | `verdict-bad` | croix |
|
||||
| plus de 0,12 (very bad) | Grosse erreur | `verdict-bad` | croix |
|
||||
|
||||
Pour le videau : « Bon choix » et « Bonne décision » remplacent « Bon coup ».
|
||||
« Grosse erreur » est la recommandation de design ; `docs/etape-1.md` écrit
|
||||
« gaffe », et le choix final revient à Pierre (ton).
|
||||
|
||||
### La feuille d'explication
|
||||
|
||||
Maquette « Feuille d'explication du maître ». Toucher la ligne ouvre une
|
||||
feuille qui monte du bas (`duration-moderate`), au-dessus du plateau voilé :
|
||||
|
||||
1. le mot d'appréciation et le contexte (« Erreur · votre 3-1 d'ouverture ») ;
|
||||
2. le titre : le coup du maître, à la première personne (« J'aurais joué
|
||||
8/5 6/5 ») ; pour un bon coup : « C'est aussi le coup que j'aurais joué » ;
|
||||
3. la phrase du maître, en italique ;
|
||||
4. un sélecteur à deux segments, « Votre coup » et « Le coup du maître », au-
|
||||
dessus d'un plateau qui montre la position d'avant le coup ; le coup choisi
|
||||
se joue pion par pion (`duration-fast`), avec un tracé du départ à
|
||||
l'arrivée : `text` pour votre coup, `verdict-good` pour celui du maître ;
|
||||
5. « Voir les chiffres du moteur » (repliée par défaut) : le classement des
|
||||
coups avec leur écart d'équité et le niveau d'évaluation ; votre coup est en
|
||||
gras ;
|
||||
6. « Demander à une IA » (1f) et « Fermer ».
|
||||
|
||||
Le lien vers la fiche d'un concept du glossaire n'apparaît que si le moteur
|
||||
permet de le déterminer, sinon rien.
|
||||
|
||||
### Les phrases du maître
|
||||
|
||||
- **Le maître parle à la première personne et vouvoie** : « J'aurais joué… »,
|
||||
jamais « Vous auriez dû… », jamais « Il fallait… ».
|
||||
- **Il ne cite que des faits** : le coup recommandé, le rang de votre coup,
|
||||
les pions frappés, les points faits ou laissés (lisibles dans le coup
|
||||
lui-même), l'écart d'équité sur demande. Aucune explication stratégique
|
||||
inventée (« la case la plus précieuse », « trop risqué ») : celles-là
|
||||
viendront des leçons, relues par un joueur fort.
|
||||
- **Trois parties au plus** : ce que vous avez fait, ce que le maître préfère,
|
||||
un fait qui les distingue. Moins de 140 caractères pour la ligne ; la
|
||||
feuille peut aller jusqu'à deux phrases.
|
||||
- **Ton** : encourageant et sobre. Pas de point d'exclamation, pas d'émoji, pas
|
||||
de superlatif. Les bons coups ont plusieurs formules qui tournent
|
||||
(« C'est le coup du maître. », « Exactement ce que j'aurais joué. »,
|
||||
« Bien vu. »), pour ne pas lasser.
|
||||
- **Exemples** (gabarits à remplir avec les données du moteur) :
|
||||
- Bon coup : « Bien vu. 8/5 6/5 fait votre point 5. »
|
||||
- Imprécision : « J'aurais joué {meilleur}. Votre coup était le
|
||||
{rang}e choix, tout près. »
|
||||
- Erreur : « J'aurais joué {meilleur}. Votre {joué} était le {rang}e
|
||||
choix. »
|
||||
- Videau, prise juste : « Bonne décision : prendre était le bon choix. »
|
||||
- Videau, double manqué : « Ici, j'aurais doublé. »
|
||||
|
||||
## 1e. Bilan et analyse
|
||||
|
||||
### Bilan (`#/parties/<id>/bilan`)
|
||||
|
||||
Maquette « Bilan de fin de partie ». Il remplace le panneau de fin de partie
|
||||
quand l'analyse est prête ; avant, le panneau actuel s'affiche et le bilan le
|
||||
remplace en place, sans saut.
|
||||
|
||||
1. `overline` « Fin de partie », titre `display` (« Vous gagnez », « L'ordinateur
|
||||
gagne un gammon »), puis une phrase : le résultat en points et une
|
||||
lecture simple du jeu et des dés (« Votre jeu a fait la différence, avec
|
||||
des dés un peu contre vous. »), construite à partir du taux d'erreur et de
|
||||
la chance donnés par le moteur, jamais inventée.
|
||||
2. Trois cases côte à côte : le nombre de bons coups, d'imprécisions et
|
||||
d'erreurs (grosses erreurs comprises), chiffre en 28 px, mot et icône en
|
||||
couleur d'appréciation.
|
||||
3. Deux jauges sur une ligne chacune :
|
||||
- « Votre jeu » : le taux d'erreur traduit en niveau (correspondance avec
|
||||
les classements de gnubg documentée, mêmes noms que les niveaux de
|
||||
l'ordinateur), jauge en `verdict-good` ;
|
||||
- « Les dés » : la chance, jauge centrée (à droite si elle vous a aidé, à
|
||||
gauche sinon), en `border-strong`, avec trois mots possibles : « pour
|
||||
vous », « équilibrés », « contre vous » (« un peu » ou « nettement »
|
||||
selon l'écart).
|
||||
Lien « Comment lire ces mesures » vers les fiches du glossaire.
|
||||
4. « Le coup à revoir » : la plus grosse erreur, mini-plateau, mot
|
||||
d'appréciation, coup joué et coup du maître ; « Revoir ce coup » (ouvre
|
||||
l'analyse sur ce coup) et « Demander à une IA ». Sans erreur ni
|
||||
imprécision : la carte dit « Aucun coup à revoir : vous avez joué comme le
|
||||
maître. »
|
||||
5. Barre d'actions : « Voir l'analyse » et « Nouvelle partie » (principale).
|
||||
|
||||
### Analyse (`#/parties/<id>/analyse/<coup>`)
|
||||
|
||||
Maquette interactive « Analyse ». Une page qui défile, de haut en bas :
|
||||
|
||||
1. **Courbe de vos chances de gagner**, coup après coup, en pourcentage (pas
|
||||
en équité : un débutant lit « 41 % », pas « −0,18 »). Tracé `text` de 2 px,
|
||||
aire `accent-soft`, ligne pointillée à 50 %. Les coups commentés sont des
|
||||
points de couleur d'appréciation, les autres de petits points `text`.
|
||||
**On parcourt la courbe du doigt** : chaque coup possède une bande verticale
|
||||
sur toute la hauteur du graphique, qui sert de cible tactile ; le coup
|
||||
choisi porte un trait vertical brique et un point cerclé.
|
||||
2. **Visualiseur** : « ‹ Coup 7 sur 24 · 6-1 › », le plateau de la position
|
||||
d'avant le coup, la phrase du maître, le sélecteur « Votre coup » / « Le
|
||||
coup du maître » de la feuille 1d, puis « Rejouer d'ici » (crée une
|
||||
branche, ADR 0011 et 1b) et « Demander à une IA ».
|
||||
3. **Les coups à revoir** : filtres en pastilles de 44 px (« Tout »,
|
||||
« Erreurs », « Imprécisions », avec leurs nombres), puis une ligne par
|
||||
coup : numéro, dés, coup joué, mot d'appréciation. Toucher une ligne place
|
||||
le visualiseur et la courbe sur ce coup.
|
||||
|
||||
Sur ordinateur, `←` et `→` passent d'un coup à l'autre.
|
||||
|
||||
## 1f. Demander à une IA
|
||||
|
||||
Le bouton est secondaire partout, jamais l'action principale, avec l'icône
|
||||
de copie : dans la feuille du maître (1d), dans la carte « Le coup à
|
||||
revoir » du bilan, dans le visualiseur de l'analyse, et dans une fiche du
|
||||
glossaire. Après la copie, le bandeau « Prompt copié » (`verdict-good`, 2 s),
|
||||
puis le texte du prompt reste lisible dans une zone `surface-sunken`
|
||||
repliable, pour qui veut le relire avant de le coller (composant `AskAI`).
|
||||
|
||||
## 1g. Leçons (`#/lecons`, `#/lecons/<n>/<écran>`)
|
||||
|
||||
Maquette « Leçons ». En tête, un rappel discret « Les règles du jeu ·
|
||||
revoir » (le tutoriel de 0e.5). Puis les cinq leçons numérotées, dans
|
||||
l'ordre, chacune avec une pastille ronde à son numéro :
|
||||
|
||||
- terminée : pastille `verdict-good`, « Terminée » ;
|
||||
- en cours : carte bordée de brique, pastille brique, « 2 exercices sur 4 »,
|
||||
barre de progression, bouton « Continuer » (seule action principale de
|
||||
l'écran) ;
|
||||
- à commencer : pastille au contour `border-strong`.
|
||||
|
||||
Toutes les leçons restent ouvertes : l'ordre est conseillé, jamais imposé.
|
||||
Les écrans d'une leçon suivent la forme du tutoriel (barre de progression,
|
||||
« Passer », « Retour », « Continuer », écrans « à vous » contrôlés par le
|
||||
moteur).
|
||||
|
||||
## 1h. Progression (`#/progression`)
|
||||
|
||||
Maquette « Progression ».
|
||||
|
||||
- Une phrase de synthèse, factuelle (« Sur vos 8 dernières parties, vous
|
||||
faites moins d'erreurs : votre taux d'erreur est passé de 14 à 7. »). Si la
|
||||
tendance monte, la phrase reste encourageante et sans reproche (« Votre
|
||||
taux d'erreur remonte un peu ces derniers jours. Les leçons sont là
|
||||
pour reprendre un point. »).
|
||||
- La courbe du taux d'erreur par partie terminée, avec le rappel « plus bas,
|
||||
c'est mieux » dans son titre, le dernier point en `verdict-good`, et un lien
|
||||
vers la fiche « taux d'erreur ».
|
||||
- La liste des parties (résultat, date, niveau de l'ordinateur, taux d'erreur
|
||||
en chiffre gras aligné à droite), chacune ouvrant son bilan.
|
||||
- Moins de trois parties analysées : pas de courbe, une phrase « Votre
|
||||
courbe apparaîtra après trois parties. ».
|
||||
|
||||
## 1i. Gestes sur le plateau
|
||||
|
||||
- **Glisser-déposer** : le pion suit le doigt, agrandi à 115 % et décalé de
|
||||
12 px vers le haut pour rester visible sous le doigt ; à son départ, un pion
|
||||
fantôme en pointillés ; les cases d'arrivée permises gardent leur voile et
|
||||
leur anneau (révision UX). Lâché sur une case permise : il s'y pose
|
||||
(`duration-fast`, vibration « pion posé ») ; lâché ailleurs : il revient à
|
||||
sa place en `duration-fast`, sans vibration ni message.
|
||||
- **Double toucher** : joue le coup évident quand il existe (un seul coup légal
|
||||
complet commence par ce pion, ou le moteur n'en propose qu'un) ; sinon, il
|
||||
vaut un simple toucher, sans message d'erreur.
|
||||
- **Toucher simple** : inchangé (pion puis case, ou avance directe s'il n'a
|
||||
qu'une case d'arrivée).
|
||||
- Les trois gestes coexistent ; aucun n'est expliqué par une fenêtre : le
|
||||
tutoriel et l'aide en parlent.
|
||||
@@ -41,9 +41,24 @@ Traiter les points 2 et 3 du message de Pierre du 2026-11-03 et sa demande d'ins
|
||||
- « Les mots du jeu » : les cartes du glossaire, avec une recherche ;
|
||||
- « À propos » : licence, crédits, version ;
|
||||
- le tutoriel est proposé en tête de l'aide.
|
||||
5. **Scénarios Gherkin** : premier lancement, installation, suivre le tutoriel.
|
||||
6. **`make test-browser`** :
|
||||
5. **Mise à jour de l'application** (demande de Pierre du 2026-11-09). Quand
|
||||
le service worker trouve une nouvelle version, l'app affiche un bandeau
|
||||
discret « Nouvelle version disponible » avec « Mettre à jour », jamais
|
||||
pendant un coup en cours. Toucher le bouton active la nouvelle version
|
||||
(`skipWaiting`, puis rechargement au `controllerchange`), et la partie
|
||||
reprend où elle en était. Le menu propose aussi « Rechercher une mise à
|
||||
jour » (`registration.update()`), qui dit « Vous avez la dernière
|
||||
version » sinon. L'onglet « À propos » affiche la version publiée (le
|
||||
commit de `version.json`). Aujourd'hui, `web/sw.js` appelle
|
||||
`skipWaiting()` dès l'installation et efface l'ancien cache : une page
|
||||
ouverte garde son ancien code et peut ne plus trouver les anciens
|
||||
fichiers. Le nouveau service worker doit attendre l'accord du joueur, sauf
|
||||
à la toute première installation.
|
||||
6. **Scénarios Gherkin** : premier lancement, installation, suivre le tutoriel.
|
||||
7. **`make test-browser`** :
|
||||
- premier lancement, tutoriel complet avec ses écrans « à vous », aide ;
|
||||
- mise à jour : publier deux versions du site de test l'une après
|
||||
l'autre, voir le bandeau, mettre à jour, retrouver la partie ;
|
||||
- `beforeinstallprompt` simulé dans Chromium ;
|
||||
- captures dans `build/browser-shots/accueil-tutoriel/` pour la recette design.
|
||||
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
# Fin de partie et analyse (1e)
|
||||
|
||||
- **Date** : 2026-11-03
|
||||
- **Étape** : 1e (`docs/etape-1.md`)
|
||||
- **Statut** : prévu (après 1d)
|
||||
- **Exécutant** : sous-agent general-purpose, dans un worktree
|
||||
|
||||
## Objectif
|
||||
|
||||
Que le joueur comprenne sa partie : le bilan de fin de partie (ADR 0011), puis un écran d'analyse avec graphe d'équité, liste des erreurs, visualiseur et « Rejouer d'ici ».
|
||||
|
||||
## Consignes
|
||||
|
||||
Respecter les ADR 0007, 0008, 0011 et 0013. Chaque écran a son adresse : `#/parties/<id>/bilan` et `#/parties/<id>/analyse/<coup>`, à ajouter au tableau de l'ADR 0013 par un amendement. Pour la charte, suivre les maquettes « Fin de partie » du canevas. Aucune nouvelle dépendance : le graphe est dessiné en SVG à la main.
|
||||
|
||||
1. **Analyse de la partie.** Elle réutilise les analyses rangées par 1d (coups et videau) et complète celles qui manquent en arrière-plan, de façon progressive et annulable. Elle donne :
|
||||
- le taux d'erreur à la manière de gnubg ;
|
||||
- la chance aux dés (`luck`) pour chaque camp ;
|
||||
- le décompte des coups par appréciation.
|
||||
2. **Bilan**, dans le panneau de fin de partie existant :
|
||||
- le résultat ;
|
||||
- les coups par appréciation ;
|
||||
- le taux d'erreur comparé à la chance, en phrases simples ;
|
||||
- « le coup à revoir » : la plus grosse erreur, avec sa position, le coup joué et le meilleur coup ;
|
||||
- un emplacement pour le bouton « Demander à une IA » (1f) ;
|
||||
- « Voir l'analyse ».
|
||||
3. **Écran d'analyse** :
|
||||
- un graphe d'équité où toucher un point ouvre la position ;
|
||||
- la liste des erreurs, filtrable par appréciation ;
|
||||
- un visualiseur pas à pas qui montre sur le plateau le coup joué contre le meilleur coup, avec des pions animés ;
|
||||
- « Rejouer d'ici », qui crée une branche (domaine de 1b) sans toucher l'original.
|
||||
4. **Tests** :
|
||||
- scénarios Gherkin : bilan, coup à revoir, rejouer d'ici, chacun avec des dés imposés ;
|
||||
- fiches du glossaire : taux d'erreur, graphe d'équité si absentes ;
|
||||
- `make lint`, `make test`, `make test-browser`, avec des captures pour la recette design.
|
||||
|
||||
## Critères de réussite
|
||||
|
||||
- Après une partie, le bilan nomme le coup à revoir, conforme à l'analyse du moteur.
|
||||
- L'analyse s'ouvre par son adresse.
|
||||
- « Rejouer d'ici » crée une branche.
|
||||
- Les trois commandes passent.
|
||||
|
||||
## Résultat
|
||||
|
||||
À remplir à la clôture.
|
||||
@@ -29,7 +29,7 @@ du moteur.
|
||||
(événement d'analyse rétrocompatible, ou cache séparé justifié) pour servir
|
||||
au bilan (1e) sans recalcul.
|
||||
2. **Ligne du maître** : icône d'appréciation, mot en couleur (« Bon coup. »,
|
||||
« Imprécision. », « Erreur. », « Gaffe. » : correspondance avec les seuils
|
||||
« Imprécision. », « Erreur. », « Grosse erreur. » (choix de Pierre du 2026-11-09, plutôt que « gaffe ») : correspondance avec les seuils
|
||||
de gnubg documentée), phrase courte en italique, chevron. Toucher ouvre la
|
||||
feuille d'explication : coup joué et meilleur coup montrés sur le plateau
|
||||
(pions animés, ADR 0011 « comparaison visuelle »), écart d'équité seulement
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
# Cinq premières leçons et accueil complet (1g)
|
||||
|
||||
- **Date** : 2026-11-03
|
||||
- **Étape** : 1g (`docs/etape-1.md`) ; le tutoriel des règles est traité en 0e.5
|
||||
- **Statut** : prévu (après 0e.5 et 1d)
|
||||
- **Exécutant** : sous-agent general-purpose, dans un worktree
|
||||
|
||||
## Objectif
|
||||
|
||||
Mettre en place les cinq premières leçons numérotées de l'ADR 0011. Chaque leçon est faite d'écrans courts : une explication, une position animée, puis « à vous de jouer ». La progression est stockée localement, et l'accueil propose « Continuer la leçon ».
|
||||
|
||||
## Consignes
|
||||
|
||||
1. **Contenus.** Ils vivent dans une source unique sous `docs/lecons/`, sous licence CC BY-SA 4.0, au même format que le tutoriel de 0e.5 (réutiliser son moteur d'écrans). Cinq leçons du parcours 2 du cadrage, au niveau débutant :
|
||||
1. Les ouvertures : bien jouer ses premiers dés.
|
||||
2. Construire ses cases et faire des points.
|
||||
3. Frapper ou ne pas frapper : sécurité et risque.
|
||||
4. La course et le compte de points.
|
||||
5. Sortir ses pions sans se faire frapper.
|
||||
|
||||
Chaque leçon compte deux à quatre exercices « à vous ». Leurs positions sont données par identifiants gnubg. La réponse attendue est le meilleur coup du moteur à 2 plis, vérifié par un test. Le texte n'affirme rien que le moteur ne confirme. Les contenus sont livrés en brouillon, marqués « à relire par un joueur fort » (cadrage, risque « contenus »), et Pierre les valide.
|
||||
2. **Progression.** Elle est enregistrée dans le stockage de 1b, dans le magasin `settings` ou dans un nouveau magasin avec montée de version (ADR 0007 amendé). Chaque leçon a son état : à commencer, « 2 exercices sur 4 », terminée.
|
||||
3. **Adresses** : `#/lecons` et `#/lecons/<n>/<écran>`, à ajouter au tableau de l'ADR 0013.
|
||||
4. **Accueil.** Il reçoit la carte « prochaine leçon » prévue par la charte.
|
||||
5. **Tests.**
|
||||
- Pour chaque exercice, la position est valide et la réponse attendue est bien le meilleur coup du moteur.
|
||||
- Scénarios Gherkin.
|
||||
- `make lint`, `make test`, `make test-browser`, avec captures.
|
||||
|
||||
## Critères de réussite
|
||||
|
||||
Les cinq leçons se suivent jusqu'au bout. Chaque exercice accepte le coup du moteur et commente les autres avec bienveillance. Les trois commandes passent.
|
||||
|
||||
## Résultat
|
||||
|
||||
À remplir à la clôture.
|
||||
@@ -0,0 +1,32 @@
|
||||
# Plateau soigné : gestes et finitions (1i)
|
||||
|
||||
- **Date** : 2026-11-03
|
||||
- **Étape** : 1i (`docs/etape-1.md`)
|
||||
- **Statut** : prévu
|
||||
- **Exécutant** : sous-agent general-purpose, dans un worktree
|
||||
|
||||
## Objectif
|
||||
|
||||
Terminer le plateau soigné du cadrage, une fois la révision UX en place :
|
||||
- les gestes naturels (principe d'expérience 2) ;
|
||||
- les écarts restants avec `docs/identite/charte/board.js`.
|
||||
|
||||
## Consignes
|
||||
|
||||
1. **Glisser-déposer.** On peut glisser un pion en plus du toucher pion puis destination. Le pion suit le doigt, et le lâcher hors d'une case permise le ramène à sa place. Les cibles restent celles du moteur.
|
||||
2. **Double toucher.** Un double toucher sur un pion joue le seul coup évident (cadrage). Un « coup évident » est défini ainsi : un seul coup légal complet commence par ce pion, ou le moteur ne propose qu'un coup. Sinon, rien ne se passe.
|
||||
3. **Écarts restants avec board.js.** Les relever par comparaison visuelle (filet des pions, numéros sur le cadre, videau…) et les corriger.
|
||||
4. **Clavier.** Faire ce que la révision UX a laissé :
|
||||
- le choix des pions aux flèches ;
|
||||
- l'affichage des raccourcis en `kbd` quand un clavier est détecté (interaction.md).
|
||||
5. **Tests.**
|
||||
- Scénarios Gherkin si un nouveau comportement est visible.
|
||||
- `make lint`, `make test`, `make test-browser` (glisser-déposer simulé, double toucher), avec captures pour la recette design.
|
||||
|
||||
## Critères de réussite
|
||||
|
||||
Un coup se joue entièrement au glisser-déposer. Le double toucher joue le coup évident. Les trois commandes passent.
|
||||
|
||||
## Résultat
|
||||
|
||||
À remplir à la clôture.
|
||||
@@ -0,0 +1,30 @@
|
||||
# Progression (1h)
|
||||
|
||||
- **Date** : 2026-11-03
|
||||
- **Étape** : 1h (`docs/etape-1.md`)
|
||||
- **Statut** : prévu (après 1e)
|
||||
- **Exécutant** : sous-agent general-purpose, dans un worktree
|
||||
|
||||
## Objectif
|
||||
|
||||
Mettre en place la progression du cadrage pour la V1 : l'historique des parties et la courbe du taux d'erreur.
|
||||
|
||||
## Consignes
|
||||
|
||||
1. **Écran `#/progression`.** Il est conforme à la charte et s'ajoute au tableau de l'ADR 0013. Il montre :
|
||||
- la courbe du taux d'erreur par partie terminée, en SVG à la main, sans dépendance ;
|
||||
- la liste des parties, reliée à leur bilan et à leur analyse (1e) ;
|
||||
- un résumé en une phrase.
|
||||
2. **Accueil.** Il reçoit la « ligne de progression » de la charte.
|
||||
3. **Données.** Elles proviennent des analyses enregistrées : rien n'est recalculé si l'analyse existe. Une partie non analysée est analysée en arrière-plan.
|
||||
4. **Tests.**
|
||||
- Scénarios Gherkin.
|
||||
- `make lint`, `make test`, `make test-browser` avec trois parties jouées, et captures.
|
||||
|
||||
## Critères de réussite
|
||||
|
||||
Après trois parties, la courbe a trois points égaux aux taux d'erreur des bilans. Les trois commandes passent.
|
||||
|
||||
## Résultat
|
||||
|
||||
À remplir à la clôture.
|
||||
@@ -0,0 +1,42 @@
|
||||
# Prompts à copier (1f)
|
||||
|
||||
- **Date** : 2026-11-03
|
||||
- **Étape** : 1f (`docs/etape-1.md`)
|
||||
- **Statut** : prévu (après 1e)
|
||||
- **Exécutant** : sous-agent general-purpose, dans un worktree
|
||||
|
||||
## Objectif
|
||||
|
||||
Mettre en place la section « IA générative en V1 » du cadrage. Un bouton « Demander à une IA » copie un prompt rempli avec le contexte exact. Le moteur décide, l'IA explique. L'app n'appelle aucune IA.
|
||||
|
||||
## Consignes
|
||||
|
||||
1. **Gabarits.** Les cinq gabarits du cadrage sont versionnés dans une source unique sous `docs/prompts/`, sous licence CC BY-SA 4.0 :
|
||||
- « pourquoi ce coup est meilleur » ;
|
||||
- « expliquer cette décision de videau » ;
|
||||
- « bilan de ma partie » ;
|
||||
- « expliquer ce concept » ;
|
||||
- « créer des exercices », à garder pour la progression.
|
||||
|
||||
Chaque gabarit contient :
|
||||
- le rôle et le niveau du joueur ;
|
||||
- le Position ID et le Match ID ;
|
||||
- un diagramme texte de la position, produit à partir du plateau décodé par le moteur ;
|
||||
- les chiffres du moteur, avec le niveau d'évaluation ;
|
||||
- la consigne de ne pas contredire ces chiffres ;
|
||||
- la langue.
|
||||
|
||||
Ajouter aussi le lien `#/position/...` de l'ADR 0013, avec l'adresse publique du site.
|
||||
2. **Remplissage.** Une fonction pure remplit les gabarits. Elle est testée sur des analyses réelles du moteur : aucun champ vide ni `{inconnu}`, et les chiffres sont identiques à ceux du moteur.
|
||||
3. **Boutons.** Ils sont placés sur le conseil du maître (feuille d'explication), le bilan, l'analyse et la fiche d'un terme du glossaire. La copie passe par `navigator.clipboard`, avec un repli de sélection du texte. Un bandeau « Prompt copié » l'accompagne, et le texte reste visible pour qui veut le relire.
|
||||
4. **Tests.**
|
||||
- Scénarios Gherkin : copier le prompt d'une erreur, et celui d'un bilan.
|
||||
- `make lint`, `make test` et `make test-browser`, avec lecture du presse-papiers dans Chromium et captures.
|
||||
|
||||
## Critères de réussite
|
||||
|
||||
Le prompt copié après une erreur contient la position, les identifiants gnubg et le top 3 du moteur avec les mêmes chiffres que l'app. Les trois commandes passent.
|
||||
|
||||
## Résultat
|
||||
|
||||
À remplir à la clôture.
|
||||
Reference in New Issue
Block a user