{"id":4588,"date":"2026-03-13T21:14:51","date_gmt":"2026-03-13T20:14:51","guid":{"rendered":"https:\/\/www.fullo.net\/blog\/?p=4588"},"modified":"2026-03-13T21:14:54","modified_gmt":"2026-03-13T20:14:54","slug":"vibe-coding-e-green-software-si-puo-fare","status":"publish","type":"post","link":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/","title":{"rendered":"Vibe coding e Green Software, si pu\u00f2 fare!"},"content":{"rendered":"\n<p>Stavo preparando un hackathon sul green software e quello che doveva essere un esperimento veloce si \u00e8 trasformato in quattro tool open source in cascata, ognuno estratto dal problema reale che il precedente aveva lasciato irrisolto. <\/p>\n\n\n\n<p>Ma partiamo dall&#8217;inizio: tutto \u00e8 nato da un generatore di personaggi per <a href=\"https:\/\/fullo.github.io\/dnd-character-builder\/\" type=\"link\" id=\"https:\/\/fullo.github.io\/dnd-builder\">Dungeons &amp; Dragons<\/a>.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Lo so, non \u00e8 esattamente il progetto che ci si aspetta di proporre in un hackathon sul green software. Ma aveva una logica: volevo testare se Claude Code potesse aiutarmi a scrivere codice <em>green<\/em>, non solo codice funzionante. Il D&amp;D Character Builder era abbastanza semplice da costruire in fretta; avevo abbastanza competenza di dominio per capire se non funzionava a dovere ed era abbastanza complesso da essere interessante come banco di prova.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/frankenstein-junior-jr-1799166-1.gif?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"454\" height=\"250\" src=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/frankenstein-junior-jr-1799166-1.gif?resize=454%2C250&#038;ssl=1\" alt=\"\" class=\"wp-image-4590\" style=\"width:610px;height:auto\"\/><\/a><\/figure>\n\n\n\n<p>Il vincolo che mi sono dato era preciso: <strong>sostenibilit\u00e0 come first-class constraint dal primo commit<\/strong>, non come rifinitura di fine progetto. La domanda che mi facevo ad ogni decisione tecnica non era &#8220;funziona?&#8221; ma &#8220;quanto costa, in termini energetici, questa scelta rispetto all&#8217;alternativa?&#8221;<\/p>\n\n\n\n<p>Quello che non mi aspettavo \u00e8 che da quel piccolo esperimento sarebbe emerso, per stratificazione naturale, un toolkit completo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Il secondo progetto<\/h3>\n\n\n\n<p>Validato l&#8217;approccio, ho alzato l&#8217;asticella con <a href=\"https:\/\/www.pdfworker.eu\">pdf-worker<\/a>: un toolkit per la manipolazione di PDF con 36 tool, tutto client-side, zero upload al server. Esistono decine di tool simili; anche qui il punto non era l&#8217;innovazione della feature, ma testare i pattern green in un contesto realistico e con l&#8217;uso di risorse maggiori.<\/p>\n\n\n\n<p>Cosa significa, concretamente, scrivere un&#8217;applicazione web con la sostenibilit\u00e0 come vincolo architetturale?<\/p>\n\n\n\n<p>System fonts invece di Google Fonts (risparmio sul round-trip HTTP per i font che l&#8217;utente probabilmente ha gi\u00e0). Lazy-loaded workers: cos\u00ec il browser non carica codice che forse non servir\u00e0 mai. Tree-shaken bundles, eliminando il codice morto lasciato in circolazione da molti bundler. <\/p>\n\n\n\n<p>Sono buone pratiche che un developer attento gi\u00e0 applica. La differenza \u00e8 averle rese esplicite, misurabili e parte del contratto del progetto e non decisioni implicite lasciate al buon senso del momento.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Il CLAUDE.md come contratto tra developer e agente<\/h3>\n\n\n\n<p>Lavorando con Claude Code in modo intensivo su entrambi i progetti, ho capito una cosa: l&#8217;agente AI \u00e8 bravo quanto il contesto che gli dai. Senza vincoli espliciti, ottimizza per ci\u00f2 che sa fare meglio:  codice funzionante, pulito e documentato. Tutto bene, ma non necessariamente <em>green<\/em>.<\/p>\n\n\n\n<p>Da qui \u00e8 nato il file <a href=\"https:\/\/github.com\/fullo\/pdf-worker\/blob\/main\/CLAUDE.md\">CLAUDE.md<\/a> incluso nel repository di pdf-worker. Ogni modifica che l&#8217;agente propone deve rispettare una serie di guardrail espliciti: soglie di performance del budget delle prestazioni, requisiti di accessibilit\u00e0 secondo WCAG 2.1, linee guida W3C Web Sustainability (WSG 1.0) e una baseline di Software Carbon Intensity (SCI) da non peggiorare.<\/p>\n\n\n\n<p>Lo SCI (Software Carbon Intensity) \u00e8 la metrica proposta dalla <a href=\"https:\/\/greensoftware.foundation\/\">Green Software Foundation<\/a> per misurare le emissioni di carbonio di un&#8217;applicazione software in modo operativo: carbonio emesso per unit\u00e0 funzionale, calcolabile e tracciabile nel tempo. <\/p>\n\n\n\n<p>Il problema, mentre iteravo sulla scrittura del CLAUDE.md, era che non esisteva un modo semplice per <em>calcolare<\/em> effettivamente lo SCI. Serviva qualcosa di misurabile, non solo di dichiarabile.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">SCI Profiler<\/h3>\n\n\n\n<p><a href=\"https:\/\/github.com\/fullo\/sci-profiler\">sci-profiler<\/a> \u00e8 la risposta a quel problema. Una libreria TypeScript a zero dipendenze che usa <code>performance.now()<\/code> per misurare il tempo di esecuzione di operazioni specifiche e calcolare la Software Carbon Intensity secondo la formula della Green Software Foundation.<\/p>\n\n\n\n<p>Vale la pena capire cosa c&#8217;\u00e8 sotto, perch\u00e9 la formula SCI non \u00e8 banale come sembra.<\/p>\n\n\n\n<p>La Green Software Foundation la definisce cos\u00ec:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>SCI = (E * I + M) \/ R<\/code><\/pre>\n\n\n\n<p>Dove:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>E<\/strong> \u00e8 l&#8217;energia consumata dall&#8217;operazione (kWh)<\/li>\n\n\n\n<li><strong>I<\/strong> \u00e8 il carbon intensity della rete elettrica dove gira il software (gCO?eq\/kWh) \u2014 e varia moltissimo: la rete svedese emette circa 13g per kWh, quella polacca oltre 700g<\/li>\n\n\n\n<li><strong>M<\/strong> \u00e8 il carbonio incorporato nell&#8217;hardware (embodied carbon), distribuito sulla vita utile del device<\/li>\n\n\n\n<li><strong>R<\/strong> \u00e8 l&#8217;unit\u00e0 funzionale di riferimento: per operazione, per utente, per richiesta API, per transazione \u2014 dipende da cosa stai misurando<\/li>\n<\/ul>\n\n\n\n<p>Il risultato \u00e8 espresso in gCO?eq per unit\u00e0 funzionale. Misurabile, confrontabile, tracciabile nel tempo.<\/p>\n\n\n\n<p>Il punto metodologico che mi interessava era proprio <strong>R<\/strong>: avere una granularit\u00e0 per singola operazione invece che per l&#8217;applicazione intera. Sapere che la compressione di un PDF da 10 MB emette X grammi di CO? equivalente \u00e8 un&#8217;informazione diversa e pi\u00f9 utile rispetto a sapere che la tua app emette Y grammi al giorno. Ti permette di ottimizzare chirurgicamente ci\u00f2 che conta davvero.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Wall time e non CPU time<\/h4>\n\n\n\n<p>Una scelta metodologica su cui vale la pena soffermarsi: Sci-profiler usa <code>performance.now()<\/code>, che misura il wall clock time, il tempo reale trascorso dall&#8217;inizio alla fine dell&#8217;operazione, incluse le attese I\/O, le latenze di rete e gli accessi al filesystem.<\/p>\n\n\n\n<p>La domanda ovvia \u00e8: non sarebbe pi\u00f9 preciso misurare il CPU time, cio\u00e8 solo i cicli effettivamente utilizzati dal processore?<\/p>\n\n\n\n<p>Dal punto di vista dell&#8217;impatto ambientale, no. Quello che conta \u00e8 quanto energia il sistema ha consumato in quel lasso di tempo, e il consumo energetico segue il tempo reale, non quello della CPU. Un server che aspetta una risposta dal database per 200 ms sta comunque consumando energia: memoria attiva, interfacce di rete in polling, processi OS in attesa. Non sono cicli CPU intensivi, ma sono comunque joule.<\/p>\n\n\n\n<p>Il CPU time \u00e8 la metrica giusta per ottimizzare l&#8217;efficienza computazionale pura. Il wall time \u00e8 la metrica giusta per ottimizzare l&#8217;impatto energetico effettivo. Per il green software, \u00e8 il secondo a contare.<\/p>\n\n\n\n<p>C&#8217;\u00e8 anche un argomento pratico: il wall time \u00e8 misurabile ovunque con <code>performance.now()<\/code>, senza permessi speciali, senza dipendenze da API di sistema, senza differenze tra ambienti. Il CPU time richiederebbe accesso a <code>perf_hooks<\/code> in Node.js o ad API native del browser non disponibili in tutti i contesti. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import { SCIProfiler } from 'sci-profiler';\n\nconst profiler = new SCIProfiler({ region: 'IT' });\nconst result = await profiler.measure('pdf-compression', async () =&gt; {\n  await compressPDF(input);\n});\n\nconsole.log(`SCI: ${result.carbonGrams}g CO?eq per operazione`);\n<\/code><\/pre>\n\n\n\n<p>In pratica, lo sci-profiler misura il wall time, stima il consumo energetico a partire da un TDP medio del device (configurabile), applica la carbon intensity della regione specificata e distribuisce una quota di embodied carbon sulla vita utile stimata dell&#8217;hardware. Le stime sono approssimate; il TDP reale varia; il carbon intensity cambia in tempo reale in base al mix energetico della rete, ma l&#8217;ordine di grandezza \u00e8 corretto e, soprattutto, il delta tra due versioni della stessa operazione \u00e8 affidabile. \u00c8 quello che serve per ottimizzare.<\/p>\n\n\n\n<p>Drop-in, senza dipendenze: funziona in qualsiasi progetto TypeScript. Il <a href=\"https:\/\/www.pdfworker.eu\/#\/sci-report\">report SCI<\/a> e il <a href=\"https:\/\/www.pdfworker.eu\/#\/sustainability\">report WSG<\/a> di pdf-worker sono generati direttamente con questo approccio.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">L&#8217;Agent Skill<\/h3>\n\n\n\n<p>A questo punto avevo tre pezzi separati: un CLAUDE.md con le specifiche green, una libreria per misurare il SCI, e due progetti su cui avevo applicato manualmente tutto questo. La domanda naturale era: posso impacchettare questa conoscenza in modo che chiunque possa puntarla su un progetto esistente e ottenere una valutazione?<\/p>\n\n\n\n<p>La risposta \u00e8 il <a href=\"https:\/\/github.com\/fullo\/sustainable-code-skill-setup\">Sustainable Agent Skill<\/a>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Il formato AgentSkills<\/h4>\n\n\n\n<p>Prima di descrivere cosa fa la skill, vale la pena capire il contesto in cui gira. Il formato <a href=\"https:\/\/agentskills.io\/\">AgentSkills<\/a> \u00e8 uno standard aperto, sviluppato originariamente da Anthropic e rilasciato come specifica pubblica, per fornire agli agenti AI capacit\u00e0 specifiche in modo portabile e versionabile. L&#8217;idea \u00e8 semplice: una skill \u00e8 una cartella con istruzioni, script e risorse che l&#8217;agente carica on-demand quando il task lo richiede.<\/p>\n\n\n\n<p>Il punto di forza del formato \u00e8 l&#8217;interoperabilit\u00e0: la stessa skill funziona su Claude Code, Cursor, Windsurf, Cline e su oltre 30 tool compatibili che implementano la specifica. Per i team, questo significa che la conoscenza organizzativa &#8220;come facciamo le code review da noi&#8221;, &#8220;quali sono i nostri standard di accessibilit\u00e0&#8221;, &#8220;come misuriamo la sostenibilit\u00e0&#8221; diventa un artefatto versionabile su Git, non un documento Word dimenticato su Confluence.<\/p>\n\n\n\n<p>Le skill usano progressive disclosure: l&#8217;agente carica prima i metadati (~100 token), poi il corpo completo all&#8217;attivazione e, infine, i file di riferimento solo nelle fasi in cui li richiedono. Questo ottimizza l&#8217;uso del context window, che non \u00e8 infinito, un problema che, <a href=\"https:\/\/www.fullo.net\/blog\/2025\/11\/12\/la-matematica-della-compressione-dei-prompt-per-llm\/\">come ho scritto altrove<\/a>, ho imparato a mie spese.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cosa fa la skill in pratica<\/h3>\n\n\n\n<p>La skill guida l&#8217;agente attraverso un workflow in 9 fasi:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Explore<\/strong> \u2014 ricognizione della codebase, stack e architettura<\/li>\n\n\n\n<li><strong>Energy &amp; Carbon (SCI)<\/strong> \u2014 misurazione della carbon intensity per operazione tramite sci-profiler<\/li>\n\n\n\n<li><strong>WSG Compliance<\/strong> \u2014 valutazione rispetto a tutte le 80 linee guida W3C Web Sustainability Guidelines 1.0<\/li>\n\n\n\n<li><strong>Accessibility<\/strong> \u2014 setup di Lighthouse CI con soglie WCAG 2.1 AA<\/li>\n\n\n\n<li><strong>Performance &amp; Resource Efficiency<\/strong> \u2014 bundle size, lazy loading, caching, font, immagini<\/li>\n\n\n\n<li><strong>Testing &amp; Quality<\/strong> \u2014 infrastruttura di test, coverage, critical path<\/li>\n\n\n\n<li><strong>Prioritize<\/strong> \u2014 ranking delle azioni per impatto \u00d7 fattibilit\u00e0 (P0\u2013P3)<\/li>\n\n\n\n<li><strong>Establish Baselines<\/strong> \u2014 target misurabili per ogni dimensione<\/li>\n\n\n\n<li><strong>Sustainability-Aware CLAUDE.md<\/strong> \u2014 codifica la sostenibilit\u00e0 nel workflow di sviluppo continuativo<\/li>\n<\/ol>\n\n\n\n<p>L&#8217;output finale non \u00e8 un report da leggere e dimenticare: \u00e8 un piano d&#8217;azione prioritizzato con baseline concrete, pi\u00f9 un CLAUDE.md aggiornato che rende quei vincoli permanenti nel progetto.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Come si estende<\/h3>\n\n\n\n<p>La skill, nella versione attuale, \u00e8 ottimizzata per lo stack TypeScript\/JavaScript: il contesto in cui \u00e8 nata. sci-profiler usa <code>performance.now()<\/code>, le WSG sono pensate per il web, Lighthouse CI \u00e8 uno strumento del browser ecosystem.<\/p>\n\n\n\n<p>Ma i principi scelti, cio\u00e8 misurare lo SCI per operazione, validare secondo lo standard W3C e generare un piano prioritizzato, sono agnostici al linguaggio. <\/p>\n\n\n\n<p>Ho poi esteso il ragionamento a <strong>PHP<\/strong> creando un primo prototipo: <a href=\"https:\/\/github.com\/fullo\/sci-profiler-php\">sci-profiler-php<\/a>. In questo caso, l&#8217;approccio usato \u00e8 leggermente diverso rispetto alla versione in TypeScript, in modo che rifletta la natura del runtime.<\/p>\n\n\n\n<p>Invece di instrumentare singole operazioni nel codice, usa la direttiva <code>auto_prepend_file<\/code> di PHP per iniettare il profiling prima di ogni esecuzione. Zero modifiche al codice applicativo. Zero wrapper da aggiungere ai controller, alle route, ai plugin. Il profiler si aggancia a livello di configurazione \u2014 <code>php.ini<\/code>, un pool FPM, il virtualhost \u2014 e da l\u00ec misura ogni richiesta HTTP come unit\u00e0 funzionale completa: dal momento in cui PHP inizia a eseguire fino allo shutdown, incluse query al database, chiamate a servizi esterni, accessi al filesystem. L&#8217;unit\u00e0 di misura non \u00e8 la funzione, ma la richiesta complessiva, ossia la domanda che conta davvero: quanto carbonio emette questa pagina di WordPress? Quanto emette questa rotta di Laravel?<\/p>\n\n\n\n<p>I risultati vengono esportati in tre reporter: JSON lines per l&#8217;analisi automatica, un log human-readable e un dashboard HTML in linea per visualizzare l&#8217;andamento senza installare nulla di aggiuntivo. Framework-agnostic (Laravel, Symfony, WordPress, Drupal, PHP vanilla) e fail-safe per il design: eventuali errori nel profiler non compromettono mai l&#8217;applicazione host. Ovviamente, il target esplicito \u00e8 lo staging e lo sviluppo.<\/p>\n\n\n\n<p><strong>Python <\/strong>aprirebbe il capitolo sui workload ML e sui data pipeline, in cui il consumo energetico per operazione pu\u00f2 essere di ordini di grandezza superiore rispetto al web tradizionale. Librerie come CodeCarbon o le API di Hugging Face per l&#8217;impatto dei modelli potrebbero essere integrate come sorgenti dati alternative per il parametro E della formula SCI.<\/p>\n\n\n\n<p>La direzione pi\u00f9 interessante in assoluto \u00e8 separare la skill in un layer metodologico \u2014 le fasi, i criteri, il piano d&#8217;azione \u2014 e in un layer di implementazione per linguaggio, che specifica come si misura e, in quel contesto, come si misura. Il formato AgentSkills supporta gi\u00e0 questa modularit\u00e0 attraverso i file di riferimento nella cartella <code>references\/<\/code>: aggiungere un <code>references\/sci-php.md<\/code> o <code>references\/sci-python.md<\/code> \u00e8 esattamente il tipo di contributo che ha senso fare senza toccare la struttura della skill.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">La skill sul primo progetto,  risultati concreti<\/h3>\n\n\n\n<p>Ho puntato la skill sul D&amp;D Character Builder, il progetto di partenza. Ha identificato due antipattern che mi erano sfuggiti sotto il naso.<\/p>\n\n\n\n<p>Il primo: <strong>jsPDF era ancora in <code>package.json<\/code><\/strong> \u2014 libreria che avevo usato in una versione precedente, rimossa dal codice ma mai dalla lista delle dipendenze. Il bundler la includeva nel build senza che nessun componente la richiedesse. Pruning e tree shaking espliciti l&#8217;hanno eliminata, riducendo il bundle finale.<\/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\/03\/Screenshot-2026-03-13-alle-13.13.18.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"580\" height=\"286\" src=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-13-alle-13.13.18.png?resize=580%2C286&#038;ssl=1\" alt=\"\" class=\"wp-image-4592\" srcset=\"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-13-alle-13.13.18.png?resize=700%2C345&amp;ssl=1 700w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-13-alle-13.13.18.png?resize=300%2C148&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-13-alle-13.13.18.png?resize=768%2C379&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/Screenshot-2026-03-13-alle-13.13.18.png?w=1002&amp;ssl=1 1002w\" sizes=\"auto, (max-width: 580px) 100vw, 580px\" \/><\/a><\/figure>\n\n\n\n<p>Il secondo: <strong>il caching era corretto ma incompleto<\/strong>. Il service worker gestiva bene le risorse statiche, ma alcune informazioni venivano ricalcolate ad ogni sessione senza necessit\u00e0. La skill ha identificato dove aggiungere il caching client-side, senza toccare i cookie di terze parti che il progetto non usa per scelta architetturale.<\/p>\n\n\n\n<p>Sul fronte dell&#8217;accessibilit\u00e0, il report WSG segnalava come gap l&#8217;assenza di validazione automatica (linea guida 3.20). La skill ha generato tutti i tag ARIA mancanti e ha configurato Lighthouse CI con la soglia WCAG 2.1 AA.<\/p>\n\n\n\n<p>I numeri finali nel report WSG: su 80 linee guida totali, 14 risultano N\/A per la natura del progetto (solo developer, nessun server dedicato). Delle 66 applicabili: 34 full compliance (52%), 21 partial (32%), 11 gap residui \u2014 tutti documentati con action item e stima dell\u2019effort. Per lo SCI, il delta spazia tra il 64% e il 7% per operazione rispetto alla baseline pre-ottimizzazione, misurato con lo SCI-Profiler sulle operazioni critiche del generatore.<\/p>\n\n\n\n<p>Ovviamente non sono numeri da benchmark di settore essendo  un progetto personale su GitHub Pages, ma il punto non \u00e8 il risultato assoluto: \u00e8 che adesso sono <strong>misurabili, tracciabili e migliorabili<\/strong> nel tempo. Prima di questo processo, non lo erano.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Il pattern che emerge, e perch\u00e9 \u00e8 abduttivo<\/h3>\n\n\n\n<p>C&#8217;\u00e8 una lezione metodologica in tutto questo che vale la pena rendere esplicita, perch\u00e9 si applica ben oltre il green software.<\/p>\n\n\n\n<p>Ognuno di questi tool \u00e8 stato <strong>estratto da un problema reale emerso<\/strong> nel progetto precedente, non progettato in astratto con l&#8217;obiettivo di &#8220;costruire un toolkit&#8221;. Il CLAUDE.md \u00e8 emerso dalla necessit\u00e0 di fornire un contesto coerente all&#8217;agente. Lo sci-profiler \u00e8 emerso dalla necessit\u00e0 di disporre di dati concreti nel file CLAUDE.md. L&#8217;Agent Skill \u00e8 emersa dalla necessit\u00e0 di rendere ripetibile ci\u00f2 che avevo fatto a mano.<\/p>\n\n\n\n<p>Il metodo usato non \u00e8 stato n\u00e9 induttivo (non stavo generalizzando da molti casi simili) n\u00e9 deduttivo (non stavo applicando regole note a un problema noto), ma <strong>abduttivo<\/strong>: di fronte a ogni risultato inatteso, mi sono chiesto qual era la spiegazione pi\u00f9 plausibile e la mossa pi\u00f9 sensata da l\u00ec in poi. \u00c8 la stessa logica che <a href=\"https:\/\/www.fullo.net\/blog\/2025\/09\/01\/larte-dellabduzione-come-un-filosofo-dell800-puo-salvare-i-tuoi-progetti-di-innovazione\/\">Peirce aveva formalizzato nell&#8217;800<\/a> e che continua a essere il motore reale dell&#8217;innovazione pratica, molto pi\u00f9 della deduzione applicata a specifiche perfette.<\/p>\n\n\n\n<p>\u00c8 lo stesso principio che applico quando lavoro con i clienti sugli OKR: i KPI non si disegnano in astratto, si identificano le domande a cui stai cercando risposta e si costruiscono le metriche intorno a esse. La misura deve emergere dal problema.<\/p>\n\n\n\n<p>Questo approccio produce tool pi\u00f9 onesti. Hanno bordi netti perch\u00e9 risolvono un problema specifico. Non hanno feature inutili perch\u00e9 non sono stati progettati per impressionare, ma per servire.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dove iniziare<\/h2>\n\n\n\n<p>Tutto \u00e8 open source (MIT). Il percorso pi\u00f9 diretto \u00e8 clonare <a href=\"https:\/\/github.com\/fullo\/sustainable-code-skill-setup\">sustainable-code-skill-setup<\/a>, puntarlo sulla tua codebase e leggere il report che genera. Da l\u00ec hai una baseline. Integrare lo sci-profiler (o il suo analogo per php) nelle operazioni critiche per ottenere misure operative nel tempo e adatta il CLAUDE.md al tuo progetto, indicando i vincoli che desideri monitorare.<\/p>\n\n\n\n<p>Se il tuo stack \u00e8 PHP, <a href=\"https:\/\/github.com\/fullo\/sci-profiler-php\">sci-profiler-php<\/a> ti permette di aggiungere il profiling SCI a livello di configurazione, senza toccare una riga di codice applicativo \u2014 WordPress, Laravel, Symfony o PHP vanilla, fa poca differenza.<\/p>\n\n\n\n<p>Sono curioso di sapere cosa sta accadendo all&#8217;intersezione tra sviluppo assistito dall&#8217;AI e green software al di l\u00e0 della mia esperienza diretta. <a href=\"https:\/\/www.fullo.net\/contatti\/\">Scrivimi<\/a> se vuoi confrontarti.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Stavo preparando un hackathon sul green software. Quello che doveva essere un esperimento veloce si \u00e8 trasformato in quattro tool open source in cascata, ognuno estratto dal problema reale che il precedente aveva lasciato irrisolto. Il risultato: un CLAUDE.md come contratto tra developer e agente AI, una libreria TypeScript zero-dipendenze per misurare la Software Carbon Intensity, e un Agent Skill che audita il tuo progetto e ti dice esattamente dove stai sprecando byte \u2014 e carbonio.<\/p>\n","protected":false},"author":1,"featured_media":4589,"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":[9,2348,5],"tags":[2439,2413,2436,2435,2440,2251,2248,2437,2292,2438],"class_list":["post-4588","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-php","category-sustainability","category-tecnologia","tag-agentskills","tag-ai","tag-claude-code","tag-green-software","tag-green-software-foundation","tag-open-source","tag-php","tag-sci","tag-sustainability","tag-typescript"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Vibe coding e Green Software, si pu\u00f2 fare! - 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\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Vibe coding e Green Software, si pu\u00f2 fare! - Fullo\" \/>\n<meta property=\"og:description\" content=\"Stavo preparando un hackathon sul green software. Quello che doveva essere un esperimento veloce si \u00e8 trasformato in quattro tool open source in cascata, ognuno estratto dal problema reale che il precedente aveva lasciato irrisolto. Il risultato: un CLAUDE.md come contratto tra developer e agente AI, una libreria TypeScript zero-dipendenze per misurare la Software Carbon Intensity, e un Agent Skill che audita il tuo progetto e ti dice esattamente dove stai sprecando byte \u2014 e carbonio.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/\" \/>\n<meta property=\"og:site_name\" content=\"Fullo\" \/>\n<meta property=\"article:published_time\" content=\"2026-03-13T20:14:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-03-13T20:14:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/frankenstein-junior-jr-1799166.gif\" \/>\n\t<meta property=\"og:image:width\" content=\"454\" \/>\n\t<meta property=\"og:image:height\" content=\"250\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/gif\" \/>\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=\"12 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\\\/03\\\/13\\\/vibe-coding-e-green-software-si-puo-fare\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/13\\\/vibe-coding-e-green-software-si-puo-fare\\\/\"},\"author\":{\"name\":\"Francesco Fullone\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\"},\"headline\":\"Vibe coding e Green Software, si pu\u00f2 fare!\",\"datePublished\":\"2026-03-13T20:14:51+00:00\",\"dateModified\":\"2026-03-13T20:14:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/13\\\/vibe-coding-e-green-software-si-puo-fare\\\/\"},\"wordCount\":2450,\"publisher\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#\\\/schema\\\/person\\\/24e91bc6caea6c411a8668df5639428c\"},\"image\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/13\\\/vibe-coding-e-green-software-si-puo-fare\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/frankenstein-junior-jr-1799166.gif?fit=454%2C250&ssl=1\",\"keywords\":[\"agentskills\",\"ai\",\"claude code\",\"green software\",\"green software foundation\",\"open source\",\"php\",\"SCI\",\"sustainability\",\"typescript\"],\"articleSection\":[\"php\",\"sustainability\",\"tecnologia\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/13\\\/vibe-coding-e-green-software-si-puo-fare\\\/\",\"url\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/13\\\/vibe-coding-e-green-software-si-puo-fare\\\/\",\"name\":\"Vibe coding e Green Software, si pu\u00f2 fare! - Fullo\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/13\\\/vibe-coding-e-green-software-si-puo-fare\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/13\\\/vibe-coding-e-green-software-si-puo-fare\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/frankenstein-junior-jr-1799166.gif?fit=454%2C250&ssl=1\",\"datePublished\":\"2026-03-13T20:14:51+00:00\",\"dateModified\":\"2026-03-13T20:14:54+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/13\\\/vibe-coding-e-green-software-si-puo-fare\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/13\\\/vibe-coding-e-green-software-si-puo-fare\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/13\\\/vibe-coding-e-green-software-si-puo-fare\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/frankenstein-junior-jr-1799166.gif?fit=454%2C250&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/www.fullo.net\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/03\\\/frankenstein-junior-jr-1799166.gif?fit=454%2C250&ssl=1\",\"width\":454,\"height\":250},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/2026\\\/03\\\/13\\\/vibe-coding-e-green-software-si-puo-fare\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.fullo.net\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Vibe coding e Green Software, si pu\u00f2 fare!\"}]},{\"@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":"Vibe coding e Green Software, si pu\u00f2 fare! - 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\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/","og_locale":"en_US","og_type":"article","og_title":"Vibe coding e Green Software, si pu\u00f2 fare! - Fullo","og_description":"Stavo preparando un hackathon sul green software. Quello che doveva essere un esperimento veloce si \u00e8 trasformato in quattro tool open source in cascata, ognuno estratto dal problema reale che il precedente aveva lasciato irrisolto. Il risultato: un CLAUDE.md come contratto tra developer e agente AI, una libreria TypeScript zero-dipendenze per misurare la Software Carbon Intensity, e un Agent Skill che audita il tuo progetto e ti dice esattamente dove stai sprecando byte \u2014 e carbonio.","og_url":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/","og_site_name":"Fullo","article_published_time":"2026-03-13T20:14:51+00:00","article_modified_time":"2026-03-13T20:14:54+00:00","og_image":[{"width":454,"height":250,"url":"https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/frankenstein-junior-jr-1799166.gif","type":"image\/gif"}],"author":"Francesco Fullone","twitter_card":"summary_large_image","twitter_creator":"@fullo","twitter_site":"@fullo","twitter_misc":{"Written by":"Francesco Fullone","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/#article","isPartOf":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/"},"author":{"name":"Francesco Fullone","@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"headline":"Vibe coding e Green Software, si pu\u00f2 fare!","datePublished":"2026-03-13T20:14:51+00:00","dateModified":"2026-03-13T20:14:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/"},"wordCount":2450,"publisher":{"@id":"https:\/\/www.fullo.net\/blog\/#\/schema\/person\/24e91bc6caea6c411a8668df5639428c"},"image":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/frankenstein-junior-jr-1799166.gif?fit=454%2C250&ssl=1","keywords":["agentskills","ai","claude code","green software","green software foundation","open source","php","SCI","sustainability","typescript"],"articleSection":["php","sustainability","tecnologia"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/","url":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/","name":"Vibe coding e Green Software, si pu\u00f2 fare! - Fullo","isPartOf":{"@id":"https:\/\/www.fullo.net\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/#primaryimage"},"image":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/frankenstein-junior-jr-1799166.gif?fit=454%2C250&ssl=1","datePublished":"2026-03-13T20:14:51+00:00","dateModified":"2026-03-13T20:14:54+00:00","breadcrumb":{"@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/#primaryimage","url":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/frankenstein-junior-jr-1799166.gif?fit=454%2C250&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2026\/03\/frankenstein-junior-jr-1799166.gif?fit=454%2C250&ssl=1","width":454,"height":250},{"@type":"BreadcrumbList","@id":"https:\/\/www.fullo.net\/blog\/2026\/03\/13\/vibe-coding-e-green-software-si-puo-fare\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.fullo.net\/blog\/"},{"@type":"ListItem","position":2,"name":"Vibe coding e Green Software, si pu\u00f2 fare!"}]},{"@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\/03\/frankenstein-junior-jr-1799166.gif?fit=454%2C250&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3OSc1-1c0","jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":4027,"url":"https:\/\/www.fullo.net\/blog\/2023\/06\/25\/sostenibilita-del-software-ovvero-andare-oltre-al-solo-green-software\/","url_meta":{"origin":4588,"position":0},"title":"Sostenibilit\u00e0 del Software, ovvero: andare oltre al solo Green Software","author":"Francesco Fullone","date":"25\/06\/2023","format":false,"excerpt":"Dobbiamo capire che la sostenibilit\u00e0 del software va oltre le best practices della Green Software Foundation relative al Green IT.","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\/2023\/06\/1685968227492.gif?fit=1136%2C620&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2023\/06\/1685968227492.gif?fit=1136%2C620&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2023\/06\/1685968227492.gif?fit=1136%2C620&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2023\/06\/1685968227492.gif?fit=1136%2C620&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2023\/06\/1685968227492.gif?fit=1136%2C620&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":4588,"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":4179,"url":"https:\/\/www.fullo.net\/blog\/2024\/03\/01\/la-sostenibilita-digitale-e-un-vantaggio-competitivo\/","url_meta":{"origin":4588,"position":2},"title":"La sostenibilit\u00e0 digitale \u00e8 un vantaggio competitivo","author":"Francesco Fullone","date":"01\/03\/2024","format":false,"excerpt":"La sostenibilit\u00e0 digitale \u00e8, in fondo, un vantaggio competitivo che le aiuter\u00e0 a gestire al meglio il futuro.","rel":"","context":"In &quot;Entrepreneurship&quot;","block_context":{"text":"Entrepreneurship","link":"https:\/\/www.fullo.net\/blog\/category\/entrepreneurship\/"},"img":{"alt_text":"What people think building a sustainable internet involves vs what it might actually be","src":"https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/03\/pdzh2986.bmp","width":350,"height":200,"srcset":"https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/03\/pdzh2986.bmp 1x, https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/03\/pdzh2986.bmp 1.5x, https:\/\/www.fullo.net\/blog\/wp-content\/uploads\/2024\/03\/pdzh2986.bmp 2x"},"classes":[]},{"id":4603,"url":"https:\/\/www.fullo.net\/blog\/2026\/03\/23\/agenti-disfunzionali-software-funzionante\/","url_meta":{"origin":4588,"position":3},"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":4114,"url":"https:\/\/www.fullo.net\/blog\/2023\/10\/16\/green-web-smart-working-software\/","url_meta":{"origin":4588,"position":4},"title":"Green Web Smart Working Software","author":"Francesco Fullone","date":"16\/10\/2023","format":false,"excerpt":"Come al solito preparare talk ed aggiornare slide per le lezioni mi porta ad approfondire temi gi\u00e0 visti con nuovi paper, informazioni collaterali e report. Mentre preparavo il talk per l'AgileDay sul Sustainable Software, talk a corredo di quello fatto lo scorso anno riguardo ai Green Principles mi sono accorto\u2026","rel":"","context":"In &quot;cazzate&quot;","block_context":{"text":"cazzate","link":"https:\/\/www.fullo.net\/blog\/category\/cazzate\/"},"img":{"alt_text":"una e-mail produce meno co2 di una video call.","src":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2023\/10\/25-7c7739e3-b8d6-4064-812b-97f737768ce8.png?fit=1024%2C1024&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2023\/10\/25-7c7739e3-b8d6-4064-812b-97f737768ce8.png?fit=1024%2C1024&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2023\/10\/25-7c7739e3-b8d6-4064-812b-97f737768ce8.png?fit=1024%2C1024&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.fullo.net\/blog\/wp-content\/uploads\/2023\/10\/25-7c7739e3-b8d6-4064-812b-97f737768ce8.png?fit=1024%2C1024&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":4617,"url":"https:\/\/www.fullo.net\/blog\/2026\/04\/09\/pensieri-specchio\/","url_meta":{"origin":4588,"position":5},"title":"Pensieri specchio","author":"Francesco Fullone","date":"09\/04\/2026","format":false,"excerpt":"Ho costruito strumenti per aiutare gli altri a pensare meglio con un LLM. A met\u00e0 strada ho realizzato che li stavo costruendo per me. Il progetto \u00e8 live, sono la cavia principale, e se volete contribuire al chaos controllato potete farlo da qui.","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_rp7eugrp7eugrp7e-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_rp7eugrp7eugrp7e-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_rp7eugrp7eugrp7e-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_rp7eugrp7eugrp7e-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_rp7eugrp7eugrp7e-scaled.png?fit=1200%2C654&ssl=1&resize=1050%2C600 3x"},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4588","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=4588"}],"version-history":[{"count":3,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4588\/revisions"}],"predecessor-version":[{"id":4594,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/posts\/4588\/revisions\/4594"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/media\/4589"}],"wp:attachment":[{"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/media?parent=4588"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/categories?post=4588"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fullo.net\/blog\/wp-json\/wp\/v2\/tags?post=4588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}