Sistec · skill & marketplace di plugin · ciclo di vita

Il marketplace di plugin: dalle esigenze alle skill condivise

Cos'è una skill (un comportamento, non un comando), come nasce da un'esigenza concreta in un progetto, come si crea e si valida con skill-creator, come capire se esiste già un tool o una skill che fa quel lavoro, i criteri del marketplace, ed esempi reali — per lo sviluppo software e non.

skill · marketplace di plugin esigenza → skill → PR validate con skill-creator 2026-07-24
Autore
Marco Manfrin · Sistec · AI expert and early adopter, Developer
Versione
1.0 · indice di revisione, incrementato a ogni revisione
Ultima revisione
2026-07-24 · revisionato da Marco Manfrin @Sistec

Documento a monte

Questo documento è il §9 di Adozione Claude & Claude Code in Sistec, sviluppato in un documento autonomo. Leggi prima l'index per il contesto: ciclo agentico, contesto, prompt, CLAUDE.md, subagent. Qui si approfondisce solo il primo dei due canali di condivisione — le skill via marketplace. L'altro canale, la conoscenza, vive nella wiki-LLM. L'analisi delle skill già presenti nel marketplace Sistec è nel documento complementare audit e criteri di integrazione.

§1

Cos'è una skill

Una skill non è un comando da terminale — non è git merge. È un comportamento atteso. La sua description dichiara quando va usata, e Claude la richiama da solo quando la situazione combacia. Non la invochi per nome: la descrivi bene e lei si attiva al momento giusto. L'interfaccia con l'utente è il linguaggio naturale, non un vocabolario di comandi da imparare.

---
name: commenti-codice
description: Come scrivere i commenti del codice in questo progetto.
             Usare QUANDO Claude sta per scrivere o modificare codice sorgente.   // <- il "quando" è la parte che conta
---
  ... corpo della skill: le istruzioni vere e proprie ...

Il principio

«Una skill serve quando c'è una decisione da prendere — giudizio semantico che solo un LLM può dare — non un'istruzione meccanica da eseguire.»

