active|lab/13nessun sorgente pubblico
Lab entry · 2026 · Automation

Workbench

Il piano sopra la coda dei task: non *esegui questo comando*, ma *questa è una cosa che finisce, ecco come si comincia e come si controlla*.

Una lista di cose da fare scritta in libertà smette di funzionare intorno alla trentesima riga: non si vede più quale si può cominciare adesso, né come si farà a sapere che è chiusa.

Una riga nasce solo con tre campi oltre al testo: il pensiero grezzo da cui viene, conservato verbatim; il progetto a cui appartiene; e come si verifica che sia fatta, che vale sempre, anche per «telefona al commercialista». I vocabolari sono chiusi — chi è io o sistema, azione è fare, guarda, ricerca o controlla — così scrivere una riga è una classificazione invece che una redazione.

«Bloccata» non si scrive, si deduce dai legami fra righe: due verità sullo stesso fatto divergono sempre, quindi ce n’è una sola, e quando un blocco si chiude le righe sotto si aprono da sole. Quello che invece non finisce mai non è una riga ma un’area, che sta fuori dalla lista e ogni tanto ci versa qualcosa; se non versa niente per due settimane si marca da giustificare — è il controllo che al radar YouTube è mancato, quando ha calcolato a vuoto per dodici giorni.

Sotto, una coda distribuita assegna il lavoro a worker intermittenti che fanno solo connessioni in uscita, e reggono quindi anche dietro NAT. Una riga si può far eseguire da un agente, ma in due passaggi separati: il primo genera il diff in una copia Git effimera, il secondo lo applica a un checkout autorizzato solo se commit di base e stato pulito coincidono ancora. Nessun click di approvazione applica codice per conto suo.

Il pezzo che mancava in mezzo. Sotto c’era già una coda che sa eseguire tipi di task ma non sa cosa sia una circolare; sopra, elenchi in Markdown che sapevano cosa importava ma non facevano succedere niente. I due piani restano separati apposta, in due servizi e due repository: il Workbench sa che la coda esiste, la coda non sa che il Workbench esiste.

Quello che ancora non fa è dichiarato invece che nascosto: nessuna fonte esterna è collegata, e il rango delle righe è scritto a mano — il modello che dovrebbe calcolarlo è una riga della lista stessa.