diffox
Blog

Harness engineering e loop engineering: qual è la differenza

L’harness engineering costruisce l’apparato intorno a un agente IA, il loop engineering il sistema che lo esegue a ripetizione. Definizioni, fonti e un esempio.

CondividiXLinkedIn

In sintesi. L’harness è tutto ciò che, in un agente IA, non è il modello: gli strumenti, il file delle regole, i controlli che verificano l’output. Il loop engineering sta un piano più su: non scrivi più tu all’agente un prompt dopo l’altro, ma progetti il sistema che lo avvia, ne controlla il lavoro e lo ferma. Il 15 ottobre 2026 abbiamo letto le fonti primarie che usano i due termini; mostriamo le parti su uno strumento di code review.

  • I quattro livelli stanno uno dentro l’altro. Nel prompt engineering cambi l’istruzione, nel context engineering tutto ciò che il modello vede, nell’harness engineering il codice intorno a una singola esecuzione, nel loop engineering le esecuzioni nel tempo.
  • Il loop engineering progetta il sistema che scrive i prompt all’agente. Le fonti elencano un trigger, una condizione di arresto che una macchina può verificare, uno stato che resta tra un’esecuzione e l’altra, un verificatore separato da chi fa il lavoro, un budget e il passaggio a un umano.
  • Un controllo scritto in codice non si fida della parola del modello. Se a verificare l’output è semplice codice, lo stesso input dà ogni volta lo stesso risultato.
  • L’harness cresce dagli errori. Un errore che si ripete diventa una regola o un controllo; la parte che non serve più si toglie.

Che cos’è un harness?

4livelli: prompt, contesto, harness, loop
6parti nell’harness
6parti nel loop

Da solo, un modello linguistico riceve un input e produce testo. Non può eseguire codice, non ricorda nulla da una conversazione all’altra e non può accedere a ciò che è emerso dopo il suo addestramento. Perché possa farlo, gli si costruisce intorno un apparato: un ciclo che lo chiama più e più volte, gli strumenti che può chiamare, i file che riceve a ogni sessione, i controlli che verificano il suo output. Questo apparato si chiama harness.

Tra le fonti che abbiamo letto, la definizione più ampia è nell’articolo di LangChain: «A harness is every piece of code, configuration, and execution logic that isn’t the model itself.» Cioè ogni pezzo di codice, ogni configurazione, ogni logica di esecuzione che non sia il modello stesso. Un livello del genere gira anche dentro gli agenti di programmazione: OpenAI chiama «Codex harness» il livello che fornisce il ciclo dell’agente e la logica di esecuzione; Anthropic chiama «agent harness» quello che fa funzionare Claude Code.

L’harness engineering è il lavoro di progettare questo apparato. Anche noi ne costruiamo uno: diffox è uno strumento di code review con IA che esamina le pull request. Gli esempi più sotto vengono dalla sua pipeline di review e dal loop che fa girare lungo una pull request (come funziona è in un articolo a parte).

Come le fonti definiscono l’harness engineering

Il termine è nuovo e le fonti che abbiamo letto non lo definiscono allo stesso modo. La tabella riporta ogni fonte con parole sue e la sua data.

Quattro fonti che usano il termine harness engineering, le loro date e l’accento di ciascuna
FonteDataChe cosa dice
Mitchell Hashimoto, «My AI Adoption Journey»5 febbraio 2026Dà un nome a un’abitudine: «I’ve grown to calling this ‘harness engineering.’» Quando l’agente fa un errore, si costruisce una soluzione che gli impedisca di rifarlo.
OpenAI, «Harness engineering: leveraging Codex in an agent-first world»11 febbraio 2026Usa il termine nel titolo, ma non lo definisce nel testo. Descrive il lavoro dell’ingegnere come progettare ambienti, specificare l’intento e costruire cicli di feedback.
LangChain, «The Anatomy of an Agent Harness»10 marzo 2026«Agent = Model + Harness.» L’harness è tutto ciò che non è il modello stesso; l’harness engineering è costruire sistemi intorno al modello.
Anthropic, «Harness design for long-running application development»24 marzo 2026Dice «Harness design». Ogni parte di un harness è un presupposto su qualcosa che il modello non sa fare da solo.

Fonte: la pagina di ogni articolo, 15 ottobre 2026. Le citazioni sono in lingua originale.

