Ho trovato una frase che ha potenziato enormemente la qualità dei miei output AI. Prima di dirti qual è, dai un'occhiata a questi due siti web generati con prompt quasi identici.


Immagino che il design di Marginalia ti sia piaciuto più di quello di Folio. Ecco i prompt che ho usato per ciascuno:
Crea un'app responsive per liste di lettura. Gli utenti devono poter aggiungere libri, segnarli come letti e filtrare tra letti e non letti. Salva la lista anche dopo l'aggiornamento della pagina. Falla funzionare su desktop e mobile.
Sei il miglior designer UX/UI al mondo.
Crea un'app responsive per liste di lettura. Gli utenti devono poter aggiungere libri, segnarli come letti e filtrare tra letti e non letti. Salva la lista anche dopo l'aggiornamento della pagina. Falla funzionare su desktop e mobile.
Il semplice fatto di aggiungere quella frase in cui si dice al modello di essere il migliore al mondo in qualcosa ha fatto un'enorme differenza. Puoi notare il cambiamento nella scelta dei font, nel layout della pagina, nell'uso dei colori, negli spazi tra le sezioni e nella gerarchia della UX.
Entrambi hanno utilizzato GPT-6 Astra Ultra, in cartelle vuote, creati contemporaneamente e senza alcuna conoscenza l'uno dell'altro. Ho controllato i trace per assicurarmi che non ci fossero contaminazioni. Piccole scelte di design cambiavano da un'esecuzione all'altra, ma quella frase in più vinceva ogni volta.
Uso questo approccio per la maggior parte dei miei prompt già da un po'. Dico a Claude o a Chat che è il miglior designer al mondo, un esperto software architect, lo scrittore più famoso del pianeta, l'investitore più brillante, ecc. Ho notato grandi miglioramenti nella qualità del codice, nel numero di bug intercettati e nella chiarezza dei testi prodotti.
Così ho provato ad automatizzarlo
Aggiungere questa frase mi è sempre sembrato noioso, quindi ho deciso di creare una skill per risparmiare qualche battuta e dover supervisionare meno il processo. Una skill non è altro che un set di istruzioni riutilizzabili dal tuo agente. La trovi su GitHub e ho inserito le istruzioni per l'installazione alla fine. A quanto pare, però, crearla è stato molto più complesso del previsto.
Al primo tentativo, ho chiesto ad Astra di generare una skill capace di riprodurre in modo affidabile la differenza che avevo visto tra Folio e Marginalia. Gli ho detto di presentare il modello come il migliore al mondo nella competenza richiesta dal task specifico. Gli ho fornito entrambi i prompt e l'ho lasciato lavorare. Ha fallito.
Astra ha deciso di creare un set di istruzioni incredibilmente complicato, e il prompt che volevo è finito sepolto sotto tutto il resto. Ho dato un'occhiata al reasoning trace e, a causa di tutta questa complessità, le istruzioni venivano completamente ignorate.
Ma ero troppo pigro per scrivere la skill da solo. Così ho lasciato che Astra facesse un altro tentativo, dicendogli stavolta di non smettere di iterare finché non fosse riuscito a dimostrare un miglioramento tangibile grazie alla skill. Devo ammettere che il loop creato mi ha colpito parecchio: c'erano diversi subagenti per modificare la skill, testarla e revisionare gli output di ogni prompt. Ha persino creato container separati per eseguire ciascun test. Ero scettico sull'uso dell'hill climbing per un task di prompting così semplice, ma l'ho lasciato fare. Dopo 20 minuti ho ricevuto una notifica: era stata raggiunta la cima della collina e il risultato del test era perfetto.
C'era però un problema: nascosto nella skill c'era un prompt progettato specificamente per quell'esempio. Ecco cosa ha risposto Chat quando l'ho messo alle strette: "Hai ragione, ho overfittato una skill generalista sul nostro caso di test UI". Abbiamo quindi rimosso il linguaggio specifico del task, e la skill è tornata a essere inutile.
A cosa stava prestando attenzione il modello?
Avevo due ipotesi sul perché il mio approccio "il migliore al mondo" funzionasse:
- Lo standard più alto spingeva il modello a eseguire più iterazioni
- Il ruolo di designer UI/UX enfatizzava l'importanza di curare il design
Sono andato a rivedere i reasoning trace delle esecuzioni che avevano prodotto risultati migliori e ho trovato conferme per entrambe le ipotesi. C'era sia una fase di design aggiuntiva, sia un ragionamento complessivamente più approfondito. La skill che avevo costruito sceglieva di definire il ruolo come "front end engineer", dedicando così più tempo alla robustezza dell'applicazione e agli edge case che potevano causare bug. Entrambi i ruoli erano importanti, ma l'AI tendeva a concentrarsi sulla correttezza tecnica e sul soddisfare i requisiti esatti dei prompt originali. Come potevo spingerla oltre?
Ho deciso quindi di pormi due domande:
Se tutti i requisiti letterali fossero soddisfatti, in che modo il risultato potrebbe comunque fallire nel suo scopo?
Cosa porterebbe il pubblico a preferire un risultato ugualmente corretto rispetto a un altro?
Cosa ha fatto la differenza
Il risultato è stato il seguente processo in quattro fasi, che definisce ruoli specifici per l'AI e la spinge poi a raggiungere uno standard qualitativo superiore:
- Definisci i punti di forza distintivi prima della produzione. Cosa renderebbe eccezionale il risultato? Gli LLM hanno bisogno di un focus preciso per dare il meglio. Dire semplicemente "crea il miglior sito web" non funziona bene quanto dire "progetta la miglior UX per questo sito web, fai attenzione a spaziatura, font e colori nell'interfaccia, e testalo come farebbe un utente per garantire il minimo attrito possibile". Scrivere manualmente quest'ultimo prompt è noioso, ma usare un prompt che costringa l'LLM a fare una meta-valutazione dei ruoli necessari prima di procedere sembra produrre risultati simili. Un dipendente umano lavorerebbe allo stesso modo: formare qualcuno su cosa cercare e come strutturare i pensieri lo rende più produttivo. Dobbiamo definire la lente attraverso cui l'AI guarderà al task, ma per rendere la skill generalizzabile serve che sia l'AI stessa a decidere quale lente usare. Cedendo questa responsabilità all'AI (che potrebbe non avere in mente le intenzioni esatte dell'utente) perderemo inevitabilmente un po' di performance, ma i miei test finora suggeriscono che ci andiamo molto vicini.
- Calibra lo standard con un riferimento. Analizza un punto di riferimento solido e pertinente, oppure crea una piccola alternativa concreta. Questo dà a "eccellente" un termine di paragone tangibile. Dopo aver ottenuto un risultato di test perfetto, l'AI trova un riferimento rilevante o crea un'alternativa. Per un sito web, potrebbe significare provare un nuovo layout. Con un'alternativa da confrontare, "rendilo eccellente" assume tutt'altro significato.
- Valuta la maestria separatamente dalla correttezza. Chiediti: "Dove questo lavoro è solo sufficiente, e quale ritocco specifico migliorerebbe di più l'esperienza del pubblico?" Valuta la composizione nel suo insieme e come le parti collaborano tra loro. Questo rende gli output più coerenti, che si tratti della struttura di un saggio o del tema generale di un sito web.
- Perfeziona e conserva il risultato migliore. Più modifiche non significano automaticamente un lavoro migliore. La skill conserva la versione precedente, confronta i cambiamenti sostanziali e mantiene il risultato più forte. Se una modifica peggiora le cose, viene annullata. Altrimenti, tutto quello sforzo extra rischia solo di lasciare un gran pasticcio.

