# Transférer les connaissances Claude Code et l'accès MacLustr sur un autre ordinateur Un « opérateur » MacLustr = un Mac avec (1) l'accès réseau et SSH au cluster, (2) l'outillage `cluster-skill`, (3) les connaissances Claude Code (instructions globales, mémoire, commandes). Les trois scripts de `operateur/` automatisent le transfert. ## Ce qui constitue la connaissance Claude Code sur cet ordinateur | Élément | Emplacement | Rôle | |---|---|---| | Instructions globales | `~/.claude/CLAUDE.md` | inventaire, règles, procédure remote-first, tunnel, mld… chargé à chaque session | | Mémoire persistante | `~/.claude/projects/-Users-/memory/*.md` + `MEMORY.md` | faits appris au fil des sessions (dossier **lié au chemin du projet** : `-Users-simon-pierreboucher` = sessions lancées depuis `$HOME`) | | Commandes | `~/.claude/commands/cluster*.md` | `/cluster`, `/cluster-status`, `/cluster-run`, `/cluster-compute`, `/cluster-deploy` | | Réglages | `~/.claude/settings.json` | modèle, hooks, plugins | | Serveurs MCP | `~/.claude.json` → `mcpServers` | **contiennent des jetons** (Apify, Tavily, Notion…) — export seulement avec `--mcp` | | Accès | `~/.ssh/config` (alias des 29 Macs + BHS64 + gitsrv), `~/.ssh/maclustr-egress.sh`, clé ed25519 | la clé privée **ne se copie pas** : on en génère une sur le nouveau Mac et on l'autorise | | Outillage | `~/Desktop/Cluster/cluster-skill` (lien `~/Desktop/cluster-skill`) | clone de `gitsrv:srv/git/cluster-skill.git` : wrappers `mld`, `mlt`, `mlmobile`, docs | ## Prérequis réseau sur le nouveau Mac 1. **Tailscale** installé et connecté au **même tailnet** : les noms `*.maclustr.io` (GoDaddy) pointent sur les IP Tailscale `100.x` des nœuds. Si l'ACL du tailnet restreint les sources (le SSH inter-nœuds y est bloqué), autoriser la nouvelle machine dans la console Tailscale. 2. Homebrew + `python3`, `rsync`, `jq` (installés par le script si absents). `pandoc`/`weasyprint` seulement pour régénérer les PDF. 3. Même nom d'utilisateur macOS (`simon-pierreboucher`) recommandé : les chemins absolus des documents restent valables. Sinon le script réécrit `/Users/simon-pierreboucher` → nouveau `$HOME` dans CLAUDE.md, la mémoire et la config SSH. ## Procédure **Sur l'ordinateur actuel (source)** ```bash ~/Desktop/cluster-skill/operateur/export-connaissances.sh [--mcp] [--vers-cluster-skill] # → ~/Desktop/maclustr-operateur-.tar.gz (0600) # --mcp inclut les serveurs MCP et leurs jetons # --vers-cluster-skill copie aussi CLAUDE.md + mémoire + commandes dans cluster-skill/operateur/connaissances/ et pousse sur spbgit # (seule édition de cluster-skill autorisée depuis le laptop : c'est un export) ``` Transférer l'archive (AirDrop, clé USB, `scp` vers un nœud puis vers le nouveau Mac). **Sur le nouvel ordinateur** ```bash # 1. clé + config SSH + Claude (sans réseau cluster) — depuis l'archive tar -xzf maclustr-operateur-.tar.gz -C /tmp/op && bash /tmp/op/operateur/installer-operateur.sh maclustr-operateur-.tar.gz # génère ~/.ssh/id_ed25519 si absent et affiche la clé publique à autoriser ``` **Sur l'ordinateur actuel** (ou n'importe quelle machine déjà autorisée, M1M32 compris) : ```bash ~/Desktop/cluster-skill/operateur/autoriser-operateur.sh "" # 29 Macs + BHS64 (ubuntu) + gitsrv ``` **Sur le nouvel ordinateur**, relancer l'installeur : il clone `cluster-skill`, pose le lien `~/Desktop/cluster-skill`, vérifie `ssh M1M32` et `mld status`. ```bash bash /tmp/op/operateur/installer-operateur.sh maclustr-operateur-.tar.gz ``` Puis ouvrir Claude Code depuis `$HOME` (`cd ~ && claude`) : CLAUDE.md et la mémoire sont chargés. ## Garder deux opérateurs cohérents - **Docs, wrappers, procédures** : vivent dans `cluster-skill` (spbgit) → `git pull` sur chaque Mac. - **CLAUDE.md global et mémoire** : propres à chaque Mac. Après une session qui en a changé beaucoup, relancer `export-connaissances.sh --vers-cluster-skill` sur la machine source puis, sur l'autre, `installer-operateur.sh --depuis-cluster-skill` (importe depuis le clone, sans archive). Les mémoires ne sont pas fusionnées : la plus récente remplace (sauvegarde `~/.claude/backups/operateur-/`). - **Clés** : une clé par machine, toutes autorisées partout ; pour révoquer une machine, retirer sa ligne des `authorized_keys` (`autoriser-operateur.sh --retirer ""`).