nas-runbooks/common/n8n-skills-officiels.md

2.5 KiB

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 <TOK>.
  • 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 <tarball GitHub> | tar xz (egress ouvert depuis mcp-nas).

Tags

infra, n8n, skills, hermes, tap, gitea-api