Voltar para o RADAR

Como funciona

Como o RADAR funciona.

Uma visão técnica para desenvolvedores. O RADAR executa agentes de programação e só fecha uma tarefa depois de ele próprio executar de novo o teste de aceitação dela. O “concluído” de um agente é uma declaração; a nova execução é a prova.

01 O ciclo

Um ciclo para todas as tarefas.

Toda tarefa passa pelo mesmo ciclo, e cada etapa só é executada se a anterior tiver passado.

  1. 01 · abrir Tarefa e teste de aceitação Escrito antes de o trabalho começar
  2. 02 · atribuir Um responsável, worktree próprio Lease e fence token
  3. 03 · trabalhar O agente trabalha Na sua própria cópia do projeto
  4. 04 · declarar O agente diz que terminou Registrado como declaração, não como resultado
  5. 05 · verificar O RADAR executa o teste de novo Na revisão atual
  6. se passar Fechada A prova fica guardada no registro
  7. se falhar · tentativa n de 3 Reaberta, com a falha anexada O mesmo agente tenta de novo a partir da etapa 03
  8. depois de 3 tentativas Outro agente assume Até mais 3 tentativas, a partir da etapa 03
  9. depois de mais 3 A tarefa espera por você O registro recusa novas tentativas
Fig. 1 · O ciclo de tarefas. Uma declaração leva a uma nova execução, nunca direto ao fechamento.
Abrir
Uma tarefa é aberta com o objetivo e um comando de aceitação que pode ser executado de novo. O comando é verificado quando a tarefa é aberta, sem ser executado: um critério que não pode rodar como está escrito é recusado nesse momento, e não descoberto no fim.
Atribuir
Cada tarefa tem um único responsável por vez, por meio de um lease e de um fence token. Uma escrita de um responsável desatualizado é recusada.
Trabalhar
O agente trabalha no seu próprio git worktree, na sua própria branch.
Declarar
O aviso do agente de que terminou é registrado como uma declaração. Uma declaração não fecha a tarefa.
Verificar
O próprio RADAR executa o comando de aceitação, na revisão atual do trabalho. O relatório do agente é lido, mas não é prova.
Fechar ou reabrir
Se o teste passar, a tarefa pode ser fechada, e o registro de verificação fica guardado como prova. Se falhar, a tarefa é reaberta com a falha anexada.
Limites
Três tentativas do worker e, depois, três tentativas de outro agente que assume a tarefa. A partir daí, o registro recusa novas tentativas e a tarefa espera por você. Trocar de modelo, de sessão ou de máquina não zera a contagem, e cada nova tentativa precisa dizer o que mudou.

02 O registro

Um registro em que todos os agentes escrevem.

Todos os agentes leem e escrevem no mesmo registro de tarefas: um arquivo SQLite local. Ele é o registro único de quem está com cada tarefa, do que foi declarado e do que o teste mostrou.

Tarefas
O objetivo e o comando de aceitação, escritos antes de o trabalho começar.
Responsável
O responsável atual de cada tarefa, com o seu lease e o seu fence token.
Tentativas
Contadas por tarefa, entre agentes, modelos e máquinas.
Declarações
O aviso de um agente de que o trabalho está feito, mantido separado dos resultados.
Registros de verificação
Cada execução de aceitação, vinculada ao commit e à árvore de trabalho em que rodou.
Alterações
Uma alteração no comando de aceitação é registrada com a versão antiga e a nova; uma liberação manual também é registrada.

Memória

Decisões e lições são notas em Markdown com uma fonte e um escopo. Um índice local as pesquisa offline, e um hook coloca as relevantes diante de um agente antes que ele aja. Como as notas são Markdown simples, você pode abri-las no Obsidian.

03 Isolamento

Cada tentativa na sua própria cópia.

  • Cada tentativa trabalha no seu próprio git worktree, na sua própria branch. Dois workers nunca compartilham uma árvore.
  • Um worker não pode reescrever o próprio comando de aceitação. Só o gestor pode alterá-lo, e apenas antes de a tarefa ser fechada; toda alteração guarda a versão antiga e a nova.
  • O trabalho só chega à sua branch principal depois que a verificação passa, e o comando de aceitação roda mais uma vez após o merge.
  • Force-pushes são recusados para todos os papéis.
  • Essas regras rodam como código, antes e depois de um modelo ser chamado. Não são um prompt, então um agente não consegue contorná-las com argumentos.

