Conseil du maître : rang cité seulement pour un coup proche ou une imprécision au 2e ou 3e choix ; 1d faite, plan clos

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Pierre MARTIN
2026-11-10 05:36:11 +01:00
co-authored by Claude Opus 5.5
parent 4fa54ad3f3
commit c7a54a8c81
7 changed files with 49 additions and 153 deletions
-115
View File
@@ -1,115 +0,0 @@
# Conseil du maître (1d)
- **Date** : 2026-11-03
- **Étape** : 1d (`docs/etape-1.md`)
- **Statut** : prévu (après 1c)
- **Exécutant** : sous-agent general-purpose, dans un worktree
## Objectif
Le coach bienveillant, « mis en avant mais discret » (Pierre, 2026-11-03) :
après chaque coup et chaque décision de videau du joueur, jamais avant
(ADR 0011), une appréciation et une phrase du maître fondées sur les chiffres
du moteur.
## Références
- ADR 0011 ; maquette « conseil du maître après le coup » du canevas
https://claude.ai/artifact/CQw6vbDpi6XQqVWQa4sANe ; règles de la charte
(`docs/identite/charte/`, dont interaction.md) ; la ligne réservée de 44 px
de la révision UX.
- Moteur : `analyseMove`, `analyseCube`, `luck`, seuils `SKILL_THRESHOLDS`
(gnubg : 0,03 / 0,06 / 0,12).
## Consignes
1. **Analyse en arrière-plan** : après la validation d'un coup (ou une
décision de videau), l'analyse à 2 plis part dans le Worker sans retarder le
tour de l'ordinateur ; son résultat est rattaché au coup dans le journal
(é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. », « 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
sur demande, lien vers la fiche du glossaire du concept en jeu si le moteur
permet de le déterminer, sinon rien.
3. **Phrases du maître** : gabarits versionnés en français dans une source
unique sous `docs/` (CC BY-SA 4.0). Référence de ton, approuvée par Pierre
le 2026-11-09 : la section « Les phrases du maître » de
`docs/identite/charte/ecrans-etape-1.md` (1re personne et vouvoiement,
faits du moteur uniquement, moins de 140 caractères, ton sobre sans
exclamation, formules qui tournent pour les bons coups, exemples). Un test
vérifie la longueur et l'absence de « ! » sur chaque gabarit rendu. Les
phrases livrées passent par la session « identité » puis par Pierre pour
la relecture finale.
4. **Discret** : rien n'apparaît pendant que le joueur réfléchit ; la ligne
s'efface à l'action suivante ; désactivable (réglage de 1c et menu).
5. **Videau** : même traitement pour doubler, ne pas doubler, prendre, passer.
6. Scénarios Gherkin (bon coup, erreur avec meilleur coup montré, conseil
désactivé, décision de videau commentée) avec positions et dés imposés ;
tests unitaires des gabarits (chaque gabarit rendu sur des analyses réelles
du moteur). `make lint`, `make test`, `make test-browser`, captures pour la
recette design.
## Critères de réussite
Après une erreur volontaire dans une position connue, la ligne du maître dit
« Erreur. », nomme le coup recommandé par le moteur et le montre sur demande ;
le tour de l'ordinateur n'est pas retardé ; les trois commandes passent.
## Résultat
Réalisé le 2026-11-10 sur la branche `conseil-du-maitre` (partie de 1c
fusionnée, corrections de recette C1 à C3 comprises).
- **Analyse sans retard** : un second moteur, dans son propre Web Worker
(`app/src/main.ts`), fait les analyses à 2 plis ; le premier, qui ne
traite qu'une commande à la fois, reste à la partie. Le second démarre à
la première analyse, une fois le premier chargé et le service worker
installé (au plus 20 s), pour ne pas croiser deux téléchargements des
données du moteur. Les décisions analysées : coup, jet sans doubler
(aurait-il fallu doubler ?), double, prise, refus
(`app/src/domain/analysis/analyse.ts`). Le domaine a une méthode de plus
dans `Engine` : `rankMoves` (commande `moves` d'engine-cli, déjà
existante : le moteur n'est pas recompilé).
- **Persistance** : le conseil est rattaché à l'événement de la décision,
dans un champ facultatif `advice` du journal, versionné
(`ADVICE_VERSION`) ; migration testée (journal sans conseil, conseil
d'une autre version ou orphelin). ADR 0007 amendé.
- **Ligne du maître** (portrait) : à la place du texte du dernier coup,
dans la ligne de 44 px ; pictogramme et mot en couleur, phrase en
italique tronquée, chevron ; lien vers la feuille. Rien avant le coup ;
effacée à l'action suivante ; analyse trop tardive : pas de ligne, mais
le conseil reste au journal. Un double manqué avant le jet passe avant le
coup dans la ligne (le jet seul ne montre rien, le joueur réfléchit).
- **Paysage** : la charte ne place pas la ligne ; choix proposé : une
pastille (pictogramme et mot) au début de la bande centrale, avant la
consigne, lien vers la même feuille. À valider en recette design.
- **Feuille d'explication** : `#/explication/<événement>` (ADR 0013 amendé),
rechargeable ; mot et contexte, titre à la première personne, phrase,
« Votre coup » / « Le coup du maître » joués pion par pion (le maître en
`verdict-good`), « Voir les chiffres du moteur » replié, lien vers la
fiche du glossaire pour le videau seulement (le moteur ne nomme pas de
concept pour un coup). « Demander à une IA » attend 1f.
- **Phrases** : `docs/maitre/phrases.md` (CC BY-SA 4.0), lues à
l'exécution ; test de longueur, d'absence de « ! » et de repère non
rempli sur de vraies analyses, et sur tous les gabarits remplis au plus
long. Vérifiées par la session design ; retouches P1 (grosse erreur :
plus de « sur N », rang cité seulement pour un 2e ou 3e choix) et P2
(« Mon coup frappe un pion. ») appliquées et testées. À soumettre à
Pierre.
- **Réglage** : interrupteur « Conseil du maître » dans le menu, en plus de
l'écran « Nouvelle partie » ; coupé, la ligne reste vide et les coups
restent analysés pour le bilan.
- **Tests** : `app/tests/advice.test.ts`, `app/tests/advice-tracker.test.ts`
(dont le tour de l'ordinateur joué pendant qu'une analyse attend),
scénario `docs/scenarios/comprendre-mes-coups.feature`, et
`tests/browser/maitre.mjs` (captures dans `build/browser-shots/maitre/`).
Écarts et points à trancher : en portrait, la ligne du maître remplace le
texte « L'ordinateur a joué … » tant qu'elle est là (les traces et
« Revoir » restent) ; la pastille du paysage ne montre pas la phrase ; le
mot du videau est « Bonne décision » dans tous les cas (la charte cite
aussi « Bon choix »).