Un plugin pour une petite équipe
Rassembler les Skills que ton équipe répète chaque semaine dans un plugin installable et versionné.
Dans une équipe de cinq personnes, il y a toujours quelqu'un qui a bricolé trois
Skills excellentes dans son .claude/ et qui est le seul à s'en servir. Les
quatre autres refont le même travail à la main, ou pire, redemandent la même
chose au modèle en le formulant chaque fois différemment.
Un plugin résout ça d'un coup : un dossier, versionné, que chacun installe et met à jour. Ce qui est intéressant à cette échelle, ce n'est pas la mécanique du plugin, elle tient en une page. C'est la question de savoir quoi mettre dedans. Un plugin qui embarque quinze Skills « au cas où » ne sera pas utilisé ; un plugin qui embarque les quatre gestes que l'équipe répète chaque semaine devient l'outil que personne ne veut désinstaller.
Ce guide part donc de l'inventaire, pas du plugin.json. Le montage technique
est en fin de parcours, et il est court.
Ce qui mérite d'entrer dans le plugin
Une règle simple : ce qui est partagé, stable et répété. Les trois à la fois.
| Candidat | Entre dans le plugin ? |
|---|---|
| La convention de commit de l'équipe | Oui : partagée, stable, répétée |
| Le format des comptes rendus client | Oui |
| La procédure de mise en ligne | Oui, si elle est écrite quelque part |
| Un prompt d'exploration que tu affines encore | Non, garde-le en .claude/ |
| Une préférence personnelle de style de code | Non, ça va dans ton ~/.claude/ |
| Le contexte du projet en cours | Non, ça va dans le CLAUDE.md du dépôt |
La dernière ligne est celle qui prête le plus à confusion. Le plugin porte les
façons de faire de l'équipe, qui suivent les gens d'un projet à l'autre. Le
CLAUDE.md porte les particularités d'un dépôt, qui restent avec le dépôt.
Mélanger les deux donne un plugin qu'il faut modifier à chaque nouveau client.
Quatre entrées valent mieux que quinze
Chaque Skill ajoute sa description au contexte de chaque session. Un plugin obèse coûte des jetons à tout le monde, tout le temps, et noie les entrées utiles. Commence à quatre. Ajoute la cinquième quand quelqu'un la réclame deux fois.
Avant de commencer
- Claude Code installé et authentifié sur les postes de l'équipe
- Un dépôt Git, même privé, pour héberger le plugin
- La liste des gestes que l'équipe répète chaque semaine
1Faire l'inventaire, à plusieurs
Trente minutes, tout le monde autour de la table. Une seule question : qu'est-ce que tu redemandes au modèle chaque semaine, et sous quelle forme ?
Note les réponses telles qu'elles sortent, sans les reformuler. Tu obtiendras une liste hétérogène : « la revue avant merge », « le message de commit », « le compte rendu de réunion client », « le résumé de ce qui a bougé cette semaine ».
Regroupe ensuite. Ce qui revient trois fois entre dans le plugin. Ce qui revient une fois reste chez la personne qui l'a formulé.
2Poser la structure
Un seul fichier va dans .claude-plugin/, tout le reste est à la racine du
plugin.
outils-equipe/
├── .claude-plugin/
│ └── plugin.json
├── skills/
│ ├── revue-avant-merge/SKILL.md
│ ├── compte-rendu-client/SKILL.md
│ └── message-de-commit/SKILL.md
├── agents/
│ └── relecteur.md
└── hooks/
└── hooks.json
Le manifeste :
{
"name": "outils-equipe",
"description": "Les gestes partages de l'equipe : revue, comptes rendus, commits.",
"version": "1.0.0",
"author": { "name": "Nom de l'equipe" }
}
L'erreur qui ne dit pas son nom
Si tu places skills/, agents/ ou hooks/ dans .claude-plugin/, le
plugin se charge et n'expose rien. Aucun message ne t'explique pourquoi. Seul
plugin.json vit dans ce dossier.
Le name sert d'espace de noms : les Skills s'appellent
/outils-equipe:revue-avant-merge. C'est verbeux, et c'est voulu : ça évite les
collisions et ça rend visible d'où vient ce qu'on invoque.
3Écrire les Skills pour quelqu'un d'autre
C'est la vraie difficulté du passage du personnel au partagé. Une Skill écrite pour soi suppose un contexte que les autres n'ont pas.
---
description: Prepare un compte rendu de reunion client au format de l'equipe. A utiliser apres une reunion client, a partir de notes brutes ou d'une transcription.
---
Produis un compte rendu au format suivant, dans cet ordre :
1. Decisions prises. Une ligne chacune, au passe. S'il n'y en a pas,
ecris "Aucune decision actee".
2. Points ouverts. Une ligne chacun, avec la personne qui doit trancher.
3. Actions. Une ligne chacune : quoi, qui, pour quand. Si l'echeance
n'a pas ete dite, ecris "date a confirmer" et ne l'invente pas.
4. Ce qui n'a pas ete aborde alors que c'etait a l'ordre du jour.
Contraintes : pas d'introduction, pas de conclusion, pas de reformulation
des echanges. Si une information manque pour remplir une section, dis-le
plutot que de combler.
Deux détails comptent. La description dit quand utiliser la Skill, pas
seulement ce qu'elle fait : c'est ce qui permet au modèle de la déclencher au
bon moment. Et la section 4 encode une exigence de l'équipe que personne
n'aurait pensé à demander, ce qui est précisément l'intérêt de figer la
pratique.
4Ajouter un hook, un seul
Une règle qui doit tenir à 100 % ne doit pas être une consigne. Le plugin porte
ses propres hooks dans hooks/hooks.json, avec le même format que dans
settings.json.
{
"hooks": {
"PostToolUse": [
{
"matcher": "Write|Edit",
"hooks": [
{
"type": "command",
"command": "jq -r '.tool_input.file_path' | xargs -r npx prettier --write"
}
]
}
]
}
}
Un hook lent s'exécute dans la boucle et se sent à chaque action. Sur un plugin partagé, cette latence est payée par toute l'équipe. Un seul hook utile vaut mieux que quatre qui alourdissent chaque écriture.
5Tester avant de diffuser
Charge le plugin pour une session, sans rien installer :
claude --plugin-dir ./outils-equipe
Puis, dans Claude Code, appelle une Skill par son nom complet, vérifie que les
agents apparaissent dans /context, et provoque l'événement du hook pour voir
son effet. Après une modification, /reload-plugins recharge sans relancer.
Enfin, passe la validation officielle :
claude plugin validate ./outils-equipe
Elle sort ✔ Validation passed, avec éventuellement des avertissements qui ne
bloquent pas. --strict les traite comme des erreurs.
6Distribuer en interne
Pour une petite structure, le plus simple est un dépôt Git privé qui sert de
place de marché interne, avec un .claude-plugin/marketplace.json à sa racine.
Chacun ajoute la place de marché une fois, puis installe le plugin.
claude plugin marketplace add votre-org/outils-claude
claude plugin install outils-equipe@outils-claude
Vérifie la syntaxe sur ta version
Les commandes de place de marché évoluent, et l'équivalent existe aussi en
commande interne (/plugin marketplace add). Avant de l'écrire dans ton
README d'équipe, exécute claude plugin --help sur ta version installée et
reprends la formulation exacte qu'elle affiche.
Le version du manifeste devient alors utile : tant que tu ne l'incrémentes
pas, personne ne reçoit tes modifications en cours. Tu peux travailler sur la
branche principale sans perturber l'équipe, et publier quand c'est prêt.
Le fichier qui décide de l'adoption
Le README.md du plugin. Trois sections, pas plus : comment l'installer, ce que
contient chaque Skill en une ligne, et quand s'en servir. Sans lui, le plugin
est installé une fois puis oublié, parce que personne ne se souvient de ce qu'il
y a dedans.
Ajoute aussi une règle de gouvernance, même informelle : qui a le droit d'ajouter une Skill, et sur quel critère. Sans ça, le plugin passe de quatre entrées à vingt en six mois, et redevient inutilisable.
Quelques prompts pour aller plus loin
| Objectif | Prompt à adapter |
|---|---|
| Trier l'inventaire | Voici 15 taches que mon equipe repete. Pour chacune, dis si elle releve d'un plugin partage, d'un CLAUDE.md de depot, ou d'une config personnelle. Justifie en une ligne. |
| Transformer une habitude en Skill | Voici comment je fais [TACHE] a la main, et 3 exemples de resultat que je considere comme corrects. Ecris le SKILL.md correspondant : description qui dit quand l'utiliser, puis instructions verifiables. |
| Écrire les descriptions | Voici mes 5 Skills. Reecris chaque description pour qu'elle dise quand l'utiliser et quand ne pas l'utiliser, en une ou deux phrases. |
| Tester le déclenchement | Voici la liste de mes Skills avec leurs descriptions. Pour chacune de ces 10 demandes, dis quelle Skill tu utiliserais, ou aucune. Ne les execute pas. |
| Faire le ménage | Voici le contenu de mon plugin et les 20 dernieres sessions de l'equipe. Quelles Skills n'ont jamais ete declenchees ? Propose lesquelles retirer. |
Tu as d’autres ressources comme ça ?
Ce que tu viens de lire est entièrement gratuit. Une nouvelle ressource part chaque semaine dans la newsletter : guides, modèles à copier et liens triés, sans compte à créer.
Me contacter
Une question, un projet, une envie de collaborer ? Écris-moi.
Cette page est en accès libre, n’hésite pas à la partager.