Skip to content

Meilleurs skills Claude Code et Codex : lesquels installer, comment auditer un dépôt avant, et pourquoi un nouveau skill ne se déclenche pas

Mis à jour le

Dix dépôts d’agent skills populaires comparés par taille, code embarqué et coût en contexte, un script d’audit en lecture seule à lancer avant d’installer, et le réglage du budget de listing pour les skills installés qui ne se déclenchent jamais. Testé sur Claude Code 2.1.325.

En bref : installez quelques skills, pas un dépôt entier. Trois règles :

  1. Choisissez selon la tâche. Commencez par un petit pack sans code, comme obra/superpowers (15 skills), ou par un skill unique comme socratic-tutor de Jane Street. Laissez de côté les catalogues comme google/skills (203 skills) et NVIDIA/skills (452) tant que vous n’avez pas besoin d’un skill précis.
  2. Lisez avant d’installer. Un skill, ce sont des instructions et, parfois, des scripts qui s’exécutent avec les permissions de votre agent. Le script d’audit de l’étape 1 indique quels skills embarquent du code et quels fichiers ouvrir en premier. Il ne fait que lire des fichiers.
  3. Vérifiez le listing après l’installation. Claude Code présente au modèle une liste des noms et descriptions de skills, et cette liste est plafonnée. Sur une machine qui comptait déjà 98 skills, un skill tout juste installé n’apparaissait que par son nom : le modèle n’avait aucune description à rapprocher d’une demande. Lancez /skill-doctor, puis libérez du budget avec skillOverrides ou augmentez-le avec skillListingBudgetFraction.
Si vous voulezInstallezSkillsEmbarque du code
Un workflow de dev rigoureux (plan, TDD, débogage, revue)obra/superpowers153 skills
Des checklists d’ingénieur senior sur tout le cycle de vieaddyosmani/agent-skills252 skills
Des fichiers bureautiques : xlsx, docx, pptx, pdfanthropics/skills (document-skills)4 sur 20oui
Les API actuelles de la plateforme web plutôt que le JavaScript de 2019GoogleChrome/modern-web-guidance2non
Un seul skill pour apprendre un sujet à fondjanestreet/agent_skills1non

Ce qui a été testé : tous les chiffres viennent de clones superficiels (shallow clones) faits le 15 novembre 2026 et de Claude Code 2.1.325 sur macOS. Le script d’audit, claude plugin validate, /skill-doctor et le journal de débogage ont tous été exécutés. Le fait que le modèle choisisse ensuite un skill de lui-même n’a pas été testé, pas plus que SkillSpector, l’installeur npx skills ou Codex. Le tableau Testé vs documenté, vers la fin, sépare les deux.

Dix dépôts de skills comparés

Les agent skills sont des dossiers contenant un fichier SKILL.md que Claude Code, Codex et d’autres agents chargent à la demande. Si c’est le format lui-même qui vous intéresse, Codex vs Claude Code Skills couvre les chemins, le frontmatter et le partage d’un même skill entre les deux outils. Cette page parle d’autre chose : choisir et installer les skills des autres.

L’intérêt pour les dépôts de skills a bondi début novembre. Jane Street a publié le 3 novembre un dépôt contenant un seul skill, qui a atteint 712 points sur Hacker News. GoogleChrome/modern-web-guidance a sorti sa version 1.0.0 le 10 novembre. anthropics/skills a gagné environ 6 200 étoiles en une semaine.

Le tableau compte chaque SKILL.md de chaque dépôt. « Caractères de description » est la longueur totale du texte description, c’est-à-dire ce qu’un agent charge pour chaque skill à chaque tour. La dernière colonne compare ce total au budget de listing de 30 000 caractères que Claude Code a indiqué sur la machine de test.

