Riferimento skills.yaml
Riferimento per skills.yaml, il file di progetto di mestiere che elenca agenti, registry, namespace e skill installati, esclusioni e il lock.
skills.yaml sta nella root del progetto. Un solo file contiene sia quello che hai chiesto sia quello che è stato risolto. Le skill globali usano lo stesso formato in ~/.config/mestiere/skills.yaml.
Esempio
version: 1
agents:
- claude
- kiro
registries:
polarity:
url: git@github.com:polarity-dev/skills.git
ref: main # branch, tag o commit; di default il branch di default del registry
install:
- frontend # intero namespace
- backend/db-migrations # singola skill
exclude:
- frontend/legacy-forms # salta una skill di un namespace installato
lock: # scritto da mestiere
frontend-forms:
path: skills/frontend/forms
commit: 3f2a9c1e...
tree: 9be1d07a...
Chiavi
| Chiave | Modificata da | Significato |
|---|---|---|
version |
mestiere | Versione del formato del file. Sempre 1. |
agents |
te | Harness che ricevono i link: claude, kiro. .agents/skills/ è sempre usata. |
registries.<name>.url |
te | URL git del registry: SSH, HTTPS o un percorso locale. |
registries.<name>.ref |
te | Branch, tag o commit da seguire. Di default è il branch di default del registry. |
registries.<name>.install |
te | Namespace (frontend) e skill (backend/db-migrations) da installare. |
registries.<name>.exclude |
te | Skill di un namespace installato da saltare. |
registries.<name>.lock |
mestiere | Skill risolte: percorso nel registry, commit e hash del contenuto. Non modificarlo mai. |
link |
te | Opzionale. copy dà alle cartelle degli agenti delle copie invece dei symlink. |
strict |
te | Opzionale. true fa fallire doctor sulle skill locali senza commit. |
Quando riscrive il file, mestiere conserva i tuoi commenti e l'ordine delle chiavi. Dopo aver modificato a mano install, exclude o agents, esegui mestiere sync.
Il lock
Ogni voce sotto lock ha come chiave il nome installato, <namespace>-<skill>:
path: dove si trova la skill nel registry.commit: il commit del registry a cui è stata risolta.tree: l'ID del tree git della cartella installata. Cambia solo quando cambia il contenuto di quella skill, ed è così cheoutdatedignora i commit che non toccano una skill.
add e update scrivono il lock. sync installa esattamente quello che indica.
Fissare la versione di un progetto
Segui un tag o un commit invece di un branch:
registries:
polarity:
url: git@github.com:polarity-dev/skills.git
ref: v2026.10
Chi gestisce un registry non deve per forza creare tag di versione: ogni installazione è già bloccata su un commit.
Struttura installata
.agents/skills/frontend-forms/ # file reali
.claude/skills/frontend-forms -> ../../.agents/skills/frontend-forms
.kiro/skills/frontend-forms -> ../../.agents/skills/frontend-forms
I link sono relativi, quindi continuano a funzionare quando sposti il repository. Con link: copy, le cartelle degli agenti ricevono invece delle copie.
.gitignore
mestiere init aggiunge una regola, e solo se le regole che hai già non coprono le cartelle delle skill:
**/.*/skills/*
Ignora ogni cartella di skill dentro qualsiasi directory nascosta, pacchetti annidati compresi, ma non tocca file come .claude/settings.json. Basta una riga di eccezione per fare il commit di un'intera skill:
!.claude/skills/my-skill
mestiere track <skill> e mestiere untrack <skill> aggiungono e rimuovono queste righe per ogni cartella in cui compare la skill. Scriverle a mano funziona allo stesso modo.