active|in uso su 1 repositorysorgente non pubblico
Project 03 · 2026 · Active

Night Shift

Un bug alla volta, con confini stretti anche di notte.

01 Problem

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.

02 Idea

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.

03 Solution

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.
04 Result
19
bug risolti al 21/8/26
2
tentativi massimi
0
merge automatici

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.

05 Demo

Questa demo è una simulazione della macchina a stati: mostra un solo bug che attraversa la pipeline, non l'esecuzione reale del servizio.

BACKLOG
ORCHESTRATOR
WORKTREE + BRANCH
BACKEND CODEX
BACKEND CLAUDE CODE
COORDINATOR main_agent
ANALYZER night_analyzer
TENTATIVO 1
IMPLEMENT night_implementer
TEST PASS
ADVERSARIAL REVIEW night_reviewer FAIL
REWORK1 / 1
↳ rientro sull'implementazione
TENTATIVO 2
IMPLEMENT night_implementer
TEST PASS
ADVERSARIAL REVIEW night_reviewer PASS
REPORT
Esempio — una correzione
03:00 BUG selezionato dal backlog
03:01 branch e worktree isolati creati
03:02 orchestrator seleziona il backend
03:03 coordinator lancia l'agent night_analyzer
03:05 analisi conclusa: sicuro da implementare
03:07 coordinator lancia l'agent night_implementer
03:14 test superato al primo tentativo
03:15 coordinator lancia l'agent night_reviewer
03:16 prima adversarial review fallita
03:17 reviewer richiede l'unico rework consentito
03:27 seconda adversarial review superata · PASS
03:29 report scritto da coordinator: attende revisione umana

Una simulazione della macchina a stati: un solo bug, un worktree temporaneo e al massimo due tentativi.

06 Under the hood

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.