{"id":4607,"date":"2026-04-07T03:01:41","date_gmt":"2026-04-07T02:01:41","guid":{"rendered":"https:\/\/www.fullo.net\/blog\/?p=4607"},"modified":"2026-04-07T09:19:49","modified_gmt":"2026-04-07T08:19:49","slug":"adversarial-verification-claude-skill","status":"publish","type":"post","link":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/","title":{"rendered":"Adversarial verification come metodo"},"content":{"rendered":"\n<p>Se avete letto il post sugli <a href=\"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/\">agenti disfunzionali<\/a>, conoscete gi\u00e0 la storia. Stavo sviluppando CarePlatform con cinque agenti AI in ruoli espliciti: PM, Developer, QA, Security, UX. Le prime otto iterazioni sembravano filare lisce. I task venivano contrassegnati come completati. I test salivano: 35, 92, 200. Tutto sotto controllo. Solo che non lo era.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>L&#8217;activity logging era contrassegnato come effettuato. Il trait <code>LogsActivity<\/code> non era mai stato applicato a nessun modello. QA non aveva segnalato nulla. Security non aveva alzato la mano. L&#8217;equivalente digitale di installare un antifurto senza collegare i sensori.<\/p>\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\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.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\/04\/Gemini_Generated_Image_x868e1x868e1x868.png?resize=580%2C317&#038;ssl=1\" alt=\"\" class=\"wp-image-4608\" srcset=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?resize=700%2C382&amp;ssl=1 700w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?resize=300%2C164&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?resize=768%2C419&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?resize=1536%2C838&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?resize=2048%2C1117&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?resize=1200%2C655&amp;ssl=1 1200w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?resize=1980%2C1080&amp;ssl=1 1980w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?w=1740&amp;ssl=1 1740w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><\/figure>\n\n\n\n<p>Da quel momento ho iniziato a riscrivere i prompt introducendo l\u2019adversarial verification esplicita: ogni agente doveva sfidare il lavoro degli altri, fornire evidenza concreta per ogni claim e ricevere uno scrutinio proporzionato alla propria storia di falsi positivi. Ha funzionato, nel senso che i bug emergevano prima di arrivare in produzione.<\/p>\n\n\n\n<p>Il problema \u00e8 che quel metodo viveva nei prompt. Ogni progetto nuovo richiedeva di ricostruirlo da zero, di ricordarsi di inserirlo, di sperare di non dimenticare uno dei domini critici. Un approccio efficace ma non trasferibile.<\/p>\n\n\n\n<p><a href=\"https:\/\/github.com\/fullo\/claude-adversarial-skill\">adversarial-verify <\/a>\u00e8 un tentativo di renderlo trasferibile.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cosa fa, concretamente<\/h2>\n\n\n\n<p>La skill applica la metodologia <a href=\"https:\/\/arxiv.org\/abs\/2309.11495\">Chain-of-Verification (CoV)<\/a> di Dhuliawala et al. (2023) combinata con tecniche che vengono dalla ricerca sull&#8217;alignment degli LLM \u2014 un campo che, a prima vista, sembra lontano dalla code review ma che condivide un problema fondamentale identico: come fai a trovare comportamenti problematici che il sistema non ha nessun incentivo a dichiararti?<\/p>\n\n\n\n<p><strong>Abstractive Red-Teaming<\/strong> \u2014 invece di cercare singoli bug, cerca pattern ricorrenti di errore nell&#8217;intero codebase. Nei paper di Anthropic, questa tecnica (<a href=\"https:\/\/arxiv.org\/abs\/2602.12318\">Rahn et al., 2026<\/a>) viene utilizzata per individuare categorie di query che elicitano violazioni di carattere nei modelli linguistici; ho analizzato i comportamenti osservati e li ho utilizzati come ispirazione per estendere il concetto al dominio della code review. La logica di fondo \u00e8 la stessa: non cercare istanze singole, ma classi di situazioni in cui i problemi emergono sistematicamente.<\/p>\n\n\n\n<p><strong>Hidden Behavior Probing \u2014<\/strong> rileva comportamenti che il codice non dichiara, tracciando i path di esecuzione effettivi anzich\u00e9 quelli previsti. Se una funzione dice di fare X ma, in certi contesti, fa Y, la skill lo riconosce.<\/p>\n\n\n\n<p><strong>Modular Adversarial Scaffold<\/strong> \u2014 modella ci\u00f2 che un reviewer umano non noterebbe e cerca proprio l\u00ec. Ispirata direttamente all&#8217;approccio di <a href=\"https:\/\/alignment.anthropic.com\/2026\/auditbench\/\">AuditBench<\/a> (Anthropic, 2026), che costruisce benchmark su comportamenti nascosti che i modelli sono addestrati a non rivelare quando gli si chiede direttamente. Anche qui il trasferimento non \u00e8 letterale ma di principio: un reviewer umano ha gli stessi punti ciechi di un agente AI che ottimizza per la plausibilit\u00e0 locale.<\/p>\n\n\n\n<p>I cinque domini verificati:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Codice<\/strong>: data corruption silenziosa, race condition, state leak<\/li>\n\n\n\n<li><strong>Architettura<\/strong>: spec drift, vincoli mancanti, breaking changes<\/li>\n\n\n\n<li><strong>Dati<\/strong>: schema inconsistenti, migration distruttive<\/li>\n\n\n\n<li><strong>Documentazione<\/strong>: istruzioni obsolete, API drift, esempi rotti<\/li>\n\n\n\n<li><strong>Output AI<\/strong>: allucinazioni, bias cognitivi, cherry-picking delle evidenze<\/li>\n<\/ul>\n\n\n\n<p>Quest&#8217;ultimo dominio \u00e8 quello che trovo pi\u00f9 onesto sul piano intellettuale. Quando adversarial-verify verifica gli output di altri agenti, controlla specificamente sycophantic deference, anchoring bias, confabulated confidence e premature convergence \u2014 esattamente ci\u00f2 che il mio QA stava facendo prima che introducessi le dinamiche narrative: diceva ci\u00f2 che si aspettava di dover dire, non ci\u00f2 che aveva davvero verificato.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">I bug concreti che ha intercettato su Rainbow Climb<\/h2>\n\n\n\n<p><a href=\"https:\/\/github.com\/fullo\/rainbow-climb\">Rainbow Climb<\/a> \u00e8 un platformer verticale procedurale per Android scritto in Kotlin con libGDX: generazione a chunk infinita, 8 biomi, 6 tipi di nemici, un sintetizzatore PCM custom che genera musica elettronica in tempo reale. Il tipo di codebase in cui i sistemi generativi interagiscono tra loro in modi che, per definizione, nessun test unitario pu\u00f2 coprire completamente, perch\u00e9 la combinazione di stati \u00e8, per costruzione, infinita.<\/p>\n\n\n\n<p>Quando ho applicato adversarial-verify a questo progetto, ha individuato tre bug critici quasi subito.<\/p>\n\n\n\n<p><strong>Timer mai resettati.<\/strong> Una funzione del game loop non resettava il timer tra un livello e l&#8217;altro in alcuni percorsi di esecuzione del generatore procedurale. Il test passava perch\u00e9 verificava il caso di transizione normale. Il bug emergeva solo nelle sequenze di biomi specifici in cui il timing di generazione creava una race condition con il sistema di difficolt\u00e0 (che applica una scala del +0,2% per livello in modo compounding). adversarial-verify ha tracciato un path alternativo e ha trovato lo stato sporco.<\/p>\n\n\n\n<p><strong>Collisioni con il <\/strong>bounding box a 0x0. Un componente inizializzava le bounding box a dimensioni nulle durante il caricamento rapido dei chunk \u2014 una condizione che si verifica quando il giocatore sale rapidamente attraverso le piattaforme generate dal sistema rainbow. La collision detection sembrava funzionare, ma in quelle condizioni di carico funzionava male.<\/p>\n\n\n\n<p><strong>Shield che bloccavano i check successivi. <\/strong>Il power-up Shield interrompeva la catena di verifica prima che altri controlli di stato si completassero. I test unitari non coprivano l&#8217;interazione tra il sistema di protezione e quello di collisione con i nemici, poich\u00e9 erano stati sviluppati e testati in modo isolato.<\/p>\n\n\n\n<p>Nessuno di questi era un bug evidente. Erano tutti nel territorio che l&#8217;adversarial verification aveva imparato a monitorare dopo settimane di iterazioni con gli agenti: le interazioni tra componenti che ciascun agente aveva dichiarato &#8220;ok&#8221;, senza che nessuno avesse verificato l&#8217;interfaccia tra di esse.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Come installarla<\/h2>\n\n\n\n<p>La skill \u00e8 compatibile con Claude Code, Cursor, Windsurf, Cline e con tutti gli IDE che supportano il formato Agent Skills.<\/p>\n\n\n\n<p><strong>Opzione 1 \u2014 Installazione diretta:<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>git clone https:\/\/github.com\/fullo\/claude-adversarial-skill.git\ncp -r claude-adversarial-skill\/skills\/adversarial-verify ~\/.claude\/skills\/<\/code><\/pre>\n\n\n\n<p><strong>Opzione 2 \u2014 Installate il marketplace dei miei plugin<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>claude marketplace add fullo-plugins https:\/\/github.com\/fullo\/claude-plugins-marketplace\n\nclaude plugin install adversarial-verify@fullo-plugins<\/code><\/pre>\n\n\n\n<p>Una volta installata, <code>\/adversarial-verify<\/code> in Claude Code, oppure in linguaggio naturale: &#8220;run an adversarial review on my recent changes&#8221; o &#8220;verifica questo codice con scetticismo totale&#8221;.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">La domanda che rimane aperta<\/h2>\n\n\n\n<p>Rilasciare questa skill mi ha fatto tornare su una questione che avevo lasciato sospesa nel post precedente: il fatto che io abbia dovuto introdurre una verifica adversaria esplicita per ottenere qualit\u00e0 da parte degli agenti AI dice qualcosa di interessante.<\/p>\n\n\n\n<p>Non \u00e8 solo un pattern di prompt engineering. \u00c8 un segnale che questi sistemi, lasciati a se stessi, ottimizzano per la plausibilit\u00e0 locale pi\u00f9 che per la correttezza verificabile. adversarial-verify non risolve questo limite strutturale: lo aggira sistematicamente, codificando in uno strumento riutilizzabile ci\u00f2 che, nell&#8217;esperimento con gli agenti, era un processo costruito iterazione per iterazione.<\/p>\n\n\n\n<p>Il test su codebase diversi da CarePlatform \u2014 in particolare Rainbow Climb, che non ha alcuna storia condivisa con gli agenti che hanno generato il PROCESS.md \u2014 mi ha dato un segnale incoraggiante: la skill identifica problemi anche senza la &#8220;memoria&#8221; dei fallimenti che l&#8217;hanno generata. I pattern di errore che cerca sono sufficientemente generalizzabili da funzionare in contesti nuovi. Ma ho un campione di due progetti e non \u00e8 statisticamente significativo.<\/p>\n\n\n\n<p>Se la usate su altri codebase, sono molto curioso di sapere cosa trovate e cosa non funziona.<\/p>\n\n\n\n<p>Repo: <a href=\"https:\/\/github.com\/fullo\/claude-adversarial-skill\">github.com\/fullo\/claude-adversarial-skill<\/a> \u2014 Licenza MIT.<\/p>\n\n\n\n<p><em>Questo articolo \u00e8 il terzo di una serie. Il primo: <a href=\"https:\/\/www.fullo.net\/blog\/2026\/03\/18\/il-paradosso-del-cervello-aumentato\/\">Il paradosso del cervello aumentato<\/a>. Il secondo: <a href=\"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/\">Agenti disfunzionali, software funzionante<\/a>.<\/em><\/p>\n\n\n\n<p><em>Riferimenti: <a href=\"https:\/\/arxiv.org\/abs\/2309.11495\">Dhuliawala et al., Chain-of-Verification Reduces Hallucination in Large Language Models, arXiv:2309.11495, 2023<\/a> \u00b7 <a href=\"https:\/\/arxiv.org\/abs\/2602.12318\">Rahn et al., Abstractive Red-Teaming of Language Model Character, arXiv:2602.12318, Anthropic 2026<\/a> \u00b7 <a href=\"https:\/\/alignment.anthropic.com\/2026\/auditbench\/\">AuditBench: Evaluating Alignment Auditing Techniques, Anthropic Alignment Science Blog, 2026<\/a><\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nell&#8217;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 audit avanzate su cinque domini. Il punto interessante non \u00e8 la tecnologia: \u00e8 cosa ci dice il fatto che abbia dovuto costruirla.<\/p>\n","protected":false},"author":1,"featured_media":4608,"comment_status":"closed","ping_status":"open","sticky":false,"template":"templates\/template-cover.php","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_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}},"categories":[16,5],"tags":[2439,2413,2430,2412,2443],"class_list":["post-4607","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-lifehack","category-tecnologia","tag-agentskills","tag-ai","tag-claude","tag-llm","tag-skills"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Adversarial verification come metodo - 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\/04\/07\/adversarial-verification-claude-skill\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Adversarial verification come metodo - Fullo\" \/>\n<meta property=\"og:description\" content=\"Nell&#039;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 audit avanzate su cinque domini. Il punto interessante non \u00e8 la tecnologia: \u00e8 cosa ci dice il fatto che abbia dovuto costruirla.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/\" \/>\n<meta property=\"og:site_name\" content=\"Fullo\" \/>\n<meta property=\"article:published_time\" content=\"2026-04-07T02:01:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-07T08:19:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-700x382.png\" \/>\n\t<meta property=\"og:image:width\" content=\"700\" \/>\n\t<meta property=\"og:image:height\" content=\"382\" \/>\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=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Francesco Fullone\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/04\\\/07\\\/adversarial-verification-claude-skill\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/04\\\/07\\\/adversarial-verification-claude-skill\\\/\"},\"author\":{\"name\":\"Francesco Fullone\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\"},\"headline\":\"Adversarial verification come metodo\",\"datePublished\":\"2026-04-07T02:01:41+00:00\",\"dateModified\":\"2026-04-07T08:19:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/04\\\/07\\\/adversarial-verification-claude-skill\\\/\"},\"wordCount\":1145,\"publisher\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\"},\"image\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/04\\\/07\\\/adversarial-verification-claude-skill\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=2560%2C1396&ssl=1\",\"keywords\":[\"agentskills\",\"ai\",\"claude\",\"llm\",\"skills\"],\"articleSection\":[\"lifehack\",\"tecnologia\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/04\\\/07\\\/adversarial-verification-claude-skill\\\/\",\"url\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/04\\\/07\\\/adversarial-verification-claude-skill\\\/\",\"name\":\"Adversarial verification come metodo - Fullo\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/04\\\/07\\\/adversarial-verification-claude-skill\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/04\\\/07\\\/adversarial-verification-claude-skill\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=2560%2C1396&ssl=1\",\"datePublished\":\"2026-04-07T02:01:41+00:00\",\"dateModified\":\"2026-04-07T08:19:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/04\\\/07\\\/adversarial-verification-claude-skill\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/04\\\/07\\\/adversarial-verification-claude-skill\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/04\\\/07\\\/adversarial-verification-claude-skill\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=2560%2C1396&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=2560%2C1396&ssl=1\",\"width\":2560,\"height\":1396},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/04\\\/07\\\/adversarial-verification-claude-skill\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Adversarial verification come metodo\"}]},{\"@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\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\",\"name\":\"Francesco Fullone\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@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":"Adversarial verification come metodo - 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\/04\/07\/adversarial-verification-claude-skill\/","og_locale":"en_US","og_type":"article","og_title":"Adversarial verification come metodo - Fullo","og_description":"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 audit avanzate su cinque domini. Il punto interessante non \u00e8 la tecnologia: \u00e8 cosa ci dice il fatto che abbia dovuto costruirla.","og_url":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/","og_site_name":"Fullo","article_published_time":"2026-04-07T02:01:41+00:00","article_modified_time":"2026-04-07T08:19:49+00:00","og_image":[{"width":700,"height":382,"url":"https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-700x382.png","type":"image\/png"}],"author":"Francesco Fullone","twitter_card":"summary_large_image","twitter_creator":"@fullo","twitter_site":"@fullo","twitter_misc":{"Written by":"Francesco Fullone","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/#article","isPartOf":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/"},"author":{"name":"Francesco Fullone","@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"headline":"Adversarial verification come metodo","datePublished":"2026-04-07T02:01:41+00:00","dateModified":"2026-04-07T08:19:49+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/"},"wordCount":1145,"publisher":{"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"image":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=2560%2C1396&ssl=1","keywords":["agentskills","ai","claude","llm","skills"],"articleSection":["lifehack","tecnologia"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/","url":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/","name":"Adversarial verification come metodo - Fullo","isPartOf":{"@id":"https:\/\/www.fullo.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/#primaryimage"},"image":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=2560%2C1396&ssl=1","datePublished":"2026-04-07T02:01:41+00:00","dateModified":"2026-04-07T08:19:49+00:00","breadcrumb":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/#primaryimage","url":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=2560%2C1396&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=2560%2C1396&ssl=1","width":2560,"height":1396},{"@type":"BreadcrumbList","@id":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/adversarial-verification-claude-skill\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fullo.net\/blog\/"},{"@type":"ListItem","position":2,"name":"Adversarial verification come metodo"}]},{"@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":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c","name":"Francesco Fullone","image":{"@type":"ImageObject","inLanguage":"en-US","@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\/04\/Gemini_Generated_Image_x868e1x868e1x868-scaled.png?fit=2560%2C1396&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3OSc1-1cj","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":4607,"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":4612,"url":"https:\/\/www.fullo.net\/blog\/2026\/04\/07\/orologi-nuvole-e-pensiero-avversariale\/","url_meta":{"origin":4607,"position":1},"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":1720,"url":"https:\/\/www.fullo.net\/blog\/2005\/10\/30\/lavatrice\/","url_meta":{"origin":4607,"position":2},"title":"Lavatrice","author":"Francesco Fullone","date":"30\/10\/2005","format":false,"excerpt":"Oggi ho acquistato la lavatrice, \u00e8 stata un'impresa. Onestamente penso che la scelta (ed il successivo l'acquisto) di un elettrodomestico sia molto pi\u00f9 difficile che quello di uno storage per un datacenter. Ci sono gozzilliardi di modelli ognuno con microscopiche differenze, le stesse case produttrici sembrano sfornarne di nuovi ogni\u2026","rel":"","context":"In &quot;di tutto un po'&quot;","block_context":{"text":"di tutto un po'","link":"https:\/\/www.fullo.net\/blog\/category\/di-tutto-un-po\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":580,"url":"https:\/\/www.fullo.net\/blog\/2003\/12\/02\/labbiamo-consegnata\/","url_meta":{"origin":4607,"position":3},"title":"l&#8217;abbiamo consegnata&#8230;","author":"Francesco Fullone","date":"02\/12\/2003","format":false,"excerpt":"jatto ed io abbiamo finalmente consegnato la tesi (vabb\u00e8 la versione per la segreteria...)! ah, si.. il titolo \u00e8 \"Un sistema distribuito basato su agenti per la coallocazione di servizi su una griglia di calcolo: gestione dei metodi di notifica\" ciuaz","rel":"","context":"In &quot;SdI&quot;","block_context":{"text":"SdI","link":"https:\/\/www.fullo.net\/blog\/category\/di-tutto-un-po\/sdi\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":610,"url":"https:\/\/www.fullo.net\/blog\/2003\/12\/16\/prove-della-tesi\/","url_meta":{"origin":4607,"position":4},"title":"prove della tesi&#8230;","author":"Francesco Fullone","date":"16\/12\/2003","format":false,"excerpt":"buongiorno... mi chiamo Francesco Fullone.. il titolo della mia tesi \u00e8.. ehmm.. ehmm.... buongiorno mi chiamo... ehm.. Francesco Fullone.... il titolo della tesi \u00e8 Un sistema distribuito basato su agenti... per... per.... ehm... Ciao... ARRGHHHH!!! ciuaz","rel":"","context":"In &quot;SdI&quot;","block_context":{"text":"SdI","link":"https:\/\/www.fullo.net\/blog\/category\/di-tutto-un-po\/sdi\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":2760,"url":"https:\/\/www.fullo.net\/blog\/2010\/08\/24\/flussi-e-riflussi-la-qagile-dei-processi-di-sviluppo\/","url_meta":{"origin":4607,"position":5},"title":"Flussi e riflussi: la QA(gile) dei processi di sviluppo","author":"Francesco Fullone","date":"24\/08\/2010","format":false,"excerpt":"Quality assurance, or QA for short, refers to a program for the systematic monitoring and evaluation of the various aspects of a project, service, or facility to ensure that standards of quality are being met. fonte wikipedia Sar\u00e0 che sono sempre stato abbastanza sensibile all'argomento (vedi anche il mio ultimo\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":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4607","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=4607"}],"version-history":[{"count":3,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4607\/revisions"}],"predecessor-version":[{"id":4611,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4607\/revisions\/4611"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/media\/4608"}],"wp:attachment":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/media?parent=4607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/categories?post=4607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/tags?post=4607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}