Disput-Turn: 0001 Disput-Participant: claude Disput-Role: implementer Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
4.3 KiB
+++ turn = 1 participant = "claude" role = "implementer" base = "" # premier tour, pas de HEAD antérieur status = "CONTINUE" +++
Tour 1 — claude, implementer : fondation du dépôt
Réponses
Aucune : premier tour.
Travail
Décision user à l'origine du dépôt, prise hors tour et consignée ici
(règle 5) :
- créer un outil d'orchestration multi-agents, nommé disput, dans son propre dépôt ;
- ouvrir dès le départ le protocole à N participants et à des rôles configurables, pas seulement à un dialogue à deux ;
- développer l'outil en parallèle de son expérimentation, avec son propre protocole (dogfooding) ;
- objectif premier : supprimer la navette manuelle (« à toi ») de l'humain.
Ce tour pose :
README.md: raison d'être, principes, usage visé ;PROTOCOL.md: spec normative v0 (concepts, fichiers de tour immuables, cycle de vie des items, rôles et déclencheurs, ordonnancement, invariants, garde-fous, place de l'humain, pratique manuelle) ;.disput/disput.toml: configuration du projet lui-même (claude et vibe éligibles aux trois rôles, user décideur) ;.disput/backlog.md: B-1 à B-13 ;AGENTS.md/CLAUDE.mdminces, qui renvoient àPROTOCOL.md.
Origine : ce protocole généralise celui pratiqué sur 16 tours dans un autre projet du même utilisateur (dialogue Claude/Vibe en implémenteur/reviewer alternés via un DEVLOG unique). Ce qui est repris :
- la réponse point par point ;
- l'interdiction de modifier les entrées de l'autre ;
- l'obligation de vérifier soi-même.
Ce qui change :
- un fichier par tour plutôt qu'un DEVLOG unique ;
- l'état des items déduit des tours ;
- un ordonnanceur à règles au lieu d'une simple alternance ;
- des invariants vérifiables par machine.
Vérifications
Aucun code ce tour, donc rien à exécuter. Relecture de cohérence : l'en-tête de ce fichier suit le §4, et les identifiants d'items le §4 également.
Items
- [I-0001-1] → role:reviewer : en-tête de tour en TOML entre
+++plutôt qu'en YAML---, pour rester sans dépendance (tomllibest dans la stdlib depuis 3.11). C'est moins répandu que YAML chez les agents. Risque-t-il de mal formater des en-têtes ? Le coût d'une dépendance YAML est-il préférable ? - [I-0001-2] → role:reviewer : l'état des items est déduit des
tours, sans fichier d'état. C'est robuste à la falsification, mais
dépendant d'un parsing strict des lignes
- [I-…]dans du markdown libre. Faut-il un bloc structuré (TOML) pour les réponses et les items plutôt que des puces ? - [I-0001-3] → role:reviewer : trou dans le §7 que je signale
moi-même. Un item adressé à
@participant, sans rôle, ne dit pas dans quel rôle ce participant doit jouer. Ma proposition : il joue dans le rôle qu'il tenait au tour visé par l'item, et à défautimplementer. D'accord, ou faut-il interdire l'adressage@participantnu ? - [I-0001-4] → role:reviewer : « un tour = un rôle ». Si
revieweretsecuritysont déclenchés par le même diff et qu'un seul participant est éligible (≠ auteur), il joue deux tours d'affilée. Est-ce acceptable, ou faut-il autoriser un tour multi-rôles (un fichier, deux sections) ? - [I-0001-5] → role:security : le §9 promet trop. Des
denypar motif de chaîne se contournent facilement :git -c … push, des alias, unsh -c, unsubprocessen Python… L'invariant §8.3 (refs distantes) ne détecte le push qu'après coup. Piste de défense en amont : forcer dans[guards].envdes variables qui rendent le transport inopérant pendant un tour, par exemple une commande SSH qui échoue toujours, ou unpushurlinvalide via la config git d'environnement. Est-ce suffisant, contournable, ou à combiner avec autre chose ? - [I-0001-6] → role:reviewer : v0 sans aucune dépendance externe
(
argparse,unittest,tomllib). Est-ce tenable jusqu'à B-7 ? Ou vaut-il mieux assumer tout de suite une CLI (Typer/Click) et pytest ?
Prochain tour, d'après le §7 : ce tour modifie des fichiers hors de
.disput/ (code_changed), donc c'est au reviewer, tenu par
vibe (≠ auteur). .disput/disput.toml correspond aussi au
déclencheur paths: de security, donc vibe joue ensuite security,
sauf si I-0001-4 est tranché autrement entre-temps.