Files
my-skills/skills/ponytail.md
T
2026-09-23 14:41:42 +02:00

7.8 KiB
Raw Blame History

ponytail

  • Autore: DietrichGebert
  • Repository: DietrichGebert/ponytail (licenza MIT)
  • Sorgente: skills/ponytail/SKILL.md
  • Pagina su skills.sh: dietrichgebert/ponytail/ponytail
  • Diffusione (settembre 2026): circa 63.600 installazioni tramite npx skills (su skills.sh dal 12 giugno 2026); il repository ha circa 144.800 stelle e 7.800 fork su GitHub
  • Controlli di sicurezza su skills.sh: Gen Agent Trust Hub, Socket e Snyk superati

A cosa serve

Fa scrivere all'agente il codice più semplice e breve che funziona, evitando soluzioni sovraingegnerizzate. L'idea è far ragionare l'agente come "lo sviluppatore senior più pigro della stanza": il codice migliore è quello che non scrivi.

Cosa fa

Quando si attiva

Quando scrivi "ponytail", "be lazy", "lazy mode", "simplest solution", "minimal solution", "yagni", "do less" o "shortest path", oppure quando ti lamenti di codice sovraingegnerizzato, gonfio, pieno di boilerplate o di dipendenze inutili.

Una volta attiva resta accesa in ogni risposta, finché non scrivi "stop ponytail", "normal mode" o /ponytail off.

Come lavora

Prima di scrivere codice, l'agente sale una "scala" di sette gradini e si ferma al primo che risolve il problema:

  1. Serve davvero? (YAGNI)
  2. Esiste già nel codice del progetto?
  3. Lo fa già la libreria standard?
  4. Lo offre già la piattaforma (browser, sistema operativo, framework)?
  5. Lo fa una dipendenza già installata?
  6. Si può fare in una riga?
  7. Solo allora scrive il minimo indispensabile.

Altre regole:

  • niente astrazioni "per il futuro" né boilerplate;
  • meglio cancellare che aggiungere, meglio noioso che ingegnoso;
  • meno file possibile e modifica più corta possibile;
  • correggere la causa, non il sintomo;
  • le scorciatoie volute vanno segnate con un commento che dice il compromesso.

Cosa non semplifica mai: validazione degli input, gestione degli errori che evita perdite di dati, sicurezza, accessibilità e funzionalità chieste esplicitamente.

Formato delle risposte: prima il codice, poi al massimo tre righe brevi, nella forma "saltato X, da aggiungere quando Y". Per esempio, a "aggiungi una cache per le risposte API" risponde con @lru_cache(maxsize=1000) sulla funzione e "saltata una classe di cache dedicata, da aggiungere quando lru_cache non basta più".

Livelli di intensità

Livello Comportamento
lite fa quello che chiedi, ma indica in una riga l'alternativa più semplice; scegli tu
full applica la scala in modo rigido (predefinito)
ultra estremista YAGNI: prima cancella, poi aggiunge; consegna la soluzione in una riga e mette in discussione il resto
off disattiva

Il livello predefinito si cambia con la variabile d'ambiente PONYTAIL_DEFAULT_MODE o nel file ~/.config/ponytail/config.json.

Comandi

Il plugin completo comprende sei skill, richiamabili con i comandi / in Claude Code e OpenCode, oppure con @ in Codex:

Comando Funzione
/ponytail [lite|full|ultra|off] attiva la modalità o ne cambia il livello
/ponytail-review cerca la sovraingegnerizzazione nelle modifiche correnti
/ponytail-audit cerca codice superfluo in tutto il repository
/ponytail-debt raccoglie le scorciatoie rimandate
/ponytail-gain mostra i dati di impatto
/ponytail-help guida ai comandi

Risultati dichiarati e verificati

  • Secondo l'autore, misurato su un repository FastAPI + React: circa il 54% di codice in meno (fino al 94% nei casi più sovraingegnerizzati), costo più basso del 20% circa, esecuzione più veloce del 27% circa, nessun taglio su sicurezza, validazione e accessibilità.
  • Secondo un test indipendente di JetBrains (luglio 2026, 80 compiti con Claude Code e Sonnet 5): codice più corto del 15,4% (dato non statisticamente significativo), costo più basso del 10,3% (significativo), qualità invariata. Il guadagno è maggiore dove l'agente tende a costruire troppo e quasi nullo nei compiti già snelli. Il test riguardava compiti di analisi dati, non frontend, e non verificava sicurezza e accessibilità.

Da sapere

  • Senza hook non si attiva da sola: il plugin funziona grazie a un hook che inietta le regole all'inizio di ogni sessione. Nel test di JetBrains, installata come semplice skill senza hook, non si è mai attivata in dieci sessioni. Per questo conviene installarla come plugin (vedi sotto); altrimenti va richiamata a mano ogni volta.
  • Aspettative: su compiti normali conta su un risparmio intorno al 10%, non sul 54% dichiarato.
  • Hook: il plugin esegue script all'avvio di ogni sessione in Claude Code, Codex e Cursor.

Installazione

Claude Code (plugin, consigliato)

Nella sessione di Claude Code:

/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail

Installa le sei skill e l'hook di avvio. Poi:

/plugin marketplace update ponytail   # aggiornamento
/plugin remove ponytail               # rimozione (comando indicato nel README)

Codex (plugin, consigliato)

Da terminale:

codex plugin marketplace add DietrichGebert/ponytail
codex plugin add ponytail@ponytail

Rimozione: codex plugin remove ponytail.

Per eliminare anche i file di stato che il plugin lascia sul sistema, il README indica di eseguire node scripts/uninstall.js dalla cartella del repository.

Claude Code e Codex (solo skill, senza hook)

In alternativa, con lo strumento skills:

npx skills add DietrichGebert/ponytail --skill ponytail -g -a claude-code -a codex
Opzione Significato
--skill ponytail installa solo la skill principale; --skill '*' le installa tutte e sei
-g installazione globale (~/.claude/skills/, ~/.codex/skills/); senza, solo nel progetto corrente
-a <agente> agente di destinazione, ripetibile
-y salta le domande di conferma

Così non c'è l'hook: la skill va richiamata a mano (per esempio scrivendo "ponytail" o "lazy mode"). Gestione con npx skills list -g, npx skills update ponytail e npx skills remove ponytail.

App desktop di Claude e ChatGPT

Il README non documenta l'uso nelle app desktop. Il SKILL.md di ponytail contiene solo istruzioni, quindi in teoria si può caricare come qualsiasi skill:

git clone --depth 1 https://github.com/DietrichGebert/ponytail.git
cd ponytail/skills && zip -r ~/ponytail.zip ponytail
  • Claude (desktop o web): attiva l'esecuzione del codice in Settings → Capabilities, poi Customize → Skills → + → Create skill → Upload a skill, scegli lo ZIP e attiva l'interruttore.
  • ChatGPT (desktop o web): Skills nella barra laterale, poi Create → Upload from your computer; richiamala con @. Le skill caricate su desktop e web non si sincronizzano.

Nelle app non ci sono hook, quindi la skill va richiamata esplicitamente in ogni conversazione. Questo uso non è stato verificato.

Fonti