DépôtÉtoilesSkillsCaractères de descriptionSkills avec code (fichiers)Part d’un listing de 30 000 caractères
janestreet/agent_skills (opens in a new tab)8 880134101%
GoogleChrome/modern-web-guidance (opens in a new tab)17 23921 71706%
obra/superpowers (opens in a new tab)317 955152 3173 (6)8%
vercel-labs/agent-skills (opens in a new tab)34 10892 9851 (90)10%
mattpocock/skills (opens in a new tab)324 937395 5013 (3)18%
kajisho5/ffmpeg-skill (opens in a new tab)5 902169 0841 (107)30%
anthropics/skills (opens in a new tab)195 208209 46411 (79)32%
addyosmani/agent-skills (opens in a new tab)117 8322510 0062 (2)33%
google/skills (opens in a new tab)24 324203107 60450 (232)359%
NVIDIA/skills (opens in a new tab)4 002452180 079159 (1 070)600%

Trois points ressortent.

  • La taille varie de deux ordres de grandeur. Installer tout google/skills ou tout NVIDIA/skills fait déborder le listing plusieurs fois. Les deux README permettent d’installer un seul skill : NVIDIA avec --skill, Google via l’invite de l’installeur.
  • La plupart des skills sont du simple Markdown. 552 des 782 skills n’embarquent aucun code. Ceux qui en embarquent se concentrent dans les skills de documents, de médias et de cloud, où un script prend en charge la partie déterministe.
  • Les outils pré-approuvés sont rares en dehors d’un seul catalogue. 126 skills de NVIDIA/skills et 2 de google/skills déclarent allowed-tools. Aucun des huit autres dépôts ne le fait.

Lequel pour quelle tâche

  • obra/superpowers est une méthode de travail complète : brainstorming, rédaction d’un plan, exécution, débogage systématique, vérification avant de déclarer le travail terminé. C’est le gros pack le moins coûteux en contexte.
  • addyosmani/agent-skills ressemble davantage à un jeu de checklists d’ingénierie : revue de code, conception d’API, CI, observabilité, durcissement de la sécurité. Ses descriptions sont plus longues : 25 skills coûtent environ quatre fois plus que Superpowers.
  • mattpocock/skills mise sur des commandes courtes que vous appelez vous-même (/grill-me, /tdd, /to-spec). Il contient huit skills in-progress.
  • anthropics/skills est le jeu de référence. Les profils data veulent en général ses skills xlsx, pdf, docx et pptx, livrés avec les scripts qui génèrent réellement les fichiers. Si vos analyses vivent dans des notebooks, un agent qui travaille dans Jupyter comme RunCell (opens in a new tab) couvre la partie que ces skills de fichiers ne traitent pas.
  • GoogleChrome/modern-web-guidance regroupe deux skills adossés à une CLI qui interroge un index de guides. L’objectif : éloigner les agents des patterns front-end dépassés.
  • kajisho5/ffmpeg-skill est un seul gros skill de 107 fichiers de code, dupliqué à deux endroits, accompagné de 14 skills de projet propres à l’auteur sous .claude/skills. Installez-le avec son installeur, pas en copiant le dépôt.

Étape 1 : auditer un dépôt de skills avant de l’installer

Les instructions d’un skill entrent dans le contexte de votre agent, et ses scripts s’exécutent avec les permissions de votre session. Lire le dépôt au préalable est votre seule défense : autant que cette lecture soit rapide.

Ce script parcourt un dossier, trouve chaque SKILL.md et affiche quels skills embarquent du code et lesquels contiennent des motifs à regarder de près. Il n’utilise que la bibliothèque standard de Python et n’exécute jamais rien du dossier analysé.

#!/usr/bin/env python3
"""Read-only audit of SKILL.md folders. Runs nothing from the repo it scans."""
import os, re, sys
 
RISKY = {
    "pipe-to-shell": r"(curl|wget)[^\n|]*\|\s*(sudo\s+)?(ba|z)?sh",
    "reads-secrets": r"\.ssh/|\.aws/credentials|\.env\b|id_rsa|\.netrc|keychain",
    "sudo": r"\bsudo\s",
    "rm-rf": r"\brm\s+-[a-zA-Z]*r[a-zA-Z]*f|\brm\s+-[a-zA-Z]*f[a-zA-Z]*r",
    "skip-permissions": r"dangerously-skip-permissions|bypassPermissions|--yolo",
    "hidden-unicode": r"[\u200b\u200c\u200d\u2060\u202a-\u202e\U000e0000-\U000e007f]",
}
CODE = (".py", ".sh", ".js", ".mjs", ".ts", ".rb", ".ps1")
 
