Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,12 @@ Tout le contenu est **en français**. Rédigez en français (documentation, micr
| `outils/` | Outils en Rust, un binaire par commande : `build_adr` génère `adr.html` et contient aussi `XREFS`, les renvois de chaque ADR vers les pages ; `plan_financier` calcule les tableaux du plan financier ; `check_identity` contrôle l'identité visuelle. |
| `docs/index.html` | Accueil du dossier de direction. |
| `docs/identite.html`, `design-system.html`, `typographie.html`, `mouvement.html` | Identité visuelle et design système. |
| `docs/interfaces.html`, `maquettes.html` | Inventaire des 34 interfaces de la PWA et les maquettes statiques de 27 d’entre elles et de I-30 à I-34, mobile et ordinateur (styles dans `docs/assets/maquettes.css`, préfixe `mq-`). |
| `docs/interfaces.html`, `maquettes.html` | Inventaire des 35 interfaces de la PWA et les maquettes statiques de 27 d’entre elles et de I-30 à I-35, mobile et ordinateur (styles dans `docs/assets/maquettes.css`, préfixe `mq-`). |
| `docs/jeu.html`, `plis.html`, `codex.html` | Démonstrations jouables (table de fusion, plis, codex). |
| `docs/boussole.html`, `moodboard.html` | Piliers, à cultiver / à éviter, ambiance. |
| `docs/logo.html` | Page de travail hors navigation : les dix pistes de logo, dont le sceau ÉL retenu (ADR 0021). |
| `docs/cartes-visuels.html` | Page de travail hors navigation : dix pistes de texture pour les cartes du codex, dont la piste 02 (aplat découpé) retenue par l’ADR 0023. Les silhouettes du codex sont dans `cardArt` (`assets/etymo.js`). |
| `docs/pistes-retention.html` | Page de travail hors navigation : quatre pistes pour dynamiser la partie et la faire durer (mémoire des essais, quêtes de collection, constellation, enquêtes en cours), chacune avec sa démo, sur des mots de Rosette et Argile extraits du dépôt Content (légendaires exclues). Retenues par le propriétaire, elles sont consignées dans les ADR 0080 à 0083 (proposés). |
| `docs/assets/etymo.css` | **Jetons de référence** (couleurs, polices, rayons, easing) et styles partagés. |
| `docs/assets/etymo.js` | Démo partagée (réserve, découvertes, plis) stockée dans `localStorage` (`etymologique.demo.v1`, thème `etymologique.theme`). |
| `docs/assets/logo.svg` | Icône des pages : le sceau ÉL (ADR 0021). |
Expand Down
107 changes: 104 additions & 3 deletions docs/adr.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/adr/0027-catalogue-statique-et-donnees-joueur.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# ADR 0027 — Catalogue statique par fascicules, recettes publiques, serveur qui fait foi

- **Statut** : Proposé, partiellement remplacé par l'[ADR 0029](0029-parution-par-promotion-de-prefixe.md) : un fascicule à venir attend sous `staging/`, illisible, jusqu'à sa promotion dans `public/` ; le reste reste en vigueur
- **Statut** : Proposé, partiellement remplacé par l'[ADR 0029](0029-parution-par-promotion-de-prefixe.md) : un fascicule à venir attend sous `staging/`, illisible, jusqu'à sa promotion dans `public/` ; et par l'[ADR 0081](0081-memoire-des-essais.md) : la paire d'un échec ou d'un « presque » est gardée jusqu'à la parution suivante. Le reste reste en vigueur
- **Remplace partiellement** :
- [ADR 0003](0003-recettes-de-fusion.md), pour le secret des recettes verrouillées ;
- [ADR 0024](0024-architecture-logicielle-et-hebergement.md), pour les deux artefacts (public et serveur), la projection du contenu par joueur et le bucket privé du catalogue ;
Expand Down
64 changes: 64 additions & 0 deletions docs/adr/0080-enquetes-en-cours.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# ADR 0080 — Enquêtes en cours : un indice acheté reste lisible

- **Statut** : Proposé
- **Portée** : écran de la table (I-09) et feuille des indices (I-12) de la PWA
- **Complète** : [ADR 0051](0051-indices-a-la-carte.md) (indices à la carte), qui ne dit pas où se relit un indice déjà payé

## Contexte

L’[ADR 0051](0051-indices-a-la-carte.md) vend trois indices par carte à trouver : silhouette, définition, sens littéral. La feuille des indices ne montre qu’une carte à la fois, celle que l’App juge la plus utile. Dès qu’elle passe à une autre carte, ce qui a été acheté pour la première ne se lit plus nulle part : jusqu’à 28 gouttes perdues de vue par carte.

L’[ADR 0038](0038-indices-a-prix-croissant-et-format-des-jalons.md) promettait qu’« un niveau acquis reste lisible ». L’ADR 0051 ne le redit pas et l’App ne le garantit plus. Le besoin a été retenu par le propriétaire sur la page de travail [pistes de rétention](../pistes-retention.html#enquetes-titre).

## Décision

### Une enquête

- Une **enquête** est une carte à trouver dont le joueur a acheté au moins un indice. Elle dure jusqu’à la découverte du mot.
- Une enquête ne dépend pas de la réserve : elle reste visible même quand le mot ne peut plus se former avec les briques du joueur.

### Où elle se lit

- Sous la table de fusion, un panneau « Enquêtes en cours » liste les enquêtes par numéro de carte croissant, une ligne repliée par enquête : « N° 003 · Silhouette, définition », avec en aperçu le dernier texte acheté.
- Dépliée, une enquête montre la silhouette, la définition et le sens littéral **achetés**, et rien d’autre.
- Au-delà de trois enquêtes, les suivantes se déplient d’un bouton.
- Le panneau ne vend rien : la feuille des indices reste le seul endroit où l’on achète.

### Ce qui ne se voit jamais

- Ni le mot, ni ses lettres, ni ses briques, ni sa langue, ni sa rareté, ni s’il se forme avec la réserve ([ADR 0051](0051-indices-a-la-carte.md)).
- Jamais un mot légendaire ([ADR 0043](0043-legendaires-chance-fixe-hors-garanties-et-secretes.md)), jamais une carte d’un fascicule verrouillé ([ADR 0069](0069-deblocage-progressif-des-fascicules.md)).

### Sans règle nouvelle

La PWA relit les indices obtenus que le serveur envoie déjà dans l’état. Aucune table, aucune commande, aucun contrat ne change.

## Options envisagées

### Rouvrir la feuille des indices sur une carte choisie

Un sélecteur de carte dans la feuille. Écartée : il faudrait choisir parmi des silhouettes, donc montrer la liste des cartes à trouver, ce que l’ADR 0051 évite.

### Montrer les enquêtes en tête de la feuille de réserve

Elles seraient sous les yeux au moment de choisir les briques. Écartée pour l’instant : la modale de réserve porte déjà la petite table, la consigne et les filtres. À reprendre si le panneau sous la table ne suffit pas.

### Relire les indices dans le codex

Sur la carte en silhouette. Écartée : le joueur cherche quand il est à la table, pas dans le codex, et la carte en silhouette ne doit rien montrer gratuitement.

## Conséquences

### Positives

- Un indice payé ne se perd plus : la promesse de l’ADR 0038 est tenue, sans règle nouvelle.
- Le joueur a des pistes en cours à poursuivre d’une séance à l’autre.

### Négatives

- Un panneau de plus sur l’écran de la table, qui allonge la page sur mobile.

## Critères de réévaluation

- Le panneau reste replié ou ignoré : le déplacer dans la feuille de réserve.
- Les joueurs accumulent plus de dix enquêtes : regrouper par fascicule.
67 changes: 67 additions & 0 deletions docs/adr/0081-memoire-des-essais.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# ADR 0081 — Mémoire des essais : les briques déjà essayées passent en fin de réserve

- **Statut** : Proposé
- **Remplace partiellement** : [ADR 0027](0027-catalogue-statique-et-donnees-joueur.md), pour la phrase « les propositions de fusion ne sont jamais stockées » : un échec ou un « presque » se note désormais, sans issue ni date, jusqu’à la parution suivante. Le reste de l’ADR 0027 reste en vigueur.
- **Complète** : [ADR 0010](0010-observabilite-et-vie-privee.md) (ce qui est stocké), [ADR 0033](0033-gestes-de-la-table-de-fusion.md) (réserve et table)

## Contexte

Se tromper ne coûte rien, mais rien ne garde la trace des essais déjà faits. Rosette compte 96 paires possibles pour 47 mots, Routes des mots 450 paires pour 96 mots. Passé une vingtaine de briques, le joueur oublie ses échecs et refait les mêmes essais en boucle. Le besoin a été retenu par le propriétaire sur la page de travail [pistes de rétention](../pistes-retention.html#memoire-titre), avec l’oubli à chaque parution.

Or l’ADR 0027 et le [modèle de données](../modele-donnees.md#7-données-du-joueur) disent que les propositions de fusion ne sont jamais stockées. Une mémoire tenue par le seul appareil ne suivrait ni un compte sur un autre appareil ([ADR 0070](0070-comptes-facultatifs-par-lien-et-code-e-mail.md)) ni une réinstallation.

## Décision

### Ce que voit le joueur

- Dès qu’une brique est posée sur la table et qu’une case reste libre, la réserve range en fin de liste les briques déjà essayées **avec elle, dans cet ordre de cases**, sous l’intertitre « Déjà essayées avec géo- · 3 ».
- Leur ligne de sens dit pourquoi : « aucune recette », « presque : inversez » ou « au codex ».
- Le gris : fond Sable, libellé en Encre secondaire, sans ombre. Une brique grisée **reste jouable** : ce n’est ni l’état désactivé ni l’état épuisé.
- Une paire jamais essayée ne bouge pas : les autres briques gardent l’ordre habituel, sans tri ni compteur. Retirer la brique ou en poser une autre recalcule la liste ; les briques glissent vers leur place en 240 ms, sans animation en mouvement réduit.

### Ce que garde le serveur

- Une table `essai` : le joueur, la brique de gauche, la brique de droite, et le dernier fascicule paru au moment de l’essai. **Ni issue, ni date, ni texte du catalogue.**
- Le serveur l’écrit dans la transaction de la commande `fusion`, pour un échec ou un « presque » seulement, et seulement si le joueur connaît les deux briques. Sans ligne `commande` ni changement de `version_etat` : rejoué, l’essai ne fait rien.
- **3 000 lignes au plus** par joueur ; au-delà, un essai n’est plus noté.
- Un mot déjà au codex n’a besoin d’aucune ligne : le client le déduit de la règle de fusion.
- L’état du joueur porte la liste des paires. La trace suit le compte sur tous ses appareils, entre dans l’export et part avec la partie.

### L’oubli à chaque parution

À la parution d’un fascicule, **toutes** les lignes jugées sous un fascicule plus ancien s’oublient en bloc : elles ne se lisent plus, et la prochaine écriture les efface. De vieilles paires peuvent devenir des mots : 31 recettes de Routes des mots réunissent deux briques déjà parues. Une purge paire par paire désignerait les familles que prolonge le nouveau fascicule.

## Options envisagées

### Une mémoire locale à l’appareil

Aucune donnée de plus côté serveur. Écartée : elle se perd à la réinstallation et ne suit pas un compte sur un autre appareil.

### Garder l’issue et la date de chaque essai

Elles serviraient la télémétrie. Écartée : rien dans l’affichage ne les demande, et l’ADR 0010 limite ce qui est gardé à ce qui sert le joueur.

### La réserve en tableau préfixes × suffixes, ou une annonce « déjà tentée »

Première version de la piste. Écartée par le propriétaire : un tableau devient illisible passé une vingtaine de briques, et une annonce après coup n’évite pas l’essai.

### Oublier paire par paire les seules paires devenues des mots

Moins d’oubli. Écartée : l’oubli ciblé désignerait les familles du nouveau fascicule.

## Conséquences

### Positives

- Le joueur ne refait plus les mêmes essais, sans que rien ne lui révèle une paire qu’il n’a pas essayée.
- La trace est tenue par le serveur, comme le reste de la partie.

### Négatives

- Une table de plus, jusqu’à 3 000 lignes par joueur.
- À chaque parution, les essais déjà faits redeviennent neutres.

## Critères de réévaluation

- La mesure « tentatives avant une découverte » ne baisse pas : revoir la présentation.
- Des joueurs atteignent le plafond : le relever ou oublier les plus anciennes.
67 changes: 67 additions & 0 deletions docs/adr/0082-quetes-de-collection-par-fascicule.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# ADR 0082 — Quêtes de collection par fascicule

- **Statut** : Proposé
- **Complète** : [ADR 0045](0045-quetes-du-jour-carte-de-lecteur-et-quetes-au-long-cours.md) (une condition fermée de plus, au niveau du fascicule), [ADR 0042](0042-page-quetes-et-recompenses-a-recuperer.md) (un bloc de plus dans l’onglet « Fascicules »)

## Contexte

Une fois ses jalons atteints, rien ne pousse le joueur à **terminer** un fascicule. Il lui faut un objectif lisible et fini : « tous les préfixes », « tous les suffixes », « tous les mots communs ». Une quête « ligne du codex complétée » a été écartée, car la ligne dépend de la largeur de l’écran.

Le besoin initial parlait de « toutes les cartes de difficulté X ». Or la difficulté n’est jamais affichée ([ADR 0047](0047-un-tiers-facile-un-tiers-moyen-un-tiers-difficile.md)), et les fascicules parus n’ont que 0 à 2 mots difficiles. La rareté des mots, elle, est affichée ([ADR 0040](0040-rarete-des-mots.md)) et donne des quêtes jouables : de 19 à 56 mots communs, de 14 à 37 peu communs, 3 ou 4 rares quand un fascicule en a assez. Le propriétaire a retenu la rareté.

## Décision

### Cinq critères, une liste fermée

| Critère | Membres | Récompense par défaut |
|---|---|---|
| Tous les préfixes | les préfixes du fascicule, reprises comprises | 20 gouttes d’encre, 1 sablier |
| Tous les suffixes | les suffixes du fascicule, reprises comprises | 20 gouttes d’encre, 1 sablier |
| Tous les mots communs | ses mots résultats de rareté commune | 20 gouttes d’encre |
| Tous les mots peu communs | ses mots de rareté peu commune | 30 gouttes d’encre, 1 sablier |
| Tous les mots rares | ses mots de rareté rare | 40 gouttes d’encre, 1 sablier |

- Un fascicule déclare ses quêtes de collection dans le catalogue, chacune avec un identifiant de palier, son critère et sa récompense. Un critère au plus une fois par fascicule.
- Les **membres** se calculent à la compilation : jamais une brique légendaire, jamais un mot légendaire ni un mot qui en exige une ([ADR 0043](0043-legendaires-chance-fixe-hors-garanties-et-secretes.md)). Une quête de moins de **3 membres** n’est pas déclarée.
- La rareté d’un mot est celle de l’[ADR 0040](0040-rarete-des-mots.md) : la plus haute rareté des briques de sa recette la plus accessible.

### Progression et récompense

- Le serveur compte les membres au codex du joueur et ne renvoie que les quêtes des fascicules **débloqués** : un fascicule verrouillé n’expose aucun total ([ADR 0069](0069-deblocage-progressif-des-fascicules.md)).
- Une quête complète attend que le joueur la récupère, comme un palier ([ADR 0042](0042-page-quetes-et-recompenses-a-recuperer.md), [ADR 0045](0045-quetes-du-jour-carte-de-lecteur-et-quetes-au-long-cours.md)) : une commande idempotente, une seule fois, refusée tant que la quête est incomplète ou le fascicule verrouillé.
- Aucune liste des cartes manquantes : la quête dit combien, jamais lesquelles.

### Affichage

Dans l’onglet « Fascicules » de la page Quêtes, un bloc « Collection » sous les jalons de chaque fascicule débloqué : l’intitulé, « 4 / 6 », la jauge et la récompense annoncée d’avance. Une quête à récupérer compte dans la pastille de l’onglet.

## Options envisagées

### Toutes les cartes d’une difficulté

Demandé au départ. Écartée : la difficulté n’est jamais affichée (ADR 0047), et elle serait presque vide.

### Une ligne du codex complétée

Écartée : la ligne dépend de la largeur de l’écran.

### Calculer les membres dans l’App

Pas de champ de plus dans le catalogue. Écartée : la règle de rareté et l’exclusion des légendaires vivraient en deux endroits, et le validateur ne pourrait pas refuser une quête trop petite.

## Conséquences

### Positives

- Un objectif fini par fascicule, compréhensible sans explication.
- Aucune table nouvelle : la récupération réutilise celle des paliers.

### Négatives

- Les mots rares avancent lentement, puisqu’il faut plusieurs exemplaires d’une même brique rare : les récompenses sont à simuler avant de publier.
- Trois quêtes trop petites sont écartées des fascicules actuels : mots rares de Rosette et de Boustrophédon, mots communs d’Ogham.

## Critères de réévaluation

- Une quête n’est presque jamais terminée : revoir sa récompense ou la retirer.
- Les joueurs demandent la liste des manquantes : à trancher contre l’ADR 0051, qui vend les indices.
Loading