La thèse
On peut générer, pour chaque situation (Espace × Temps × Auteur) distincte, un cadre juridique spécifique sous forme de code C# typé, le compiler avec Roslyn, et obtenir au compile-time une vérification de cohérence cross-DSL qui transforme l'écriture du droit, son audit, sa contestation et son usage par les destinataires. La signature META(Ex × Ty) n'est pas une métaphore — c'est littéralement un type, indexé par un espace géopolitique, une tradition juridique, une époque et un auteur. Chaque valeur concrète de cette signature désigne un cadre, avec son vocabulaire propre, ses spécifications propres, sa juridiction propre.
Le projet ne fait pas d'automatisation au sens Cybersyn. Il fait de la génération de cadres de travail spécifiques au sens chomskyen. La distinction est philosophique avant d'être technique : Cybersyn générait un cadre unique et prétendait y enfermer toute l'économie chilienne ; ce projet génère autant de cadres qu'il y a de situations, et laisse les acteurs choisir, forker, contester, amender. À l'intérieur de chaque cadre, le citoyen reste locuteur, le juge reste auteur, le législateur reste responsable. Le compilateur n'est pas leur oracle ; il est leur cadre de travail spécifique. Tout est spécifique. Aucune généralité abstraite ne descend du ciel.
Pourquoi cette série existe
Cette série est une production méta. Elle ne décrit pas un projet déjà construit ; elle décrit le projet qu'on pourrait construire si on prenait au sérieux deux choses : (1) que le droit est une production humaine, donc qu'il peut être typé, capturé, rendu réplicable au même titre que les mathématiques, la musique écrite ou le code source ; (2) que la pluralité des cadres juridiques concurrents est un bien, pas un défaut — et qu'une infrastructure technique peut rendre cette pluralité opérationnelle au lieu de la dissoudre dans un cadre unique étatique. Le plan d'origine fait 2 843 lignes ; cette série en est la mise en forme publiable, pensée pour qu'un philosophe, un juriste, un développeur, un militant, un fonctionnaire ou un journaliste puisse s'en saisir indépendamment des autres.
Je ne prétends pas avoir réalisé le projet. Je prétends avoir formalisé son architecture suffisamment pour qu'elle soit contestable point par point, et c'est tout l'objet de la publication. Les 18 parties qui suivent sont autant d'angles d'attaque pour la critique : la convention de nommage, la filiation intellectuelle, la signature META(Ex × Ty), l'architecture en couches, chaque DSL racine, le bridge inter-cadres, la trace exécutoire de bout en bout sur le cas Dumas 1995, la transposition du Quality Gate au texte de loi, les six régimes d'usage, le packaging NuGet, l'arsenal complet du génie logiciel appliqué au droit, Lex Studio comme distribution VSCodium pour juristes, la question méta-sociale du qui va générer les cadres, la méta-critique honnête (manques, beautés, limites), et la roadmap en douze ships.
Filiation — pourquoi le projet est déjà ancien
Le projet n'est pas une invention ex-nihilo. Il prolonge plusieurs traditions intellectuelles longues qui ont déjà rencontré l'idée centrale : qu'on peut générer des cadres de travail spécifiques pour des activités humaines vivantes (langage, raisonnement, mathématiques, littérature, droit), chaque cadre venant avec ses propres spécifications, et que les acteurs produisent à l'intérieur de leur cadre des œuvres infiniment variées sans jamais l'épuiser. Chomsky (1957, Syntactic Structures) a montré qu'une langue se décrit par sa grammaire spécifique, finie, formelle — et que les locuteurs y produisent un nombre infini d'énoncés. Whitehead et Russell (1910-1913, Principia Mathematica) ont fondé tout système de typage formel ; Whitehead seul (1929, Process and Reality) a apporté le contrepoint indispensable : la réalité change, donc tout cadre formel doit savoir qu'il est paramétré par un temps qui le déborde. Raymond Roussel (1914, Locus Solus) puis l'OuLiPo (1960-1970) ont prouvé pour la production littéraire que la spécificité du cadre est joyeuse — chaque texte oulipien est dans son cadre, jamais dans un cadre générique. John Sowa (rencontré par Stéphane à dix-huit ans) a inventé les graphes conceptuels, ancêtres directs du M3. Bertrand Meyer (1988, Object-Oriented Software Construction) a inventé le Design by Contract, ancêtre direct du pattern Guard qu'on utilise dans tous les analyzers. Catala (Merigoux et al., POPL 2022) a fait la preuve récente — empirique, vivante, française, en collaboration avec la DGFiP — que typer le droit est faisable et utile.
Ces filiations ne sont pas des décorations académiques. Ce sont des garanties épistémologiques que la génération de cadres spécifiques est une opération créatrice à part entière, pas une réduction de la créativité, pas une dérive technocratique. La Partie 3 — Filiation intellectuelle leur consacre un développement substantiel, à raison de trois à cinq paragraphes par auteur, parce qu'aucune note de bas de page elliptique ne suffirait à les honorer.
Les six régimes d'usage
Une fois qu'on type le droit comme du code, il devient mou au sens du génie logiciel : manipulable, testable, simulable, réfutable, forkable, replayable, comparable. Six régimes outillent producteurs et destinataires :
- Tests unitaires purs sur les détecteurs cross-DSL — moins de cent millisecondes par invariant juridique vérifié
- Tests d'intégration end-to-end sur des cas historiques réels (le smoke test cas Dumas 1995 du Ship 1)
- Simulations what-if — « et si on classait l'eau potable comme commun en France 2030 ? » en deux cents millisecondes, déterministe, reproductible, partageable
- Property-based testing sur les invariants politiques (la privatisation d'un commun sans procédure démocratique est toujours une violation, vérifié sur des milliers de cas générés)
- Comparaison multi-sources — le
ConsensusScorerexhibe les divergences entre cadres concurrents publiés par Etalab, LaQuadrature, syndicats, think tanks - Le citoyen comme auteur — la personne type son cas dans
MyCases/MyCase.cs, le compilateur la guide vers ses droits via des diagnostics typés (CIT001 : vous activez RSAMajored via l'article L262-9), pas via un chatbot LLM hallucinant
Le sixième régime est le plus émancipateur. Il transforme l'IDE en panneau de bord juridique personnel où chaque ampoule rouge correspond à un droit non-activé, et chaque Quick Fix l'active. Sans intermédiaire, sans tiers de confiance, sans frais. C'est la réponse pratique à la question méta-sociale « qui écrit ? » : les gens écrivent leur propre cas, et le compilateur écrit la jurisprudence applicable.
Distinction critique : Common vs Commons
Cette série utilise deux mots anglais qui ne sont jamais interchangeables dans le code, et dont le S final fait toute la différence. Common (sans S) est l'adjectif technique — la couche de types-symboles partagés (IAsset, ISpace, IPeriod, IProcedure), sans jugement de valeur. Commons (avec S) est le substantif politique au sens d'Ostrom, de Laval/Dardot, de Benkler — la couche du vocabulaire des biens communs (IAssetStatus, IBoundary, StatusKind { Commons, Public, Private, Contested, InTransition }), explicitement politique. La Partie 2 — Convention de nommage formalise la distinction et explique pourquoi le code C# est en anglais avec commentaires en français pour cette série.
Acte I — Les fondations
Partie 1 — Le projet : pourquoi un compilateur pour le droit Le projet ne fait pas d'automatisation : il fait de la génération de cadres juridiques spécifiques. Distinction Cybersyn/Chomsky. Position politique : ni technocratie ni artisanat, mais infrastructure démocratique outillée.
Partie 2 — Convention de nommage ${DslName}.${Space}${Time}.${Author}.Dsl
La convention stricte qui résout les incohérences de la première rédaction. Distinction Common/Commons. Politique linguistique : C# en anglais, commentaires en français par dérogation pour cette série. Mapping complet des renommages.
Partie 3 — Filiation intellectuelle Engagements substantiels sur Chomsky, Whitehead, Roussel, Sowa, Meyer, Catala — trois à cinq paragraphes par auteur. Plus cinq filiations additionnelles : Foucault sur Roussel, Latour sur le parlement des choses, Lessig sur Code is Law, Castoriadis sur l'autonomie, Supiot sur la gouvernance par les nombres comme critique salutaire.
Partie 4 — META(Ex × Ty) : la signature de type comme index des cadres
La signature formelle. Ex = (GeographicScope, LegalTradition), Ty = Temps. Pourquoi Law.DslGenerator est paramétré par toute la signature mais ne s'active que quand un axe modifie le vocabulaire d'attributs. Deux fréquences de regénération : Common (quotidien) et Law (annuel ou rare).
Partie 5 — Architecture en couches M3 → M2-meta → M2 racines → M2 méta-générateurs → M2 instances → M2 bridges → M0 cas concrets. Pattern Hexagonal pour les bridges. Diagramme arborescent complet.
Acte II — Les DSLs racines et leurs cadres
Partie 6 — Common.Dsl racine + CommonDslGenerator + instances
La racine technique partagée. IAsset, ISpace, IPeriod, IProcedure. Le générateur produit, à partir de classes décorées, les implémentations partials et les registres statiques par cadre. Aucune string n'est jamais utilisée comme pivot — tout est Type cadre-aware.
Partie 7 — Law.Dsl racine + LawDslGenerator (le méta-générateur)
La racine juridique agnostique aux traditions. LawDslGenerator lit une LegalDslDefinition (l'intention d'un cadre) et émet le cadre complet. 90% du squelette est généré : l'auteur d'un cadre n'écrit que la définition, les méthodes Validate(), et la philosophie du detector. Démocratisation de la génération de cadres juridiques.
Partie 8 — Commons.Dsl et Citizen.Dsl
La racine politique des biens communs (avec exemple Commons.France2026.LaQuadrature vs Commons.France2026.InstitutMontaigne sur le même typeof(DrinkingWater)) et la racine des cas citoyens (avec exemple Citizen.France2026.Etalab institutionnel vs Citizen.France2026.SecoursPopulaire de terrain).
Acte III — Le bridge et le moment de vérité
Partie 9 — Law.Commons.Bridge : le pont entre deux familles de cadres
Architecture en cinq sous-projets (Core / Roslyn / SourceGenerator / Analyzers / Cli). FQN typés via records (AssetFqn, SpaceFqn, BoundaryFqn...). FrontierCrossingDetector comme fonction pure. Trois familles d'analyzers : structurels par cadre, cohérence inter-cadres, symboliques racines. Pourquoi le SG et les analyzers : l'analyzer enseigne, le SG atteste.
Partie 10 — Trace d'exécution : le compile error politique du cas Dumas 1995
La démonstration end-to-end. Huit étapes A à H, du csproj au compile error rouge dans Visual Studio Code. La décision Conseil constitutionnel n°95-65 du 11 janvier 1995, codée dans le cadre Law.France1995.Erard, exige sa propre traçabilité démocratique pour compiler. La force démocratique du dispositif est exactement dans la spécificité du cadre, pas dans une prétention à l'universalité.
Acte IV — Outillage, packaging, tests
Partie 11 — Law.QualityGate : couverture juridique alinéa par AC
Décalque structurel du QualityGate existant. ILawCorpusLoader, IAlineaTestCoverageParser, ILegalMutationReportParser, ILawReportWriter — quatre interfaces SOLID, hand-written fakes, hiérarchie de métriques juridiques (corpus → codification → titre → chapitre → article → alinéa).
Partie 12 — Les six régimes d'usage : tests, simulations, citoyen-auteur Tests unitaires purs, tests d'intégration end-to-end, simulations what-if, property-based testing, ConsensusScorer multi-sources, citoyen comme auteur. Le sixième régime transforme l'IDE en panneau de bord juridique personnel, et c'est ce qui change tout.
Partie 13 — Versioning, packaging, distribution : NuGet appliqué au droit
SemVer juridique (MAJOR / MINOR / PATCH avec sens politique), RepositoryCommit cryptographique, signature X.509, lockfile reproductible, advisories LEGAL-2026-* type GHSA, time-travel queries, multi-sources via nuget.config à la PPA Ubuntu, pipeline Légifrance → .nupkg quotidien.
Partie 14 — L'arsenal complet du génie logiciel appliqué au droit Pyramide des tests juridiques, mutation testing comme mesure de la vivacité du droit, Loi-driven Requirements via réutilisation du package Requirements existant, CI/CD à treize étapes avec gates humains pour les MAJOR bumps, déploiement progressif (feature flags juridiques, canary releases territoriaux), observabilité OpenTelemetry anonymisée à k-anonymity-50, HA registre comme DNS root, disaster recovery, performance, pile entièrement OSS.
Acte V — La question méta-sociale et la roadmap
Partie 15 — Lex Studio : VSCodium pour juristes Le pattern RStudio/Rider/Jupyter/Overleaf appliqué au droit. Distribution VSCode + neuf extensions Lex.* qui masquent C# derrière une UI orientée juriste. Trivial techniquement, transformateur pour l'adoption.
Partie 16 — Question méta-sociale : qui va générer les cadres ?
Trois modèles de gouvernance des cadres : étatique unique (Catala), multiplicité fédérée (Wikipédia), génération radicalement ouverte (commons numérique). Le ${Author} de la signature META(Ex × Ty) est la trace technique de la pluralité politique des cadres. Posture pour le ship initial.
Partie 17 — Méta-critique : manques, beautés, limites L'auto-critique honnête, en trois listes : ce qui manque (treize points, dont l'ambiguïté juridique délibérée, la jurisprudence comme couche d'interprétation, la hiérarchie des normes, la logique non-monotone), ce qui rend le projet beau (dix points, dont l'effet pédagogique sur la formation juridique, la recherche en sciences sociales reproductible, le droit climatique compilable, l'élimination structurelle du non-recours), ce qui est limitant et qu'il faut accepter (quinze points, dont l'asymétrie producteur/consommateur du typage, le risque foucaldien recadré comme monoculture des cadres, l'inertie institutionnelle).
Partie 18 — Roadmap intégrée : douze ships principaux + trois -bis Du Ship 1 (Smoke Dumas) au Ship 12 (logique non-monotone et SIG), en passant par les ships -bis (Lex Studio, LawDslGenerator extraction, Catala.Bridge). Dépendances, parallélisations possibles, taille du chantier (~13 000 LOC d'infrastructure pour ~1,2 million de LOC de contenu juridique typé à terme — rapport infrastructure/contenu de 1:100 comme MediaWiki/Wikipédia). Vérification end-to-end et prochaine étape.
Pour aller plus loin dans le corpus
- Le programme Métacratie d'origine (corpus de cinq documents publiés en avril 2026, dans
work/ddd-driven-society/) — articulation politique et philosophique du projet - L'Appareil compilateur qui pose les fondations conceptuelles du programme constructif d'un zoo de DSLs paramétrés par
META(Ex × Ty) - La série Typed Specs qui explique pourquoi tout est typable (et pourquoi les chaînes magiques sont le mal)
- La série Feature Tracking qui décrit le DSL de Requirements réutilisé ici pour relier articles juridiques et acceptance criteria politiques
- L'Ops DSL Ecosystem — le même pattern Attribute + Source Generator + Analyzer + NuGet appliqué à l'opérationnel, dont cette série est l'extension juridique
- Le parcours à 18 ans avec John Sowa — origine personnelle de la rencontre avec les graphes conceptuels et le model-driven engineering
- La page projets qui situe ce projet dans l'ensemble du travail de Stéphane
Note de lecture
Cette série est dense. Elle peut se lire dans l'ordre, ou par actes. L'Acte I (parties 1 à 5) est le minimum vital pour comprendre la posture philosophique et la structure technique. L'Acte II (parties 6 à 8) entre dans le code des DSLs racines. L'Acte III (parties 9 et 10) est le cœur démonstratif — la trace Dumas en partie 10 est probablement le passage le plus convaincant pour qui doute que le système puisse fonctionner. L'Acte IV (parties 11 à 14) est l'outillage logiciel, accessible à qui connaît déjà le génie logiciel moderne, plus dépaysant pour qui vient du droit. L'Acte V (parties 15 à 18) referme la boucle politique et propose la roadmap.
Pour un lecteur juriste sans bagage technique, je recommande l'ordre : Partie 1 → Partie 3 → Partie 10 → Partie 16 → Partie 17. Pour un lecteur développeur sans bagage juridique : Partie 1 → Partie 2 → Partie 5 → Partie 9 → Partie 10 → Partie 13. Pour un lecteur philosophe ou militant : Partie 1 → Partie 3 → Partie 16 → Partie 17 → Partie 18. Le reste suit naturellement une fois ces ancrages posés.