ADR 009
StatutStatus ActifActive
DateDate 2026-05-28
DécideursDecision makers Design System Lead, Tech Lead

ADR-009 — Choix de Storybook pour la documentation des composants

Date : 2026-05-28 Statut : ✅ Actif Décideurs : Design System Lead, Tech Lead Type: contract Chemin logique: decisions/ADR-009-storybook.md Lecture avant: AGENTS.md, DESIGN.md, .claude/rules/development.md, decisions/ADR-002-lit-web-components.md Relations: .claude/rules/development.md, decisions/ADR-002-lit-web-components.md, decisions/ADR-006-chromatic-tests-visuels.md, decisions/ADR-007-axe-core-accessibilite.md


Contexte

Un système de design sans environnement de prévisualisation isolé a deux problèmes structurels : les composants ne peuvent être testés qu'en les intégrant dans une application réelle, et la documentation est séparée du composant qu'elle décrit.

Pour un système agentique, un troisième problème s'ajoute : les agents ont besoin d'un catalogue structuré de composants avec leurs variantes, états, et propriétés accessibles sous une forme standardisée. Une documentation narrative dans un wiki n'est pas analysable par machine.

La question posée était :

Comment fournir simultanément un environnement de développement isolé, une documentation vivante synchronisée avec le code, et un catalogue structuré accessible aux agents ?


Décision

Adoption de Storybook comme plateforme de documentation et de canvas de développement.

Chaque composant est documenté via des stories — des fichiers .stories.js qui décrivent chaque variante et état du composant de manière isolée :

// button.stories.js
export default { title: 'Components/Button', component: 'ds-button' };
export const Primary = { args: { variant: 'primary', label: 'Soumettre' } };
export const Critical = { args: { variant: 'critical', label: 'Supprimer définitivement' } };

Storybook sert trois rôles simultanés dans le système :

1. Canvas de développement — chaque composant est développé et testé en isolation, sans dépendance à une application hôte 2. Documentation vivante — les stories sont la source de vérité du comportement réel des composants, toujours synchronisées avec le code 3. Pont vers Chromatic — Storybook est l'entrée du pipeline Chromatic (ADR-006) : chaque story est automatiquement capturée pour les tests de régression visuelle


Alternatives rejetées

AlternativeRaison du rejet
Documentation statique (Markdown + MDX seul)Décrit le composant sans le montrer. Un développeur doit intégrer le composant dans son projet pour voir s'il se comporte comme documenté. Aucun lien entre la documentation et le code exécutable.
StyleguidistSimilaire à Storybook mais moins adopté, moins d'intégrations (pas de Chromatic natif, pas d'addon axe-core). L'écosystème Storybook est significativement plus riche pour les Web Components.
Figma comme seule source de prévisualisationFigma montre le design, pas le composant réel. Un composant peut être visuellement conforme dans Figma et dysfonctionner dans le code. Storybook exécute le composant réel dans un navigateur.
Page de démo interneUne page HTML qui liste les composants. Non maintenable à l'échelle, pas de structure pour les variantes et états, pas d'intégration CI/CD, pas d'addon d'accessibilité.
Pas de documentation interactiveRejeté explicitement : un système de design sans canvas de prévisualisation force les équipes consommatrices à intégrer les composants à l'aveugle. Le taux d'erreur d'intégration est directement lié à la qualité de la documentation interactive.

Conséquences

Pour les développeurs :

règle de PR (.claude/rules/development.md)

Pour les agents IA :

les variantes documentées d'un composant en lisant le fichier .stories.js

aux propriétés déclarées dans le Web Component (static properties) — cohérence garantie

component.json — absence de story = composant non agent-ready (voir skill ai-component-metadata)

Pour Chromatic (ADR-006) :

pendant le développement, avant le commit

Pour les équipes consommatrices :

Coût accepté :

ne sont pas mises à jour en même temps que le composant


Incidents ou déclencheurs

Décision fondatrice. Storybook est le standard de facto pour les design systems basés sur des composants (GitHub, Shopify, Atlassian, IBM l'utilisent tous). L'intégration native avec Chromatic, axe-core et Web Components a confirmé le choix.

← ADR-008 ADR-010 →