Disput-Turn: 0002 Disput-Participant: user Disput-Role: decider Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.8 KiB
2.8 KiB
Backlog — disput
Une tâche par ligne : - [ ] B-<n> : …. On coche à la fin du tour qui
la termine, en citant ce tour. [USER] = décision humaine, jamais prise
par un implémenteur. Numéros uniques, jamais réutilisés.
v0 — amorçage (le relais remplace la navette manuelle)
- B-1 : squelette du paquet Python (
pyproject.toml,src/disput/, point d'entréedisput,argparse+tomllib, aucune dépendance externe en v0),tests/enunittest - B-2 : parseur de fichiers de tour (en-tête
+++TOML, sections Réponses/Items, identifiants, destinataires) +disput lint - B-3 : déduction de l'état des items à partir des tours (§5) +
disput status - B-4 : ordonnanceur (§7) en fonction pure : (config, tours, diff du dernier tour) → (participant, rôle) | USER | DONE. Tests exhaustifs, y compris l'anti ping-pong
- B-5 : vérification des invariants après un tour (§8), git uniquement
- B-6 : adaptateurs
claudeetvibe(lancement non interactif, env forcé, budget/max-turns, log local) + adaptateurstubpour les tests - B-7 :
disput run(verrou, boucle, arrêt,.disput/last-run.md, notification) + scénarios stub « tricheurs » : pas de commit, réécriture, modification d'un tour existant, réviseur qui touche au code,status=USER - B-8 :
disput decide "…"(écrit et commite le touruser) - B-9 : garde-fous appliqués par adaptateur, à partir de
[guards](deny et hook Claude, agent et hookpre_toolVibe), avec preuve qu'ungit pushest refusé dans chaque adaptateur - B-10 :
disput init(crée.disput/dans un projet existant) - B-11 : premier
disput run --max-turns 2sur disput lui-même, sous surveillance de l'humain - B-12 : adoption par qbt-manager (
disput init,disput.tomlavec les checks preflight/tests et les garde-fous dry-run, rôlesecuritysur ses chemins sensibles)
Décisions humaines
- B-13 [USER] : licence Apache-2.0, dépôt public sur le remote
gitea(tour 0002)
Sécurité du dépôt public (ajouté tour 0002)
- B-14 : contrôle de secrets avant tout push (sur le modèle du
preflight de qbt-manager : scan de tout l'historique, motifs
génériques + motifs locaux dans un fichier gitignoré, fichiers
interdits), déclaré comme
[[checks]]must_passdansdisput.toml. À faire avant le premier push
Plus tard (seulement sur besoin observé)
- ACP comme transport unifié des adaptateurs, avec des garde-fous centralisés
- reviewers en parallèle (worktrees)
- interface en terminal (affichage des tours en direct, décisions à l'écran)
- adaptateurs supplémentaires (codex, gemini, opencode…)