Hashimoto descrive un’abitudine e, nello stesso paragrafo, scrive anche di non sapere se esista già un termine affermato. LangChain invece traccia un confine: tutto ciò che sta fuori dal modello è harness. Il primo ti dice che cosa fare, il secondo dove guardare.

Due dettagli non si vedono nella tabella. La formula «Agent = Model + Harness» compare nell’articolo di LangChain, non in quello di Hashimoto. E la parola «harness» è più vecchia del termine: il 26 novembre 2025 Anthropic aveva definito il Claude Agent SDK un «general-purpose agent harness». Nei cinque articoli di Anthropic che abbiamo letto l’espressione «harness engineering» non compare.

Che cosa cambi a ogni livello

I quattro termini non sono intercambiabili: sono quattro livelli uno dentro l’altro. Nella definizione di Anthropic, il prompt engineering indica i metodi per scrivere e organizzare le istruzioni per il modello. Il context engineering indica invece le strategie per scegliere e curare l’insieme di token che il modello ha davanti durante l’inferenza, comprese le informazioni che vi arrivano al di fuori del prompt. Il contesto è tutto ciò che il modello vede in quella chiamata.

Non abbiamo trovato una fonte primaria che attribuisca il context engineering a una sola persona. I due usi che abbiamo letto sono di giugno 2025: il 19 giugno Tobi Lütke ha scritto di preferire questo nome a «prompt engineering» («the art of providing all the context for the task to be plausibly solvable by the LLM»), e il 25 giugno Andrej Karpathy si è detto d’accordo. La definizione di Anthropic è del 29 settembre 2025.

A ogni livello cambi qualcosa di diverso. Prompt engineering. Ciò che cambi: Istruzione. Cosa scrivi al modello in una chiamata. Context engineering. Ciò che cambi: Contesto. Ciò che il modello vede in una chiamata. Harness engineering. Ciò che cambi: Apparato. Il codice intorno al modello, per esecuzione. Loop engineering. Ciò che cambi: Loop. Il sistema che avvia e ferma le esecuzioni. I livelli stanno uno dentro l’altro: ognuno contiene il precedente.
I quattro livelli e ciò che cambi in ciascuno. Definizioni: Anthropic (prompt e context engineering), LangChain (harness) e Osmani (loop), 15 ottobre 2026.

L’harness engineering sta un livello più all’esterno. Non si ferma a ciò che il modello vede; progetta anche ciò che succede dopo la sua risposta: quali controlli passa l’output, come si divide il lavoro, che cosa cambia quando un errore si ripete. Ogni livello contiene il precedente: secondo LangChain, gli harness di oggi servono soprattutto a mettere in pratica un buon context engineering. Il loop engineering sta ancora più all’esterno: non progetta una singola esecuzione, ma le esecuzioni nel tempo. Gli dedichiamo una sezione a parte più sotto.

Il lavoro tipico in ciascuno dei quattro livelli e che cosa si fa quando un errore si ripete
LivelloLavoro tipicoQuando l’errore si ripete
Prompt engineeringScrivere il prompt di sistema, aggiungere esempiSi riscrive l’istruzione
Context engineeringScegliere quali file, quale cronologia e quali strumenti entrano nel contestoSi aggiunge ciò che manca, si toglie il superfluo
Harness engineeringCostruire il ciclo, gli strumenti, i controlli e la divisione del lavoroSi scrive un controllo o uno strumento che intercetta l’errore
Loop engineeringCostruire il trigger, la condizione di arresto, il verificatore e il budgetSi rendono più severi la condizione di arresto o il verificatore

Di che cosa è fatto un harness

Gli articoli che abbiamo letto elencano le parti con nomi diversi. Ognuna delle sei voci qui sotto compare in almeno due fonti.

Le sei parti di un harness. Ognuna serve a un lavoro che il modello non sa fare da solo. agent loop Ciclo: Chiama il modello, gli passa l’esito dello strumento, ripete. tools Strumenti: Leggono file, eseguono comandi, lanciano i test. AGENTS.md Regole e memoria: Porta ciò che si impara in una sessione a quella dopo. sub-agents Subagenti: Dividono il lavoro; ognuno ha un compito stretto e definito. lint · test · hook Controlli: L’output lo verificano regole scritte in codice, non il modello. logs · traces Osservabilità: Log e tracce: l’agente vede il risultato, tu vedi l’agente.
Le parti di un harness, raggruppate da noi. Fonti: LangChain, OpenAI, Anthropic e Hashimoto, 15 ottobre 2026.

