Dépôt de plugins
Ce dépôt réunit les plugins Claude Code que j’emploie sur mes projets et que je partage avec mon équipe : ils décrivent, pour Spring, React et Flutter, les rôles d’architecte, de développeur, de testeur et de responsable du déploiement, ainsi que la manière dont chacun passe la main au suivant.
- Rôle
- Auteur principal ; un second contributeur à l’origine du plugin Flutter
- Période
- Depuis septembre 2026
- État
- En service. Cinq plugins et dix-neuf compétences, employés sur Sanu
- Technologies
- Claude Code, Markdown, JSON, bash
- Dépôts
- Un
Contexte
Un plugin Claude Code regroupe des compétences, c’est-à-dire des consignes écrites que l’assistant charge lorsqu’une demande les concerne. Le dépôt en contient cinq : un pour le travail de produit, trois pour les piles Spring, React et Flutter, et un propre à Sanu. Il ne renferme aucun code d’application, seulement des fichiers Markdown, des manifestes JSON et deux scripts.
Ces consignes s’adressent à un assistant, et elles ont pour la plupart été écrites avec lui, comme en témoigne la cosignature que portent la plupart des commits du dépôt.
Problème
Une consigne unique, qui mêle la structure, le code, les tests et la livraison, conduit l’assistant à décider de nouveau, à chaque étape, ce qui avait été décidé à la précédente, de sorte que deux architectures finissent par coexister dans le même dépôt. Un résumé transmis d’une étape à l’autre transforme par ailleurs une hypothèse en fait, sans que personne l’ait vérifiée. Il fallait enfin qu’un travail déclaré terminé le soit sur une preuve et non sur une affirmation.
Réponse apportée
Des rôles qui ne se recouvrent pas
Chaque pile dispose des cinq mêmes rôles. L’architecte fixe la structure et les règles, le développeur écrit à l’intérieur de ces règles, le testeur écrit les tests et rend le verdict, le responsable du déploiement construit et livre, et l’orchestrateur range la demande puis conduit la chaîne. Une décision arrêtée par un rôle n’est pas rouverte en aval, et la description de chaque compétence précise aussi ce qu’elle ne couvre pas, en nommant celle qui s’en charge.
Un passage de relais vérifiable
Un rôle termine par un bloc à champs fixes, qui est copié tel quel dans le contexte du rôle suivant. Tout fait relatif au dépôt ou au contrat y cite sa source, à savoir un fichier et une ligne, faute de quoi il est rangé parmi les hypothèses, formulées de manière qu’un relecteur puisse les réfuter d’un mot.
It travels verbatim. Copied into the next role's context, into the next subagent's
prompt, and into the final report. A paraphrased block is how an assumption written
carefully by one role becomes a fact in the next.
Every fact about the contract, the backend or the repository names its source, a file
and a line or a schema path, or it is listed under assumptions. Assumptions are phrased
so a reviewer can refute each in a word.
A field with nothing in it says `none`, so the next role knows it was considered and
not forgotten.Un verdict à deux mots
Chaque pile possède une commande unique de vérification, la même sur le poste et dans le pipeline. Le testeur conclut par l’un de deux mots, GREEN ou BLOCKED, accompagné de la sortie de cette commande, et une chaîne interrompue avant lui se déclare construite mais non vérifiée. Le travail en parallèle suppose de son côté un plan arrêté au préalable par l’architecte, qui attribue à chaque tranche ses fichiers, désigne le propriétaire de chaque fichier partagé et fixe l’ordre de fusion.
Des règles révisées à l’usage
Les règles changent lorsque leur coût devient visible. L’exigence d’une couverture de 100 % sur tous les paquets Flutter a ainsi été ramenée à deux niveaux, après qu’une fonctionnalité eut demandé environ 1 700 lignes de tests pour 500 lignes de code. Ces plugins ont été employés sur Sanu, dont le document d’architecture Flutter est rédigé par le rôle d’architecte et gelé avant le code qui en dépend.
Limites et perspectives
Rien ne vérifie qu’une compétence se déclenche sur la bonne demande ni qu’elle produit le comportement attendu : le dépôt ne comporte ni jeu d’évaluation ni pipeline, et sa seule preuve d’effet se trouve dans les dépôts de Sanu. Les chiffres cités dans les consignes sont par ailleurs des observations, et non des mesures conservées.
La version d’un plugin figure à trois endroits qui s’accordent à la main, et elle a déjà dérivé. Les trois piles répètent en outre une large part de leur texte, puisqu’une compétence ne renvoie jamais hors de son répertoire, si bien qu’une évolution commune se reporte trois fois. Le dépôt n’a enfin qu’un mois, et je suis l’auteur de la quasi-totalité de ses commits : le partage avec l’équipe reste pour l’essentiel à venir.
