Skills
Partagez des skills d’agent entre tous les projets d’une organisation — un dépôt git, un catalogue, et un interrupteur par projet.
Un skill est un dossier qui contient un SKILL.md (un name, une description, des instructions)
et les scripts ou références posés à côté. Claude Code garde la description de chaque skill en
contexte et charge le reste quand la tâche le demande.
Les skills propres à un dépôt vivent dans son .claude/skills/ et arrivent jusqu’à l’agent avec
le clone. Ceux qui vous appartiennent à vous vivent dans vos dotfiles. Les skills d’organisation
sont entre les deux : le même skill deploy, repos ou notion, voulu dans chaque projet
de l’équipe, écrit une seule fois.
Un owner ou un admin ajoute une source de skills dans Settings → Skills :
| Champ | Ce que c’est |
|---|---|
| Repository | choisi parmi les connexions git de votre organisation — ou une URL de clone |
| Path | le dossier dont les sous-dossiers sont des skills, p. ex. skills (vide = racine du dépôt) |
| Ref | une branche (suivie à chaque tâche) ou un tag (figé) ; vide = branche par défaut |
| Mode | On in every project (actif dans tous les projets), ou Off unless a project turns it on (inactif sauf si un projet l’active) |
Chaque sous-dossier du chemin qui contient un SKILL.md est un skill. Ouvrez une source pour les voir avec leurs
descriptions, telles que lues sur la ref — et pour faire d’un skill l’exception au mode de la source :
un même dépôt peut ainsi porter à la fois la base commune et les skills de niche.
Pourquoi un dépôt et pas un upload : l’historique, la revue en pull request, le retour arrière et l’épinglage sont offerts, et un agent qui tombe dans un piège peut corriger le skill par le chemin habituel — cloner, modifier, ouvrir une pull request.
Un projet reçoit l’ensemble par défaut de l’organisation sans rien configurer. Dans la section Edit → Skills du projet, chaque skill a un interrupteur : activez un skill facultatif, désactivez un skill par défaut. L’étiquette à côté dit qui a décidé — le défaut de l’organisation, ou ce projet — et le réglage propre à un projet peut être ramené au défaut.
C’est une question de pertinence, pas de sécurité : chaque description de skill se paie à chaque session, et un
skill picnic dans le dépôt du backend est du bruit sur lequel l’agent risque d’agir.
Enregistré immédiatement et hors des versions du projet : basculer un skill ne crée pas de version et ne reconstruit pas l’image.
À la création d’une sandbox, une étape de setup Skills (après vos dotfiles, avant vos
dépôts) clone chaque source dans ~/.spunto/skills/ et lie chaque skill retenu dans
${CLAUDE_CONFIG_DIR:-~/.claude}/skills/ — un lien par skill :
$ ls -la ~/.claude/skills
picnic -> /home/vscode/.spunto/skills/<source>/skills/picnic
spunto -> /home/vscode/.spunto/skills/<source>/skills/spunto- Rien n’est écrasé. Un skill du même nom venu de vos dotfiles — ou tout ce qui est déjà là — l’emporte, et le conflit est affiché dans le log du setup.
- Le commit exact de chaque source est affiché dans le log du setup, pour l’audit : les scripts d’un skill tournent dans la sandbox, avec ses secrets.
CLAUDE_CONFIG_DIRest lu dans la sandbox, il peut donc venir de l’un de vos secrets.
Avant chaque tâche, la même étape repasse : chaque source est avancée en fast-forward et les liens sont refaits d’après la sélection courante du projet — un skill mergé ce matin, ou activé il y a une minute, arrive à la tâche suivante, même sur une sandbox lancée depuis un snapshot. Elle ne supprime que les liens qu’elle a créés elle-même.
Le clone est fait au nom de l’organisation (le même credential que pour cloner vos projets), il
fonctionne donc pour chaque membre. Ensuite, le dépôt dans ~/.spunto/skills/ est un checkout ordinaire :
un git pull ou le git push d’une correction passe par le credential helper de la sandbox en votre nom,
comme les dépôts de votre projet.
Seuls les owners et les admins modifient le catalogue et la sélection d’un projet. Tous les membres peuvent lire les deux.
GET/POST /api/orgs/{orgId}/skill-sources, PATCH/DELETE …/{id} | le catalogue |
GET …/skill-sources/{id}/skills | les skills que contient une source sur sa ref |
GET /api/orgs/{orgId}/projects/{id}/skills | le catalogue tel qu’un projet le voit, avec la raison de chaque état |
PUT/DELETE …/projects/{id}/skills/{sourceId}/{skill} | activer ou désactiver un skill pour un projet, ou revenir au défaut (* = toute la source) |
Schémas complets dans la référence de l’API.