From 5c75f29f32c71e2a4a725b0f34ea2dca5b1cb0fb Mon Sep 17 00:00:00 2001 From: Pierre MARTIN Date: Tue, 3 Nov 2026 21:03:46 +0100 Subject: [PATCH] =?UTF-8?q?Plans=201e=20=C3=A0=201i=20:=20bilan=20et=20ana?= =?UTF-8?q?lyse,=20prompts,=20le=C3=A7ons,=20progression,=20plateau=20soig?= =?UTF-8?q?n=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- docs/plans/2026-11-03-bilan-et-analyse.md | 46 +++++++++++++++++++++++ docs/plans/2026-11-03-lecons.md | 36 ++++++++++++++++++ docs/plans/2026-11-03-plateau-soigne.md | 32 ++++++++++++++++ docs/plans/2026-11-03-progression.md | 30 +++++++++++++++ docs/plans/2026-11-03-prompts.md | 42 +++++++++++++++++++++ 5 files changed, 186 insertions(+) create mode 100644 docs/plans/2026-11-03-bilan-et-analyse.md create mode 100644 docs/plans/2026-11-03-lecons.md create mode 100644 docs/plans/2026-11-03-plateau-soigne.md create mode 100644 docs/plans/2026-11-03-progression.md create mode 100644 docs/plans/2026-11-03-prompts.md diff --git a/docs/plans/2026-11-03-bilan-et-analyse.md b/docs/plans/2026-11-03-bilan-et-analyse.md new file mode 100644 index 0000000..5a221c5 --- /dev/null +++ b/docs/plans/2026-11-03-bilan-et-analyse.md @@ -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//bilan` et `#/parties//analyse/`, à 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. diff --git a/docs/plans/2026-11-03-lecons.md b/docs/plans/2026-11-03-lecons.md new file mode 100644 index 0000000..75296b2 --- /dev/null +++ b/docs/plans/2026-11-03-lecons.md @@ -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//<é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. diff --git a/docs/plans/2026-11-03-plateau-soigne.md b/docs/plans/2026-11-03-plateau-soigne.md new file mode 100644 index 0000000..710fcc2 --- /dev/null +++ b/docs/plans/2026-11-03-plateau-soigne.md @@ -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. diff --git a/docs/plans/2026-11-03-progression.md b/docs/plans/2026-11-03-progression.md new file mode 100644 index 0000000..66402bf --- /dev/null +++ b/docs/plans/2026-11-03-progression.md @@ -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. diff --git a/docs/plans/2026-11-03-prompts.md b/docs/plans/2026-11-03-prompts.md new file mode 100644 index 0000000..f369520 --- /dev/null +++ b/docs/plans/2026-11-03-prompts.md @@ -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.