Retour à RADAR

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.

  1. 01 · ouverture Tâche et test d’acceptation Écrits avant le début du travail
  2. 02 · bail Un seul propriétaire, son propre worktree Bail et jeton de fencing
  3. 03 · travail L’agent travaille Dans sa propre copie du projet
  4. 04 · déclaration L’agent dit « c’est fait » Enregistré comme déclaration, pas comme résultat
  5. 05 · vérification RADAR relance le test Sur la révision actuelle
  6. s’il réussit Clôturée La preuve est conservée dans le registre
  7. s’il échoue · essai n sur 3 Rouverte, échec joint Le même agent réessaie depuis l’étape 03
  8. après 3 essais Un autre agent prend le relais Jusqu’à 3 essais de plus, depuis l’étape 03
  9. après 3 de plus La tâche vous attend Le registre refuse tout nouvel essai
Fig. 1 · La boucle des tâches. Une déclaration mène à une nouvelle exécution, jamais directement à une clôture.
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.

CommandeCe 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.