# Runbook — Skills n8n officiels (socle best-practices) **Date** : 2026-07-10 | **Instance** : Toutes (common) | **Statut** : Déployé ## Objectif Ajouter le pack officiel `n8n-io/skills` (Apache-2.0) comme socle générique de qualité pour la construction/édition de workflows n8n par les 3 instances Hermes, via le tap Gitea existant. ## Ce qui a été fait - Import de 14 skills (13 capacités + meta-routeur `using-n8n-skills-official`) + 51 références dans `bolbol/hermes-skills/skills/`, commit `c67e1517`. - Attribution Apache-2.0 dans `skills/_n8n-official/` (LICENSE + ATTRIBUTION.md). - **Non importé** : hooks SessionStart/PreToolUse (spécifiques Claude Code, non portables OpenCode Go) et `plugins/` (duplicata). Le lazy-loading est déjà assuré nativement par le système de taps (vercel-labs/skills lit chaque SKILL.md par son frontmatter `description`). ## Distribution (tap déjà en place) `taps.json` des 3 instances pointe déjà `http://172.17.0.1:3232/bolbol/hermes-skills.git` path `skills/`. Aucune modif de taps.json nécessaire. **Activation** : au prochain refresh du tap (nouvelle session agent / restart container `hermes-workspace-*`). Pas de rebuild. ## Articulation avec n8n-bolbol (préséance) Les `-official` = socle générique. `n8n-bolbol` (surcouche infra) **PRIME** en cas de divergence : - LLM via Bifrost (`x-bf-vk`), jamais opencode.ai - Appels internes : Baserow via header `Host`, `gitea:3000` - Code nodes VM Node.js 24 : `require('https')`, pas de `fetch`/`$helpers`/`new URL` - `publish_workflow` obligatoire après `update_workflow` → À faire (proposé, non appliqué) : ajouter en tête de `n8n-bolbol/SKILL.md` un pointeur "socle = skills n8n-*-official, ce skill les précise". ## Pièges rencontrés (capitalisation) - **git absent** du container mcp-nas ET du NAS → tout passe par l'**API HTTP Gitea** (change-files multi-fichiers, Gitea 1.21.11 : `POST /contents` avec `files:[]` = 1 commit propre). - **Ancien password `bolbol` (`2L2u519wgitea`) périmé → 401.** Utiliser `GITEA_DEPLOY_TOKEN` (scope write:repository, audit sécu 08/07) du `.env`, header `Authorization: token `. - **SSH `Best0f` par mot de passe échoue** (clé absente dans mcp-nas, `SSHPASS` env ≠ mot de passe Best0f). Contournement : accès fichiers direct via le mount **`/mnt/docker` = `/volume1/docker`** ; opérations Git via API. - Téléchargement d'un repo externe sans git : `curl -L | tar xz` (egress ouvert depuis mcp-nas). ## Tags infra, n8n, skills, hermes, tap, gitea-api