Point mise en oeuvre hermes_workflow_developpement¶
Contexte¶
Suivi de l'avancement de la mise en œuvre du workflow décrit dans shared/references/hermes-workflow-developpement. Dernière mise à jour : 20260513_0410.
Statut des étapes¶
| # | Étape | État | Détail |
|---|---|---|---|
| 1 | Git installé et configuré sur VPS | ✅ | Git 2.43.0, user "Hermes Agent" |
| 2 | Repo GitHub + remote | ✅ | kanmaber/PsychoEnLigne des deux côtés |
| 3 | Clé SSH VPS → GitHub | ✅ | id_ed25519 authentifiée |
| 4 | Script deploy.sh |
✅ | Présent, exécutable, chemin /opt/projets |
| 5 | Script sync.sh (VPS → GitHub) |
✅ | Présent et exécutable |
| 6 | Skill Hermes délégation Claude Code | ✅ | Skill /cc déployé, testé, fallback Nemotron opérationnel |
| 7 | Cron sync différée (VPS → PC) | ❌ | Bloqué — nécessite le tunnel SSH inversé d'abord |
| 8 | Notifications Telegram | ✅ | Token + Chat ID configurés dans notify.sh |
Éléments complémentaires¶
| Élément | État |
|---|---|
Volume /home/kanmaber/projets → /opt/projets dans Hermes Docker |
✅ |
| PC ↔ GitHub ↔ VPS synchronisés | ✅ |
| Tunnel SSH inversé (prérequis du cron) | ❌ openssh-server à installer + autossh |
| Backend Docker opérationnel sur VPS | ✅ |
| Frontend Docker opérationnel sur VPS | ✅ |
| Wiki second-memory accessible depuis Hermes | ✅ /opt/wiki — cron git pull toutes les heures |
Accès au wiki depuis le VPS¶
Le wiki second-memory est cloné sur le VPS et monté dans Hermes :
/home/kanmaber/second-memory/wiki → /opt/wiki (lecture seule)
Consulter une note via Telegram :
Lis /opt/wiki/PsychoEnLigneV2/architecture/deploiement-sync-psycho-hermes.md
Chercher dans le wiki :
Cherche dans /opt/wiki le mot "BullMQ"
Synchronisation automatique — cron toutes les heures (utilisateur kanmaber) :
0 * * * * cd /home/kanmaber/second-memory && git pull origin master
Le wiki est en lecture seule depuis Hermes (
ro). Pour modifier des notes, il faut le faire sur le PC et pousser sur GitHub — le VPS se met à jour automatiquement à l'heure suivante.
Détail — Étape 6 (complétée le 20260513)¶
Architecture mise en place¶
Telegram → Hermes → /cc → claude-task.sh → Claude Code CLI
↓ si quota épuisé
.claude/quota-context.md
↓
Nemotron (reprise avec contexte)
Composants¶
Skill /cc — /opt/data/skills/psycho-en-ligne/code/SKILL.md
- Slash command Telegram : /cc "description de la tâche"
- Charge les instructions de délégation à Claude Code CLI
- Gère les trois codes de retour : 0 (succès), 2 (quota), 1 (erreur)
Script claude-task.sh — /opt/projets/PsychoEnLigne/scripts/claude-task.sh
- Détecte automatiquement le contexte (conteneur Hermes vs hôte)
- Token OAuth chargé depuis /opt/data/.env
- Claude Code CLI : /opt/data/.local/bin/claude
- En cas de quota épuisé : capture git diff + nouveaux fichiers non-trackés → écrit dans .claude/quota-context.md
Fichier contexte quota — /opt/projets/PsychoEnLigne/.claude/quota-context.md
- Ignoré par git (.gitignore)
- Contient : tâche originale, fichiers modifiés, nouveaux fichiers créés, patch complet git diff
- Lu par Nemotron pour reprendre exactement là où Claude s'est arrêté
Comportement en cas de quota épuisé¶
claude-task.shdétecte les mots-clés (rate limit, 429, quota...) dans le log- Capture le
git diff HEAD+git ls-files --others→ écrit dans.claude/quota-context.md - Exit code 2 → Hermes lit le skill
/cc→ notifie Telegram + reprend avec Nemotron - Nemotron continue uniquement ce qui manque, sans refaire ce que Claude avait fait
Ce qu'il reste à faire¶
Étape 7 — Cron sync différée (VPS → PC)¶
Nota Bene — implémentation différée Cette étape est intentionnellement mise de côté pour l'instant. Elle n'est pas abandonnée, simplement non prioritaire. GitHub remplace avantageusement le tunnel pour la synchronisation quotidienne (voir section ci-dessous). Le tunnel SSH inversé sera implémenté le jour où un besoin de déclenchement automatique sur le PC (tests locaux, redémarrage serveur de développement, etc.) se présentera concrètement.
Nécessite d'abord le tunnel SSH inversé :
1. Installer openssh-server dans WSL : sudo apt install openssh-server -y && sudo service ssh start
2. Ajouter la clé publique du VPS dans ~/.ssh/authorized_keys sur le PC
3. Installer autossh : sudo apt install autossh -y
4. Lancer le tunnel manuellement (voir shared/architecture/tunnel-ssh-inverse-ip-dynamique)
5. Mettre à jour sync_to_pc.sh sur VPS : PC_HOST=localhost, PC_SSH_PORT=2222
6. Configurer le cron sur VPS : */30 * * * * /home/kanmaber/projets/PsychoEnLigne/sync_to_pc.sh
Alternative actuelle — Synchronisation via GitHub¶
Tant que le tunnel SSH inversé n'est pas en place, GitHub joue le rôle de pont entre le VPS et le PC. C'est suffisant pour le workflow quotidien.
Fonctionnement
Hermes modifie du code sur le VPS
↓
git push → GitHub (automatique via claude-task.sh ou /cc)
↓
git pull sur le PC → les modifications arrivent localement
Récupérer le travail d'Hermes sur ton PC
cd /home/kanmaber/projets/PsychoEnLigne
git pull origin main
C'est tout. Si Hermes a committé et pushé, un simple git pull suffit pour récupérer son travail.
Vérifier si Hermes a fait des modifications récentes
git log --oneline -5 # voir les 5 derniers commits
git log --oneline --author="Hermes" -10 # commits d'Hermes uniquement
En cas de conflit (tu avais aussi modifié du code localement)
git fetch origin
git diff main origin/main # voir ce qu'Hermes a fait avant de merger
git merge origin/main # merger les changements
Test du loop complet (étape finale)¶
Envoyer /cc "tâche réelle de développement" via Telegram → Hermes délègue à Claude Code → code modifié → git push → PC.
Liens connexes¶
- shared/references/hermes-workflow-developpement — document source du workflow
- shared/architecture/tunnel-ssh-inverse-ip-dynamique — tunnel SSH inversé, utilisation manuelle et service systemd
- PsychoEnLigneV2/architecture/deploiement-sync-psycho-hermes — scripts deploy.sh, sync.sh, sync_to_pc.sh, notify.sh
- shared/references/vps-hermes-commandes — commandes VPS Hetzner