caveman-commit (JuliusBrussee/caveman)
Redacta mensajes de commit de Conventional Commits concisos que explican la intención y el motivo, no el cambio.
caveman-commit: escribe mensajes Conventional Commits con pie de cambio disruptivo (control 4.0, skill 5.0, prompt de una frase 4.95) por aproximadamente los mismos tokens; el control escribe una frase simple, y un prompt de una frase con el formato hace lo mismo
Codex CLI · gpt-6-astra
26.0 / 30
Mejora frente a sin skill: +0.98 · Según el caso · 18 ejecuciones
Según el caso: la mejora +0.98 está por debajo de +1.0. Para ser recomendada hace falta un total de 22/30, una calidad de salida de 3.5 y una mejora de +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
- 3.0
- Calidad de salida
- 5.0
- Coste en tokens y tiempo
- 5.0
- Instalación y portabilidad
- 4.0
- Seguridad
- 4.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 JuliusBrussee/caveman --skill caveman-commit
Commit fijado: 9b68f7ed12b05e7efaff18e65c5a3fc2849fd0a4
Probada: 2026-11-02
Qué probamos
- Mensaje de commit para una corrección pequeña — Necesito un mensaje de commit. Escribe el mensaje de commit para el cambio en change.diff y guárdalo en COMMIT_MSG.txt (solo el mensaje).
- Mensaje de commit para un endpoint nuevo — Escribe un commit. Redacta el mensaje de commit para el cambio en change.diff y guárdalo en COMMIT_MSG.txt (solo el mensaje).
- Mensaje de commit para un cambio disruptivo — Escribe un mensaje de commit. Redacta el mensaje de commit para el cambio en change.diff y guárdalo en COMMIT_MSG.txt (solo el mensaje).
Ventajas
- Sube la puntuación media de 4.02 a 5.0 frente a sin skill (+0.98).
- La skill se activó sin nombrarla: se leyó el archivo de la skill en 6/6 ejecuciones con skill.
- Sin sobrecoste de tokens: 1.09 veces 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 dedicado a pruebas, 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 condensado en una frase añadida al prompt (grupo del prompt de una frase), 2 ejecuciones por grupo y tarea, red desactivada, escrituras en /tmp bloqueadas. Los prompts nunca mencionan la skill (salvo el texto indicado abajo). Tres diffs (una corrección de paginación, un endpoint /health nuevo y un renombrado de una clave de configuración de timeout a timeout_ms). El prompt solo pide un mensaje de commit guardado en COMMIT_MSG.txt, sin indicar formato. El prompt de una frase indica el formato Conventional Commits y sus reglas en una sola frase.
Comparación de tres ramas
| Rama | Puntuación media (0-5) | Tokens por ejecución |
|---|---|---|
| Sin la skill | 4.02 | 53k |
| Prompt de una frase | 4.95 | 48k |
| Con la skill | 5.0 | 58k |
Medido con Codex CLI en 18 ejecuciones, puntuado con comprobaciones basadas en reglas y sin juez LLM. Total 26.0 / 30, veredicto Según el caso.
Veredicto: Según el caso (26.0 / 30). Fuente: JuliusBrussee/caveman, skills/caveman-commit, fijada en el commit 9b68f7e. Instalación: npx skills@latest add JuliusBrussee/caveman --skill caveman-commit. Licencia: MIT (LICENSE del repositorio).
Qué es
La skill caveman-commit (JuliusBrussee/caveman): una guía de estilo para mensajes de commit: Conventional Commits type(scope): imperative summary de 50 caracteres como máximo y sin punto final, cuerpo solo cuando el porqué no está claro, una nota BREAKING CHANGE para cambios incompatibles, y nada de 'this commit', 'I', 'we', 'now', emojis ni atribución a la IA.
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 diffs (un arreglo de paginación, un endpoint /health nuevo, un cambio de nombre de una clave de configuración de timeout a timeout_ms). El prompt solo pide un mensaje de commit guardado en COMMIT_MSG.txt, sin indicar formato. La frase única enuncia el formato Conventional Commits y sus reglas en una sola frase.
- Mensaje de commit para un arreglo pequeño — Necesito un mensaje de commit. Escribe el mensaje de commit para el cambio en change.diff y guárdalo en COMMIT_MSG.txt (solo el mensaje).
- Mensaje de commit para un endpoint nuevo — Escribe un commit. Redacta el mensaje de commit para el cambio en change.diff y guárdalo en COMMIT_MSG.txt (solo el mensaje).
- Mensaje de commit para un cambio incompatible — Escribe un mensaje de commit. Redacta el mensaje de commit para el cambio en change.diff y guárdalo en COMMIT_MSG.txt (solo el mensaje).
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 un mensaje de Conventional Commits: type(scope): imperative summary de 50 caracteres como máximo y sin punto final, cuerpo solo cuando el porqué no esté claro (los cambios incompatibles siempre llevan uno con una nota BREAKING CHANGE), y nada de 'this commit', 'I', 'we', 'now', emojis ni atribución a la IA."
| Tarea | Puntuación del control | Frase única | Con la skill | Tokens del control | Tokens de una frase | Tokens con la skill | Skill leída |
|---|---|---|---|---|---|---|---|
| t1-fix | 4.49 | 5.0 | 5.0 | 47k | 48k | 49k | 2/2 |
| t2-feature | 4.49 | 5.0 | 5.0 | 54k | 48k | 55k | 2/2 |
| t3-breaking | 3.07 | 4.86 | 5.0 | 56k | 48k | 67k | 2/2 |
Puntuación media: 4.02 sin vs 5.0 con la skill (delta +0.98). Tokens por ejecución: 53k vs 58k (1.09x); tiempo 42s vs 40s. Grupo de una frase: 4.95 (ganancia de la skill sobre la frase única: +0.05; ganancia de la frase única sobre sin skill: +0.93); tokens de la frase única 48k por ejecución, así que la skill cuesta 1.19x la frase única.
Qué ocurrió
- Control 4.02, skill 5.0, frase única 4.95 (n=6 cada uno). El control escribe una frase imperativa simple («Corrige el desplazamiento de paginación para números de página basados en uno») sin prefijo
type(scope):en 6/6 ejecuciones, así que falla la regla del «tipo convencional» todas las veces; sus otras reglas casi siempre pasaron (una ejecución también tuvo un asunto de más de 50 caracteres). - Tarea de cambio incompatible: el control no marcó el cambio incompatible (sin nota BREAKING CHANGE y sin
!) en 2/2 ejecuciones; su cuerpo sí menciona la migración. La skill obtuvo 5.0 en ambas ejecuciones:feat(config)!:con un pie BREAKING CHANGE. La frase única hizo lo mismo en 2/2, pero el mensaje de una ejecución falló la comprobación de tipo convencional. - Tokens: skill 58k, frase única 48k, control 53k por ejecución (1.09x el control). La skill se leyó en 6/6 ejecuciones de tratamiento.
Puntuaciones por dimensión
| Dimensión | Puntuación | Motivo |
|---|---|---|
| 1. Calidad del resultado | 5.0 | Puntuación media 5.00/5 con la skill (comprobaciones programáticas; consulta la tabla por tarea). |
| 2. Mejora frente a no usar skill | 2.98 | +0.98 puntos frente a 4.02 sin la skill (n=2 por tarea; menos de ~1 punto es ruido). |
| 3. Activación | 5.0 | Archivo de la skill leído en 6/6 ejecuciones de tratamiento. |
| 4. Portabilidad de las instrucciones | 4 | Solo SKILL.md. |
| 5. Eficiencia | 5 | 1.09x tokens (58k vs 53k por ejecución) y 0.96x tiempo (40s vs 42s). |
| 6. Seguridad e higiene | 4 | Solo prosa; consulta security.md. |
Límites de esta prueba
- Las comprobaciones se basan en reglas sobre COMMIT_MSG.txt (prefijo de tipo, longitud, tiempo verbal, tono, palabras prohibidas, nota de cambio incompatible); no se juzgó si el mensaje describe bien el diff más allá de una comprobación de términos clave.
- El control se penaliza por no adivinar la convención de Conventional Commits que el prompt no pedía.
- n=2 por celda; tres diffs pequeños.
- 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
Una forma fiable de obtener mensajes de Conventional Commits con marcas de cambio incompatible a partir de un prompt escueto de «escribe un mensaje de commit». Una sola frase que nombre el formato da el mismo resultado, así que la skill sobre todo te ahorra escribirlo.
Transcripción
Registro de ejecuciones: caveman-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-fix control-1: puntuación 4.49, tokens 47722, s 20.0, comprobaciones 2/3, no abrió nada t1-fix control-2: puntuación 4.49, tokens 47848, s 20.8, comprobaciones 2/3, no abrió nada t1-fix oneliner-1: puntuación 5.0, tokens 47948, s 29.4, comprobaciones 3/3, no abrió nada t1-fix oneliner-2: puntuación 5.0, tokens 48277, s 21.1, comprobaciones 3/3, no abrió nada t1-fix treatment-1: puntuación 5.0, tokens 49540, s 24.8, comprobaciones 3/3, abrió caveman-commit t1-fix treatment-2: puntuación 5.0, tokens 49614, s 16.5, comprobaciones 3/3, abrió caveman-commit t2-feature control-1: puntuación 4.49, tokens 48133, s 31.0, comprobaciones 2/3, no abrió nada t2-feature control-2: puntuación 4.49, tokens 60402, s 101.3, comprobaciones 2/3, no abrió nada t2-feature oneliner-1: puntuación 5.0, tokens 48035, s 107.1, comprobaciones 3/3, no abrió nada
18 ejecuciones, 3 artefactos
Resultado de ejemplo
SOTA · With the skill: COMMIT_MSG.txt (t1-fix, run 1, Codex)
fix(api): correct offset for one-based pagination