Files
davideandClaude Sonnet 5.5 c09f4b1f7e Aggiorna le schede con le novità di ottobre 2026
Ponytail 5 (regole, review, audit, installazione), graphify v0.9.91,
catalogo di claude-plugins-official e numeri aggiornati delle altre schede.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-16 09:26:03 +02:00

11 KiB
Raw Permalink Blame History

ponytail

  • Autore: DietrichGebert
  • Repository: DietrichGebert/ponytail (licenza MIT)
  • Sorgente: skills/ponytail/SKILL.md
  • Pagina su skills.sh: dietrichgebert/ponytail/ponytail
  • Diffusione (ottobre 2026): circa 92.300 installazioni tramite npx skills (su skills.sh dal 12 giugno 2026); il repository ha circa 164.600 stelle e 8.900 fork su GitHub. Ultima versione rilevata: 5.2.0 (13 ottobre 2026)
  • Controlli di sicurezza su skills.sh: Gen Agent Trust Hub, Socket e Snyk superati

A cosa serve

Fa scrivere all'agente la modifica più piccola che risolve davvero il compito, evitando soluzioni sovraingegnerizzate. L'idea è far ragionare l'agente come "lo sviluppatore senior più pigro della stanza": il codice migliore è quello che non scrivi. Pigro sulla soluzione, mai sulla modifica: deve comunque completare tutto ciò che il compito richiede.

Cosa fa

Quando si attiva

Su qualsiasi compito di programmazione (scrivere, correggere, rifattorizzare, rivedere, scegliere dipendenze) e quando scrivi "ponytail", "be lazy", "simplest solution", "yagni" o ti lamenti di codice sovraingegnerizzato o gonfio.

Una volta attiva resta accesa per tutta la sessione, finché non scrivi "stop ponytail" o "normal mode" (o /ponytail off).

Come lavora

  1. Capisce prima di scrivere. Legge il compito e il codice coinvolto, elenca tutto ciò che la modifica deve toccare (chiamanti, test, fixture, configurazione, esportazioni) e controlla che cosa potrebbe rompere per gli utenti. Questo è l'ambito; le funzionalità in più no.
  2. Sale una "scala" e si ferma al primo gradino che funziona del tutto:
    1. Serve davvero? Funzionalità, opzioni e flessibilità non richieste si saltano e si nominano in una riga. A una richiesta vaga ("costruiscimi X") risponde con la versione minima che fa il lavoro principale.
    2. Esiste già nel codice del progetto? Lo riusa come fa il codice circostante.
    3. Lo fanno la libreria standard o la piattaforma? Le usa, a meno che il progetto abbia un componente suo.
    4. Lo fa una dipendenza già installata? La usa; non ne aggiunge una per poche righe.
    5. Si può fare in una riga leggibile a colpo d'occhio?
    6. Altrimenti, il minimo codice che funziona.
  3. Lascia un controllo. La logica nuova non banale (un ramo, un ciclo, un parser, soldi o sicurezza, uno script nuovo) esce con un piccolo test o un controllo basato su assert. Le modifiche banali non ne hanno bisogno.
  4. Chiude con uno o due righe: che cosa ha saltato o non ha verificato, e ogni rischio da conoscere.

Altre regole: niente astrazioni, wrapper, opzioni o codice "per il futuro" non richiesti; meglio cancellare che aggiungere; un commento solo per il perché che il codice non mostra. Nella correzione di un bug cerca prima tutti i chiamanti della funzione e corregge la causa una volta sola nel codice condiviso. Il codice spostato o unito conserva validazione e gestione degli errori. Una scorciatoia con un limite noto riceve un commento nella forma shortcut: <il limite>, <quando passare a una soluzione migliore>.

Cosa non taglia mai: validazione ai confini di fiducia, gestione degli errori che evita perdite di dati, sicurezza, accessibilità, la calibrazione che richiede l'hardware reale e tutto ciò che hai chiesto esplicitamente.

Esempio dal README: per "aggiungi un selettore di data al frontend" senza la skill l'agente scrive 335 righe tra libreria e calendario fatto a mano; con ponytail riusa il componente Input del progetto con type="date" (il browser fornisce il calendario) in un file da 10 righe.

Livelli di intensità

Livello Comportamento
lite fa quello che chiedi, ma indica in una riga l'alternativa più piccola; scegli tu
full applica le regole sopra (predefinito)
ultra mette in discussione anche la richiesta: prima di costruire contesta ciò che il bisogno non giustifica
off disattiva

Il livello predefinito si cambia con la variabile d'ambiente PONYTAIL_DEFAULT_MODE o con il campo defaultMode in ~/.config/ponytail/config.json.

Comandi

