Costruisco software parlandoci dal telefono.
Axon è un programma sempre acceso che ricorda i miei progetti: i file, le decisioni prese, gli errori da non ripetere. Gli scrivo cosa serve, prepara il contesto, fa scrivere il codice a un agente e controlla che funzioni.
Adesso segue 21 progetti, 5 toccati negli ultimi sette giorni, e ricorda 322 decisioni e 1 vincolo fra tutti. Ogni numero su questa pagina arriva da lui.
Ogni assistente riparte da zero. Gli rispieghi il progetto, indovina il resto, e quello che avete capito insieme sparisce quando chiudi la finestra.
Axon si ricorda. E quando ha finito non dice “fatto”: dice se ha funzionato, perché lo ha provato.
Sa quali file contano per il lavoro di adesso e cosa è già stato deciso. Il lavoro continua anche quando chiudo il telefono: al ritorno trovo il risultato, la verifica e quello che nel frattempo ha imparato.
Come funziona
Scrivo cosa serve
In italiano, da una chat sul telefono. Nessun terminale e nessuna sessione da tenere aperta: se chiudo l'app, il lavoro continua senza di me.
Axon prepara il contesto
Dal grafo tira fuori i file che contano per quel lavoro, i vincoli che valgono lì e le decisioni già prese. Parte da quello che la conversazione ha appena toccato, perché una frase da sola non contiene nomi di file.
Un agente scrive il codice, e viene controllato
Poi girano i controlli, tipi e test. Se falliscono riprova con l'errore in mano, invece di dichiarare vittoria.
Quello che ha imparato torna nel grafo
Decisioni, vincoli scoperti, errori da non ripetere. Non in un file di appunti: collegati ai file a cui si riferiscono, i punti rosa del disegno qui sopra.
Il giro dopo parte da lì. È un anello, non una catena: ogni lavoro finito rende il successivo un po' meno cieco.
Grafo
7 tipi di nodo e 13 di arco: file, decisioni, vincoli, ipotesi, progetti. Costruito con analisi statica dei sorgenti e con la storia di git: quali file cambiano sempre insieme, chi li ha scritti. Persistito con write-ahead log e snapshot atomici, quindi ricostruibile dopo un crash senza rianalizzare tutto.
Compilatore del contesto
Risolve i file seme e poi attraversa il grafo con una coda a priorità, raccogliendo dipendenze, vincoli e decisioni che annotano quei file. Tutto sotto un budget in token: quello che non entra viene troncato voce per voce e dichiarato mancante, mai inventato. La qualità della selezione è misurata contro i turni reali già avvenuti, non stimata.
Esecuzione
Gli agenti stanno dietro un router e si raggiungono solo dalla loro CLI, mai da un SDK: cambiare modello o fornitore non tocca il resto. Ogni tentativo passa dal controllo dei tipi e dai test; se fallisce, il successivo riceve l'errore, i file toccati e un'ipotesi sulla causa.
Turni
Un turno non appartiene alla richiesta che l'ha aperto. Ogni evento finisce in un log durevole, quindi ricaricare la pagina o perdere la rete riattacca dal punto giusto. Il riavvio aspetta che i turni in corso finiscano, perché tagliarli butterebbe via quello che avrebbero registrato.
Revisione e calibrazione
Ogni consegna viene giudicata da un secondo agente che non può scrivere, e ogni esito viene registrato per tipo di lavoro. Quando la probabilità storica di riuscita è bassa, il sistema si ferma e chiede invece di riprovare a caso.
TypeScript su una VPS. Nessun database server: il grafo sta su file, perché un utente su una macchina non ne ha bisogno. Non c'è un'azienda dietro e non è in vendita. Se domani smettesse di girare, i numeri su questa pagina si fermerebbero.