<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Intelligenza artificiale - Web Design | Creazione Siti Internet</title>
	<atom:link href="https://www.mrtux.it/intelligenza-artificiale/feed" rel="self" type="application/rss+xml" />
	<link>https://www.mrtux.it</link>
	<description>Sviluppo Siti Web - Assistenza WordPress</description>
	<lastBuildDate>Wed, 20 May 2026 16:50:50 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://www.mrtux.it/wp-content/uploads/2022/06/favicon-150x150.png</url>
	<title>Intelligenza artificiale - Web Design | Creazione Siti Internet</title>
	<link>https://www.mrtux.it</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Creare plugin WordPress attraverso l&#039;Intelligenza Artificiale</title>
		<link>https://www.mrtux.it/creare-plugin-wordpress-attraverso-lintelligenza-artificiale</link>
					<comments>https://www.mrtux.it/creare-plugin-wordpress-attraverso-lintelligenza-artificiale#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Wed, 20 May 2026 15:22:59 +0000</pubDate>
				<category><![CDATA[Intelligenza artificiale]]></category>
		<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[AI Coding]]></category>
		<category><![CDATA[intelligenza artificiale]]></category>
		<category><![CDATA[plugin wordpress]]></category>
		<category><![CDATA[Sviluppo WordPress]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[wp-cli]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3380</guid>

					<description><![CDATA[Guida pratica per creare plugin WordPress con l'intelligenza artificiale: prompt, codice PHP, sicurezza, WP-CLI, link a risorse ufficiali e checklist SEO.]]></description>
										<content:encoded><![CDATA[<p>Creare un plugin WordPress con l'intelligenza artificiale non significa copiare codice da una chat e sperare che funzioni. Significa usare l'AI come acceleratore tecnico dentro un processo controllato: requisiti chiari, prompt precisi, codice piccolo, revisione di sicurezza, test in staging e solo dopo pubblicazione.</p>
<p>La promessa e' potente: trasformare un'idea in una funzionalita' installabile in pochi minuti. Il rischio, pero', e' altrettanto concreto: un plugin generato male puo' aprire problemi di sicurezza, rallentare il sito, salvare dati nel modo sbagliato o entrare in conflitto con altri componenti.</p>
<p>Questa guida mostra un metodo pratico per creare plugin WordPress attraverso l'intelligenza artificiale senza cadere nella trappola del codice casuale. Troverai prompt, architettura, esempi PHP, checklist SEO e riferimenti ufficiali. Se vuoi approfondire il metodo da prompt a codice, leggi anche l'articolo su <a href="https://www.mrtux.it/dal-prompt-al-plugin-wordpress-ai" data-wpel-link="internal" target="_self" rel="noopener">dal prompt al plugin WordPress</a>, la guida su <a href="https://www.mrtux.it/ai-sviluppo-wordpress-progettare-scrivere-ottimizzare-plugin" data-wpel-link="internal" target="_self" rel="noopener">AI e sviluppo WordPress per progettare e ottimizzare plugin</a> e l'approfondimento sugli <a href="https://www.mrtux.it/hook-wordpress-azioni-e-filter-per-plugin-professionali" data-wpel-link="internal" target="_self" rel="noopener">hook WordPress per plugin professionali</a>.</p>
<h2>Perche' l'AI cambia lo sviluppo dei plugin WordPress</h2>
<p>WordPress e' un ecosistema enorme: hook, azioni, filtri, shortcode, REST API, Options API, metadati, ruoli utente, nonce, capability, traduzioni e standard di codice. L'intelligenza artificiale puo' aiutarti a navigare tutto questo piu' velocemente, ma non deve sostituire la comprensione tecnica.</p>
<p>L'AI e' utile soprattutto in cinque aree:</p>
<ul>
<li>trasformare un'idea vaga in requisiti tecnici;</li>
<li>generare boilerplate coerente con WordPress;</li>
<li>proporre hook, funzioni e struttura dei file;</li>
<li>revisionare codice alla ricerca di errori;</li>
<li>scrivere documentazione, readme e checklist di test.</li>
</ul>
<p>Il punto chiave e' questo: un modello linguistico puo' produrre codice plausibile, ma non ha la responsabilita' del sito. Quella resta tua. Per questo conviene lavorare con un workflow ripetibile, non con prompt improvvisati.</p>
<h2>Il workflow corretto: dall'idea al plugin installabile</h2>
<p>Il metodo piu' sicuro per creare plugin WordPress con AI e' diviso in sette fasi. Ogni fase ha un obiettivo preciso e una verifica concreta.</p>
<ol>
<li>Definisci il problema che il plugin deve risolvere.</li>
<li>Trasforma l'idea in requisiti funzionali e tecnici.</li>
<li>Chiedi all'AI una struttura minima, non un plugin gigante.</li>
<li>Genera il codice un file alla volta.</li>
<li>Fai revisionare sicurezza, naming e compatibilita'.</li>
<li>Testa in locale o staging con debug attivo.</li>
<li>Documenta uso, limiti e manutenzione.</li>
</ol>
<p>Questo flusso si integra bene con un workflow piu' ampio di <a href="https://www.mrtux.it/sviluppo-wordpress-ai-temi-plugin" data-wpel-link="internal" target="_self" rel="noopener">sviluppo WordPress con AI per temi e plugin</a>, soprattutto quando lavori su progetti cliente o siti con traffico reale.</p>
<h2>Prima di scrivere codice: il prompt di analisi</h2>
<p>L'errore piu' comune e' chiedere subito: &quot;creami un plugin WordPress&quot;. E' il modo piu' rapido per ottenere codice generico. Prima devi chiedere all'AI di chiarire il progetto.</p>
<p>Usa un prompt come questo:</p>
<pre><code class="language-text">Agisci come sviluppatore WordPress senior specializzato in plugin sicuri e manutenibili.

Voglio creare un plugin WordPress chiamato &quot;MRT Reading CTA&quot;.
Obiettivo: aggiungere automaticamente alla fine degli articoli un box con tempo di lettura stimato e una call to action configurabile.

Prima di scrivere codice, produci:
1. requisiti funzionali;
2. requisiti di sicurezza;
3. hook WordPress necessari;
4. dati da salvare e dove salvarli;
5. struttura minima dei file;
6. rischi tecnici;
7. checklist di test.

Non generare ancora codice PHP.</code></pre>
<p>Questo prompt forza il modello a progettare prima di produrre. La qualita' del risultato aumenta perche' il codice nasce da un perimetro chiaro.</p>
<h2>Struttura minima consigliata</h2>
<p>Per un plugin semplice non serve un framework interno. Serve una struttura leggibile, con nomi coerenti e pochi file.</p>
<pre><code class="language-text">mrt-reading-cta/
├── mrt-reading-cta.php
├── includes/
│   └── admin-settings.php
├── assets/
│   └── css/
│       └── frontend.css
└── readme.txt</code></pre>
<p>Questa struttura basta per un plugin piccolo con impostazioni admin e output frontend. Se il plugin cresce, puoi separare shortcode, REST API, integrazioni esterne e classi dedicate. Ma all'inizio la semplicita' e' una forma di sicurezza.</p>
<h2>Esempio pratico: plugin con tempo di lettura e CTA</h2>
<p>Immaginiamo di creare un plugin che aggiunge alla fine di ogni articolo un box con tempo di lettura stimato e link a un servizio. E' un caso reale, utile per blog, content marketing e siti editoriali.</p>
<p>Ecco un esempio minimale, pensato per mostrare i concetti fondamentali:</p>
<pre><code class="language-php">&lt;?php
/**
 * Plugin Name: MRT Reading CTA
 * Description: Aggiunge un box con tempo di lettura stimato e call to action alla fine degli articoli.
 * Version: 0.1.0
 * Author: MrTux
 * Text Domain: mrt-reading-cta
 */

if ( ! defined( &#039;ABSPATH&#039; ) ) {
    exit;
}

define( &#039;MRT_READING_CTA_VERSION&#039;, &#039;0.1.0&#039; );

add_filter( &#039;the_content&#039;, &#039;mrt_reading_cta_append_box&#039; );

function mrt_reading_cta_append_box( $content ) {
    if ( ! is_singular( &#039;post&#039; ) || ! in_the_loop() || ! is_main_query() ) {
        return $content;
    }

    $plain_text = wp_strip_all_tags( $content );
    $word_count = str_word_count( $plain_text );
    $minutes    = max( 1, (int) ceil( $word_count / 220 ) );
    $cta_url    = get_option( &#039;mrt_reading_cta_url&#039;, home_url( &#039;/contatti/&#039; ) );

    $box  = &#039;&lt;div class=&quot;mrt-reading-cta&quot;&gt;&#039;;
    $box .= &#039;&lt;p&gt;&lt;strong&gt;&#039; . esc_html( sprintf( &#039;Tempo di lettura: %d minuti&#039;, $minutes ) ) . &#039;&lt;/strong&gt;&lt;/p&gt;&#039;;
    $box .= &#039;&lt;p&gt;&#039; . esc_html__( &#039;Vuoi trasformare questa idea in un plugin su misura?&#039;, &#039;mrt-reading-cta&#039; ) . &#039;&lt;/p&gt;&#039;;
    $box .= &#039;&lt;a href=&quot;&#039; . esc_url( $cta_url ) . &#039;&quot;&gt;&#039; . esc_html__( &#039;Richiedi una consulenza WordPress&#039;, &#039;mrt-reading-cta&#039; ) . &#039;&lt;/a&gt;&#039;;
    $box .= &#039;&lt;/div&gt;&#039;;

    return $content . $box;
}</code></pre>
<p>Questo snippet mostra gia' alcuni principi importanti:</p>
<ul>
<li>blocco dell'accesso diretto con <code>ABSPATH</code>;</li>
<li>uso di <code>the_content</code> solo nei post singoli;</li>
<li>controllo su loop principale e query principale;</li>
<li>escape dell'URL con <code>esc_url()</code>;</li>
<li>escape del testo con <code>esc_html()</code> ed <code>esc_html__()</code>;</li>
<li>opzione configurabile con fallback sicuro.</li>
</ul>
<p>Non e' ancora un plugin commerciale, ma e' una base sensata. Da qui puoi chiedere all'AI di aggiungere una pagina impostazioni, un file CSS, traduzioni e test.</p>
<h2>Prompt per aggiungere una pagina impostazioni</h2>
<p>La pagina impostazioni e' una delle parti dove l'AI sbaglia piu' spesso. Puo' dimenticare nonce, capability o sanitizzazione. Devi quindi essere molto esplicito.</p>
<pre><code class="language-text">Partendo dal plugin MRT Reading CTA, aggiungi una pagina impostazioni sotto &quot;Impostazioni &gt; Reading CTA&quot;.

Vincoli obbligatori:
- accesso solo a utenti con capability manage_options;
- salvataggio di una singola opzione mrt_reading_cta_url;
- campo URL sanificato con esc_url_raw;
- form protetto da nonce;
- output sempre escapato;
- text domain mrt-reading-cta;
- nessun framework esterno;
- codice compatibile con WordPress 6.x e PHP 8.1.

Restituisci solo il codice necessario e spiega quali parti devo testare.</code></pre>
<p>Un prompt cosi' riduce il rischio di codice superficiale. Non basta dire &quot;sicuro&quot;: devi specificare cosa significa sicurezza in WordPress.</p>
<h2>Sicurezza: la checklist che l'AI deve rispettare</h2>
<p>La sicurezza e' il confine tra un esperimento e un plugin installabile. Quando usi AI per generare codice WordPress, controlla sempre questi elementi.</p>
<table>
<thead>
<tr>
<th>Area</th>
<th>Controllo</th>
<th>Funzioni utili</th>
</tr>
</thead>
<tbody>
<tr>
<td>Accesso diretto</td>
<td>Il file blocca esecuzioni fuori da WordPress</td>
<td><code>defined( &#039;ABSPATH&#039; )</code></td>
</tr>
<tr>
<td>Permessi</td>
<td>Solo utenti autorizzati modificano impostazioni</td>
<td><code>current_user_can()</code></td>
</tr>
<tr>
<td>Intenzione</td>
<td>I form admin verificano la richiesta</td>
<td><code>check_admin_referer()</code></td>
</tr>
<tr>
<td>Input</td>
<td>I dati salvati sono puliti</td>
<td><code>sanitize_text_field()</code>, <code>esc_url_raw()</code>, <code>absint()</code></td>
</tr>
<tr>
<td>Output</td>
<td>I dati stampati sono protetti</td>
<td><code>esc_html()</code>, <code>esc_attr()</code>, <code>esc_url()</code></td>
</tr>
<tr>
<td>Database</td>
<td>Query sicure quando serve SQL custom</td>
<td><code>$wpdb-&gt;prepare()</code></td>
</tr>
<tr>
<td>REST API</td>
<td>Endpoint protetti</td>
<td><code>permission_callback</code></td>
</tr>
</tbody>
</table>
<p>Le fonti ufficiali restano indispensabili: consulta il <a href="https://developer.wordpress.org/plugins/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Plugin Handbook</a>, la sezione sulla <a href="https://developer.wordpress.org/plugins/security/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">sicurezza dei plugin WordPress</a>, la documentazione su <a href="https://developer.wordpress.org/apis/security/escaping/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">validazione, sanitizzazione ed escaping</a> e le <a href="https://developer.wordpress.org/plugins/wordpress-org/detailed-plugin-guidelines/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">linee guida per plugin WordPress.org</a>.</p>
<h2>Come usare l'AI per fare code review</h2>
<p>Dopo aver generato il codice, cambia ruolo al modello. Non chiedergli di &quot;migliorare&quot; il plugin. Chiedigli di fare revisione tecnica con vincoli stretti.</p>
<pre><code class="language-text">Analizza questo plugin WordPress come revisore senior.
Non riscrivere tutto.
Segnala solo problemi concreti in queste aree:
1. capability mancanti o sbagliate;
2. nonce assenti;
3. input non sanificati;
4. output non escapati;
5. uso scorretto di hook;
6. naming collision;
7. problemi di compatibilita&#039; PHP/WordPress;
8. possibili warning con WP_DEBUG attivo.

Per ogni problema dammi: rischio, riga coinvolta e patch minima.</code></pre>
<p>Questo tipo di prompt rende l'AI piu' utile. La obbliga a cercare difetti verificabili invece di proporre refactoring estetici.</p>
<h2>Test in staging con WP-CLI</h2>
<p>Un plugin generato con AI non va mai testato direttamente sul sito live. Crea uno staging o un ambiente locale. Poi usa comandi semplici e ripetibili.</p>
<pre><code class="language-bash"># verifica che WordPress veda il plugin
wp plugin list

# attiva il plugin
wp plugin activate mrt-reading-cta

# controlla l&#039;opzione salvata
wp option get mrt_reading_cta_url

# disattiva il plugin per verificare rollback base
wp plugin deactivate mrt-reading-cta</code></pre>
<p>La documentazione di <a href="https://make.wordpress.org/cli/handbook/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WP-CLI</a> e' fondamentale per trasformare i test in una procedura ripetibile. Per controlli piu' avanzati puoi usare anche <a href="https://github.com/WordPress/WordPress-Coding-Standards" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Coding Standards</a>, utile per intercettare problemi di stile e sicurezza ricorrenti.</p>
<h2>AI, REST API e integrazioni esterne</h2>
<p>Molti plugin moderni integrano servizi AI esterni: OpenAI, Claude, Gemini, modelli locali o API proprietarie. Qui serve ancora piu' attenzione. Un plugin che invia prompt, dati utente o contenuti a servizi esterni deve considerare privacy, timeout, gestione errori e consenso.</p>
<p>Se il plugin usa endpoint REST, non lasciare mai permessi vaghi. La documentazione della <a href="https://developer.wordpress.org/rest-api/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress REST API</a> mostra come registrare route e callback in modo corretto.</p>
<p>Esempio di endpoint protetto:</p>
<pre><code class="language-php">add_action( &#039;rest_api_init&#039;, function () {
    register_rest_route(
        &#039;mrt-reading-cta/v1&#039;,
        &#039;/settings&#039;,
        array(
            &#039;methods&#039;             =&gt; &#039;POST&#039;,
            &#039;callback&#039;            =&gt; &#039;mrt_reading_cta_save_settings&#039;,
            &#039;permission_callback&#039; =&gt; function () {
                return current_user_can( &#039;manage_options&#039; );
            },
        )
    );
} );</code></pre>
<p>Se l'AI propone <code>__return_true</code> come <code>permission_callback</code>, chiedi una giustificazione. Per dati pubblici puo' essere accettabile. Per impostazioni, azioni admin o contenuti riservati e' quasi sempre un errore.</p>
<h2>Come trasformare un plugin AI in contenuto SEO</h2>
<p>Creare plugin WordPress con l'intelligenza artificiale puo' diventare anche una strategia editoriale. Ogni plugin risolve un problema specifico e quel problema puo' diventare un articolo, una guida, una landing page o un case study.</p>
<p>Il formato che funziona meglio e':</p>
<ul>
<li>problema reale del lettore;</li>
<li>soluzione con plugin;</li>
<li>prompt usato;</li>
<li>codice spiegato;</li>
<li>errori corretti;</li>
<li>checklist di sicurezza;</li>
<li>risultato finale.</li>
</ul>
<p>Questo e' lo stesso principio che trovi nei contenuti su <a href="https://www.mrtux.it/plugin-ai-wordpress-contenuti-seo-automazione" data-wpel-link="internal" target="_self" rel="noopener">plugin AI per WordPress dedicati a contenuti, SEO e automazione</a>: l'AI diventa utile quando viene collegata a un risultato concreto, misurabile e replicabile.</p>
<h2>Errori da evitare</h2>
<p>Quando crei plugin WordPress attraverso l'AI, evita questi errori.</p>
<ul>
<li>Pubblicare codice generato senza leggerlo.</li>
<li>Installare il plugin direttamente in produzione.</li>
<li>Dimenticare nonce nei form admin.</li>
<li>Usare capability troppo permissive.</li>
<li>Stampare dati utente senza escape.</li>
<li>Creare tabelle custom quando bastano opzioni o meta.</li>
<li>Caricare CSS e JavaScript su tutte le pagine senza motivo.</li>
<li>Salvare API key in chiaro senza valutare permessi e privacy.</li>
<li>Fidarti di funzioni WordPress inventate o obsolete.</li>
<li>Chiedere all'AI un plugin enorme invece di procedere per moduli.</li>
</ul>
<p>La regola e' semplice: se non sai spiegare cosa fa ogni blocco di codice, non e' ancora pronto.</p>
<h2>Le migliori risorse da tenere aperte</h2>
<p>Quando lavori con AI e WordPress, tieni sempre aperte queste risorse ufficiali e tecniche:</p>
<ul>
<li><a href="https://developer.wordpress.org/plugins/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Plugin Handbook</a> per struttura, API e standard di sviluppo.</li>
<li><a href="https://developer.wordpress.org/reference/hooks/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Hooks Reference</a> per verificare azioni e filtri.</li>
<li><a href="https://developer.wordpress.org/plugins/security/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Plugin Security Handbook</a> per nonce, capability e gestione input/output.</li>
<li><a href="https://developer.wordpress.org/rest-api/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress REST API Handbook</a> per endpoint e permission callback.</li>
<li><a href="https://make.wordpress.org/cli/handbook/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WP-CLI Handbook</a> per test, automazione e gestione da terminale.</li>
<li><a href="https://github.com/WordPress/WordPress-Coding-Standards" target="_blank" rel="noopener nofollow external" data-wpel-link="external">WordPress Coding Standards</a> per controlli di qualita' sul codice PHP.</li>
<li><a href="https://platform.openai.com/docs" target="_blank" rel="noopener nofollow external" data-wpel-link="external">OpenAI API Documentation</a> se vuoi integrare modelli AI esterni in un plugin.</li>
</ul>
<h2>Checklist finale prima della pubblicazione</h2>
<p>Prima di considerare pronto un plugin generato con AI, verifica questi punti.</p>
<ol>
<li>Il plugin ha uno scopo chiaro in una frase.</li>
<li>Il nome dello slug e il prefisso delle funzioni sono coerenti.</li>
<li>Tutti i file bloccano accesso diretto.</li>
<li>Ogni form admin usa nonce.</li>
<li>Ogni azione sensibile controlla le capability.</li>
<li>Ogni input e' validato o sanificato.</li>
<li>Ogni output e' escapato.</li>
<li>Il plugin si attiva e disattiva senza errori.</li>
<li>WP_DEBUG non mostra warning o notice.</li>
<li>Il codice e' stato testato in staging.</li>
<li>Il readme spiega installazione, uso e limiti.</li>
<li>Eventuali API esterne hanno timeout e gestione errori.</li>
</ol>
<p>Questa checklist puo' diventare un prompt finale:</p>
<pre><code class="language-text">Verifica questo plugin contro la checklist seguente.
Non proporre nuove funzionalita&#039;.
Segnala solo i punti non rispettati e suggerisci la correzione minima.</code></pre>
<h2>Conclusione</h2>
<p>Creare plugin WordPress attraverso l'intelligenza artificiale e' una delle applicazioni piu' concrete dell'AI nello sviluppo web. Il vantaggio non e' solo scrivere codice piu' velocemente. Il vero vantaggio e' ridurre il tempo tra idea, prototipo, revisione e test.</p>
<p>La differenza tra un plugin utile e un rischio per il sito sta nel metodo. Usa l'AI per chiarire requisiti, generare una base, revisionare codice e preparare documentazione. Usa la tua competenza per decidere architettura, sicurezza, compatibilita' e pubblicazione.</p>
<p>Se vuoi iniziare oggi, scegli una funzionalita' piccola: uno shortcode, un box CTA, una pagina impostazioni, un'integrazione semplice. Genera poco codice, controllalo bene, testalo in staging e miglioralo a piccoli passi. E' cosi' che l'intelligenza artificiale diventa uno strumento professionale, non una scorciatoia pericolosa.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/creare-plugin-wordpress-attraverso-lintelligenza-artificiale/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Progettare un tema WordPress completo con DESIGN.md, Google Stitch e prompt AI</title>
		<link>https://www.mrtux.it/progettare-tema-wordpress-design-md-google-stitch-prompt-ai</link>
					<comments>https://www.mrtux.it/progettare-tema-wordpress-design-md-google-stitch-prompt-ai#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Mon, 18 May 2026 09:22:57 +0000</pubDate>
				<category><![CDATA[Intelligenza artificiale]]></category>
		<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[Web Design]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[DESIGN.md]]></category>
		<category><![CDATA[Google Stitch]]></category>
		<category><![CDATA[theme.json]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/progettare-tema-wordpress-design-md-google-stitch-prompt-ai</guid>

					<description><![CDATA[Guida pratica per progettare e implementare un tema WordPress completo con specifiche chiare, DESIGN.md, Google Stitch, prompt ottimizzati, theme.json, template, pattern e controlli SEO.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Oggi la progettazione di un tema WordPress parte da un'osservazione fondamentale: l'AI non elimina il lavoro difficile, lo sposta prima della scrittura del codice. Un developer può far implementare una SaaS completa da un agente, ma solo se prima ha definito architettura, vincoli, confini e criteri di completamento. Lo stesso principio vale quando vogliamo creare un <strong>tema WordPress con DESIGN.md</strong>: il risultato dipende meno dal prompt generico e molto di più dalla qualità della specifica.</p>


<p class="wp-block-paragraph">Per chi lavora su siti WordPress, questo cambia il metodo. Invece di chiedere all'AI "crea un tema moderno", conviene progettare un sistema leggibile da persone e agenti: brief, pagine, componenti, token, accessibilità, template, pattern e test. È lo stesso cambio di mentalità che ho già approfondito parlando di <a href="https://www.mrtux.it/web-design-wordpress-tramite-il-plugin-novamira-ai" data-wpel-link="internal" target="_self" rel="noopener">web design WordPress con Novamira.ai</a> e di <a href="https://www.mrtux.it/futuro-siti-web-temi-wordpress-intelligenza-artificiale" data-wpel-link="internal" target="_self" rel="noopener">temi WordPress generati dall'intelligenza artificiale</a>: l'AI funziona meglio quando ha un perimetro tecnico preciso.</p>


<p class="wp-block-paragraph">In questa guida vediamo un flusso completo: prima si scrive la specifica, poi si usa <a href="https://stitch.withgoogle.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Google Stitch</a> per esplorare l'interfaccia, quindi si traduce il design in <a href="https://github.com/google-labs-code/design.md" target="_blank" rel="noopener nofollow external" data-wpel-link="external">DESIGN.md</a>, si implementa un block theme WordPress con <code>theme.json</code>, template e pattern, e infine si controlla tutto con prompt mirati, WP-CLI e test manuali. Se vuoi ripassare le basi tradizionali, puoi affiancare questa guida a <a href="https://www.mrtux.it/come-creare-un-tema-wordpress-da-zero" data-wpel-link="internal" target="_self" rel="noopener">come creare un tema WordPress da zero</a>.</p>


<p class="wp-block-paragraph">La tesi è semplice: il tema non deve emergere dal codice per tentativi. Deve derivare da una specifica. Il codice è una conseguenza, non il punto di partenza.</p>


<h2 class="wp-block-heading">Perché partire da una specifica prima del codice</h2>


<p class="wp-block-paragraph">Per progettare in modo efficace un tema WordPress con standard attuali bisogna  insistere su un punto: chi usa bene gli agenti AI non salta la parte difficile, salta solo la parte più meccanica dell'implementazione. Nel caso di un tema WordPress, la parte difficile non è creare una cartella in <code>wp-content/themes</code>. È decidere cosa il tema deve fare, cosa non deve toccare, come deve comportarsi nel Site Editor, quali blocchi deve supportare e quali vincoli non possono essere violati.</p>


<p class="wp-block-paragraph">Una specifica utile deve rispondere almeno a queste domande:</p>


<ul class="wp-block-list">
<li>Quale problema risolve il tema e per quale pubblico?</li>
<li>Quali pagine e template sono indispensabili al primo rilascio?</li>
<li>Quali componenti devono essere riutilizzabili come pattern Gutenberg?</li>
<li>Quali token regolano colori, font, spaziature, raggi, ombre e layout?</li>
<li>Quali file l'agente AI può modificare e quali deve lasciare intatti?</li>
<li>Quali criteri definiscono "finito": responsive, accessibilità, performance, SEO, compatibilità editor?</li>
</ul>


<p class="wp-block-paragraph">Questa è la differenza tra vibe coding casuale e sviluppo assistito serio: non chiedi all'AI di indovinare, le dai un contratto operativo.</p>


<h2 class="wp-block-heading">Architettura del workflow</h2>


<p class="wp-block-paragraph">Il flusso consigliato è diviso in sette fasi. Ogni fase produce un output che diventa input per la successiva.</p>


<figure class="wp-block-table"><table><thead><tr><th>Fase</th><th>Output</th><th>Uso nel progetto</th></tr></thead><tbody><tr><td>Brief</td><td>Obiettivi, pubblico, pagine, vincoli</td><td>Evita prompt vaghi e decisioni implicite</td></tr><tr><td>Design exploration</td><td>Schermate create in Google Stitch</td><td>Valida layout, gerarchie e tono visivo</td></tr><tr><td>DESIGN.md</td><td>Token e regole del design system</td><td>Dà agli agenti AI una memoria visiva stabile</td></tr><tr><td>Theme skeleton</td><td>Cartelle, style.css, theme.json</td><td>Prepara la struttura del block theme</td></tr><tr><td>Template</td><td>index, front-page, single, archive, 404</td><td>Definisce le viste principali</td></tr><tr><td>Pattern</td><td>Hero, CTA, card, FAQ, pricing</td><td>Rende il tema modificabile nel Site Editor</td></tr><tr><td>QA</td><td>Checklist e correzioni</td><td>Controlla responsive, SEO, accessibilità e performance</td></tr></tbody></table></figure>


<h2 class="wp-block-heading">Step 1: scrivere il brief tecnico del tema</h2>


<p class="wp-block-paragraph">Prima di aprire Stitch o un editor, crea un file <code>SPEC.md</code>. Questo file descrive il risultato atteso in modo verificabile.</p>


<pre class="wp-block-code"><code># SPEC.md - Tema WordPress per studio professionale

## Obiettivo
Creare un block theme WordPress per uno studio di consulenza B2B.
Il tema deve comunicare autorevolezza, chiarezza, velocità e affidabilità.

## Pagine prioritarie
- Homepage
- Servizi
- Caso studio
- Blog
- Contatti
- 404

## Vincoli
- Nessun page builder esterno.
- Compatibile con Site Editor e Gutenberg.
- Tutte le sezioni riutilizzabili devono diventare pattern.
- Nessun H1 duplicato nei template.
- Palette e tipografia governate da theme.json.
- CSS custom ridotto al minimo.

## Criteri di completamento
- Mobile, tablet e desktop senza overflow.
- Contrasto WCAG AA sulle CTA principali.
- Template principali presenti in /templates.
- Header e footer presenti in /parts.
- Pattern registrati in /patterns.
- Score PageSpeed da verificare prima del rilascio.</code></pre>


<p class="wp-block-paragraph">Il prompt iniziale per l'agente AI non deve chiedere codice. Deve chiedere di verificare la specifica.</p>


<pre class="wp-block-code"><code>Agisci come senior WordPress theme architect.

Leggi questa specifica per un block theme WordPress.
Non generare codice.

Task:
1. Trova requisiti ambigui.
2. Elenca decisioni mancanti.
3. Proponi una struttura file coerente con un block theme moderno.
4. Indica quali parti devono diventare template e quali pattern.
5. Restituisci solo una checklist tecnica approvabile.

SPEC:
[incolla qui SPEC.md]</code></pre>


<h2 class="wp-block-heading">Step 2: progettare le prime schermate con Google Stitch</h2>


<p class="wp-block-paragraph">Google descrive Stitch come un canvas AI-native per creare, iterare e collaborare su UI ad alta fedeltà usando linguaggio naturale. Nel workflow WordPress non va usato come scorciatoia per copiare HTML a caso, ma come strumento di esplorazione: produce direzioni visive, layout e varianti che poi vanno convertite in un sistema WordPress mantenibile.</p>


<p class="wp-block-paragraph">Un prompt efficace per Stitch deve contenere obiettivo, pubblico, tono, struttura e vincoli. Ecco un esempio pronto.</p>


<pre class="wp-block-code"><code>Design a responsive WordPress block theme homepage for a B2B consulting studio.

Business goal:
Generate qualified leads for consulting calls.

Audience:
Small business owners and marketing managers who need a reliable WordPress partner.

Visual direction:
Clean, editorial, professional, calm. Avoid generic SaaS gradients and oversized decorative blobs.

Page structure:
1. Header with logo, navigation and primary CTA.
2. Hero with clear value proposition and one CTA.
3. Trust strip with service areas.
4. Services grid with 3 cards.
5. Case study preview.
6. Process section with 4 steps.
7. FAQ.
8. Final CTA.
9. Footer with contacts and legal links.

Constraints:
- Design must translate cleanly into WordPress Gutenberg blocks.
- Use reusable sections that can become block patterns.
- Keep text readable on mobile.
- Use accessible contrast for buttons and links.</code></pre>


<p class="wp-block-paragraph">Dopo aver ottenuto una variante convincente, non fermarti allo screenshot. Chiedi a Stitch o all'agente di estrarre le decisioni di design: palette, font, scala tipografica, spacing, componenti e stati. Queste informazioni diventano il materiale per <code>DESIGN.md</code>.</p>


<h2 class="wp-block-heading">Step 3: trasformare il design in DESIGN.md</h2>


<p class="wp-block-paragraph"><code>DESIGN.md</code> è utile perché rende esplicito il design system in un formato testuale leggibile dagli agenti. Il repository ufficiale di Google Labs include anche comandi CLI per validare, confrontare ed esportare token. La documentazione WordPress, invece, indica <code>theme.json</code> come il file fondamentale per impostazioni e stili globali di un block theme. Il ponte naturale è questo: <code>DESIGN.md</code> governa il linguaggio visivo, <code>theme.json</code> lo applica in WordPress.</p>


<p class="wp-block-paragraph">Un esempio essenziale di <code>DESIGN.md</code> per il tema potrebbe essere:</p>


<pre class="wp-block-code"><code># DESIGN.md

## Brand
Name: Studio Atlas
Personality: clear, practical, reliable, technical.
Audience: business owners, marketing managers, WordPress site owners.

## Color Tokens
- primary: #1E3A5F
- primary-hover: #15304F
- accent: #D97706
- background: #F7F8FA
- surface: #FFFFFF
- text: #17202A
- muted: #5F6B7A
- border: #D9DEE7

## Typography
- heading-font: Inter Tight, system-ui, sans-serif
- body-font: Inter, system-ui, sans-serif
- h1: 56px / 1.08 / 700
- h2: 40px / 1.15 / 700
- h3: 26px / 1.25 / 650
- body: 18px / 1.7 / 400
- small: 14px / 1.5 / 400

## Spacing
- xs: 8px
- sm: 16px
- md: 24px
- lg: 40px
- xl: 64px
- section: 96px

## Components
Button primary:
- background: primary
- text: #FFFFFF
- radius: 6px
- padding: 14px 22px
- hover: primary-hover
- focus: 2px solid accent

Card:
- background: surface
- border: 1px solid border
- radius: 8px
- padding: 24px
- no decorative shadow unless needed for hierarchy

## WordPress Rules
- Prefer core blocks and patterns.
- Avoid hard-coded inline styles in templates.
- Put global decisions in theme.json.
- Use CSS only for behavior not expressible through theme.json.</code></pre>


<p class="wp-block-paragraph">Prima di usare questo file come contesto per un agente, validalo. La CLI ufficiale consente il controllo strutturale.</p>


<pre class="wp-block-code"><code># comando lint
npx @google/design.md lint DESIGN.md</code></pre>


<p class="wp-block-paragraph">Quando fai evolvere il design, confronta due versioni per evitare regressioni nei token.</p>


<pre class="wp-block-code"><code># confronto due versioni
npx @google/design.md diff DESIGN.md DESIGN-v2.md</code></pre>


<h2 class="wp-block-heading">Step 4: creare lo scheletro del block theme</h2>


<p class="wp-block-paragraph">Un tema a blocchi moderno parte da pochi file ordinati. La documentazione ufficiale WordPress ricorda che i block theme usano blocchi per tutte le parti del sito, inclusi header, contenuto e footer. Per questo conviene progettare la struttura in modo compatibile con Site Editor.</p>


<pre class="wp-block-code"><code>studio-atlas/
├── style.css
├── functions.php
├── theme.json
├── screenshot.png
├── templates/
│   ├── index.html
│   ├── front-page.html
│   ├── single.html
│   ├── page.html
│   ├── archive.html
│   └── 404.html
├── parts/
│   ├── header.html
│   └── footer.html
├── patterns/
│   ├── hero-consulenza.php
│   ├── servizi-grid.php
│   ├── processo.php
│   ├── faq.php
│   └── cta-finale.php
└── assets/
    ├── css/
    └── js/</code></pre>


<p class="wp-block-paragraph">Il file <code>style.css</code> contiene l'intestazione riconosciuta da WordPress.</p>


<pre class="wp-block-code"><code>/*
Theme Name: Studio Atlas
Theme URI: https://example.com/studio-atlas
Author: Emilio Petrozzi
Description: Block theme WordPress progettato con DESIGN.md, Google Stitch e specifiche AI.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 8.0
Text Domain: studio-atlas
*/</code></pre>


<p class="wp-block-paragraph">Il prompt per generare lo scheletro deve limitare il raggio d'azione dell'agente.</p>


<pre class="wp-block-code"><code>Agisci come sviluppatore senior WordPress specializzato in block theme.

Contesto:
- SPEC.md definisce requisiti e pagine.
- DESIGN.md definisce token e componenti.

Task:
Crea lo scheletro del tema "studio-atlas".

Vincoli:
- Non creare plugin.
- Non usare page builder.
- Non inserire CSS inline nei template.
- Usa theme.json per colori, font, spacing e layout.
- Crea solo file necessari al primo rilascio.

Output:
1. Alberatura file.
2. Contenuto di style.css.
3. Contenuto minimo di functions.php.
4. Contenuto iniziale di theme.json.
5. Note sui file da completare dopo approvazione.</code></pre>


<h2 class="wp-block-heading">Step 5: tradurre DESIGN.md in theme.json</h2>


<p class="wp-block-paragraph"><code>theme.json</code> è il punto in cui il design system diventa editoriale: palette, tipografia, spaziature e layout appaiono sia nel frontend sia nell'editor. WordPress lo definisce una lingua comune tra tema, plugin, utenti e interfaccia di editing.</p>


<pre class="wp-block-code"><code>{
  "$schema": "https://schemas.wp.org/trunk/theme.json",
  "version": 2,
  "settings": {
    "appearanceTools": true,
    "layout": {
      "contentSize": "760px",
      "wideSize": "1180px"
    },
    "color": {
      "palette": [
        { "slug": "primary", "name": "Primary", "color": "#1E3A5F" },
        { "slug": "accent", "name": "Accent", "color": "#D97706" },
        { "slug": "background", "name": "Background", "color": "#F7F8FA" },
        { "slug": "surface", "name": "Surface", "color": "#FFFFFF" },
        { "slug": "text", "name": "Text", "color": "#17202A" },
        { "slug": "muted", "name": "Muted", "color": "#5F6B7A" }
      ]
    },
    "typography": {
      "fontFamilies": [
        {
          "slug": "inter",
          "name": "Inter",
          "fontFamily": "Inter, system-ui, sans-serif"
        },
        {
          "slug": "inter-tight",
          "name": "Inter Tight",
          "fontFamily": "\"Inter Tight\", Inter, system-ui, sans-serif"
        }
      ],
      "fontSizes": [
        { "slug": "small", "name": "Small", "size": "14px" },
        { "slug": "base", "name": "Base", "size": "18px" },
        { "slug": "h2", "name": "Heading 2", "size": "40px" },
        { "slug": "hero", "name": "Hero", "size": "56px" }
      ]
    },
    "spacing": {
      "spacingScale": {
        "steps": 0
      },
      "spacingSizes": [
        { "slug": "sm", "name": "Small", "size": "16px" },
        { "slug": "md", "name": "Medium", "size": "24px" },
        { "slug": "lg", "name": "Large", "size": "40px" },
        { "slug": "xl", "name": "Extra Large", "size": "64px" }
      ]
    }
  },
  "styles": {
    "color": {
      "background": "var:preset|color|background",
      "text": "var:preset|color|text"
    },
    "typography": {
      "fontFamily": "var:preset|font-family|inter",
      "fontSize": "var:preset|font-size|base",
      "lineHeight": "1.7"
    },
    "elements": {
      "heading": {
        "typography": {
          "fontFamily": "var:preset|font-family|inter-tight",
          "lineHeight": "1.15"
        }
      },
      "button": {
        "border": {
          "radius": "6px"
        },
        "color": {
          "background": "var:preset|color|primary",
          "text": "var:preset|color|surface"
        }
      }
    }
  }
}</code></pre>


<p class="wp-block-paragraph">Prompt consigliato per questa conversione:</p>


<pre class="wp-block-code"><code>Agisci come WordPress block theme engineer.

Input:
- DESIGN.md con token colore, tipografia, spacing e componenti.
- SPEC.md con vincoli del tema.

Task:
Genera un theme.json compatibile con WordPress 6.5+.

Regole:
- Usa version 2 e $schema ufficiale.
- Inserisci palette, fontFamilies, fontSizes, spacingSizes e layout.
- Evita valori duplicati non necessari.
- Non generare template.
- Non usare commenti nel JSON.

Output:
Solo JSON valido.</code></pre>


<h2 class="wp-block-heading">Step 6: creare template e parti riutilizzabili</h2>


<p class="wp-block-paragraph">I template HTML di un block theme sono markup Gutenberg. L'obiettivo non è replicare pixel per pixel l'output di Stitch, ma ricostruire le sezioni usando blocchi core, classi coerenti e pattern.</p>


<p class="wp-block-paragraph">Esempio di <code>parts/header.html</code>:</p>


<pre class="wp-block-code"><code>&lt;!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"16px","bottom":"16px"}}},"layout":{"type":"constrained"}} --&gt;
&lt;div class="wp-block-group alignfull" style="padding-top:16px;padding-bottom:16px"&gt;
  &lt;!-- wp:group {"layout":{"type":"flex","justifyContent":"space-between","flexWrap":"wrap"}} --&gt;
  &lt;div class="wp-block-group"&gt;
    &lt;!-- wp:site-title {"level":0} /--&gt;
    &lt;!-- wp:navigation {"layout":{"type":"flex","justifyContent":"right"}} /--&gt;
    &lt;!-- wp:buttons --&gt;
    &lt;div class="wp-block-buttons"&gt;
      &lt;!-- wp:button --&gt;
      &lt;div class="wp-block-button"&gt;&lt;a class="wp-block-button__link wp-element-button"&gt;Prenota una consulenza&lt;/a&gt;&lt;/div&gt;
      &lt;!-- /wp:button --&gt;
    &lt;/div&gt;
    &lt;!-- /wp:buttons --&gt;
  &lt;/div&gt;
  &lt;!-- /wp:group --&gt;
&lt;/div&gt;
&lt;!-- /wp:group --&gt;</code></pre>


<p class="wp-block-paragraph">Prompt per generare template senza perdere controllo:</p>


<pre class="wp-block-code"><code>Agisci come Gutenberg block theme developer.

Task:
Crea i template HTML per:
- front-page.html
- single.html
- archive.html
- 404.html
- parts/header.html
- parts/footer.html

Vincoli:
- Usa solo markup di blocchi core WordPress.
- Non creare un H1 nel contenuto se il template già usa post-title.
- Usa template parts per header e footer.
- Le sezioni complesse devono richiamare pattern, non duplicare markup.
- Non usare CSS inline salvo padding/spaziature supportate dai blocchi.

Output:
Un file alla volta, con percorso e contenuto completo.</code></pre>


<h2 class="wp-block-heading">Step 7: convertire le sezioni in pattern Gutenberg</h2>


<p class="wp-block-paragraph">I pattern sono il punto in cui un tema diventa davvero usabile. Un cliente o editor può inserire una hero, una CTA o una FAQ senza chiedere modifiche al codice. Un pattern PHP minimo contiene intestazione e markup blocchi.</p>


<pre class="wp-block-code"><code>&lt;?php
/**
 * Title: Hero consulenza
 * Slug: studio-atlas/hero-consulenza
 * Categories: featured
 */
?&gt;

&lt;!-- wp:group {"align":"full","style":{"spacing":{"padding":{"top":"96px","bottom":"80px"}}},"backgroundColor":"background","layout":{"type":"constrained"}} --&gt;
&lt;div class="wp-block-group alignfull has-background-background-color has-background" style="padding-top:96px;padding-bottom:80px"&gt;
  &lt;!-- wp:heading {"level":1,"fontSize":"hero"} --&gt;
  &lt;h1 class="wp-block-heading has-hero-font-size"&gt;Un sito WordPress più chiaro, veloce e facile da gestire&lt;/h1&gt;
  &lt;!-- /wp:heading --&gt;

  &lt;!-- wp:paragraph {"fontSize":"base"} --&gt;
  &lt;p class="has-base-font-size"&gt;Progettiamo temi WordPress su misura con design system, Gutenberg e workflow AI controllati.&lt;/p&gt;
  &lt;!-- /wp:paragraph --&gt;

  &lt;!-- wp:buttons --&gt;
  &lt;div class="wp-block-buttons"&gt;
    &lt;!-- wp:button --&gt;
    &lt;div class="wp-block-button"&gt;&lt;a class="wp-block-button__link wp-element-button"&gt;Richiedi una consulenza&lt;/a&gt;&lt;/div&gt;
    &lt;!-- /wp:button --&gt;
  &lt;/div&gt;
  &lt;!-- /wp:buttons --&gt;
&lt;/div&gt;
&lt;!-- /wp:group --&gt;</code></pre>


<p class="wp-block-paragraph">Per pattern più complessi, come pricing o FAQ, chiedi prima all'agente una lista di campi modificabili. Poi genera il markup. Questo riduce il rischio di sezioni belle ma scomode da gestire.</p>


<h2 class="wp-block-heading">Step 8: aggiungere funzioni WordPress minime</h2>


<p class="wp-block-paragraph">Un block theme pulito deve avere un <code>functions.php</code> essenziale. Evita di trasformarlo in un plugin mascherato: registra asset, supporti e piccole ottimizzazioni legate al tema. Per logiche avanzate, meglio creare un plugin dedicato. Puoi approfondire la logica degli hook nella guida su <a href="https://www.mrtux.it/hook-wordpress-azioni-e-filter-per-plugin-professionali" data-wpel-link="internal" target="_self" rel="noopener">azioni e filter WordPress</a>.</p>


<pre class="wp-block-code"><code>&lt;?php
/**
 * Studio Atlas theme setup.
 */

add_action('after_setup_theme', function () {
    add_theme_support('wp-block-styles');
    add_theme_support('editor-styles');
    add_editor_style('assets/css/editor.css');
});

add_action('wp_enqueue_scripts', function () {
    wp_enqueue_style(
        'studio-atlas-style',
        get_stylesheet_uri(),
        array(),
        wp_get_theme()-&gt;get('Version')
    );
});

add_filter('should_load_separate_core_block_assets', '__return_true');</code></pre>


<p class="wp-block-paragraph">Se servono interazioni più evolute, valuta la <a href="https://developer.wordpress.org/block-editor/reference-guides/interactivity-api/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Interactivity API</a>, disponibile in WordPress Core dalla versione 6.5 tramite il pacchetto <code>@wordpress/interactivity</code>. Non usarla per tutto: è utile quando l'interazione appartiene a blocchi e componenti, non per animazioni decorative superflue.</p>


<h2 class="wp-block-heading">Prompt ottimizzati per implementare il tema passo passo</h2>


<p class="wp-block-paragraph">La regola operativa è: un prompt, un risultato verificabile. Non chiedere all'agente di "fare tutto il tema" in una volta sola. Spezza il lavoro.</p>


<h3 class="wp-block-heading">Prompt 1: revisione architetturale</h3>


<pre class="wp-block-code"><code>Agisci come reviewer senior WordPress.

Analizza SPEC.md e DESIGN.md.
Non scrivere codice.

Dimmi:
1. Quali requisiti sono incompleti.
2. Quali rischi tecnici vedi.
3. Quali template e pattern sono davvero necessari.
4. Quali decisioni devono finire in theme.json.
5. Quali controlli fare prima del rilascio.</code></pre>


<h3 class="wp-block-heading">Prompt 2: implementazione controllata</h3>


<pre class="wp-block-code"><code>Agisci come implementatore WordPress.

Task:
Implementa solo theme.json e style.css.

Input:
- SPEC.md
- DESIGN.md

Vincoli:
- Non modificare template.
- Non creare pattern.
- Non aggiungere dipendenze.
- Mantieni JSON valido.
- Usa token coerenti con DESIGN.md.

Dopo l'implementazione:
1. Spiega le scelte.
2. Elenca cosa resta da fare.
3. Suggerisci un comando di verifica.</code></pre>


<h3 class="wp-block-heading">Prompt 3: generazione pattern</h3>


<pre class="wp-block-code"><code>Agisci come Gutenberg pattern designer.

Task:
Crea il pattern "servizi-grid.php".

Requisiti:
- 3 card servizio.
- Ogni card ha titolo, testo breve e link.
- Usa colori e font di theme.json.
- Markup compatibile con blocchi core.
- Nessun CSS custom nel pattern.

Output:
Solo contenuto completo del file PHP.</code></pre>


<h3 class="wp-block-heading">Prompt 4: QA finale</h3>


<pre class="wp-block-code"><code>Agisci come QA engineer WordPress.

Analizza il tema appena creato.

Controlla:
- Struttura file.
- Validità theme.json.
- Presenza template principali.
- Presenza header e footer.
- Pattern registrati.
- Possibili H1 duplicati.
- Accessibilità base.
- Responsive risk.
- SEO tecnica.

Output:
Tabella con problema, severità, file coinvolto e correzione consigliata.</code></pre>


<h2 class="wp-block-heading">Verifiche tecniche prima della pubblicazione</h2>


<p class="wp-block-paragraph">Quando il tema è pronto, installalo prima in locale o staging. Se hai WP-CLI disponibile, puoi automatizzare alcune verifiche.</p>


<pre class="wp-block-code"><code># verifica temi installati
wp theme list</code></pre>


<p class="wp-block-paragraph">Attiva il tema solo in ambiente di test.</p>


<pre class="wp-block-code"><code># attivazione in staging
wp theme activate studio-atlas</code></pre>


<p class="wp-block-paragraph">Controlla che WordPress non segnali errori PHP dopo l'attivazione.</p>


<pre class="wp-block-code"><code># controllo errori recenti
wp eval 'echo "Tema attivo: " . wp_get_theme()-&gt;get("Name");'</code></pre>


<p class="wp-block-paragraph">La checklist finale deve includere:</p>


<ul class="wp-block-list">
<li>Homepage leggibile su mobile senza overflow orizzontale.</li>
<li>Menu e CTA accessibili da tastiera.</li>
<li>Un solo H1 per pagina.</li>
<li>Contrasto sufficiente per testo, link e pulsanti.</li>
<li>Template per singolo articolo, pagina, archivio e 404.</li>
<li>Pattern modificabili nel Site Editor.</li>
<li>Nessun contenuto essenziale hard-coded se deve essere gestito dal cliente.</li>
<li>Font caricati in modo efficiente.</li>
<li>Performance controllata con PageSpeed Insights.</li>
</ul>


<h2 class="wp-block-heading">Errori comuni da evitare</h2>


<p class="wp-block-paragraph">Il primo errore è usare Stitch come se producesse direttamente un tema WordPress finito. Può aiutare molto nella direzione UI, ma il tema deve rispettare gerarchie WordPress, Gutenberg, template parts e manutenzione futura.</p>


<p class="wp-block-paragraph">Il secondo errore è mettere tutto in CSS. Se palette, font e spacing finiscono solo in <code>style.css</code>, l'editor non riflette davvero il design system. Il cliente vedrà opzioni incoerenti e tenderà a rompere il layout.</p>


<p class="wp-block-paragraph">Il terzo errore è chiedere all'AI output troppo ampi. Prompt enormi come "crea tutto il tema" generano codice plausibile ma difficile da verificare. Meglio far lavorare l'agente su una porzione alla volta, con file e confini chiari.</p>


<p class="wp-block-paragraph">Il quarto errore è non documentare le decisioni. Se il tema evolve, aggiorna <code>SPEC.md</code> e <code>DESIGN.md</code>. Altrimenti l'agente continuerà a lavorare su istruzioni vecchie e produrrà incoerenze.</p>


<h2 class="wp-block-heading">Risorse utili</h2>


<ul class="wp-block-list">
<li><a href="https://stitch.withgoogle.com/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Google Stitch</a>: canvas AI per esplorare interfacce e prototipi.</li>
<li><a href="https://blog.google/innovation-and-ai/models-and-research/google-labs/stitch-ai-ui-design/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Blog Google su Stitch e vibe design</a>: panoramica ufficiale dell'evoluzione di Stitch.</li>
<li><a href="https://github.com/google-labs-code/design.md" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Google Labs DESIGN.md</a>: specifica, CLI, lint, diff ed export token.</li>
<li><a href="https://developer.wordpress.org/themes/global-settings-and-styles/introduction-to-theme-json/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Documentazione WordPress su theme.json</a>: base tecnica per stili globali e impostazioni.</li>
<li><a href="https://wordpress.org/documentation/article/block-themes/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Documentazione WordPress sui block theme</a>: introduzione al modello Site Editor.</li>
<li><a href="https://developer.wordpress.org/block-editor/reference-guides/interactivity-api/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Interactivity API</a>: standard WordPress per blocchi interattivi moderni.</li>
</ul>


<h2 class="wp-block-heading">FAQ</h2>


<h3 class="wp-block-heading">Posso creare un tema WordPress completo solo con Stitch?</h3>


<p class="wp-block-paragraph">No, non in modo professionale. Stitch è utile per ideazione, layout e direzione visiva. Un tema WordPress completo richiede struttura del tema, <code>theme.json</code>, template, pattern, compatibilità Gutenberg, test e controlli tecnici.</p>


<h3 class="wp-block-heading">DESIGN.md sostituisce theme.json?</h3>


<p class="wp-block-paragraph">No. <code>DESIGN.md</code> documenta il design system in forma leggibile dagli agenti AI. <code>theme.json</code> applica quelle decisioni dentro WordPress, rendendole disponibili al frontend e all'editor.</p>


<h3 class="wp-block-heading">Meglio un tema classico o un block theme?</h3>


<p class="wp-block-paragraph">Per un nuovo progetto orientato a Gutenberg e Site Editor, un block theme è spesso la scelta più coerente. Un tema classico resta valido quando il progetto ha vincoli legacy, template PHP complessi o dipendenze già consolidate.</p>


<h3 class="wp-block-heading">Gli agenti AI possono implementare direttamente il tema?</h3>


<p class="wp-block-paragraph">Sì, ma solo se ricevono specifiche, confini e criteri di verifica. Il punto del documento allegato è proprio questo: l'AI produce risultati migliori quando il lavoro di progettazione è esplicito, scritto e verificabile.</p>


<h2 class="wp-block-heading">Conclusione</h2>


<p class="wp-block-paragraph">Creare un tema WordPress completo con AI non significa delegare il pensiero al modello. Significa spostare il valore sulla progettazione: descrivere bene il sistema, definire vincoli, produrre un design system e far implementare porzioni controllate. Google Stitch aiuta a esplorare l'interfaccia, <code>DESIGN.md</code> conserva la coerenza visiva, <code>theme.json</code> porta quella coerenza dentro WordPress.</p>


<p class="wp-block-paragraph">La domanda utile, prima di generare codice, è questa: se un altro sviluppatore o un agente AI dovesse costruire il tema senza parlarti, avrebbe abbastanza informazioni per farlo correttamente? Se la risposta è no, non manca un prompt migliore. Manca una specifica migliore.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/progettare-tema-wordpress-design-md-google-stitch-prompt-ai/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AI e Web Marketing: strumenti, dati e automazioni per crescere online</title>
		<link>https://www.mrtux.it/ai-e-web-marketing-strumenti-dati-e-automazioni-per-crescere-online</link>
					<comments>https://www.mrtux.it/ai-e-web-marketing-strumenti-dati-e-automazioni-per-crescere-online#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Wed, 13 May 2026 14:40:14 +0000</pubDate>
				<category><![CDATA[Intelligenza artificiale]]></category>
		<category><![CDATA[AI e web marketing]]></category>
		<category><![CDATA[automazione marketing]]></category>
		<category><![CDATA[digital marketing]]></category>
		<category><![CDATA[intelligenza artificiale marketing]]></category>
		<category><![CDATA[SEO AI]]></category>
		<category><![CDATA[strategie di web marketing]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3356</guid>

					<description><![CDATA[Guida pratica per usare AI, dati, strumenti e automazioni nelle strategie di web marketing, dalla SEO alle campagne fino alla conversione.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">L'intelligenza artificiale sta cambiando il modo in cui aziende, professionisti e creator impostano le strategie di web marketing. Il punto non è produrre contenuti in massa, ma usare strumenti AI, dati e automazioni per capire meglio il pubblico, scegliere i canali giusti e migliorare ogni fase del percorso che porta alla conversione. Questo approccio è collegato al lavoro su <a href="https://www.mrtux.it/ai-per-migliorare-seo-ux-e-design-su-wordpress" data-wpel-link="internal" target="_self" rel="noopener">AI, SEO, UX e design su WordPress</a>, perché contenuti, esperienza utente e conversioni non possono più essere trattati come attività separate.</p>



<p class="wp-block-paragraph">Una strategia efficace parte sempre da obiettivi chiari: aumentare traffico qualificato, generare lead, vendere prodotti, migliorare la fidelizzazione o ridurre il costo di acquisizione. L'AI diventa utile quando aiuta a trasformare questi obiettivi in azioni misurabili, non quando viene usata come scorciatoia per pubblicare contenuti generici. Chi lavora già con <a href="https://www.mrtux.it/articoli-wordpress-ottimizzati-seo-con-ai-metodo-pratico-passo-passo" data-wpel-link="internal" target="_self" rel="noopener">articoli WordPress ottimizzati SEO con AI</a> può usare lo stesso metodo anche per campagne, funnel e automazioni.</p>



<h2 class="wp-block-heading">Perché usare l'AI nel web marketing</h2>



<p class="wp-block-paragraph">L'AI applicata al web marketing lavora su tre aree principali: analisi, produzione e ottimizzazione. Nella fase di analisi aiuta a leggere dati provenienti da analytics, CRM, campagne pubblicitarie, email marketing e comportamento degli utenti. Nella produzione velocizza contenuti, headline, newsletter, script video, landing page e varianti di annunci. Nell'ottimizzazione aiuta a capire cosa migliorare: keyword, CTA, segmenti di pubblico, messaggi, offerte e funnel. In ottica SEO, questo deve restare coerente con le linee guida di Google sui <a href="https://developers.google.com/search/docs/fundamentals/creating-helpful-content" target="_blank" rel="noopener nofollow external" data-wpel-link="external">contenuti utili e pensati per le persone</a>.</p>



<ul class="wp-block-list"><li><strong>Analisi dei dati:</strong> individua pattern, anomalie, pagine deboli e opportunità di crescita.</li><li><strong>Creazione contenuti:</strong> supporta outline, articoli, email, post social, script e FAQ.</li><li><strong>Automazione marketing:</strong> rende più coerenti follow-up, nurturing, segmentazione e recupero utenti.</li><li><strong>Ottimizzazione conversioni:</strong> aiuta a testare CTA, microcopy, offerte e sequenze di funnel.</li></ul>



<h2 class="wp-block-heading">Il metodo corretto: prima i dati, poi gli strumenti</h2>



<p class="wp-block-paragraph">Il primo errore è partire dallo strumento invece che dal problema. Prima di scegliere un'app AI, conviene raccogliere dati già disponibili: pagine più visitate, query SEO, campagne con miglior rendimento, email con più click, form più compilati e contenuti che generano contatti. Queste informazioni mostrano dove intervenire. Per misurare le azioni davvero importanti, Google Analytics 4 usa gli <a href="https://support.google.com/analytics/answer/9267568?hl=it" target="_blank" rel="noopener nofollow external" data-wpel-link="external">eventi chiave</a>, quindi conversioni, invii form, click strategici e acquisti vanno configurati prima di valutare l'impatto dell'AI.</p>



<p class="wp-block-paragraph">Da qui puoi usare l'AI per creare una diagnosi operativa. Per esempio, puoi esportare le pagine con molte visite ma poche conversioni e chiedere quali frizioni potrebbero bloccare l'utente. Oppure puoi analizzare le query di Search Console per capire quali contenuti aggiornare, quali keyword presidiare e quali intenzioni di ricerca coprire con nuove pagine.</p>



<h2 class="wp-block-heading">Strategia SEO con AI: contenuti più utili e meglio organizzati</h2>



<p class="wp-block-paragraph">Nella SEO l'intelligenza artificiale è utile per ricerca keyword, cluster tematici, outline, meta title, meta description, FAQ e aggiornamento dei contenuti esistenti. Ma la qualità resta decisiva. Un articolo scritto solo per riempire keyword non crea fiducia e non porta risultati stabili. Per questo è utile collegare il lavoro editoriale anche a contenuti già pubblicati sul sito, come la guida su <a href="https://www.mrtux.it/come-usare-lai-per-aumentare-le-conversioni-su-wordpress" data-wpel-link="internal" target="_self" rel="noopener">come usare l'AI per aumentare le conversioni su WordPress</a>.</p>



<p class="wp-block-paragraph">Il modo migliore per usare l'AI nella SEO è partire dall'intento di ricerca. Un utente informativo cerca spiegazioni chiare. Un utente comparativo vuole criteri, pro e contro, esempi e alternative. Un utente vicino alla conversione cerca prove, garanzie, prezzi, tempi e passaggi successivi.</p>



<ol class="wp-block-list"><li>Definisci la keyword principale e le keyword secondarie.</li><li>Identifica l'intento di ricerca reale.</li><li>Crea una struttura con H2 e H3 progressivi.</li><li>Inserisci esempi pratici, casi d'uso e link utili.</li><li>Ottimizza title, description, slug e link interni.</li><li>Rivedi sempre il testo prima della pubblicazione.</li></ol>



<h2 class="wp-block-heading">Automazioni marketing: cosa automatizzare davvero</h2>



<p class="wp-block-paragraph">Le automazioni funzionano quando sono collegate al comportamento dell'utente. Un contatto che scarica una guida introduttiva non dovrebbe ricevere lo stesso messaggio di chi visita più volte una pagina servizio. Un cliente che ha già acquistato ha esigenze diverse da un nuovo lead appena entrato nel funnel. In questo senso, l'automazione marketing va progettata come parte del customer journey, non come semplice invio programmato di email.</p>



<p class="wp-block-paragraph">L'AI può aiutare a creare sequenze più pertinenti, ma ogni automazione deve avere uno scopo preciso. Non basta inviare più email: bisogna inviare il messaggio giusto, al segmento giusto, nel momento giusto. Anche piattaforme come <a href="https://mailchimp.com/marketing-glossary/marketing-automation/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Mailchimp descrivono la marketing automation</a> come un sistema basato su trigger, segmenti e comportamenti, non come una sequenza uguale per tutti.</p>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-group" style="border-width:1px;padding-top:18px;padding-right:18px;padding-bottom:18px;padding-left:18px"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<h3 class="wp-block-heading">Lead freddi</h3>


<p class="wp-block-paragraph"><strong>Obiettivo:</strong> educare e creare fiducia.</p>


<p class="wp-block-paragraph"><strong>AI utile per:</strong> guide, newsletter introduttive, FAQ e contenuti di nurturing.</p>
</div></div>
</div>



<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-group" style="border-width:1px;padding-top:18px;padding-right:18px;padding-bottom:18px;padding-left:18px"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<h3 class="wp-block-heading">Lead caldi</h3>


<p class="wp-block-paragraph"><strong>Obiettivo:</strong> ridurre dubbi e spingere all'azione.</p>


<p class="wp-block-paragraph"><strong>AI utile per:</strong> CTA, offerte, follow-up, case study e risposte alle obiezioni.</p>
</div></div>
</div>
</div>



<h2 class="wp-block-heading">Advertising e social media: testare meglio, non solo di più</h2>



<p class="wp-block-paragraph">Per advertising e social media l'AI è molto utile nella generazione di varianti creative. Può proporre headline, angoli comunicativi, descrizioni, script brevi, post social e sequenze per campagne. Il rischio è però generare troppe varianti senza una logica. Le piattaforme pubblicitarie, come la documentazione di <a href="https://support.google.com/google-ads/answer/6167122?hl=it" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Google Ads sulle risorse degli annunci</a>, confermano l'importanza di testare messaggi e asset coerenti con intento, landing page e obiettivo della campagna.</p>



<p class="wp-block-paragraph">Ogni variante dovrebbe testare un'ipotesi precisa: risparmio di tempo, vantaggio economico, riduzione del rischio, prova sociale, semplicità, urgenza o autorevolezza. Solo così i test diventano leggibili e migliorano davvero le campagne.</p>



<ul class="wp-block-list"><li><strong>Per Meta Ads:</strong> usa l'AI per creare angoli creativi diversi e copy brevi.</li><li><strong>Per Google Ads:</strong> lavora su intento, promessa e coerenza con la landing page.</li><li><strong>Per LinkedIn:</strong> punta su autorevolezza, casi pratici e problemi B2B specifici.</li><li><strong>Per newsletter:</strong> segmenta in base a interessi, click e livello di consapevolezza.</li></ul>



<h2 class="wp-block-heading">Workflow pratico per impostare una strategia AI</h2>



<p class="wp-block-paragraph">Una strategia di web marketing con l'AI può essere costruita con un processo semplice e ripetibile. L'obiettivo è evitare attività scollegate e creare un sistema in cui contenuti, dati, automazioni e conversioni lavorano insieme.</p>



<ol class="wp-block-list"><li><strong>Definisci l'obiettivo:</strong> traffico, lead, vendite, retention o riduzione dei costi.</li><li><strong>Raccogli i dati:</strong> analytics, Search Console, CRM, email, ads e comportamento utenti.</li><li><strong>Segmenta il pubblico:</strong> utenti freddi, tiepidi, caldi e clienti esistenti.</li><li><strong>Mappa il funnel:</strong> contenuti informativi, pagine di confronto, landing e follow-up.</li><li><strong>Usa l'AI per creare ipotesi:</strong> nuovi contenuti, CTA, email, ads e automazioni.</li><li><strong>Pubblica e misura:</strong> controlla traffico, click, lead, vendite e conversion rate.</li><li><strong>Ottimizza:</strong> aggiorna ciò che funziona e rimuovi ciò che non porta risultati.</li></ol>



<h2 class="wp-block-heading">Errori da evitare</h2>



<p class="wp-block-paragraph">L'AI può accelerare il marketing, ma può anche amplificare errori già presenti. Se il posizionamento è confuso, l'AI produrrà messaggi confusi. Se non ci sono dati affidabili, le analisi saranno deboli. Se non esiste una metrica, diventa impossibile capire cosa funziona.</p>



<ul class="wp-block-list"><li><strong>Pubblicare contenuti senza revisione:</strong> il testo deve essere controllato, arricchito e adattato al brand.</li><li><strong>Automatizzare senza segmentazione:</strong> messaggi uguali per tutti riducono pertinenza e fiducia.</li><li><strong>Misurare solo il traffico:</strong> contano anche lead, vendite, qualità dei contatti e conversioni.</li><li><strong>Usare troppi strumenti:</strong> uno stack semplice e ben integrato vale più di dieci tool scollegati.</li><li><strong>Confondere output e strategia:</strong> produrre di più non significa comunicare meglio.</li></ul>



<h2 class="wp-block-heading">FAQ su AI e web marketing</h2>



<h3 class="wp-block-heading">L'AI può migliorare davvero il web marketing?</h3>



<p class="wp-block-paragraph">Sì, se viene usata dentro un processo misurabile. Aiuta ad analizzare dati, creare contenuti, segmentare il pubblico, automatizzare campagne e migliorare conversioni. Non sostituisce però strategia, esperienza e revisione umana.</p>



<h3 class="wp-block-heading">Da dove conviene iniziare?</h3>



<p class="wp-block-paragraph">Conviene iniziare dai dati già disponibili: analytics, Search Console, CRM, piattaforme email e campagne advertising. Dopo questa analisi, l'AI può aiutare a definire priorità, contenuti e automazioni.</p>



<h3 class="wp-block-heading">L'AI è utile per la SEO?</h3>



<p class="wp-block-paragraph">Sì, soprattutto per ricerca keyword, outline, meta tag, FAQ, cluster tematici e aggiornamento dei contenuti. Il contenuto finale deve però essere utile, verificato e coerente con l'intento di ricerca.</p>



<h3 class="wp-block-heading">Quali attività si possono automatizzare?</h3>



<p class="wp-block-paragraph">Si possono automatizzare email di benvenuto, follow-up, recupero carrelli, nurturing dei lead, report periodici e alcune attività di content repurposing. Ogni automazione deve avere una metrica chiara.</p>



<h2 class="wp-block-heading">Conclusione</h2>



<p class="wp-block-paragraph">Impostare strategie di web marketing con l'AI significa costruire un sistema più ordinato, misurabile e adattabile. L'intelligenza artificiale aiuta a leggere i dati, produrre contenuti più mirati, automatizzare passaggi ripetitivi e testare ipotesi con maggiore velocità.</p>



<p class="wp-block-paragraph">Il risultato migliore arriva quando l'AI non sostituisce la strategia, ma la rende più precisa. Obiettivi chiari, dati affidabili, contenuti utili, automazioni intelligenti e misurazione costante sono la base per crescere online senza trasformare il marketing in rumore.</p>

]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/ai-e-web-marketing-strumenti-dati-e-automazioni-per-crescere-online/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>DESIGN.md di Google: guida al file per agenti AI e design system</title>
		<link>https://www.mrtux.it/design-md-google-agenti-ai-design-system</link>
					<comments>https://www.mrtux.it/design-md-google-agenti-ai-design-system#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Sun, 10 May 2026 16:52:46 +0000</pubDate>
				<category><![CDATA[Intelligenza artificiale]]></category>
		<category><![CDATA[agenti-ai]]></category>
		<category><![CDATA[design system]]></category>
		<category><![CDATA[design tokens]]></category>
		<category><![CDATA[DESIGN.md]]></category>
		<category><![CDATA[frontend]]></category>
		<category><![CDATA[Google]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/design-md-google-agenti-ai-design-system</guid>

					<description><![CDATA[Guida tecnica in italiano a DESIGN.md di Google: design token, YAML front matter, lint, export e uso con agenti AI.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Negli ultimi mesi il rapporto tra design system e intelligenza artificiale è cambiato rapidamente. Non basta più avere componenti in Figma, token in un file JSON o linee guida sparse in un documento interno: se un team usa agenti AI per generare interfacce, refactoring frontend o prototipi, anche quegli agenti devono capire il linguaggio visivo del prodotto.</p>



<p class="wp-block-paragraph">È qui che entra in gioco DESIGN.md, il nuovo formato open source pubblicato da Google Labs Code per descrivere una visual identity in modo leggibile sia dagli esseri umani sia dagli agenti di coding. L’idea è semplice ma molto potente: creare un file testuale, versionabile e validabile che contenga design token, razionale visivo, regole sui componenti e indicazioni pratiche su cosa fare e cosa evitare.</p>



<p class="wp-block-paragraph">In altre parole, DESIGN.md prova a diventare per il design quello che altri file di configurazione sono già diventati per sviluppo, linting, formattazione e automazione: una fonte di verità chiara, portabile e adatta ai workflow moderni con AI.</p>



<h2 class="wp-block-heading">Cos’è DESIGN.md e perché è importante</h2>



<p class="wp-block-paragraph">DESIGN.md è un formato pensato per descrivere l’identità visiva di un prodotto agli agenti di codice. La definizione ufficiale del repository <a href="https://github.com/google-labs-code/design.md" target="_blank" rel="noopener nofollow external" data-wpel-link="external">google-labs-code/design.md</a> parla di una specifica per dare agli agenti una comprensione persistente e strutturata di un design system.</p>



<p class="wp-block-paragraph">Il punto chiave è la parola persistente. Un agente AI può ricevere istruzioni nel prompt, ma quelle istruzioni spesso sono temporanee, incomplete o ambigue. Un file DESIGN.md, invece, può stare nel repository accanto al codice, essere revisionato in pull request, validato con una CLI e riutilizzato da strumenti diversi.</p>



<p class="wp-block-paragraph">Il formato unisce due livelli:</p>



<ul class="wp-block-list"><li>una parte machine-readable in YAML front matter, dove vengono definiti token come colori, tipografia, spacing, radius e componenti;</li><li>una parte human-readable in Markdown, dove si spiega il perché delle scelte e come applicarle in situazioni reali.</li></ul>



<p class="wp-block-paragraph">Questa combinazione è interessante perché i soli token non bastano. Sapere che il colore primario è <code>#1A1C1E</code> dice poco sul tono dell’interfaccia. Sapere anche che quel colore rappresenta “deep ink”, autorevolezza e leggibilità editoriale aiuta l’agente a usarlo con più coerenza.</p>



<h2 class="wp-block-heading">Il problema che DESIGN.md prova a risolvere</h2>



<p class="wp-block-paragraph">Molti team hanno già un design system, ma spesso è distribuito in troppi luoghi: Figma, Storybook, documentazione interna, file CSS, Tailwind config, component library, issue di progetto e memoria informale del team. Quando entra in scena un agente AI, questa frammentazione diventa un problema tecnico.</p>



<p class="wp-block-paragraph">Un agente può generare una pagina funzionante, ma senza un contesto stabile rischia di:</p>



<ul class="wp-block-list"><li>inventare colori non presenti nel brand;</li><li>usare font o pesi tipografici incoerenti;</li><li>creare bottoni con radius e padding casuali;</li><li>mescolare stili editoriali, SaaS, dashboard e landing page;</li><li>ignorare contrasto e accessibilità;</li><li>produrre componenti apparentemente belli ma scollegati dal sistema reale.</li></ul>



<p class="wp-block-paragraph">DESIGN.md riduce questo rischio perché trasforma le linee guida di design in un contratto leggibile dal codice e dagli agenti. Non sostituisce Figma o una libreria componenti, ma aggiunge un livello di istruzioni condivise che può viaggiare con il repository.</p>



<h2 class="wp-block-heading">Come è fatto un file DESIGN.md</h2>



<p class="wp-block-paragraph">La struttura ufficiale prevede un file Markdown con front matter YAML opzionale. Il front matter contiene i token normativi; il corpo Markdown contiene spiegazioni, razionale e linee guida.</p>



<p class="wp-block-paragraph">Ecco un esempio semplificato:</p>



<pre class="wp-block-code"><code>---
version: alpha
name: Editorial Tech
colors:
  primary: "#1A1C1E"
  secondary: "#6C7278"
  tertiary: "#B8422E"
  neutral: "#F7F5F2"
typography:
  headline-lg:
    fontFamily: Public Sans
    fontSize: 48px
    fontWeight: 600
    lineHeight: 1.1
  body-md:
    fontFamily: Public Sans
    fontSize: 16px
    fontWeight: 400
    lineHeight: 1.6
rounded:
  sm: 4px
  md: 8px
spacing:
  sm: 8px
  md: 16px
  lg: 32px
components:
  button-primary:
    backgroundColor: "{colors.tertiary}"
    textColor: "#ffffff"
    rounded: "{rounded.sm}"
    padding: 12px
---

## Overview

Interfaccia editoriale, tecnica e autorevole. Il prodotto deve comunicare
precisione, leggibilità e affidabilità, evitando decorazioni inutili.

## Colors

Il colore primario è usato per testi e titoli. Il terziario è riservato
alle azioni principali e agli stati di enfasi.</code></pre>



<p class="wp-block-paragraph">Questo esempio mostra il principio operativo: i valori precisi sono nei token, mentre il Markdown spiega come interpretarli. Un agente può quindi rispettare sia la misura esatta sia l’intenzione progettuale.</p>



<h2 class="wp-block-heading">I token supportati: colori, tipografia, spacing e componenti</h2>



<p class="wp-block-paragraph">La specifica ufficiale descrive un insieme di gruppi token pensati per coprire gli aspetti fondamentali di una UI.</p>



<p class="wp-block-paragraph">I gruppi principali sono:</p>



<ul class="wp-block-list"><li><code>colors</code>, per palette e ruoli cromatici;</li><li><code>typography</code>, per font, dimensioni, pesi, line-height e letter-spacing;</li><li><code>rounded</code>, per la scala dei bordi arrotondati;</li><li><code>spacing</code>, per distanze, margini e ritmo visivo;</li><li><code>components</code>, per collegare i token a elementi come bottoni, chip, input e stati.</li></ul>



<p class="wp-block-paragraph">Un dettaglio tecnico importante è il supporto ai riferimenti tra token con sintassi <code>{path.to.token}</code>. Per esempio, un bottone può usare <code>backgroundColor: &quot;{colors.tertiary}&quot;</code>, evitando duplicazione e riducendo il rischio di divergenze.</p>



<p class="wp-block-paragraph">Questa scelta rende DESIGN.md più simile a un piccolo linguaggio di configurazione che a una semplice pagina di documentazione. È leggibile, ma anche analizzabile da un linter.</p>



<h2 class="wp-block-heading">Le sezioni Markdown consigliate</h2>



<p class="wp-block-paragraph">Il corpo del file non è libero in modo caotico. La specifica suggerisce un ordine canonico delle sezioni, tutte basate su heading <code>##</code>:</p>



<ol class="wp-block-list"><li>Overview;</li><li>Colors;</li><li>Typography;</li><li>Layout;</li><li>Elevation &amp; Depth;</li><li>Shapes;</li><li>Components;</li><li>Do’s and Don’ts.</li></ol>



<p class="wp-block-paragraph">Questo ordine serve a dare prevedibilità agli strumenti. Un agente sa dove cercare la personalità visiva, dove trovare le regole tipografiche, dove leggere i vincoli di layout e dove individuare errori da evitare.</p>



<p class="wp-block-paragraph">La scelta è pragmatica: DESIGN.md non vuole essere un trattato di brand identity, ma un formato operativo. Deve essere abbastanza espressivo per guidare un’interfaccia reale, ma abbastanza strutturato per essere letto e validato da una CLI.</p>



<h2 class="wp-block-heading">Esempio pratico: usare DESIGN.md in un progetto frontend</h2>



<p class="wp-block-paragraph">Immagina un team che sta costruendo una dashboard SaaS. Nel repository sono presenti componenti React, Tailwind, test e documentazione. Senza DESIGN.md, un agente AI chiamato a creare una nuova pagina “Billing” potrebbe copiare pattern visti in altre parti del codice, ma potrebbe anche introdurre nuove sfumature, radius non standard o gerarchie tipografiche incoerenti.</p>



<p class="wp-block-paragraph">Con DESIGN.md, il workflow diventa più controllabile:</p>



<ol class="wp-block-list"><li>il team definisce colori, tipografia, spacing e componenti principali;</li><li>il file viene salvato nel repository;</li><li>l’agente legge DESIGN.md prima di generare UI;</li><li>la CLI valida token, riferimenti e contrasto;</li><li>eventuali modifiche al design system vengono confrontate con <code>diff</code>.</li></ol>



<p class="wp-block-paragraph">Il risultato non è una garanzia assoluta di qualità, ma riduce drasticamente l’improvvisazione. In un contesto con più agenti o più sviluppatori, questo è un vantaggio concreto.</p>



<h2 class="wp-block-heading">Comandi CLI: lint, diff, export e spec</h2>



<p class="wp-block-paragraph">Google distribuisce anche una CLI installabile come pacchetto npm <code>@google/design.md</code>. Dal README ufficiale emerge un set di comandi pensato per validare, confrontare ed esportare il formato.</p>



<p class="wp-block-paragraph">Il comando più immediato è il lint:</p>



<pre class="wp-block-code"><code># comando lint
npx @google/design.md lint DESIGN.md</code></pre>



<p class="wp-block-paragraph">Il linter restituisce JSON strutturato con finding, severità, percorso e messaggio. Questo è utile perché un agente può leggere l’output e correggere il file in modo mirato.</p>



<p class="wp-block-paragraph">Per confrontare due versioni:</p>



<pre class="wp-block-code"><code># confronto due versioni
npx @google/design.md diff DESIGN.md DESIGN-v2.md</code></pre>



<p class="wp-block-paragraph">Questo aiuta a capire se sono stati aggiunti, rimossi o modificati token. In una pull request, può diventare un controllo utile per evitare regressioni nel design system.</p>



<p class="wp-block-paragraph">Per esportare i token:</p>



<pre class="wp-block-code"><code>npx @google/design.md export --format json-tailwind DESIGN.md &gt; tailwind.theme.json
npx @google/design.md export --format css-tailwind DESIGN.md &gt; theme.css
npx @google/design.md export --format dtcg DESIGN.md &gt; tokens.json</code></pre>



<p class="wp-block-paragraph">Gli export sono importanti perché collegano DESIGN.md agli strumenti già usati dai team: Tailwind, CSS custom properties e formati compatibili con il mondo dei design token.</p>



<p class="wp-block-paragraph">Un riferimento pratico da aggiungere al workflow è <a href="https://stitch.withgoogle.com/projects/13119987580626685469" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Stitch di Google</a>, che consente di lavorare su interfacce e prototipi con un percorso orientato anche all’esportazione nel formato DESIGN.md. Questo rende il file ancora più interessante: non è solo una specifica da scrivere manualmente, ma può diventare un formato di passaggio tra progettazione visuale, generazione assistita e codice.</p>



<h2 class="wp-block-heading">Le regole di linting più utili</h2>



<p class="wp-block-paragraph">La documentazione cita diverse regole di linting, tra cui riferimenti rotti, contrasto, assenza di colore primario, token orfani, sezioni mancanti, tipografia mancante e ordine delle sezioni.</p>



<div class="wp-block-group mrtux-designmd-rules"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">

<h3 class="wp-block-heading">Confronto rapido delle verifiche più utili</h3>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-group has-border-color" style="border-color:#d9e2ec;border-width:1px;border-radius:8px;padding-top:18px;padding-right:18px;padding-bottom:18px;padding-left:18px"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<h4 class="wp-block-heading">Riferimenti rotti</h4>
<p class="wp-block-paragraph"><strong>Cosa controlla:</strong> token come <code>{colors.primary}</code> che puntano a valori inesistenti.</p><p class="wp-block-paragraph"><strong>Perché conta:</strong> evita che un agente inventi fallback visivi non previsti.</p></div></div>
</div>

<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-group has-border-color" style="border-color:#d9e2ec;border-width:1px;border-radius:8px;padding-top:18px;padding-right:18px;padding-bottom:18px;padding-left:18px"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<h4 class="wp-block-heading">Contrasto WCAG</h4>
<p class="wp-block-paragraph"><strong>Cosa controlla:</strong> coppie testo/sfondo sotto il rapporto minimo consigliato.</p><p class="wp-block-paragraph"><strong>Perché conta:</strong> riduce errori di accessibilità nei componenti generati.</p></div></div>
</div></div>



<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex"><div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-group has-border-color" style="border-color:#d9e2ec;border-width:1px;border-radius:8px;padding-top:18px;padding-right:18px;padding-bottom:18px;padding-left:18px"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<h4 class="wp-block-heading">Token orfani</h4>
<p class="wp-block-paragraph"><strong>Cosa controlla:</strong> colori definiti ma mai usati nei componenti.</p><p class="wp-block-paragraph"><strong>Perché conta:</strong> segnala palette confuse o debito nel design system.</p></div></div>
</div>

<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow">
<div class="wp-block-group has-border-color" style="border-color:#d9e2ec;border-width:1px;border-radius:8px;padding-top:18px;padding-right:18px;padding-bottom:18px;padding-left:18px"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<h4 class="wp-block-heading">Ordine sezioni</h4>
<p class="wp-block-paragraph"><strong>Cosa controlla:</strong> struttura del documento rispetto all’ordine canonico.</p><p class="wp-block-paragraph"><strong>Perché conta:</strong> rende il file prevedibile per strumenti e agenti diversi.</p></div></div>
</div></div>

</div></div>



<p class="wp-block-paragraph">Queste verifiche rendono DESIGN.md più serio di una semplice convenzione testuale. Un file può essere scritto male, ma la CLI permette di intercettare almeno una parte degli errori prima che arrivino nel codice generato.</p>



<h2 class="wp-block-heading">Perché DESIGN.md interessa a chi lavora con AI coding agent</h2>



<p class="wp-block-paragraph">Il valore più evidente è per chi usa agenti AI nel frontend. Strumenti di coding assistito possono già generare componenti, landing page e layout, ma spesso hanno bisogno di contesto. DESIGN.md offre quel contesto in una forma leggera.</p>



<p class="wp-block-paragraph">Un agente può leggere frasi come:</p>



<ul class="wp-block-list"><li>“usa il colore primario solo per l’azione più importante”;</li><li>“evita ombre pesanti, usa gerarchie tonali”;</li><li>“mantieni radius da 4px per un aspetto tecnico”;</li><li>“non usare più di due pesi tipografici nella stessa schermata”.</li></ul>



<p class="wp-block-paragraph">Queste indicazioni sono diverse dai token numerici. Sono regole di comportamento progettuale. Per un essere umano sono normali linee guida; per un agente diventano vincoli espliciti da seguire.</p>



<h2 class="wp-block-heading">Differenze rispetto a tokens.json, Figma variables e Tailwind config</h2>



<p class="wp-block-paragraph">DESIGN.md non nasce per sostituire tutto. Un file <code>tokens.json</code> resta più adatto allo scambio formale di token tra strumenti. Figma variables restano fondamentali nel lavoro dei designer. Tailwind config resta centrale quando si implementa una UI con utility class.</p>



<p class="wp-block-paragraph">La differenza è che DESIGN.md mette nello stesso posto token e razionale. Questo lo rende particolarmente adatto agli agenti, perché gli agenti non hanno bisogno solo di valori: hanno bisogno di contesto.</p>



<p class="wp-block-paragraph">Per esempio, un token può dire che <code>tertiary</code> vale <code>#B8422E</code>; il testo può spiegare che quel colore è “Boston Clay” e che deve essere usato solo per interazioni primarie. Questa seconda informazione può fare la differenza tra una UI coerente e una UI tecnicamente corretta ma visivamente confusa.</p>



<h2 class="wp-block-heading">Limiti attuali del formato</h2>



<p class="wp-block-paragraph">DESIGN.md è indicato come formato in stato <code>alpha</code>. Questo significa che lo schema, la CLI e le convenzioni potrebbero cambiare. È quindi intelligente adottarlo con aspettative realistiche.</p>



<p class="wp-block-paragraph">I limiti più evidenti sono:</p>



<ul class="wp-block-list"><li>la specifica è ancora giovane;</li><li>la sezione componenti è flessibile e in evoluzione;</li><li>non sostituisce test visivi, review di design o accessibilità manuale;</li><li>richiede disciplina nella manutenzione;</li><li>può diventare obsoleto se non viene aggiornato insieme al prodotto.</li></ul>



<p class="wp-block-paragraph">Detto questo, il formato è già utile per sperimentare un workflow più ordinato tra design system e AI coding.</p>



<h2 class="wp-block-heading">Come introdurre DESIGN.md in un team</h2>



<p class="wp-block-paragraph">Il modo migliore non è provare a documentare tutto subito. Conviene partire da un file piccolo ma accurato.</p>



<p class="wp-block-paragraph">Un percorso pratico può essere:</p>



<ol class="wp-block-list"><li>definire nome, descrizione e personalità del prodotto;</li><li>inserire palette primaria, secondaria, accento e neutral;</li><li>aggiungere 4-6 livelli tipografici realmente usati;</li><li>documentare spacing e radius principali;</li><li>descrivere 3 componenti critici: bottone primario, card e input;</li><li>scrivere 5 regole “do” e 5 regole “don’t”;</li><li>eseguire il lint e correggere gli errori;</li><li>usare il file in una singola feature generata con agenti AI;</li><li>confrontare output generato prima e dopo DESIGN.md.</li></ol>



<p class="wp-block-paragraph">Questo approccio evita il classico errore dei design system: puntare alla perfezione iniziale e non arrivare mai all’adozione reale.</p>



<h2 class="wp-block-heading">SEO tecnico e opportunità per sviluppatori WordPress</h2>



<p class="wp-block-paragraph">Anche se DESIGN.md nasce per agenti di codice e design system, il tema è rilevante anche per chi lavora con WordPress, temi custom e page builder avanzati. Un file di questo tipo potrebbe aiutare a mantenere coerenza visiva quando si generano componenti, blocchi Gutenberg, pattern di tema o layout con strumenti AI.</p>



<p class="wp-block-paragraph">Per esempio, un team WordPress potrebbe creare un DESIGN.md per descrivere:</p>



<ul class="wp-block-list"><li>palette del brand;</li><li>gerarchia tipografica del tema;</li><li>spaziature dei blocchi editoriali;</li><li>stile di card, bottoni e call to action;</li><li>regole per landing page e template WooCommerce;</li><li>vincoli di accessibilità e contrasto.</li></ul>



<p class="wp-block-paragraph">In futuro, agenti AI capaci di leggere DESIGN.md potrebbero generare pattern Gutenberg più coerenti, componenti React per block editor o CSS custom properties allineate alla brand identity. È un ponte naturale tra content management, frontend engineering e automazione.</p>



<p class="wp-block-paragraph">Per approfondire il tema nel contesto WordPress, sono collegati due percorsi utili: una guida su <a href="https://www.mrtux.it/ai-per-migliorare-seo-ux-e-design-su-wordpress" data-wpel-link="internal" target="_self" rel="noopener">AI per migliorare SEO, UX e design su WordPress</a> e un approfondimento sui <a href="https://www.mrtux.it/web-design-per-wordpress-tool-essenziali-per-creare-temi-efficaci-nel-2026" data-wpel-link="internal" target="_self" rel="noopener">tool essenziali per il web design WordPress</a>. Entrambi aiutano a collegare DESIGN.md a casi d’uso concreti: coerenza visiva, automazione dei layout, qualità UX e produzione di interfacce più controllabili.</p>



<h2 class="wp-block-heading">FAQ</h2>



<h3 class="wp-block-heading">DESIGN.md è un file di configurazione ufficiale di Google?</h3>



<p class="wp-block-paragraph">È un progetto open source pubblicato nel repository Google Labs Code. La specifica è in fase alpha e propone un formato per descrivere visual identity e design system agli agenti di coding.</p>



<h3 class="wp-block-heading">DESIGN.md sostituisce Figma?</h3>



<p class="wp-block-paragraph">No. Figma resta uno strumento visuale per progettare, discutere e prototipare. DESIGN.md aggiunge un formato testuale, versionabile e leggibile dagli agenti, utile dentro i repository di codice.</p>



<h3 class="wp-block-heading">Qual è la differenza tra DESIGN.md e design tokens?</h3>



<p class="wp-block-paragraph">I design token definiscono valori come colori, font, spacing e radius. DESIGN.md può contenere quei token, ma aggiunge anche spiegazioni in Markdown, cioè il razionale che aiuta gli agenti a capire come applicarli.</p>



<h3 class="wp-block-heading">Si può usare DESIGN.md con Tailwind?</h3>



<p class="wp-block-paragraph">Sì. La CLI documenta export verso Tailwind v3 in JSON e Tailwind v4 tramite CSS <code>@theme</code>, oltre al formato DTCG per design token.</p>



<h3 class="wp-block-heading">È pronto per la produzione?</h3>



<p class="wp-block-paragraph">È utilizzabile per sperimentazioni e workflow interni, ma va considerato un formato alpha. Prima di inserirlo in processi critici, conviene testarlo su un progetto pilota e monitorare l’evoluzione della specifica.</p>



<h2 class="wp-block-heading">Conclusione</h2>



<p class="wp-block-paragraph">DESIGN.md è interessante perché affronta un problema reale: gli agenti AI possono scrivere codice, ma senza una memoria progettuale rischiano di generare interfacce incoerenti. Un file testuale, versionabile e validabile può diventare il ponte tra design system, frontend e automazione.</p>



<p class="wp-block-paragraph">Il valore non sta solo nei token, ma nel contesto: colori con significato, tipografia con ruolo, componenti con stati, regole pratiche e divieti espliciti. Per chi lavora con AI coding agent, design system o sviluppo WordPress avanzato, DESIGN.md è un formato da osservare subito e da testare in un piccolo progetto reale.</p>



<p class="wp-block-paragraph">Il consiglio pratico è semplice: crea un primo DESIGN.md con pochi token affidabili, aggiungi rationale chiaro, esegui il lint e usalo come contesto per un agente AI. La differenza nella coerenza dell’output diventa evidente appena il progetto supera la singola pagina dimostrativa.</p>

]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/design-md-google-agenti-ai-design-system/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Il Tuo Portfolio AI: Come Dimostrare Competenza</title>
		<link>https://www.mrtux.it/il-tuo-portfolio-ai-come-dimostrare-competenza-senza-avere-esperienza-2</link>
					<comments>https://www.mrtux.it/il-tuo-portfolio-ai-come-dimostrare-competenza-senza-avere-esperienza-2#respond</comments>
		
		<dc:creator><![CDATA[aktarus]]></dc:creator>
		<pubDate>Wed, 06 May 2026 14:59:21 +0000</pubDate>
				<category><![CDATA[Intelligenza artificiale]]></category>
		<category><![CDATA[AI tools]]></category>
		<category><![CDATA[case study]]></category>
		<category><![CDATA[competenza AI]]></category>
		<category><![CDATA[dimostrare competenze]]></category>
		<category><![CDATA[freelance business]]></category>
		<category><![CDATA[freelancer]]></category>
		<category><![CDATA[portfolio AI]]></category>
		<category><![CDATA[progetti demo]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/il-tuo-portfolio-ai-come-dimostrare-competenza-senza-avere-esperienza-2</guid>

					<description><![CDATA["Hai un portfolio da mostrarmi?" Questa è la domanda che ogni freelancer si sente fare al primo incontro con un potenziale cliente. E se sei all'inizio, la risposta è quasi sempre la stessa: "No, non ancora." Il silenzio che segue è imbarazzante. E il cliente, educatamente, passa al prossimo fornitore. Ma c'è un modo per [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><strong>"Hai un portfolio da mostrarmi?"</strong></p>


<p class="wp-block-paragraph">Questa è la domanda che ogni freelancer si sente fare al primo incontro con un potenziale cliente. E se sei all'inizio, la risposta è quasi sempre la stessa: <strong>"No, non ancora."</strong></p>


<p class="wp-block-paragraph">Il silenzio che segue è imbarazzante. E il cliente, educatamente, passa al prossimo fornitore.</p>


<p class="wp-block-paragraph"><strong>Ma c'è un modo per aggirare questo problema.</strong> Un metodo che ti permette di costruire un portfolio convincente in poche settimane, anche se non hai mai avuto un cliente pagante.</p>


<p class="wp-block-paragraph">Si chiama <strong>Portfolio AI</strong>, e sta cambiando le regole del gioco per i freelancer.</p>


<h2 class="wp-block-heading">Il Paradosso del Freelancer alle Prime Armi</h2>


<p class="wp-block-paragraph">Ecco il circolo vizioso in cui si trovano la maggior parte dei freelancer:</p>


<ul class="wp-block-list">
<li>Per ottenere clienti ti serve un <strong>portfolio</strong></li>
<li>Per avere un portfolio ti servono <strong>clienti</strong></li>
<li>Senza clienti non hai portfolio, e senza portfolio non hai clienti</li>
</ul>


<p class="wp-block-paragraph"><strong>L'AI rompe questo circolo.</strong></p>


<p class="wp-block-paragraph">Con gli strumenti AI di oggi, puoi creare <strong>progetti demo realistici</strong> che dimostrano le tue competenze in modo tangibile. Non si tratta di "fingere" — si tratta di <strong>costruire prove concrete</strong> di ciò che sai fare.</p>


<h2 class="wp-block-heading">La Strategia dei 3 Progetti Demo</h2>


<p class="wp-block-paragraph">Il metodo è semplice: crea <strong>3 progetti demo</strong> che simulano lavori reali per clienti ipotetici. Ogni progetto deve:</p>


<ul class="wp-block-list">
<li>✅ Risolvere un <strong>problema reale</strong> di un settore specifico</li>
<li>✅ Mostrare un <strong>processo documentato</strong> (prima/dopo)</li>
<li>✅ Includere <strong>risultati misurabili</strong> (anche se stimati)</li>
<li>✅ Essere presentato come un <strong>case study professionale</strong></li>
</ul>


<h3 class="wp-block-heading">Progetto 1: Il Cliente "Locale"</h3>


<p class="wp-block-paragraph"><strong>Scenario:</strong> Un ristorante della tua città vuole aumentare le prenotazioni online.</p>


<p class="wp-block-paragraph"><strong>Cosa creare:</strong></p>

<ul>
<li>Un sito web one-page con sistema di prenotazione</li>
<li>Integrazione con Google Maps e recensioni</li>
<li>Chatbot AI per rispondere alle domande frequenti</li>
<li>Setup di Google My Business ottimizzato</li>
</ul>
<!-- /wp:post-content -->
<!-- wp:paragraph -->
<p><strong>Risultati da mostrare:</strong></p>
<!-- /wp:paragraph -->
<ul>
<li>📊 "+40% di prenotazioni online nel primo mese" (basato su benchmark di settore)</li>
<li>📊 "-60% di telefonate per informazioni ripetitive" (grazie al chatbot)</li>
<li>📊 "Posizionamento #1 su Google per 'ristorante [città]'"</li>
</ul>
<!-- /wp:list -->
<!-- wp:paragraph -->
<p><strong>Strumenti AI usati:</strong> ChatGPT per copy e struttura, Midjourney per immagini, Cursor/OpenCode per sviluppo, Claude per ottimizzazione SEO.</p>
<!-- /wp:paragraph -->
<!-- wp:heading {"level":3} -->
<h3>Progetto 2: L'E-commerce di Nicchia</h3>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p><strong>Scenario:</strong> Un artigiano vuole vendere i suoi prodotti online ma non sa da dove iniziare.</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p><strong>Cosa creare:</strong></p>
<!-- /wp:list -->
<ul>
<li>Store WooCommerce con 20 prodotti</li>
<li>Descrizioni prodotto generate e ottimizzate con AI</li>
<li>Setup di email marketing automatizzato (welcome sequence, abandoned cart)</li>
<li>Dashboard analytics con KPI personalizzati</li>
</ul>
<!-- /wp:list -->
<!-- wp:paragraph -->
<p><strong>Risultati da mostrare:</strong></p>
<!-- /wp:list -->
<ul>
<li>📊 "Tasso di conversione del 3.2% (media settore: 1.8%)"</li>
<li>📊 "Email di recupero carrello con tasso di apertura del 45%"</li>
<li>📊 "Tempo di lancio: 5 giorni invece di 3 settimane"</li>
</ul>
<!-- /wp:list -->
<!-- wp:heading {"level":3} -->
<h3>Progetto 3: L'Automazione Aziendale</h3>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p><strong>Scenario:</strong> Un'agenzia di marketing spende 20 ore/settimana in task ripetitivi.</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p><strong>Cosa creare:</strong></p>
<!-- /wp:list -->
<ul>
<li>Workflow automatizzato per generazione report settimanali</li>
<li>Bot AI per analisi sentiment dei social media</li>
<li>Sistema di generazione contenuti con approvazione automatica</li>
<li>Dashboard di monitoraggio con alert intelligenti</li>
</ul>
<!-- /wp:list -->
<!-- wp:paragraph -->
<p><strong>Risultati da mostrare:</strong></p>
<!-- /wp:list -->
<ul>
<li>📊 "-15 ore/settimana di lavoro manuale"</li>
<li>📊 "ROI del 340% nel primo trimestre"</li>
<li>📊 "Tempo di risposta ai clienti ridotto da 4 ore a 15 minuti"</li>
</ul>
<!-- /wp:list -->
<!-- wp:heading -->
<h2>Come Documentare Ogni Progetto: Il Template Case Study</h2>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p>Ogni progetto del tuo portfolio deve seguire questa struttura professionale:</p>
<!-- /wp:heading -->
<!-- wp:table -->
<table class="wp-block-table">
<thead>
<tr>
<th>Sezione</th>
<th>Contenuto</th>
<th>Lunghezza</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Titolo</strong></td>
<td>Nome progetto + risultato principale</td>
<td>1 riga</td>
</tr>
<tr>
<td><strong>Il Cliente</strong></td>
<td>Descrizione azienda, settore, dimensioni</td>
<td>2-3 righe</td>
</tr>
<tr>
<td><strong>La Sfida</strong></td>
<td>Problema specifico da risolvere</td>
<td>3-4 righe</td>
</tr>
<tr>
<td><strong>La Soluzione</strong></td>
<td>Cosa hai fatto, tecnologie usate, processo</td>
<td>5-8 righe</td>
</tr>
<tr>
<td><strong>I Risultati</strong></td>
<td>3-5 metriche con numeri concreti</td>
<td>3-5 bullet point</td>
</tr>
<tr>
<td><strong>Il Processo</strong></td>
<td>Screenshot, diagrammi, prima/dopo</td>
<td>3-5 immagini</td>
</tr>
<tr>
<td><strong>Testimonianza</strong></td>
<td>Feedback (anche se simulato per progetti demo)</td>
<td>2-3 righe</td>
</tr>
</tbody>
</table>
<!-- /wp:table -->
<!-- wp:heading -->
<h2>"Fake It Till You Make It" in Modo Etico</h2>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p>C'è una differenza fondamentale tra <strong>mentire</strong> e <strong>proiettare competenza</strong>:</p>
<!-- /wp:paragraph -->
<!-- wp:list -->
<ul>
<li>❌ <strong>Non etico:</strong> Dire "ho lavorato per Nike" quando non è vero</li>
<li>✅ <strong>Etico:</strong> Creare un redesign concettuale di Nike e mostrarlo come "progetto speculativo"</li>
</ul>
<!-- /wp:list -->
<!-- wp:paragraph -->
<p><strong>Come essere trasparenti:</strong></p>
<!-- /wp:list -->
<ul>
<li>Etichetta i progetti demo come <strong>"Progetto Concettuale"</strong> o <strong>"Case Study Simulato"</strong></li>
<li>Specifica che si tratta di <strong>progetti dimostrativi</strong> delle tue competenze</li>
<li>Mostra il <strong>processo completo</strong> — questo è ciò che conta davvero per i clienti</li>
<li>Includi <strong>codice sorgente, wireframe, brief</strong> — tutto ciò che dimostra il tuo metodo di lavoro</li>
</ul>
<!-- /wp:list -->
<!-- wp:paragraph -->
<p><strong>La verità è che</strong> molti clienti non distinguono tra un progetto reale e uno simulato — ciò che valutano è la <strong>qualità del risultato</strong> e la <strong>chiarezza del processo</strong>.</p>
<!-- /wp:paragraph -->
<!-- wp:heading -->
<h2>Dove Ospitare il Tuo Portfolio AI</h2>
<!-- /wp:heading -->
<!-- wp:list -->
<ul>
<li><strong>Sito personale WordPress</strong> — Il più professionale, controllo totale</li>
<li><strong>GitHub Pages</strong> — Gratuito, perfetto per sviluppatori</li>
<li><strong>Notion</strong> — Veloce da creare, facile da aggiornare</li>
<li><strong>Behance/Dribbble</strong> — Ottimo per designer</li>
<li><strong>LinkedIn Featured Section</strong> — Visibilità immediata</li>
</ul>
<!-- /wp:list -->
<!-- wp:paragraph -->
<p><strong>Il mio consiglio:</strong> usa un sito WordPress personale come hub centrale e linka gli altri profili da lì.</p>
<!-- /wp:paragraph -->
<!-- wp:heading -->
<h2>3 Errori da Evitare nel Portfolio AI</h2>
<!-- /wp:heading -->
<!-- wp:list {"ordered":true} -->
<ol>
<li><strong>Troppi progetti mediocri</strong> — Meglio 3 progetti eccellenti che 10 mediocri</li>
<li><strong>Solo screenshot, nessun contesto</strong> — I numeri e il processo contano più delle immagini</li>
<li><strong>Nessuna call-to-action</strong> — Ogni pagina del portfolio deve invitare al contatto</li>
</ol>
<!-- /wp:list -->
<!-- wp:heading -->
<h2>Il Tuo Piano d'Azione in 7 Giorni</h2>
<!-- /wp:heading -->
<!-- wp:list {"ordered":true} -->
<ol>
<li><strong>Giorno 1:</strong> Scegli 3 settori/nicchie su cui concentrarti</li>
<li><strong>Giorno 2:</strong> Crea brief dettagliati per ogni progetto demo</li>
<li><strong>Giorno 3-4:</strong> Sviluppa il Progetto 1 (Cliente Locale)</li>
<li><strong>Giorno 5:</strong> Sviluppa il Progetto 2 (E-commerce)</li>
<li><strong>Giorno 6:</strong> Sviluppa il Progetto 3 (Automazione)</li>
<li><strong>Giorno 7:</strong> Pubblica il portfolio e condividilo su LinkedIn</li>
</ol>
<!-- /wp:list -->
<!-- wp:paragraph -->
<p><strong>In una settimana</strong> avrai un portfolio che il 90% dei freelancer alle prime armi invidia.</p>
<!-- /wp:paragraph -->
<!-- wp:heading -->
<h2>Conclusione: Il Portfolio è il Tuo Biglietto da Visita</h2>
<!-- /wp:heading -->
<!-- wp:paragraph -->
<p>Non aspettare il primo cliente per costruire il tuo portfolio. <strong>Crea il portfolio per ottenere il primo cliente.</strong></p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p>Con l'AI, non hai più scuse. Hai gli strumenti, hai il metodo, hai il template. Ora ti manca solo l'azione.</p>
<!-- /wp:paragraph -->
<!-- wp:paragraph -->
<p><strong>Inizia oggi. Il tuo futuro cliente ti sta già cercando.</strong></p>
<!-- /wp:paragraph -->]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/il-tuo-portfolio-ai-come-dimostrare-competenza-senza-avere-esperienza-2/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Da Freelance a Consulente AI: Guida 101</title>
		<link>https://www.mrtux.it/da-freelance-generico-a-consulente-ai-guida-101</link>
					<comments>https://www.mrtux.it/da-freelance-generico-a-consulente-ai-guida-101#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Wed, 06 May 2026 10:01:23 +0000</pubDate>
				<category><![CDATA[Intelligenza artificiale]]></category>
		<category><![CDATA[AI tools]]></category>
		<category><![CDATA[carriera freelance]]></category>
		<category><![CDATA[consulente AI]]></category>
		<category><![CDATA[freelance]]></category>
		<category><![CDATA[intelligenza artificiale]]></category>
		<category><![CDATA[monetizzazione AI]]></category>
		<category><![CDATA[posizionamento professionale]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3298</guid>

					<description><![CDATA[Sei un freelance che fatica a distinguersi dalla massa? Offri gli stessi servizi di mille altri e competi solo sul prezzo? È ora di cambiare gioco. Questa guida ti mostrerà esattamente come riposizionare le competenze che già possiedi usando l'intelligenza artificiale come acceleratore, trasformandoti da esecutore generico a consulente AI strategico — e raddoppiare (o [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Sei un freelance che fatica a distinguersi dalla massa? Offri gli stessi servizi di mille altri e competi solo sul prezzo? <strong>È ora di cambiare gioco.</strong></p>


<p class="wp-block-paragraph">Questa guida ti mostrerà esattamente come <strong>riposizionare le competenze che già possiedi</strong> usando l'intelligenza artificiale come acceleratore, trasformandoti da esecutore generico a <strong>consulente AI strategico</strong> — e raddoppiare (o triplicare) le tue tariffe nel processo.</p>


<h2 class="wp-block-heading">Perché Diventare Consulente AI Ora (Prima che Sia Troppo Tardi)</h2>


<p class="wp-block-paragraph">Il mercato del lavoro freelance sta subendo una trasformazione epocale. Secondo recenti studi, <strong>il 73% delle aziende</strong> prevede di integrare strumenti AI nei propri workflow entro il 2026. Ma ecco il paradosso:</p>


<ul class="wp-block-list">
<li><strong>La domanda di consulenti AI è esplosa</strong> (+340% su LinkedIn negli ultimi 12 mesi)</li>
<li><strong>L'offerta di professionisti qualificati è ancora bassissima</strong></li>
<li><strong>Le tariffe medie per consulenti AI sono 2-3x superiori</strong> rispetto ai freelance tradizionali</li>
</ul>


<p class="wp-block-paragraph"><strong>La finestra di opportunità è aperta ora.</strong> Tra 12-18 mesi, il mercato si saturerà. Chi si muove oggi avrà un vantaggio competitivo enorme.</p>


<h2 class="wp-block-heading">Il Tuo Vantaggio Nascosto: Competenze che Già Possiedi</h2>


<p class="wp-block-paragraph">Ecco la buona notizia: <strong>non devi imparare a programmare</strong> per diventare un consulente AI. Le competenze che già usi ogni giorno sono esattamente ciò che le aziende cercano.</p>


<table class="wp-block-table">
<thead>
<tr>
<th>La Tua Competenza Attuale</th>
<th>Come l'AI la Potenzia</th>
<th>Nuovo Servizio AI</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Copywriting</strong></td>
<td>Generazione bozze, varianti A/B, ottimizzazione SEO</td>
<td>Content Strategy AI-Powered</td>
</tr>
<tr>
<td><strong>Graphic Design</strong></td>
<td>Generazione immagini, mockup rapidi, varianti</td>
<td>Visual Identity con AI</td>
</tr>
<tr>
<td><strong>Web Development</strong></td>
<td>Code generation, debugging, testing automatizzato</td>
<td>Sviluppo Web Accelerato con AI</td>
</tr>
<tr>
<td><strong>Social Media Management</strong></td>
<td>Content calendar automatizzata, analisi sentiment</td>
<td>Social Strategy AI-Driven</td>
</tr>
<tr>
<td><strong>Consulenza Marketing</strong></td>
<td>Analisi dati, previsioni, segmentazione avanzata</td>
<td>Marketing Analytics con AI</td>
</tr>
<tr>
<td><strong>Traduzione</strong></td>
<td>Traduzione automatica + post-editing umano</td>
<td>Localizzazione AI-Assisted</td>
</tr>
</tbody>
</table>


<p class="wp-block-paragraph"><strong>L'AI non ti sostituisce — ti moltiplica.</strong> Un copywriter che usa AI può produrre 10x contenuti nella stessa ora. Un designer può esplorare 50 concept invece di 5. La differenza? <strong>Tu vendi il risultato, non le ore lavorate.</strong></p>


<h2 class="wp-block-heading">La Roadmap in 5 Fasi per Diventare Consulente AI</h2>


<h3 class="wp-block-heading">Fase 1: Audit delle Tue Competenze (Giorni 1-3)</h3>


<p class="wp-block-paragraph">Prima di aggiungere AI al tuo arsenale, devi capire <strong>cosa sai già fare bene</strong>. Fai questo esercizio:</p>


<ol class="wp-block-list">
<li>Elenco dei <strong>5 servizi principali</strong> che offri attualmente</li>
<li>Per ciascuno, identifica il <strong>collo di bottiglia</strong> (cosa ti porta più tempo?)</li>
<li>Per ogni collo di bottiglia, cerca <strong>tool AI specifici</strong> che possono automatizzarlo</li>
<li>Calcola il <strong>risparmio potenziale</strong> in ore/settimana</li>
</ol>


<p class="wp-block-paragraph"><strong>Esempio pratico:</strong> Se sei un copywriter e spendi 4 ore per ricerca keyword + outline, un tool AI può farlo in 15 minuti. Risparmio: <strong>3h45m per progetto</strong>. Su 10 progetti/mese = <strong>37,5 ore risparmiate</strong>.</p>


<h3 class="wp-block-heading">Fase 2: Costruisci il Tuo Stack AI (Giorni 4-10)</h3>


<p class="wp-block-paragraph">Non servono 20 tool. Te ne bastano <strong>3-5 ben integrati</strong>. Ecco lo stack minimo vitale per iniziare:</p>


<ul class="wp-block-list">
<li><strong>ChatGPT Plus / Claude Pro</strong> — Il tuo assistente quotidiano (€20-20/mese)</li>
<li><strong>Tool specifico per la tua nicchia</strong> — Es: Jasper per copy, Midjourney per design, GitHub Copilot per dev (€10-30/mese)</li>
<li><strong>Tool di automazione</strong> — Zapier o Make per collegare tutto (€0-30/mese)</li>
<li><strong>Tool di analisi</strong> — Per misurare risultati e ROI (spesso gratuito)</li>
</ul>


<p class="wp-block-paragraph"><strong>Investimento totale: €30-100/mese.</strong> Se fatturi anche solo €500 in più grazie all'AI, il ROI è del 400-1500%. Non male, vero?</p>


<h3 class="wp-block-heading">Fase 3: Crea 3 Casi Studio Demo (Giorni 11-20)</h3>


<p class="wp-block-paragraph">I clienti vogliono vedere <strong>risultati concreti</strong>, non promesse. Crea 3 progetti demo che dimostrino il tuo nuovo approccio AI:</p>


<ol class="wp-block-list">
<li><strong>Progetto "Before"</strong> — Come facevi prima (senza AI)</li>
<li><strong>Progetto "After"</strong> — Come fai ora (con AI)</li>
<li><strong>Confronto misurabile</strong> — Tempo risparmiato, qualità migliorata, ROI generato</li>
</ol>


<p class="wp-block-paragraph"><strong>Template caso studio:</strong></p>


<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p><strong>Cliente:</strong> [Nome/Nicchia]<br>
<strong>Sfida:</strong> [Problema specifico]<br>
<strong>Soluzione AI:</strong> [Tool + processo]<br>
<strong>Risultato:</strong> [Metriche concrete: tempo risparmiato, revenue generata, costi ridotti]<br>
<strong>ROI:</strong> [X% in Y settimane]</p>
</blockquote>


<h3 class="wp-block-heading">Fase 4: Riposiziona la Tua Offerta (Giorni 21-30)</h3>


<p class="wp-block-paragraph">È ora di <strong>cambiare come ti presenti al mercato</strong>. Non sei più un "freelance che fa X". Sei un <strong>"Consulente AI specializzato in X"</strong>.</p>


<p class="wp-block-paragraph"><strong>Aggiornamenti obbligatori:</strong></p>


<ul class="wp-block-list">
<li><strong>LinkedIn headline:</strong> Da "Copywriter Freelance" a "AI Content Strategist | Aiuto le aziende a produrre 10x contenuti con l'AI"</li>
<li><strong>Sito web:</strong> Aggiungi pagina "Servizi AI" con casi studio</li>
<li><strong>Portfolio:</strong> Includi i 3 casi studio demo</li>
<li><strong>Proposte commerciali:</strong> Riscrivi tutto enfatizzando velocità, qualità e ROI</li>
</ul>


<p class="wp-block-paragraph"><strong>La regola d'oro:</strong> Non vendere "uso ChatGPT". Vendi <strong>"risultati 10x più veloci al stesso prezzo"</strong> o <strong>"risultati superiori al prezzo attuale"</strong>.</p>


<h3 class="wp-block-heading">Fase 5: Trova i Primi Clienti AI (Giorni 31-45)</h3>


<p class="wp-block-paragraph">Ora che hai competenze, stack, casi studio e positioning, è ora di <strong>trovare clienti disposti a pagare di più</strong>.</p>


<p class="wp-block-paragraph"><strong>Strategie più efficaci:</strong></p>


<ol class="wp-block-list">
<li><strong>Upsell clienti esistenti:</strong> "Ho un nuovo servizio AI che può [beneficio specifico]. Ti interessa una demo gratuita?"</li>
<li><strong>LinkedIn outbound:</strong> Contatta 10 decision-maker/giorno con messaggio personalizzato + caso studio</li>
<li><strong>Content marketing:</strong> Pubblica 2 post/settimana su LinkedIn mostrando risultati AI</li>
<li><strong>Webinar gratuito:</strong> "Come [tua nicchia] può usare l'AI per [risultato]" → raccogli email → converti in clienti</li>
<li><strong>Partnership:</strong> Collabora con agenzie che non hanno competenze AI interne</li>
</ol>


<h2 class="wp-block-heading">Quanto Puoi Guadagnare Come Consulente AI?</h2>


<p class="wp-block-paragraph">Ecco i numeri reali, basati su dati di mercato 2026:</p>


<table class="wp-block-table">
<thead>
<tr>
<th>Livello</th>
<th>Tariffa Oraria</th>
<th>Tariffa Progetto</th>
<th>Clienti/Mese</th>
<th>Revenue Mensile</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Junior AI Consultant</strong></td>
<td>€50-80</td>
<td>€500-1.500</td>
<td>4-6</td>
<td>€2.000-5.000</td>
</tr>
<tr>
<td><strong>Mid AI Consultant</strong></td>
<td>€80-150</td>
<td>€1.500-5.000</td>
<td>3-5</td>
<td>€4.500-10.000</td>
</tr>
<tr>
<td><strong>Senior AI Consultant</strong></td>
<td>€150-300</td>
<td>€5.000-15.000</td>
<td>2-4</td>
<td>€10.000-25.000</td>
</tr>
</tbody>
</table>


<p class="wp-block-paragraph"><strong>Confronto con freelance tradizionale:</strong> Un copywriter medio fattura €1.500-3.000/mese. Un AI Content Strategist fattura €4.000-10.000/mese. <strong>La differenza? Non è il talento. È il posizionamento.</strong></p>


<h2 class="wp-block-heading">Gli Errori da Evitare (Che Costano Caro)</h2>


<ol class="wp-block-list">
<li><strong>Vendere "AI" invece di risultati:</strong> Ai clienti non importa di ChatGPT. Importa di risparmiare tempo e guadagnare di più.</li>
<li><strong>Usare AI senza supervisione umana:</strong> L'AI è un acceleratore, non un sostituto. La tua expertise è ciò che fa la differenza.</li>
<li><strong>Abbassare i prezzi perché "l'AI è gratis":</strong> L'AI ti costa tempo di setup, testing e ottimizzazione. Il valore è nel risultato, non nel tool.</li>
<li><strong>Ignorare l'etica e la privacy:</strong> Usa AI in modo responsabile. Informa i clienti su come usi i loro dati.</li>
<li><strong>Non misurare i risultati:</strong> Senza metriche, non puoi dimostrare il tuo valore. Traccia sempre tempo risparmiato, qualità migliorata e ROI generato.</li>
</ol>


<h2 class="wp-block-heading">Checklist: Sei Pronto per Diventare Consulente AI?</h2>


<ul class="wp-block-list">
<li>✅ Hai identificato 3+ competenze che l'AI può potenziare</li>
<li>✅ Hai configurato il tuo stack AI (3-5 tool)</li>
<li>✅ Hai creato 3 casi studio demo con risultati misurabili</li>
<li>✅ Hai aggiornato LinkedIn, sito web e portfolio</li>
<li>✅ Hai riscritto le tue proposte commerciali con focus AI</li>
<li>✅ Hai un piano per trovare i primi 5 clienti AI</li>
</ul>


<p class="wp-block-paragraph"><strong>Se hai spuntato almeno 4 caselle, sei pronto.</strong> Inizia oggi. Il mercato non aspetta.</p>


<h2 class="wp-block-heading">Prossimi Passi: Inizia Ora</h2>


<p class="wp-block-paragraph">Non serve aspettare il momento perfetto. <strong>Il momento perfetto è ora.</strong></p>


<ol class="wp-block-list">
<li><strong>Oggi:</strong> Fai l'audit delle tue competenze (Fase 1)</li>
<li><strong>Questa settimana:</strong> Configura il tuo stack AI (Fase 2)</li>
<li><strong>Prossime 2 settimane:</strong> Crea i 3 casi studio demo (Fase 3)</li>
<li><strong>Entro 30 giorni:</strong> Riposiziona la tua offerta (Fase 4)</li>
<li><strong>Entro 45 giorni:</strong> Trova i primi clienti AI (Fase 5)</li>
</ol>


<p class="wp-block-paragraph"><strong>Tra 45 giorni, potresti essere un consulente AI con clienti che pagano 2-3x le tue tariffe attuali.</strong> Oppure potresti essere ancora qui a leggere articoli su come fare. La scelta è tua.</p>


<p class="wp-block-paragraph"><em>Hai domande sul percorso da freelance a consulente AI? Lascia un commento qui sotto o contattaci per una consulenza personalizzata.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/da-freelance-generico-a-consulente-ai-guida-101/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>OpenCode vs Claude Code vs Copilot 2026: Quale AI Coding Assistant Conviene Usare?</title>
		<link>https://www.mrtux.it/opencode-vs-claude-code-vs-copilot-2026-quale-ai-coding-assistant-conviene-usare</link>
					<comments>https://www.mrtux.it/opencode-vs-claude-code-vs-copilot-2026-quale-ai-coding-assistant-conviene-usare#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Tue, 28 Apr 2026 16:32:53 +0000</pubDate>
				<category><![CDATA[Web Hosting]]></category>
		<category><![CDATA[Intelligenza artificiale]]></category>
		<category><![CDATA[sviluppo-web]]></category>
		<category><![CDATA[ai-coding-assistant]]></category>
		<category><![CDATA[claude-code]]></category>
		<category><![CDATA[confronto]]></category>
		<category><![CDATA[github-copilot]]></category>
		<category><![CDATA[OpenCode]]></category>
		<category><![CDATA[programmazione]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3290</guid>

					<description><![CDATA[Il 2026 è l'anno della rivoluzione degli AI coding assistant. OpenCode, Claude Code e GitHub Copilot si contendono la scena con approcci radicalmente diversi: mentre OpenCode opera autonomamente in background svegliandosi ogni 30 minuti per analizzare il tuo codice, Claude Code offre un'esperienza CLI interattiva basata sulla potenza di Claude e Copilot rimane il compagno [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Il 2026 è l'anno della rivoluzione degli AI coding assistant. <a href="https://opencode.ai/" target="_blank" rel="noopener nofollow external" data-wpel-link="external">OpenCode</a>, Claude Code e <a href="https://github.com/features/copilot/cli" target="_blank" rel="noopener nofollow external" data-wpel-link="external">GitHub Copilot</a> si contendono la scena con approcci radicalmente diversi: mentre OpenCode opera autonomamente in background svegliandosi ogni 30 minuti per analizzare il tuo codice, <a href="https://code.claude.com/docs/en/overview" target="_blank" rel="noopener nofollow external" data-wpel-link="external">Claude Code</a> offre un'esperienza CLI interattiva basata sulla potenza di Claude e Copilot rimane il compagno di pair programming più diffuso.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-3294" src="https://www.mrtux.it/wp-content/uploads/2026/04/opencode-ai.webp" alt="opencode ai" width="1000" height="475" srcset="https://www.mrtux.it/wp-content/uploads/2026/04/opencode-ai.webp 1000w, https://www.mrtux.it/wp-content/uploads/2026/04/opencode-ai-300x143.webp 300w, https://www.mrtux.it/wp-content/uploads/2026/04/opencode-ai-768x365.webp 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></p>
<p>Ma quale scegliere per il tuo workflow? In questo confronto definitivo analizziamo costi, funzionalità, integrazioni e casi d'uso ideali per ogni strumento.</p>
<hr />
<h2>Tabella Comparativa Rapida</h2>
<table>
<thead>
<tr>
<th>Caratteristica</th>
<th>OpenCode</th>
<th>Claude Code</th>
<th>GitHub Copilot</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Modello AI</strong></td>
<td>Multi-provider (OpenAI, Anthropic, Google, Ollama)</td>
<td>Claude 3.5 Sonnet/Opus</td>
<td>GPT-4o, GPT-4 Turbo</td>
</tr>
<tr>
<td><strong>Modalità</strong></td>
<td>Background autonomous</td>
<td>CLI interattiva</td>
<td>IDE inline suggestions</td>
</tr>
<tr>
<td><strong>Prezzo</strong></td>
<td>Gratuito (self-hosted)</td>
<td>Pay-per-use API</td>
<td>$10/mese (Individual)</td>
</tr>
<tr>
<td><strong>IDE Supportati</strong></td>
<td>VS Code, Neovim, Emacs</td>
<td>Terminale (qualsiasi editor)</td>
<td>VS Code, JetBrains, Neovim</td>
</tr>
<tr>
<td><strong>Context Window</strong></td>
<td>200K+ token</td>
<td>200K token</td>
<td>128K token</td>
</tr>
<tr>
<td><strong>Autonomia</strong></td>
<td>Alta</td>
<td>Media</td>
<td>Bassa</td>
</tr>
<tr>
<td><strong>Privacy</strong></td>
<td>Completa (locale)</td>
<td>Completa (locale)</td>
<td>Codice inviato a GitHub</td>
</tr>
</tbody>
</table>
<hr />
<h2>OpenCode: L'AI Autonoma che Lavora in Background</h2>
<h3>Cos'è e Come Funziona</h3>
<p>OpenCode rappresenta un cambio di paradigma nel mondo degli AI coding assistant. A differenza di Copilot che reagisce ai tuoi input, OpenCode è <strong>proattivo</strong>: un server in background che si sveglia autonomamente ogni 30 minuti per analizzare la tua codebase.</p>
<h3>Architettura Innovativa</h3>
<ul>
<li>Background Server (sveglia ogni 30 min)</li>
<li>Plan Mode (read-only): Esplora codebase</li>
<li>Build Mode (read/write): Implementa modifiche</li>
<li>LSP Integration: Refactoring semantico</li>
</ul>
<h3>Funzionalità Chiave</h3>
<p><strong>Plan Mode</strong>: Modalità read-only che esplora la codebase, mappa la struttura e produce una strategia di implementazione senza modificare nulla.</p>
<p><strong>Build Mode</strong>: Accesso in lettura/scrittura per eseguire il piano, modificare file, eseguire test.</p>
<p><strong>Multi-Provider</strong>: Switch dinamico tra OpenAI, Anthropic, Google e modelli locali (Ollama) nella stessa sessione.</p>
<p><strong>LSP Integration</strong>: Con OPENCODE_EXPERIMENTAL_LSP_TOOL=true, abilita refactoring semantico con goToDefinition, findReferences e call hierarchy.</p>
<h3>Pro e Contro</h3>
<p><strong>Vantaggi:</strong></p>
<ul>
<li>Completamente autonomo</li>
<li>Multi-provider</li>
<li>Privacy totale (self-hosted)</li>
<li>Gratuito</li>
<li>LSP per refactoring avanzato</li>
</ul>
<p><strong>Svantaggi:</strong></p>
<ul>
<li>Setup iniziale complesso</li>
<li>Richiede risorse locali</li>
<li>Meno indicazioni in tempo reale</li>
<li>Documentazione ancora limitata</li>
<li>Beta, potenziali bug</li>
</ul>
<h3>Caso d'Uso Ideale</h3>
<p>OpenCode è perfetto per <strong>progetti a lungo termine</strong> dove vuoi un assistente che pensa mentre tu fai altro. Ideale per refactoring di grandi codebase, audit di sicurezza e ottimizzazione architetturale.</p>
<hr />
<h2>Claude Code: La Potenza di Claude 3.5 nel Terminale</h2>
<h3>Cos'è e Come Funziona</h3>
<p>Claude Code è il tool CLI di Anthropic che porta la potenza di Claude 3.5 Sonnet direttamente nel tuo terminale. A differenza di Copilot che suggerisce snippet mentre scrivi, Claude Code <strong>comprende il contesto dell'intero progetto</strong>, può eseguire comandi shell, leggere e modificare file, e persino fare debugging.</p>
<h3>Installazione e Setup</h3>
<pre><code class="language-bash"># Installazione via npm
npm install -g @anthropic-ai/claude-code

# Configurazione API key
export ANTHROPIC_API_KEY="your-api-key"

# Avvio in un progetto
cd your-project
claude</code></pre>
<h3>Comandi Essenziali</h3>
<pre><code class="language-bash"># Analizza il progetto
claude "Analizza la struttura di questo progetto WordPress"

# Genera codice
claude "Crea un plugin WooCommerce per gestire abbonamenti"

# Debugging
claude "Trova il bug in functions.php riga 145"

# Refactoring
claude "Ottimizza le query del database in questo plugin"</code></pre>
<h3>Pro e Contro</h3>
<p><strong>Vantaggi:</strong></p>
<ul>
<li>Claude 3.5 Sonnet (top quality)</li>
<li>Context window 200K token</li>
<li>CLI agnostica (qualsiasi editor)</li>
<li>Comprensione profonda del progetto</li>
<li>Esegue comandi shell</li>
</ul>
<p><strong>Svantaggi:</strong></p>
<ul>
<li>Costo pay-per-use API</li>
<li>Rate limits su API</li>
<li>Necessita terminale</li>
<li>Meno indicazioni inline</li>
<li>Setup API key richiesto</li>
</ul>
<h3>Caso d'Uso Ideale</h3>
<p>Claude Code eccelle per <strong>sviluppo complesso</strong> dove serve comprensione profonda del contesto. Perfetto per WordPress development, debugging intricato e generazione di codice complesso con logica business.</p>
<hr />
<h2>GitHub Copilot: Il Pair Programmer Classico</h2>
<h3>Cos'è e Come Funziona</h3>
<p>GitHub Copilot è il pioniere degli AI coding assistant. Lanciato nel 2021, rimane lo strumento più diffuso grazie alla sua integrazione nativa con VS Code e la familiarità degli sviluppatori. Funziona come un <strong>pair programmer in tempo reale</strong>, suggerendo codice mentre scrivi.</p>
<h3>Funzionalità Chiave</h3>
<p><strong>Inline Suggestions</strong>: Suggerimenti mentre scrivi, accettabili con Tab.</p>
<p><strong>Copilot Chat</strong>: Chat integrata per domande sul codice.</p>
<p><strong>Copilot Workspace</strong>: Generazione di progetti completi da descrizione.</p>
<p><strong>Multi-IDE</strong>: VS Code, JetBrains, Neovim, Visual Studio.</p>
<h3>Pro e Contro</h3>
<p><strong>Vantaggi:</strong></p>
<ul>
<li>Integrazione perfetta VS Code</li>
<li>Suggerimenti in tempo reale</li>
<li>Facile da usare</li>
<li>Copilot Chat per domande</li>
<li>Aggiornamenti frequenti</li>
</ul>
<p><strong>Svantaggi:</strong></p>
<ul>
<li>Abbonamento richiesto</li>
<li>Privacy: codice inviato a GitHub</li>
<li>Context window limitata</li>
<li>Meno autonomia</li>
<li>Meno comprensione del progetto globale</li>
</ul>
<h3>Caso d'Uso Ideale</h3>
<p>Copilot è ideale per <strong>coding quotidiano</strong> dove vuoi suggerimenti istantanei mentre scrivi. Perfetto per boilerplate, snippet comuni e pair programming in tempo reale.</p>
<hr />
<h2>Confronto per Casi d'Uso Specifici</h2>
<h3>Per Sviluppatori WordPress</h3>
<table>
<thead>
<tr>
<th>Strumento</th>
<th>Voto</th>
<th>Motivazione</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Claude Code</strong></td>
<td>5/5</td>
<td>Comprensione profonda di hooks, filters, <a href="https://www.mrtux.it/temi-wordpress-vs-page-builder-cosa-scegliere-nel-2026" data-wpel-link="internal" target="_self" rel="noopener">WP conventions</a></td>
</tr>
<tr>
<td><strong>OpenCode</strong></td>
<td>4/5</td>
<td>Ottimo per refactoring plugin e audit sicurezza</td>
</tr>
<tr>
<td><strong>Copilot</strong></td>
<td>3/5</td>
<td>Buono per snippet, meno per <a href="https://www.mrtux.it/la-storia-di-wordpress-dalle-origini-ad-oggi" data-wpel-link="internal" target="_self" rel="noopener">architettura WP</a></td>
</tr>
</tbody>
</table>
<h3>Per Progetti Enterprise</h3>
<table>
<thead>
<tr>
<th>Strumento</th>
<th>Voto</th>
<th>Motivazione</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>OpenCode</strong></td>
<td>5/5</td>
<td>Privacy totale, self-hosted, multi-provider</td>
</tr>
<tr>
<td><strong>Claude Code</strong></td>
<td>4/5</td>
<td>Qualità codice eccellente, ma dati su API</td>
</tr>
<tr>
<td><strong>Copilot</strong></td>
<td>3/5</td>
<td>Integrazione GitHub, ma privacy concerns</td>
</tr>
</tbody>
</table>
<h3>Per Startup e Indie Hackers</h3>
<table>
<thead>
<tr>
<th>Strumento</th>
<th>Voto</th>
<th>Motivazione</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Copilot</strong></td>
<td>5/5</td>
<td>Costo fisso, produttività immediata</td>
</tr>
<tr>
<td><strong>Claude Code</strong></td>
<td>4/5</td>
<td>Pay-per-use può essere costoso</td>
</tr>
<tr>
<td><strong>OpenCode</strong></td>
<td>4/5</td>
<td>Gratuito ma setup richiede tempo</td>
</tr>
</tbody>
</table>
<h3>Per Progetti Open Source</h3>
<table>
<thead>
<tr>
<th>Strumento</th>
<th>Voto</th>
<th>Motivazione</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>OpenCode</strong></td>
<td>5/5</td>
<td>Gratuito, privacy, self-hosted</td>
</tr>
<tr>
<td><strong>Claude Code</strong></td>
<td>4/5</td>
<td>Ottimo per contributi complessi</td>
</tr>
<tr>
<td><strong>Copilot</strong></td>
<td>3/5</td>
<td>Costo mensile per progetti gratuiti</td>
</tr>
</tbody>
</table>
<hr />
<h2>Analisi Costi-Benefici</h2>
<h3>OpenCode</h3>
<ul>
<li><strong>Costo</strong>: Gratuito (self-hosted)</li>
<li><strong>Requisiti</strong>: Server locale con risorse per LLM</li>
<li><strong>ROI</strong>: Altissimo per progetti a lungo termine</li>
<li><strong>Hidden costs</strong>: Hardware per modelli locali</li>
</ul>
<h3>Claude Code</h3>
<ul>
<li><strong>Costo</strong>: Pay-per-use API (~$3-15/mese per uso moderato)</li>
<li><strong>Modello</strong>: Claude Sonnet ($3/1M input, $15/1M output)</li>
<li><strong>ROI</strong>: Alto per progetti complessi</li>
<li><strong>Hidden costs</strong>: Rate limits possono rallentare</li>
</ul>
<h3>GitHub Copilot</h3>
<ul>
<li><strong>Costo</strong>: $10/mese (Individual), $19/mese (Business), $39/mese (Enterprise)</li>
<li><strong>ROI</strong>: Alto per coding quotidiano</li>
<li><strong>Hidden costs</strong>: Privacy del codice</li>
</ul>
<hr />
<h2>Privacy e Sicurezza</h2>
<h3>OpenCode</h3>
<p><strong>Massima privacy</strong>: Tutto gira localmente, nessun dato inviato esternamente.</p>
<p><strong>Self-hosted</strong>: Controllo completo su dove e come gira.</p>
<p><strong>Multi-provider</strong>: Puoi usare modelli locali (Ollama) per privacy totale.</p>
<h3>Claude Code</h3>
<p><strong>Privacy locale</strong>: Il codice viene processato localmente, solo le query API vanno ad Anthropic.</p>
<p><strong>API calls</strong>: Le richieste viaggiano su server Anthropic.</p>
<p><strong>No training on code</strong>: Anthropic non usa il tuo codice per training.</p>
<h3>GitHub Copilot</h3>
<p><strong>Codice inviato a GitHub</strong>: Per funzionare, il codice viene inviato ai server Microsoft.</p>
<p><strong>Training on public code</strong>: Addestrato su codice pubblico, potenziali problemi di licenza.</p>
<p><strong>Enterprise</strong>: Versione Business/Enterprise offre più privacy.</p>
<hr />
<h2>Workflow Consigliati</h2>
<h3>Workflow Ibrido: OpenCode + Copilot</h3>
<ol>
<li>Mattina: OpenCode analizza il progetto in background</li>
<li>Sviluppo: Copilot suggerisce snippet in tempo reale</li>
<li>Sera: OpenCode propone refactoring e ottimizzazioni</li>
</ol>
<h3>Workflow Claude Code + VS Code</h3>
<ol>
<li>Terminale: Claude Code per architettura e logica complessa</li>
<li>Editor: VS Code per editing e debugging</li>
<li>Iterazione: Claude Code per refactoring e ottimizzazione</li>
</ol>
<h3>Workflow Solo OpenCode</h3>
<ol>
<li>Setup: Configura OpenCode con multi-provider</li>
<li>Plan Mode: Lascia analizzare il progetto</li>
<li>Review: Esamina le proposte</li>
<li>Build Mode: Approva le modifiche</li>
</ol>
<hr />
<h2>Verdetto Finale</h2>
<h3>Il Vincitore Dipende dal Tuo Stile</h3>
<table>
<thead>
<tr>
<th>Se vuoi...</th>
<th>Scegli...</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Suggerimenti istantanei mentre codi</strong></td>
<td>GitHub Copilot</td>
</tr>
<tr>
<td><strong>Comprensione profonda del progetto</strong></td>
<td>Claude Code</td>
</tr>
<tr>
<td><strong>Autonomia e privacy totale</strong></td>
<td>OpenCode</td>
</tr>
<tr>
<td><strong>Miglior rapporto qualità-prezzo</strong></td>
<td>OpenCode (gratuito)</td>
</tr>
<tr>
<td><strong>Setup più veloce</strong></td>
<td>GitHub Copilot</td>
</tr>
<tr>
<td><strong>Codice più pulito e architetturato</strong></td>
<td>Claude Code</td>
</tr>
</tbody>
</table>
<h3>La Nostra Raccomandazione</h3>
<p>Per <strong>sviluppatori WordPress</strong> che lavorano su progetti complessi: <strong>Claude Code</strong> per la comprensione profonda di hooks, filters e conventions WP.</p>
<p>Per <strong>team enterprise</strong> con requisiti di privacy: <strong>OpenCode</strong> per il controllo totale e l'assenza di dati inviati esternamente.</p>
<p>Per <strong>indie hackers</strong> e <strong>startup</strong>: <strong>GitHub Copilot</strong> per la produttività immediata e il costo prevedibile.</p>
<hr />
<h2>Il Futuro degli AI Coding Assistant</h2>
<p>Il 2026 sta vedendo una convergenza: OpenCode sta aggiungendo feature inline, Claude Code sta migliorando l'autonomia, e Copilot sta integrando agenti più intelligenti.</p>
<p>La vera rivoluzione arriverà quando questi strumenti combineranno:</p>
<ul>
<li><strong>Autonomia</strong> di OpenCode</li>
<li><strong>Qualità</strong> di Claude Code</li>
<li><strong>Integrazione</strong> di Copilot</li>
</ul>
<p>Fino ad allora, la scelta dipende dal tuo workflow e dalle tue priorità.</p>
<hr />
<h2>Domande Frequenti</h2>
<h3>Posso usare più di uno strumento insieme?</h3>
<p><strong>Assolutamente sì!</strong> Molti sviluppatori usano Copilot per suggerimenti inline e Claude Code per architettura. OpenCode può girare in background mentre usi entrambi.</p>
<h3>Quale ha il modello AI più potente?</h3>
<p><strong>Claude Code</strong> usa Claude Sonnet, attualmente considerato il top per coding. OpenCode può usare qualsiasi modello, inclusi Claude e GPT-5o.</p>
<h3>OpenCode è davvero gratuito?</h3>
<p><strong>Sì</strong>, ma richiede hardware per girare localmente o API key per i provider cloud. Il software è open source e gratuito.</p>
<h3>GitHub Copilot vale i $10/mese?</h3>
<p><strong>Per la maggior parte degli sviluppatori, sì.</strong> La produttività guadagnata supera ampiamente il costo. Per progetti occasionali, Claude Code pay-per-use potrebbe essere più economico.</p>
<h3>Quale è meglio per principianti?</h3>
<p><strong>GitHub Copilot</strong> per la facilità d'uso e i suggerimenti in tempo reale. Claude Code richiede più conoscenza del terminale.</p>
<hr />
<p><em>Aggiornato ad Aprile 2026. I prezzi e le funzionalità potrebbero cambiare con gli aggiornamenti dei prodotti.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/opencode-vs-claude-code-vs-copilot-2026-quale-ai-coding-assistant-conviene-usare/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tema Child WordPress con AI: Guida Completa 2026</title>
		<link>https://www.mrtux.it/tema-child-wordpress-con-ai-guida-completa-2026</link>
					<comments>https://www.mrtux.it/tema-child-wordpress-con-ai-guida-completa-2026#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Tue, 17 Mar 2026 09:52:34 +0000</pubDate>
				<category><![CDATA[Intelligenza artificiale]]></category>
		<category><![CDATA[2026]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[child theme]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[guida completa]]></category>
		<category><![CDATA[personalizzazione]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3220</guid>

					<description><![CDATA[Guida completa 2050+ parole per child theme WordPress con AI. CSS custom, template override, performance optimization. 40+ prompt pronti all'uso.]]></description>
										<content:encoded><![CDATA[<h2>Introduzione</h2>
<p>Hai mai trovato il tema WordPress perfetto per il tuo sito, ma con quei piccoli dettagli che proprio non ti convincono? Quel colore del pulsante sbagliato, quel font che non rispecchia il tuo brand, quel layout che vorresti leggermente diverso?</p>
<p>Fino a pochi anni fa, modificare un tema WordPress significava scegliere tra due opzioni poco attraenti:</p>
<ol>
<li><strong>Modificare il tema direttamente</strong> → Aggiornamenti = perdita di tutte le modifiche</li>
<li><strong>Assumere uno sviluppatore</strong> → Costi elevati (€500-2000) e tempi lunghi</li>
</ol>
<p>Oggi, grazie all'intelligenza artificiale e ai <strong>child theme</strong>, puoi personalizzare qualsiasi tema WordPress in modo sicuro, reversibile e professionale. E la parte migliore? <strong>Non serve essere un esperto di coding.</strong></p>
<h3>Cosa Troverai in Questa Guida</h3>
<p>Questa guida pratica di oltre 2000 parole ti accompagnerà dalla creazione del tuo primo child theme fino alla personalizzazione avanzata. Ogni capitolo include:</p>
<ul>
<li>Spiegazioni chiare con esempi visivi</li>
<li>Prompt AI pronti da copiare e incollare</li>
<li>Codice CSS e PHP completo e commentato</li>
<li>Checklist operative</li>
<li>Tabelle comparative</li>
<li>Best practice e avvertenze</li>
</ul>
<h3>Cosa Imparerai</h3>
<ol>
<li><strong>Fondamenti</strong> - Cos'è child theme, architettura, vantaggi</li>
<li><strong>Setup</strong> - Creazione, installazione, attivazione</li>
<li><strong>Colori</strong> - Palette personalizzata con AI</li>
<li><strong>Font</strong> - Google Fonts e tipografia responsive</li>
<li><strong>Layout</strong> - Template override e customizzazioni</li>
<li><strong>Funzionalità</strong> - functions.php avanzato</li>
<li><strong>Performance</strong> - Ottimizzazione velocità</li>
<li><strong>Testing</strong> - Checklist pre-lancio</li>
</ol>
<h3>Perché Usare un Child Theme</h3>
<table>
<thead>
<tr>
<th>Vantaggio</th>
<th>Descrizione</th>
<th>Impatto</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Sicurezza</strong></td>
<td>Il tema parent rimane intatto</td>
<td>Aggiornamenti senza rischi</td>
</tr>
<tr>
<td><strong>Reversibilità</strong></td>
<td>Disattiva e torni all'originale</td>
<td>Zero danni permanenti</td>
</tr>
<tr>
<td><strong>Manutenibilità</strong></td>
<td>Modifiche isolate e organizzate</td>
<td>Debug semplificato</td>
</tr>
<tr>
<td><strong>Portabilità</strong></td>
<td>Esporti solo customizzazioni</td>
<td>Migrazione facile</td>
</tr>
<tr>
<td><strong>Professionalità</strong></td>
<td>Segui best practice WordPress</td>
<td>Codice di qualità</td>
</tr>
</tbody>
</table>
<h3>Statistiche Chiave</h3>
<ul>
<li>📊 <strong>94%</strong> dei temi WordPress riceve aggiornamenti mensili</li>
<li>⚠️ <strong>67%</strong> utenti perde customizzazioni dopo aggiornamenti (senza child theme)</li>
<li>💰 <strong>€500-2000</strong> costo medio customizzazione da developer</li>
<li>⏱️ <strong>30 minuti</strong> tempo medio per child theme con AI</li>
</ul>
<hr />
<h2>Capitolo 1: Fondamenti Child Theme</h2>
<h3>Cos'è un Child Theme</h3>
<p>Un child theme è un tema WordPress che <strong>eredita tutte le funzionalità e lo stile di un tema parent</strong>, permettendoti di modificare o aggiungere funzionalità senza alterare il tema originale.</p>
<p><strong>Analogia semplice:</strong> Il tema parent è una casa già costruita. Il child theme è come aggiungere vernice, mobili e decorazioni senza toccare la struttura portante.</p>
<h3>Come Funziona l'Ereditarietà</h3>
<p>WordPress carica i file in questo ordine:</p>
<ol>
<li>Cerca il file nel <strong>child theme</strong></li>
<li>Se non esiste, usa il file del <strong>parent theme</strong></li>
<li>Il child theme può <strong>override</strong> qualsiasi file del parent</li>
</ol>
<p><strong>Esempio:</strong></p>
<pre><code>Se modifichi header.php nel child theme:
WordPress usa → child-theme/header.php
Ignora → parent-theme/header.php</code></pre>
<h3>Quando Usare un Child Theme</h3>
<table>
<thead>
<tr>
<th>Scenario</th>
<th>Child Theme?</th>
<th>Alternativa</th>
</tr>
</thead>
<tbody>
<tr>
<td>Cambiare colori brand</td>
<td>✅ Sì</td>
<td>Customizer</td>
</tr>
<tr>
<td>Modificare layout homepage</td>
<td>✅ Sì</td>
<td>Page builder</td>
</tr>
<tr>
<td>Aggiungere custom post type</td>
<td>✅ Sì</td>
<td>Plugin</td>
</tr>
<tr>
<td>Cambiare font</td>
<td>✅ Sì</td>
<td>Customizer/Plugin</td>
</tr>
<tr>
<td>Modificare header/footer</td>
<td>✅ Sì</td>
<td>Plugin/Block editor</td>
</tr>
<tr>
<td>Funzionalità e-commerce</td>
<td>❌ No</td>
<td>WooCommerce plugin</td>
</tr>
<tr>
<td>Ottimizzazione SEO</td>
<td>❌ No</td>
<td>SEO plugin</td>
</tr>
</tbody>
</table>
<h3>Struttura Minimale</h3>
<p>Un child theme richiede solo DUE file:</p>
<pre><code>my-child-theme/
├── style.css # Obbligatorio: header + CSS custom
└── functions.php # Opzionale ma consigliato</code></pre>
<p><strong>Struttura Completa:</strong></p>
<pre><code>my-child-theme/
├── style.css # Header tema + CSS personalizzato
├── functions.php # Funzioni custom, enqueue scripts
├── screenshot.png # Anteprima (1200x900px)
├── templates/ # Override template
│ ├── header.php
│ ├── footer.php
│ └── page-landing.php
└── assets/ # Risorse custom
├── css/
└── js/</code></pre>
<h3>Il File style.css: Header Obbligatorio</h3>
<p>Ogni child theme DEVE iniziare con un header CSS commentato:</p>
<pre><code class="language-css">/*
Theme Name: Mio Child Theme
Theme URI: https://miosito.it/mio-child-theme
Description: Child theme del tema Twenty Twenty-Four personalizzato per il mio brand aziendale
Author: Il Tuo Nome
Author URI: https://miosito.it
Template: twentytwentyfour
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: mio-child-theme
Tags: custom-colors, custom-fonts, responsive-layout
*/

/* Il campo &quot;Template&quot; è CRUCIALE: deve corrispondere ESATTAMENTE al nome della cartella del tema parent */</code></pre>
<p><strong>Spiegazione Campi Header:</strong></p>
<table>
<thead>
<tr>
<th>Campo</th>
<th>Obbligatorio</th>
<th>Descrizione</th>
<th>Esempio</th>
</tr>
</thead>
<tbody>
<tr>
<td>Theme Name</td>
<td>✅ SÌ</td>
<td>Nome del child theme</td>
<td>&quot;Mio Child Theme&quot;</td>
</tr>
<tr>
<td>Template</td>
<td>✅ SÌ</td>
<td>Nome cartella parent theme</td>
<td>&quot;twentytwentyfour&quot;</td>
</tr>
<tr>
<td>Version</td>
<td>✅ SÌ</td>
<td>Versione corrente</td>
<td>&quot;1.0.0&quot;</td>
</tr>
<tr>
<td>Theme URI</td>
<td>No</td>
<td>URL tema</td>
<td>&quot;<a href="https://miosito.it" target="_blank" rel="noopener nofollow external" data-wpel-link="external">https://miosito.it</a>&quot;</td>
</tr>
<tr>
<td>Description</td>
<td>No</td>
<td>Descrizione</td>
<td>&quot;Tema personalizzato&quot;</td>
</tr>
<tr>
<td>Author</td>
<td>No</td>
<td>Autore</td>
<td>&quot;Nome Cognome&quot;</td>
</tr>
<tr>
<td>Author URI</td>
<td>No</td>
<td>URL autore</td>
<td>&quot;<a href="https://miosito.it" target="_blank" rel="noopener nofollow external" data-wpel-link="external">https://miosito.it</a>&quot;</td>
</tr>
<tr>
<td>Tags</td>
<td>No</td>
<td>Tag per ricerca</td>
<td>&quot;custom-colors, responsive&quot;</td>
</tr>
</tbody>
</table>
<p><strong>⚠️ ATTENZIONE:</strong> Il campo <code>Template</code> deve corrispondere ESATTAMENTE al nome della cartella del tema parent. Se il parent è in <code>/wp-content/themes/twentytwentyfour/</code>, allora <code>Template: twentytwentyfour</code>.</p>
<h3>Il File functions.php</h3>
<p>A differenza del parent, il <code>functions.php</code> del child theme viene caricato <strong>PRIMA</strong> di quello del parent.</p>
<p><strong>Funzioni Base:</strong></p>
<pre><code class="language-php">&lt;!--?php 
/**
 * Mio Child Theme - Functions
 */

// Security: Prevent direct access
if (!defined(&#039;ABSPATH&#039;)) {
    exit;
}

/**
 * Enqueue parent and child theme stylesheets
 */
function mio_child_enqueue_styles() {
    // Carica stylesheet del tema parent
    wp_enqueue_style(
        &#039;parent-style&#039;,
        get_template_directory_uri() . &#039;/style.css&#039;
    );

    // Carica stylesheet del child theme (dopo il parent)
    wp_enqueue_style(
        &#039;child-style&#039;,
        get_stylesheet_directory_uri() . &#039;/style.css&#039;,
        array(&#039;parent-style&#039;),
        wp_get_theme()-&gt;get(&#039;Version&#039;)&lt;br ?--&gt; );
}
add_action(&#039;wp_enqueue_scripts&#039;, &#039;mio_child_enqueue_styles&#039;);

/**
* Aggiungi supporto funzionalità extra
*/
function mio_child_theme_setup() {
// Supporto per logo custom
add_theme_support(&#039;custom-logo&#039;, [
&#039;height&#039; =&gt; 200,
&#039;width&#039; =&gt; 400,
&#039;flex-height&#039; =&gt; true,
&#039;flex-width&#039; =&gt; true
]);

// Supporto featured images
add_theme_support(&#039;post-thumbnails&#039;);
}
add_action(&#039;after_setup_theme&#039;, &#039;mio_child_theme_setup&#039;, 20);</code></pre>
<hr />
<h2>Capitolo 2: Setup Child Theme</h2>
<h3>Prerequisiti</h3>
<p>Prima di iniziare, assicurati di avere:</p>
<ul>
<li>✅ WordPress installato (locale o remoto)</li>
<li>✅ Tema parent installato e attivo</li>
<li>✅ Accesso FTP/SFTP o file manager</li>
<li>✅ Editor di testo (VS Code, Sublime Text)</li>
<li>✅ Browser con DevTools (Chrome, Firefox)</li>
</ul>
<h3>Step-by-Step: Creazione Child Theme</h3>
<p><strong>Step 1: Crea la Cartella</strong></p>
<pre><code class="language-bash"># Locale
mkdir -p ~/Documenti/www/wp-content/themes/mio-child-theme

# Oppure via FTP nel server
cd /wp-content/themes/
mkdir mio-child-theme</code></pre>
<p><strong>Step 2: Crea style.css</strong></p>
<pre><code class="language-css">/*
Theme Name: Mio Child Theme
Template: twentytwentyfour
Version: 1.0.0
*/</code></pre>
<p><strong>Step 3: Crea functions.php</strong></p>
<pre><code class="language-php">&lt;!--?php 
function mio_child_enqueue_styles() {
    wp_enqueue_style(&#039;parent-style&#039;, get_template_directory_uri() . &#039;/style.css&#039;);
    wp_enqueue_style(&#039;child-style&#039;, get_stylesheet_uri(), array(&#039;parent-style&#039;));
}
add_action(&#039;wp_enqueue_scripts&#039;, &#039;mio_child_enqueue_styles&#039;);</code></pre>
<p><strong>Step 4: (Opzionale) Crea screenshot.png</strong></p>
<ul>
<li>Immagine 1200x900px</li>
<li>Rappresenta il tuo tema</li>
<li>WordPress la mostra nella dashboard</li>
</ul>
<p><strong>Step 5: Comprimi in ZIP</strong></p>
<pre><code class="language-bash">zip -r mio-child-theme.zip mio-child-theme/</code></pre>
<h3>Installazione WordPress</h3>
<p><strong>Metodo 1: Upload Dashboard (Consigliato)</strong></p>
<ol>
<li>Vai su WordPress Admin → Aspetto → Temi</li>
<li>Clicca &quot;Aggiungi nuovo&quot; → &quot;Carica tema&quot;</li>
<li>Seleziona il file ZIP</li>
<li>Clicca &quot;Installa ora&quot;</li>
<li>Clicca &quot;Attiva&quot;</li>
</ol>
<p><strong>Metodo 2: FTP/SFTP</strong></p>
<ol>
<li>Connettiti via FTP (FileZilla)</li>
<li>Naviga in <code>/wp-content/themes/</code></li>
<li>Carica cartella <code>mio-child-theme</code></li>
<li>Attiva da WordPress Admin → Aspetto → Temi</li>
</ol>
<p><strong>Metodo 3: WP-CLI</strong></p>
<pre><code class="language-bash"># Accedi server SSH
ssh user@yourserver.com

# Installa e attiva
cd /var/www/html/wp-content/themes
wp theme activate mio-child-theme</code></pre>
<h3>Verifica Installazione</h3>
<p>Dopo attivazione, verifica:</p>
<ol>
<li>✅ Sito appare identico al parent (nessun cambiamento visibile)</li>
<li>✅ Entrambi stylesheet caricati (ispeziona codice sorgente)</li>
<li>✅ Nessun errore console browser</li>
</ol>
<p><strong>Prompt AI per Debug:</strong></p>
<pre><code>Agisci come WordPress debugger expert.

Problema: [DESCRIVI]
Tema parent: [NOME]
Child theme: [NOME]

Codice style.css:
[INCOLLA]

Codice functions.php:
[INCOLLA]

Task: Analizza e fornisci soluzione.</code></pre>
<hr />
<h2>Capitolo 3: Personalizzare Colori con AI</h2>
<h3>La Scienza del Prompt CSS</h3>
<p>La qualità del CSS generato dipende dalla precisione del prompt.</p>
<p><strong>Sii specifico su:</strong></p>
<ul>
<li>Colori esatti (codici HEX o RGB)</li>
<li>Elementi target (classi, ID, tag)</li>
<li>Stati (hover, focus, active)</li>
<li>Responsive behavior</li>
</ul>
<h3>Prompt per Palette Colori</h3>
<p><strong>Prompt Base:</strong></p>
<pre><code>Agisci come CSS expert WordPress.

Task: CSS per cambiare palette:
- Primary: #2563EB (blu)
- Secondary: #10B981 (verde)
- Accent: #F59E0B (arancione)

Elementi: header, bottoni, link, footer.

Vincoli: CSS variables, hover states.

Output: CSS completo.</code></pre>
<p><strong>Prompt Avanzato:</strong></p>
<pre><code>Agisci come CSS expert specializzato in WordPress themes e accessibilità WCAG.

CONTESTO:
Child theme per Twenty Twenty-Four. Brand aziendale professionale.

TASK:
Genera CSS custom per palette colori:

Colori Brand:
- Primary: #2563EB (blu istituzionale)
- Secondary: #10B981 (verde successo)
- Accent: #F59E0B (arancione CTA)
- Background: #F8FAFC (grigio chiarissimo)
- Text: #1E293B (grigio scuro)

Elementi da Modificare:
1. Header (background, testo, menu)
2. Bottoni primari (normale, hover, focus, active)
3. Link (normale, hover, visited)
4. Footer (background, testo, link)
5. Bordi e separatori
6. Form input (border, focus)

REQUISITI TECNICI:
- Usa CSS variables (:root) per facilità manutenzione
- Includi stati hover, focus, active per accessibilità
- Contrasto minimo WCAG AA (4.5:1)
- Responsive: mobile, tablet, desktop
- Compatibilità browser (Chrome, Firefox, Safari, Edge)

OUTPUT:
- Codice CSS completo con commenti
- Spiegazione scelte colori
- Note accessibilità</code></pre>
<h3>CSS Generato (Esempio Completo)</h3>
<pre><code class="language-css">/* ============================================
   Mio Child Theme - Custom Color Palette
   ============================================ */

:root {
    /* Brand Colors */
    --wp--custom--color--primary: #2563EB;
    --wp--custom--color--secondary: #10B981;
    --wp--custom--color--accent: #F59E0B;
    --wp--custom--color--background: #F8FAFC;
    --wp--custom--color--text: #1E293B;

    /* Derived Colors */
    --wp--custom--color--primary-hover: #1D4ED8;
    --wp--custom--color--text-muted: #64748B;
    --wp--custom--color--border: #E2E8F0;
}

/* Header */
.site-header {
    background-color: var(--wp--custom--color--background);
    border-bottom: 1px solid var(--wp--custom--color--border);
}

.site-title a,
.site-description {
    color: var(--wp--custom--color--text);
}

/* Primary Buttons */
.wp-block-button__link,
button,
input[type=&quot;button&quot;],
input[type=&quot;submit&quot;] {
    background-color: var(--wp--custom--color--primary);
    color: #FFFFFF;
    border: none;
    padding: 12px 24px;
    border-radius: 6px;
    font-weight: 600;
    transition: all 0.3s ease;
}

.wp-block-button__link:hover,
button:hover,
input[type=&quot;button&quot;]:hover,
input[type=&quot;submit&quot;]:hover {
    background-color: var(--wp--custom--color--primary-hover);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

/* Links */
a {
    color: var(--wp--custom--color--primary);
    text-decoration: none;
    transition: color 0.2s ease;
}

a:hover {
    color: var(--wp--custom--color--secondary);
}

/* Footer */
.site-footer {
    background-color: var(--wp--custom--color--text);
    color: #FFFFFF;
}

.site-footer a {
    color: var(--wp--custom--color--accent);
}

/* Accessibility: Focus States */
a:focus,
button:focus,
input:focus {
    outline: 2px solid var(--wp--custom--color--accent);
    outline-offset: 2px;
}</code></pre>
<h3>Strumenti AI per Palette Colori</h3>
<table>
<thead>
<tr>
<th>Strumento</th>
<th>URL</th>
<th>Funzionalità</th>
</tr>
</thead>
<tbody>
<tr>
<td>Coolors</td>
<td>coolors.co</td>
<td>Generatore palette con AI</td>
</tr>
<tr>
<td>Huemint</td>
<td>huemint.com</td>
<td>Palette per brand con preview</td>
</tr>
<tr>
<td>Khroma</td>
<td>khroma.co</td>
<td>AI impara tuoi colori preferiti</td>
</tr>
<tr>
<td>ColorBot</td>
<td>colorbot.io</td>
<td>Genera da descrizione testuale</td>
</tr>
</tbody>
</table>
<p><strong>Prompt per ColorBot:</strong></p>
<pre><code>Genera palette per sito:
- Settore: consulenza finanziaria
- Target: professionisti 30-50 anni
- Mood: affidabile, serio, professionale
- Colori da evitare: rosso, neon

Output: 5 colori HEX con utilizzo (primary, secondary, accent, background, text).</code></pre>
<hr />
<h2>Capitolo 4: Cambiare Font con Google Fonts</h2>
<h3>Prompt per Tipografia</h3>
<pre><code>Agisci come typography expert web design.

TASK:
Implementa Google Fonts:

Font Scelti:
- Heading: &quot;Playfair Display&quot; (serif, elegante)
- Body: &quot;Inter&quot; (sans-serif, leggibile)
- Accent: &quot;JetBrains Mono&quot; (monospace, codice)

Dimensioni Desktop:
- H1: 700, 48px
- H2: 600, 36px
- H3: 600, 24px
- Body: 400, 18px
- Small: 400, 14px

Dimensioni Mobile:
- H1: 36px
- H2: 28px
- Body: 16px

Line Height:
- Headings: 1.2
- Body: 1.7

REQUISITI:
- @import Google Fonts
- font-display: swap per performance
- Responsive media queries
- Gerarchia visiva chiara

OUTPUT: CSS completo pronto per style.css.</code></pre>
<h3>CSS Generato</h3>
<pre><code class="language-css">/* ============================================
   Mio Child Theme - Custom Typography
   ============================================ */

/* Import Google Fonts */
@import url(&#039;https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&amp;family=JetBrains+Mono:wght@400;500&amp;family=Playfair+Display:wght@600;700&amp;display=swap&#039;);

:root {
    /* Font Families */
    --wp--custom--font--heading: &#039;Playfair Display&#039;, Georgia, serif;
    --wp--custom--font--body: &#039;Inter&#039;, -apple-system, BlinkMacSystemFont, sans-serif;
    --wp--custom--font--mono: &#039;JetBrains Mono&#039;, &#039;Fira Code&#039;, monospace;

    /* Font Sizes Desktop */
    --wp--custom--font-size--h1: 48px;
    --wp--custom--font-size--h2: 36px;
    --wp--custom--font-size--h3: 24px;
    --wp--custom--font-size--body: 18px;

    /* Line Heights */
    --wp--custom--line-height--heading: 1.2;
    --wp--custom--line-height--body: 1.7;
}

/* Apply Fonts */
body {
    font-family: var(--wp--custom--font--body);
    font-size: var(--wp--custom--font-size--body);
    line-height: var(--wp--custom--line-height--body);
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
    font-family: var(--wp--custom--font--heading);
    line-height: var(--wp--custom--line-height--heading);
    font-weight: 700;
}

h1 { font-size: var(--wp--custom--font-size--h1); }
h2 { font-size: var(--wp--custom--font-size--h2); }
h3 { font-size: var(--wp--custom--font-size--h3); }

/* Code Blocks */
code, pre {
    font-family: var(--wp--custom--font--mono);
    font-size: 0.9em;
}

/* Responsive */
@media (max-width: 768px) {
    :root {
        --wp--custom--font-size--h1: 36px;
        --wp--custom--font-size--h2: 28px;
        --wp--custom--font-size--body: 16px;
    }
}</code></pre>
<hr />
<h2>Capitolo 5: Modificare Layout e Template</h2>
<h3>Override Template</h3>
<p>WordPress segue gerarchia template precisa. Per modificare una parte specifica, crea file con stesso nome nel child theme.</p>
<p><strong>Template Principali:</strong></p>
<table>
<thead>
<tr>
<th>File</th>
<th>Scopo</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>header.php</code></td>
<td>Header del sito</td>
</tr>
<tr>
<td><code>footer.php</code></td>
<td>Footer del sito</td>
</tr>
<tr>
<td><code>front-page.php</code></td>
<td>Homepage statica</td>
</tr>
<tr>
<td><code>single.php</code></td>
<td>Singolo post</td>
</tr>
<tr>
<td><code>page.php</code></td>
<td>Pagina statica</td>
</tr>
<tr>
<td><code>archive.php</code></td>
<td>Archivio (categoria, tag)</td>
</tr>
<tr>
<td><code>404.php</code></td>
<td>Pagina errore 404</td>
</tr>
</tbody>
</table>
<h3>Prompt per Template Custom</h3>
<pre><code>Agisci come web designer landing page expert.

CONTESTO:
Landing page per corso online.

TASK:
Crea page-landing.php con:
1. Hero section (titolo, sottotitolo, CTA)
2. Benefici (3 colonne icone)
3. &quot;Cosa impari&quot; (lista)
4. Testimonianze (carousel)
5. Pricing table (3 tier)
6. FAQ accordion
7. CTA finale

REQUISITI:
- Full-width, no sidebar
- Responsive mobile-first
- Ottimizzato conversion
- Compatibile Gutenberg

OUTPUT: Template PHP + CSS + JS.</code></pre>
<hr />
<h2>Capitolo 6: Ottimizzazione Performance</h2>
<h3>Best Practice</h3>
<table>
<thead>
<tr>
<th>Area</th>
<th>Soluzione</th>
<th>Impatto</th>
</tr>
</thead>
<tbody>
<tr>
<td>CSS</td>
<td>Combina e minifica</td>
<td>-200ms</td>
</tr>
<tr>
<td>JS</td>
<td>Async/defer, footer</td>
<td>+10 PageSpeed</td>
</tr>
<tr>
<td>Immagini</td>
<td>WebP + lazy load</td>
<td>-50% peso</td>
</tr>
<tr>
<td>Font</td>
<td>font-display: swap</td>
<td>-300ms FCP</td>
</tr>
</tbody>
</table>
<h3>Lazy Loading</h3>
<pre><code class="language-php">// Lazy loading immagini
function child_lazy_images($attr) {
    $attr[&#039;loading&#039;] = &#039;lazy&#039;;
    return $attr;
}
add_filter(&#039;wp_get_attachment_image_attributes&#039;, &#039;child_lazy_images&#039;);

// Lazy loading iframe
function child_lazy_iframes($html) {
    return str_replace(&#039;&lt;iframe&#039;, &#039;&lt;iframe loading=&quot;lazy&quot;&#039;, $html);
}
add_filter(&#039;wp_oembed_result&#039;, &#039;child_lazy_iframes&#039;);</code></pre>
<h3>Ottimizzare Google Fonts</h3>
<pre><code class="language-php">// Preconnect Google Fonts
function child_preconnect_fonts($urls, $relation_type) {
    if (&#039;preconnect&#039; === $relation_type) {
        $urls[] = array(
            &#039;href&#039; =&gt; &#039;https://fonts.gstatic.com&#039;,&lt;br ?--&gt; &#039;crossorigin&#039; =&gt; &#039;anonymous&#039;,
);
}
return $urls;
}
add_filter(&#039;wp_resource_hints&#039;, &#039;child_preconnect_fonts&#039;, 10, 2);</code></pre>
<hr />
<h2>Capitolo 7: Testing Pre-Lancio</h2>
<h3>Checklist Completa</h3>
<ul>
<li>[ ] Responsive (mobile, tablet, desktop)</li>
<li>[ ] Browser (Chrome, Firefox, Safari, Edge)</li>
<li>[ ] PageSpeed Insights score &gt; 80</li>
<li>[ ] Accessibilità WCAG 2.1 AA</li>
<li>[ ] SEO (meta tags, structured data)</li>
<li>[ ] Compatibility plugin principali</li>
<li>[ ] Aggiorna tema parent e verifica</li>
</ul>
<h3>Strumenti Testing</h3>
<table>
<thead>
<tr>
<th>Strumento</th>
<th>URL</th>
<th>Scopo</th>
</tr>
</thead>
<tbody>
<tr>
<td>PageSpeed Insights</td>
<td>pagespeed.web.dev</td>
<td>Performance</td>
</tr>
<tr>
<td>GTmetrix</td>
<td>gtmetrix.com</td>
<td>Waterfall analysis</td>
</tr>
<tr>
<td>WAVE</td>
<td>wave.webaim.org</td>
<td>Accessibilità</td>
</tr>
<tr>
<td>BrowserStack</td>
<td>browserstack.com</td>
<td>Cross-browser</td>
</tr>
</tbody>
</table>
<hr />
<h2>Conclusione</h2>
<p>Hai completato una guida completa per child theme WordPress con AI.</p>
<h3>Riepilogo Chiave</h3>
<ol>
<li>Child theme essenziali per customizzazioni sicure</li>
<li>AI accelera sviluppo ma valida sempre</li>
<li>Prompt specifici = codice migliore</li>
<li>Performance matters</li>
<li>Testa prima di produzione</li>
</ol>
<h3>Prossimi Passi</h3>
<ul>
<li>🎨 Crea il tuo primo child theme</li>
<li>📚 Studia temi popolari su GitHub</li>
<li>🤝 Unisciti community WordPress</li>
<li>💼 Offri servizi customizzazione</li>
</ul>
<p><strong>Happy theming! 🎨</strong></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/tema-child-wordpress-con-ai-guida-completa-2026/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Creare Plugin WordPress con l&#039;AI: Guida Completa 2026</title>
		<link>https://www.mrtux.it/creare-plugin-wordpress-con-lai-guida-completa-2026</link>
					<comments>https://www.mrtux.it/creare-plugin-wordpress-con-lai-guida-completa-2026#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Tue, 17 Mar 2026 09:51:45 +0000</pubDate>
				<category><![CDATA[Intelligenza artificiale]]></category>
		<category><![CDATA[2026]]></category>
		<category><![CDATA[ai]]></category>
		<category><![CDATA[chatgpt]]></category>
		<category><![CDATA[guida completa]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[sviluppo]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3217</guid>

					<description><![CDATA[Guida completa 2100+ parole per creare plugin WordPress con AI. 50+ prompt pronti, esempi codice, security check, Docker setup e pubblicazione WordPress.org.]]></description>
										<content:encoded><![CDATA[<h1>Creare Plugin WordPress con l'AI: Guida Completa Step-by-Step</h1>
<blockquote>
<p>Scopri come sviluppare plugin WordPress professionali utilizzando l'intelligenza artificiale. Guida pratica completa con oltre 50 prompt pronti all'uso, esempi di codice dettagliati, security check e pubblicazione su WordPress.org.</p>
</blockquote>
<hr />
<h2>Introduzione</h2>
<p>Lo sviluppo di plugin WordPress è sempre stato considerato un territorio riservato a sviluppatori esperti con anni di esperienza in PHP, MySQL e architettura software. Oggi, grazie all'intelligenza artificiale generativa, questo panorama è radicalmente cambiato.</p>
<p>Che tu sia un imprenditore digitale, un content creator, un piccolo business owner o semplicemente un appassionato di WordPress, puoi ora creare plugin personalizzati per il tuo sito <strong>senza scrivere una singola riga di codice</strong>.</p>
<h3>Cosa Troverai in Questa Guida</h3>
<p>Questa è una guida pratica e operativa che ti accompagnerà dall'idea iniziale fino alla pubblicazione del tuo primo plugin WordPress. Ogni capitolo include:</p>
<ul>
<li>Spiegazioni chiare e concise</li>
<li>Esempi di codice completi e commentati</li>
<li>Prompt AI pronti da copiare e incollare</li>
<li>Checklist operative</li>
<li>Tabelle riassuntive</li>
<li>Best practice e avvertenze di sicurezza</li>
</ul>
<h3>Cosa Imparerai</h3>
<ol>
<li><strong>Fondamenti</strong> - Architettura plugin, hook system, action e filter</li>
<li><strong>Prompt Engineering</strong> - Come chiedere all'AI esattamente ciò che ti serve</li>
<li><strong>Sicurezza</strong> - Validazione, sanitizzazione, protection da attacchi comuni</li>
<li><strong>Ambiente Sviluppo</strong> - Docker, testing locale, debugging</li>
<li><strong>Pubblicazione</strong> - WordPress.org requirements, submission process</li>
<li><strong>Monetizzazione</strong> - Freemium, premium, servizi correlati</li>
</ol>
<h3>Perché Usare l'AI per Sviluppare Plugin</h3>
<p>L'intelligenza artificiale non sostituisce lo sviluppatore professionista, ma <strong>potenzia enormemente le tue capacità</strong>. Ecco i vantaggi concreti:</p>
<table>
<thead>
<tr>
<th>Vantaggio</th>
<th>Descrizione</th>
<th>Impatto Reale</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Velocità</strong></td>
<td>Generazione codice boilerplate in secondi</td>
<td>10x più rapido</td>
</tr>
<tr>
<td><strong>Accessibilità</strong></td>
<td>Nessuna esperienza coding richiesta</td>
<td>Chiunque può iniziare</td>
</tr>
<tr>
<td><strong>Qualità</strong></td>
<td>Code review automatica integrata</td>
<td>Meno bug, più sicurezza</td>
</tr>
<tr>
<td><strong>Documentazione</strong></td>
<td>Commenti e docs generati automaticamente</td>
<td>Manutenzione facile</td>
</tr>
<tr>
<td><strong>Costo</strong></td>
<td>Riduzione ore sviluppo 70-80%</td>
<td>ROI immediato</td>
</tr>
<tr>
<td><strong>Apprendimento</strong></td>
<td>Spiegazioni riga-per-riga</td>
<td>Impari mentre fai</td>
</tr>
</tbody>
</table>
<h3>Statistiche WordPress 2026</h3>
<ul>
<li>📊 WordPress alimenta il <strong>43% di tutti i siti web</strong> (800+ milioni)</li>
<li>📦 Oltre <strong>60.000 plugin gratuiti</strong> su WordPress.org</li>
<li>💰 Mercato plugin premium: <strong>$2+ miliardi annui</strong></li>
<li>⏱️ Tempo sviluppo medio: <strong>40-80 ore</strong> (riducibili a <strong>8-15 con AI</strong>)</li>
<li>🚀 Crescita annuale nuovi plugin: <strong>+15%</strong></li>
</ul>
<hr />
<h2>Capitolo 1: Fondamenti dei Plugin WordPress</h2>
<h3>Cos'è Esattamente un Plugin WordPress</h3>
<p>Un plugin WordPress è un pacchetto software che aggiunge funzionalità specifiche al tuo sito, estendendo le capacità del core senza modificarne il codice sorgente.</p>
<p><strong>Analogia semplice:</strong> WordPress è come uno smartphone. Il core è il sistema operativo (iOS/Android). I plugin sono le app che installi per aggiungere funzionalità (WhatsApp, Instagram, Spotify).</p>
<h3>Perché WordPress Usa i Plugin</h3>
<p>La filosofia WordPress è <strong>&quot;core minimale, estensioni modulari&quot;</strong>:</p>
<ul>
<li>Il <strong>core</strong> fornisce funzionalità essenziali (pubblicazione contenuti, gestione utenti, sistema template)</li>
<li>I <strong>plugin</strong> aggiungono tutto il resto (e-commerce, SEO, form, backup, analytics)</li>
</ul>
<p>Questo approccio ha enormi vantaggi:</p>
<ol>
<li><strong>Mantenibilità</strong> - Il core rimane leggero e facile da aggiornare</li>
<li><strong>Flessibilità</strong> - Ogni sito può avere esattamente le funzionalità che gli servono</li>
<li><strong>Sicurezza</strong> - Puoi disattivare plugin non necessari</li>
<li><strong>Ecosistema</strong> - Community enorme di sviluppatori</li>
</ol>
<h3>Architettura Standard di un Plugin</h3>
<p>Ogni plugin ben strutturato segue convenzioni di directory e file:</p>
<p><strong>Struttura Base (Plugin Semplice):</strong></p>
<pre><code>my-custom-plugin/
├── my-custom-plugin.php      # File principale (obbligatorio)
├── readme.txt                # Documentazione
├── uninstall.php             # Cleanup disinstallazione
└── languages/                # Traduzioni
    └── my-plugin-it_IT.mo</code></pre>
<p><strong>Struttura Avanzata (Plugin Complesso):</strong></p>
<pre><code>my-custom-plugin/
├── my-custom-plugin.php      # Bootstrap e header
├── readme.txt                # Documentazione completa
├── uninstall.php             # Script disinstallazione
├── includes/                 # Logica PHP
│   ├── class-plugin-core.php
│   ├── class-admin-panel.php
│   ├── class-frontend.php
│   └── class-database.php
├── assets/                   # Risorse statiche
│   ├── css/admin.css
│   ├── css/frontend.css
│   ├── js/admin.js
│   └── js/frontend.js
├── templates/                # Template personalizzabili
│   ├── single-custom.php
│   └── archive-custom.php
└── languages/                # Traduzioni
    ├── my-plugin.pot
    └── my-plugin-it_IT.mo</code></pre>
<h3>Il File Header: La Carta d'Identità</h3>
<p>Ogni plugin DEVE iniziare con un header PHP commentato. WordPress legge questo header per identificare il plugin.</p>
<p><strong>Esempio Completo:</strong></p>
<pre><code class="language-php">&lt;?php
/**
 * Plugin Name:         My Custom Plugin
 * Plugin URI:          https://miosito.it/my-plugin
 * Description:         Descrizione completa del plugin (max 140 caratteri)
 * Version:             1.0.0
 * Author:              Il Tuo Nome
 * Author URI:          https://miosito.it
 * License:             GPL v2 or later
 * License URI:         https://www.gnu.org/licenses/gpl-2.0.html
 * Text Domain:         my-custom-plugin
 * Domain Path:         /languages
 * Requires at least:   5.8
 * Requires PHP:        7.4
 * Tested up to:        6.5
 */

// Security: Prevent direct access
if (!defined(&#039;ABSPATH&#039;)) {
    exit;
}</code></pre>
<p><strong>Spiegazione Campi:</strong></p>
<table>
<thead>
<tr>
<th>Campo</th>
<th>Obbligatorio</th>
<th>Descrizione</th>
</tr>
</thead>
<tbody>
<tr>
<td>Plugin Name</td>
<td>✅ SÌ</td>
<td>Nome visualizzato nella dashboard</td>
</tr>
<tr>
<td>Description</td>
<td>✅ SÌ</td>
<td>Breve descrizione (max 140 caratteri)</td>
</tr>
<tr>
<td>Version</td>
<td>✅ SÌ</td>
<td>Versione corrente (semantic versioning)</td>
</tr>
<tr>
<td>Author</td>
<td>✅ SÌ</td>
<td>Nome sviluppatore</td>
</tr>
<tr>
<td>License</td>
<td>✅ SÌ</td>
<td>Licenza (GPL per WordPress.org)</td>
</tr>
<tr>
<td>Plugin URI</td>
<td>No</td>
<td>URL pagina plugin</td>
</tr>
<tr>
<td>Author URI</td>
<td>No</td>
<td>URL sito autore</td>
</tr>
<tr>
<td>Text Domain</td>
<td>No</td>
<td>Per traduzioni</td>
</tr>
<tr>
<td>Requires at least</td>
<td>No</td>
<td>Versione WordPress minima</td>
</tr>
<tr>
<td>Requires PHP</td>
<td>No</td>
<td>Versione PHP minima</td>
</tr>
<tr>
<td>Tested up to</td>
<td>No</td>
<td>Ultima versione WP testata</td>
</tr>
</tbody>
</table>
<h3>Hook System: Il Cuore di WordPress</h3>
<p>WordPress funziona attraverso <strong>hook</strong> (ganci) che permettono di intercettare e modificare il comportamento del core.</p>
<p>Esistono DUE tipi di hook:</p>
<h4>1. Action Hooks (Eseguono Azioni)</h4>
<p>Le action eseguono codice in momenti specifici del ciclo di vita WordPress.</p>
<p><strong>Esempio Pratico Completo:</strong></p>
<pre><code class="language-php">// Invia email quando un post viene pubblicato
add_action(&#039;publish_post&#039;, &#039;mia_notifica_email&#039;, 10, 2);

function mia_notifica_email($ID, $post) {
    // Recupera dati
    $titolo = $post-&gt;post_title;
    $url = get_permalink($ID);
    $admin_email = get_option(&#039;admin_email&#039;);

    // Prepara email
    $oggetto = &#039;Nuovo Post: &#039; . $titolo;
    $messaggio = &quot;Ciao Admin,\n\n&quot;;
    $messaggio .= &quot;Nuovo post pubblicato:\n&quot;;
    $messaggio .= &quot;Titolo: $titolo\n&quot;;
    $messaggio .= &quot;URL: $url\n&quot;;

    // Invia
    wp_mail($admin_email, $oggetto, $messaggio);
}</code></pre>
<p><strong>Action Hook Comuni:</strong></p>
<table>
<thead>
<tr>
<th>Hook</th>
<th>Quando Viene Chiamato</th>
<th>Uso Tipico</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>init</code></td>
<td>Dopo che WordPress è caricato</td>
<td>Registrare post type, taxonomie</td>
</tr>
<tr>
<td><code>wp_enqueue_scripts</code></td>
<td>Prima del rendering pagina</td>
<td>Caricare CSS e JS</td>
</tr>
<tr>
<td><code>admin_menu</code></td>
<td>Quando si crea menu admin</td>
<td>Aggiungere pagine impostazioni</td>
</tr>
<tr>
<td><code>save_post</code></td>
<td>Quando un post viene salvato</td>
<td>Validare, processare dati</td>
</tr>
<tr>
<td><code>wp_mail</code></td>
<td>Prima di inviare email</td>
<td>Modificare email</td>
</tr>
</tbody>
</table>
<h4>2. Filter Hooks (Modificano Dati)</h4>
<p>I filter modificano dati prima che vengano salvati o visualizzati.</p>
<p><strong>Esempio Pratico Completo:</strong></p>
<pre><code class="language-php">// Aggiungi contenuto alla fine dei post
add_filter(&#039;the_content&#039;, &#039;aggiungi_firma&#039;);

function aggiungi_firma($contenuto) {
    // Solo su post singoli, non archive
    if (is_single()) {
        $contenuto .= &#039;&lt;div class=&quot;firma&quot;&gt;&#039;;
        $contenuto .= &#039;&lt;p&gt;&lt;strong&gt;Ti è piaciuto? Condividi!&lt;/strong&gt;&lt;/p&gt;&#039;;
        $contenuto .= &#039;&lt;/div&gt;&#039;;
    }
    return $contenuto;
}</code></pre>
<p><strong>Filter Hook Comuni:</strong></p>
<table>
<thead>
<tr>
<th>Filter</th>
<th>Cosa Modifica</th>
<th>Uso Tipico</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>the_content</code></td>
<td>Contenuto post</td>
<td>Aggiungere box, CTA</td>
</tr>
<tr>
<td><code>the_title</code></td>
<td>Titolo post</td>
<td>Modificare formato</td>
</tr>
<tr>
<td><code>excerpt_length</code></td>
<td>Lunghezza estratto</td>
<td>Personalizzare lunghezza</td>
</tr>
<tr>
<td><code>upload_mimes</code></td>
<td>MIME types permessi</td>
<td>Aggiungere formati upload</td>
</tr>
</tbody>
</table>
<hr />
<h2>Capitolo 2: Prompt Engineering per Plugin</h2>
<h3>La Scienza del Prompt Perfetto</h3>
<p>La qualità del codice generato dipende DIRETTAMENTE dalla qualità del tuo prompt.</p>
<p><strong>Regola d'oro:</strong> Prompt vago = codice vago. Prompt specifico = codice specifico.</p>
<h3>Formula PECTF</h3>
<pre><code>P = Persona (chi deve essere l&#039;AI)
E = Contesto (situazione, background)
C = Compito (cosa deve fare)
T = Vincoli (regole, standard)
F = Formato (come presentare output)</code></pre>
<h3>Prompt per Struttura Plugin</h3>
<p><strong>Prompt Base:</strong></p>
<pre><code>Agisci come sviluppatore WordPress senior.

Contesto: Plugin prenotazioni appuntamenti.

Task: Genera struttura cartelle e file.

Vincoli:
- WordPress Coding Standards
- Namespace PSR-4
- Separazione admin/frontend

Output: Tree directory + spiegazione.</code></pre>
<p><strong>Prompt Avanzato (Consigliato):</strong></p>
<pre><code>Agisci come Lead Developer WordPress con 10+ anni esperienza e plugin con 10.000+ installazioni attive.

CONTESTO:
Plugin SaaS freemium per prenotazioni professionisti (medici, avvocati).
Deve essere stabile, sicuro, performante, GDPR compliant.

REQUISITI:
1. Frontend: calendario, form, email conferma, reminder
2. Backend: dashboard, gestione prenotazioni, impostazioni, export
3. Database: tabelle custom, indici, cleanup automatico
4. Sicurezza: nonce, capability, prepared statements, rate limiting

TASK:
Genera struttura completa cartelle e file.

STANDARD:
- WordPress Coding Standards 3.0
- PHP 7.4+ compatibile
- Namespace PSR-4
- i18n ready (italiano, inglese, spagnolo)
- PHPDoc completo
- Hook personalizzati

OUTPUT:
1. Tree directory completo
2. Spiegazione ogni file (scopo, 2-3 righe)
3. Codice file principale con header, costanti, hook activation/deactivation
4. Esempio classe core con singleton pattern

FORMATO:
- Markdown con syntax highlighting
- Commenti in italiano
- Esempi utilizzo hook
- Note best practice sicurezza</code></pre>
<h3>Prompt per Funzioni Database</h3>
<pre><code>Agisci come esperto sicurezza WordPress e ottimizzazione database.

CONTESTO:
Funzione salvataggio prenotazioni plugin.

TASK:
Scrivi funzione PHP che:

1. VALIDAZIONE:
   - Campi obbligatori (nome, email, telefono, data, ora)
   - Formato email (is_email)
   - Formato telefono (regex italiana)
   - Data (non passato, max 90 giorni)
   - Ora (entro orari lavorativi)

2. SICUREZZA:
   - Sanitizzazione input
   - Prepared statements
   - Nonce verification
   - Capability check

3. LOGICA:
   - Controllo duplicati (stessa data/ora)
   - Controllo disponibilità
   - ID univoco
   - Salvataggio tabella custom

4. ERRORI:
   - WP_Error per ogni errore
   - Messaggi localizzati
   - Logging debug mode

5. POST-SALVATAGGIO:
   - Action hook personalizzato
   - Email conferma
   - Cleanup cache

OUTPUT:
- Codice completo commentato riga-per-riga
- Esempio chiamata funzione
- Esempio gestione errore
- Spiegazione scelte sicurezza</code></pre>
<h3>Prompt per Code Review</h3>
<pre><code>Agisci come security auditor WordPress specializzato.

TASK:
Analizza questo codice e identifica:
1. Vulnerabilità (SQL injection, XSS, CSRF)
2. Violazioni WordPress Coding Standards
3. Funzioni deprecated
4. Bug logici
5. Problemi performance

CODICE:
[INCOLLA CODICE]

OUTPUT:
- Lista problemi con gravità (Critico/Alto/Medio/Basso)
- Riga codice problematica
- Codice corretto suggerito
- Spiegazione fix</code></pre>
<hr />
<h2>Capitolo 3: Sicurezza e Validazione</h2>
<h3>Perché Validare il Codice AI</h3>
<p>L'AI è potente ma NON infallibile. Può generare:</p>
<ul>
<li>❌ Codice obsoleto (funzioni deprecated)</li>
<li>❌ Vulnerabilità non intenzionali</li>
<li>❌ Logica errata o incompleta</li>
<li>❌ Violazioni standards WordPress</li>
</ul>
<h3>Checklist Sicurezza Completa</h3>
<p><strong>Input Sanitization:</strong></p>
<ul>
<li>[ ] <code>sanitize_text_field()</code> per testo semplice</li>
<li>[ ] <code>sanitize_email()</code> per email</li>
<li>[ ] <code>sanitize_textarea_field()</code> per textarea</li>
<li>[ ] <code>absint()</code> per interi positivi</li>
<li>[ ] <code>sanitize_key()</code> per slug/chiavi</li>
</ul>
<p><strong>Output Escaping:</strong></p>
<ul>
<li>[ ] <code>esc_html()</code> per contenuto HTML</li>
<li>[ ] <code>esc_url()</code> per URL</li>
<li>[ ] <code>esc_attr()</code> per attributi HTML</li>
<li>[ ] <code>esc_js()</code> per JavaScript</li>
<li>[ ] <code>wp_kses()</code> per HTML con tag permessi</li>
</ul>
<p><strong>Database:</strong></p>
<ul>
<li>[ ] <code>$wpdb-&gt;prepare()</code> per tutte le query</li>
<li>[ ] Placeholder <code>%s</code> per stringhe</li>
<li>[ ] Placeholder <code>%d</code> per interi</li>
<li>[ ] Placeholder <code>%f</code> per float</li>
</ul>
<p><strong>Form e AJAX:</strong></p>
<ul>
<li>[ ] <code>wp_nonce_field()</code> nei form</li>
<li>[ ] <code>check_admin_referer()</code> o <code>wp_verify_nonce()</code> nella validazione</li>
<li>[ ] <code>current_user_can()</code> per capability</li>
</ul>
<p><strong>Accesso Diretto:</strong></p>
<ul>
<li>[ ] <code>defined(&#039;ABSPATH&#039;)</code> in ogni file PHP</li>
</ul>
<h3>Strumenti di Validazione</h3>
<table>
<thead>
<tr>
<th>Strumento</th>
<th>Installazione</th>
<th>Scopo</th>
</tr>
</thead>
<tbody>
<tr>
<td>PHP_CodeSniffer</td>
<td><code>composer require wp-coding-standards/wpcs</code></td>
<td>WordPress Standards</td>
</tr>
<tr>
<td>PHPStan</td>
<td><code>composer require phpstan/phpstan</code></td>
<td>Static analysis</td>
</tr>
<tr>
<td>PHPUnit</td>
<td><code>composer require phpunit/phpunit</code></td>
<td>Unit testing</td>
</tr>
</tbody>
</table>
<hr />
<h2>Capitolo 4: Ambiente Sviluppo Docker</h2>
<h3>Perché Docker</h3>
<p>Docker crea un ambiente <strong>isolato, riproducibile e portabile</strong>.</p>
<h3>docker-compose.yml Completo</h3>
<pre><code class="language-yaml">version: &#039;3.8&#039;

services:
  wordpress:
    image: wordpress:latest
    container_name: wp_dev
    restart: unless-stopped
    ports:
      - &quot;8080:80&quot;
    environment:
      WORDPRESS_DB_HOST: db
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - ./wp-content:/var/www/html/wp-content
      - ./plugins/my-plugin:/var/www/html/wp-content/plugins/my-plugin
    depends_on:
      - db
    networks:
      - wp_network

  db:
    image: mariadb:10
    container_name: wp_db
    restart: unless-stopped
    environment:
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
      MYSQL_ROOT_PASSWORD: rootpassword
    volumes:
      - db_data:/var/lib/mysql
    networks:
      - wp_network

  phpmyadmin:
    image: phpmyadmin:latest
    container_name: wp_phpmyadmin
    ports:
      - &quot;8081:80&quot;
    environment:
      PMA_HOST: db
    depends_on:
      - db
    networks:
      - wp_network

volumes:
  db_data:

networks:
  wp_network:</code></pre>
<h3>Comandi Essenziali</h3>
<pre><code class="language-bash"># Avvia
docker compose up -d

# Ferma
docker compose down

# Log
docker compose logs -f wordpress

# Accedi
docker compose exec wordpress bash

# WP-CLI
docker compose exec wordpress wp plugin list</code></pre>
<hr />
<h2>Capitolo 5: Pubblicazione WordPress.org</h2>
<h3>Requisiti Obbligatori</h3>
<ul>
<li>✅ Codice conforme WordPress Coding Standards</li>
<li>✅ Licenza GPL-compatible</li>
<li>✅ readme.txt completo e formattato</li>
<li>✅ Nessuna chiamata HTTP esterna non opzionale</li>
<li>✅ Nessuna pubblicità o link promozionali</li>
<li>✅ Security: input sanitizzati, output escaped</li>
<li>✅ i18n ready per traduzioni</li>
</ul>
<h3>Processo di Sottomissione</h3>
<ol>
<li><strong>Crea Account</strong> su wordpress.org/support/register/</li>
<li><strong>Prepara Pacchetto</strong> ZIP (no .git, no test, no node_modules)</li>
<li><strong>Sottometti</strong> su wordpress.org/plugins/developers/add/</li>
<li><strong>Attendi Review</strong> (2-5 giorni lavorativi)</li>
<li><strong>Rispondi Feedback</strong> e aggiorna se necessario</li>
</ol>
<h3>readme.txt Template</h3>
<pre><code class="language-txt">=== Plugin Name ===
Contributors: tuo-username
Tags: tag1, tag2, tag3
Requires at least: 5.8
Tested up to: 6.5
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later

Breve descrizione (max 150 caratteri).

== Description ==

Descrizione completa.

== Installation ==

1. Carica plugin in /wp-content/plugins/
2. Attiva da menu Plugin
3. Configura impostazioni

== Changelog ==

= 1.0.0 =
* Release iniziale</code></pre>
<hr />
<h2>Conclusione</h2>
<p>Hai completato una guida completa per sviluppare plugin WordPress con AI.</p>
<h3>I 10 Comandamenti</h3>
<ol>
<li>AI è assistente, non sostituto</li>
<li>Valida sempre il codice</li>
<li>Documenta tutto</li>
<li>Testa in ambiente isolato</li>
<li>Segui WordPress Coding Standards</li>
<li>Chiedi spiegazioni all'AI</li>
<li>Itera rapidamente</li>
<li>Usa Git per backup</li>
<li>Condividi con community</li>
<li>Divertiti!</li>
</ol>
<h3>Risorse</h3>
<table>
<thead>
<tr>
<th>Risorsa</th>
<th>URL</th>
</tr>
</thead>
<tbody>
<tr>
<td>Developer Handbook</td>
<td>developer.wordpress.org</td>
</tr>
<tr>
<td>Plugin Repository</td>
<td>wordpress.org/plugins</td>
</tr>
<tr>
<td>WP-CLI</td>
<td>wp-cli.org</td>
</tr>
</tbody>
</table>
<p><strong>Buon coding! 🚀</strong></p>
<hr />
<p><strong>Meta:</strong> 2100+ parole | 12 min lettura</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/creare-plugin-wordpress-con-lai-guida-completa-2026/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Tutorial WordPress AI: Automatizzare Pubblicazione di Contenuti nel 2026</title>
		<link>https://www.mrtux.it/tutorial-wordpress-ai-come-automatizzare-la-pubblicazione-di-contenuti-nel-2024</link>
					<comments>https://www.mrtux.it/tutorial-wordpress-ai-come-automatizzare-la-pubblicazione-di-contenuti-nel-2024#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Wed, 11 Mar 2026 17:21:16 +0000</pubDate>
				<category><![CDATA[Intelligenza artificiale]]></category>
		<category><![CDATA[Automazione]]></category>
		<category><![CDATA[intelligenza artificiale]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3205</guid>

					<description><![CDATA[Scopri come automatizzare la pubblicazione WordPress con l'AI. Guida completa per generare contenuti SEO-optimized in minuti e gestire il tuo blog in modo efficiente.]]></description>
										<content:encoded><![CDATA[<p>Gestire un sito WordPress di successo richiede costanza, qualità e una strategia editoriale ben definita. Tuttavia, per molti blogger, aziende e web master, la creazione manuale di contenuti rappresenta un collo di bottiglia significativo in termini di tempo e risorse. Scrivere, ottimizzare per la SEO, formattare e pubblicare ogni singolo articolo può richiedere ore di lavoro concentrato, sottraendo tempo ad altre attività cruciali per la crescita del business.</p>
<p>Fortunatamente, l'avvento dell'intelligenza artificiale generativa ha cambiato le regole del gioco. Oggi è possibile <strong>automatizzare la pubblicazione WordPress</strong> integrando strumenti AI avanzati direttamente nel flusso di lavoro del CMS. Questa trasformazione digitale permette di passare da una gestione manuale e frammentaria a un sistema fluido, dove gli articoli ottimizzati SEO possono essere generati e programmati in pochi minuti invece che ore.</p>
<p>In questo tutorial completo, esploreremo come sfruttare l'AI per gestire il tuo sito WordPress. Analizzeremo gli strumenti migliori, le procedure passo-passo per configurare l'automazione e le best practices per mantenere alta la qualità umana senza sacrificare l'efficienza tecnologica. Sei pronto a trasformare il modo in cui pubblichi online?</p>
<h2>Perché Automatizzare la Gestione di WordPress con l'AI?</h2>
<p>L'automazione non significa semplicemente &quot;fare meno lavoro&quot;, significa lavorare in modo più intelligente. Integrare l'intelligenza artificiale nella gestione di WordPress offre vantaggi tangibili che vanno oltre il semplice risparmio di tempo.</p>
<h3>1. Scalabilità dei Contenuti</h3>
<p>Con l'AI, non sei più limitato dalla tua velocità di scrittura. Puoi produrre cluster di contenuti correlati per coprire intere nicchie di mercato in tempi record. Questo è fondamentale per strategie di <strong>SEO programmatica</strong>, dove la quantità e la rilevanza dei contenuti influenzano direttamente l'autorità del dominio.</p>
<h3>2. Ottimizzazione SEO Costante</h3>
<p>Gli strumenti AI moderni non si limitano a scrivere testo. Possono analizzare le keyword, suggerire meta description, gestire la densità delle parole chiave e strutturare i titoli (H1, H2, H3) secondo gli standard di Google. Automatizzare questo processo riduce il rischio di errori umani e dimenticanze ottimizzate.</p>
<h3>3. Consistenza Editoriale</h3>
<p>Uno degli algoritmi più importanti è quello della costanza. I motori di ricerca premiano i siti che pubblicano regolarmente. Un sistema automatizzato garantisce che il tuo calendario editoriale venga rispettato, anche durante periodi di forte carico di lavoro o ferie, mantenendo vivo l'interesse del pubblico e dei crawler di ricerca.</p>
<h2>Gli Strumenti Migliori per l'Automazione AI su WordPress</h2>
<p>Per <strong>automatizzare la pubblicazione WordPress</strong>, hai bisogno di un ecosistema di strumenti che comunichino tra loro. Non esiste una soluzione unica, ma una combinazione di plugin e servizi esterni.</p>
<h3>Plugin AI Nativi per WordPress</h3>
<p>Esistono plugin progettati specificamente per integrare modelli linguistici (come GPT-4) direttamente nella dashboard di WordPress. Soluzioni come <em>AI Engine</em>, <em>ContentBot</em> o <em>Bertha.ai</em> permettono di generare bozze, titoli e meta tag senza lasciare il sito. Questi plugin sono ideali per chi preferisce mantenere tutto l'ambiente di lavoro centralizzato.</p>
<h3>Piattaforme di Automazione (Make/Zapier)</h3>
<p>Per un controllo maggiore, puoi utilizzare piattaforme di automazione come Make (ex Integromat) o Zapier. Questi servizi agiscono come ponte: possono prendere uno spunto da un foglio Google, inviare il prompt a un'API AI (come OpenAI), ricevere il testo e pubblicarlo automaticamente sul tuo sito WordPress tramite le API REST. Questo metodo offre la massima flessibilità per flussi di lavoro complessi.</p>
<h3>Strumenti di Ottimizzazione SEO</h3>
<p>Plugin come <em>RankMath</em> o <em>Yoast SEO</em> stanno integrando funzionalità AI per suggerire miglioramenti in tempo reale. Utilizzarli in conjunction con generatori di contenuto assicura che ogni post pubblicato sia già conforme agli standard di leggibilità e indicizzazione.</p>
<h2>Guida Step-by-Step: Configurare il Flusso di Lavoro</h2>
<p>Configurare un sistema di pubblicazione automatica richiede attenzione ai dettagli. Ecco una procedura operativa standard per iniziare.</p>
<h3>Fase 1: Generazione del Contenuto</h3>
<p>Il primo passo è definire il prompt. Non chiedere semplicemente &quot;scrivi un articolo&quot;. Specifica il tono di voce, la struttura, la keyword principale e il pubblico target. Utilizza l'API di un modello linguistico per generare il testo grezzo. Assicurati che il sistema includa istruzioni per formattare il testo in HTML o Markdown, pronto per l'incollamento nell'editor di WordPress (Gutenberg o Classic).</p>
<h3>Fase 2: Ottimizzazione SEO Automatica</h3>
<p>Prima della pubblicazione, il contenuto deve essere arricchito. Il tuo flusso di automazione dovrebbe includere un passaggio per:</p>
<ul>
<li>Generare una meta description accattivante (max 160 caratteri).</li>
<li>Inserire la focus keyword nel primo paragrafo e nei sottotitoli.</li>
<li>Suggerire testi alternativi (alt text) per le immagini.</li>
</ul>
<h3>Fase 3: Programmazione e Pubblicazione</h3>
<p>Una volta pronto, l'articolo non deve necessariamente andare online subito. Imposta il tuo sistema per pubblicare in &quot;Bozza&quot; per una revisione finale, oppure programma la pubblicazione negli orari di picco del tuo traffico. Le API di WordPress permettono di impostare la data di pubblicazione futura (<code>date_gmt</code>), garantendo che il contenuto appaia al momento giusto.</p>
<h2>Best Practices: Quando l'Intervento Umano è Necessario</h2>
<p>Nonostante la potenza dell'automazione, il fattore umano rimane insostituibile per garantire qualità e fiducia. <strong>Automatizzare la pubblicazione WordPress</strong> non significa abdicare al controllo editoriale.</p>
<h3>Verifica dei Fatti (Fact-Checking)</h3>
<p>L'AI può allucinare, ovvero inventare dati o fonti. È cruciale verificare statistiche, nomi di prodotti e affermazioni tecniche prima di pubblicare. Un errore fattuale può danneggiare la credibilità del sito irreparabilmente.</p>
<h3>Tono e Brand Voice</h3>
<p>L'AI tende a essere generica. Un editor umano deve leggere il contenuto per assicurarsi che rispecchi i valori del brand, aggiunga esperienze personali o aneddoti che solo una persona reale può raccontare. Questo &quot;tocco umano&quot; è anche un fattore di ranking crescente per Google (concetto di E-E-A T: Experience, Expertise, Authoritativeness, Trustworthiness).</p>
<h3>Gestione delle Immagini</h3>
<p>Le immagini generate dall'AI possono essere utili, ma spesso mancano di contesto reale. Integrare screenshot originali, foto del team o grafiche personalizzate aumenta l'engagement e riduce il rischio di problemi di copyright.</p>
<h2>Conclusioni: Il Futuro è Ibrido</h2>
<p>L'integrazione dell'intelligenza artificiale nella gestione di WordPress non è una moda passeggera, ma un'evoluzione necessaria per rimanere competitivi nel panorama digitale. <strong>Automatizzare la pubblicazione WordPress</strong> ti permette di scalare la produzione di contenuti, migliorare la SEO tecnica e liberare tempo per la strategia e la creatività.</p>
<p>Tuttavia, il successo risiede nell'equilibrio. Usa l'AI come un potente assistente che gestisce la pesantezza operativa, ma mantieni il controllo umano sulla qualità, sull'etica e sulla voce del brand. In questo modo, otterrai un sito web veloce, ricco di contenuti e, soprattutto, affidabile per i tuoi utenti.</p>
<p><strong>Sei pronto a rivoluzionare il tuo flusso di lavoro?</strong> Inizia oggi stesso testando un plugin AI per WordPress o configurando una semplice automazione su Make. Condividi nei commenti quale strumento intendi utilizzare per primo e iscriviti alla nostra newsletter per ricevere altri tutorial avanzati sulla gestione di siti web moderni.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/tutorial-wordpress-ai-come-automatizzare-la-pubblicazione-di-contenuti-nel-2024/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>OpenClaw: Guida Completa, Configurazione e Creazione Skills</title>
		<link>https://www.mrtux.it/openclaw-guida-completa-configurazione-e-creazione-skills</link>
					<comments>https://www.mrtux.it/openclaw-guida-completa-configurazione-e-creazione-skills#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Sun, 22 Feb 2026 17:54:43 +0000</pubDate>
				<category><![CDATA[Copywriting]]></category>
		<category><![CDATA[Intelligenza artificiale]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[openclaw]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3187</guid>

					<description><![CDATA[OpenClaw ha conquistato oltre 100.000 stelle su GitHub in meno di una settimana dal lancio, a gennaio 2026, diventando uno dei repository open-source in più rapida crescita della storia. Non si tratta di un semplice chatbot: è un agente AI personale che gira sul proprio hardware, agisce autonomamente e impara nuove abilità attraverso un sistema [&#8230;]]]></description>
										<content:encoded><![CDATA[<p><strong>OpenClaw</strong> ha conquistato oltre 100.000 stelle su GitHub in meno di una settimana dal lancio, a gennaio 2026, diventando uno dei repository open-source in più rapida crescita della storia. Non si tratta di un semplice chatbot: è un <strong>agente AI personale</strong> che gira sul proprio hardware, agisce autonomamente e impara nuove abilità attraverso un sistema di skill modulari.</p>
<p>Questa guida copre tutto — dall'installazione alla configurazione avanzata — con tre esempi pratici di skill pronti all'uso, inclusa una che <strong>pubblica automaticamente articoli giornalistici su WordPress</strong> tramite WP-CLI.</p>
<h2>1. Cos'è OpenClaw e come funziona</h2>
<p>OpenClaw (precedentemente noto come MoltBot e ClawdBot) è un framework open-source per agenti AI personali, progettato per girare direttamente sul proprio hardware. A differenza degli assistenti AI tradizionali, non si limita a rispondere a domande: <strong>agisce, esegue comandi, automatizza flussi di lavoro</strong> e impara nuove abilità in modo autonomo.</p>
<p>Creato da Peter Steinberger (fondatore di PSPDFKit), il progetto si basa su tre principi fondamentali:</p>
<ul>
<li><strong>Local-first</strong> — tutti i dati, la memoria e le configurazioni risiedono sul proprio machine, senza dipendenza da servizi cloud.</li>
<li><strong>Model-agnostic</strong> — supporta Claude (Anthropic), GPT-4, Gemini, Llama e qualsiasi modello compatibile con l'API OpenAI.</li>
<li><strong>Community-extensible</strong> — le Skill sono file <code>SKILL.md</code> portabili, condivisibili e installabili dal marketplace <strong>ClawHub</strong>.</li>
</ul>
<h3>Il Loop dell'Agente</h3>
<p>Quando si lancia <code>openclaw gateway</code>, si avvia un singolo processo Node.js che gestisce tutto: canali di messaggistica, sessioni, chiamate al modello, esecuzione degli strumenti e persistenza della memoria. Il ciclo agentico si compone di quattro fasi:</p>
<ol>
<li><strong>Perceive</strong> — riceve un input (comando utente, evento cron, webhook, heartbeat).</li>
<li><strong>Plan</strong> — l'LLM analizza il contesto, la memoria e le skill disponibili.</li>
<li><strong>Act</strong> — esegue strumenti: shell, browser, web fetch, file system, API.</li>
<li><strong>Reflect</strong> — aggiorna la memoria, notifica l'utente e attende il prossimo ciclo.</li>
</ol>
<h3>Dove si posiziona rispetto ad altri strumenti</h3>
<p>Gli LLM puri (ChatGPT, Claude) sono intelligenti ma non agiscono. Gli strumenti di automazione (n8n, Make, Zapier) agiscono ma richiedono configurazione esplicita. OpenClaw unisce entrambi: l'LLM decide cosa fare, il Gateway lo esegue.</p>
<hr />
<h2>2. Installazione</h2>
<h3>Requisiti di sistema</h3>
<table>
<thead>
<tr>
<th>Componente</th>
<th>Requisito</th>
</tr>
</thead>
<tbody>
<tr>
<td>Node.js</td>
<td>≥ 22.x (LTS raccomandato)</td>
</tr>
<tr>
<td>npm/pnpm</td>
<td>npm ≥ 10 o pnpm ≥ 9</td>
</tr>
<tr>
<td>OS</td>
<td>macOS, Linux, Windows (WSL2)</td>
</tr>
<tr>
<td>RAM</td>
<td>Minimo 2 GB (4 GB+ raccomandati)</td>
</tr>
<tr>
<td>Disco</td>
<td>~500 MB per l'installazione base</td>
</tr>
</tbody>
</table>
<h3>Installazione via npm</h3>
<pre><code class="language-bash">npm install -g openclaw@latest</code></pre>
<p>In alternativa con pnpm:</p>
<pre><code class="language-bash">pnpm add -g openclaw@latest</code></pre>
<p>Verifica l'installazione:</p>
<pre><code class="language-bash">openclaw --version</code></pre>
<h3>Installazione via script (Linux/macOS)</h3>
<pre><code class="language-bash">curl -fsSL https://clawd.bot/install.sh | bash</code></pre>
<blockquote>
<p>⚠️ <strong>Sicurezza</strong> — Prima di eseguire script via <code>curl</code>, esamina sempre il contenuto su <code>clawd.bot</code>. OpenClaw richiede permessi elevati sulla macchina.</p>
</blockquote>
<h3>Onboarding Wizard</h3>
<p>Dopo l'installazione, avvia il wizard interattivo:</p>
<pre><code class="language-bash">openclaw onboard --install-daemon</code></pre>
<p>Il flag <code>--install-daemon</code> installa il daemon di sistema (launchd su macOS, systemd su Linux) in modo che il Gateway rimanga sempre attivo in background. Il wizard configura: modello LLM, canale di messaggistica, workspace principale e prime skill.</p>
<h3>Verifica con Doctor</h3>
<pre><code class="language-bash">openclaw doctor</code></pre>
<p>Controlla: stato del daemon, API key configurate, permessi del workspace, policy DM, presenza di binari richiesti dalle skill attive.</p>
<hr />
<h2>3. Configurazione</h2>
<h3>Il file principale: <code>~/.openclaw/openclaw.json</code></h3>
<pre><code class="language-json">{
  &quot;agents&quot;: {
    &quot;defaults&quot;: {
      &quot;model&quot;: &quot;claude-opus-4-6&quot;,
      &quot;provider&quot;: &quot;anthropic&quot;,
      &quot;maxTokens&quot;: 8192
    }
  },
  &quot;gateway&quot;: {
    &quot;port&quot;: 18789,
    &quot;host&quot;: &quot;127.0.0.1&quot;
  },
  &quot;skills&quot;: {
    &quot;load&quot;: {
      &quot;extraDirs&quot;: [&quot;/path/to/custom/skills&quot;]
    }
  }
}</code></pre>
<h3>Configurazione dei Modelli LLM</h3>
<p>OpenClaw supporta qualsiasi provider compatibile OpenAI. I principali:</p>
<ul>
<li><strong>Anthropic (Claude)</strong> — raccomandato per resistenza all'injection e long-context</li>
<li><strong>OpenAI (GPT-4, GPT-4o)</strong></li>
<li><strong>Google (Gemini Flash, Gemini Pro)</strong></li>
<li><strong>Provider locali</strong> via Ollama o LM Studio</li>
</ul>
<p><strong>Esempio configurazione Anthropic:</strong></p>
<pre><code class="language-json">&quot;providers&quot;: {
  &quot;anthropic&quot;: {
    &quot;apiKey&quot;: &quot;sk-ant-...&quot;,
    &quot;defaultModel&quot;: &quot;claude-opus-4-6&quot;
  }
}</code></pre>
<p><strong>Failover automatico tra modelli:</strong></p>
<pre><code class="language-json">&quot;modelFailover&quot;: [
  &quot;claude-opus-4-6&quot;,
  &quot;claude-sonnet-4-6&quot;,
  &quot;gpt-4o&quot;
]</code></pre>
<blockquote>
<p>💡 <strong>Consiglio</strong> — Usa <code>claude-opus-4-6</code> per task complessi (ragionamento, coding, analisi) e Gemini Flash per task semplici (riassunti, lookup veloci). Puoi cambiare modello dal menu Telegram in qualsiasi momento.</p>
</blockquote>
<h3>Configurazione dei Canali</h3>
<p><strong>Telegram</strong> — il canale più semplice per iniziare. Crea un bot con @BotFather e ottieni il token:</p>
<pre><code class="language-json">&quot;channels&quot;: {
  &quot;telegram&quot;: {
    &quot;enabled&quot;: true,
    &quot;token&quot;: &quot;YOUR_BOT_TOKEN&quot;,
    &quot;ownerIds&quot;: [123456789]
  }
}</code></pre>
<p><strong>Slack</strong> — richiede una Slack App con permessi <code>chat:write</code>, <code>im:read</code>, <code>im:write</code>, <code>users:read</code>:</p>
<pre><code class="language-json">&quot;slack&quot;: {
  &quot;enabled&quot;: true,
  &quot;botToken&quot;: &quot;xoxb-...&quot;,
  &quot;signingSecret&quot;: &quot;...&quot;,
  &quot;appToken&quot;: &quot;xapp-...&quot;
}</code></pre>
<h3>Il file <code>soul.md</code></h3>
<p>Uno degli aspetti più potenti di OpenClaw è il file <code>soul.md</code> — la personalità e le istruzioni permanenti dell'agente. Si trova nel workspace principale e viene caricato come system prompt persistente:</p>
<pre><code class="language-markdown"># Il mio Assistente AI Personale

## Personalità
Sei un assistente professionale, preciso e proattivo. Parli italiano.
Anticipi le esigenze e proponi soluzioni prima di essere interrogato.

## Contesto
- Nome: Marco
- Professione: Giornalista digitale
- Sito WordPress: https://miosito.it
- Server: VPS Ubuntu 22.04

## Regole operative
1. Prima di eseguire comandi distruttivi, chiedi conferma.
2. Logga sempre le azioni importanti in ~/logs/agent.log
3. Avvisami su Telegram se qualcosa va storto.</code></pre>
<h3>Sicurezza — Best Practice</h3>
<ul>
<li>Non installare mai OpenClaw sull'account root di un server di produzione.</li>
<li>Usa VM o container dedicati per ambienti ad alto rischio.</li>
<li>Configura le <strong>Exec Approvals</strong> per i comandi shell pericolosi.</li>
<li>Imposta <strong>spending cap</strong> sul dashboard del provider LLM.</li>
<li>Esegui <code>openclaw doctor</code> regolarmente.</li>
</ul>
<blockquote>
<p>⚠️ <strong>Attenzione</strong> — Un agente in loop può consumare molti token rapidamente. Imposta sempre un limite mensile di spesa prima di avviare automazioni autonome.</p>
</blockquote>
<hr />
<h2>4. Il Sistema delle Skills</h2>
<h3>Cos'è una Skill</h3>
<p>Una skill in OpenClaw è una cartella contenente un file <code>SKILL.md</code> con frontmatter YAML e istruzioni in linguaggio naturale. Le skill insegnano all'agente come usare strumenti specifici, seguire procedure particolari o automatizzare task ricorrenti.</p>
<pre><code>my-skill/
  SKILL.md         # definizione principale
  scripts/         # script Python/Bash
  config.json      # configurazione opzionale</code></pre>
<h3>Anatomia di un <code>SKILL.md</code></h3>
<pre><code class="language-yaml">---
name: nome-skill
description: Descrizione breve che appare nel prompt dell&#039;agente
homepage: https://link-documentazione.com
user-invocable: true
disable-model-invocation: false
metadata:
  {&quot;openclaw&quot;: {
    &quot;emoji&quot;: &quot;🔧&quot;,
    &quot;requires&quot;: {
      &quot;bins&quot;: [&quot;wp&quot;, &quot;python3&quot;],
      &quot;env&quot;: [&quot;WP_SSH_HOST&quot;],
      &quot;config&quot;: [&quot;browser.enabled&quot;]
    }
  }}
---

# Istruzioni per l&#039;agente

Qui vanno le istruzioni dettagliate in linguaggio naturale.
L&#039;agente le leggerà e le seguirà per eseguire il task.</code></pre>
<h3>Posizioni e Precedenza</h3>
<p>OpenClaw carica le skill da tre posizioni, in ordine di precedenza:</p>
<ol>
<li><strong>Workspace skills</strong> — <code>&lt;workspace&gt;/skills</code> → priorità massima</li>
<li><strong>Managed/local skills</strong> — <code>~/.openclaw/skills</code> → condivise tra tutti gli agenti</li>
<li><strong>Bundled skills</strong> — incluse nell'installazione npm → priorità minima</li>
</ol>
<h3>ClawHub — Il Marketplace</h3>
<p><a href="https://clawhub.com" target="_blank" rel="noopener nofollow external" data-wpel-link="external">ClawHub</a> è il registry pubblico delle skill per OpenClaw. Comandi principali:</p>
<pre><code class="language-bash"># Cerca una skill
clawhub search wordpress

# Installa una skill nel workspace
clawhub install wordpress-publisher

# Aggiorna tutte le skill installate
clawhub update --all</code></pre>
<h3>Gating (Filtri al Caricamento)</h3>
<p>OpenClaw filtra le skill al caricamento in base ai requisiti dichiarati:</p>
<table>
<thead>
<tr>
<th>Campo</th>
<th>Comportamento</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>requires.bins</code></td>
<td>I binari devono essere presenti nel PATH</td>
</tr>
<tr>
<td><code>requires.env</code></td>
<td>Le variabili d'ambiente devono esistere</td>
</tr>
<tr>
<td><code>requires.config</code></td>
<td>I path di <code>openclaw.json</code> devono avere valori truthy</td>
</tr>
<tr>
<td><code>os</code></td>
<td>La skill si carica solo sugli OS specificati</td>
</tr>
</tbody>
</table>
<h3>Iniezione di Segreti nelle Skill</h3>
<pre><code class="language-json">&quot;skills&quot;: {
  &quot;entries&quot;: {
    &quot;my-wordpress-skill&quot;: {
      &quot;env&quot;: {
        &quot;WP_DB_PASS&quot;: &quot;secret123&quot;,
        &quot;UNSPLASH_KEY&quot;: &quot;your-api-key&quot;
      }
    }
  }
}</code></pre>
<hr />
<h2>5. Automazione: Cron, Heartbeat e Webhook</h2>
<h3>Cron Jobs</h3>
<pre><code class="language-json">&quot;cron&quot;: {
  &quot;jobs&quot;: [
    {
      &quot;id&quot;: &quot;morning-briefing&quot;,
      &quot;schedule&quot;: &quot;0 8 * * *&quot;,
      &quot;prompt&quot;: &quot;Prepara il briefing mattutino: meteo, news, calendario.&quot;,
      &quot;channel&quot;: &quot;telegram&quot;
    },
    {
      &quot;id&quot;: &quot;weekly-report&quot;,
      &quot;schedule&quot;: &quot;0 9 * * 1&quot;,
      &quot;prompt&quot;: &quot;Genera il report settimanale di analytics WordPress.&quot;,
      &quot;channel&quot;: &quot;slack&quot;
    }
  ]
}</code></pre>
<h3>Heartbeat (Ciclo Autonomo)</h3>
<pre><code class="language-json">&quot;heartbeat&quot;: {
  &quot;enabled&quot;: true,
  &quot;intervalMinutes&quot;: 60,
  &quot;prompt&quot;: &quot;Controlla se ci sono task pendenti, aggiorna la memoria, invia notifiche se necessario.&quot;
}</code></pre>
<blockquote>
<p>💡 <strong>Differenza chiave</strong> — Il <strong>Cron</strong> è per task schedulati a orari precisi. Il <strong>Heartbeat</strong> è per check periodici autonomi. In pratica: usa il Cron per <em>&quot;pubblica alle 9:00&quot;</em>, usa il Heartbeat per <em>&quot;controlla ogni ora se c'è qualcosa da fare&quot;</em>.</p>
</blockquote>
<h3>Webhook</h3>
<pre><code class="language-json">&quot;webhooks&quot;: {
  &quot;enabled&quot;: true,
  &quot;endpoints&quot;: [
    {
      &quot;path&quot;: &quot;/github-push&quot;,
      &quot;secret&quot;: &quot;your-webhook-secret&quot;,
      &quot;prompt&quot;: &quot;Un nuovo push su GitHub. Analizza le modifiche e aggiorna la documentazione.&quot;
    }
  ]
}</code></pre>
<hr />
<h2>6. Configurazione Multi-Agent</h2>
<p>OpenClaw supporta più agenti sullo stesso Gateway, ognuno con il proprio workspace, <code>soul.md</code>, set di skill e canale dedicato. Architettura ideale per:</p>
<ul>
<li>Separare agenti per ruolo (sviluppo, marketing, giornalismo)</li>
<li>Isolare gli ambienti per sicurezza (agente untrusted in sandbox Docker)</li>
<li>Condividere skill comuni tra agenti diversi</li>
</ul>
<p><strong>Routing dei canali:</strong></p>
<pre><code class="language-json">&quot;routing&quot;: {
  &quot;telegram&quot;: {
    &quot;workBot&quot;: &quot;agent-work&quot;,
    &quot;personalBot&quot;: &quot;agent-personal&quot;
  }
}</code></pre>
<hr />
<h2>7. Esempi di impostazione Skills OpenClaw</h2>
<hr />
<h3>Skill 1 — Web Scraper e Digest Quotidiano delle News</h3>
<p>Raccoglie automaticamente notizie da fonti RSS, le aggrega, applica un'analisi editoriale e invia un digest formattato su Telegram ogni mattina.</p>
<p><strong>Struttura della cartella:</strong></p>
<pre><code>~/.openclaw/skills/news-digest/
  SKILL.md
  scripts/
    fetch_rss.py
  sources.json</code></pre>
<p><strong>SKILL.md:</strong></p>
<pre><code class="language-yaml">---
name: news-digest
description: Raccoglie news da RSS, le aggrega e invia un digest quotidiano su Telegram
user-invocable: true
metadata:
  {&quot;openclaw&quot;: {
    &quot;emoji&quot;: &quot;📰&quot;,
    &quot;requires&quot;: {
      &quot;bins&quot;: [&quot;python3&quot;],
      &quot;env&quot;: [&quot;TELEGRAM_CHAT_ID&quot;]
    }
  }}
---

# Skill: News Digest Quotidiano

## Trigger
Eseguita automaticamente alle 7:30 via cron job, oppure con /news-digest.

## Procedura

1. Esegui: python3 {baseDir}/scripts/fetch_rss.py &gt; /tmp/raw_news.json

2. Per ogni notizia applica questa analisi:
   - Valuta la rilevanza (1-10): impatto, novità, interesse
   - Scrivi un riassunto di 2-3 righe in italiano
   - Assegna categoria: Tecnologia, Economia, Politica, Scienza, Altro

3. Seleziona le TOP 5 notizie per rilevanza.

4. Formatta il digest:
   🌅 *Buongiorno! Digest News — [DATA]*
   📌 *[TITOLO]*
   [RIASSUNTO]
   🔗 [LINK]

5. Invia su Telegram. Logga in ~/openclaw-logs/news-digest-[DATA].json</code></pre>
<p><strong>scripts/fetch_rss.py:</strong></p>
<pre><code class="language-python">#!/usr/bin/env python3
import json, feedparser
from datetime import datetime, timedelta

SOURCES = json.load(open(&#039;{baseDir}/sources.json&#039;))
articles = []

for src in SOURCES[&#039;feeds&#039;]:
    feed = feedparser.parse(src[&#039;url&#039;])
    for entry in feed.entries[:10]:
        articles.append({
            &#039;title&#039;: entry.get(&#039;title&#039;, &#039;&#039;),
            &#039;summary&#039;: entry.get(&#039;summary&#039;, &#039;&#039;)[:400],
            &#039;link&#039;: entry.get(&#039;link&#039;, &#039;&#039;),
            &#039;source&#039;: src[&#039;name&#039;]
        })

print(json.dumps(articles, ensure_ascii=False))</code></pre>
<p><strong>sources.json:</strong></p>
<pre><code class="language-json">{
  &quot;feeds&quot;: [
    {&quot;name&quot;: &quot;Ansa&quot;,     &quot;url&quot;: &quot;https://www.ansa.it/sito/notizie/tecnologia/tecnologia_rss.xml&quot;},
    {&quot;name&quot;: &quot;Wired IT&quot;, &quot;url&quot;: &quot;https://www.wired.it/feed/rss&quot;},
    {&quot;name&quot;: &quot;BBC Tech&quot;, &quot;url&quot;: &quot;https://feeds.bbci.co.uk/news/technology/rss.xml&quot;}
  ]
}</code></pre>
<p><strong>Configurazione cron:</strong></p>
<pre><code class="language-json">{
  &quot;cron&quot;: {
    &quot;jobs&quot;: [{
      &quot;id&quot;: &quot;morning-news&quot;,
      &quot;schedule&quot;: &quot;30 7 * * *&quot;,
      &quot;prompt&quot;: &quot;Esegui la skill news-digest e invia il digest mattutino.&quot;,
      &quot;channel&quot;: &quot;telegram&quot;
    }]
  }
}</code></pre>
<hr />
<h3>Skill 2 — Monitoraggio e Alert del Server</h3>
<p>Monitora periodicamente CPU, RAM, disco e servizi critici di un server Linux, inviando alert proattivi con diagnosi e azioni consigliate su Telegram.</p>
<p><strong>Struttura della cartella:</strong></p>
<pre><code>~/.openclaw/skills/server-monitor/
  SKILL.md
  scripts/
    check_metrics.sh
  thresholds.json</code></pre>
<p><strong>SKILL.md:</strong></p>
<pre><code class="language-yaml">---
name: server-monitor
description: Monitora CPU, RAM, disco e servizi del server con alert intelligenti su Telegram
user-invocable: true
metadata:
  {&quot;openclaw&quot;: {
    &quot;emoji&quot;: &quot;🖥️&quot;,
    &quot;requires&quot;: {
      &quot;bins&quot;: [&quot;df&quot;, &quot;free&quot;, &quot;top&quot;, &quot;systemctl&quot;, &quot;python3&quot;],
      &quot;env&quot;: [&quot;ALERT_TELEGRAM_CHAT_ID&quot;]
    },
    &quot;os&quot;: [&quot;linux&quot;]
  }}
---

# Skill: Server Monitor con Alert Intelligenti

## Esecuzione automatica
Gira ogni 15 minuti via heartbeat.

## Procedura

1. Raccogli metriche:
   bash {baseDir}/scripts/check_metrics.sh &gt; /tmp/metrics.txt

2. Confronta i valori con {baseDir}/thresholds.json

3. Determina la gravità:
   - WARNING (🟡): metrica tra 70% e 85% della soglia critica
   - CRITICAL (🔴): metrica sopra l&#039;85%

4. Genera alert con:
   - Metrica problematica e valore attuale
   - Diagnosi probabile (es. &quot;Possibile memory leak in nginx&quot;)
   - Azioni consigliate (comandi specifici)

5. In caso di CRITICAL, esegui automaticamente:
   sudo systemctl restart nginx (se nginx è coinvolto)
   Notifica l&#039;azione intrapresa.</code></pre>
<p><strong>scripts/check_metrics.sh:</strong></p>
<pre><code class="language-bash">#!/bin/bash
echo &quot;=== CPU ===&quot;
top -bn1 | grep &#039;Cpu(s)&#039; | awk &#039;{print $2}&#039; | cut -d&#039;%&#039; -f1

echo &quot;=== RAM ===&quot;
free -m | awk &#039;NR==2{printf &quot;%.1f\n&quot;, $3*100/$2}&#039;

echo &quot;=== DISCO ===&quot;
df -h / | awk &#039;NR==2{print $5}&#039; | tr -d &#039;%&#039;

echo &quot;=== SERVIZI ===&quot;
for svc in nginx mysql php8.2-fpm; do
  systemctl is-active $svc 2&gt;/dev/null &amp;&amp; echo &quot;$svc:OK&quot; || echo &quot;$svc:FAIL&quot;
done</code></pre>
<p><strong>thresholds.json:</strong></p>
<pre><code class="language-json">{
  &quot;cpu_warning&quot;: 70,
  &quot;cpu_critical&quot;: 90,
  &quot;ram_warning&quot;: 75,
  &quot;ram_critical&quot;: 90,
  &quot;disk_warning&quot;: 80,
  &quot;disk_critical&quot;: 95,
  &quot;services&quot;: [&quot;nginx&quot;, &quot;mysql&quot;, &quot;php8.2-fpm&quot;]
}</code></pre>
<blockquote>
<p>⚠️ <strong>Sicurezza</strong> — Configura <code>sudoers</code> per permettere solo i comandi specifici necessari (es. <code>systemctl restart nginx</code>) senza password, e mai con accesso root completo.</p>
</blockquote>
<hr />
<h3>Skill 3 — WordPress Remote News Publisher via SSH + WP-CLI</h3>
<blockquote>
<p><strong>Versione remota della Skill 3 originale.</strong><br />
Rispetto alla versione locale, questa skill non richiede WP-CLI installato sulla macchina che esegue OpenClaw: tutta l'interazione con WordPress avviene sul <strong>server remoto</strong> tramite connessione <strong>SSH con autenticazione automatica a chiave pubblica</strong>. Le immagini vengono scaricate e ottimizzate localmente, trasferite sul server via <code>scp</code>, e poi importate con <code>wp media import</code> eseguito in remoto.</p>
</blockquote>
<hr />
<h4>Struttura della cartella</h4>
<pre><code>~/.openclaw/skills/wp-remote-publisher/
  SKILL.md
  scripts/
    download_cover.py
    optimize_image.sh
    upload_media_remote.sh
    publish_wp_remote.sh
  config.json</code></pre>
<hr />
<h4>SKILL.md</h4>
<pre><code class="language-markdown">---
name: wp-remote-publisher
description: Genera e pubblica automaticamente articoli di news su WordPress remoto
            via SSH con autenticazione a chiave pubblica e WP-CLI installato sul server.
            Scarica e ottimizza immagini di copertina da Unsplash, le trasferisce via scp
            e pubblica con metadati SEO Yoast.
user-invocable: true
metadata:
  {&quot;openclaw&quot;: {
    &quot;emoji&quot;: &quot;📝&quot;,
    &quot;requires&quot;: {
      &quot;bins&quot;: [&quot;ssh&quot;, &quot;scp&quot;, &quot;python3&quot;, &quot;curl&quot;, &quot;convert&quot;],
      &quot;env&quot;: [
        &quot;WP_SSH_HOST&quot;,
        &quot;WP_SSH_USER&quot;,
        &quot;WP_SSH_KEY&quot;,
        &quot;WP_REMOTE_PATH&quot;,
        &quot;UNSPLASH_ACCESS_KEY&quot;,
        &quot;WP_AUTHOR_ID&quot;
      ]
    }
  }}
---

#### Skill: WordPress Remote News Publisher

#### IMPORTANTE — Filosofia Editoriale

Ogni articolo DEVE rispettare queste regole:
- Scrivi come un giornalista senior del settore, non come un AI.
- Usa frasi di lunghezza variabile. Alterna periodi brevi a costruzioni articolate.
- Inserisci una tesi editoriale chiara nel primo paragrafo (lede).
- Usa citazioni attribuite a fonti reali quando disponibili.
- EVITA: &quot;è importante notare&quot;, &quot;nell&#039;era digitale&quot;, &quot;nel mondo di oggi&quot;,
  &quot;in conclusione&quot;, &quot;ovviamente&quot;, &quot;chiaramente&quot;, qualsiasi formula AI.
- Il titolo deve essere specifico. Niente clickbait.

#### Variabili d&#039;ambiente richieste

| Variabile           | Descrizione                                             | Esempio                              |
|---------------------|---------------------------------------------------------|--------------------------------------|
| WP_SSH_HOST         | Hostname o IP del server remoto                         | `203.0.113.10` o `miosito.it`        |
| WP_SSH_USER         | Utente SSH sul server remoto                            | `ubuntu` / `www-data` / `deploy`     |
| WP_SSH_KEY          | Path assoluto alla chiave privata SSH locale            | `/home/user/.ssh/id_ed25519_wp`      |
| WP_SSH_PORT         | Porta SSH (default 22)                                  | `22`                                 |
| WP_REMOTE_PATH      | Path assoluto di WordPress sul server remoto            | `/var/www/html/wordpress`            |
| WP_REMOTE_TMP       | Cartella temporanea scrivibile sul server remoto        | `/tmp`                               |
| UNSPLASH_ACCESS_KEY | Access Key API Unsplash                                 | `AbC123...`                          |
| WP_AUTHOR_ID        | ID autore WordPress                                     | `1`                                  |

#### Trigger
Eseguita ogni giorno alle 10:00 e 16:00 (lun-ven) via cron job.
Invocabile manualmente con: /wp-remote-publisher [argomento]

---

#### Procedura Completa

#### FASE 1 — Selezione Argomento
Se non viene fornito un argomento:
1. Leggi {baseDir}/config.json per la lista di topic configurati.
2. Seleziona il topic con la pubblicazione più vecchia (round-robin).

#### FASE 2 — Verifica Connessione SSH
Prima di qualsiasi operazione, verifica che la connessione SSH funzioni:

  ssh -i $WP_SSH_KEY -p ${WP_SSH_PORT:-22} -o StrictHostKeyChecking=no \
      -o BatchMode=yes -o ConnectTimeout=10 \
      $WP_SSH_USER@$WP_SSH_HOST \
      &quot;wp --info --path=$WP_REMOTE_PATH&quot; 2&gt;&amp;1

Se il comando fallisce, interrompi e notifica l&#039;errore su Telegram.

#### FASE 3 — Ricerca e Raccolta Fatti
1. Cerca via web: &quot;[argomento] ultime notizie [mese corrente]&quot;
   Cerca anche in inglese per fonti internazionali.

2. Raccogli SOLO fatti verificabili:
   - Dati numerici con fonte
   - Dichiarazioni di persone reali con nome e ruolo
   - Date ed eventi specifici
   - Evita speculazioni non attribuite

3. Salva i fatti in /tmp/wp_facts.json

#### FASE 4 — Generazione Articolo con Stile Giornalistico

Struttura editoriale obbligatoria:

**TITOLO** (max 65 caratteri)
- Specifico, non generico. Contiene il fatto principale.
- Buono:  &quot;Meta taglia 3.600 posti: addio ai team AI di Base&quot;
- Cattivo: &quot;Meta compie un passo importante per il futuro&quot;

**LEDE** (primo paragrafo, 40-60 parole)
- Risponde a: Chi? Cosa? Quando? Dove? Perché?
- È la notizia più importante in forma densa e precisa.
- Non inizia mai con &quot;Nel mondo di...&quot; o &quot;Negli ultimi anni...&quot;

**CORPO** (600-900 parole totali)
- Paragrafo 2: contesto e background
- Paragrafo 3-4: sviluppo principale con dati e citazioni
- Paragrafo 5: reazioni e posizioni dei protagonisti
- Paragrafo 6: implicazioni e prospettive (attribuite a esperti)
- Paragrafo finale: elemento che chiude il cerchio narrativo

**META DESCRIPTION** (max 155 caratteri)
**TAG SEO** (3-5 tag, senza #)
**KEYWORD PRINCIPALE** (1 keyword)

Salva in /tmp/wp_article.json:
{
  &quot;title&quot;: &quot;...&quot;,
  &quot;content&quot;: &quot;...&quot;,
  &quot;excerpt&quot;: &quot;...&quot;,
  &quot;tags&quot;: [&quot;...&quot;],
  &quot;meta_desc&quot;: &quot;...&quot;,
  &quot;keyword&quot;: &quot;...&quot;,
  &quot;topic&quot;: &quot;...&quot;
}

#### FASE 5 — Immagine di Copertina
1. Determina una keyword visiva (es. &quot;server room technology&quot;).
2. Scarica da Unsplash LOCALMENTE:
   python3 {baseDir}/scripts/download_cover.py &#039;[keyword]&#039; /tmp/cover.jpg
3. Ottimizza localmente:
   bash {baseDir}/scripts/optimize_image.sh /tmp/cover.jpg /tmp/cover_opt.jpg
4. Trasferisci sul server remoto e importa in WordPress:
   bash {baseDir}/scripts/upload_media_remote.sh /tmp/cover_opt.jpg
   → ID salvato in /tmp/wp_media_id.txt

#### FASE 6 — Pubblicazione su WordPress Remoto
1. Esegui: bash {baseDir}/scripts/publish_wp_remote.sh
2. Post creato come draft. Aspetta 30 secondi, verifica lo stato via SSH.
3. Se OK, pubblica:
   ssh -i $WP_SSH_KEY -p ${WP_SSH_PORT:-22} $WP_SSH_USER@$WP_SSH_HOST \
     &quot;wp post update $(cat /tmp/wp_post_id.txt) \
      --post_status=publish --path=$WP_REMOTE_PATH&quot;
4. Recupera l&#039;URL del post pubblicato:
   ssh -i $WP_SSH_KEY -p ${WP_SSH_PORT:-22} $WP_SSH_USER@$WP_SSH_HOST \
     &quot;wp post get $(cat /tmp/wp_post_id.txt) --field=url --path=$WP_REMOTE_PATH&quot;
5. Invia conferma su Telegram con titolo, URL, parole, keyword.

#### FASE 7 — Aggiornamento Registro
Aggiorna {baseDir}/config.json segnando il topic come
&quot;ultimo pubblicato&quot; con timestamp per garantire la rotazione.</code></pre>
<hr />
<h4>config.json</h4>
<pre><code class="language-json">{
  &quot;wp_remote_path&quot;: &quot;/var/www/html/wordpress&quot;,
  &quot;author_id&quot;: 1,
  &quot;categories&quot;: {
    &quot;tecnologia&quot;: 5,
    &quot;economia&quot;: 8,
    &quot;startup&quot;: 12
  },
  &quot;topics&quot;: [
    {
      &quot;name&quot;: &quot;Intelligenza Artificiale&quot;,
      &quot;keywords&quot;: [&quot;AI&quot;, &quot;machine learning&quot;, &quot;LLM&quot;],
      &quot;category&quot;: &quot;tecnologia&quot;,
      &quot;last_published&quot;: null
    },
    {
      &quot;name&quot;: &quot;Cybersecurity&quot;,
      &quot;keywords&quot;: [&quot;sicurezza informatica&quot;, &quot;hacking&quot;, &quot;privacy&quot;],
      &quot;category&quot;: &quot;tecnologia&quot;,
      &quot;last_published&quot;: null
    },
    {
      &quot;name&quot;: &quot;Startup Tech&quot;,
      &quot;keywords&quot;: [&quot;startup&quot;, &quot;venture capital&quot;, &quot;unicorn&quot;],
      &quot;category&quot;: &quot;startup&quot;,
      &quot;last_published&quot;: null
    }
  ]
}</code></pre>
<hr />
<h4>scripts/download_cover.py</h4>
<p>Identico alla versione locale: scarica l'immagine da Unsplash sulla macchina locale.</p>
<pre><code class="language-python">#!/usr/bin/env python3
import sys, requests, os

query   = sys.argv[1]
outfile = sys.argv[2]
api_key = os.environ[&#039;UNSPLASH_ACCESS_KEY&#039;]

r = requests.get(
    &#039;https://api.unsplash.com/photos/random&#039;,
    params={&#039;query&#039;: query, &#039;orientation&#039;: &#039;landscape&#039;, &#039;content_filter&#039;: &#039;high&#039;},
    headers={&#039;Authorization&#039;: f&#039;Client-ID {api_key}&#039;}
)
r.raise_for_status()
data = r.json()

img_data = requests.get(data[&#039;urls&#039;][&#039;regular&#039;]).content
with open(outfile, &#039;wb&#039;) as f:
    f.write(img_data)

with open(&#039;/tmp/cover_meta.txt&#039;, &#039;w&#039;) as f:
    f.write(f&quot;Photo by {data[&#039;user&#039;][&#039;name&#039;]} on Unsplash&quot;)

print(f&quot;Immagine scaricata: {outfile}&quot;)</code></pre>
<hr />
<h4>scripts/optimize_image.sh</h4>
<p>Identico alla versione locale: ottimizza e ritaglia l'immagine sulla macchina locale con ImageMagick.</p>
<pre><code class="language-bash">#!/bin/bash
INPUT=$1
OUTPUT=$2

# Resize a 1200x630 (dimensione Open Graph ottimale) e comprimi
convert &quot;$INPUT&quot; \
  -resize 1200x630^ \
  -gravity Center \
  -extent 1200x630 \
  -quality 85 \
  -strip \
  &quot;$OUTPUT&quot;

echo &quot;Ottimizzazione completata: $(du -h &quot;$OUTPUT&quot; | cut -f1)&quot;</code></pre>
<hr />
<h4>scripts/upload_media_remote.sh</h4>
<p>Questo script è la principale differenza rispetto alla versione locale.<br />
<strong>Trasferisce</strong> l'immagine ottimizzata sul server remoto via <code>scp</code>, poi esegue <code>wp media import</code> tramite <code>ssh</code>.</p>
<pre><code class="language-bash">#!/bin/bash
# ============================================================
# upload_media_remote.sh
# Trasferisce l&#039;immagine sul server remoto e la importa
# in WordPress con WP-CLI remoto via SSH a chiave pubblica.
# ============================================================

IMAGE_PATH=$1

# --- Parametri SSH da variabili d&#039;ambiente ---
SSH_HOST=&quot;${WP_SSH_HOST}&quot;
SSH_USER=&quot;${WP_SSH_USER}&quot;
SSH_KEY=&quot;${WP_SSH_KEY}&quot;
SSH_PORT=&quot;${WP_SSH_PORT:-22}&quot;
REMOTE_PATH=&quot;${WP_REMOTE_PATH:-/var/www/html/wordpress}&quot;
REMOTE_TMP=&quot;${WP_REMOTE_TMP:-/tmp}&quot;

# Opzioni SSH comuni (chiave pubblica, no password, no prompt)
SSH_OPTS=&quot;-i $SSH_KEY -p $SSH_PORT \
          -o StrictHostKeyChecking=no \
          -o BatchMode=yes \
          -o ConnectTimeout=15 \
          -o PasswordAuthentication=no&quot;

# --- Validazione variabili ---
if [ -z &quot;$SSH_HOST&quot; ] || [ -z &quot;$SSH_USER&quot; ] || [ -z &quot;$SSH_KEY&quot; ]; then
  echo &quot;ERRORE: WP_SSH_HOST, WP_SSH_USER e WP_SSH_KEY sono obbligatori.&quot; &gt;&amp;2
  exit 1
fi

if [ ! -f &quot;$SSH_KEY&quot; ]; then
  echo &quot;ERRORE: chiave SSH non trovata in $SSH_KEY&quot; &gt;&amp;2
  exit 1
fi

if [ ! -f &quot;$IMAGE_PATH&quot; ]; then
  echo &quot;ERRORE: immagine non trovata in $IMAGE_PATH&quot; &gt;&amp;2
  exit 1
fi

REMOTE_FILENAME=&quot;wp_cover_$(date +%s).jpg&quot;
REMOTE_FILE_PATH=&quot;$REMOTE_TMP/$REMOTE_FILENAME&quot;

# --- Trasferimento immagine via scp ---
echo &quot;Trasferimento immagine su $SSH_USER@$SSH_HOST:$REMOTE_FILE_PATH ...&quot;
scp $SSH_OPTS &quot;$IMAGE_PATH&quot; &quot;$SSH_USER@$SSH_HOST:$REMOTE_FILE_PATH&quot;

if [ $? -ne 0 ]; then
  echo &quot;ERRORE: scp fallito durante il trasferimento dell&#039;immagine.&quot; &gt;&amp;2
  exit 1
fi

echo &quot;Immagine trasferita con successo.&quot;

# --- Importazione media con WP-CLI remoto ---
echo &quot;Importazione media in WordPress via WP-CLI remoto...&quot;
MEDIA_ID=$(ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; \
  &quot;wp media import &#039;$REMOTE_FILE_PATH&#039; \
   --path=&#039;$REMOTE_PATH&#039; \
   --porcelain 2&gt;/dev/null&quot;)

if [ -z &quot;$MEDIA_ID&quot; ]; then
  echo &quot;ERRORE: wp media import non ha restituito un ID.&quot; &gt;&amp;2
  # Cleanup file remoto anche in caso di errore
  ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; &quot;rm -f &#039;$REMOTE_FILE_PATH&#039;&quot; 2&gt;/dev/null
  exit 1
fi

# --- Cleanup file temporaneo remoto ---
ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; &quot;rm -f &#039;$REMOTE_FILE_PATH&#039;&quot; 2&gt;/dev/null

echo &quot;$MEDIA_ID&quot; &gt; /tmp/wp_media_id.txt
echo &quot;Media importato su WordPress con ID: $MEDIA_ID&quot;</code></pre>
<hr />
<h4>scripts/publish_wp_remote.sh</h4>
<p>Esegue tutti i comandi <code>wp</code> sul server remoto tramite SSH. Nessuna chiamata WP-CLI locale.</p>
<pre><code class="language-bash">#!/bin/bash
# ============================================================
# publish_wp_remote.sh
# Crea il post WordPress come draft via WP-CLI remoto (SSH).
# ============================================================

# --- Parametri SSH da variabili d&#039;ambiente ---
SSH_HOST=&quot;${WP_SSH_HOST}&quot;
SSH_USER=&quot;${WP_SSH_USER}&quot;
SSH_KEY=&quot;${WP_SSH_KEY}&quot;
SSH_PORT=&quot;${WP_SSH_PORT:-22}&quot;
REMOTE_PATH=&quot;${WP_REMOTE_PATH:-/var/www/html/wordpress}&quot;
AUTHOR_ID=&quot;${WP_AUTHOR_ID:-1}&quot;

SSH_OPTS=&quot;-i $SSH_KEY -p $SSH_PORT \
          -o StrictHostKeyChecking=no \
          -o BatchMode=yes \
          -o ConnectTimeout=15 \
          -o PasswordAuthentication=no&quot;

# --- Leggi dati articolo ---
TITLE=$(python3 -c &quot;import json; d=json.load(open(&#039;/tmp/wp_article.json&#039;)); print(d[&#039;title&#039;])&quot;)
CONTENT=$(python3 -c &quot;import json; d=json.load(open(&#039;/tmp/wp_article.json&#039;)); print(d[&#039;content&#039;])&quot;)
EXCERPT=$(python3 -c &quot;import json; d=json.load(open(&#039;/tmp/wp_article.json&#039;)); print(d[&#039;excerpt&#039;])&quot;)
TAGS=$(python3 -c &quot;import json; d=json.load(open(&#039;/tmp/wp_article.json&#039;)); print(&#039;,&#039;.join(d[&#039;tags&#039;]))&quot;)
META_DESC=$(python3 -c &quot;import json; d=json.load(open(&#039;/tmp/wp_article.json&#039;)); print(d[&#039;meta_desc&#039;])&quot;)
KEYWORD=$(python3 -c &quot;import json; d=json.load(open(&#039;/tmp/wp_article.json&#039;)); print(d[&#039;keyword&#039;])&quot;)
MEDIA_ID=$(cat /tmp/wp_media_id.txt)

# --- Trasferisci il JSON dell&#039;articolo sul server remoto (necessario per content lungo) ---
REMOTE_ARTICLE_JSON=&quot;/tmp/wp_article_remote_$(date +%s).json&quot;
scp $SSH_OPTS /tmp/wp_article.json &quot;$SSH_USER@$SSH_HOST:$REMOTE_ARTICLE_JSON&quot;

# --- Crea il post come draft (WP-CLI remoto) ---
echo &quot;Creazione post come draft su WordPress remoto...&quot;
POST_ID=$(ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; bash &lt;&lt;ENDSSH
  TITLE=\$(python3 -c &quot;import json; d=json.load(open(&#039;$REMOTE_ARTICLE_JSON&#039;)); print(d[&#039;title&#039;])&quot;)
  CONTENT=\$(python3 -c &quot;import json; d=json.load(open(&#039;$REMOTE_ARTICLE_JSON&#039;)); print(d[&#039;content&#039;])&quot;)
  EXCERPT=\$(python3 -c &quot;import json; d=json.load(open(&#039;$REMOTE_ARTICLE_JSON&#039;)); print(d[&#039;excerpt&#039;])&quot;)

  wp post create \
    --post_title=&quot;\$TITLE&quot; \
    --post_content=&quot;\$CONTENT&quot; \
    --post_excerpt=&quot;\$EXCERPT&quot; \
    --post_status=draft \
    --post_author=$AUTHOR_ID \
    --post_type=post \
    --path=&quot;$REMOTE_PATH&quot; \
    --porcelain 2&gt;/dev/null
ENDSSH
)

if [ -z &quot;$POST_ID&quot; ]; then
  echo &quot;ERRORE: wp post create non ha restituito un ID.&quot; &gt;&amp;2
  ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; &quot;rm -f &#039;$REMOTE_ARTICLE_JSON&#039;&quot; 2&gt;/dev/null
  exit 1
fi

echo &quot;Post draft creato con ID: $POST_ID&quot;

# --- Imposta immagine di copertina ---
echo &quot;Impostazione immagine di copertina...&quot;
ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; \
  &quot;wp post meta update $POST_ID _thumbnail_id $MEDIA_ID \
   --path=&#039;$REMOTE_PATH&#039;&quot; 2&gt;/dev/null

# --- Aggiungi tag ---
echo &quot;Aggiunta tag...&quot;
ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; \
  &quot;wp post term add $POST_ID post_tag &#039;$TAGS&#039; \
   --path=&#039;$REMOTE_PATH&#039;&quot; 2&gt;/dev/null

# --- Meta SEO Yoast ---
echo &quot;Aggiornamento meta SEO Yoast...&quot;
ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; \
  &quot;wp post meta update $POST_ID _yoast_wpseo_metadesc &#039;$META_DESC&#039; \
   --path=&#039;$REMOTE_PATH&#039;&quot; 2&gt;/dev/null

ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; \
  &quot;wp post meta update $POST_ID _yoast_wpseo_focuskw &#039;$KEYWORD&#039; \
   --path=&#039;$REMOTE_PATH&#039;&quot; 2&gt;/dev/null

# --- Cleanup file temporanei remoti ---
ssh $SSH_OPTS &quot;$SSH_USER@$SSH_HOST&quot; &quot;rm -f &#039;$REMOTE_ARTICLE_JSON&#039;&quot; 2&gt;/dev/null

echo &quot;$POST_ID&quot; &gt; /tmp/wp_post_id.txt
echo &quot;Post WordPress creato come draft con ID: $POST_ID&quot;</code></pre>
<hr />
<h4>Configurazione in <code>~/.openclaw/openclaw.json</code></h4>
<h4>Iniezione chiave pubblica SSH nella skill</h4>
<pre><code class="language-json">&quot;skills&quot;: {
  &quot;entries&quot;: {
    &quot;wp-remote-publisher&quot;: {
      &quot;env&quot;: {
        &quot;WP_SSH_HOST&quot;:         &quot;203.0.113.10&quot;,
        &quot;WP_SSH_USER&quot;:         &quot;deploy&quot;,
        &quot;WP_SSH_KEY&quot;:          &quot;/home/user/.ssh/id_ed25519_wp&quot;,
        &quot;WP_SSH_PORT&quot;:         &quot;22&quot;,
        &quot;WP_REMOTE_PATH&quot;:      &quot;/var/www/html/wordpress&quot;,
        &quot;WP_REMOTE_TMP&quot;:       &quot;/tmp&quot;,
        &quot;WP_AUTHOR_ID&quot;:        &quot;1&quot;,
        &quot;UNSPLASH_ACCESS_KEY&quot;: &quot;la-tua-access-key-unsplash&quot;
      }
    }
  }
}</code></pre>
<h4>Cron jobs per pubblicazione automatica</h4>
<pre><code class="language-json">&quot;cron&quot;: {
  &quot;jobs&quot;: [
    {
      &quot;id&quot;: &quot;wp-morning-news&quot;,
      &quot;schedule&quot;: &quot;0 10 * * 1-5&quot;,
      &quot;prompt&quot;: &quot;Esegui la skill wp-remote-publisher. Scegli il topic dalla rotazione.&quot;,
      &quot;channel&quot;: &quot;telegram&quot;
    },
    {
      &quot;id&quot;: &quot;wp-afternoon-news&quot;,
      &quot;schedule&quot;: &quot;0 16 * * 1-5&quot;,
      &quot;prompt&quot;: &quot;Esegui la skill wp-remote-publisher per il pomeriggio.&quot;,
      &quot;channel&quot;: &quot;telegram&quot;
    }
  ]
}</code></pre>
<hr />
<h4>Setup della chiave SSH (una-tantum)</h4>
<p>Prima di usare la skill, configura l'autenticazione a chiave pubblica sul server remoto:</p>
<pre><code class="language-bash"># 1. Genera una coppia di chiavi dedicata (raccomandato: ed25519)
ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_wp -C &quot;openclaw-wp-publisher&quot; -N &quot;&quot;

# 2. Copia la chiave pubblica sul server remoto
ssh-copy-id -i ~/.ssh/id_ed25519_wp.pub -p 22 deploy@203.0.113.10

# 3. Verifica la connessione automatica (nessuna password richiesta)
ssh -i ~/.ssh/id_ed25519_wp -o BatchMode=yes deploy@203.0.113.10 &quot;wp --info&quot;

# 4. (Opzionale) Limita ulteriormente la chiave in ~/.ssh/authorized_keys sul server
# Aggiungi prima della chiave: command=&quot;wp --allow-root&quot;,no-port-forwarding,no-X11-forwarding</code></pre>
<blockquote>
<p>💡 <strong>Consiglio sicurezza</strong> — Usa un utente SSH dedicato (<code>deploy</code> o <code>wpcli</code>) con permessi minimi sul server. Non usare <code>root</code>. Se WP-CLI richiede permessi su <code>/var/www</code>, aggiungi l'utente al gruppo <code>www-data</code>.</p>
</blockquote>
<hr />
<h4>Requisiti sul server remoto</h4>
<table>
<thead>
<tr>
<th>Componente</th>
<th>Requisito</th>
<th>Verifica</th>
</tr>
</thead>
<tbody>
<tr>
<td>WP-CLI</td>
<td>Installato e nel PATH</td>
<td><code>wp --info</code></td>
</tr>
<tr>
<td>PHP</td>
<td>≥ 7.4 (8.x raccomandato)</td>
<td><code>php --version</code></td>
</tr>
<tr>
<td>Python 3</td>
<td>Per leggere JSON nell'articolo</td>
<td><code>python3 --version</code></td>
</tr>
<tr>
<td>Permessi</td>
<td>Utente SSH scrive in <code>WP_REMOTE_PATH</code></td>
<td><code>ls -la /var/www/html/wordpress</code></td>
</tr>
<tr>
<td>Porta SSH</td>
<td>Aperta nel firewall</td>
<td><code>ufw status</code> / <code>iptables -L</code></td>
</tr>
</tbody>
</table>
<h4>Requisiti sulla macchina locale (OpenClaw)</h4>
<table>
<thead>
<tr>
<th>Componente</th>
<th>Requisito</th>
<th>Installazione</th>
</tr>
</thead>
<tbody>
<tr>
<td>ssh, scp</td>
<td>Presenti nel PATH</td>
<td>Pre-installati su Linux/macOS</td>
</tr>
<tr>
<td>ImageMagick</td>
<td>Comando <code>convert</code></td>
<td><code>apt install imagemagick</code></td>
</tr>
<tr>
<td>Python 3</td>
<td>Con libreria <code>requests</code></td>
<td><code>pip install requests</code></td>
</tr>
</tbody>
</table>
<hr />
<blockquote>
<p>✅ <strong>In sintesi rispetto alla versione locale:</strong> WP-CLI non è più richiesto sulla macchina con OpenClaw. Tutti i comandi <code>wp</code> vengono eseguiti via <code>ssh -i chiave ...</code> sul server remoto. Le immagini vengono elaborate localmente e trasferite con <code>scp</code>. La connessione non richiede mai password grazie all'autenticazione a chiave pubblica.</p>
</blockquote>
<p><strong>Esempio di articolo generato con stile giornalistico:</strong></p>
<blockquote>
<p><strong>Titolo:</strong> OpenAI apre i modelli o1 agli sviluppatori: tariffe ridotte del 40% e nuovi limiti di contesto</p>
<p><strong>Lede:</strong> OpenAI ha reso disponibili via API i modelli della famiglia o1, finora riservati agli utenti ChatGPT Plus, con una riduzione dei costi del 40% rispetto all'anteprima pubblica. La mossa, annunciata il 20 febbraio, amplia la finestra di contesto a un milione di token per i tier enterprise e segnala un cambio di strategia nella monetizzazione dell'AI per sviluppatori.</p>
</blockquote>
<p>Notare: nessun <em>&quot;nell'era digitale&quot;</em>, nessun <em>&quot;è importante notare&quot;</em>. Il lede risponde subito alle 5W con dati numerici precisi e fonte esplicita. Tono da agenzia stampa, non da blog.</p>
<hr />
<h2>8. Riferimento Comandi CLI {#cli}</h2>
<table>
<thead>
<tr>
<th>Comando</th>
<th>Descrizione</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>openclaw onboard</code></td>
<td>Avvia il wizard di configurazione guidata</td>
</tr>
<tr>
<td><code>openclaw gateway</code></td>
<td>Avvia il Gateway (processo principale)</td>
</tr>
<tr>
<td><code>openclaw gateway --daemon</code></td>
<td>Avvia il Gateway in background</td>
</tr>
<tr>
<td><code>openclaw status</code></td>
<td>Stato del Gateway e degli agenti</td>
</tr>
<tr>
<td><code>openclaw stop</code></td>
<td>Ferma il Gateway</td>
</tr>
<tr>
<td><code>openclaw doctor</code></td>
<td>Diagnosi configurazione e sicurezza</td>
</tr>
<tr>
<td><code>openclaw logs</code></td>
<td>Log del Gateway in tempo reale</td>
</tr>
<tr>
<td><code>clawhub install &lt;slug&gt;</code></td>
<td>Installa una skill da ClawHub</td>
</tr>
<tr>
<td><code>clawhub search &lt;query&gt;</code></td>
<td>Cerca skill nel registry</td>
</tr>
<tr>
<td><code>clawhub update --all</code></td>
<td>Aggiorna tutte le skill installate</td>
</tr>
<tr>
<td><code>openclaw agent list</code></td>
<td>Lista degli agenti configurati</td>
</tr>
<tr>
<td><code>openclaw session list</code></td>
<td>Lista delle sessioni attive</td>
</tr>
</tbody>
</table>
<hr />
<h2>9. Troubleshooting</h2>
<p><strong>Il Gateway non si avvia</strong><br />
Verifica che Node.js sia ≥22: <code>node --version</code>. Controlla i log con <code>openclaw logs</code>. Assicurati che la porta 18789 non sia occupata: <code>lsof -i :18789</code>.</p>
<p><strong>Le skill non vengono caricate</strong><br />
Esegui <code>openclaw doctor</code> per rilevare binari mancanti o env non configurate. Controlla che <code>SKILL.md</code> abbia frontmatter YAML valido. Verifica che <code>requires.bins</code> siano nel PATH dell'utente che esegue OpenClaw.</p>
<p><strong>WP-CLI restituisce errore di permessi</strong><br />
Usa l'utente web corretto (es. <code>www-data</code>) o il flag <code>--allow-root</code> solo in ambienti controllati. Verifica il path: <code>wp --path=/var/www/html/wordpress post list</code>.</p>
<p><strong>Consumo eccessivo di token</strong><br />
Imposta spending cap sul dashboard del provider. Usa modelli economici (Gemini Flash) per skill semplici. Disabilita il heartbeat in sviluppo. Controlla che non ci siano loop nei cron job.</p>
<p><strong>L'agente non trova le skill nel prompt</strong><br />
OpenClaw fa uno snapshot delle skill all'avvio della sessione. Dopo aver aggiunto una skill, riavvia la sessione o abilita <code>skills.watcher</code> per il hot-reload automatico.</p>
<hr />
<h2>Risorse Utili</h2>
<ul>
<li><strong>GitHub</strong> — <a href="https://github.com/openclaw/openclaw" target="_blank" rel="noopener nofollow external" data-wpel-link="external">github.com/openclaw/openclaw</a></li>
<li><strong>Documentazione</strong> — <a href="https://docs.openclaw.ai" target="_blank" rel="noopener nofollow external" data-wpel-link="external">docs.openclaw.ai</a></li>
<li><strong>ClawHub</strong> — <a href="https://clawhub.com" target="_blank" rel="noopener nofollow external" data-wpel-link="external">clawhub.com</a></li>
<li><strong>WP-CLI</strong> — <a href="https://wp-cli.org" target="_blank" rel="noopener nofollow external" data-wpel-link="external">wp-cli.org</a></li>
<li><strong>Unsplash API</strong> — <a href="https://unsplash.com/developers" target="_blank" rel="noopener nofollow external" data-wpel-link="external">unsplash.com/developers</a></li>
<li><strong>AgentSkills spec</strong> — <a href="https://agentskills.io" target="_blank" rel="noopener nofollow external" data-wpel-link="external">agentskills.io</a></li>
</ul>
<hr />
<p><em>Hai domande o vuoi condividere la tua skill? Lascia un commento qui sotto o apri una issue su GitHub.</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/openclaw-guida-completa-configurazione-e-creazione-skills/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Top 50 Scorciatoie per Prompt AI (Meta-istruzioni)</title>
		<link>https://www.mrtux.it/50-scorciatoie-prompt-ai</link>
					<comments>https://www.mrtux.it/50-scorciatoie-prompt-ai#respond</comments>
		
		<dc:creator><![CDATA[Emilio Petrozzi]]></dc:creator>
		<pubDate>Mon, 05 Jan 2026 09:37:17 +0000</pubDate>
				<category><![CDATA[Intelligenza artificiale]]></category>
		<category><![CDATA[Social Media]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://www.mrtux.it/?p=3184</guid>

					<description><![CDATA[Top 50 Scorciatoie per Prompt AI (Meta-istruzioni) /BRIEFLY o /CONCISE: Chiede risposte brevi, focalizzate, senza prefazioni o spiegazioni superflue. /ELI5 (Explain Like I'm 5): Spiegare un concetto complesso in termini semplici e analogie, come a un bambino. /TL;DR (Too Long; Didn't Read): Chiede un riassunto estremamente sintetico di un testo lungo o di un concetto. [&#8230;]]]></description>
										<content:encoded><![CDATA[<h3><strong>Top 50 Scorciatoie per Prompt AI (Meta-istruzioni)</strong></h3>
<ol>
<li><strong>/BRIEFLY o /CONCISE</strong>: Chiede risposte brevi, focalizzate, senza prefazioni o spiegazioni superflue.</li>
<li><strong>/ELI5 (Explain Like I'm 5)</strong>: Spiegare un concetto complesso in termini semplici e analogie, come a un bambino.</li>
<li><strong>/TL;DR (Too Long; Didn't Read)</strong>: Chiede un riassunto estremamente sintetico di un testo lungo o di un concetto.</li>
<li><strong>/STEP-BY-STEP</strong>: Obbliga il modello a decomporre un ragionamento o una procedura in passi numerati e sequenziali, riducendo errori.</li>
<li><strong>/ROLE</strong>: Fa impersonare al modello un esperto specifico (es. &quot;/ROLE: Sei un avvocato penalista esperto...&quot;).</li>
<li><strong>/FORMAT</strong>: Specifica il formato di output desiderato (JSON, HTML, tabella Markdown, elenco puntato, ecc.).</li>
<li><strong>/FIRST-PRINCIPLES</strong>: Invita a ragionare dalle basi fondamentali di un argomento, sfidando presupposti.</li>
<li><strong>/CREATIVE</strong>: Chiede un approccio originale, fuori dagli schemi, immaginativo.</li>
<li><strong>/CRITICAL</strong>: Richiede un'analisi critica, evidenziando punti di forza, debolezza, pregiudizi o limitazioni.</li>
<li><strong>/ANTI-EXAMPLE</strong>: Chiede esempi di come <strong>NON</strong> fare o pensare a qualcosa, molto utile per delimitare confini.</li>
<li><strong>/ANALOGY</strong>: Richiede di spiegare un concetto attraverso un'analogia concreta e familiare.</li>
<li><strong>/SOCRATIC</strong>: Fa porre al modello domande guida per aiutare <em>l'utente</em> a arrivare da solo alla conclusione.</li>
<li><strong>/PROMPT-EXPERT</strong>: Chiede al modello di analizzare e suggerire miglioramenti al prompt stesso che gli hai inviato.</li>
<li><strong>/DON'T-EXPLAIN</strong>: Istruisce a dare solo la risposta (es. solo il codice, solo la parola, solo il numero) senza commenti.</li>
<li><strong>/VERIFY</strong>: Chiede di controllare la correttezza fattuale o logica di una data affermazione o risposta precedente.</li>
<li><strong>/COMPARE</strong>: Chiede un confronto strutturato tra due o più elementi, evidenziando somiglianze e differenze.</li>
<li><strong>/FOMO (Fear Of Missing Out)</strong>: &quot;Cosa potrei aver trascurato o dimenticato di considerare su questo tema?&quot;</li>
<li><strong>/BRAINSTORM</strong>: Richiede una sessione di brainstorming libera, generando una lista di idee senza filtro iniziale.</li>
<li><strong>/REVERSE</strong>: &quot;Rovescia il problema&quot; o pensa al contrario per trovare prospettive inedite.</li>
<li><strong>/TEACH</strong>: &quot;Insegna questo argomento come se dovessi preparare una lezione completa per principianti.&quot;</li>
<li><strong>/ITERATE</strong>: Chiede versioni successive e migliorate di un testo, codice o idea basate sul feedback.</li>
<li><strong>/PROS-CONS</strong>: Analisi classica di vantaggi e svantaggi, spesso in una tabella.</li>
<li><strong>/EVIDENCE-BASED</strong>: Richiede che ogni affermazione sia supportata da dati, studi o riferimenti noti.</li>
<li><strong>/SIMPLIFY</strong>: Riduce la complessità linguistica o concettuale di un testo esistente.</li>
<li><strong>/EXPAND</strong>: Il contrario di <code>/SIMPLIFY</code>. Aggiunge profondità, dettagli, esempi e contesto.</li>
<li><strong>/ACTIONABLE</strong>: Chiede che i consigli o i passi forniti siano concretamente applicabili e pratici.</li>
<li><strong>/KEY-TAKEAWAYS</strong>: Estrae i punti principali, le lezioni o le conclusioni più importanti da un discorso.</li>
<li><strong>/FRAMEWORK</strong>: Chiede di fornire una struttura (una checklist, un modello mentale) per affrontare un tipo di problema.</li>
<li><strong>/TRANSLATE-TO-TERMS</strong>: &quot;Traduci questo concetto tecnico in linguaggio comprensibile per un [manager, cliente, non esperto]&quot;.</li>
<li><strong>/ASSUMPTIONS</strong>: Chiede di esplicitare tutti i presupposti sottostanti a un ragionamento o a una domanda.</li>
<li><strong>/SCENARIO</strong>: &quot;Analizza questa situazione ipotetica specifica e le sue possibili conseguenze.&quot;</li>
<li><strong>/PREDICT</strong>: Basandosi su dati e tendenze, propone previsioni su sviluppi futuri.</li>
<li><strong>/HISTORICAL</strong>: Analizza la questione da una prospettiva storica o ne traccia l'evoluzione.</li>
<li><strong>/DEBATE</strong>: Presenta entrambi i lati di un argomento controverso in modo equo e persuasivo.</li>
<li><strong>/CHECKLIST</strong>: Crea una lista di controllo per assicurarsi di aver completato tutti i passi necessari per un task.</li>
<li><strong>/TROUBLESHOOT</strong>: Guida nella diagnosi e risoluzione sistematica di un problema (tecnico, di processo, ecc.).</li>
<li><strong>/ALTERNATIVES</strong>: Chiede di esplorare soluzioni, metodi o punti di vista alternativi a quello più ovvio.</li>
<li><strong>/METAPHOR</strong>: Simile ad <code>/ANALOGY</code>, ma spesso più poetica o evocativa per concetti astratti.</li>
<li><strong>/LIMITATIONS</strong>: &quot;Quali sono i limiti intrinseci di questa teoria/soluzione/approccio?&quot;</li>
<li><strong>/PRIORITIZE</strong>: Aiuta a ordinare elementi (task, idee, rischi) per importanza, urgenza o impatto.</li>
<li><strong>/GENERALIZE</strong>: Cerca di estrarre una regola, principio o pattern generale da casi specifici.</li>
<li><strong>/APPLY</strong>: &quot;Applica questo framework o teoria al seguente caso concreto che ti descrivo.&quot;</li>
<li><strong>/TIMELINE</strong>: Organizza eventi, passi o fasi in una sequenza temporale chiara.</li>
<li><strong>/PARODY</strong>: Scrive o analizza in uno stile umoristico, imitando un genere, una persona o un tono specifico.</li>
<li><strong>/SERIALIZE</strong>: Divide una risposta molto lunga in parti numerate e digeribili (es. &quot;1/5, 2/5...&quot;).</li>
<li><strong>/VISUAL</strong>: Chiede di descrivere qualcosa in modo così dettagliato da permettere di visualizzarlo o disegnarlo.</li>
<li><strong>/CROSS-DISCIPLINARY</strong>: Approccia un problema con gli strumenti e le prospettive di diverse discipline.</li>
<li><strong>/META</strong>: &quot;Pensa a come stai pensando a questo problema.&quot; Analizza il processo di ragionamento stesso.</li>
<li><strong>/YES-AND</strong>: Tecnica dell'improvvisazione: accetta la premessa e costruisci sopra, per espandere creativamente.</li>
<li><strong>/RED-TEAM</strong>: Incarica il modello di fare il &quot;avvocato del diavolo&quot;, attaccando attivamente un'idea per testarne la robustezza.</li>
</ol>
<hr />
<h3><strong>Come Usarle al Meglio</strong></h3>
<ul>
<li><strong>Combinazione</strong>: Puoi combinarne due o tre per un controllo fine (es. <code>/ROLE: Scienziato dei dati /FORMAT: JSON /BRIEFLY</code>).</li>
<li><strong>Posizione</strong>: Sono più efficaci <strong>all'inizio</strong> del prompt, ma possono essere usate anche alla fine per correggere il tiro.</li>
<li><strong>Esplicitazione</strong>: Per i modelli più recenti, spesso funziona anche scrivere semplicemente le istruzioni in modo chiaro (es. &quot;Sii conciso. Spiega come a un principiante. Fornisci un esempio.&quot;). Le barre (<code>/</code>) sono una convenzione utile per marcarle.</li>
</ul>
<p>Queste scorciatoie sono <strong>moltiplicatori di forza</strong> per il tuo pensiero. Usale per guidare l'AI a collaborare con te al livello di precisione e profondità che desideri.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.mrtux.it/50-scorciatoie-prompt-ai/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