def frontmatter(text):
    m = re.match(r"^---\n(.*?)\n---\n?", text, re.S)
    if not m:
        return None, text
    fields, key = {}, None
    for line in m.group(1).splitlines():
        k = re.match(r"^([A-Za-z_-]+):\s*(.*)$", line)
        if k:
            key = k.group(1)
            fields[key] = k.group(2).strip().strip("\"'")
        elif key and line.startswith((" ", "\t")):
            fields[key] += " " + line.strip()
    return fields, text[m.end():]
 
def audit(root):
    rows = []
    for folder, dirs, files in os.walk(root):
        dirs[:] = [d for d in dirs if d not in (".git", "node_modules")]
        if "SKILL.md" not in files:
            continue
        text = open(os.path.join(folder, "SKILL.md"), encoding="utf-8", errors="replace").read()
        fields, body = frontmatter(text)
        everything, code_files = text, 0
        for sub, _, names in os.walk(folder):
            for n in names:
                if n.endswith(CODE):
                    code_files += 1
                if n.endswith(CODE + (".md",)) and n != "SKILL.md":
                    try:
                        everything += open(os.path.join(sub, n), encoding="utf-8", errors="replace").read()
                    except OSError:
                        pass
        flags = [name for name, pat in RISKY.items() if re.search(pat, everything)]
        if fields is None:
            flags.append("no-frontmatter")
            fields = {}
        if fields.get("allowed-tools"):
            flags.append("allowed-tools")
        if "hooks" in fields:
            flags.append("hooks")
        if re.search(r"!`[^`]+`|```!", body):
            flags.append("shell-injection-block")
        desc = (fields.get("description", "") + " " + fields.get("when_to_use", "")).strip()
        rows.append((os.path.relpath(folder, root), len(desc), len(body), code_files, flags))
    return rows
 
if __name__ == "__main__":
    rows = audit(sys.argv[1])
    listing = sum(d for _, d, _, _, _ in rows)
    print(f"{len(rows)} skills, {listing:,} description chars (~{listing // 4:,} tokens if all are listed)")
    print(f"{sum(1 for r in rows if r[3])} skills ship code files, {sum(r[3] for r in rows)} code files in total")
    for path, desc, body, code, flags in sorted(rows, key=lambda r: (-len(r[4]), r[0])):
        if flags or "-v" in sys.argv:
            print(f"  {path}: desc={desc} body={body} code={code} flags={','.join(flags) or '-'}")

Clonez le dépôt en dehors de votre projet, puis pointez le script dessus.

git clone --depth 1 https://github.com/obra/superpowers /tmp/superpowers
python3 audit_skills.py /tmp/superpowers

La sortie pour Superpowers au 15 novembre :

15 skills, 2,317 description chars (~579 tokens if all are listed)
3 skills ship code files, 6 code files in total
  skills/brainstorming: desc=213 body=14933 code=3 flags=rm-rf
  skills/subagent-driven-development: desc=85 body=19484 code=0 flags=rm-rf
  skills/systematic-debugging: desc=91 body=9366 code=2 flags=reads-secrets

Comment lire les flags

Un flag veut dire « ouvrez ce fichier », pas « ce skill est malveillant ». Tous les flags vérifiés à la main dans ces dix dépôts étaient bénins. Le rm-rf signalé dans Superpowers est un rm -rf "$SESSION_DIR" dans un script qui nettoie son propre dossier temporaire. Le hidden-unicode de ffmpeg-skill est un liant sans chasse (zero-width joiner) dans une note sur les ligatures du hindi. reads-secrets se déclenche à la moindre mention de .env, y compris quand le texte conseille de ne pas le commiter.

