setup-pre-commit (mattpocock/skills)
Configura hooks pre-commit de Husky con lint-staged, Prettier, comprobación de tipos y pruebas en el repositorio.
setup-pre-commit: ante una petición vaga de «añadir hooks de commit», Codex sin más prepara una configuración distinta (hook nativo de git), incluso llamando a npm en un repositorio pnpm (visto en una ejecución); la skill y un prompt de una frase ofrecen la configuración con Husky + lint-staged (5.0 vs 1.4)
Codex CLI · gpt-6-astra
29.0 / 30
Mejora frente a sin skill: +3.59 · Recomendada · 18 ejecuciones
Recomendada: el total 29.0/30 es al menos 22, la calidad de salida 5.0 es al menos 3.5 y la mejora +3.59 es al menos +1.0.
SOTA
AprobadaProbada con Codex.
Cubre Codex, Claude Code
Codex CLI 0.166 (nivel SOTA): 18 ejecuciones puntuadas. Una pasada aquí también cubre Claude Code según nuestra regla de niveles; no dice nada sobre el segundo nivel.
Puntuaciones
Cada dimensión va de 0 a 5 y las seis suman el total sobre 30. 5 es mejor en todas las dimensiones. Coste 5 significa barato y rápido. Instalación 5 significa fácil.
- Fiabilidad de activación
- 5.0
- Mejora frente a sin skill
- 5.0
- Calidad de salida
- 5.0
- Coste en tokens y tiempo
- 5.0
- Instalación y portabilidad
- 4.0
- Seguridad
- 5.0
Revisión de seguridad
SeguraEscaneo estático: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Revisión manual: Segura de ejecutar en un sandbox sin red (sin hallazgos). Un escaneo limpio no demuestra que una skill sea segura.
Instalar
npx skills@latest add mattpocock/skills --skill setup-pre-commit
Commit fijado: 4ae2317ddb22b046e26455e4f9c9b3aaaf62212d
Probada: 2026-11-02
Qué probamos
- Proyecto npm con scripts de typecheck y test — Añade hooks de commit. Configura hooks de pre-commit para este repositorio (no hay red disponible, así que escribe tú mismo los archivos y los cambios de package.json en lugar de instalarlos).
- Proyecto pnpm sin script de typecheck — Añade hooks de commit. Configura hooks de pre-commit para este repositorio (no hay red disponible, así que escribe tú mismo los archivos y los cambios de package.json en lugar de instalarlos).
- La configuración de Prettier existente debe sobrevivir — Añade hooks de commit. Configura hooks de pre-commit para este repositorio (no hay red disponible, así que escribe tú mismo los archivos y los cambios de package.json en lugar de instalarlos).
Ventajas
- Eleva la puntuación media de 1.41 a 5.0 frente a sin skill (+3.59).
- La skill se activó sin nombrarla: se leyó el archivo de la skill en 6/6 ejecuciones con skill.
- Sin sobrecoste de tokens: 0.99x los tokens de sin skill.
- Calidad absoluta alta con la skill: 5.0 sobre 5.
Inconvenientes
- Un prompt de una frase obtuvo 5.0, frente a 5.0 con la skill (+0.00).
- Salvedad de la prueba: se corrigió una comprobación después de la primera puntuación (un archivo sin tocar debe pasar) y se volvieron a puntuar todas las ejecuciones.
- n=2 por tarea y rama; las diferencias de menos de aproximadamente 1 punto son ruido.
Reseña
Codex CLI 0.166 (gpt-6-astra, razonamiento bajo) en un PC Windows de prueba dedicado, con un proyecto temporal nuevo y HOME/TMPDIR/cachés temporales en cada ejecución, la skill instalada (grupo con skill), sin ella (control) o sin ella pero con el requisito central de la skill comprimido en una frase añadida al prompt (grupo del prompt de una frase), 2 ejecuciones por grupo y tarea, red desactivada y escrituras en /tmp bloqueadas. Los prompts nunca mencionan la skill (salvo la formulación indicada más abajo). Tres repositorios pequeños, todos con el mismo prompt «Añade hooks de commit. Configura hooks de pre-commit para este repositorio (no hay red disponible, así que escribe tú mismo los archivos y los cambios de package.json en lugar de instalarlos)»: un repositorio npm con scripts de typecheck y test, un repositorio pnpm (pnpm-lock.yaml) sin script de typecheck y un repositorio npm que ya tiene un .prettierrc. Prompt de una frase = la receta de la skill en una sola frase.
Comparación de tres ramas
| Rama | Puntuación media (0-5) | Tokens por ejecución |
|---|---|---|
| Sin la skill | 1.41 | 82k |
| Prompt de una frase | 5.0 | 75k |
| Con la skill | 5.0 | 82k |
Medido con Codex CLI en 18 ejecuciones, puntuado con comprobaciones basadas en reglas y sin juez LLM. Total 29.0 / 30, veredicto Recomendada.
Aviso: Se corrigió una comprobación después de la primera puntuación (un archivo sin tocar debe pasar) y se volvieron a puntuar todas las ejecuciones.
Veredicto: Recomendada (29.0 / 30). Fuente: mattpocock/skills, skills/misc/setup-pre-commit, fijada en el commit 4ae2317. Instalación: npx skills@latest add mattpocock/skills --skill setup-pre-commit. Licencia: MIT (LICENSE del repositorio).
Qué es
La skill setup-pre-commit (mattpocock/skills): configura hooks pre-commit de Husky v9 con lint-staged y Prettier: detecta el gestor de paquetes desde el lockfile, escribe .husky/pre-commit (sin shebang) que ejecuta lint-staged y luego los scripts de typecheck y test del repositorio a través de ese gestor de paquetes (omitiendo y reportando los scripts que no existen), añade un .lintstagedrc con prettier --ignore-unknown --write, añade prepare: husky y crea .prettierrc solo cuando no existe ninguno.
Cómo lo probamos
Codex CLI 0.166 (gpt-6-astra, razonamiento bajo) en un PC de pruebas Windows dedicado, un proyecto temporal nuevo y HOME/TMPDIR/cachés temporales por ejecución, skill instalada (tratamiento) o ausente (control) o ausente con el requisito central de la skill comprimido en una frase añadida al final del prompt (grupo de una frase), 2 ejecuciones por grupo y tarea, red desactivada, escrituras en /tmp bloqueadas. Los prompts nunca mencionan la skill (salvo la formulación indicada abajo).
Tres repositorios pequeños, todos con el mismo prompt 'Añade hooks de commit. Configura hooks pre-commit para este repositorio (no hay red disponible, así que escribe tú mismo los archivos y los cambios de package.json en lugar de instalar)': un repositorio npm con scripts de typecheck y test, un repositorio pnpm (pnpm-lock.yaml) sin script de typecheck y un repositorio npm que ya tiene un .prettierrc. Frase única = la receta de la skill en una frase.
- Proyecto npm con scripts de typecheck y test — Añade hooks de commit. Configura hooks pre-commit para este repositorio (no hay red disponible, así que escribe tú mismo los archivos y los cambios de package.json en lugar de instalar).
- Proyecto pnpm sin script de typecheck — Añade hooks de commit. Configura hooks pre-commit para este repositorio (no hay red disponible, así que escribe tú mismo los archivos y los cambios de package.json en lugar de instalar).
- La configuración de Prettier existente debe sobrevivir — Añade hooks de commit. Configura hooks pre-commit para este repositorio (no hay red disponible, así que escribe tú mismo los archivos y los cambios de package.json en lugar de instalar).
La puntuación es programática (tests ocultos / detección de problemas sembrados / comprobaciones de restricciones / renderizado + OCR cuando corresponde), 0–5 por ejecución. Ningún juez LLM decidió ninguna puntuación.
Resultados
La frase única que recibió el tercer grupo: "Configura Husky v9 con lint-staged: detecta el gestor de paquetes desde el lockfile, escribe .husky/pre-commit (sin shebang) ejecutando npx lint-staged y luego los scripts de typecheck y test del repositorio con ese gestor de paquetes (omite y avísame de cualquier script que no exista), un .lintstagedrc con prettier --ignore-unknown --write, un script prepare: husky, y crea .prettierrc solo si no existe ninguno."
| Tarea | Puntuación control | Una frase | Con la skill | Tokens control | Tokens de una frase | Tokens con la skill | Skill leída |
|---|---|---|---|---|---|---|---|
| t1-npm | 0.0 | 5.0 | 5.0 | 76k | 75k | 78k | 2/2 |
| t2-pnpm | 0.0 | 5.0 | 5.0 | 103k | 66k | 87k | 2/2 |
| t3-existing-prettier | 4.23 | 5.0 | 5.0 | 66k | 83k | 78k | 2/2 |
Puntuación media: 1.41 sin vs 5.0 con la skill (delta +3.59). Tokens por ejecución: 82k vs 82k (0.99x); tiempo 58s vs 43s. Grupo de una frase: 5.0 (la ganancia de la skill sobre la frase única: +0.0; la ganancia de la frase única sobre sin skill: +3.59); tokens de la frase única 75k por ejecución, así que la skill cuesta 1.09x la frase única.
Qué ocurrió
- Control 1.41, una frase 5.00, skill 5.00 (n=6 cada uno). Sin una herramienta nombrada, el control eligió su propio diseño: en los repositorios npm y pnpm (4 ejecuciones) escribió una carpeta nativa de hooks de git (.githooks/pre-commit más un README y un script prepare) sin Husky, sin lint-staged y sin Prettier, y en el repositorio pnpm el hook ejecuta
npm test(comprobado en la ejecución 1) aunque el repositorio usa pnpm. Solo el repositorio con .prettierrc existente recibió Husky (2 ejecuciones). - Las ejecuciones con skill y con frase única son todas correctas en los detalles: el repositorio pnpm usó
pnpm exec lint-stagedypnpm run test, omitió el typecheck inexistente y lo dijo, el .prettierrc existente no se reescribió, y se añadieronprepare: huskyy las tres devDependencies. La skill importa por la opinión (Husky + lint-staged + Prettier), no por ingeniería dura. - Sin coste: 82k tokens por ejecución con la skill, 82k el control, 75k la frase única. La skill se leyó en 6/6 ejecuciones de tratamiento sin ser nombrada.
- El agente no pudo instalar ni ejecutar nada sin conexión, así que ninguno de los hooks generados se ejecutó; ambos grupos dijeron que los hooks quedan inactivos hasta
npm install.
Puntuaciones por dimensión
| Dimensión | Puntuación | Motivo |
|---|---|---|
| 1_output_quality | 5.0 | Puntuación media 5.00/5 con la skill (comprobaciones programáticas, véase la tabla por tarea). |
| 2_lift_vs_no_skill | 5 | +3.59 puntos frente a 1.41 sin la skill (n=2 por tarea; menos de ~1 punto es ruido). |
| 3_trigger | 5.0 | Archivo de la skill leído en 6/6 ejecuciones de tratamiento. |
| 4_instructions_portability | 4 | Un SKILL.md breve, sin scripts. |
| 5_efficiency | 5 | 0.99x tokens (82k vs 82k por ejecución) y 0.73x tiempo (43s vs 58s). |
| 6_safety_hygiene | 5 | Solo prosa; indica al agente que edite package.json y añada hooks, que se ejecutan en cada commit. |
Límites de esta prueba
- Comprobaciones basadas en reglas sobre los archivos escritos; los hooks nunca se ejecutaron (sin red, Husky no instalado).
- La solución de hooks nativos del control es un diseño válido; las comprobaciones miden si se produjo la receta Husky/lint-staged solicitada, algo que el control no tenía forma de saber.
- Una comprobación (mantener el .prettierrc existente) falló inicialmente en todas las ejecuciones porque los archivos sin cambios no se copian; se cambió para que pase cuando el archivo está intacto y las 18 ejecuciones se volvieron a puntuar con la misma regla.
- n = 2 por grupo y tarea: las diferencias de menos de ~1 punto son ruido.
- La puntuación basada en reglas mide lo que las comprobaciones pueden ver; no puede juzgar el gusto ni si el resultado es el mejor posible.
Seguridad
Consulta security.md. Escaneo: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Veredicto: segura de ejecutar (sandbox sin red). Un escaneo limpio no demuestra que una skill sea segura.
Conclusión
Si quieres la configuración Husky + lint-staged + Prettier, la skill la acierta en las tres formas de repositorio (detección de pnpm, typecheck ausente, configuración de Prettier existente) sin tokens extra; una receta de una frase hace lo mismo. Instálala para no volver a explicar la receta; no esperes más ganancia de calidad que esa.
Transcripción
Registro de ejecuciones: setup-pre-commit (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.) Columnas: tarea, grupo-ejecución, puntuación (0-5), tokens, segundos, comprobaciones superadas, archivos de la skill que abrió el agente. t1-npm control-1: puntuación 0.0, tokens 84825, s 49.0, comprobaciones 0/7, no abrió nada t1-npm control-2: puntuación 0.0, tokens 67687, s 62.1, comprobaciones 0/7, no abrió nada t1-npm oneliner-1: puntuación 5.0, tokens 66754, s 38.4, comprobaciones 7/7, no abrió nada t1-npm oneliner-2: puntuación 5.0, tokens 83997, s 38.6, comprobaciones 7/7, no abrió nada t1-npm treatment-1: puntuación 5.0, tokens 69607, s 37.3, comprobaciones 7/7, abrió setup-pre-commit t1-npm treatment-2: puntuación 5.0, tokens 87911, s 42.1, comprobaciones 7/7, abrió setup-pre-commit t2-pnpm control-1: puntuación 0.0, tokens 102203, s 77.9, comprobaciones 0/8, no abrió nada t2-pnpm control-2: puntuación 0.0, tokens 104460, s 67.1, comprobaciones 0/8, no abrió nada t2-pnpm oneliner-1: puntuación 5.0, tokens 66597, s 34.4, comprobaciones 8/8, no abrió nada
18 ejecuciones, 3 artefactos
Resultado de ejemplo
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" } }