Le geste central
Imaginons un instant qu'un citoyen, une juriste ou une magistrate ouvre Visual Studio Code, crée un nouveau projet C#, et ajoute une dépendance NuGet appelée Law.France2026.Etalab.Dsl. Imaginons que cette dépendance soit le droit français contemporain, typé article par article, alinéa par alinéa, mesure par mesure, par les juristes d'Etalab pour la DINUM. Imaginons que la même personne ajoute une seconde dépendance, Commons.France2026.LaQuadrature.Dsl — la même réalité juridique typée selon les jugements politiques de La Quadrature du Net sur les biens communs. Imaginons enfin qu'elle écrive trois lignes de C# pour décrire le cas qu'elle veut analyser, qu'elle lance dotnet build, et qu'elle obtienne, en moins de deux secondes, un retour exhaustif : quels articles s'appliquent, quelles procédures sont requises, quelles divergences existent entre les deux cadres choisis, et quels recours sont activables.
C'est tout. Le geste central du projet est là. Tout le reste — l'architecture en couches, les méta-générateurs, les pattern Hexagonal, les FQN typés, les analyzers Roslyn, les CodeFixers, le Quality Gate juridique, la signature META(Ex × Ty), les douze ships de la roadmap — découle de la volonté de rendre ce geste possible, praticable et résistant à la critique. La suite de cette série explique comment, et surtout pourquoi.
Ce que le projet n'est pas
Avant de dire ce qu'est le projet, il est plus rapide de dire ce qu'il n'est pas. Et par où on serait tenté de passer si on lisait le titre trop vite.
Le projet n'est pas une tentative d'automatiser la décision juridique. Il ne propose pas que le compilateur remplace le juge, ni que l'algorithme remplace le législateur, ni que le formulaire numérique remplace la consultation d'un avocat. Il n'a aucune ambition de retirer l'humain du circuit. C'est une distinction philosophique précise, pas une posture de communication, et la suite de cette série passera plusieurs centaines de paragraphes à la défendre. Le projet est dans la lignée intellectuelle de la grammaire générative chomskyenne (1957) — qui décrit la compétence d'un locuteur sans jamais prétendre dicter sa performance — et résolument pas dans la lignée de Cybersyn (1971-1973), qui prétendait régler en temps réel l'économie chilienne par une boucle de rétroaction algorithmique unique. Cybersyn générait un cadre unique et y enfermait tous les acteurs. Ce projet génère autant de cadres qu'il y a de situations distinctes, et laisse les acteurs choisir lequel utiliser, lequel forker, lequel contester.
Le projet n'est pas non plus une plateforme de legal tech qui voudrait vendre à des cabinets d'avocats un service d'analyse documentaire dopé au machine learning. Il n'utilise pas de modèle de langue, pas de réseau de neurones, pas de prédiction statistique sur la jurisprudence. Quand le compilateur dit « vous avez droit au RSA majoré via l'article L262-9 », ce n'est pas une probabilité sortie d'un fine-tuning sur Légifrance — c'est une déduction symbolique stricte sur des types C# vérifiables, refutables, naviguables à F12. La différence n'est pas cosmétique. Un LLM hallucine des articles qui n'existent pas ; un compilateur typé refuse de compiler du code qui référence un article inexistant.
Le projet n'est pas enfin une infrastructure étatique qu'il faudrait attendre que l'État construise. Toute la pile technique est libre — dotnet, Roslyn, MSBuild, NuGet sont MIT/Apache, le runtime C# est ECMA-334, l'écosystème est aussi auto-hébergeable que Linux. N'importe quelle association, université ou collectif peut publier son propre cadre Law.France2026.SonNom.Dsl à côté de celui d'Etalab, signé cryptographiquement, distribué via NuGet, et utilisé par n'importe qui. Le projet ne requiert l'autorisation de personne pour exister. Il requiert seulement que quelqu'un le construise.
Ce que le projet est
Le projet est un méta-générateur de cadres de travail spécifiques pour le droit, accompagné de l'infrastructure logicielle complète qui rend ces cadres utilisables au compile-time par tous les acteurs concernés.
Décomposons ce qu'il y a dans cette phrase, parce que chacun de ses mots porte une décision philosophique précise.
Méta-générateur : on ne décrit pas un cadre juridique — on décrit comment générer des cadres juridiques. Le composant central, qu'on appellera tout au long de cette série LawDslGenerator, est lui-même un générateur de générateurs : on lui donne en entrée la définition d'un cadre (sa juridiction, son vocabulaire, ses contraintes structurelles) et il produit en sortie le cadre lui-même sous forme de code C# compilable, avec ses attributs, ses analyzers, ses CodeFixers, ses diagnostics. Pour produire un nouveau cadre concurrent, il suffit d'écrire une nouvelle définition — le générateur fait le reste. C'est la même logique que celle qui permet à deux distributions Linux différentes de partager le même noyau : le noyau est stable, les distributions sont multiples, et chacune est spécifique à son public.
Cadres de travail spécifiques : aucun cadre ne prétend à l'universalité. Chaque cadre est indexé par la signature META(Ex × Ty) — un espace géopolitique précis, une tradition juridique précise, une époque précise, un auteur précis. Law.France2026.Etalab est un cadre, pas le cadre. Law.France1995.Erard est un autre cadre, qui couvre une autre époque et porte un autre auteur. Law.RomeAntique.JulienPaul.IUVS est encore un autre cadre, qui couvre une autre tradition (le droit romain classique) et un autre auteur (le jurisconsulte Julius Paulus, dans une reconstruction fidèle aux Digeste). Chaque cadre vient avec ses spécifications propres : son lexique d'attributs, ses procédures démocratiques requises, sa hiérarchie des normes, ses contraintes de cohérence interne. Et chacun coexiste avec ses concurrents, sans qu'aucun ne puisse prétendre à la souveraineté absolue. La pluralité est constitutive, pas accidentelle.
Pour le droit : le projet est calibré sur le droit, pas sur n'importe quoi de typable. Il existe d'autres projets qui appliquent le même geste à d'autres domaines — le Common.Climate.Dsl du Ship 9 visera à typer les contraintes climatiques pour que les lois pro-pétrole deviennent des compile errors, et l'écosystème Ops DSL (déjà publié dans cette même série de blog) fait la même chose pour les opérations logicielles. Mais cette série-ci traite du droit, parce que le droit est le domaine où l'asymétrie d'accès entre producteurs et destinataires est la plus brutale, où l'opacité est la plus coûteuse politiquement, et où l'enjeu démocratique est le plus immédiat.
Accompagné de l'infrastructure logicielle complète : le générateur seul ne suffit pas. Il faut le packaging NuGet pour distribuer les cadres entre auteurs, le versioning sémantique pour gérer leurs évolutions, les analyzers Roslyn pour donner un retour interactif dans l'IDE, les CodeFixers pour proposer des corrections actionnables, le Quality Gate pour mesurer la couverture juridique, les tests unitaires et d'intégration pour garantir que les cadres font ce qu'ils prétendent faire, l'observabilité OpenTelemetry anonymisée pour mesurer leur usage sans surveiller leurs utilisateurs, et la signature cryptographique X.509 pour que les attestations soient juridiquement opposables. Tout ça existe déjà dans l'écosystème dotnet. Le projet ne réinvente rien. Il applique à un domaine inattendu (le droit) une boîte à outils standardisée depuis vingt ans dans le génie logiciel sérieux. C'est précisément ce qui le rend faisable.
Au compile-time : le moment où le compilateur agit est crucial. Les vérifications n'arrivent pas en production, ni à l'exécution, ni dans un cloud distant — elles arrivent quand un humain tape du code dans son éditeur. C'est ce qui permet le retour interactif (la juriste voit le soulignement rouge avant même de sauvegarder), la reproductibilité (le même code donne les mêmes diagnostics partout, deux ans plus tard), la localité (aucune donnée n'est envoyée nulle part) et la valeur juridique (l'attestation cryptographique signée du build est opposable). C'est aussi ce qui distingue cette approche d'un service en ligne : il n'y a pas de service à pirater, pas de base centrale à corrompre, pas de tiers de confiance à acheter.
Par tous les acteurs concernés : citoyens, juristes, magistrates, avocates, législateurs, fonctionnaires, journalistes, militants, chercheurs, étudiants en droit. Le sixième régime d'usage — celui où le citoyen lui-même type son cas dans MyCases/MyCase.cs et reçoit du compilateur un guide vers ses droits — est le plus émancipateur, et il sera traité substantiellement en Partie 12. Mais il ne fonctionne que parce que l'infrastructure technique est conçue pour être manipulée par tous, pas réservée à une élite professionnelle. Lex Studio (Partie 15) est l'extension de cette ambition côté juriste : une distribution VSCodium qui masque le C# derrière une UI orientée droit, sur le même modèle que RStudio masque R derrière une UI orientée statistique. Trivial techniquement, transformateur politiquement.
Pourquoi maintenant
La conjonction d'éléments qui rend ce projet possible aujourd'hui n'existait pas il y a dix ans. Les générateurs de code Roslyn (IIncrementalGenerator) sont matures depuis 2021. Les analyzers C# sont performants au point de tourner sans latence perceptible dans VS Code. NuGet supporte la signature cryptographique, les lockfiles, les advisories de sécurité depuis aussi longtemps. L'écosystème dotnet est entièrement portable et auto-hébergeable. Catala (le projet français de typage du droit fiscal porté par INRIA et la DGFiP) a fait, en 2022, la preuve empirique qu'on pouvait typer une portion du droit français et la faire calculer correctement — ce qui retire l'argument « c'est trop compliqué, ça ne marchera jamais » du débat. Et l'urgence démocratique — la défiance citoyenne envers les institutions, le non-recours massif aux aides sociales, l'opacité des décisions législatives, la concentration du pouvoir interprétatif — n'a jamais été aussi visible.
Il n'y a aucune raison technique d'attendre. Il y a des raisons politiques d'avancer.
Pourquoi ce n'est pas Cybersyn (la précision philosophique qu'il faut faire avant tout le reste)
Toute personne intellectuellement sérieuse qui entend parler de « compilateur pour le droit » va d'abord penser à Cybersyn. C'est inévitable, et c'est sain. Cybersyn (1971-1973) est l'expérience chilienne de Stafford Beer et Salvador Allende qui voulait gérer en temps réel l'économie d'un pays par un système de boucles de rétroaction cybernétique. C'est la référence canonique de ce qu'il ne faut pas faire quand on prétend mettre de la machine dans du social. Et c'est précisément la confusion qu'il faut éviter dès le premier paragraphe, parce que sinon toute la suite tombe à plat.
La différence entre Cybersyn et ce projet n'est pas une question de degré (« on en met un peu moins », « on est plus humble »). C'est une différence de nature, identifiée par Chomsky en 1957 dans une autre discipline. Quand Chomsky décrit la grammaire générative d'une langue, il distingue compétence (la connaissance intériorisée des règles, finie, formalisable, transmissible) et performance (l'acte de parole effectif, infini, créatif, irréductible à un algorithme). La grammaire formelle décrit la première sans toucher à la seconde. Un linguiste générativiste n'a jamais prétendu écrire les phrases à la place des locuteurs. Il a décrit le système qui rend ces phrases possibles. Et c'est ce qui rend la grammaire utile à tout le monde : aux apprenants qui veulent maîtriser la langue, aux écrivains qui veulent en jouer, aux logiciens qui veulent en formaliser des fragments, aux linguistes qui veulent en mesurer les variations dans le temps.
Le projet métacratique outillé fait exactement la même chose pour le droit. Il décrit la compétence juridique — les règles formelles de production d'énoncés juridiquement bien formés dans un cadre (Espace × Temps × Auteur) donné — sans jamais toucher à la performance. La performance reste entièrement aux acteurs humains : le citoyen qui type son cas, le juge qui rend sa décision, le législateur qui propose sa loi. Le compilateur ne dit pas « voici ce qu'il faut faire » ; il dit « voici les énoncés bien formés dans le cadre que vous avez choisi, et voici ceux qui sont mal formés selon ses spécifications ». La décision reste humaine, irréductible, contestable. Mais elle est désormais outillée par un retour formel immédiat qui, sans elle, n'existait pas.
Cybersyn faisait l'inverse : il automatisait la performance. Il prenait des données économiques en temps réel et il prenait la décision d'allouer telle ressource à tel secteur, avec une boucle de rétroaction qui ajustait l'allocation à la mesure suivante. Aucun acteur humain n'était dans le circuit décisionnel — l'humain donnait des objectifs, la machine optimisait. C'était une automatisation, pas une génération. Et c'est exactement ce que ce projet refuse, point par point, dans chacun de ses choix architecturaux.
Cette distinction sera reprise et approfondie en Partie 3 — Filiation intellectuelle, où Chomsky est crédité comme l'ancêtre philosophique direct du projet, et en Partie 17 — Méta-critique, où le risque foucaldien de réification (et plus précisément de monoculture des cadres, qui est le vrai nom de ce risque) est traité honnêtement comme une limite à surveiller en permanence.
Le mot spécifique est le mot le plus important de cette série
Si vous deviez retenir un seul mot de cette série, ce serait spécifique. Tout est spécifique. Aucune généralité abstraite ne descend du ciel pour s'imposer aux acteurs. Chaque cadre Law.${Space}${Time}.${Author} est spécifique à sa juridiction, à son époque, à son auteur. Chaque méta-générateur produit des cadres spécifiques, jamais un cadre universel. Chaque analyzer émet des diagnostics spécifiques au cadre dans lequel il vit. Chaque CodeFixer propose des corrections spécifiques au contexte dans lequel l'erreur a été détectée. Chaque cas citoyen est typé dans un cadre citoyen spécifique, qui couple à un cadre juridique spécifique, qui réfère à un cadre politique sur les biens spécifique. La signature META(Ex × Ty) n'est pas une métaphore — c'est littéralement l'index de cette spécificité, formalisé dans le système de types C#.
Cette insistance sur la spécificité n'est pas une coquetterie philosophique. C'est la garantie technique qu'aucun cadre ne peut prétendre remplacer la délibération politique. Un cadre unique imposé aurait cette prétention par construction, parce qu'il dirait « voici la vérité juridique » sans qualificatif. Un cadre Law.France2026.Etalab ne le peut pas, parce que son nom dit lui-même qu'il est l'opinion d'Etalab pour la France de 2026, et que d'autres cadres concurrents — Law.France2026.LaQuadrature, Law.France2026.CGT, Law.France2026.InstitutMontaigne — vont nécessairement coexister et se contredire. Le ConsensusScorer (Partie 12, régime 5) exploite précisément cette pluralité : pour chaque article, il calcule combien de cadres concurrents le valident et combien le contredisent, et il publie le résultat. Le débat public devient alors typé, parce que les divergences sont explicites, traçables, adressables.
Voilà ce qui rend le projet politiquement intéressant. Pas le fait de typer le droit. Ce fait technique a déjà été démontré par Catala. Ce qui le rend intéressant, c'est de typer le droit de manière à rendre la pluralité des interprétations native, opérationnelle et démocratiquement actionnable.
La suite de la série
Cette première partie a posé le geste central et la posture philosophique. La suite entre dans la matière.
La Partie 2 formalise la convention de nommage ${DslName}.${Space}${Time}.${Author}.Dsl qui permet de désigner sans ambiguïté chaque cadre, et explique pourquoi le code C# est en anglais et les commentaires en français pour cette série. La Partie 3 développe la filiation intellectuelle en engagements substantiels — Chomsky, Whitehead, Roussel, Sowa, Meyer, Catala, plus cinq additionnelles. La Partie 4 formalise la signature META(Ex × Ty) comme index des cadres et explique pourquoi LawDslGenerator est paramétré par toute la signature mais ne s'active que quand un axe modifie le vocabulaire. La Partie 5 déploie l'architecture en couches complète, du M3 racine au M0 cas citoyen.
À partir de la Partie 6, on entre dans le code des DSLs racines. Et à la Partie 10, le moment de vérité : la trace exécutoire du compile error politique sur la décision Conseil constitutionnel n°95-65 du 11 janvier 1995 — le cas Dumas — depuis l'ouverture du csproj jusqu'au soulignement rouge dans Visual Studio Code.
Pour aller plus loin
- Partie 2 — Convention de nommage (suivante dans la série)
- Hub de la série Métacratie
- Série Typed Specs — pourquoi tout est typable et pourquoi les chaînes magiques sont le mal
- Série Ops DSL Ecosystem — le même pattern appliqué à l'opérationnel
- Parcours à 18 ans avec John Sowa — origine personnelle du model-driven engineering