Les équipes qui mélangent catalogue ClawHub, dépôt Git courant et services launchd voient souvent la même confusion : un skill « apparaît » dans un outil mais pas dans l'autre, ou la passerelle refuse un plugin pourtant listé. La cause n'est presque jamais magique : ce sont des résolveurs de chemins différents, une priorité workspace ignorée, ou un seuil minGatewayVersion qui protège la passerelle contre un binaire trop ancien. Ce runbook aligne la chaîne téléchargement → résolution → chargement → audit et donne un scénario reproductible quand une famille de plugins se retrouve dans le mauvais répertoire. Gardez à l'esprit que doctor interroge l'état au moment du test : si vous l'exécutez depuis un shell utilisateur alors que le service tourne sous un autre compte, les listes de skills divergeront encore après correction des chemins — rejouez toujours le diagnostic sous l'identité effective du démon avant de clôturer un ticket. Pour l'alignement conteneur, montages et doctor après installation des dépendances, voir aussi
OpenClaw 2026 : mode conteneur, sockets et skills avec doctor
; pour les premiers échecs d'installation de plugins sous charge multi-canal,
Cron, passerelle 18789 et dépannage plugins.
1. openclaw skills et la CLI ClawHub : deux chemins, une seule vérité à documenter
La sous-commande openclaw skills résout les artefacts relativement à la configuration effective du démon et au répertoire de travail du processus passerelle : pensez OPENCLAW_HOME, unités launchd et variables injectées par Compose. La CLI clawhub (installations, recherche, épinglage) écrit souvent sous le préfixe utilisateur ou le cache d'outillage npm, selon comment vous l'avez installée. Lorsque les deux mondes divergent, vous observez des paquets présents « côté développeur » mais absents au boot service, ou l'inverse. Corrigez en premier : imprimez which openclaw, which clawhub, la version Node effective et le répertoire racine OpenClaw dans le même shell que celui qui lance la passerelle. Documentez la paire dans le dépôt ; refusez les PR qui ajoutent un troisième chemin implicite via sudo npm -g sans mise à jour du service.
2. Priorité workspace : manifestes locaux avant le catalogue
Les skills déclarés dans le workspace (dossier du dépôt, profils partagés d'équipe) priment généralement sur les entrées purement distantes du catalogue lorsque les identifiants entrent en collision : c'est voulu pour permettre des overrides sécurisés et des hotfix sans republier le hub. Si un collègue « corrige » un skill en doublant le nom dans openclaw.json tout en laissant l'ancienne copie dans un sous-dossier, vous obtiendrez des comportements qui changent selon le répertoire courant du job CI. Normalisez les noms, supprimez les doublons morts et versionnez les manifestes comme du code applicatif. Sur les runners, fixez explicitement le checkout utilisé par la passerelle pour que la résolution workspace ne pointe pas vers un artefact partiellement nettoyé entre deux jobs. Documentez aussi l'ordre de fusion des fragments de configuration : une équipe qui charge d'abord un profil global puis un profil local évite les surprises quand le dépôt change de branche pendant une session de debug interactive.
3. minGatewayVersion : message d'écart et plan de remédiation ordonné
Le champ minGatewayVersion (ou équivalent dans le manifest du plugin) protège contre des incompatibilités de protocole : un plugin compilé pour une passerelle 2026.4.x peut refuser de s'initialiser sur une 2026.2.x encore en production sur un nœud oublié. Traitez le message comme une exigence d'infrastructure, pas comme un bug applicatif : épinglez la passerelle résidente sur la série attendue, déployez en canary, puis mettez à jour les plugins. Évitez de désactiver le contrôle « pour aller vite » : c'est là qu'apparaissent les routes HTTP fantômes et les régressions de sandbox. Après bump, enchaînez doctor et un smoke test MCP sur une seule route avant d'élargir le trafic.
4. Famille de plugins mal installée : scénario reproductible en cinq étapes
(1) Installez volontairement un plugin « famille A » dans le répertoire réservé à la famille B (mauvais préfixe ou mauvais scope npm). (2) Redémarrez la passerelle sans nettoyer le cache. (3) Observez une entrée dans la liste des plugins avec une version affichée mais des routes absentes ou des imports qui échouent au runtime. (4) Lancez doctor : notez les chemins résolus et comparez-les au graphe d'installation ClawHub. (5) Corrigez par désinstallation propre, suppression du répertoire fantôme, réinstallation avec le même utilisateur que le service, puis redémarrage contrôlé. Archivez les sorties dans le ticket pour que l'équipe support ne redécouvre pas le piège. Ce scénario éduque aussi les revues de configuration où plugins.entries mélange des sources sans garde-fous.
- Les chemins
openclaw skillset ClawHub pointent-ils vers le même arbre après impersonation du compte service ? - Le workspace override-t-il un skill du catalogue de façon intentionnelle ?
- La passerelle satisfait-elle
minGatewayVersionpour chaque plugin actif ?
5. Mac distant haute mémoire : passerelle résidente, épinglage de version et audit
Sur un Mac dédié très doté en RAM, tenez la passerelle comme un service de première classe : image ou paquet figés (npm shrinkwrap, conteneur digest, ou tag semver interne), journaux centralisés, rotation des jetons d'accès MCP et revue trimestrielle des plugins.entries. Ajoutez une étape d'audit sécurité scriptée : liste des plugins chargés, empreintes des binaires, comparaison aux versions publiées ClawHub, et alerte si un chemin sort d'un volume attendu. Isolez ce nœud des matrices CI qui purgent agressivement les caches pour éviter les races pendant l'audit. L'épinglage réduit la dérive ; l'audit la rend visible avant qu'un incident ne devienne un post-mortem. Pour les environnements hybrides, tracez séparément la version de la passerelle accessible sur loopback, celle exposée via tunnel SSH et celle vue depuis le tailnet afin que les bumps ne désalignent pas les clients qui mettent encore en cache une ancienne route HTTP des plugins.
Pourquoi ce schéma gagne à rester sur un Mac mini Apple Silicon
La résolution des chemins et les contrôles de version ne valent que si l'hôte exécute la même pile pendant des semaines : macOS offre une pile Unix mature, des mécanismes Gatekeeper, SIP et FileVault, et une consommation au repos faible adaptée à une passerelle toujours allumée. Un Mac mini Apple Silicon combine silence, faible encombrement et mémoire unifiée à large bande passante, ce qui amortit les pics lorsque plusieurs plugins ou skills chargent des modèles ou des caches volumineux. Le coût total de possession se compare favorablement à une tour bruyante laissée sous un bureau, surtout lorsque vous dimensionnez la RAM pour la passerelle et non pour des jobs Xcode parallèles sur la même machine. Si vous voulez déployer cette passerelle résidente sur du matériel fiable proche de vos équipes, consultez l'accueil Macstripe pour choisir un Mac mini M4 avec la mémoire adaptée à votre passerelle OpenClaw et à vos audits récurrents.