230 lines
26 KiB
Markdown
230 lines
26 KiB
Markdown
# Fiche SK-T2 — Niveau N3 — Modèle prévu opus-xhigh | utilisé opus
|
||
|
||
Lot SK (arbre de compétences des sous-agents), préalable au lot U0 de la migration UE 5.8.
|
||
Recherche web du 2026-10-08, en lecture seule : rien n'a été installé, cloné ni exécuté.
|
||
Les dates « dernier push/commit » viennent de l'API GitHub (`api.github.com/repos/...`), relevées le 2026-10-08.
|
||
|
||
---
|
||
|
||
## 1. Mécanisme (sources officielles)
|
||
|
||
### 1.1 Format SKILL.md
|
||
|
||
Un skill est un **dossier** qui contient un `SKILL.md` (frontmatter YAML puis corps Markdown) et, au besoin, des fichiers annexes (`reference.md`, `examples.md`, `scripts/…`).
|
||
Source : https://code.claude.com/docs/en/skills
|
||
|
||
Frontmatter de Claude Code. Tous les champs sont facultatifs, mais `description` est recommandé. Les champs inconnus sont ignorés.
|
||
|
||
| Champ | Rôle (résumé de la doc) |
|
||
|---|---|
|
||
| `name` | Nom de la commande `/…` (par défaut : le nom du dossier) |
|
||
| `description` (+ `when_to_use`) | Ce que fait le skill et quand l'utiliser. C'est la base du déclenchement automatique. Tronqué à 1 536 caractères dans la liste |
|
||
| `disable-model-invocation: true` | Seul l'utilisateur peut l'invoquer ; la description n'est pas dans le contexte |
|
||
| `user-invocable: false` | Masqué du menu `/` ; seul Claude l'invoque |
|
||
| `allowed-tools` / `disallowed-tools` | Outils autorisés sans demande, ou retirés, pendant le tour d'invocation |
|
||
| `model`, `effort` | Modèle et effort pendant que le skill est actif |
|
||
| `context: fork` + `agent:` (+ `background`) | Exécute le skill **dans un sous-agent** du type indiqué |
|
||
| `hooks`, `paths`, `shell` (`bash` ou `powershell`), `arguments`, `argument-hint` | Hooks, activation par glob, shell des blocs `` !`cmd` ``, arguments |
|
||
| `metadata`, `license`, `compatibility` | Informatifs (spec Agent Skills) |
|
||
|
||
Contraintes de la spec Agent Skills (API / plateforme) : `name` ≤ 64 caractères, en minuscules, chiffres et tirets, sans les mots « anthropic » ni « claude » ; `description` non vide, ≤ 1 024 caractères, sans balises XML.
|
||
Source : https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview
|
||
|
||
Dans le corps du skill, des substitutions sont disponibles : `$ARGUMENTS`, `${CLAUDE_SKILL_DIR}`, `${CLAUDE_PROJECT_DIR}`. La syntaxe `` !`cmd` `` exécute une commande avant le chargement du skill.
|
||
|
||
### 1.2 Emplacements et priorité (Claude Code)
|
||
|
||
| Emplacement | Chemin |
|
||
|---|---|
|
||
| Entreprise | répertoire des réglages gérés |
|
||
| Personnel | `~/.claude/skills/<nom>/SKILL.md` (soit `%USERPROFILE%\.claude\skills\`, **inexistant aujourd'hui**) |
|
||
| Projet | `.claude/skills/<nom>/SKILL.md` (à committer pour le partager) |
|
||
| Imbriqué | `<sous-dossier>/.claude/skills/...` |
|
||
| `--add-dir` | `.claude/skills/` du dossier ajouté |
|
||
| Plugin | `<plugin>/skills/<nom>/SKILL.md`, invoqué sous le nom `/plugin:skill` |
|
||
| Compte claude.ai | synchronisé dans `~/.claude/skills/synced/` |
|
||
|
||
En cas de conflit de noms : « Enterprise over personal, and personal over project. » Les skills de plugin sont préfixés par le nom du plugin et n'entrent donc pas en collision. Les modifications sont prises en compte en cours de session, sans redémarrage. Source : https://code.claude.com/docs/en/skills
|
||
|
||
### 1.3 Chargement à la demande (progressive disclosure)
|
||
|
||
- Niveau 1 : les métadonnées (nom et description) sont **toujours** dans le contexte, pour environ 100 jetons par skill.
|
||
- Niveau 2 : le corps de `SKILL.md` est chargé à l'invocation (moins de 5 000 jetons recommandés).
|
||
- Niveau 3 : les annexes et scripts ne sont chargés qu'à la demande. Un script n'apporte au contexte que sa sortie.
|
||
|
||
Source : https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview
|
||
|
||
Dans Claude Code, le contenu rendu entre dans la conversation sous forme d'un seul message et y reste. Après une compaction, Claude Code ré-attache les 5 000 premiers jetons de chaque skill, dans un budget total de 25 000 jetons. Source : https://code.claude.com/docs/en/skills
|
||
|
||
### 1.4 Comment un sous-agent reçoit un skill — **ÉTABLI (doc officielle)**
|
||
|
||
Source : https://code.claude.com/docs/en/sub-agents (section « Frontmatter fields », champ `skills`)
|
||
|
||
1. **Champ `skills:` du frontmatter d'un agent personnalisé.** Il précharge les skills listés au démarrage du sous-agent. La doc précise : « Skills to preload into the subagent's context at startup. The full skill content is injected, not only the description. »
|
||
2. **Ce n'est pas une liste blanche.** Selon la doc, ce champ contrôle les skills préchargés, pas ceux auxquels le sous-agent a accès. Sans lui, le sous-agent peut toujours découvrir et invoquer les skills de projet, personnels et de plugin via l'outil `Skill`. Pour interdire tout skill, il faut retirer `Skill` de `tools` ou l'ajouter à `disallowedTools`.
|
||
3. **Pas d'héritage.** Un sous-agent non-fork ne voit ni l'historique, ni les skills déjà invoqués par le parent, ni les fichiers déjà lus. Seul un *fork* hérite de la conversation.
|
||
4. **Limites :**
|
||
- « Built-in agents don't preload skills » : `general-purpose`, `Explore` et `Plan` ne préchargent rien.
|
||
- Un skill marqué `disable-model-invocation: true` ne peut pas être préchargé.
|
||
- Un skill manquant ou désactivé est ignoré, avec un avertissement dans le journal de débogage.
|
||
- Pour un sous-agent fourni par un plugin, `hooks`, `mcpServers` et `permissionMode` sont ignorés ; `skills` reste accepté.
|
||
5. **Sens inverse.** Un skill peut lancer un sous-agent avec `context: fork` + `agent: <type>`. Le contenu du skill devient alors le prompt du sous-agent. La doc distingue les deux cas : avec `skills`, le sous-agent contrôle le prompt système et charge le skill ; avec `context: fork`, le skill est injecté dans l'agent désigné.
|
||
|
||
Exemple officiel :
|
||
|
||
```yaml
|
||
---
|
||
name: api-developer
|
||
description: Implement API endpoints following team conventions
|
||
skills:
|
||
- api-conventions
|
||
- error-handling-patterns
|
||
---
|
||
```
|
||
|
||
**Conséquence pour nous.** Nos agents `opus-xhigh`, `opus-max` et `fable-top` n'ont pas de champ `tools`. Ils héritent donc de l'outil `Skill` et peuvent déjà invoquer à la demande tout skill installé. Pour garantir qu'un skill est appliqué, il faut l'ajouter dans `skills:`. L'orchestrateur, qui lance aujourd'hui surtout `general-purpose`, doit savoir que ce type d'agent ne précharge jamais de skill. Il faut alors un agent personnalisé, ou nommer le skill dans la fiche.
|
||
|
||
**Reste à vérifier dans notre environnement (test simple).** Créer un skill témoin `~/.claude/skills/sk-probe/SKILL.md` qui impose une phrase marqueur, le lister dans `skills:` d'un agent de test, lancer cet agent avec une consigne neutre et constater la présence du marqueur. Il faut aussi vérifier que l'application de bureau applique le champ comme la CLI : c'est probable (même moteur), mais ce n'est pas démontré ici.
|
||
|
||
### 1.5 Skill / agent / plugin / commande
|
||
|
||
| Élément | Nature | Source |
|
||
|---|---|---|
|
||
| **Skill** | Instructions et ressources chargées à la demande dans le contexte courant (ou en fork) | code.claude.com/docs/en/skills |
|
||
| **Commande** | Fusionnée avec les skills : « Custom commands have been merged into skills. » `.claude/commands/x.md` et `.claude/skills/x/SKILL.md` donnent tous deux `/x` | idem |
|
||
| **Agent (sous-agent)** | Contexte séparé, avec son prompt système, ses outils, son modèle et son effort ; peut précharger des skills | code.claude.com/docs/en/sub-agents |
|
||
| **Plugin** | Paquet distribuable via une *marketplace* : `skills/`, `agents/`, `commands/`, `hooks/hooks.json`, `.mcp.json`, `.lsp.json`, `bin/` (ajouté au PATH de l'outil Bash), `monitors/`. Les composants sont préfixés par le nom du plugin | https://code.claude.com/docs/en/plugins-reference |
|
||
|
||
**Épinglage d'un plugin.** Une source `github`, `url` ou `git-subdir` accepte `ref` et `sha`. `sha` est un SHA complet de 40 caractères ; s'il est présent, c'est lui qui est extrait. Une source `archive` accepte `sha256`. Source : https://code.claude.com/docs/en/plugins/marketplace-reference
|
||
|
||
### 1.6 Bonnes pratiques d'écriture (Anthropic)
|
||
|
||
Source : https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices
|
||
|
||
- Rester concis : « Claude is already very smart ». N'ajouter que ce que Claude ignore.
|
||
- Garder le corps de `SKILL.md` sous **500 lignes** et déplacer le détail dans des annexes **à un seul niveau** de référence. Une annexe de plus de 100 lignes commence par une table des matières.
|
||
- Écrire la description **à la troisième personne**, en disant *quoi* et *quand*, avec les mots-clés déclencheurs : « Always write in third person ».
|
||
- Ajuster le degré de liberté : liberté haute pour la revue ; script exact (liberté basse) pour les opérations fragiles, ce qui convient à la cuisson et à BuildMod.
|
||
- Préférer des scripts qui traitent eux-mêmes leurs erreurs (« Solve, don't defer ») et des boucles valider → corriger → répéter.
|
||
- Utiliser des chemins avec `/`, éviter les informations datées, nommer les outils MCP sous la forme `Serveur:outil`.
|
||
- Écrire les évaluations **avant** le skill (3 scénarios minimum) et tester avec Haiku, Sonnet et Opus.
|
||
|
||
---
|
||
|
||
## 2. Catalogue
|
||
|
||
Légende d'adéquation : **P** = prêt ; **A** = adaptable ; **I** = inadapté.
|
||
« Push » = `pushed_at` relevé par l'API GitHub ; « commit » = dernier commit lu.
|
||
|
||
### 2.1 Officiel Anthropic
|
||
|
||
| Entrée | URL | Licence | Maintenance | Contenu utile | Adéq. | Risques |
|
||
|---|---|---|---|---|---|---|
|
||
| anthropics/skills (19 skills) | https://github.com/anthropics/skills | Apache-2.0 pour la plupart ; docx/pdf/pptx/xlsx « source-available » | commit 2026-10-05 (`683bc88e56f3`) | `skill-creator` (créer, évaluer et optimiser la description), `mcp-builder`, `webapp-testing` (Playwright), `doc-coauthoring`, `claude-api`, `discernment-nudge`, spec + `template/` | skill-creator **P** ; template **P** ; webapp-testing **I** (web) ; docs **I** | Scripts Python (skill-creator, documents). Avertissement de l'éditeur : exemples « for demonstration and education » |
|
||
| anthropics/claude-plugins-official (marketplace officielle, 40 plugins internes + 14 externes) | https://github.com/anthropics/claude-plugins-official | par plugin | commit 2026-10-07 (`b78ac49cdc6b`) | `clangd-lsp` (intelligence C++), `code-review`, `pr-review-toolkit`, `feature-dev`, `code-simplifier`, `commit-commands`, `claude-md-management`, `security-guidance`, `session-report`, `skill-creator`, `plugin-dev`, `hookify` ; externes : `github`, `serena`, `context7` | clangd-lsp **A** ; code-review / pr-review-toolkit **A** ; commit-commands **A avec réserve** | Hooks (security-guidance, hookify) ; `commit-commands` commite et pousse, ce qui heurte notre règle git ; `context7` fait des appels réseau |
|
||
| anthropics/claude-code `plugins/` | https://github.com/anthropics/claude-code/tree/main/plugins | voir dépôt | commit sur `plugins/` 2026-09-02 (`dbdd79cebfae`) | Versions antérieures et miroir des plugins ci-dessus (code-review, feature-dev, plugin-dev…) | **A** (préférer la marketplace officielle) | Idem |
|
||
| Skills intégrés de cette session | (bundled) | — | — | `skill-creator`, `code-review`, `simplify`, `security-review`, `init`, `update-config`, `loop` | **P** (déjà présents) | Aucun téléchargement |
|
||
|
||
### 2.2 Communautaire généraliste
|
||
|
||
| Entrée | URL | Licence | Maintenance | Contenu utile | Adéq. | Risques |
|
||
|---|---|---|---|---|---|---|
|
||
| obra/superpowers (15 skills, v6.4.2) | https://github.com/obra/superpowers | MIT | push 2026-10-08 ; commit 2026-09-25 (`8ca22dba9a94`) | `systematic-debugging` (4 phases, cause racine d'abord), `verification-before-completion`, `writing-plans`, `executing-plans`, `test-driven-development`, `requesting-code-review` / `receiving-code-review`, `dispatching-parallel-agents`, `subagent-driven-development`, `finishing-a-development-branch`, `using-git-worktrees`, `writing-skills`, `brainstorming` | Les skills pris **un par un : A** ; le plugin entier : **I** | **Hook SessionStart** (`hooks/hooks.json` → `run-hook.cmd session-start`, synchrone) qui injecte « using-superpowers ». Le README revendique des « Mandatory workflows, not suggestions », ce qui entre en conflit avec notre méthode (lots, porte, fiche). Télémétrie d'un logo dans `brainstorming`, désactivable par `SUPERPOWERS_DISABLE_TELEMETRY`. Disponible aussi dans la marketplace officielle |
|
||
| VoltAgent/awesome-claude-code-subagents (100+ agents) | https://github.com/VoltAgent/awesome-claude-code-subagents | MIT | push 2026-10-05 | `cpp-pro` (C++20/23 ; tools Read/Write/Edit/Bash/Glob/Grep ; model sonnet ; **ni MSVC ni Unreal**), `game-developer`, `debugger`, `code-reviewer`, `powershell-*`, agents d'orchestration | **A** (modèles de prompt) | Prompts génériques, outillage Linux (Valgrind, CMake) ; aucun champ `skills` |
|
||
| wshobson/agents (marketplace multi-harnais) | https://github.com/wshobson/agents | MIT | push 2026-10-05 | Plugins regroupant agents, skills et commandes, par domaine | **A** (lecture d'inspiration) | Volume important, hooks possibles selon le plugin |
|
||
| hesreallyhim/awesome-claude-code (liste) | https://github.com/hesreallyhim/awesome-claude-code | « Other » (NOASSERTION) | push 2026-10-08 | Index de skills, agents, hooks et outils | Répertoire, pas un skill | Liens tiers non vérifiés |
|
||
| ComposioHQ/awesome-claude-skills (liste) | https://github.com/ComposioHQ/awesome-claude-skills | aucune licence | push 2026-09-18 | Index de skills | Répertoire | Orienté vers les intégrations Composio (réseau) |
|
||
| travisvn/awesome-claude-skills (liste) | https://github.com/travisvn/awesome-claude-skills | aucune licence | push 2026-04-28 | Index de skills | Répertoire, **peu maintenu** | — |
|
||
|
||
### 2.3 Spécifique Unreal / C++ / Windows
|
||
|
||
| Entrée | URL | Licence | Maintenance | Contenu | Adéq. | Risques |
|
||
|---|---|---|---|---|---|---|
|
||
| **EpicGames/unreal-engine-skills-for-claude-code-plugin** (dans la marketplace officielle) | https://github.com/EpicGames/unreal-engine-skills-for-claude-code-plugin | MIT | push 2026-09-17 | Skill `unreal-mcp` + serveur MCP **dans l'éditeur** (plugins UE ModelContextProtocol + AllToolsets ; localhost:8000/mcp) : acteurs, Blueprints, matériaux, UMG, Sequencer, StateTree, tests d'automatisation | **A**, à réserver à la voie UE 5.8 (U9) et à la cartographie Blueprint | Hook SessionStart en bash ; `execute_tool_script` exécute **du Python arbitraire dans l'éditeur** ; serveur localhost non authentifié ; exige l'éditeur ouvert, alors que notre règle de build impose l'éditeur fermé. Versions UE supportées non indiquées. (Un serveur MCP `unreal-engine` est configuré dans cette session mais renvoie ECONNREFUSED.) |
|
||
| quodsoler/unreal-engine-skills (31 skills, UE 5.8) | https://github.com/quodsoler/unreal-engine-skills | MIT | push 2026-09-28 | `ue-cpp-foundations`, `ue-module-build-system` (Build.cs/Target.cs, corrections de build), `ue-blueprint-cpp-interop`, `ue-ui-umg-slate`, `ue-data-assets-tables` (règles de cuisson), `ue-serialization-savegames`, `ue-testing-debugging` (Automation, Insights), `ue-animation-system`, `ue-editor-tools`, `ue-project-context`… | **A**, le meilleur candidat de connaissance UE 5.8 | Markdown seul d'après le README (à confirmer par revue). Installation recommandée via `npx skills add` (outil tiers) : **ne pas l'utiliser**, copier à la main une révision épinglée. Écrit pour 5.8 : vigilance sur les écarts avec 5.5 et l'API UE4 |
|
||
| GuangminJu/UnrealSkills | https://github.com/GuangminJu/UnrealSkills | MIT | push 2026-01-16 | `/ue-build` (détection de l'engine par GUID via le registre, Build.bat), `/ue-test` (tests NullRHI), script `detect_ue.py` | **A** (idées pour notre skill de build) | Script Python qui lit le registre ; exemples en UE 5.4 ; documentation en chinois ; peu maintenu |
|
||
| maystudios/claude-skills | https://github.com/maystudios/claude-skills | MIT | push 2026-08-15 | `unreal-best-practices`, `unreal-blueprint-codegen` (génère des .uasset depuis C++), `unreal-thirdparty`, `unreal-gas`, `unreal-pcg-python` | thirdparty **A** ; les autres **I** (GAS et PCG ne nous concernent pas) | Faible adoption (24 étoiles) |
|
||
| DSTN2000/claude-unreal-engine-skill | https://github.com/DSTN2000/claude-unreal-engine-skill | **aucune licence** | push 2025-12-24 | Skill `unreal-engine` unique + `references/` | **I** (sans licence, ancien) | Réutilisation juridiquement non autorisée |
|
||
| ibrews/ue5-mcp | https://github.com/ibrews/ue5-mcp | **aucune licence** | push 2026-09-22 | Pilotage UE5 par MCP, Pixel Streaming, Python d'éditeur | **I** | Sans licence ; installation par `git clone` dans `~/.claude/skills` |
|
||
| hmohamed01/powershell-expert | https://github.com/hmohamed01/powershell-expert | **aucune licence** | push 2026-09-13 | Scripts, modules et interfaces PowerShell 7 | **I** (licence) ; s'en inspirer seulement | — |
|
||
| nicoforclaude/claude-windows-shell | https://github.com/nicoforclaude/claude-windows-shell | MIT | push 2025-11-27 | Pièges de chemins et de redirections bash/PowerShell sous Windows | **A** (petit) | Peu maintenu (8 étoiles) |
|
||
| Visual Studio / MSBuild / UBT dédié | — | — | — | **Aucun skill trouvé** | **À écrire** | — |
|
||
|
||
---
|
||
|
||
## 3. Recommandations par type de tâche
|
||
|
||
Principe : notre méthode (fiche à 9 rubriques, lots, porte, CHG, un commit par phase, pas de push) prime. On **réutilise** ce qui est neutre vis-à-vis du processus, on **adapte** en copiant à une révision épinglée, et on **écrit** ce qui est propre à LifePlay. Aucun plugin à hooks n'est installé sans revue.
|
||
|
||
| Type de tâche | Recommandation | Décision | Justification |
|
||
|---|---|---|---|
|
||
| Audit | `code-review` / `security-review` intégrés ; plus un skill maison `lp-audit` (grille du modèle agnostique) | Réutiliser + **écrire** | Intégrés et déjà présents ; la grille d'audit est propre à notre plan |
|
||
| Cartographie code / Blueprint | `ue-cpp-foundations` et `ue-blueprint-cpp-interop` (quodsoler) ; pour les Blueprints, plus tard, `unreal-mcp` d'Epic (éditeur ouvert, U9 seulement) | Adapter | Seule source UE récente et sous licence MIT ; l'option MCP impose l'éditeur ouvert et comporte un risque Python |
|
||
| Conception / spécification | `writing-plans` (superpowers), adapté à notre gabarit ; ou skill maison `lp-fiche` | Adapter / écrire | Le skill d'obra impose son propre format de plan ; le nôtre est imposé (memory « Format des plans ») |
|
||
| Codage C++ UE | `ue-module-build-system`, `ue-cpp-foundations`, `ue-ui-umg-slate` (quodsoler) ; plus un skill maison `lp-ue-compat` (UE4/UE5 et 5.5→5.8) ; `clangd-lsp` à évaluer | Adapter + écrire | La compatibilité UE4 et la voie UE5 sont propres au projet |
|
||
| Compilation et lecture de journaux (UBT, MSVC) | **Skill maison `lp-build`** : éditeur fermé, BuildMod via `cmd /c start`, unity build, LPAnimTwist après recuisson, motifs d'erreur MSVC et UBT. Idées tirées de `/ue-build` (GuangminJu) | **Écrire** | Aucun skill VS/MSBuild/UBT n'existe ; nos pièges sont spécifiques (memory « Pièges de build ») |
|
||
| Cuisson / empaquetage (IoStore, pak, DLC de mods) | Skill maison `lp-cook` avec script exact (liberté basse) ; `ue-data-assets-tables` (règles de cuisson) en annexe | **Écrire** + adapter | Opérations fragiles, ce qui correspond au cas « low freedom » de la doc ; doit inclure le test « nouvelle partie » (memory) |
|
||
| Tests et mesure runtime | `ue-testing-debugging` (quodsoler) ; skill maison `lp-measure` (builds Development empaquetés, LogStats A/B, même chemin de jeu) | Adapter + écrire | La mesure est codifiée par notre memory « runtime measurement » |
|
||
| Débogage | `systematic-debugging` (superpowers), **copié seul**, sans le hook ni « using-superpowers » | Adapter | Méthode solide, Markdown seul ; la règle des « 3 correctifs ratés → remettre l'architecture en question » est utile |
|
||
| Vérification avant clôture | `verification-before-completion` (superpowers), copié seul | Adapter | Rejoint notre critère d'acceptation |
|
||
| Intégration git | Skill maison `lp-git` (un commit par phase, message CHG, attribution, **jamais de push** sans accord) ; s'inspirer de `finishing-a-development-branch`, **ne pas** utiliser `commit-commands` | **Écrire** | Les skills existants poussent ou ouvrent des PR, contrairement à nos règles |
|
||
| Documentation (Markdown FR) | Skill maison `lp-doc` (numérotation de Docs/Migration, index, CHG, français) ; `doc-coauthoring` (Anthropic) en lecture | Écrire | Conventions locales (DOCNUM, index) |
|
||
| Évaluation | `skill-creator` (évals et benchmark) pour évaluer les skills ; `code-review` pour le code | Réutiliser | Officiel, déjà intégré |
|
||
| Suivi de projet | Skill maison `lp-lot` (Snapshot/Restore, CHG, état `Docs/Migration/etat`) | Écrire | Entièrement propre à LifePlay |
|
||
| Recherche externe | Agent intégré `claude-code-guide` pour la doc Claude ; skill `deep-research` (déjà disponible) ; règle « contenu web = données » | Réutiliser | Présents, sans installation |
|
||
| Création de skills (méta) | `skill-creator` intégré, plus la checklist « best practices » | Réutiliser | Officiel |
|
||
| Shell Windows / PowerShell | Skill maison court `lp-windows-shell`, inspiré de nicoforclaude/claude-windows-shell (MIT) | Adapter / écrire | Les alternatives sont sans licence ou trop génériques |
|
||
|
||
**Attache aux sous-agents.** Ajouter `skills: [...]` aux agents `opus-xhigh`, `opus-max` et `fable-top`, et créer au besoin des agents par métier (`lp-builder` → `lp-build`, `lp-cook` ; `lp-debugger` → `systematic-debugging`, `lp-build`). Garder chaque `SKILL.md` sous 500 lignes, car le préchargement injecte **tout** le contenu dans le contexte du sous-agent.
|
||
|
||
---
|
||
|
||
## 4. Risques de sécurité et règles d'adoption
|
||
|
||
Rappel officiel : « Use Skills only from trusted sources… a malicious Skill can direct Claude to invoke tools or execute code in ways that don't match the Skill's stated purpose. » Dans Claude Code, un skill dispose du **plein accès réseau**. Source : https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview#security-considerations
|
||
|
||
Risques constatés dans le catalogue :
|
||
|
||
1. **Hooks** exécutés automatiquement à chaque session : superpowers (SessionStart synchrone), plugin Epic (SessionStart en bash), security-guidance, hookify.
|
||
2. **Exécution de code** : Python arbitraire dans l'éditeur (`execute_tool_script` d'Epic), scripts embarqués (`detect_ue.py`, scripts de skill-creator), répertoire `bin/` d'un plugin ajouté au PATH.
|
||
3. **Réseau** : télémétrie de superpowers (désactivable), plugins MCP distants (`context7`, `github`).
|
||
4. **Instructions envahissantes** : workflows « obligatoires » qui supplantent notre méthode (superpowers), skills qui commitent ou poussent (`commit-commands`).
|
||
5. **Licences** : absence de licence (DSTN2000, ibrews, powershell-expert) = **aucune réutilisation**.
|
||
6. **Installeurs tiers** (`npx skills add`, `npx skillkit`) : à éviter, ils exécutent du code npm.
|
||
|
||
Règles d'adoption proposées (à valider par l'utilisateur) :
|
||
|
||
- **R1 — Revue intégrale avant installation.** Lire tous les fichiers (SKILL.md, annexes, scripts, hooks.json, .mcp.json, bin/) et consigner la revue dans `Docs/Migration/etat/SK/`.
|
||
- **R2 — Épinglage.** Copie manuelle d'une révision identifiée par son SHA de 40 caractères, notée dans un registre (origine, SHA, date, licence). Pour un plugin, source `github` avec `sha`.
|
||
- **R3 — Préférer la copie d'un skill isolé** au plugin entier. Pas de hooks tiers. Pas de `bin/`.
|
||
- **R4 — Licence MIT ou Apache-2.0 obligatoire.** Conserver l'avis de licence dans le dossier du skill.
|
||
- **R5 — Emplacement.** Les skills génériques vont dans `~/.claude/skills/`. Les skills LifePlay vont dans le **dépôt addon privé** (règle sandbox), ou dans `.claude/skills/` du jeu uniquement s'ils sont publiables. Aucun ajout au dépôt public sans accord.
|
||
- **R6 — Pas de `allowed-tools` large.** Pas de `--dangerously-skip-permissions`. Pour un skill à script, n'autoriser que `Bash(${CLAUDE_SKILL_DIR}/scripts/x *)`.
|
||
- **R7 — Réévaluation à chaque montée de version** (re-revue du diff entre les deux SHA).
|
||
- **R8 — Évals d'abord** (3 scénarios par skill, testés avec Haiku, Sonnet et Opus selon la grille a–f).
|
||
|
||
---
|
||
|
||
## 5. Établi / estimé / incertain
|
||
|
||
**Établi (source officielle citée)**
|
||
|
||
- Le champ `skills:` des agents personnalisés précharge le contenu **complet** des skills au démarrage. Il n'est pas restrictif : l'outil `Skill` reste disponible sauf s'il est exclu. Pas d'héritage du parent. Les agents intégrés ne préchargent pas. Les skills `disable-model-invocation` ne sont pas préchargeables (sub-agents).
|
||
- `context: fork` + `agent:` lance un skill dans un sous-agent (skills).
|
||
- Format, champs, emplacements et priorité ; fusion des commandes dans les skills ; bonnes pratiques (500 lignes, troisième personne, un seul niveau de référence).
|
||
- Épinglage d'un plugin par `ref` et `sha` (marketplace-reference).
|
||
- Contenus, licences et dates des dépôts listés (API GitHub, 2026-10-08).
|
||
|
||
**Estimé**
|
||
|
||
- quodsoler/unreal-engine-skills est composé de Markdown seul : déclaré par le README, non vérifié fichier par fichier.
|
||
- Pertinence de `clangd-lsp` avec un projet UE/MSVC : il faudrait générer `compile_commands.json` via UBT (`-mode=GenerateClangDatabase`), à tester.
|
||
- Le coût en contexte d'un skill préchargé est de l'ordre de 5 000 jetons au plus, si les recommandations de taille sont suivies.
|
||
|
||
**Incertain (avec le test qui trancherait)**
|
||
|
||
- **Application du champ `skills:` dans l'application de bureau** comme dans la CLI. Test : le skill témoin `sk-probe` avec marqueur (§ 1.4).
|
||
- **Contenu exact des hooks** `run-hook.cmd` et `session-start` de superpowers, et `unreal-context.sh` d'Epic. Test : lecture brute de ces fichiers avant toute adoption (R1).
|
||
- **Versions UE supportées** par le plugin Epic : non indiquées dans le README.
|
||
- **Écarts 5.5/5.8** dans les skills de quodsoler, écrits pour 5.8 : à relever lors de l'adaptation.
|
||
- **Nombre exact de skills** de quodsoler : 27 selon la description du dépôt, 31 dans le tableau du README.
|