Prompts : le niveau du joueur seulement à partir de 20 décisions, son taux d'erreur dans le seul bilan

Recette de 1f (F3). En dessous de 20 décisions analysées, le prompt dit
« Je débute au backgammon. ». Test du seuil ; outil prompt-sample pour
relire des prompts remplis par le moteur. Plan de 1f clos.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Pierre MARTIN
2026-11-11 21:52:23 +01:00
co-authored by Claude Opus 5.5
parent f509f8746e
commit f2df1b2e7f
10 changed files with 143 additions and 71 deletions
-42
View File
@@ -1,42 +0,0 @@
# 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.
+2 -2
View File
@@ -27,7 +27,7 @@ d'après le cadrage, **à relire** par Pierre.
Chaque prompt contient :
- le rôle de l'IA (un coach) et le niveau du joueur ;
- le rôle de l'IA (un coach) et, quand il est mesuré, le niveau du joueur ;
- la position : Position ID et Match ID de GNU Backgammon, le lien qui
l'ouvre dans l'application (`https://ustagammon.sans.pub/#/position/…`,
ADR 0013) et un diagramme texte dessiné d'après le plateau décodé par le
@@ -47,7 +47,7 @@ Repères communs à plusieurs gabarits :
| Repère | Ce qu'il devient |
| --- | --- |
| `{niveau}` | le niveau du joueur, d'après son taux d'erreur mesuré par GNU Backgammon, ou « pas encore mesuré » |
| `{joueur}` | « Je suis un joueur de niveau Avancé. », le niveau que donne GNU Backgammon d'après l'erreur par décision, seulement à partir de 20 décisions analysées ; en dessous, « Je débute au backgammon. ». Le taux d'erreur lui-même n'apparaît que dans le bilan. |
| `{position_id}`, `{match_id}` | les identifiants de GNU Backgammon de la position |
| `{au_trait}` | « moi » ou « l'ordinateur » : celui dont les identifiants décrivent le point de vue |
| `{lien}` | l'adresse de la position dans l'application publiée |
+1 -1
View File
@@ -20,7 +20,7 @@ Repères propres à ce gabarit :
## Gabarit
```text
Tu es un coach de backgammon, bienveillant et précis. Je suis un joueur de niveau {niveau}.
Tu es un coach de backgammon, bienveillant et précis. {joueur}
Je viens de finir une partie contre l'ordinateur (niveau {ordinateur}), analysée par GNU Backgammon ({niveau_eval}).
Résultat : {resultat}.
+1 -1
View File
@@ -17,7 +17,7 @@ Repères propres à ce gabarit :
## Gabarit
```text
Tu es un coach de backgammon, bienveillant et précis. Je suis un joueur de niveau {niveau}.
Tu es un coach de backgammon, bienveillant et précis. {joueur}
Explique-moi le concept {concept}.
Mon application le définit ainsi : {definition}
+1 -1
View File
@@ -17,7 +17,7 @@ Repères propres à ce gabarit :
## Gabarit
```text
Tu es un coach de backgammon, bienveillant et précis. Je suis un joueur de niveau {niveau}.
Tu es un coach de backgammon, bienveillant et précis. {joueur}
Voici la position avant mon coup (GNU Backgammon, Position ID : {position_id}, Match ID : {match_id} ; ces identifiants la décrivent du point de vue du joueur qui a la main : {au_trait}).
Elle s'ouvre aussi à cette adresse : {lien}
+1 -3
View File
@@ -10,17 +10,15 @@ Repères propres à ce gabarit :
| Repère | Ce qu'il devient |
| --- | --- |
| `{parties}` | le nombre de parties analysées |
| `{taux_parties}` | votre erreur par décision et votre niveau, partie par partie, de la plus ancienne à la plus récente |
| `{erreurs}` | vos erreurs les plus coûteuses sur ces parties, avec leur coût |
| `{position_titre}` | la plus coûteuse d'entre elles |
## Gabarit
```text
Tu es un coach de backgammon, bienveillant et précis. Je suis un joueur de niveau {niveau}.
Tu es un coach de backgammon, bienveillant et précis. {joueur}
Voici mes {parties} dernières parties contre l'ordinateur, analysées par GNU Backgammon ({niveau_eval}).
Mon erreur par décision, de la plus ancienne à la plus récente : {taux_parties}.
Mes erreurs les plus coûteuses, avec leur coût en équité :
{erreurs}
+1 -1
View File
@@ -20,7 +20,7 @@ Repères propres à ce gabarit :
## Gabarit
```text
Tu es un coach de backgammon, bienveillant et précis. Je suis un joueur de niveau {niveau}.
Tu es un coach de backgammon, bienveillant et précis. {joueur}
Voici la position au moment d'une décision de videau (GNU Backgammon, Position ID : {position_id}, Match ID : {match_id} ; ces identifiants la décrivent du point de vue du joueur qui a la main : {au_trait}).
Elle s'ouvre aussi à cette adresse : {lien}