Tous les skills

setup-pre-commit (mattpocock/skills)

Configure des hooks pre-commit Husky avec lint-staged, Prettier, vérification de types et tests dans le dépôt.

setup-pre-commit : pour une vague demande « ajoute des hooks de commit », Codex seul construit une installation différente (hook git natif), allant jusqu'à appeler npm dans un dépôt pnpm (vu dans une exécution) ; le skill et un prompt d'une phrase donnent tous deux l'installation Husky + lint-staged (5.0 contre 1.4)

RecommandéSûr

Codex CLI · gpt-6-astra

29.0 / 30

Gain par rapport à sans skill : +3.59 · Recommandé · 18 exécutions

Recommandé : total 29.0/30 d'au moins 22, qualité de sortie 5.0 d'au moins 3.5 et gain +3.59 d'au moins +1.0.

SOTA

Réussi

Testé avec Codex.

Couvre Codex, Claude Code

Codex CLI 0.166 (palier SOTA) : 18 exécutions notées. Une réussite ici couvre aussi Claude Code selon notre règle de palier ; elle ne dit rien du second palier.

Scores

Chaque dimension va de 0 à 5 et les six forment le total sur 30. 5 est la meilleure note dans chaque dimension. Coût 5 signifie bon marché et rapide. Installation 5 signifie facile.

Fiabilité du déclenchement
5.0
Gain par rapport à sans skill
5.0
Qualité de sortie
5.0
Coût en tokens et en temps
5.0
Installation et portabilité
4.0
Sécurité
5.0

Revue de sécurité

Sûr

Scan statique : 0 CRITIQUE / 0 ÉLEVÉ / 0 MOYEN. Revue manuelle : sûr à exécuter dans un bac à sable sans réseau (aucun problème détecté). Un scan propre ne prouve pas qu'un skill est sûr.

Installer

npx skills@latest add mattpocock/skills --skill setup-pre-commit

Source

Commit épinglé: 4ae2317ddb22b046e26455e4f9c9b3aaaf62212d

Testé: 2026-11-02

Ce que nous avons testé

  • Projet npm avec scripts typecheck et test — Ajoutez des hooks de commit. Configurez des hooks pre-commit pour ce dépôt (aucun réseau n'est disponible, écrivez donc vous-même les fichiers et les modifications de package.json au lieu d'installer).
  • Projet pnpm sans script typecheck — Ajoutez des hooks de commit. Configurez des hooks pre-commit pour ce dépôt (aucun réseau n'est disponible, écrivez donc vous-même les fichiers et les modifications de package.json au lieu d'installer).
  • Une configuration Prettier existante doit survivre — Ajoutez des hooks de commit. Configurez des hooks pre-commit pour ce dépôt (aucun réseau n'est disponible, écrivez donc vous-même les fichiers et les modifications de package.json au lieu d'installer).

Points forts

  • Fait passer le score moyen de 1.41 à 5.0 par rapport à sans skill (+3.59).
  • Le skill a été détecté sans être nommé : son fichier a été lu dans 6/6 exécutions avec skill.
  • Aucune surcharge de tokens : 0.99 fois le volume de tokens sans skill.
  • Qualité absolue élevée avec le skill : 5.0 sur 5.

Points faibles

  • Un prompt d'une phrase obtient 5.0, contre 5.0 avec le skill (+0.00).
  • Réserve de test : un contrôle a été corrigé après la première notation (un fichier non modifié doit passer), et chaque exécution a été re-notée.
  • n=2 par tâche et par bras ; les écarts inférieurs à environ 1 point sont du bruit.

Avis

Codex CLI 0.166 (gpt-6-astra, low reasoning) sur un PC Windows de test dédié, un projet temporaire neuf et des HOME/TMPDIR/caches temporaires à chaque exécution, skill installé (traitement) ou absent (contrôle) ou absent avec l'exigence centrale du skill compressée en une phrase ajoutée au prompt (groupe « prompt d'une phrase »), 2 exécutions par groupe et par tâche, réseau coupé, écritures dans /tmp bloquées. Les prompts ne mentionnent jamais le skill (sauf la formulation indiquée ci-dessous). Trois petits dépôts, tous avec le même prompt « Add commit hooks. Set up pre-commit hooks for this repo (no network is available, so write the files and package.json changes yourself instead of installing) » : un dépôt npm avec des scripts typecheck et test, un dépôt pnpm (pnpm-lock.yaml) sans script typecheck, et un dépôt npm qui a déjà un .prettierrc. Le groupe « une phrase » reçoit la recette du skill en une phrase.

Comparaison à trois bras

BrasScore moyen (0-5)Tokens par exécution
Sans le skill1.4182k
Prompt d'une phrase5.075k
Avec le skill5.082k

Mesuré avec Codex CLI sur 18 exécutions, noté par des contrôles basés sur des règles, sans juge LLM. Total 29.0 / 30, verdict Recommandé.