FlagCe qu’il a détectéCe qu’il faut vérifier
pipe-to-shellcurl ... | sh n’importe où dans le skillQuelle URL, et si le skill demande à l’agent de l’exécuter
reads-secrets.env, .ssh/, .aws/credentials, keychainS’il lit le fichier ou se contente de le mentionner
sudo, rm-rfLes commandes littéralesLe chemin supprimé et qui déclenche la commande
skip-permissionsDes options qui désactivent les demandes de permissionToute instruction de lancer l’agent de cette façon
hidden-unicodeDes caractères de contrôle sans chasse et bidirectionnelsSi du texte est caché à un lecteur humain
allowed-toolsUn frontmatter qui pré-approuve des outilsQuels outils s’exécutent sans demande tant que le skill est actif
hooksUn frontmatter qui enregistre des hooksLa commande lancée par le hook, puisqu’il reste actif toute la session
shell-injection-blockUn bloc !`command` dans le corpsLa commande s’exécute au chargement du skill, avant que le modèle ne lise quoi que ce soit

Les trois derniers comptent le plus dans Claude Code. allowed-tools accorde des outils sans rien demander pendant le tour qui invoque le skill. Une entrée hooks continue de s’exécuter jusqu’à la fin de la session. Un bloc !`command` s’exécute au chargement du skill.

Deux vérifications de plus

Claude Code peut valider le frontmatter pour vous. La commande est passée sans erreur sur un dossier de 91 skills installés. Sur un dépôt qui n’est pas empaqueté comme plugin, elle échoue avec No manifest found : vous savez alors que le dépôt ne s’installe que par copie.

claude plugin validate .claude/skills

Pour une analyse plus poussée, SkillSpector (opens in a new tab) de NVIDIA est un scanner dédié, avec 71 motifs et un score de risque de 0 à 100. Son README donne ceci comme chemin rapide ; l’outil n’a pas été exécuté pour cet article.

uv tool install git+https://github.com/NVIDIA/skillspector.git
skillspector scan ./my-skill/ --no-llm

Étape 2 : n’installer que ce dont vous avez besoin

Copier un seul dossier est la méthode d’installation qui compte le moins de pièces mobiles. C’est celle qui a été testée ici.

git clone --depth 1 https://github.com/janestreet/agent_skills /tmp/agent_skills
mkdir -p .claude/skills
cp -R /tmp/agent_skills/socratic-tutor .claude/skills/

La destination décide de l’endroit où le skill se charge.

AgentCe projet uniquementTous les projets
Claude Code.claude/skills/<name>/~/.claude/skills/<name>/
Codex.agents/skills/<name>/~/.agents/skills/<name>/

Préférez le dossier du projet pour tout ce que vous essayez. Le skill reste hors de vos autres sessions, et supprimer le dossier suffit à le retirer.

Les deux autres voies viennent du README de chaque projet et n’ont pas été exécutées ici.

  • Les plugins installent un pack entier et se mettent à jour depuis /plugin. Par exemple, /plugin marketplace add anthropics/skills, puis /plugin install document-skills@anthropic-agent-skills. Pour Superpowers, c’est /plugin install superpowers@claude-plugins-official.
  • La CLI skills de Vercel Labs copie les fichiers dans le projet pour plusieurs agents à la fois : npx skills add addyosmani/agent-skills --skill test-driven-development -a claude-code. Ajoutez --list pour parcourir d’abord le contenu.

Une réserve tirée de la documentation de Claude Code : skillOverrides ne s’applique pas aux skills de plugins. Si un pack de plugin est trop gros, vous désactivez le plugin, pas des skills individuels.

Étape 3 : vérifier que le nouveau skill est bien listé

Cette étape repère une cause de skill « installé mais qui ne se déclenche jamais » qui ne produit aucune erreur.

Claude Code donne au modèle un listing du nom et de la description de chaque skill. Ce listing a un budget : 1 % de la fenêtre de contexte par défaut. Quand il déborde, Claude Code garde tous les noms mais supprime des descriptions, en commençant par les skills que vous utilisez le moins. Un skill fraîchement installé compte zéro utilisation. La documentation de Claude Code décrit ce mécanisme dans la section « Skill descriptions are cut short » (les descriptions de skills sont tronquées) (opens in a new tab) ; les chiffres ci-dessous montrent ce que cela donne en pratique.