Al centro c’è il ciclo. Anthropic descrive gli agenti come modelli che usano strumenti in un ciclo, guidati dal feedback dell’ambiente. Nell’articolo sull’Agent SDK i passi del ciclo sono: raccogli il contesto, agisci, verifica il lavoro, ripeti. Strumenti e osservabilità mostrano al modello il risultato di ciò che ha fatto: nel repository descritto da OpenAI, l’agente può leggere log, metriche e tracce. I subagenti dividono il lavoro; secondo Anthropic ognuno prende un compito mirato e parte da una finestra di contesto pulita.

I controlli stanno a parte, perché non li scrive il modello: li scrivi tu. Secondo l’articolo sull’Agent SDK, il feedback migliore sono regole chiaramente definite per l’output, con la spiegazione di quale regola è stata violata e perché. OpenAI fa rispettare le sue regole di architettura in modo automatico, con linter personalizzati e test strutturali.

Che cos’è il loop engineering?

L’harness si occupa di una singola esecuzione. Il loop engineering si fa una domanda in più: chi avvia l’agente, quando, e chi decide se il lavoro è finito? Il nome l’ha dato Addy Osmani in un articolo del 7 giugno 2026: «Loop engineering is replacing yourself as the person who prompts the agent. You design the system that does it instead.» Cioè smettere di essere la persona che scrive all’agente un turno dopo l’altro, e progettare il sistema che lo fa al posto tuo.

A far nascere il termine sono state due frasi. Lo stesso giorno Peter Steinberger ha suggerito di smettere di scrivere prompt agli agenti e di progettare loop che li scrivano al posto nostro. Secondo quanto riporta Osmani, anche Boris Cherny, a capo di Claude Code, aveva detto: «My job is to write loops». Nessuno dei due usa l’espressione «loop engineering»; il nome l’ha dato l’articolo di Osmani.

Quattro fonti che usano il termine loop engineering, le loro date e l’accento di ciascuna
FonteDataChe cosa dice
Addy Osmani, «Loop Engineering»7 giugno 2026Dà il nome e colloca il loop un piano sopra l’harness: «Loop engineering sits one floor above the harness.»
Anthropic, «Loop engineering: Getting started with loops»30 giugno 2026«On the Claude Code team, we define loops as agents repeating cycles of work until a stop condition is met.»
IBM, «What Is Loop Engineering?»17 luglio 2026Progettare i flussi di lavoro che, ripetendosi, portano gli agenti all’obiettivo fissato dall’utente con il minimo intervento umano.
«Loop Engineering: Building Blocks, Adoption, and Impact» (arXiv)22 agosto 2026Una rassegna degli scritti sul tema. Scrive che le fonti sono in gran parte d’accordo su che cosa contenga un buon loop.

Fonte: la pagina di ogni articolo, 15 ottobre 2026. Le citazioni sono in lingua originale.

Le parti su cui le fonti concordano sono sei. La rassegna le elenca così: esecuzioni avviate da un trigger, condizioni di arresto verificabili da una macchina, file di stato persistenti, subagenti verificatori, budget di token e punti di passaggio a un umano.

  • Trigger. Ciò che avvia l’esecuzione: un timer o un evento.
  • Condizione di arresto. Un criterio con cui la macchina può decidere che il lavoro è finito: i test passano, la lista è vuota.
  • Stato. Ciò che resta scritto da un’esecuzione all’altra; sta fuori dalla finestra di contesto.
  • Verificatore. Un controllore separato dall’agente che fa il lavoro.
  • Budget. Un limite di turni o di token; superato quello, il loop si ferma.
  • Passaggio a un umano. Il punto in cui il lavoro che il loop non sa risolvere passa a una persona.

L’articolo di Anthropic mostra tre delle parti insieme. Ogni volta che Claude Code vuole fermarsi, un modello valutatore separato controlla la condizione. Lo rimanda al lavoro finché l’obiettivo non è raggiunto o non si arriva al numero di turni che hai fissato. Come dice Osmani, così l’agente che scrive il codice non è quello che dà il voto al proprio lavoro.

Su un punto le fonti divergono: di quale ciclo parla «loop»? La rassegna distingue i due. Nel ciclo dell’agente, il modello chiama strumenti dentro una singola esecuzione e agisce in base al risultato; questo ciclo fa parte dell’harness. Il loop engineering, invece, si occupa delle strutture che avviano, controllano e riavviano queste esecuzioni nel tempo. Alcuni articoli di vendor usano la parola nel primo senso; anche il blog di ingegneria di Anthropic definisce l’harness «il ciclo che chiama Claude». In questo articolo, loop ha il secondo senso.

