{"id":4851,"date":"2026-06-30T14:20:39","date_gmt":"2026-06-30T13:20:39","guid":{"rendered":"https:\/\/www.fullo.net\/blog\/?p=4851"},"modified":"2026-06-30T14:20:41","modified_gmt":"2026-06-30T13:20:41","slug":"definition-of-done-per-llm","status":"publish","type":"post","link":"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/","title":{"rendered":"Definition of Done per LLM"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Con l&#8217;arrivo degli agenti e della loro autonomia operativa, dare a un LLM un compito complesso \u00e8 diventato molto pi\u00f9 semplice: glielo descrivi e si mette al lavoro da solo, aprendo i file e lanciando i comandi necessari, iterando senza che io debba intervenire a ogni passaggio. Il rovescio della medaglia \u00e8 che un agente lasciato a briglia sciolta parte volentieri per la tangente. Per questo Claude Code ha aggiunto <code>\/goal<\/code>, un comando pensato per favorire la convergenza: gli dai una condizione di completamento e l&#8217;agente continua a lavorare turno dopo turno finch\u00e9 quella condizione non risulta soddisfatta, senza che tu lo solleciti ogni volta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 uno strumento utilissimo, con un dettaglio che per\u00f2 cambia tutto: converge verso la condizione che gli scrivi tu e, quando la condizione \u00e8 buona, l&#8217;autonomia lavora per te; quando \u00e8 vaga, lavora comunque, solo che a vuoto, e te ne accorgi dal conto dei token.<\/p>\n\n\n\n<!--more-->\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine-1.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"317\" src=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine-1.png?resize=580%2C317&#038;ssl=1\" alt=\"\" class=\"wp-image-4852\" srcset=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine-1.png?resize=700%2C382&amp;ssl=1 700w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine-1.png?resize=300%2C164&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine-1.png?resize=768%2C419&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine-1.png?w=1024&amp;ssl=1 1024w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Per essere precisi, l&#8217;effetto anti-tangente \u00e8 una conseguenza del meccanismo, non una funzione a parte: <code>\/goal<\/code> fissa un traguardo e tiene l&#8217;agente in cammino verso quello, ricontrollando a ogni turno se ci \u00e8 arrivato. E qui sta il perno di tutto il resto: a fare il controllo, dopo ogni turno, \u00e8 un modello piccolo e veloce che legge quello che l&#8217;agente ha fatto comparire nella conversazione, senza eseguire lui i controlli (<a href=\"https:\/\/code.claude.com\/docs\/en\/goal\">documentazione ufficiale<\/a>). Il verdetto si basa su ci\u00f2 che finisce in chat.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adesso prova a scrivere il goal come lo scrivono quasi tutti:<\/p>\n\n\n\n<pre class=\"wp-block-code has-subtle-background-background-color has-background has-small-font-size\"><code>\/goal ottimizza il SEO di questa pagina\n\n<em>? loop infinito, oppure vittoria dichiarata su un output che non \u00e8 valutabile<\/em><\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Parlare di una generica ottimizzazione SEO non fa capire all&#8217;agente cosa voglia dire &#8220;ottimizzato&#8221; e, pertanto, l&#8217;agente converger\u00e0 verso qualcosa, ma non \u00e8 detto che sia verso il mio obiettivo, perch\u00e9 non gliel&#8217;ho dato chiaramente. E questo costa pi\u00f9 di quanto sembri: gli LLM si pagano, in denaro e in energia, e una condizione vaga raddoppia il conto. <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A quel goal manca una Definition of Done (DoD), la condizione di &#8220;fatto&#8221; su cui basare un verdetto. Senza, il risultato ha un nome che ormai conosciamo: <em>slop<\/em>, cio\u00e8 roba formalmente corretta e sostanzialmente inutile, di quelle che superano quasi sempre il test del &#8220;sembra a posto&#8221;. Ed \u00e8 proprio per questo che conviene decidere la condizione, e decidere bene, prima di premere invio.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Stessa metrica, verdetti opposti<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Prendiamo la metrica pi\u00f9 rassicurante che esista, il 100% di test coverage (la copertura dei test, cio\u00e8 la percentuale di codice attraversata almeno una volta dai test automatici). \u00c8 deterministica, la calcola una macchina e non si presta a discussioni, al punto che sembra la DoD perfetta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo \u00e8, ma dipende sempre da quale obiettivo le si mette dietro, e per mostrarlo provo a salire di livello tenendo ferma la metrica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Se l&#8217;obiettivo \u00e8 la copertura del codice, il 100% di coverage \u00e8 applicabile e corretto: l&#8217;obiettivo e la metrica coincidono. Se l&#8217;obiettivo \u00e8 la qualit\u00e0 del codice, la stessa metrica resta applicabile e diventa sbagliata, perch\u00e9 il codice testato non significa codice scritto bene. Se l&#8217;obiettivo \u00e8 codice utile, resta applicabile e, di nuovo, sbagliata, e per giunta l&#8217;utilit\u00e0 scavalca il recinto dell&#8217;output ed entra nel dominio dell&#8217;outcome, dove una percentuale di righe coperte non arriva. La metrica non si \u00e8 mossa di una virgola, eppure, salendo di obiettivo, il suo verdetto \u00e8 cambiato sotto i nostri occhi.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Qui torna utile un vocabolario proveniente dal mondo del prodotto e degli <a href=\"https:\/\/www.fullo.net\/blog\/tag\/okr\/\" type=\"post_tag\" id=\"2321\">OKR<\/a>. La distinzione \u00e8 tra output e outcome. <\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>L&#8217;<strong>output<\/strong> \u00e8 ci\u00f2 che faccio: l&#8217;artefatto, i test scritti, la pagina modificata. <\/li>\n\n\n\n<li>L&#8217;<strong>outcome<\/strong> \u00e8 ci\u00f2 che ottengo: il risultato che volevo, l&#8217;utente che porta a casa il lavoro per cui ha &#8220;assunto&#8221; il software. <\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">La coverage misura l&#8217;output e tace sull&#8217;outcome.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E qui sta il buco da non lasciare aperto: <strong>applicabile non vuol dire giusto<\/strong>. Una DoD pu\u00f2 essere perfettamente applicabile e perfettamente fuori bersaglio, ed \u00e8 il modo pi\u00f9 educato per produrre <em>slop, <\/em>perch\u00e9 chiudi il tuo &#8220;fatto&#8221; con la coscienza a posto, pur consegnando la cosa sbagliata. L&#8217;antidoto sta prima del prompt: ragionare sull&#8217;obiettivo reale prima di scrivere il comando. \u00c8 il cuore di <em><a href=\"https:\/\/leanpub.com\/pensare-con-gli-llm\">Pensare con gli LLM, the Right Way<\/a><\/em>. La questione delle <a href=\"https:\/\/www.fullo.net\/blog\/tag\/kpi\/\" type=\"post_tag\" id=\"2346\">metriche<\/a> la sviscero invece in <em><a href=\"https:\/\/leanpub.com\/kpi\">KPI the right way<\/a><\/em>; qui mi basta il principio: una metrica pu\u00f2 essere precisa, deterministica e muta sul risultato che ti interessa.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sei mosse per ricavare una DoD dall&#8217;obiettivo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Sapere che la DoD dipende dall&#8217;obiettivo serve a poco se poi non so come ottenerla. Queste sono le mosse che uso, e hanno tutte lo stesso vincolo: devono produrre qualcosa che l&#8217;agente possa muovere e mostrare in conversazione, perch\u00e9 \u00e8 quello che <code>\/goal<\/code> sa leggere.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Caccia all&#8217;aggettivo.<\/strong> Ogni obiettivo vago nasconde un aggettivo: &#8220;migliore&#8221;, &#8220;ottimizzato&#8221;, &#8220;pulito&#8221;. La mossa \u00e8 sostituirlo con un numero o con un s\u00ec\/no.<\/p>\n\n\n\n<pre class=\"wp-block-code has-subtle-background-background-color has-background has-small-font-size\"><code>\"migliora il documento\"\n  ? 0 errori ortografici\n  ? lunghezza 1500-2000 parole\n  ? 100% degli acronimi spiegati al primo uso\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Checklist a esito binario.<\/strong> Trasformo l&#8217;obiettivo in una lista in cui ogni voce si chiude con un s\u00ec o un no e con un&#8217;evidenza accanto.<\/p>\n\n\n\n<pre class=\"wp-block-code has-subtle-background-background-color has-background has-small-font-size\"><code>\/goal la checklist SEO \u00e8 verde al 100%: title sotto 60 caratteri, una sola H1,\ntutte le immagini con alt text, meta description tra 120 e 158 caratteri\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La DoD \u00e8 il 100% delle voci, oppure il 90% se decido di accettare un margine. L&#8217;importante \u00e8 che il margine lo dichiari prima, non dopo aver visto il risultato.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ancora un exit code.<\/strong> La DoD pi\u00f9 forte \u00e8 un comando il cui codice di uscita \u00e8 il verdetto.<\/p>\n\n\n\n<pre class=\"wp-block-code has-subtle-background-background-color has-background has-small-font-size\"><code>\/goal pytest restituisce 0 ed eslint --max-warnings 0 restituisce 0, senza toccare i file di test\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Qui non c&#8217;\u00e8 spazio per l&#8217;interpretazione, ed \u00e8 il tipo di DoD che vorrei avere sempre.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Baseline pi\u00f9 delta.<\/strong> Quando l&#8217;obiettivo \u00e8 un miglioramento, fisso il punto di partenza e la variazione attesa. &#8220;<em>Migliora le performance&#8221; <\/em>diventa:<em> &#8220;tempo di risposta da X a Y millisecondi, dimensione del bundle ridotta del 30%, query N+1 portate da 12 a 0.&#8221; <\/em>Il &#8220;+40%&#8221; che ogni tanto scrivo nei prompt funziona solo se indico rispetto a cosa. Un delta senza baseline \u00e8 un auspicio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Invarianti, cio\u00e8 cose che non devono rompersi.<\/strong> Met\u00e0 DoD \u00e8 spesso un negativo verificabile: zero test esistenti rotti, diff confinato ai file previsti, zero nuove vulnerabilit\u00e0 in <code>npm audit<\/code>. \u00c8 la parte che dimentichiamo di chiedere, e quella che fa pi\u00f9 danni quando manca.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Campione pi\u00f9 soglia.<\/strong> A volte il 100% non \u00e8 verificabile per costruzione. Un endpoint che accetta input liberi dagli utenti ha uno spazio dei casi, di fatto, sterminato: non lo collaudi &#8220;<em>tutto<\/em>&#8220;. Qui la mossa \u00e8 fissare un campione e un criterio di accettazione.<\/p>\n\n\n\n<pre class=\"wp-block-code has-subtle-background-background-color has-background has-small-font-size\"><code>\/goal 300 input casuali non provocano nessun crash n\u00e9 eccezione non gestita,\noppure fermati dopo 30 turni\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dichiaro il limite invece di fingere una certezza che non ho. Su questa torno alla fine, perch\u00e9 \u00e8 quella che separa una DoD giusta da una DoD applicabile.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Il caso che mi riguarda di persona: il TOV<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">&#8220;<em>100% allineato al TOV<\/em>&#8221; (TOV sta per Tone of Voice, il tono di voce editoriale) suona proprio come la DoD da evitare. Nel mio caso regge, e il motivo \u00e8 istruttivo. Il mio documento di TOV \u00e8 gi\u00e0 scritto come una checklist deterministica, e quindi diventa un goal vero:<\/p>\n\n\n\n<pre class=\"wp-block-code has-subtle-background-background-color has-background has-small-font-size\"><code>\/goal il documento rispetta il TOV: 0 trattini lunghi, 0 costruzioni \"non X ma Y\",\nogni acronimo spiegato al primo uso, \"tensione\" mai usata da sola\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Questo articolo lo dimostra mentre lo leggete: &#8220;<em>100% allineato al TOV<\/em>&#8221; diventa verificabile esattamente nella misura in cui ho trasformato il gusto in regole discrete. Dove la scrittura resta al &#8220;<em>gusto<\/em>&#8220;, la DoD non si applica e tocca a me.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Il goal che non sa quando fermarsi<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">C&#8217;\u00e8 un tipo di goal che sembra perfetto ma non pu\u00f2 funzionare: quello che richiede una validazione asincrona, cio\u00e8 un verdetto che dipende da qualcosa che arriva dopo, dall&#8217;esterno della sessione. L&#8217;esempio tipico \u00e8: &#8220;<em>migliora la pagina finch\u00e9 l&#8217;NPS supera 40<\/em>&#8221; (Net Promoter Score, l&#8217;indice di raccomandazione ottenuto dalle risposte di utenti reali).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;agente quel numero non lo pu\u00f2 muovere nei suoi turni, perch\u00e9 l&#8217;NPS si aggiorna sull&#8217;orologio degli utenti, in giorni o settimane, non su quello dell&#8217;assistente, in secondi o minuti. Se lo metti in un goal, l&#8217;agente entra in un&#8217;attesa indefinita: ricontrolla un valore che alla sua cadenza non cambia, e brucia token senza sapere quando fermarsi. Una condizione \u00e8 applicabile solo se l&#8217;agente pu\u00f2 soddisfarla durante la sessione. &#8220;<em>NPS > 40<\/em>&#8221; resta un ottimo obiettivo, e si verifica altrove, nel monitoraggio, fuori da un goal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Da giusta ad applicabile<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il criterio &#8220;<em>applicabile<\/em>&#8221; si regge, in fondo, su una sola cosa: che l&#8217;agente, all&#8217;interno della sessione, possa davvero muovere e mostrare il numero che il valutatore legge. Questo funziona per l&#8217;output, l&#8217;unica cosa che esiste come artefatto a portata dei suoi turni. L&#8217;outcome accade invece pi\u00f9 tardi e fuori dalla sessione, IRL (direbbero i <em>gggiovini<\/em>, o forse i pi\u00f9 giovani di me), e l\u00ec lo strumento non arriva: sa verificare ci\u00f2 che produce, non ci\u00f2 che cambia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">C&#8217;\u00e8 anche un motivo pi\u00f9 sottile per tenersi l&#8217;outcome in mano, e lo offre lo strumento stesso. <code>\/goal<\/code> aumenta l&#8217;agenticit\u00e0 dell&#8217;assistente, la sua capacit\u00e0 di andare avanti da solo, e quell&#8217;autonomia ha una sua deriva: pi\u00f9 l&#8217;agente procede senza di me, pi\u00f9 mi viene comodo smettere di guardare. In <em><a href=\"https:\/\/leanpub.com\/pensare-con-gli-llm\">Pensare con gli LLM, the Right Way<\/a><\/em> la chiamo &#8220;<em>deriva da agenticit\u00e0<\/em>&#8220;, ed \u00e8 la ragione per cui una DoD applicabile serve anche da guinzaglio, proprio dove l&#8217;agente, lasciato solo, resterebbe a girare a vuoto su un valore che non si muove.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mettendo insieme i pezzi, conviene tenere l&#8217;outcome fuori dal goal. La ragione nuova \u00e8 che pu\u00f2 scivolarti via mentre lo misuri: quando un indicatore diventa il bersaglio, smette di indicare. Le altre due le abbiamo gi\u00e0 incontrate e basta richiamarle: l&#8217;outcome vive fuori dalla sessione e, forzarlo nel loop, si brucia budget a vuoto, che \u00e8 poi l&#8217;argomento pi\u00f9 concreto da portare a chi guarda le fatture.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Che \u00e8 poi la solita storia, e qui chiudo come sempre: sapere cosa fare (l&#8217;outcome, che \u00e8 mio) e come farlo (l&#8217;output, dove vive la DoD) \u00e8 gi\u00e0 parte della soluzione. Il difficile \u00e8 ricordarsi di decidere il &#8220;fatto&#8221; prima di premere invio, e di non chiedere all&#8217;agente di chiudere un numero che non pu\u00f2 muovere.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">E voi, come scegliete i criteri per chiudere un goal?<\/p>\n","protected":false},"excerpt":{"rendered":"<p>TL;DR: prima del prompt, il verdetto<\/p>\n<p>Dare a un LLM un comando vago come &#8220;ottimizza il SEO&#8221; o &#8220;migliora il documento&#8221; \u00e8 il modo pi\u00f9 rapido per bruciare token e ritrovarsi con un lavoro perfetto e inutile. Prima del prompt serve una Definition of Done (DoD), una condizione di &#8220;fatto&#8221; da cui ricavare un verdetto. Il punto scomodo \u00e8 doppio: una DoD pu\u00f2 essere precisa al 100% e comunque sbagliata, perch\u00e9 il suo valore dipende dall&#8217;obiettivo; e pu\u00f2 essere giusta nello spirito e impossibile da applicare. Da &#8220;DoD giusta&#8221; a &#8220;DoD applicabile&#8221; usando il comando \/goal di Claude.<\/p>\n","protected":false},"author":1,"featured_media":4852,"comment_status":"closed","ping_status":"open","sticky":false,"template":"templates\/template-cover.php","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[2461,2406,5],"tags":[2441,2413,2430,2412,2360,2361],"class_list":["post-4851","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artificial-intelligence","category-okr","category-tecnologia","tag-agents","tag-ai","tag-claude","tag-llm","tag-outcome","tag-output"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Definition of Done per LLM - Fullo<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Definition of Done per LLM - Fullo\" \/>\n<meta property=\"og:description\" content=\"TL;DR: prima del prompt, il verdetto Dare a un LLM un comando vago come &quot;ottimizza il SEO&quot; o &quot;migliora il documento&quot; \u00e8 il modo pi\u00f9 rapido per bruciare token e ritrovarsi con un lavoro perfetto e inutile. Prima del prompt serve una Definition of Done (DoD), una condizione di &quot;fatto&quot; da cui ricavare un verdetto. Il punto scomodo \u00e8 doppio: una DoD pu\u00f2 essere precisa al 100% e comunque sbagliata, perch\u00e9 il suo valore dipende dall&#039;obiettivo; e pu\u00f2 essere giusta nello spirito e impossibile da applicare. Da &quot;DoD giusta&quot; a &quot;DoD applicabile&quot; usando il comando \/goal di Claude.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/\" \/>\n<meta property=\"og:site_name\" content=\"Fullo\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-30T13:20:39+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-30T13:20:41+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"559\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Francesco Fullone\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fullo\" \/>\n<meta name=\"twitter:site\" content=\"@fullo\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Francesco Fullone\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/06\\\/30\\\/definition-of-done-per-llm\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/06\\\/30\\\/definition-of-done-per-llm\\\/\"},\"author\":{\"name\":\"Francesco Fullone\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\"},\"headline\":\"Definition of Done per LLM\",\"datePublished\":\"2026-06-30T13:20:39+00:00\",\"dateModified\":\"2026-06-30T13:20:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/06\\\/30\\\/definition-of-done-per-llm\\\/\"},\"wordCount\":1594,\"publisher\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\"},\"image\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/06\\\/30\\\/definition-of-done-per-llm\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/immagine-1.png?fit=1024%2C559&ssl=1\",\"keywords\":[\"agents\",\"ai\",\"claude\",\"llm\",\"outcome\",\"output\"],\"articleSection\":[\"artificial intelligence\",\"okr\",\"tecnologia\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/06\\\/30\\\/definition-of-done-per-llm\\\/\",\"url\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/06\\\/30\\\/definition-of-done-per-llm\\\/\",\"name\":\"Definition of Done per LLM - Fullo\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/06\\\/30\\\/definition-of-done-per-llm\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/06\\\/30\\\/definition-of-done-per-llm\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/immagine-1.png?fit=1024%2C559&ssl=1\",\"datePublished\":\"2026-06-30T13:20:39+00:00\",\"dateModified\":\"2026-06-30T13:20:41+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/06\\\/30\\\/definition-of-done-per-llm\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/06\\\/30\\\/definition-of-done-per-llm\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/06\\\/30\\\/definition-of-done-per-llm\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/immagine-1.png?fit=1024%2C559&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/immagine-1.png?fit=1024%2C559&ssl=1\",\"width\":1024,\"height\":559},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/06\\\/30\\\/definition-of-done-per-llm\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Definition of Done per LLM\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/\",\"name\":\"Fullo\",\"description\":\"nulla e&#039; impossibile per chi non lo deve fare!\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\",\"name\":\"Francesco Fullone\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\",\"width\":622,\"height\":622,\"caption\":\"Francesco Fullone\"},\"logo\":{\"@id\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/10\\\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1\"},\"sameAs\":[\"http:\\\/\\\/www.fullo.net\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fullo\",\"https:\\\/\\\/x.com\\\/fullo\"],\"url\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/author\\\/fullo\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Definition of Done per LLM - Fullo","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/","og_locale":"it_IT","og_type":"article","og_title":"Definition of Done per LLM - Fullo","og_description":"TL;DR: prima del prompt, il verdetto Dare a un LLM un comando vago come \"ottimizza il SEO\" o \"migliora il documento\" \u00e8 il modo pi\u00f9 rapido per bruciare token e ritrovarsi con un lavoro perfetto e inutile. Prima del prompt serve una Definition of Done (DoD), una condizione di \"fatto\" da cui ricavare un verdetto. Il punto scomodo \u00e8 doppio: una DoD pu\u00f2 essere precisa al 100% e comunque sbagliata, perch\u00e9 il suo valore dipende dall'obiettivo; e pu\u00f2 essere giusta nello spirito e impossibile da applicare. Da \"DoD giusta\" a \"DoD applicabile\" usando il comando \/goal di Claude.","og_url":"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/","og_site_name":"Fullo","article_published_time":"2026-06-30T13:20:39+00:00","article_modified_time":"2026-06-30T13:20:41+00:00","og_image":[{"width":1024,"height":559,"url":"https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine-1.png","type":"image\/png"}],"author":"Francesco Fullone","twitter_card":"summary_large_image","twitter_creator":"@fullo","twitter_site":"@fullo","twitter_misc":{"Scritto da":"Francesco Fullone","Tempo di lettura stimato":"9 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/#article","isPartOf":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/"},"author":{"name":"Francesco Fullone","@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"headline":"Definition of Done per LLM","datePublished":"2026-06-30T13:20:39+00:00","dateModified":"2026-06-30T13:20:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/"},"wordCount":1594,"publisher":{"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"image":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine-1.png?fit=1024%2C559&ssl=1","keywords":["agents","ai","claude","llm","outcome","output"],"articleSection":["artificial intelligence","okr","tecnologia"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/","url":"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/","name":"Definition of Done per LLM - Fullo","isPartOf":{"@id":"https:\/\/www.fullo.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/#primaryimage"},"image":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine-1.png?fit=1024%2C559&ssl=1","datePublished":"2026-06-30T13:20:39+00:00","dateModified":"2026-06-30T13:20:41+00:00","breadcrumb":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/#primaryimage","url":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine-1.png?fit=1024%2C559&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine-1.png?fit=1024%2C559&ssl=1","width":1024,"height":559},{"@type":"BreadcrumbList","@id":"https:\/\/www.fullo.net\/blog\/2026\/06\/30\/definition-of-done-per-llm\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fullo.net\/blog\/"},{"@type":"ListItem","position":2,"name":"Definition of Done per LLM"}]},{"@type":"WebSite","@id":"https:\/\/www.fullo.net\/blog\/#website","url":"https:\/\/www.fullo.net\/blog\/","name":"Fullo","description":"nulla e&#039; impossibile per chi non lo deve fare!","publisher":{"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.fullo.net\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":["Person","Organization"],"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c","name":"Francesco Fullone","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1","url":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1","width":622,"height":622,"caption":"Francesco Fullone"},"logo":{"@id":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/10\/hawiaina-gold-circled-white.png?fit=622%2C622&ssl=1"},"sameAs":["http:\/\/www.fullo.net","https:\/\/www.linkedin.com\/in\/fullo","https:\/\/x.com\/fullo"],"url":"https:\/\/www.fullo.net\/blog\/author\/fullo\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine-1.png?fit=1024%2C559&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3OSc1-1gf","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":4603,"url":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/","url_meta":{"origin":4851,"position":0},"title":"Agenti disfunzionali, software funzionante","author":"Francesco Fullone","date":"23\/03\/2026","format":false,"excerpt":"Per ottenere software decente da cinque agenti AI, ho dovuto simulare un ufficio dove nessuno si fida di nessuno. PM paranoico, QA smascherato, Security che controverifica tutto. Diciassette iterazioni, 606 test, e una domanda aperta che ancora non so rispondere: sto applicando ingegneria sociale come workaround a un limite strutturale\u2026","rel":"","context":"In &quot;lifehack&quot;","block_context":{"text":"lifehack","link":"https:\/\/www.fullo.net\/blog\/category\/di-tutto-un-po\/lifehack\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1200%2C670&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1200%2C670&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1200%2C670&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1200%2C670&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/immagine.png?fit=1200%2C670&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":4607,"url":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/","url_meta":{"origin":4851,"position":1},"title":"Adversarial verification come metodo","author":"Francesco Fullone","date":"07\/04\/2026","format":false,"excerpt":"Nell'articolo sugli agenti disfunzionali ho descritto come ho dovuto introdurre dinamiche di adversarial verification tra agenti AI per ottenere qualit\u00e0: verifica incrociata obbligatoria, challenge sistematiche, accountability sui falsi positivi. Quel metodo adesso \u00e8 una skill open-source per Claude Code. Si chiama adversarial-verify, e applica Chain-of-Verification combinata con tre tecniche di\u2026","rel":"","context":"In &quot;lifehack&quot;","block_context":{"text":"lifehack","link":"https:\/\/www.fullo.net\/blog\/category\/di-tutto-un-po\/lifehack\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=1200%2C654&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=1200%2C654&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=1200%2C654&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=1200%2C654&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=1200%2C654&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":4698,"url":"https:\/\/www.fullo.net\/blog\/2026\/06\/02\/come-claude-code-lavora-nelle-grandi-codebase\/","url_meta":{"origin":4851,"position":2},"title":"Come Claude Code lavora nelle grandi codebase","author":"Francesco Fullone","date":"02\/06\/2026","format":false,"excerpt":"Cosa succede quando un assistente di codice incontra un monorepo da milioni di righe, sistemi legacy di vent'anni e decine di repository, e perch\u00e9 il segreto non \u00e8 il modello, ma tutto ci\u00f2 che gli costruisci intorno.","rel":"","context":"In &quot;tecnologia&quot;","block_context":{"text":"tecnologia","link":"https:\/\/www.fullo.net\/blog\/category\/tecnologia\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/image.png?fit=1024%2C559&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/image.png?fit=1024%2C559&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/image.png?fit=1024%2C559&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/image.png?fit=1024%2C559&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4708,"url":"https:\/\/www.fullo.net\/blog\/2026\/06\/06\/project-traversing-per-llm\/","url_meta":{"origin":4851,"position":3},"title":"Project traversing per LLM","author":"Francesco Fullone","date":"06\/06\/2026","format":false,"excerpt":"Uso Claude con i progetti da quando esistono, uno per ogni verticale del mio lavoro, ciascuno blindato col suo master prompt e le sue skill per ridurre il mio carico cognitivo e le allucinazioni. Ma le cose a cui tengo di pi\u00f9, attivit\u00e0 e idee, quasi mai stanno in un\u2026","rel":"","context":"In &quot;pensieri&quot;","block_context":{"text":"pensieri","link":"https:\/\/www.fullo.net\/blog\/category\/pensieri\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine.png?fit=1024%2C559&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine.png?fit=1024%2C559&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine.png?fit=1024%2C559&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/immagine.png?fit=1024%2C559&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4612,"url":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/orologi-nuvole-e-pensiero-avversariale\/","url_meta":{"origin":4851,"position":4},"title":"Orologi, Nuvole e Pensiero Avversariale","author":"Francesco Fullone","date":"07\/04\/2026","format":false,"excerpt":"Stavo valutando di fare un fork di adversarial-verify per usarla nella consulenza \u2014 strategia, OKR, decisioni di business \u2014 quando mi sono accorto che il problema non era tecnico. Era concettuale: il codice ha verdetti, la strategia no. Da quella domanda \u00e8 nata una conversazione che ha prodotto adversarial-thinking, una\u2026","rel":"","context":"In &quot;business design&quot;","block_context":{"text":"business design","link":"https:\/\/www.fullo.net\/blog\/category\/entrepreneurship\/business-design\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_32cdvn32cdvn32cd-scaled.png?fit=1200%2C654&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_32cdvn32cdvn32cd-scaled.png?fit=1200%2C654&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_32cdvn32cdvn32cd-scaled.png?fit=1200%2C654&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_32cdvn32cdvn32cd-scaled.png?fit=1200%2C654&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_32cdvn32cdvn32cd-scaled.png?fit=1200%2C654&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":4704,"url":"https:\/\/www.fullo.net\/blog\/2026\/06\/05\/oltre-il-prompt-un-corso-per-costruire-agenti-ai-e-per-imparare-a-interrogarli\/","url_meta":{"origin":4851,"position":5},"title":"Oltre il prompt: un corso per costruire agenti AI, e per imparare a &#8220;interrogarli&#8221;","author":"Francesco Fullone","date":"05\/06\/2026","format":false,"excerpt":"TL;DR: costruire agenti per imparare a dubitarne Lancio un corso di mezza giornata in cui i project manager costruiscono un agente AI strato per strato, dal prompt fino all'orchestrazione, lavorando su un caso reale. All'ultimo esercizio lo attaccano: prendono l'output pi\u00f9 convincente che hanno prodotto e provano a smontarlo. Lo\u2026","rel":"","context":"In &quot;advisoring&quot;","block_context":{"text":"advisoring","link":"https:\/\/www.fullo.net\/blog\/category\/entrepreneurship\/advisoring\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/image-1.png?fit=1024%2C559&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/image-1.png?fit=1024%2C559&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/image-1.png?fit=1024%2C559&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/06\/image-1.png?fit=1024%2C559&ssl=1&resize=700%2C400 2x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4851","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/comments?post=4851"}],"version-history":[{"count":1,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4851\/revisions"}],"predecessor-version":[{"id":4853,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4851\/revisions\/4853"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/media\/4852"}],"wp:attachment":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/media?parent=4851"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/categories?post=4851"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/tags?post=4851"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}