Il plugin completo comprende sei skill, richiamabili con i comandi / in Claude Code e negli altri agenti che le supportano (in Codex con $ponytail:<nome>, per esempio $ponytail:ponytail-review):

Comando Funzione
/ponytail [lite|full|ultra|off] attiva la modalità o ne cambia il livello; senza argomento la accende se è spenta, altrimenti mostra il livello
/ponytail-review rivede le modifiche correnti come lo sviluppatore senior che viene chiamato quando qualcosa si rompe: errori, sicurezza, carico reale, codice a rischio senza test, punti lenti e cosa tagliare. Ogni segnalazione dice che cosa fa il codice, cosa va storto, come correggerlo e cosa succede se non lo fai. Puoi indicare l'obiettivo: uncommitted, staged, branch o il link a una PR
/ponytail-audit lo stesso controllo su tutto il repository: ne mappa il codice e ordina i problemi per priorità
/ponytail-debt raccoglie in un registro i commenti shortcut: rimandati
/ponytail-gain mostra i dati di impatto misurati nel benchmark
/ponytail-help guida ai comandi

Risultati dichiarati e verificati

  • Secondo l'autore (Ponytail 5, benchmark in Claude Code con Opus 5.5: 39 compiti, compreso un repository reale FastAPI + React, 5 esecuzioni ciascuno, con e senza la skill): circa 53% di codice in meno, 41% di tempo in meno, 26% di costo in meno e 45% di token in meno. Il 98% della logica a rischio esce con un test, contro il 68% senza la skill. Sui sei compiti di sicurezza (SQL injection, path traversal, token falsificati, limitazione delle richieste, righe CSV malformate, cache) ha superato tutte le 30 esecuzioni.
  • Secondo un test indipendente di JetBrains (luglio 2026, 80 compiti con Claude Code e Sonnet 5, su una versione precedente): 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

  • Aspettative: i numeri dell'autore sono i suoi; su compiti normali, indipendentemente, conta su un risparmio intorno al 10%.
  • Hook: il plugin per Claude Code e Codex (e gli hook per Cursor) esegue due piccoli script Node.js all'avvio e durante la sessione. Serve node nel PATH; senza, le skill funzionano ma ogni chiamata dell'hook mostra un errore innocuo node: command not found. In Codex vanno approvati da /hooks.
  • Senza hook niente attivazione automatica: nel test di JetBrains, installata come semplice skill senza hook, la versione allora corrente non si è mai attivata in dieci sessioni. Con il solo npx skills conviene aggiungere anche AGENTS.md del repository al progetto, oppure usare il plugin.
  • File lasciati fuori dal plugin: scrive un file di stato (~/.claude/.ponytail-active), ~/.config/ponytail/config.json, uno script per la barra di stato in ~/.claude/ e, se accetti il suggerimento, una voce statusLine in ~/.claude/settings.json.
  • Provenienza: il README avverte di installarlo solo da DietrichGebert/ponytail su GitHub o da @dietrichgebert/ponytail su npm; il progetto non distribuisce mai file .exe o .dll.

Installazione

Claude Code (plugin, consigliato)

Nella sessione di Claude Code, come due messaggi separati (il README avverte che altrimenti l'installazione non funziona):

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

Installa le sei skill e gli hook. Poi:

/plugin marketplace update ponytail   # aggiornamento
/plugin remove ponytail               # rimozione

Codex (plugin, consigliato)

Da terminale:

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

Poi apri codex, vai su /hooks, controlla e approva i due hook, e avvia una nuova conversazione. Lo stesso comando vale per l'app desktop di Codex: riavviala dopo l'installazione. Rimozione: codex plugin remove ponytail.

Per eliminare anche i file di stato lasciati fuori dal plugin, esegui node scripts/uninstall.js dalla cartella del repository prima del comando di rimozione (lo script è un file del plugin, e rimuovendolo prima sparirebbe), oppure da un clone separato.

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

Per averle tutte e sei: --skill '*'.

Opzione Significato
--skill ponytail installa solo la skill principale; --skill '*' le installa tutte e sei senza domande
-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 ci sono gli hook né le regole sempre attive: per averle copia AGENTS.md del repository nel progetto, altrimenti richiama la skill a mano (per esempio scrivendo "ponytail"). Gestione con npx skills list -g, npx skills update ponytail e, per rimuovere tutte e sei, npx skills remove ponytail ponytail-audit ponytail-debt ponytail-gain ponytail-help ponytail-review (con gli stessi -a e -g dell'installazione).

Per gli altri agenti (Cursor, Copilot, Gemini, OpenCode, Windsurf e altri) il progetto ha una guida per ciascuno in INSTALL.md; in genere basta copiare AGENTS.md nel progetto.

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