Hoe het werkt
Hoe RADAR werkt.
Een technisch overzicht voor ontwikkelaars. RADAR stuurt codeeragents aan en sluit een taak pas af nadat het de acceptatietest van die taak zelf opnieuw heeft uitgevoerd. Het ‘klaar’ van een agent is een claim; de nieuwe uitvoering is het bewijs.
01 De lus
Eén lus voor elke taak.
Elke taak doorloopt dezelfde lus, en elke stap draait alleen als de vorige stap is geslaagd.
- 01 · openen Taak en acceptatietest Geschreven voordat het werk begint
- 02 · lease Eén eigenaar, eigen worktree Lease en fence-token
- 03 · werk De agent werkt In een eigen kopie van het project
- 04 · claim De agent zegt ‘klaar’ Vastgelegd als claim, niet als resultaat
- 05 · verificatie RADAR voert de test opnieuw uit Op de huidige revisie
- als hij slaagt Gesloten Het bewijs blijft in het register
- als hij mislukt · poging n van 3 Heropend, fout bijgevoegd Dezelfde agent probeert het opnieuw vanaf stap 03
- na 3 pogingen Een andere agent neemt het over Nog maximaal 3 pogingen, vanaf stap 03
- na nog 3 De taak wacht op u Het register weigert verdere pogingen
- Openen
- Een taak wordt geopend met een doel en een acceptatiecommando dat opnieuw kan worden uitgevoerd. Het commando wordt bij het openen gecontroleerd, zonder het uit te voeren: een criterium dat niet kan draaien zoals het er staat, wordt dan al geweigerd en niet pas aan het eind ontdekt.
- Lease
- Een taak heeft op elk moment één eigenaar, via een lease en een fence-token. Een schrijfactie van een verouderde eigenaar wordt geweigerd.
- Werk
- De agent werkt in een eigen git-worktree, op een eigen branch.
- Claim
- De melding van de agent dat hij klaar is, wordt vastgelegd als claim. Een claim sluit de taak niet.
- Verificatie
- RADAR voert het acceptatiecommando zelf uit, op de huidige revisie van het werk. Het eigen verslag van de agent wordt gelezen, maar is geen bewijs.
- Sluiten of heropenen
- Slaagt de test, dan kan de taak worden gesloten, met het verificatierecord bewaard als bewijs. Mislukt hij, dan gaat de taak opnieuw open, met de fout bijgevoegd.
- Limieten
- Drie pogingen door de worker, daarna drie overnames door een andere agent. Daarna weigert het register verdere pogingen en wacht de taak op u. Wisselen van model, sessie of machine zet de teller niet terug, en een nieuwe poging moet vermelden wat er is veranderd.
02 Het register
Eén register waarin elke agent schrijft.
Elke agent leest en schrijft hetzelfde takenregister: een lokaal SQLite-bestand. Het is de enige vastlegging van wie welke taak heeft, wat er is geclaimd en wat de test liet zien.
- Taken
- Het doel en het acceptatiecommando, geschreven voordat het werk begint.
- Eigenaarschap
- De huidige eigenaar van elke taak, met de lease en het fence-token.
- Pogingen
- Per taak geteld, over agents, modellen en machines heen.
- Claims
- De melding van een agent dat het werk klaar is, gescheiden van de resultaten bewaard.
- Verificatierecords
- Elke acceptatierun, gekoppeld aan de commit en de working tree waarop hij draaide.
- Wijzigingen
- Een gewijzigd acceptatiecommando wordt vastgelegd met de oude en de nieuwe versie; een override ook.
Geheugen
Beslissingen en lessen zijn Markdown-notities met een bron en een scope. Een lokale index doorzoekt ze offline, en een hook legt de relevante notities aan een agent voor voordat die iets doet. Omdat de notities gewone Markdown zijn, kunt u ze openen in Obsidian.
03 Isolatie
Elke poging in een eigen kopie.
- Elke poging werkt in een eigen git-worktree, op een eigen branch. Twee workers delen nooit een tree.
- Een worker kan zijn eigen acceptatiecommando niet herschrijven. Alleen de manager kan het wijzigen, en alleen voordat de taak wordt gesloten; bij elke wijziging blijven de oude en de nieuwe versie bewaard.
- Werk komt pas in uw main-branch nadat verify is geslaagd, en het acceptatiecommando draait na de merge nog een keer.
- Force-pushes worden voor elke rol geweigerd.
- Deze regels draaien als code, vóór en na elke aanroep van een model. Ze zijn geen prompt, dus een agent kan er niet omheen praten.
04 Agents
De agents die u al gebruikt.
RADAR stuurt Claude Code, Codex CLI, OMP en Hermes Agent aan, op uw computer of op uw eigen Linux-servers. Het vervangt ze niet: zij doen nog steeds het werk.
- Claude Code
- Codex CLI
- OMP
- Hermes Agent
- Eén contract
- Voor alle vier gelden dezelfde regels, hetzelfde register, dezelfde verify-gate en dezelfde limieten voor pogingen.
- Manager
- De agent met wie u praat, is de manager: die opent taken, geeft ze aan workers en sluit een taak alleen met een geslaagd verificatierecord.
- Workers
- Workers doen het werk in hun eigen worktrees. Ze kunnen geen taken sluiten en hun acceptatiecommando niet wijzigen.
05 Lokaal eerst
Lokaal eerst.
RADAR heeft geen account en geen cloud nodig.
- Op uw machine
- Het register, de geheugennotities, de worktrees en elke verify-run, op uw computer of op uw eigen Linux-servers.
- Netwerk nodig
- Uw agents, die zoals nu met hun eigen providers communiceren. Elke andere externe dienst is optioneel en staat uit tot u die inschakelt.
- Vereisten
- Windows of Linux (macOS wordt nog niet ondersteund), Python 3.12 of nieuwer, en Git. RADAR gebruikt alleen de standaardbibliotheek van Python.
- Kosten
- Geen eigen rekening. De agents blijven de accounts gebruiken waarmee u ze aanmeldt. Een betaalde API wordt alleen gebruikt als u de provider en een budget opgeeft.
- Installatie
- Geef uw codeeragent de link naar de repository en zeg ‘installeer dit’. Hij controleert uw computer, vraagt toestemming voordat hij iets installeert wat ontbreekt, installeert RADAR in een virtuele omgeving en meldt wat radar init en radar doctor zeggen.
06 Commando's
Een korte lijst commando's.
De commando’s die u als eerste gebruikt. Placeholders staan tussen punthaken.
| Commando | Wat het doet |
|---|---|
radar init | Richt de thuismap van RADAR en het register in. |
radar doctor | Controleert de installatie en somt optionele diensten op die nog niet zijn geconfigureerd. |
radar task new --project P --goal "…" --accept "<command>" | Opent een taak met het bijbehorende acceptatiecommando. |
radar dispatch <task> | Geeft een taak aan een agent, die in een eigen worktree werkt. |
radar status | Toont het hele systeem. |
radar verify <task> | Voert het acceptatiecommando opnieuw uit op de huidige revisie. |
radar task done <task> --evidence "<verification report>" | Sluit een taak. Wordt geweigerd tot verify is geslaagd. |
radar collect | Haalt afgerond werk op. |
radar integrate | Merget geverifieerd werk in main. |
radar stop | Parkeert het werk en zet STOP. |
radar go | Heft STOP op en toont wat verder kan. |
radar memory search --local "<words>" | Doorzoekt de geheugennotities offline. |
radar uiradar web | Opent de cockpit in de terminal of in een browser. |
radar help --all | Toont alle commando's. radar <command> -h geeft de details. |
07 Wat het niet doet
Wat RADAR niet doet.
- Het vervangt uw agents niet. Zij schrijven nog steeds de code; RADAR geeft ze één register, één controle die ze niet kunnen overslaan en één geheugen.
- Het schrijft uw tests niet. Een controle is maar zo goed als de test; RADAR maakt de test expliciet voordat het werk begint, zodat een mens hem kan lezen.
- Het sluit geen werk af dat geen test heeft. Een taak zonder uitvoerbaar acceptatiecommando wordt al bij het openen geweigerd.
- Het houdt uw agents niet offline. Ze communiceren nog steeds met hun eigen providers, zoals nu.
- De open editie is bedoeld voor individuele ontwikkelaars, niet voor teams; een bedrijfseditie is in ontwikkeling.
08 Status
In vroege toegang
Nu in vroege toegang. Open source bij de openbare release.
RADAR is in vroege toegang. Bij de openbare release wordt het als open source gepubliceerd onder de Apache-2.0-licentie. Wilt u meedoen, schrijf ons dan.