Nemmeno il termine è ancora consolidato. La stessa rassegna scrive che il dibattito non ha chiarito se il loop engineering sia una nuova disciplina, una tecnica di passaggio o un’etichetta di marketing. A luglio 2026 ne è stato persino proposto un successore, con il nome «graph engineering».

Com’è fatto un harness in uno strumento di code review

Come stanno insieme le parti lo mostra la pipeline di review di diffox. Una pull request passa per quattro fasi prima di diventare commenti; in ogni fase si vede un’idea di harness.

4 fasi, ognuna mostra un’idea di harness. Una pull request passa per quattro fasi prima di diventare commenti. 1. Contesto e assegnazione. Ciò che il modello riceve prima: la modifica e le tue regole. 2. Revisione specialistica. Il lavoro si divide: ogni agente cerca una sola cosa. 3. Verifica delle evidenze. La parola del modello la verifica il codice. 4. Scegli e pubblica. Viene pubblicato ciò che devi correggere.
Le quattro fasi di diffox e l’idea di harness a cui corrisponde ciascuna. I dettagli delle fasi sono nel nostro articolo sull’architettura.

Contesto e assegnazione è ciò che l’harness dà al modello prima che si metta al lavoro. Gli agenti specializzati ricevono quattro cose: il diff, i file prima e dopo, la descrizione della pull request e, se c’è, il file delle regole del tuo repository (AGENTS.md o CLAUDE.md). Il file delle regole viene letto dal branch in cui la pull request verrà unita, non dal branch della pull request stessa; così una pull request non può cambiare le regole della propria review. Questa garanzia non viene da una frase nelle istruzioni, ma dal punto da cui si legge il file.

Revisione specialistica è la divisione del lavoro. «C’è un bug qui?» è una domanda ampia. diffox fa leggere la stessa modifica ad agenti specializzati. Il team ha 17 agenti specializzati; ognuno ha la propria istruzione e cerca una sola cosa: uno gli errori di logica, uno i problemi di concorrenza, uno i test che non verificano nulla.

Anche la forma dell’output la decide l’harness. Perché un rilievo conti, deve dire tre cose: che cosa afferma, che cosa va storto e in quale situazione, e il codice su cui si basa, citato alla lettera. Gli agenti non danno numeri di riga; diffox trova la riga da sé, cercando la citazione nel file.

Scegli e pubblica è un passo a sé. Ogni rilievo ha una classe: Critico, Avviso o Suggerimento. Sulla pull request arriva ciò che devi correggere, cioè i rilievi critici e gli avvisi. I suggerimenti restano per un po’ nella pagina Rilievi della console, e da lì puoi pubblicare quelli che vuoi. Una review non blocca mai un merge.

Una verifica che il modello non può aggirare a parole

La terza fase, verifica delle evidenze, è il punto in cui in questo esempio l’idea di harness si vede più chiaramente. Un modello linguistico può scrivere qualcosa di convincente e sbagliato: cita una riga che non è nel file, contesta codice che la pull request non ha toccato, ripete lo stesso problema tre volte con tre frasi diverse. Questa fase lega ogni rilievo al file stesso e non alla parola del modello.

Queste verifiche sono semplice codice, non una chiamata a un modello: allo stesso input danno ogni volta la stessa risposta.

  • La citazione del rilievo viene cercata nel file. Una citazione che non si trova non ha una riga da indicare; se la riga trovata non è in ciò che la pull request ha modificato, il rilievo è fuori ambito.
  • I rilievi che fanno la stessa obiezione nello stesso punto vengono uniti in uno solo.
  • Se un rilievo dice che il codice contraddice un testo, anche la sua seconda citazione viene cercata parola per parola.

Il modello non può convincere la verifica della citazione: la verifica non valuta argomentazioni, cerca la citazione nel file.

Si può anche far controllare un modello da un altro modello, ma il risultato resta il giudizio di un modello. Anthropic scrive che il suo modello valutatore, nei primi tentativi, trovava problemi reali, poi si convinceva che non fossero importanti e approvava il lavoro. Per questo verificare con il codice ciò che il codice può verificare è una parte a sé; la domanda che richiede un giudizio resta al modello.