Ogni skill è una cartella con un SKILL.md (l'entry point: trigger, invocabilità, istruzioni) più eventuali file di supporto: script deterministici, checklist, template. Regola d'oro: self-contained — tutto ciò che serve sta dentro la cartella, niente dipendenze implicite dall'esterno.

Skill (comportamento)Script / tool deterministico
Naturagiudizio, interpretazione, dominioprocedura fissa, stesso output ogni volta
Quandol'output dipende dal contestol'operazione è sempre identica
Esempio«diagnostica perché il device non risponde»build, copia file, deploy
Forma giustaSKILL.md nel marketplacebash, Python, GitHub Action

Il test infallibile

Se la procedura che stai descrivendo si può scrivere in 30 righe di bash, non è una skill: è uno script. Mettilo in scripts/ o in una GitHub Action. La skill non è un contenitore per rimediare alla mancanza di tooling.

Comando vs skill — nota

I comandi (gli slash-command scriptati) sono deprecati a favore delle skill. Per i pochi casi che devono restare a scatenamento esplicito (li invoca solo l'umano, mai il modello) si usa una skill con disable-model-invocation: true.

§2

Il ciclo di vita: dall'esigenza al marketplace

Una skill non nasce nel marketplace. Nasce da un'esigenza concreta mentre si lavora a un progetto: un compito ripetibile che richiede giudizio e che vorresti non dover rispiegare ogni volta. Il marketplace è l'ultimo passo, non il primo — e non è automatico.

Fig 1Il ciclo di vita di una skill: nasce da un'esigenza nel progetto, si crea e valida con skill-creator, si condivide via pull request al marketplace, si installa ovunque.
Esigenza compito ripetibile nel progetto · commessa Crea + valida skill-creator eval · variance Pull request main protetto · revisione de-coupling dal workspace Marketplace install · disponibile a tutti una sola versione canonica l'uso genera nuove esigenze → nuove skill
esigenza creazione · condivisione distribuzione
  1. Nasce da un'esigenza. Lavori alla commessa 141414 e ti accorgi di ripetere lo stesso ragionamento — «tradurre le stringhe HMI rispettando le chiavi del DB», «diagnosticare un device muto in rete». La skill nasce , in .claude/skills/ del progetto.
  2. Si crea e si valida. Non a mano: con skill-creator (§4), che struttura lo SKILL.md, affina la description per lo scatenamento corretto, e la mette alla prova con degli eval.
  3. Passa il filtro. Prima di proporla, la si mette contro le tre domande del marketplace (§3, §5): esiste già un tool deterministico? è comportamento nativo travestito? Claude farebbe peggio senza?
  4. Si condivide via PR. Il marketplace espone solo main, protetto: niente commit diretti. La skill viene de-coupled dal workspace privato di chi l'ha scritta (path assoluti → relativi o $env:CLAUDE_PLUGIN_ROOT) e proposta con una pull request al maintainer.
  5. Si installa ovunque. Approvata e mergiata, è disponibile a tutto il team con un install. Una sola versione canonica, sempre passata da revisione.

Perché nasce prima nel progetto

Una skill che nasce «per il marketplace» in astratto è quasi sempre sbagliata: manca il banco di prova. Una skill che nasce da un'esigenza reale è già stata usata, corretta, affinata sul campo prima di essere proposta. La condivisione promuove qualcosa che funziona già, non un'ipotesi.

§3

Prima di scriverla: esiste già?

La domanda più importante viene prima di scrivere una riga: quel lavoro lo fa già qualcosa? Due controlli, in quest'ordine.

3.1 Esiste già un tool deterministico?

Git, un linter, un analyzer, docker compose, uno script PowerShell. Se per quel compito esiste già un tool deterministico che dà risposte certe, un'approssimazione LLM ha valore negativo: aggiunge non-determinismo, consuma contesto, e azzera il vantaggio di uno strumento che produce lo stesso risultato ogni volta.

Esempio

Una skill che «analizza il repo, cerca i metodi definiti e vede se sono chiamati» non ha senso: scrivi mezza riga di prompt — «builda ed elimina i warning di codice morto» — e per il rigore usa un linter, che esiste da quarant'anni.

3.2 Esiste già una skill?

Esistono skill universalmente note, riusabili, mantenute da altri. Prima di reinventarle, cercale — nel marketplace Sistec e in quelli pubblici:

Esempio di skill fatta bene da studiare: karpathy-guidelines.

Il filtro a tre domande

Se sopravvive ai due controlli sopra, resta la domanda decisiva del marketplace (§5): «Claude farebbe materialmente peggio SENZA questa skill?» Se togliendola Claude se la cava comunque — magari con un prompt un po' più lungo — la skill non merita il marketplace.

§4

Creare e validare con skill-creator

Le skill si scrivono bene con una skill: skill-creator. Non è un template statico — è un assistente che crea una skill da zero, modifica e migliora quelle esistenti, e soprattutto ne misura le prestazioni.

Cosa faA cosa serve
Crea da zerostruttura la cartella e il SKILL.md — frontmatter, corpo, file di supporto — secondo le convenzioni.
Modifica / ottimizzarifinisce una skill esistente: corpo più chiaro, istruzioni meno ambigue, file di supporto meglio separati.
Ottimizza la descriptionè la parte che conta: la description decide quando la skill scatta. La affina per una precisione di scatenamento più alta.
Esegue evalmette la skill alla prova su casi reali per verificare che si attivi quando deve — e non quando non deve (falsi positivi).
Benchmark + variance analysismisura le prestazioni ripetutamente e ne quantifica la variabilità: una skill che scatta il 60% delle volte non è pronta.

4.1 Il punto critico — la description

Una skill perfetta nel corpo ma con una description vaga è inutile: non scatta mai, o scatta a sproposito. Il valore di skill-creator è proprio qui — trasformare la description da «cosa fa la skill» a «quando Claude deve usarla», e verificarlo con gli eval invece di indovinare.

Il ciclo di validazione

  1. Scrivi la skill (o falla scrivere a skill-creator dall'esigenza).
  2. Esegui gli eval: casi che devono attivarla e casi che non devono.
  3. Misura la variance: ripeti e guarda quanto è stabile lo scatenamento.
  4. Affina la description finché la precisione è alta e stabile.
  5. Solo allora proponi la PR al marketplace.

Validato prima di condividere

Il marketplace non è il posto dove scoprire che una skill non scatta. Una skill entra in PR solo dopo essere passata dagli eval e dal benchmark di skill-creator. È il controllo di qualità che rende sensata la revisione umana successiva: il maintainer valuta il merito, non il funzionamento di base.

§5

Il marketplace, tecnicamente

Fin qui il marketplace è stato «il posto dove vivono le skill condivise». Concretamente è una cosa precisa: un catalogo — un repository git (o una directory) che contiene un file manifesto .claude-plugin/marketplace.json. Quel file elenca i plugin; ogni plugin impacchetta le skill (e altro). Claude Code non installa skill sciolte: installa plugin da un marketplace registrato.

Tre livelli — non confonderli

Marketplace = il catalogo (il repo con marketplace.json). Plugin = un'unità installabile elencata nel catalogo; impacchetta uno o più componenti. Skill = un componente dentro un plugin (una cartella con SKILL.md). Si installa il plugin; le sue skill diventano disponibili.

MarketplacePluginSkill
Cos'ècatalogo gitunità installabilecomportamento
File chiave.claude-plugin/marketplace.json.claude-plugin/plugin.jsonSKILL.md
Contienelista di pluginskill, agent, hook, MCP server…trigger + istruzioni
Azionesi registra (add)si installa (install)scatta da sola

5.1 Struttura del repository

Un plugin non impacchetta solo skill: può portare agent, hook, MCP server, output-style, tema. La skill è il componente più comune, ma il plugin è il contenitore.

// repo del marketplace
marketplace-sistec/
├── .claude-plugin/
│   └── marketplace.json          // IL CATALOGO: name, owner, plugins[]
└── plugins/
    └── hmi-developer/            // un plugin
        ├── .claude-plugin/
        │   └── plugin.json       // manifesto del plugin (solo name obbligatorio)
        ├── skills/
        │   ├── translate/
        │   │   └── SKILL.md       // una skill = una cartella con SKILL.md
        │   └── dpi-anchor-fix/
        │       ├── SKILL.md
        │       └── assets/probe.ps1   // engine deterministico bundlato
        ├── agents/               // subagent (opzionale)
        └── hooks/hooks.json       // hook (opzionale)

Il marketplace.json elenca i plugin e da dove prenderli — path relativo nello stesso repo, oppure un altro repo GitHub/git, un sottoalbero di monorepo, un pacchetto npm:

{
  "name": "marketplace-sistec",
  "owner": { "name": "Sistec", "email": "..." },
  "plugins": [
    { "name": "hmi-developer",   "source": "./plugins/hmi-developer" },
    { "name": "technical-writer","source": "./plugins/technical-writer" }
  ]
}

5.2 Registrare e installare

Due verbi distinti: si registra il marketplace una volta, poi si installa il plugin che serve. Le skill del plugin diventano subito disponibili — namespaciate col nome del plugin (/hmi-developer:translate), ma nell'uso normale scattano da sole via description.

# 1. registra il marketplace (una volta) — GitHub, git URL, path locale
/plugin marketplace add sistec/marketplace-sistec
/plugin marketplace add ./marketplace-sistec          # path locale

# 2. installa un plugin dal marketplace
/plugin install hmi-developer@marketplace-sistec

# gestione
/plugin marketplace list          # marketplace registrati
/plugin list --enabled            # plugin installati
/plugin uninstall hmi-developer@marketplace-sistec
/plugin                           # manager interattivo (Discover/Installed/Marketplaces/Errors)

La versione canonica è git

La sorgente di un plugin può fissare un ramo/tag (ref) o un commit esatto (sha). Con sha tutti installano lo stesso identico commit, anche se il ramo a monte cambia. È così che «una sola versione canonica» smette di essere uno slogan e diventa un fatto verificabile: il commit è l'identità.

Il marketplace Sistec

È un repo git interno. Espone solo main, con regola di protezione: niente commit diretti, si entra solo via pull request revisionata. Aggiungere una skill = aprire una PR che tocca plugins/<plugin>/skills/ e, se è un plugin nuovo, la voce in marketplace.json. Per il cowork in ufficio stesso meccanismo, marketplace diverso.

§6

I criteri del marketplace

Registrare e installare è meccanica (§5). La domanda vera è cosa merita di entrare nel catalogo. Il marketplace Sistec espone solo main protetto: si entra solo via pull request revisionata — una sola versione canonica, niente copie a mano che divergono.

Perché la PR è l'unico canale

main protetto significa una sola versione, sempre passata da una revisione. La condivisione diventa un atto tracciabile — esattamente come un merge in git. Per il cowork in ufficio valgono le stesse regole, ma su un marketplace diverso (interno). Stesso meccanismo, ambito diverso.

6.1 Il filtro a tre domande

Una skill merita il marketplace solo se passa tutte e tre. Se anche una risposta è «no» o «forse», si scarta.

DomandaSe «sì»…
1 · Lo fa già, meglio, un tool deterministico? (git, linter, script) scartata: l'LLM aggiunge solo non-determinismo.
2 · È comportamento nativo travestito? (plan mode, /clear, Read/Grep/Glob) scartata: ridondante, e rischia di peggiorare ciò che Claude già sa fare.
3 · Claude farebbe materialmente peggio SENZA? se «no», scartata: deve portare giudizio semantico irrinunciabile.

6.2 I due pattern che vincono

1 · Bundla + interpreta

Uno script deterministico raccoglie dati grezzi (sonda la configurazione DPI delle form, scandisce le NIC di rete); l'LLM interpreta il risultato e decide l'azione migliore. Il valore è nel giudizio, non nella raccolta.

2 · Puro semantico

Un lavoro che nessun tool deterministico sa fare: tradurre testo HMI rispettando le chiavi esatte del database, manutenere un .docx preservando commenti e revisioni, portare l'intento di una feature tra due codebase divergenti.

Il punto comune: l'LLM non sostituisce un tool — fa ciò che il tool non può fare.

6.3 Requisiti di forma

Specificità di dominio non squalifica

A differenza di un marketplace pubblico, la specificità Sistec (lo schema language_spv, le convenzioni Sistec.Core, i pattern .NET per l'automazione industriale) non squalifica una skill — anzi, è il motivo per cui esiste: incapsula conoscenza di dominio che un LLM generico non ha.

L'analisi completa — 6 skill integrate, 14 scartate, con la motivazione di ciascuna — è nel documento audit e criteri di integrazione.

§7

Esempi di skill — dev e non

Una skill non serve solo a chi scrive codice. Il criterio è sempre lo stesso — giudizio semantico riusabile — ma il dominio cambia. Ecco esempi reali (e plausibili) su entrambi i fronti.

7.1 Sviluppo software

SkillEsigenzaPattern
hmi-developer/dpi-anchor-fixform .NET 8 con bug di DPI e ancoraggio: uno script segnala i controlli a rischio, l'LLM decide caso per caso quale correzione è sicura. bundla + interpreta
hmi-developer/translatetradurre stringhe HMI IT↔EN rispettando le chiavi esatte di language_spv, inferendo il significato dal call-site. puro semantico
hmi-developer/reconcile-solutionsportare l'intento di una feature tra due soluzioni .NET divergenti — un merge semantico, non testuale. puro semantico
hmi-developer/add-docaggiungere commenti/doc di codice secondo le convenzioni del progetto, dove serve giudizio su cosa vale la pena documentare. puro semantico

6.2 Non solo codice

SkillEsigenzaPattern
technical-writer/maintain-manualmanuali .docx con commenti e revisioni tracciate: inserire una sezione senza rompere i canali nascosti di Office Open XML. puro semantico
device-spy/network-probedevice industriale muto in rete: uno script sonda NIC/IP/ driver, l'LLM diagnostica (link-flap vs conflitto IP vs driver fermo). bundla + interpreta
spec-documentredigere una specifica tecnica nello stile engineering-sheet Sistec: struttura, callout, figure, revisioni — dove il giudizio è nell'organizzare il contenuto. puro semantico
graphifytrasformare documenti, appunti o codice in un knowledge graph clusterizzato — utile a chiunque debba mappare relazioni, non solo agli sviluppatori. puro semantico

Il filo comune

Dev o non-dev, la skill vale quando cattura una competenza — la sensibilità del tecnico di rete che legge un output di Get-NetAdapterStatistics, la mano del technical writer che non rompe un .docx, la convenzione di traduzione HMI — e la rende riusabile da chiunque, senza doverla rispiegare.

§8

Riferimenti