Évaluer le risque des mods Claude Code sur les plugins installés #25

Closed
opened 2026-10-11 10:06:45 +02:00 by mathieu · 3 comments
Owner

Repéré dans la veille du 2026-10-07 (https://www.it-connect.fr/claude-code-mods-plugins/, annonce d'Anthropic du 2026-10-01). Les mods sont des plugins JavaScript ou TypeScript déclenchés par des événements (appel d'outil, prompt, rendu), actifs par défaut depuis Claude Code 2.1.287. Ils tournent avec les droits de l'utilisateur, sans bac à sable. Selon l'article, un mod peut approuver lui-même une action soumise à une règle « ask ».

Conséquence : tout plugin déjà installé peut se mettre à embarquer un mod à la prochaine mise à jour. Ça touche directement le chantier de garde de chaîne d'approvisionnement (ADR-0008, chantier 3) et la grille « sans confirmation » des veilles.

Garde-fous cités, à vérifier dans la documentation officielle : claude plugin validate, allowManagedModsOnly, --safe-mode, disableAllHooks.

Opportunité, à part : le hook de garde et la détection de dérive au SessionStart (chantier 6) pourraient devenir des mods.

Critères d'acceptation

  • Les affirmations de l'article sont vérifiées dans la documentation officielle, en particulier l'auto-approbation d'une règle « ask »
  • Inventaire : quels plugins installés embarquent un mod aujourd'hui
  • Décision : allowManagedModsOnly (ou équivalent) entre ou non dans les réglages ou le CLAUDE.md global, via la source chezmoi
  • « Contient un mod ? » ajouté à la grille des défauts du protocole de veille

Migré de Kaneo le 2026-10-11 : ATE-22 du projet « Atelier », créée le 2026-10-07.

Repéré dans la veille du 2026-10-07 (https://www.it-connect.fr/claude-code-mods-plugins/, annonce d'Anthropic du 2026-10-01). Les mods sont des plugins JavaScript ou TypeScript déclenchés par des événements (appel d'outil, prompt, rendu), actifs par défaut depuis Claude Code 2.1.287. Ils tournent avec les droits de l'utilisateur, sans bac à sable. Selon l'article, un mod peut approuver lui-même une action soumise à une règle « ask ». Conséquence : tout plugin déjà installé peut se mettre à embarquer un mod à la prochaine mise à jour. Ça touche directement le chantier de garde de chaîne d'approvisionnement (ADR-0008, chantier 3) et la grille « sans confirmation » des veilles. Garde-fous cités, à vérifier dans la documentation officielle : `claude plugin validate`, `allowManagedModsOnly`, `--safe-mode`, `disableAllHooks`. Opportunité, à part : le hook de garde et la détection de dérive au SessionStart (chantier 6) pourraient devenir des mods. ## Critères d'acceptation - [ ] Les affirmations de l'article sont vérifiées dans la documentation officielle, en particulier l'auto-approbation d'une règle « ask » - [ ] Inventaire : quels plugins installés embarquent un mod aujourd'hui - [ ] Décision : `allowManagedModsOnly` (ou équivalent) entre ou non dans les réglages ou le `CLAUDE.md` global, via la source chezmoi - [ ] « Contient un mod ? » ajouté à la grille des défauts du protocole de veille --- *Migré de Kaneo le 2026-10-11 : ATE-22 du projet « Atelier », créée le 2026-10-07.* <!-- kaneo-id: xdc337a9z0p9tqy0kxo4nr5r -->
Author
Owner

Commentaire Kaneo du 2026-10-08 22:41 UTC

2026-10-09, ADR-0014 de kb-mathieu : les mods existent bien (plugins de function hooks, doc code.claude.com/docs/en/plugins/mods). Constat dans la référence locale de la skill intégrée plugin-authoring (v2.1.293) : un mod peut répondre à un appel d'outil et réécrire son résultat. La doc en ligne affirme qu'il peut approuver un appel refusé par un hook PreToolUse (non revérifié localement). Règle retenue : aucun mod tiers, claude plugin validate avant tout mod maison. Cette tâche bloque désormais « Collision Guard » (#26).

*Commentaire Kaneo du 2026-10-08 22:41 UTC* 2026-10-09, ADR-0014 de `kb-mathieu` : les mods existent bien (plugins de function hooks, doc `code.claude.com/docs/en/plugins/mods`). Constat dans la référence locale de la skill intégrée `plugin-authoring` (v2.1.293) : un mod peut répondre à un appel d'outil et réécrire son résultat. La doc en ligne affirme qu'il peut approuver un appel refusé par un hook `PreToolUse` (non revérifié localement). Règle retenue : aucun mod tiers, `claude plugin validate` avant tout mod maison. Cette tâche bloque désormais « Collision Guard » (#26).
Author
Owner

Commentaire Kaneo du 2026-10-10 06:49 UTC

Veille du 2026-10-10, lot C : élargir ce chantier aux mods écrits par Claude lui-même, pas seulement aux plugins installés. Rapport : kb-mathieu/inbox/veille-captures-2026-10-10/C-mods-generes.md (doc officielle code.claude.com uniquement).

Constats à vérifier sur le poste :

  • Une skill intégrée (plugin-authoring) fait écrire un mod sur simple description. Il atterrit dans ~/.claude/dev-mods/<session>/, non versionné. Une seule question active le rechargement à chaud pour la session ; les modifications suivantes se rechargent en fin de tour sans revue.
  • En mode auto (défaut depuis v2.1.283 selon la doc), l'écriture dans ~/.claude passe par le classifieur, pas par Mathieu. Un mod refusé par « Not now » se recharge à la reprise de session tant que son dossier existe.
  • claude plugin validate est une analyse statique : il liste hooks et appels, ne juge pas l'intention.
  • Un mod peut empêcher guard-destructive.sh de tourner, ou approuver un appel qu'il a bloqué. Seul un hook en managed settings lui résiste ; la garde sec-default n'est chargée qu'avec des managed settings ou un plan Team/Enterprise.

Critères à ajouter :

  • Vérifier si ce Mac a des managed settings ; décider d'y placer la garde (et allowManagedModsOnly)
  • Règle pour les mods générés : copie dans atelier, relecture ligne à ligne, validate, mode default, jamais activé dans une session qui a lu du contenu externe

Les trois usages du post (sessions qui se parlent, tableau de bord dans l'interface, routage vers un modèle moins cher) : seul le tableau de bord vaut un mod, en lecture seule, plus tard — par exemple pour afficher la dérive de configuration (chantier 6). Les deux autres ont un équivalent natif (SendMessage/agent teams ; champ model des sous-agents) ; le routage par mod rejoint claude-code-router, déjà écarté.

*Commentaire Kaneo du 2026-10-10 06:49 UTC* Veille du 2026-10-10, lot C : élargir ce chantier aux **mods écrits par Claude lui-même**, pas seulement aux plugins installés. Rapport : `kb-mathieu/inbox/veille-captures-2026-10-10/C-mods-generes.md` (doc officielle code.claude.com uniquement). Constats à vérifier sur le poste : - Une skill intégrée (`plugin-authoring`) fait écrire un mod sur simple description. Il atterrit dans `~/.claude/dev-mods/<session>/`, non versionné. Une seule question active le rechargement à chaud pour la session ; les modifications suivantes se rechargent en fin de tour sans revue. - En mode auto (défaut depuis v2.1.283 selon la doc), l'écriture dans `~/.claude` passe par le classifieur, pas par Mathieu. Un mod refusé par « Not now » se recharge à la reprise de session tant que son dossier existe. - `claude plugin validate` est une analyse statique : il liste hooks et appels, ne juge pas l'intention. - **Un mod peut empêcher `guard-destructive.sh` de tourner, ou approuver un appel qu'il a bloqué.** Seul un hook en managed settings lui résiste ; la garde `sec-default` n'est chargée qu'avec des managed settings ou un plan Team/Enterprise. Critères à ajouter : - [ ] Vérifier si ce Mac a des managed settings ; décider d'y placer la garde (et `allowManagedModsOnly`) - [ ] Règle pour les mods générés : copie dans `atelier`, relecture ligne à ligne, `validate`, mode `default`, jamais activé dans une session qui a lu du contenu externe Les trois usages du post (sessions qui se parlent, tableau de bord dans l'interface, routage vers un modèle moins cher) : seul le tableau de bord vaut un mod, en lecture seule, plus tard — par exemple pour afficher la dérive de configuration (chantier 6). Les deux autres ont un équivalent natif (`SendMessage`/agent teams ; champ `model` des sous-agents) ; le routage par mod rejoint claude-code-router, déjà écarté.
Author
Owner

Copie de l'essai de migration Kaneo → Forgejo du 2026-10-11 (rendu validé avant la vraie migration). Le ticket réel est mathieu/atelier#19. Fermé comme doublon.

Copie de l'essai de migration Kaneo → Forgejo du 2026-10-11 (rendu validé avant la vraie migration). Le ticket réel est mathieu/atelier#19. Fermé comme doublon.
mathieu 2026-10-11 13:24:20 +02:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
mathieu/essai-actions#25
No description provided.