Pitch: Daedalus: um plano de controle local que transforma especificação em código revisado e testado
Fala, galera! Quero compartilhar um projeto open source que venho construindo
Daedalus: https://github.com/ozzono/daedalus
O que é
O Daedalus é um control plane local, escrito em Go e orquestrado pelo Temporal, que transforma uma especificação em código funcionando, revisado e testado, sem nunca tocar na sua cópia de trabalho.
A ideia central: você passa um repositório, um ID de issue e a descrição da tarefa. O Daedalus cria um worktree git isolado e roda ali dentro dois loops com gate de revisão, tudo confinado via ai-jail (o único caminho gravável é o próprio worktree):
- Implementação: um agente (Claude Code por padrão; também suporta opencode, Amp, pi e aider) implementa a mudança, enquanto um agente revisor aprueba o código. O loop roda até a aprovação.
- Testes: o agente escreve a suíte de testes, que precisa passar na suíte nativa do repositório e na aprovação do revisor de testes. Se o revisor perceber que falta mudança de implementação, ele devolve o finding para o loop de código e o processo recomeça de onde parou.
Como o Temporal oferece execução durável, cada passo é auditável na UI dele e sobrevive a reinícios do worker. Uma execução que morre ou se estaciona (cota do provider estourada, revisor travado) preserva o trabalho, e o daedalus continue retoma de onde parou.
Como usar
# instala o CLI
go install github.com/ozzono/daedalus/cmd/daedalus@latest
# sobe um servidor Temporal local
temporal server start-dev
# cria a config, ajusta e inicia o worker
daedalus init
mkdir -p ~/.config/daedalus && cp config-example.yaml ~/.config/daedalus/config.yaml
daedalus worker
# dispara um pipeline
daedalus run /caminho/do/repo 42 "Adicione um endpoint /health que retorna 200."
Ao final, o trabalho aprovado fica preservado num branch tipo daedalus/issue-42-1726320000. Dá para acompanhar tudo pela UI do Temporal (http://127.0.0.1:8233) ou usar daedalus list, daedalus attach e daedalus guide para listar, reconectar e direcionar uma execução em andamento sem reiniciá-la.
Por que pode te interessar
- Segurança: o agente roda "preso" num worktree descartável, e seu checkout nunca é alterado.
- Qualidade: nada é entregue sem aprovação de revisor + testes verdes, em duas fases.
- Resiliência: execução durável; crashes e limites de quota não perdem o trabalho.
- Flexibilidade: multi-agente (claude, opencode, amp, pi, aider) e multi-provider via config.
- Experiência de uso: o trabalho passa a ser de arquitetura e decisão e, ao final, a depender da necessidade, de verificação do resultado.
O projeto está em evolução, e feedback é muito bem-vindo, seja sobre a arquitetura, a UX do CLI ou ideias de features. Sinta-se convidado a usar e, havendo melhorias e sugestões, a contribuir.