Modélisation du domaine
Construisez et affinez activement le modèle de domaine du projet au fur et à mesure de la conception. Il s'agit d'une discipline active : remettre en question les termes, inventer des scénarios limites, et rédiger le glossaire et les décisions dès qu'ils se cristallisent. (Lire simplement GLOSSAIRE.md pour le vocabulaire n'est pas cette compétence : c'est une habitude en une ligne que n'importe quelle compétence peut avoir. Cette compétence est pour quand vous modifiez le modèle, pas seulement quand vous le consommez.)
Structure des fichiers
La plupart des dépôts ont un contexte unique :
/
├── GLOSSAIRE.md
├── docs/
│ └── adr/
│ ├── 0001-commandes-evenementielles.md
│ └── 0002-postgres-pour-modele-ecriture.md
└── src/
Si un GLOSSAIRE-MAPPE.md existe à la racine, le dépôt a plusieurs contextes. La mappe pointe vers l'emplacement de chacun :
/
├── GLOSSAIRE-MAPPE.md
├── docs/
│ └── adr/ ← décisions à l'échelle du système
├── src/
│ ├── commandes/
│ │ ├── GLOSSAIRE.md
│ │ └── docs/adr/ ← décisions spécifiques au contexte
│ └── facturation/
│ ├── GLOSSAIRE.md
│ └── docs/adr/
Créez les fichiers paresseusement : seulement lorsque vous avez quelque chose à écrire. Si aucun GLOSSAIRE.md n'existe, créez-en un lorsque le premier terme est résolu. Si docs/adr/ n'existe pas, créez-le lorsque la première ADR est nécessaire.
Pendant la session
Confronter avec le glossaire
Lorsque l'utilisateur utilise un terme qui entre en conflit avec le langage existant dans GLOSSAIRE.md, signalez-le immédiatement. « Votre glossaire définit 'annulation' comme X, mais vous semblez vouloir dire Y. Qu'en est-il ? »
Affiner le langage flou
Lorsque l'utilisateur utilise des termes vagues ou surchargés, proposez un terme canonique précis. « Vous dites 'compte' : voulez-vous dire le Client ou l'Utilisateur ? Ce sont des choses différentes. »
Discuter de scénarios concrets
Lorsque les relations du domaine sont discutées, testez-les avec des scénarios spécifiques. Inventez des scénarios qui sondent les cas limites et obligent l'utilisateur à être précis sur les frontières entre les concepts.
Recouper avec le code
Lorsque l'utilisateur dit comment quelque chose fonctionne, vérifiez si le code est d'accord. Si vous trouvez une contradiction, signalez-la : « Votre code annule des Commandes entières, mais vous venez de dire qu'une annulation partielle est possible. Qu'est-ce qui est correct ? »
Mettre à jour GLOSSAIRE.md en ligne
Lorsqu'un terme est résolu, mettez à jour GLOSSAIRE.md immédiatement. Ne les regroupez pas : capturez-les au fur et à mesure. Utilisez le format dans GLOSSAIRE-FORMAT.md.
GLOSSAIRE.md doit être totalement dépourvu de détails d'implémentation. Ne traitez pas GLOSSAIRE.md comme une spécification, un bloc-notes ou un dépôt pour les décisions d'implémentation. C'est un glossaire et rien d'autre.
Proposer des ADR avec parcimonie
Ne proposez de créer une ADR que lorsque les trois conditions suivantes sont réunies :
- Difficile à inverser : le coût de changer d'avis plus tard est significatif
- Surprenant sans contexte : un futur lecteur se demandera « pourquoi ont-ils fait cela ? »
- Résultat d'un vrai compromis : il y avait de véritables alternatives et vous en avez choisi une pour des raisons spécifiques
Si l'une des trois conditions manque, sautez l'ADR. Utilisez le format dans ADR-FORMAT.md.