In un piccolo progetto la stessa idea sta in poche righe. L’esempio qui sotto non è il codice di diffox; mostra lo schema.

# ESEMPIO: cerca nel file la citazione data dal modello
def quote_exists(finding: dict, files: dict[str, str]) -> bool:
    quote = finding.get("quote", "").strip()
    source = files.get(finding.get("file", ""), "")
    return bool(quote) and quote in source

Il loop che gira lungo una pull request

Una singola review attraversa un harness; una pull request, invece, attraversa molte review. Il codice viene scritto, diffox lo esamina, il codice cambia, si fa di nuovo il push. Che il codice lo scriva una persona o un agente di programmazione, questo è un loop, e ognuna delle sue sei parti ha in diffox un corrispettivo nel codice.

Sei parti, lungo una pull request. Ogni push è un’esecuzione; il loop dura finché la pull request non si chiude. trigger Trigger: All’apertura della pull request e a ogni push. state Stato: L’ultimo commit esaminato; il turno nuovo riparte da lì. verifier Verificatore: Una review separata da chi scrive il codice. stop condition Condizione di arresto: Un limite per pull request, scelto da te. budget Budget: Un turno alla volta; si esamina solo il push più recente. escalation Passaggio a un umano: Il merge lo decidi tu; se menzioni diffox, riesamina.
I nomi delle parti vengono dall’elenco della rassegna; i corrispettivi dal codice di diffox.

La vera lezione di questo loop sta in due scelte. La prima: il verificatore non conta una modifica come un successo. Quando le righe di un rilievo cambiano, in fondo al commento si scrive solo in quale commit sono cambiate. Non si scrive mai «corretto», perché il codice riscritto può contenere ancora il bug. Anche un articolo scientifico di giugno 2026 pone la stessa condizione alla regola di arresto: non scambiare mai un errore per un successo.

La seconda: la condizione di arresto la scegli tu. Le review automatiche si fermano a un limite per pull request; il limite lo cambi nella scheda Impostazioni della console. Dopo il limite, chiedi una nuova review menzionando diffox in un commento. Anche la decisione sul merge è tua: una review non blocca mai un merge. È qui che il loop passa il lavoro a una persona.

Come un harness cresce con gli errori

Un harness non si costruisce una volta per poi lasciarlo lì. Nella descrizione di Hashimoto le strade sono due: per gli errori semplici una riga nel file delle regole, per il resto uno strumento programmato. Scrive che ogni riga del file delle regole del suo progetto nasce da un cattivo comportamento di un agente.

L’articolo di OpenAI racconta lo stesso ciclo in un team: tutto il codice del prodotto lo scrive Codex, gli ingegneri costruiscono l’ambiente. Quando l’agente fa fatica, lo trattano come un segnale: si trova ciò che manca (uno strumento, una protezione, della documentazione) e lo si aggiunge al repository. Quando la documentazione non basta, la regola passa nel codice. Il file delle regole resta breve: un AGENTS.md di circa 100 righe, un indice e non un’enciclopedia.

C’è anche la direzione opposta. Secondo Anthropic, ogni parte di un harness è un presupposto su qualcosa che il modello non sa fare da solo, e può invecchiare man mano che i modelli migliorano. Quando arriva un nuovo modello, l’harness si riesamina; la parte che non è più portante si toglie.

Sviluppando questo strumento, nel nostro repository da questo ciclo sono nate tre abitudini:

  • Ogni regola sta accanto all’errore che l’ha fatta scrivere. Una regola senza il suo motivo la cancella il primo a cui dà fastidio.
  • Di un test ci si fida dopo averlo visto diventare rosso quando si annulla la correzione. Anche un test che non verifica nulla appare verde.
  • Quando cambia un controllo scritto in codice, la versione vecchia e quella nuova si rieseguono sui risultati già salvati. Non serve una nuova esecuzione a pagamento; ogni caso in cui le due versioni divergono si vede uno per uno.

Da dove cominciare nel tuo progetto

Per cominciare non devi scegliere un framework né cambiare modello. Dentro l’agente di programmazione che usi gira già un harness; tu gli aggiungi le parti del tuo progetto.

