Night Shift
Un bug alla volta, con confini stretti anche di notte.
Il backlog cresce durante il giorno e resta fermo tutta la notte.
Un progetto reale accumula correzioni piccole e ben delimitate: bug riproducibili, test mancanti, casi limite. Nessuna merita una giornata intera, ma insieme occupano ore ogni settimana e vengono continuamente rimandate.
Le otto ore in cui nessuno tocca il repository sono la risorsa inutilizzata.
Se una correzione è piccola e verificabile da un test, agenti AI specializzati possono prepararla una alla volta: provano una modifica, la testano e conservano le prove nel report. La sicurezza non viene dagli agenti, ma dai confini del processo e dalla revisione umana del mattino dopo.
L’orchestratore legge un solo bug eleggibile dal backlog, crea il branch bot/BUG-… e un worktree dedicato. Il Coordinator (agente AI) fa lavorare in sequenza tre agenti: un analista, un implementatore e un adversarial reviewer; i test vengono eseguiti davvero nel worktree. Qualunque esito lascia un report durevole con il diff, i comandi e il risultato.
- Il backlog è un manifest versionato: il turno rifiuta task non pronti o non ammessi alla notte.
- Il worktree e l’ambiente virtuale sono temporanei e isolati dalla checkout di deploy; nessun rischio di deploy sconsiderati.
- Dopo la adversarial review è concesso un solo rework per evitare che il costo AI esploda.
La mattina non c’è una modifica già in produzione: c’è una proposta piccola, un branch da ispezionare e un report che conserva anche i fallimenti. Se la correzione è troppo ampia, i test non danno una prova sufficiente o il reviewer non è convinto, il turno si ferma e rimanda la decisione a una persona.
Questa demo è una simulazione della macchina a stati: mostra un solo bug che attraversa la pipeline, non l'esecuzione reale del servizio.
Una simulazione della macchina a stati: un solo bug, un worktree temporaneo e al massimo due tentativi.
Python · Git worktree · Codex / Claude Code · systemd · SQLite · AI
L’orchestratore è Python e viene avviato da systemd. Ha un timeout di un’ora, al massimo due tentativi di implementazione e un solo subagente specializzato alla volta. I report vengono scritti sia nel worktree sia nel repository che ha avviato il turno, così sopravvivono alla sua rimozione.
Questo è un esempio di pipeline agentica in cui un modello AI coordina in sequenza altri tre modelli per la risoluzione di un task.
Limiti e prossimi passi
Il turno resta volutamente stretto: lavora su un solo bug, in un worktree isolato, e concede al massimo due tentativi di implementazione. I merge automatici sono esclusi: il report e il branch aspettano sempre una revisione umana.
Il passo successivo è potenziare i controlli e la pipeline perché possa operare continuativamente e revisionare il codice con scelte autonome, non per forza sequenziali.