Todas las skills

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)

RecomendadaSegura

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

Aprobada

Probada 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

Segura

Escaneo 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

Origen

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

RamaPuntuación media (0-5)Tokens por ejecución
Sin la skill1.4182k
Prompt de una frase5.075k
Con la skill5.082k

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.

  1. 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).
  2. 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).
  3. 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."

TareaPuntuación controlUna fraseCon la skillTokens controlTokens de una fraseTokens con la skillSkill leída
t1-npm0.05.05.076k75k78k2/2
t2-pnpm0.05.05.0103k66k87k2/2
t3-existing-prettier4.235.05.066k83k78k2/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-staged y pnpm run test, omitió el typecheck inexistente y lo dijo, el .prettierrc existente no se reescribió, y se añadieron prepare: husky y 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ónPuntuaciónMotivo
1_output_quality5.0

Puntuación media 5.00/5 con la skill (comprobaciones programáticas, véase la tabla por tarea).

2_lift_vs_no_skill5

+3.59 puntos frente a 1.41 sin la skill (n=2 por tarea; menos de ~1 punto es ruido).

3_trigger5.0Archivo de la skill leído en 6/6 ejecuciones de tratamiento.
4_instructions_portability4Un SKILL.md breve, sin scripts.
5_efficiency50.99x tokens (82k vs 82k por ejecución) y 0.73x tiempo (43s vs 58s).
6_safety_hygiene5

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" } }

Ver Pro