Todas las skills

pr (mattpocock/skills)

Redacta el cuerpo de una pull request que describe el cambio para quien lo revisa.

pr: una skill de formato puro: el control nunca genera el cuerpo de PR de tres secciones (1.7/5), mientras que la skill y un prompt de una frase sí (5.0 y 4.95), sin tokens adicionales

RecomendadaSegura

Codex CLI · gpt-6-astra

29.0 / 30

Mejora frente a sin skill: +3.33 · 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.33 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 pr

Origen

Commit fijado: 4ae2317ddb22b046e26455e4f9c9b3aaaf62212d

Probada: 2026-11-02

Qué probamos

  • Cuerpo de PR para una caché — Voy a abrir una pull request. Escribe el cuerpo de la PR del cambio de change.diff en PR.md. La salida de los tests de antes y después está en tests_before.txt y tests_after.txt.
  • Cuerpo de PR para eliminar una columna — Redacta mi pull request, por favor. Escribe el cuerpo de la PR del cambio de change.diff en PR.md. La salida de los tests de antes y después está en tests_before.txt y tests_after.txt.
  • Cuerpo de PR para un cambio de texto — Escribe una descripción de PR. Escribe el cuerpo de la PR del cambio de change.diff en PR.md. La salida de los tests de antes y después está en tests_before.txt y tests_after.txt.

Ventajas

  • Eleva la puntuación media de 1.67 a 5.0 frente a sin skill (+3.33).
  • La skill se activó sin nombrarla: se leyó el archivo de la skill en 6/6 ejecuciones con skill.
  • Sin sobrecoste de tokens: 1.0x los tokens de sin skill.
  • Calidad absoluta alta con la skill: 5.0 sobre 5.

Inconvenientes

  • Un prompt de una frase obtuvo 4.95, frente a 5.0 con la skill (+0.05).
  • 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 tareas, cada una con la petición «escribe el cuerpo de la PR del cambio de change.diff en PR.md», con tests_before.txt / tests_after.txt junto a él: un cambio de caché (puerta de doble sentido), una migración que elimina una columna (puerta de un solo sentido) y un cambio de texto. El control solo recibe esa frase. El grupo del prompt de una frase recibe una frase adicional que detalla toda la plantilla. Al grupo con skill tampoco se le indica el formato.

Comparación de tres ramas

RamaPuntuación media (0-5)Tokens por ejecución
Sin la skill1.6782k
Prompt de una frase4.9589k
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.

Veredicto: Recomendado (29.0 / 30). Fuente: mattpocock/skills, skills/engineering/pr, fijada en el commit 4ae2317. Instalación: npx skills@latest add mattpocock/skills --skill pr. Licencia: MIT (LICENSE del repositorio).

Qué es

La skill pr (mattpocock/skills): convierte un diff en el cuerpo de una pull request con una forma fija de tres partes: Resumen (el diagrama, pseudocódigo o árbol de llamadas útil más pequeño), Evidencia (Antes: / Después: con la salida de las pruebas) y Peligro de fusión (Puerta: de sentido único o de doble sentido, más un Radio de impacto: de una sola palabra), escrito con las palabras del glosario del proyecto. Un único SKILL.md breve.

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 tareas, todas «escribe el cuerpo de la PR para change.diff en PR.md» con tests_before.txt / tests_after.txt al lado: un cambio de caché (puerta de doble sentido), una migración que elimina una columna (puerta de sentido único) y un cambio de texto. El control solo recibe esa frase. El grupo de una frase recibe una frase añadida que detalla toda la plantilla. Al grupo de la skill tampoco se le indica el formato.

  1. Cuerpo de PR para una caché — Voy a abrir una pull request. Escribe el cuerpo de la PR para el cambio en change.diff en PR.md. La salida de las pruebas de antes y después está en tests_before.txt y tests_after.txt.
  2. Cuerpo de PR para eliminar una columna — Escribe mi pull request. Redacta el cuerpo de la PR para el cambio en change.diff en PR.md. La salida de las pruebas de antes y después está en tests_before.txt y tests_after.txt.
  3. Cuerpo de PR para un cambio de texto — Escribe una descripción de PR. Redacta el cuerpo de la PR para el cambio en change.diff en PR.md. La salida de las pruebas de antes y después está en tests_before.txt y tests_after.txt.

