Aller au contenu

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é

  1. claude-task.sh détecte les mots-clés (rate limit, 429, quota...) dans le log
  2. Capture le git diff HEAD + git ls-files --others → écrit dans .claude/quota-context.md
  3. Exit code 2 → Hermes lit le skill /cc → notifie Telegram + reprend avec Nemotron
  4. 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