33 lines
2.5 KiB
Markdown
33 lines
2.5 KiB
Markdown
# 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
|