Questo è il mio terminale in questo momento.

13 agenti Claude Code, ognuno nel proprio pane tmux, che lavorano sulla stessa codebase. Non è un esperimento. Non è per vantarmi. Così rilascio software ogni singolo giorno.
Il progetto è Beadbox, una dashboard in tempo reale per monitorare agenti AI di coding. È costruito dalla stessa flotta di agenti che monitora. Gli agenti scrivono il codice, lo testano, lo revisionano, lo impacchettano e lo rilasciano. Io coordino.
Se stai gestendo più di due o tre agenti e ti chiedi come tenere traccia di quello che fanno, questo è il punto a cui sono arrivato dopo mesi di iterazione. Un bug segnalato alle 9 del mattino è stato fixato entro le 15, mentre quattro altri workstream procedevano in parallelo. Non sempre fila tutto liscio, ma la produttività è reale.
Il team
Ogni agente ha un file CLAUDE.md che definisce la sua identità: di cosa si occupa, di cosa no, e come comunica con gli altri agenti. Non sono assistenti generici "fai qualsiasi cosa". Ognuno ha un compito preciso e confini espliciti.
| Gruppo | Agenti | Di cosa si occupano |
|---|---|---|
| Coordinamento | super, pm, owner | Dispatch del lavoro, specifiche di prodotto, priorità di business |
| Engineering | eng1, eng2, arch | Implementazione, system design, test suite |
| Qualità | qa1, qa2 | Validazione indipendente, release gate |
| Operations | ops, shipper | Test di piattaforma, build, esecuzione dei rilasci |
| Growth | growth, pmm, pmm2 | Analytics, posizionamento, contenuti pubblici |
La parola chiave è confini. eng2 non può chiudere issue. qa1 non scrive codice. pmm non tocca mai il sorgente dell'app. Super assegna il lavoro ma non implementa. I confini esistono perché senza, gli agenti vanno alla deriva. "Aiutano" facendo refactor di codice che non ne aveva bisogno, chiudendo issue non verificate, o prendendo decisioni architetturali per cui non sono qualificati.
Ogni CLAUDE.md inizia con un paragrafo di identità e una sezione sui confini. Ecco una versione abbreviata di quella di eng2:
## Identity
Engineer for Beadbox. You implement features, fix bugs, and write tests. You own implementation quality: the code you write is correct, tested, and matches the spec.
## Boundary with QA
QA validates your work independently. You provide QA with executable verification steps. If your DONE comment doesn't let QA verify without reading source code, it's incomplete.
Questo pattern scala. Quando ho iniziato con 3 agenti, bastava un unico prompt generico. Con 13, ruoli espliciti e protocolli fanno la differenza tra coordinamento e caos.
Il livello di coordinamento
Tre strumenti tengono insieme la flotta.
beads è un issue tracker open-source e Git-native, pensato esattamente per questo workflow. Ogni task è un "bead" con stato, priorità, dipendenze e un thread di commenti. Gli agenti leggono e scrivono sullo stesso database locale tramite una CLI chiamata bd.
bd update bb-viet --claim --actor eng2 # eng2 prende in carico un bug
bd show bb-viet # visualizza spec completa + commenti
bd comments add bb-viet --author eng2 "PLAN: ..." # eng2 pubblica il suo piano
gn / gp / ga sono tool di messaggistica tmux. gn invia un messaggio al pane di un altro agente. gp sbircia l'output recente di un altro agente (senza interromperlo). ga mette in coda un messaggio non urgente.
gn -c -w eng2 "[from super] You have work: bb-viet. P2." # dispatch
gp eng2 -n 40 # controlla il progresso
ga -w super "[from eng2] bb-viet complete. Pushed abc123." # report
I protocolli CLAUDE.md definiscono i percorsi di escalation, il formato di comunicazione e i criteri di completamento. Ogni agente sa: claimare il bead, commentare il piano prima di scrivere codice, far girare i test prima del push, commentare DONE con i passi di verifica, segnare come ready for QA, riferire a super.
Ecco come funziona in pratica. Questo è un bead reale di oggi: super assegna il task, eng2 commenta un piano numerato, eng2 commenta DONE con i passi di verifica QA e i criteri di accettazione spuntati, super lo passa a QA.

Super fa un giro di controllo ogni 5-10 minuti: sbirciare l'output di ogni agente attivo, controllare lo stato dei bead, verificare che la pipeline non si sia bloccata. È come un turno di reperibilità in produzione, solo che i servizi sono agenti AI e gli incident sono "eng2 è sospettosamente silenzioso da 20 minuti."
Una giornata reale
Ecco cos'è successo davvero un mercoledì di fine febbraio 2026.
9:14 – Un utente GitHub di nome ericinfins apre la Issue #2: non riesce a connettere Beadbox al suo server Dolt remoto. L'app supporta solo connessioni locali. Owner lo nota e lo segnala a super.
9:30 – Super smista il lavoro. Arch progetta un flusso di autenticazione per la connessione (toggle TLS, campi username/password, passaggio di variabili d'ambiente). PM scrive la spec con i criteri di accettazione. Eng prende in carico e inizia a implementare.
Nel frattempo, in parallelo:
PM segnala due bug scoperti durante il release testing. Uno è cosmetico: il badge nell'header mostra "v0.10.0-rc.7" invece di "v0.10.0" sulle build finali. L'altro è specifico della piattaforma: il tool di screenshot automation restituisce una striscia vuota sui Mac ARM64 perché Apple Silicon renderizza la WebView di Tauri attraverso il compositing Metal, e il backing store è vuoto.
Ops trova la root cause del bug degli screenshot. Il fix è elegante: dopo la cattura, verificare se l'altezza dell'immagine è sospettosamente piccola (sotto 50px per una finestra che dovrebbe essere alta 800px) e fare fallback alla cattura schermo basata su coordinate.
Growth estrae i dati da PostHog e fa un'analisi di correlazione IP. La scoperta: le Reddit Ads hanno generato 96 click e zero utenti retained attribuibili. Il traffico dal README su GitHub converte al 15,8%. Questo articolo esiste grazie a quell'analisi.
Eng1, sbloccato dal design dell'Activity Dashboard di arch, inizia a costruire il cross-filter state management e le funzioni utility. 687 test verdi.
QA1 valida il fix del badge nell'header: avvia un server di test, usa la browser automation per verificare che il badge venga renderizzato correttamente, controlla che 665 unit test passino, segna PASS.
14:45 – Shipper fa il merge della PR del release candidate, pusha il tag v0.10.0 e triggera il workflow di promozione. La CI genera artefatti per tutte e 5 le piattaforme (macOS ARM, macOS Intel, Linux AppImage, Linux .deb, Windows .exe). Shipper verifica ogni artefatto, aggiorna le release note su entrambi i repo, fa il redeploy del sito e aggiorna il Homebrew cask.
15:12 – Owner risponde sulla GitHub Issue #2:
Buone notizie: la v0.10.0 è appena uscita con supporto completo all'autenticazione del server Dolt. Aggiorna e dovresti essere sbloccato.
Bug segnalato la mattina. Fix rilasciato nel pomeriggio. E nel frattempo, la feature successiva era già in fase di design, un altro bug veniva investigato, le analytics venivano analizzate, e QA stava verificando in autonomia un fix separato.
Non è perché 13 agenti sono veloci. È perché 13 agenti sono paralleli.