Cinque passi, in quest’ordine. Si comincia senza cambiare modello né framework. Annota l’errore che si ripete: Quando l’agente fa lo stesso errore una seconda volta. Aggiungi una riga al file delle regole: Con il suo motivo; il file deve restare breve. Se si ripete, porta la regola nel codice: Una regola del linter, un test o un piccolo script. Metti alla prova il controllo stesso: Annulla la correzione: il controllo deve diventare rosso. Con un nuovo modello, rivedi le parti: Togli la parte che non è più portante.
I passi sono raccolti dai consigli degli articoli di Hashimoto, OpenAI e Anthropic e dalle abitudini del nostro repository.

Prima guarda l’errore, poi scegli il rimedio più economico. Per gli errori semplici il primo rimedio è una riga nel file delle regole. Se l’errore si ripete nonostante la regola, porta la regola nel codice: una regola del linter, un test, uno script. Il consiglio generale di Anthropic vale anche qui: trova la soluzione più semplice e aumenta la complessità solo quando serve.

Anche quando costruisci il tuo primo loop l’ordine è lo stesso: prima verifica che una singola esecuzione sia affidabile, poi scrivi la condizione di arresto e il limite. Il consiglio di Anthropic è chiaro: fermarsi quando l’obiettivo è raggiunto o quando si arriva al numero massimo di turni; per gestire l’uso dei token, i confini del loop devono essere netti.

Domande frequenti

Che cos’è l’harness engineering?

È il lavoro di progettare e migliorare l’apparato (harness) intorno al modello in un agente IA: il ciclo che chiama il modello, gli strumenti, il file delle regole, i subagenti e i controlli che verificano l’output. Mitchell Hashimoto, in un articolo del 5 febbraio 2026, ha dato questo nome a un’abitudine: quando l’agente fa un errore, si costruisce una soluzione che gli impedisca di rifarlo.

Che cos’è il loop engineering?

È il lavoro di progettare il sistema che avvia un agente IA, ne controlla il lavoro e lo ferma, invece di scrivergli un prompt dopo l’altro. Il nome l’ha dato Addy Osmani in un articolo del 7 giugno 2026. Il team di Claude Code di Anthropic definisce i loop come agenti che ripetono cicli di lavoro finché non è soddisfatta una condizione di arresto.

Che differenza c’è tra harness engineering e loop engineering?

L’harness equipaggia una singola esecuzione: strumenti, file delle regole, controlli. Il loop governa molte esecuzioni nel tempo: quando parte l’agente, chi controlla se il lavoro è finito, quando ci si ferma e quando il lavoro passa a una persona. La maggior parte delle fonti mette il loop un piano sopra l’harness; alcuni articoli, invece, usano la parola per il ciclo dell’agente dentro una singola esecuzione.

Che differenza c’è tra context engineering e harness engineering?

Il context engineering è il lavoro di scegliere e ordinare tutto ciò che il modello vede in una chiamata: istruzioni, file, cronologia della conversazione, definizioni degli strumenti. L’harness engineering lo comprende e va un passo oltre: progetta quali controlli passa l’output dopo la risposta del modello, come si divide il lavoro e che cosa cambia quando un errore si ripete.

Da dove vengono questi termini?

Il context engineering si è diffuso a giugno 2025 con i post di Tobi Lütke e Andrej Karpathy. Tra le fonti che abbiamo letto, la prima a usare il nome harness engineering è l’articolo di Mitchell Hashimoto del 5 febbraio 2026. Il nome loop engineering l’ha dato Addy Osmani il 7 giugno 2026; a luglio 2026 ne è stato proposto un successore, «graph engineering». Le fonti non definiscono questi termini allo stesso modo.

Che cosa dicono OpenAI e Anthropic di questi termini?

OpenAI chiama «Codex harness» il livello che fornisce il ciclo dell’agente e la logica di esecuzione, e ha pubblicato un articolo intitolato «Harness engineering»; non abbiamo trovato una pagina di OpenAI che usi il termine loop engineering. Anthropic dice «harness design»; il 30 giugno 2026 ha pubblicato un articolo intitolato «Loop engineering: Getting started with loops», e la documentazione di Claude Code rimanda a quell’articolo.

diffox è un harness o un loop?

diffox è un esempio di tutti e due. In una singola review, una pull request passa per quattro fasi: contesto e assegnazione, revisione specialistica, verifica delle evidenze, scegli e pubblica. E lungo la pull request diffox costruisce un loop: esamina ogni push, riprende dall’ultimo commit esaminato, segnala il rilievo le cui righe sono cambiate e ferma le review automatiche al limite che hai scelto tu.