04 Agentes

Os agentes que você já usa.

O RADAR executa Claude Code, Codex CLI, OMP e Hermes Agent, no seu computador ou em servidores Linux próprios. Ele não os substitui: eles continuam fazendo o trabalho.

  • Claude Code
  • Codex CLI
  • OMP
  • Hermes Agent
Um só contrato
As mesmas regras, o mesmo registro, o mesmo controle de verificação e os mesmos limites de tentativas valem para os quatro.
Gestor
O agente com quem você conversa é o gestor: ele abre tarefas, entrega-as aos workers e só fecha uma tarefa com um registro de verificação aprovado.
Workers
Os workers fazem o trabalho nos seus próprios worktrees. Eles não podem fechar tarefas nem alterar o seu comando de aceitação.

05 Local em primeiro lugar

Local em primeiro lugar.

O RADAR não precisa de conta nem de nuvem.

Na sua máquina
O registro, as notas de memória, os worktrees e cada execução de verificação, no seu computador ou em servidores Linux próprios.
Precisa de rede
Seus agentes, que se comunicam com os próprios provedores como já fazem hoje. Qualquer outro serviço externo é opcional e fica desligado até você ativá-lo.
Requisitos
Windows ou Linux (o macOS ainda não é compatível), Python 3.12 ou mais recente, e Git. O RADAR usa apenas a biblioteca padrão do Python.
Custo
Nenhuma cobrança própria. Os agentes continuam usando as contas em que você os conectou. Uma API paga só é usada se você indicar o provedor e um orçamento.
Instalação
Dê ao seu agente de programação o link do repositório e diga “instale isto”. Ele verifica o seu computador, pergunta antes de instalar o que estiver faltando, instala o RADAR em um ambiente virtual e informa o que radar init e radar doctor dizem.

06 Comandos

Uma lista curta de comandos.

Os comandos que você vai usar primeiro. Os marcadores de posição ficam entre colchetes angulares.

ComandoO que faz
radar init Configura o diretório do RADAR e o registro.
radar doctor Verifica a instalação e lista os serviços opcionais não configurados.
radar task new --project P --goal "…" --accept "<command>" Abre uma tarefa com o seu comando de aceitação.
radar dispatch <task> Entrega uma tarefa a um agente, que trabalha no seu próprio worktree.
radar status Mostra o sistema inteiro.
radar verify <task> Executa de novo o comando de aceitação na revisão atual.
radar task done <task> --evidence "<verification report>" Fecha uma tarefa. Recusado até a verificação passar.
radar collect Coleta o trabalho concluído.
radar integrate Integra o trabalho verificado na main.
radar stop Pausa o trabalho e ativa o STOP.
radar go Remove o STOP e lista o que pode continuar.
radar memory search --local "<words>" Pesquisa as notas de memória offline.
radar uiradar web Abre o painel de controle no terminal ou em um navegador.
radar help --all Lista todos os comandos. radar <command> -h mostra os detalhes.

07 O que ele não faz

O que o RADAR não faz.

  • Não substitui os seus agentes. Eles continuam escrevendo o código; o RADAR dá a eles um único registro, uma verificação que não podem pular e uma memória.
  • Não escreve os seus testes. Uma verificação só é tão boa quanto o seu teste; o RADAR torna o teste explícito antes de o trabalho começar, para que uma pessoa possa lê-lo.
  • Não fecha trabalho que não tem teste. Uma tarefa sem um comando de aceitação executável é recusada quando é aberta.
  • Não mantém os seus agentes offline. Eles continuam se comunicando com os próprios provedores, como fazem hoje.
  • A edição aberta é para desenvolvedores individuais, não para equipes; uma edição para empresas está em desenvolvimento.

08 Situação

Em acesso antecipado

Acesso antecipado agora. Código aberto no lançamento público.

O RADAR está em acesso antecipado. Ele será publicado como código aberto sob a licença Apache-2.0 no lançamento público. Para participar, escreva para nós.