La puntuación es programática (pruebas ocultas / 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: "Escribe el cuerpo de la PR en tres secciones breves: Resumen (el diagrama, pseudocódigo o árbol de llamadas útil más pequeño, sin preámbulo), Evidencia (Antes: y Después: con la salida de las pruebas) y Peligro de fusión (Puerta: de sentido único o de doble sentido, y un Radio de impacto: de una sola palabra); usa las palabras del glosario."

TareaPuntuación del controlFrase únicaCon la skillTokens del controlTokens de una fraseTokens con la skillSkill leída
t1-cache1.675.05.082k83k79k2/2
t2-migration1.674.835.082k91k79k2/2
t3-copy1.675.05.081k91k87k2/2

Puntuación media: 1.67 sin vs 5.0 con la skill (delta +3.33). Tokens por ejecución: 82k vs 82k (1.00x); tiempo 37s vs 34s. Grupo de una frase: 4.95 (ganancia de la skill sobre la frase única: +0.05; ganancia de la frase única sobre sin skill: +3.28); tokens de la frase única 89k por ejecución, así que la skill cuesta 0.92x la frase única.

Qué ocurrió

  • Control 1.67, una frase 4.95, skill 5.00 (n=6 cada uno). El control escribió PR en prosa claras y precisas, pero en ninguna de las 6 ejecuciones usó las tres secciones, un diagrama o bloque de pseudocódigo, las etiquetas Antes/Después, una Puerta o un Radio de impacto. Es un formato que el modelo no puede adivinar, así que cualquier grupo al que se le indique el formato puntúa alto; el conjunto de comprobaciones mide el cumplimiento del formato, no la calidad de la escritura.
  • La skill se activó sin ser nombrada (6/6 lecturas) y el prompt de una frase lleva la misma información: la diferencia entre ambos es de 0.05 puntos (una ejecución no acertó la expresión regular de una sección de la plantilla: la ejecución de migración de una frase tuvo 2 de 3 secciones coincidentes). Los tokens por ejecución fueron 82k control, 89k una frase, 82k skill: sin sobrecoste.
  • El contenido de juicio parece correcto donde importa: en la migración, la ejecución de la skill calificó la puerta de sentido único y dijo que revertir el código no puede recuperar la columna eliminada, y nombró el radio de impacto; las tareas de caché y texto eran de doble sentido. La PR de migración del control también avisaba de aplicar 0041 primero, pero no daba puerta ni radio, así que un revisor no lo encontraría a simple vista.
  • La skill es mínima (unas pocas líneas), así que cargarla no cuesta nada; su valor es que nadie tiene que pegar la plantilla cada vez.

Puntuaciones por dimensión

DimensiónPuntuaciónMotivo
1. Calidad del resultado5.0

Puntuación media 5.00/5 con la skill (comprobaciones programáticas; consulta la tabla por tarea).

2. Mejora frente a no usar skill5

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

3. Activación5.0Archivo de la skill leído en 6/6 ejecuciones de tratamiento.
4. Portabilidad de las instrucciones4Un SKILL.md breve con una plantilla, sin scripts.
5. Eficiencia51.00x tokens (82k vs 82k por ejecución) y 0.93x tiempo (34s vs 37s).
6. Seguridad e higiene5Solo prosa; sin hallazgos.

Límites de esta prueba

  • Solo comprobaciones de formato basadas en reglas (secciones presentes, Antes/Después, valor de Puerta correcto, Radio de impacto, bloque de diagrama/pseudocódigo); no juzgan si el diagrama es el «útil más pequeño» ni si la escritura es buena.
  • El grupo de control está condenado a fallar las comprobaciones de formato por construcción: el resultado muestra que la skill elimina la necesidad de repetir un formato interno, no que haga escribir mejores PR al modelo.
  • Tres fixtures pequeños; ningún repositorio real ni historial de git.
  • 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 un resultado es el mejor posible.

Seguridad

Consulta security.md. Escaneo: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Veredicto: seguro para ejecutar (sandbox sin red). Un escaneo limpio no demuestra que una skill sea segura.

En resumen

Si quieres este formato de PR, la skill lo entrega a la primera y gratis (82k tokens, lo mismo que sin skill), y equivale a pegar la plantilla como frase única. Instálala para tener consistencia en todo el equipo; no esperes mejor prosa.

Transcripción

Registro de ejecuciones: pr (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-cache control-1: puntuación 1.67, tokens 82698, s 35.7, comprobaciones 4/9, no abrió nada
t1-cache control-2: puntuación 1.67, tokens 82765, s 30.9, comprobaciones 4/9, no abrió nada
t1-cache oneliner-1: puntuación 5.0, tokens 83654, s 32.5, comprobaciones 9/9, no abrió nada
t1-cache oneliner-2: puntuación 5.0, tokens 84007, s 38.4, comprobaciones 9/9, no abrió nada
t1-cache treatment-1: puntuación 5.0, tokens 70378, s 33.8, comprobaciones 9/9, abrió pr
t1-cache treatment-2: puntuación 5.0, tokens 88915, s 35.0, comprobaciones 9/9, abrió pr
t2-migration control-1: puntuación 1.67, tokens 81748, s 33.8, comprobaciones 4/9, no abrió nada
t2-migration control-2: puntuación 1.67, tokens 82290, s 36.5, comprobaciones 4/9, no abrió nada
t2-migration oneliner-1: puntuación 5.0, tokens 100647, s 37.7, comprobaciones 9/9, no abrió nada

18 ejecuciones, 3 artefactos

Resultado de ejemplo

SOTA · With the skill: PR.md (t1-cache, run 1, Codex)

## Summary Cache free slots by Room and day to avoid repeated database queries. Creating a Reservation invalidates the matching cache entry. ```text free_slots(Room, day) cache hit → return cached free slots cache miss → query Reservations → compute and cache free slots create Reservation insert Reservation → invalidate cache for Room and day ``` ## Evidence - **Before:** `tests/test_availability.py::test_free_slots_not_queried_twice` failed: `db.query called 2 times, expected 1`. Suite: 1 failed, 14 passed in 0.9s. **After:** Supplied test output reports 15 passed in 0.8s. ## Merge Danger **Door:** two-way Reverting restores a database query on each availability request; no schema or stored-data changes. **Blast Radius:** availability Cached free slots affect Members checking Room availability. Invalidation covers Reservation creation in the current process; other mutation paths or processes can leave cached results stale. The cache has no size limit or expiry.

Ver Pro