5.9 KiB
Déploiement Superpowers (obra/superpowers) — Flotte Hermes Agent, Claude Code & Antigravity
Instance auteur : hermes-perso
Date : 2026-08-18
Tags : [hermes, superpowers, plugins, skills, tls, ssh, synology, claude-code, antigravity]
Statut : valide
Probleme
Déployer le framework de compétences et de méthodologie agentique Superpowers (obra/superpowers) de manière unifiée et sécurisée sur :
- Les trois instances Hermes Agent NAS (
hermes-agent-nyora,hermes-agent-tt,hermes-agent-perso) sous Docker. - Claude Code (extension VS Code / CLI).
- Antigravity (
agy).
Le déploiement sur le NAS a rencontré plusieurs blocages d'infrastructure critiques :
- Blocage réseau lors des requêtes/clones HTTPS vers
github.com(handshake TLS 1.3 bloqué/timeout). - Commandes
dockerintrouvables lors des accès SSH non-interactifs. - Présence d'un clone dormant précoce sur
hermes-agent-persosans support natif.hermes-plugin.
Contexte et contraintes
- Hôte : Synology NAS DS920+ (DSM 7.x, Linux 4.4 kernel).
- Conteneurs :
nousresearch/hermes-agent:v2026.8.3(UID 1026, GID 100, utilisateurhermes). - Gestionnaire de processus interne : s6-overlay (
s6-rc,s6-supervise). - Canari strict : déploiement ordonné (
nyora->tt->perso) avec tests Telegram bloquants (@HermesNyoraBot,@HermesTTBot,@HermesPersoBot). Tolérance zéro pour les régressions sur TT.
Ce qui NE fonctionne PAS
| Tentative | Erreur obtenue | Raison de l'echec |
|---|---|---|
hermes plugins install obra/superpowers direct |
fatal: unable to access 'https://github.com/...': Failed to connect... Connection timed out |
Le handshake TLS 1.3 sortant vers github.com est intercepté/droppé sur le réseau NAS/Docker (CrowdSec / firewall Synology). Seul TLS 1.2 passe. |
docker exec ... via SSH non-interactif |
sh: docker: command not found (exit code 127) |
Les sous-shells non-interactifs sur Synology DSM démarrent avec un $PATH minimal (/usr/bin:/bin) qui n'inclut pas /usr/local/bin. |
Utilisation du clone existant /opt/data/skills/superpowers (du 17/06) |
Inactif, non chargé par le plugin manager | Clone créé avant le support officiel Hermes Plugin (dossier .hermes-plugin absent). |
hermes skills update <nom> pour découvrir de nouveaux skills |
No updates available |
La commande skills update ne découvre que les mises à jour de skills déjà installés, pas les nouveaux skills ajoutés à un tap distant. |
Solution validee
1. Piège SSH PATH Synology
Toujours exporter explicitement le chemin /usr/local/bin dans toute commande SSH non-interactive :
ssh -p 22222 Best0f@192.168.100.33 "export PATH=/usr/local/bin:\$PATH; <commande>"
2. Contournement réseau TLS 1.2 (Système + Utilisateur)
Forcer Git en TLS 1.2 au niveau système (/etc/gitconfig) ET utilisateur (/opt/data/home/.gitconfig) dans chaque conteneur :
for c in hermes-agent-nyora hermes-agent-tt hermes-agent-perso; do
docker exec $c git config --system http.sslVersion tlsv1.2
docker exec -u hermes $c git config --global http.sslVersion tlsv1.2
done
3. Nettoyage du clone dormant sur hermes-agent-perso
Renommer le clone obsolète sans le supprimer :
docker exec hermes-agent-perso mv /opt/data/skills/superpowers /opt/data/skills/superpowers.STALE-pre-hermes-plugin-support-20260818
4. Déploiement canari séquentiel sur Hermes Agent
Pour chaque instance (nyora, puis tt, puis perso) :
# 1. Installation du plugin
docker exec -u hermes hermes-agent-<instance> hermes plugins install obra/superpowers --enable
# 2. Redémarrage du conteneur (chargement s6 propre)
docker restart hermes-agent-<instance>
# 3. Vérification locale
docker exec -u hermes hermes-agent-<instance> hermes plugins list --plain --no-bundled
docker logs --tail 40 hermes-agent-<instance>
# 4. Gate Bloquant Telegram : tester le bot correspondant avec une intention de création ("on va construire X")
# Confirmer le réflexe brainstorming avant de passer à l'instance suivante.
5. Claude Code (Extension VS Code & CLI)
Puisque le binaire claude est présent (~/.local/bin/claude — Cas A) :
claude plugin install superpowers@claude-plugins-official
Note : Recharger la fenêtre VS Code (Developer: Reload Window) pour que l'extension prenne en compte le plugin partagé.
6. Antigravity
Installation directe via le gestionnaire de plugins d'Antigravity :
agy plugin install https://github.com/obra/superpowers
Verification
# 1. Hermes Agent
docker exec -u hermes hermes-agent-nyora hermes plugins list --plain --no-bundled
# Attendu: enabled user 6.3.0 superpowers
# 2. Claude Code
claude plugin list --json
# Attendu: "id": "superpowers@claude-plugins-official", "enabled": true
# 3. Antigravity
agy plugin list
# Attendu: "name": "superpowers", "components": ["skills", "hooks"]
Pieges specifiques DSM / NAS
- TLS 1.3 dropping : Tout outil effectuant des requêtes HTTPS directes vers GitHub (pip, npm, git) doit être configuré pour forcer TLS 1.2 si un timeout survient lors du handshake.
- Utilisateur hermes vs root :
docker execexécute par défaut sousroot. Les commandeshermes pluginset les fichiers de config utilisateur doivent impérativement être exécutés sous-u hermes(UID 1026) pour éviter des corruptions de permissions dans/opt/data/. - Absence de hook post-compaction Hermes : En cas de très longue session Telegram compactée dès son premier tour, le bootstrap Superpowers peut se désactiver. Ouvrir une session fraîche restaure l'amorçage.