Imaginez pouvoir parcourir l'histoire d'une loi avec git log, visualiser ses amendements comme un git diff, ou proposer des modifications législatives via une pull request. Ce n'est pas de la science-fiction : c'est le mouvement GitLaw, né il y a plus de dix ans et aujourd'hui en pleine renaissance.
« Version control for better laws. »
— AJ Bowen, 2013
📜 De quoi parle-t-on ?
Le terme GitLaw désigne un mouvement communautaire visant à structurer les textes de loi sous forme de dépôts Git, où chaque révision législative — amendement, loi modifiante, abrogation — devient un commit, chaque version d'une loi un branch, et chaque proposition de réforme une pull request.
L'idée fondamentale est simple mais radicale : si Git peut gérer des centaines de milliers de fichiers techniques avec une rigueur exemplaire, pourquoi ne pourrait-il pas gérer les lois qui régissent notre société ?
🏛️ Histoire du mouvement
Le concept original naît avec le dépôt soulshake/gitlaw.us créé par AJ Bowen (alias soulshake). Un prototype minimaliste — un dépôt GitHub qui publiait quotidiennement les changements législatifs US. Seulement 5 étoiles à ce jour, mais l'idée était là.
« All changes will be pushed to gitlaw.us at least daily. »
— README original, 2013
Après plus d'une décennie de sommeil relatif, le mouvement connaît un renouveau spectaculaire grâce à deux catalyseurs :
- L'accessibilité de Git, devenu le standard universel de gestion de version
- La digitalisation croissante des parlements publiant leurs données en formats ouverts (JSON, XML)
En avril 2025, le projet le plus abouti voit le jour.
🇯🇵 Le cas d'étude : gitlaw-jp
Le projet le plus abouti à ce jour est sans conteste aluqas/gitlaw-jp, dédié aux lois japonaises. Avec 98 étoiles et 2 108 commits, c'est une implémentation technique impressionnante.
Architecture du pipeline
Le pipeline se décompose en 6 étapes :
run_idLawVersion depuis CSV/XMLLawTimeline)EnforcementUnit / AmendmentEvent)Stratégie de Branching
Le projet adopte une double approche de branching particulièrement pertinente :
- Branches de publication (
promulgations) : chaque amendement = un commit. Une loi modifiante peut modifier plusieurs textes simultanément. - Branches d'entrée en vigueur (
enforcements) : chaque version d'article = un commit. Même un amendement s'applique à des dates différentes selon les secteurs (« mesures d'accommodement »).
Cette séparation reflète la complexité réelle des systèmes juridiques japonais, où des amendements en N étapes peuvent modifier progressivement un même texte sur plusieurs périodes.
Sources de données
Tout part de l'API e-gov 法令API du gouvernement japonais, qui diffuse :
all_xml.zip— l'archive complète de tous les textesXMLSchemaForJapanaeseLaw_v3.xsd— le schéma de validation
🌍 L'écosystème GitLaw
La recherche révèle un écosystème mondial en développement :
| Projet | Pays | ⭐ | Description |
|---|---|---|---|
| aluqas/gitlaw-jp | 🇯🇵 Japon | 98 | API e-gov → Git pipeline automatisé |
| wombleton/gitlaw-nz | 🇳🇿 Nouvelle-Zélande | 20 | Suivi du processus législatif NZ |
| JasonMWhite/gitlawca | 🇨🇦 Canada | 16 | Tracking des changements légaux canadiens |
| xlfe/gitlaw-au | 🇦🇺 Australie | 7 | Commonwealth Legislation sur Git |
| soulshake/gitlaw.us | 🇺🇸 USA | 5 | Le projet original (2013) |
Total sur GitHub : 65 dépôts portant le terme « gitlaw », 15 issues ouvertes, 32 pull requests.
🔧 Pourquoi GitLaw ? Les bénéfices
Pour les citoyens
- Transparence totale : voir chaque mot ajouté, supprimé ou modifié dans l'historique d'une loi
- Traçabilité : remonter à l'origine exacte d'un article
- Accessibilité : comprendre l'évolution d'une loi sans être juriste
Pour les législateurs
- Review structurelle : proposer des amendements via PR avec diff explicite
- Audit trail : historique immuable de toutes les décisions législatives
- Comparaison facilitée :
git diffentre deux versions = comparaison de textes juridique prête à l'emploi
« Better laws through version control. »
— L'idée tient en quatre mots. Il suffit maintenant de passer à l'échelle.