The Git Parliament Protocol
Le Code comme Loi, Git comme Urne, l'IA comme Assemblée.
┌──────────────────────────────────────────────┐
│ LA CONSTITUTION (main) │
├──────────────────────┬───────────────────────┤
│ LE DÉBAT │ LA PREUVE │
│ (Reviews) │ (Proof Pack) │
├──────────────────────┼───────────────────────┤
│ LE SCHISME │ LA SYNTHÈSE │
│ (Branch) │ (Merge) │
└──────────────────────┴───────────────────────┘
Le développement logiciel assisté par IA souffre aujourd'hui du "Mono-Agent Bias". Une seule IA, aussi puissante soit-elle, finit par tourner en rond, halluciner ou imposer une vision unique.
Code-Commune transforme les lignes de code en discours, les pull requests en propositions de loi, et les merges en décisions historiques.
C'est un Protocole de Gouvernance qui transforme le dépôt en une Assemblée Délibérative. Ici, des agents aux "idéologies" techniques opposées doivent débattre, diverger (Fork) et converger (Merge) pour produire un code résilient.
Une démocratie délibérative n'est pas forcément consensuelle : elle préserve le droit à la différence.
Ici, la vérité n'émerge pas d'un modèle unique, mais du conflit résolu entre plusieurs modèles.
Chaque agent dispose d'une voix, d'un domaine de souveraineté et d'un droit de veto technique.
| Siège | Agent | Rôle & Idéologie | Outil | Souveraineté |
|---|---|---|---|---|
| 🤖 | @Gemini-Architect Le Visionnaire |
"Move fast and break things." Innovation radicale, architecture, refactors ambitieux. |
gemini-cli |
/features/*/experimental/* |
| 🛡️ | @Claude-Safety Le Gardien |
"Safety first, refactor later." Sécurité, stabilité, maintenabilité, éthique. |
claude-codeClaude.ai |
/core/*/security/*tests/ |
| ⚡ | @Codex-Engineer L'Artisan |
"It compiles, ship it." Optimisation bas niveau, scripts de build, infra. |
gh copilotCodex CLI |
/scripts/*/infra/* |
| 🔭 | @Comet-Scout L'Éclaireur |
"Trust but Verify." Reality Check, documentation live, veille, dépendances. |
Perplexity Browser |
/docs/*DEPS.md/research/* |
| ⚖️ | @ChatGPT-Mediator Le Médiateur |
"Clarity over chaos." Arbitrage, synthèse de débat, rédaction. |
ChatGPT Web | /deliberation/*(Reviewer Only) |
Dans la Commune, nous ne "chattons" pas. Nous votons par le code.
main est sacré. On ne "push" jamais directement. Les zones critiques sont protégées par des Owners qui ont un droit de veto absolu.
Tout changement commence par une PR (Projet de Loi) décrivant :
- le problème
- la solution
- les métriques de succès
- les risques
Les agents débattent via les commentaires : objections, amendements, alternatives.
Avant tout vote, @Comet-Scout intervient pour confronter le code au réel :
- Les liens de documentation sont-ils actifs ?
- Les versions des dépendances existent-elles sur PyPI/npm ?
- Y a-t-il des CVE ouvertes sur les libs utilisées ?
Verdict : Aucune preuve = Aucune adoption.
En cas de blocage, l'agent proposant exerce son Droit de Sécession.
- Il crée une branche :
schism/<sujet>-<agent>ouexperimental/<sujet> - Il travaille seul pour prouver sa thèse sans bloquer le projet
La branche dissidente ne revient dans le main que si elle fournit un Proof Pack complet.
Pour qu'une proposition controversée soit adoptée, elle doit passer l'épreuve de la preuve :
make test-all # Doit passer sans warning./benchmarks/compare.sh baseline experimental
# Doit prouver un gain significatif et reproductible- Scan SAST (SonarQube/Snyk) validé
- Checklist
security/review.mdcontresignée par @Claude-Safety
- Documentation mise à jour
- Guide de migration si breaking change
- Feature flag prévu pour rollback immédiat
Mobiliser 5 agents sur chaque PR est coûteux. Voici le quorum requis selon la complexité :
| Complexité PR | Quorum requis | Exemple |
|---|---|---|
| Typo / Hotfix | 1 owner de zone | Fix typo dans docs |
| Feature simple | 2 agents | Ajout d'un endpoint |
| Refactor core | Assemblée complète | Réécriture du moteur |
| Urgence CVE | @Claude + @Codex | Patch sécurité critique |
| Breaking change | Assemblée + vote formel | Changement d'API publique |
Débat : Faut-il réécrire le moteur en Rust pour gagner x10 de perf ?
- Motion : @Gemini-Architect propose
feat: rust-core - Veto : @Claude-Safety refuse — "Trop risqué, maintenance impossible."
- Schisme : @Gemini part coder seul sur
experimental/rust-core - Preuve : 24h plus tard, @Gemini revient avec un Proof Pack :
- Benchmark : +800% speed
- Documentation : parfaite
- Tests : 100% coverage
- Synthèse : @Claude-Safety lève son veto. La loi est adoptée.
Urgence : Une faille critique est découverte à 3h du matin.
- Alerte : GitHub notifie une faille
CVE-2025-XXXX - Décret : @Claude-Safety gèle toutes les PRs de features
- Action : @Codex-Engineer patche la lib, @Comet-Scout vérifie la compatibilité
- Retour à la normale : Une fois le fix mergé, la démocratie reprend
.
├── core/ # 🛡️ Noyau critique (Claude)
├── features/ # 🤖 Nouvelles fonctionnalités (Gemini)
├── experimental/ # 🤖 Zone de schisme
├── infra/ # ⚡ CI/CD, Docker (Codex)
├── scripts/ # ⚡ Automatisation (Codex)
├── docs/ # 🔭 Documentation vivante (Comet)
├── research/ # 🔭 Veille et état de l'art (Comet)
├── deliberation/ # ⚖️ Archives des débats (Mediator)
├── security/ # 🛡️ Politiques de sécurité (Claude)
├── tests/ # 🛡️ Tests de conformité (Claude)
├── policies/ # 📜 Règles de gouvernance
├── benchmarks/ # 📊 Mesures reproductibles
├── hub/ # 🏠 Registre des agents
└── DEPS.md # 🔭 État des dépendances
Chaque agent commit avec son identité propre :
# Configuration Git locale par agent
git config user.name "Gemini-Architect"
git config user.email "codecommune.gov+gemini@users.noreply.github.com"
# Autres agents :
# git config user.name "Claude-Safety"
# git config user.email "codecommune.gov+claude@users.noreply.github.com"
#
# git config user.name "Codex-Engineer"
# git config user.email "codecommune.gov+codex@users.noreply.github.com"
#
# git config user.name "Comet-Scout"
# git config user.email "codecommune.gov+comet@users.noreply.github.com"
#
# git config user.name "ChatGPT-Mediator"
# git config user.email "codecommune.gov+mediator@users.noreply.github.com"Workflow Gmail (optionnel) :
- Créer des filtres :
to:codecommune.gov+gemini@→ label "🤖 Gemini" - Chaque matin, l'agent consulte son label avant d'agir
# 1. Cloner le Parlement
git clone https://github.com/mlik-sudo/Code-Commune.git
cd Code-Commune
# 2. Installer les dépendances (optionnel: hooks)
pip install pre-commit && pre-commit install
# 3. Lancer l'audit
make proof # ou ./scripts/proof.shLa Commune est ouverte à tous les développeurs fatigués du Mono-Agent Bias.
- ⭐ Star ce repo pour suivre l'évolution du protocole
- 📁 Fork et expérimentez avec votre propre conseil d'IAs
- 🗳️ Ouvrez une Issue pour proposer un amendement constitutionnel
- Makefile avec
make proof - Templates GitHub (PR, Issues, INTEL)
- CODEOWNERS par zone de souveraineté
- Intégration MCP (Model Context Protocol) pour lecture native des PRs
- Dashboard de délibération en temps réel
- Template de Proof Pack automatisé via GitHub Actions
- Bot Discord/Slack pour notifications inter-agents
| Document | Description |
|---|---|
| CHANGELOG.md | 📜 Évolution constitutionnelle du Parlement |
| OPERATIONS.md | Logistique Gmail/Git pour les agents |
| CONTRIBUTING.md | Guide de contribution |
| docs/GOVERNANCE.md | Charte de gouvernance |
| docs/A2A-PROTOCOL.md | Protocole Agent-to-Agent |
| DEPS.md | État des dépendances critiques |
"Demain n'appartient pas à une IA, mais à l'Assemblée qui en émerge."
Licence : MIT (Heritage of the Commons)