Voici ce que cela a donné sur une machine qui avait déjà 84 skills personnels et 14 skills de plugins. Après la copie d’un nouveau skill, le journal de débogage indiquait :

[WARN] Skill listing over budget: 112 skills, 37491 chars > 30000 budget — descriptions will be truncated.

Et /skill-doctor montrait le nouveau skill listé par son nom seulement :

ConfigurationCoût en contexte de socratic-tutorSignification
Budget par défaut< 20Nom seul. Sa description de 341 caractères a été supprimée
skillListingBudgetFraction: 0.02~120Description complète listée
skillOverrides: "name-only"< 20Nom seul, par votre choix. Même valeur que le cas par défaut hors budget
skillOverrides: "off"-Pas listé du tout

Un coût de < 20 ne prouve rien à lui seul, car un skill dont la description tient en une ligne coûte lui aussi moins de 20. Comparez-le à la longueur de la description. Les décomptes ci-dessous ne retiennent que les skills dont la description est assez longue pour trancher.

En ajouter davantage a aggravé la situation pour tous les autres. Avec 91 skills de projet installés, 76 étaient listés et 70 d’entre eux avaient perdu une description de 80 caractères ou plus. Avec 289, le nombre de skills personnels ayant perdu leur description est passé de 6 à 39 : les nouveaux arrivants ont évincé les descriptions de skills qui fonctionnaient jusque-là.

Lancer la vérification

/skill-doctor affiche une ligne par skill avec son coût dans le listing. Il demande Claude Code 2.1.252 ou plus récent et fonctionne en mode -p.

claude -p "/skill-doctor"

Pour voir l’avertissement de budget lui-même, écrivez un journal de débogage et cherchez dedans.

claude --debug-file /tmp/cc-debug.log -p "hello"
grep "Skill listing over budget" /tmp/cc-debug.log

Corriger

Désactivez d’abord ce que vous n’utilisez pas. Ce réglage va dans .claude/settings.json pour le projet, ou dans ~/.claude/settings.json pour tous les projets.

{
  "skillOverrides": {
    "legacy-context": "name-only",
    "deploy": "off"
  }
}

"name-only" garde un skill appelable via /name tout en retirant sa description du listing. "off" le masque complètement. En session interactive, /skills écrit le même réglage : appuyez sur Space sur une ligne pour faire défiler ses états, puis sur Esc pour enregistrer.

Si vous utilisez vraiment tout, augmentez plutôt le budget. Cela coûte du contexte à chaque tour.

{
  "skillListingBudgetFraction": 0.02
}

Codex a le même mécanisme avec d’autres chiffres. Sa documentation indique que la liste initiale des skills utilise au plus 2 % de la fenêtre de contexte, ou 8 000 caractères quand la fenêtre est inconnue, qu’elle raccourcit d’abord les descriptions et qu’elle peut omettre des skills de la liste en affichant un avertissement. skills.max_context_tokens modifie le budget, et une entrée [[skills.config]] avec enabled = false dans ~/.codex/config.toml désactive un skill.

Étape 4 : laisser un skill s’exécuter sans surveillance

Claude Code 2.1.325, sorti le 13 novembre, a changé un comportement qui touche les tâches planifiées. Les tâches planifiées et /loop demandent désormais confirmation avant d’exécuter un skill qui déclare allowed-tools ou des hooks. Pour exécuter un tel skill sans demande, autorisez-le par son nom.

{
  "permissions": {
    "allow": ["Skill(release-notes)"]
  }
}

L’inverse fonctionne aussi. Une règle deny comme Skill(deploy *) empêche le modèle d’invoquer un skill, et refuser Skill sans argument les désactive tous. Ces deux points viennent de la documentation de Claude Code. Sécuriser les permissions de Claude Code couvre les autres réglages de permissions qui méritent d’être commités dans un dépôt.