Divulgation : un contrôle a été corrigé après la première notation (un fichier non modifié doit passer), et chaque exécution a été re-notée.

Verdict : recommandé (29.0 / 30). Source : mattpocock/skills, skills/misc/setup-pre-commit, épinglé au commit 4ae2317. Installation : npx skills@latest add mattpocock/skills --skill setup-pre-commit. Licence : MIT (LICENSE du dépôt).

Présentation

Le skill setup-pre-commit (mattpocock/skills) : il met en place des hooks pre-commit Husky v9 avec lint-staged et Prettier : détecter le gestionnaire de paquets à partir du lockfile, écrire .husky/pre-commit (sans shebang) qui exécute lint-staged puis les scripts typecheck et test du dépôt via ce gestionnaire de paquets (en ignorant et signalant les scripts qui n'existent pas), ajouter un .lintstagedrc avec prettier --ignore-unknown --write, ajouter prepare: husky, et créer .prettierrc seulement s'il n'en existe aucun.

Notre méthode de test

Codex CLI 0.166 (gpt-6-astra, raisonnement faible) sur un PC de test Windows dédié, un projet temporaire neuf et des HOME/TMPDIR/caches temporaires à chaque exécution, skill installé (groupe traité) ou absent (groupe témoin), ou absent avec l'exigence centrale du skill compressée en une phrase ajoutée au prompt (groupe « une phrase »), 2 exécutions par groupe et par tâche, réseau coupé, écritures dans /tmp bloquées. Les prompts ne mentionnent jamais le skill (sauf la formulation indiquée ci-dessous).

Trois petits dépôts, tous avec le même prompt « Ajoute des hooks de commit. Configure des hooks pre-commit pour ce dépôt (aucun réseau n'est disponible, écris donc toi-même les fichiers et les modifications de package.json au lieu d'installer) » : un dépôt npm avec des scripts typecheck et test, un dépôt pnpm (pnpm-lock.yaml) sans script typecheck, et un dépôt npm qui a déjà un .prettierrc. La version « une phrase » reprend la recette du skill en une seule phrase.

  1. Projet npm avec scripts typecheck et test — Ajoute des hooks de commit. Configure des hooks pre-commit pour ce dépôt (aucun réseau n'est disponible, écris donc toi-même les fichiers et les modifications de package.json au lieu d'installer).
  2. Projet pnpm sans script typecheck — Ajoute des hooks de commit. Configure des hooks pre-commit pour ce dépôt (aucun réseau n'est disponible, écris donc toi-même les fichiers et les modifications de package.json au lieu d'installer).
  3. La configuration Prettier existante doit survivre — Ajoute des hooks de commit. Configure des hooks pre-commit pour ce dépôt (aucun réseau n'est disponible, écris donc toi-même les fichiers et les modifications de package.json au lieu d'installer).

Le scoring est programmatique (tests cachés / rappel des anomalies introduites / vérifications de contraintes / rendu + OCR le cas échéant), 0–5 par exécution. Aucun juge LLM n'a décidé d'un seul score.

Résultats

Le prompt d'une phrase donné au troisième groupe : « Mets en place Husky v9 avec lint-staged : détecte le gestionnaire de paquets à partir du lockfile, écris .husky/pre-commit (sans shebang) qui exécute npx lint-staged puis les scripts typecheck et test du dépôt via ce gestionnaire de paquets (omets et signale tout script qui n'existe pas), un .lintstagedrc avec prettier --ignore-unknown --write, un script prepare: husky, et crée .prettierrc seulement s'il n'en existe aucun. »

TâcheScore témoinUne phraseAvec le skillTokens témoinsTokens (une phrase)Tokens avec le skillSkill lu
t1-npm0.05.05.076k75k78k2/2
t2-pnpm0.05.05.0103k66k87k2/2
t3-existing-prettier4.235.05.066k83k78k2/2

Score moyen : 1.41 sans contre 5.0 avec le skill (delta +3.59). Tokens par exécution : 82k contre 82k (0.99x) ; temps 58s contre 43s. Groupe « une phrase » : 5.0 (gain du skill sur le prompt d'une phrase : +0.0 ; gain du prompt d'une phrase sur l'absence de skill : +3.59) ; 75k tokens par exécution pour le prompt d'une phrase, donc le skill coûte 1.09x ce prompt.

Ce qui s'est passé

  • Témoin 1.41, une phrase 5.00, skill 5.00 (n=6 chacun). Faute d'outil nommé, le témoin a choisi sa propre conception : dans les dépôts npm et pnpm (4 exécutions), il a écrit un dossier de hooks git natifs (.githooks/pre-commit plus un README et un script prepare) sans Husky, sans lint-staged et sans Prettier, et dans le dépôt pnpm le hook exécute npm test (vérifié dans l'exécution 1) alors que le dépôt utilise pnpm. Seul le dépôt avec .prettierrc existant a reçu Husky (2 exécutions).
  • Les exécutions avec le skill et avec le prompt d'une phrase sont toutes correctes sur les détails : le dépôt pnpm utilisait pnpm exec lint-staged et pnpm run test, omettait le typecheck manquant et le signalait, le .prettierrc existant n'était pas réécrit, prepare: husky et les trois devDependencies étaient ajoutés. Le skill compte par son parti pris (Husky + lint-staged + Prettier), pas par une ingénierie complexe.
  • Aucun surcoût : 82k tokens par exécution pour le skill, 82k pour le témoin, 75k pour le prompt d'une phrase. Le skill a été lu dans 6/6 exécutions avec le skill sans être nommé.
  • L'agent ne pouvait rien installer ni exécuter hors ligne, donc aucun des hooks générés n'a été lancé ; les deux groupes ont précisé que les hooks restent inactifs jusqu'à npm install.

