Fonctionnement
Comment fonctionne RADAR.
Un aperçu technique pour les développeurs. RADAR pilote des agents de programmation et ne clôture une tâche qu’après avoir relancé lui-même le test d’acceptation de cette tâche. Le « c’est fait » d’un agent est une déclaration ; la nouvelle exécution est la preuve.
01 La boucle
Une seule boucle pour chaque tâche.
Chaque tâche parcourt la même boucle, et chaque étape ne s’exécute que si l’étape précédente a réussi.
- 01 · ouverture Tâche et test d’acceptation Écrits avant le début du travail
- 02 · bail Un seul propriétaire, son propre worktree Bail et jeton de fencing
- 03 · travail L’agent travaille Dans sa propre copie du projet
- 04 · déclaration L’agent dit « c’est fait » Enregistré comme déclaration, pas comme résultat
- 05 · vérification RADAR relance le test Sur la révision actuelle
- s’il réussit Clôturée La preuve est conservée dans le registre
- s’il échoue · essai n sur 3 Rouverte, échec joint Le même agent réessaie depuis l’étape 03
- après 3 essais Un autre agent prend le relais Jusqu’à 3 essais de plus, depuis l’étape 03
- après 3 de plus La tâche vous attend Le registre refuse tout nouvel essai
- Ouverture
- Une tâche est ouverte avec son objectif et une commande d’acceptation réexécutable. La commande est contrôlée à l’ouverture de la tâche, sans être exécutée : un critère qui ne peut pas s’exécuter tel qu’il est écrit est refusé dès ce moment, et non découvert à la fin.
- Bail
- Une tâche n’a qu’un seul propriétaire à la fois, via un bail et un jeton de fencing. Une écriture venant d’un propriétaire périmé est refusée.
- Travail
- L’agent travaille dans son propre worktree git, sur sa propre branche.
- Déclaration
- Le rapport de l’agent indiquant qu’il a terminé est enregistré comme une déclaration. Une déclaration ne clôture pas la tâche.
- Vérification
- RADAR exécute lui-même la commande d’acceptation, sur la révision actuelle du travail. Le rapport de l’agent est lu, mais ce n’est pas une preuve.
- Clôture ou réouverture
- Un succès permet de clôturer la tâche, l’enregistrement de vérification étant conservé comme preuve. Un échec rouvre la tâche, avec l’échec joint.
- Limites
- Trois essais du worker, puis trois reprises par un autre agent. Ensuite, le registre refuse tout nouvel essai et la tâche vous attend. Changer de modèle, de session ou de machine ne remet pas le compteur à zéro, et un nouvel essai doit indiquer ce qui a changé.
02 Le registre
Un seul registre dans lequel écrit chaque agent.
Chaque agent lit et écrit le même registre des tâches : un fichier SQLite local. C’est l’unique trace de qui détient chaque tâche, de ce qui a été déclaré et de ce que le test a montré.
- Tâches
- L’objectif et la commande d’acceptation, écrits avant le début du travail.
- Propriété
- Le propriétaire actuel de chaque tâche, avec son bail et son jeton de fencing.
- Essais
- Comptés par tâche, tous agents, modèles et machines confondus.
- Déclarations
- Le rapport d’un agent indiquant que le travail est fait, conservé à part des résultats.
- Enregistrements de vérification
- Chaque exécution d’acceptation, liée au commit et à l’arbre de travail sur lesquels elle a tourné.
- Modifications
- Une commande d’acceptation modifiée est enregistrée avec l’ancienne et la nouvelle version ; une dérogation l’est aussi.
Mémoire
Les décisions et les leçons sont des notes Markdown, avec une source et une portée. Un index local les recherche hors ligne, et un hook présente les notes pertinentes à un agent avant qu’il agisse. Comme ces notes sont du Markdown brut, vous pouvez les ouvrir dans Obsidian.
03 Isolation
Chaque essai dans sa propre copie.
- Chaque essai travaille dans son propre worktree git, sur sa propre branche. Deux workers ne partagent jamais un arbre.
- Un worker ne peut pas réécrire sa propre commande d’acceptation. Seul le manager peut la modifier, et seulement avant la clôture de la tâche ; chaque modification conserve l’ancienne et la nouvelle version.
- Le travail n’atteint votre branche principale qu’après une vérification réussie, et la commande d’acceptation s’exécute une fois de plus après le merge.
- Les force-push sont refusés pour tous les rôles.
- Ces règles s’exécutent sous forme de code, avant et après l’appel à un modèle. Ce ne sont pas des prompts : un agent ne peut pas s’en affranchir par la persuasion.
04 Agents
Les agents que vous utilisez déjà.
RADAR pilote Claude Code, Codex CLI, OMP et Hermes Agent, sur votre ordinateur ou sur vos propres serveurs Linux. Il ne les remplace pas : ce sont toujours eux qui font le travail.
- Claude Code
- Codex CLI
- OMP
- Hermes Agent
- Un seul contrat
- Les mêmes règles, le même registre, la même barrière de vérification et les mêmes limites d’essais s’appliquent aux quatre.
- Manager
- L’agent avec lequel vous échangez dirige : il ouvre les tâches, les confie aux workers et ne clôture une tâche qu’avec un enregistrement de vérification réussi.
- Workers
- Les workers font le travail dans leurs propres worktrees. Ils ne peuvent ni clôturer de tâche ni modifier leur commande d’acceptation.
05 Local d’abord
Local d’abord.
RADAR ne nécessite ni compte ni cloud.
- Sur votre machine
- Le registre, les notes de mémoire, les worktrees et chaque vérification, sur votre ordinateur ou sur vos propres serveurs Linux.
- Nécessite un réseau
- Vos agents, qui communiquent avec leurs propres fournisseurs comme aujourd’hui. Tout autre service externe est facultatif et reste désactivé tant que vous ne l’activez pas.
- Prérequis
- Windows ou Linux (macOS n’est pas encore pris en charge), Python 3.12 ou plus récent, et Git. RADAR n’utilise que la bibliothèque standard de Python.
- Coût
- Aucune facturation propre. Les agents continuent d’utiliser les comptes avec lesquels vous les connectez. Une API payante n’est utilisée que si vous désignez le fournisseur et un budget.
- Installation
- Donnez à votre agent de programmation le lien du dépôt et dites-lui « installe ça ». Il vérifie votre ordinateur, vous demande avant d’installer ce qui manque, installe RADAR dans un environnement virtuel et vous rapporte ce qu’indiquent radar init et radar doctor.
06 Commandes
Une courte liste de commandes.
Les commandes que vous utiliserez en premier. Les paramètres à remplacer figurent entre chevrons.
| Commande | Ce qu’elle fait |
|---|---|
radar init | Initialise le répertoire de RADAR et le registre. |
radar doctor | Vérifie l’installation et liste les services facultatifs non configurés. |
radar task new --project P --goal "…" --accept "<command>" | Ouvre une tâche avec sa commande d’acceptation. |
radar dispatch <task> | Confie une tâche à un agent, qui travaille dans son propre worktree. |
radar status | Affiche l’ensemble du système. |
radar verify <task> | Relance la commande d’acceptation sur la révision actuelle. |
radar task done <task> --evidence "<verification report>" | Clôture une tâche. Refusé tant que la vérification n’a pas réussi. |
radar collect | Récupère le travail terminé. |
radar integrate | Fusionne le travail vérifié dans main. |
radar stop | Met le travail en attente et active STOP. |
radar go | Lève STOP et liste ce qui peut reprendre. |
radar memory search --local "<words>" | Recherche hors ligne dans les notes de mémoire. |
radar uiradar web | Ouvre le cockpit dans le terminal ou dans un navigateur. |
radar help --all | Liste toutes les commandes. radar <command> -h donne le détail. |
07 Ce qu’il ne fait pas
Ce que RADAR ne fait pas.
- Il ne remplace pas vos agents. Ce sont toujours eux qui écrivent le code ; RADAR leur donne un seul registre, une vérification qu’ils ne peuvent pas contourner et une seule mémoire.
- Il n’écrit pas vos tests. Une vérification ne vaut que ce que vaut son test ; RADAR rend le test explicite avant le début du travail, pour qu’une personne puisse le lire.
- Il ne clôture pas un travail sans test. Une tâche sans commande d’acceptation exécutable est refusée dès son ouverture.
- Il ne coupe pas vos agents du réseau. Ils communiquent toujours avec leurs propres fournisseurs, comme aujourd’hui.
- L’édition ouverte s’adresse aux développeurs individuels, pas aux équipes ; une édition entreprise est en cours de développement.
08 Statut
En accès anticipé
Accès anticipé aujourd’hui. Open source à la sortie publique.
RADAR est en accès anticipé. Il sera publié en open source sous licence Apache-2.0 lors de sa sortie publique. Pour le rejoindre, écrivez-nous.