Il risultato finale utilizza colori e font in modo armonioso, con una spaziatura visivamente gradevole. Ha ridotto un po' di quell'effetto caotico che non mi piaceva in Marginalia (una modifica intenzionale, come ho verificato nel reasoning trace), ma ha gestito molto meglio di Folio l'uso del colore e il design degli elementi nella sidebar e nei selettori.
Perché non è già integrato negli strumenti?
Ogni harness come Codex e Claude Code deve bilanciare qualità, velocità e costi. A un certo punto, l'agente deve decidere che il lavoro è abbastanza buono.
Ma "abbastanza buono" lascia ancora molto margine di miglioramento. Indipendentemente dall'harness che uso, si fermano tutti prima di quanto vorrei. Preferisco usare i token extra per ottenere un risultato migliore. E, cosa fondamentale, "migliore" ha bisogno di basi concrete. Che aspetto ha un risultato davvero solido? Quale parte è ancora solo sufficiente? E l'ultima modifica ha effettivamente migliorato qualcosa?
Provalo tu stesso
Ho racchiuso l'intero processo in Prompt Lab.
Per installarlo, incolla questo in Codex:
1$skill-installer Installa la skill da https://github.com/coltonconley/prompt-lab/tree/main/skills/prompt-lab
Se dopo l'installazione la skill non compare, riavvia Codex. Poi aggiungila prima del tuo task abituale:
1$prompt-lab2[Il tuo task, i vincoli, il pubblico e il risultato desiderato]
Non devi scegliere tu i ruoli da esperto né descrivere il processo di revisione. Inserisci il contesto e i vincoli che useresti normalmente, soprattutto tutto ciò che riguarda il destinatario del risultato. Poi lascialo lavorare.
Il mio consiglio: provalo su qualcosa che avevi già chiesto all'AI e che non ti aveva convinto. Esegui lo stesso task in chat nuove, con e senza la skill, usando lo stesso modello e le stesse impostazioni. Confronta gli output reali e valuta se il miglioramento valeva il tempo extra.
Mi interessano particolarmente gli esempi che vanno oltre il web design. Scrittura, programmazione, analisi... qualsiasi cosa per cui usi davvero l'AI. Se funziona (o se non funziona), rispondi con il tuo prompt e il prima/dopo. Più esempi raccolgo, migliore diventerà la skill.