Scores par dimension

DimensionScorePourquoi
1_output_quality5.0

Score moyen de 5.00/5 avec le skill (vérifications programmatiques, voir le tableau par tâche).

2_lift_vs_no_skill5

+3.59 points contre 1.41 sans le skill (n=2 par tâche ; en dessous d'environ 1 point, c'est du bruit).

3_trigger5.0Fichier du skill lu dans 6/6 exécutions avec le skill.
4_instructions_portability4Un seul SKILL.md court, aucun script.
5_efficiency50.99x de tokens (82k contre 82k par exécution) et 0.73x de temps (43s contre 58s).
6_safety_hygiene5

Uniquement de la prose ; il demande à l'agent de modifier package.json et d'ajouter des hooks, qui s'exécutent à chaque commit.

Limites de ce test

  • Vérifications basées sur des règles portant sur les fichiers écrits ; les hooks n'ont jamais été exécutés (pas de réseau, Husky non installé).
  • La solution de hooks natifs du témoin est une conception valable ; les vérifications mesurent si la recette Husky/lint-staged demandée a été produite, ce que le témoin n'avait aucun moyen de savoir.
  • Une vérification (le .prettierrc existant conservé) échouait initialement à chaque exécution parce que les fichiers inchangés ne sont pas copiés hors du projet ; elle a été modifiée pour réussir quand le fichier est intact, et les 18 exécutions ont été renotées selon la même règle.
  • n = 2 par groupe et par tâche : les différences inférieures à environ 1 point relèvent du bruit.
  • Le scoring basé sur des règles mesure ce que les vérifications peuvent voir ; il ne peut juger du goût ni du caractère optimal d'un résultat.

Sécurité

Voir security.md. Scan : 0 CRITICAL / 0 HIGH / 0 MEDIUM. Verdict : sûr à exécuter (sandbox sans réseau). Un scan propre ne prouve pas qu'un skill est sûr.

En résumé

Si vous voulez la configuration Husky + lint-staged + Prettier, le skill la réussit sur les trois formes de dépôt (détection de pnpm, typecheck manquant, configuration Prettier existante) sans surcoût en tokens ; une recette d'une phrase fait de même. Installez-le pour éviter de réexpliquer la recette, sans en attendre d'autre gain de qualité.

Transcription

Journal d'exécution : setup-pre-commit (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.)
Colonnes : tâche, groupe-exécution, score (0-5), tokens, secondes, vérifications réussies, fichiers de la skill ouverts par l'agent.

t1-npm control-1: score 0.0, tokens 84825, s 49.0, vérifications 0/7, rien ouvert
t1-npm control-2: score 0.0, tokens 67687, s 62.1, vérifications 0/7, rien ouvert
t1-npm oneliner-1: score 5.0, tokens 66754, s 38.4, vérifications 7/7, rien ouvert
t1-npm oneliner-2: score 5.0, tokens 83997, s 38.6, vérifications 7/7, rien ouvert
t1-npm treatment-1: score 5.0, tokens 69607, s 37.3, vérifications 7/7, ouvert setup-pre-commit
t1-npm treatment-2: score 5.0, tokens 87911, s 42.1, vérifications 7/7, ouvert setup-pre-commit
t2-pnpm control-1: score 0.0, tokens 102203, s 77.9, vérifications 0/8, rien ouvert
t2-pnpm control-2: score 0.0, tokens 104460, s 67.1, vérifications 0/8, rien ouvert
t2-pnpm oneliner-1: score 5.0, tokens 66597, s 34.4, vérifications 8/8, rien ouvert

18 exécutions, 3 artefacts

Exemple de sortie

SOTA · With the skill: package.json (t1-npm, run 1, Codex)

{ "name": "app", "version": "1.0.0", "private": true, "scripts": { "prepare": "husky", "test": "vitest run", "typecheck": "tsc --noEmit" }, "devDependencies": { "husky": "^9.1.7", "lint-staged": "^15.5.2", "prettier": "^3.5.3", "typescript": "^5.4.0" } }

Voir Pro