Étape 5 : supprimer un skill

  • Skill copié : supprimez son dossier sous .claude/skills/ ou .agents/skills/.
  • Skill de plugin : /plugin uninstall <plugin>@<marketplace>, ou désactivez-le dans /plugin.
  • Le garder sans utilisation automatique : passez-le en "name-only" ou "off" dans skillOverrides, ou ajoutez disable-model-invocation: true à son frontmatter si le fichier vous appartient.

Testé vs documenté

AffirmationStatut
Nombre de skills, taille des descriptions et nombre de fichiers de code pour les dix dépôtsTesté, 15 novembre 2026, clones superficiels
Sortie du script d’audit et flags bénins décritsTesté
claude plugin validate sur un dossier de skills et sur quatre dépôtsTesté, Claude Code 2.1.325
Listing hors budget à 112 skills, nouveau skill listé par son nom seulementTesté, une machine macOS avec 98 skills existants
skillListingBudgetFraction: 0.02 et skillOverrides: "off" modifient le listingTesté avec /skill-doctor. "name-only" affichait le même < 20 que le cas par défaut hors budget
Le modèle choisit un skill de lui-même après la correctionNon testé
Règles allow et deny Skill(name), changement de la 2.1.325 sur les tâches planifiéesD’après la documentation et le changelog de Claude Code
Installation par plugin, npx skills, SkillSpectorD’après le README de chaque projet, non exécuté
Chemins, budget et clés de configuration de CodexD’après la documentation de Codex

Le budget de 30 000 caractères est celui qu’une seule machine a indiqué. Le vôtre dépend de la fenêtre de contexte du modèle : lisez votre propre journal de débogage avant de vous fier à la colonne des pourcentages.

FAQ

Quels agent skills installer en premier dans Claude Code ?

Commencez petit. obra/superpowers fournit un workflow complet de plan, test, débogage et revue en 15 skills. addyosmani/agent-skills ajoute 25 checklists d’ingénierie. Pour les feuilles de calcul, les PDF et les présentations, installez le plugin document-skills de anthropics/skills. Dans les gros catalogues, installez des skills à l’unité plutôt que l’ensemble.

Pourquoi mon nouveau skill Claude Code ne se déclenche-t-il pas ?

Sur une machine qui compte beaucoup de skills, le listing dépasse probablement son budget et le nouveau skill n’est listé que par son nom. Lancez /skill-doctor. Un coût en contexte inférieur à 20 sur un skill dont la description est longue signifie que la description a été supprimée. Désactivez les skills inutilisés avec skillOverrides, ou augmentez skillListingBudgetFraction.

Comment vérifier qu’un skill est sûr avant de l’installer ?

Clonez-le en dehors de votre projet et lisez-le. Cherchez les scripts embarqués, allowed-tools, hooks et les blocs !`command`. Le script d’audit ci-dessus les liste pour chaque SKILL.md sans rien exécuter.

À partir de combien de skills y en a-t-il trop pour Claude Code ?

Cela dépend de la longueur des descriptions, pas du nombre. Vingt skills de anthropics/skills utilisent environ 9 500 caractères sur un budget de 30 000. google/skills en entier en demande environ 107 600.

À quoi sert /skill-doctor ?

Il affiche chaque skill chargé avec sa source, son coût dans le listing, sa consommation de tokens sur 7 jours et son nombre d’invocations, et signale ceux qui n’ont jamais servi. Il demande Claude Code 2.1.252 ou plus récent.

Où placer un skill pour que Claude Code et Codex puissent tous deux l’utiliser ?

.claude/skills/ pour Claude Code et .agents/skills/ pour Codex, dans le projet ou dans votre répertoire personnel. Gardez une seule copie et créez un lien symbolique pour l’autre.

Peut-on désactiver un skill sans le supprimer ?

Oui : skillOverrides dans les réglages de Claude Code, ou [[skills.config]] avec enabled = false dans Codex. Les skills de plugins se gèrent via /plugin.

Pourquoi une tâche planifiée demande-t-elle confirmation avant d’exécuter mon skill dans Claude Code 2.1.325 ?

Les tâches planifiées et /loop demandent désormais confirmation avant d’exécuter un skill qui déclare allowed-tools ou des hooks. Ajoutez Skill(name) à permissions.allow.

Sources

Guides associés