ADR-006 — Doc métier co-localisée in-app¶
| Statut | Accepted |
| Date | 07/05/2026 (S19 mid-week) |
| Décideurs | Romain BAZIL, Nicolas Léonard |
| Origine | Synchro S19 mid-week §6 |
Contexte¶
L'archi de l'outil d'analyse devient dense. Romain : « je me souviens plus de ce que j'ai implémenté il y a 2 mois. » Si lui-même se perd dans son propre code, les AM, analystes et nouveaux contributeurs n'ont aucune chance.
Cas concret S19 : un "45 m²" préfilled dans la colonne Actuel, sans validation AM ni source visible. Personne ne sait expliquer pourquoi. Le workflow de pré-remplissage existe mais n'est documenté nulle part.
Trois options testées historiquement :
- Pas de doc → personne ne comprend, drift permanent
- Doc en
.mdséparé du code (ex. Notion, Confluence) → dérive du code, lue 1× et oubliée - Doc co-localisée in-app (popover sur la section concernée) → présentée au moment où la question se pose
Décision¶
Pour les règles de précédence, les workflows de calcul, et les modes de fonctionnement métier de l'outil d'analyse : doc co-localisée in-app, en popover sur chaque section concernée.
Mécanisme cible¶
- Sur chaque section / panneau de l'outil d'analyse : un bouton/icône "ℹ️" (ou hover tooltip) en haut à droite
- Au clic : panneau latéral ou popover qui explique :
- Quelles sont les sources consommées
- Quelles sont les règles de précédence appliquées
- Comment interpréter les conflits / la valeur retenue
- Le mode de calcul si applicable
Format de la doc¶
Markdown stocké dans le repo (project-analysis) co-localisé avec le composant ou centralisé dans un dossier docs/in-app/ à arbitrer. À cadrer avec Nicolas en S20.
Pour les contributeurs tech¶
Les conventions de code, les ADR et la doctrine restent dans ce wiki + dans CLAUDE.md. La doc in-app est uniquement la doc consommée dans l'usage (par AM, analyste, Romain qui revient sur son code).
Rationale¶
Pourquoi la co-localisation¶
- Capture passive d'utilité : l'AM consulte la doc quand il a la question, pas quand on lui demande
- Pas de drift : la doc vit dans le repo, donc si le code change sans toucher la doc, c'est visible (revue PR)
- Onboarding implicite : un nouvel AM apprend en utilisant l'outil
Pourquoi pas Notion¶
- Lue 1× et oubliée
- Pas de versioning lié au code
- Drift garanti à 6 mois
Pourquoi pas un README dans le repo¶
- Personne ne va le chercher quand il a un doute sur une UI
- Bon pour les contributeurs tech, pas pour les utilisateurs métier
Conséquences¶
Ce qui change¶
- Chaque section critique de l'outil d'analyse doit avoir un point de doc accessible in-app
- Convention à définir : où vivent les
.md(co-localisé component vs centralisédocs/in-app/) - Les premiers cas à documenter (priorité S20) :
- Règles de pré-fill de la colonne Actuel
- Hiérarchie de précédence par champ (ADR-003)
- Mode de calcul
estimate_value(méthodes + pondération) - Wording du bandeau "champs critiques manquants" + comment ça se calcule
Ce qu'il faut faire¶
- Convention technique : MDX in-app ? Markdown rendered en popover ? À cadrer en S20
- Pilote sur fiche consolidée (déjà chantier en cours, contexte naturel)
- Backport sur les autres sections critiques au fil de l'eau
Ce qu'il faut éviter¶
- Tout documenter : on ne documente que ce qui est non évident à partir de l'UI
- Doc qui répète le code : c'est de la doc métier, pas de la doc d'API
- Ouvrir un Notion en parallèle : on ré-ouvre la porte au drift
Alternatives écartées¶
- Doc Notion : drift garanti, pas de versioning lié au code
- README repo : pour les contributeurs tech, pas pour les utilisateurs in-context
- Pas de doc : c'est l'option actuelle, et le cas du "45 m² préfilled sans source" en montre les limites
- Bricks Docs system (Docusaurus) : projet en backlog côté Bricks Engineering, pas dispo à court terme. Quand il existera, il pourra cohabiter avec la doc in-app (Docusaurus = doc tech globale, in-app = doc métier ciblée)
Verbatims¶
« Je pense qu'il faudrait qu'on commence à documenter un petit peu in-app la façon dont ça fonctionne. Tu pourrais avoir en haut à droite de chaque section un contexte métier, quelles sont les règles, comment ça fonctionne. Je commence à être vraiment dense comme projet, et là, je me souviens plus de ce que j'ai implémenté il y a deux mois. » — Romain
« Ce qui est pas mal quand ça vit dans le produit, c'est que c'est au moment que tu te poses la question que tu as la réponse. » — Romain
« Pouvoir survoler et comprendre comment est-ce que le truc, il fonctionne. Est-ce qu'ils vont le lire dans le détail ? Peut-être pas, mais ça aurait été cool de repasser dessus et de dire : ok, c'est ça le mode de fonctionnement. Plus proche du produit, mieux dans le besoin. » — Nicolas
Voir aussi¶
- ADR-003 Hiérarchie de précédence (premier client de la doc in-app)
- ADR-004 Friction délibérée (le bandeau et le pop-up sont des points de doc en contexte)
- Doctrine — Philosophie §4 Capture passive
Sources¶
- Source migrée :
bricks-os/wiki/architecture/ADR-006-doc-in-app.md - Catalogue des sources legacy