# disput > *disput*, de *disputatio* : la dispute scolastique, où chaque objection > reçoit une réponse. `disput` orchestre **plusieurs clients IA en ligne de commande** (Claude Code, Mistral Vibe, puis d'autres) qui travaillent ensemble sur un même dépôt git. Chaque participant y tient un **rôle** : implémenteur, reviewer, auditeur sécurité… Le travail se fait **par tours**, sous un protocole strict, et tout l'état du dialogue vit dans le dépôt. `disput` ne remplace pas le harness de chaque agent : il **les fait jouer à tour de rôle**, vérifie après chaque tour que les règles ont été respectées, et ne rend la main à l'humain que lorsqu'une décision lui revient. ## Pourquoi Le protocole est né sur un projet réel, où Claude et Vibe alternaient implémentation et review sévère. Sur 16 tours, la review croisée entre modèles a attrapé de vrais bugs, que l'implémenteur avait pourtant déclarés corrigés. Deux limites sont apparues : - l'humain servait de **bus de messages** : il tapait « à toi » dans un agent, puis dans l'autre ; - les garde-fous (pas de prod, pas de push, pas de réécriture d'historique) n'étaient que **déclaratifs**. `disput` automatise le relais, impose les garde-fous et ouvre le protocole à **N participants et à des rôles configurables**. ## Principes 1. **Le protocole d'abord, l'outil ensuite.** [`PROTOCOL.md`](PROTOCOL.md) se suffit à lui-même : on peut le pratiquer à la main, en tapant « à toi » à chaque agent. L'outil ne doit jamais devenir indispensable pour avancer. 2. **Tout l'état est dans git.** Tours, objections, backlog, décisions : des fichiers versionnés, lisibles par les humains comme par les machines. 3. **Les garde-fous sont techniques.** Une règle que l'outil ne sait pas vérifier ou bloquer n'est qu'un vœu. 4. **Pas de fonctionnalité sans besoin observé.** Une fonctionnalité n'entre que si un projet réel en a eu besoin, et ce besoin est consigné dans un tour. 5. **disput se développe avec disput.** Ce dépôt est son propre premier projet client (voir `.disput/`). ## État **Phase d'amorçage** : la spec existe, pas encore le code. Le développement suit le protocole **à la main** jusqu'à ce que la v0 de `disput run` sache prendre le relais. Voir [`.disput/backlog.md`](.disput/backlog.md) et [`.disput/turns/`](.disput/turns/). ## Utilisation visée (v0) ```bash disput init # crée .disput/ dans un projet (config, backlog, tours) disput status # qui joue ensuite, objections ouvertes, décisions en attente disput run # enchaîne les tours jusqu'à DONE, USER ou un invariant violé disput decide "texte" # enregistre la décision de l'humain et relance disput lint # valide les fichiers de tour et la config ``` ## Licence [Apache-2.0](LICENSE). Copyright 2026 bachir et les contributeurs de disput.