Todas las skills

caveman (JuliusBrussee/caveman, SKILL.md only)

Responde con estilo de cavernícola, sin relleno pero conservando todos los datos técnicos.

caveman: con «be brief» ya en el prompt, la skill no ahorró palabras y costó 2.2 veces los tokens

Según el casoSegura

Codex CLI · gpt-6-astra

21.7 / 30

Mejora frente a sin skill: +0.00 · Según el caso · 18 ejecuciones

Según el caso: el total 21.7/30 está por debajo de 22 y la mejora +0.00 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

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
2.0
Calidad de salida
4.7
Coste en tokens y tiempo
1.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; solo se instaló SKILL.md). Un escaneo limpio no demuestra que una skill sea segura.

Instalar

npx skills@latest add JuliusBrussee/caveman --skill caveman

Origen

Commit fijado: 9b68f7ed12b05e7efaff18e65c5a3fc2849fd0a4

Probada: 2026-11-02

Qué probamos

  • Explica un bucle useEffect infinito — En un componente React tengo const fetchData = async () => { const r = await fetch('/api/items'); setItems(await r.json()); } y useEffect(() => { fetchData(); }, [fetchData]);. El componente vuelve a obtener datos en un bucle sin fin. ¿Por qué, y cuál es la solución? Sé breve…
  • Corrige una consulta Postgres lenta — Postgres: SELECT id, total FROM orders WHERE customer_id = 42 ORDER BY created_at DESC LIMIT 20; tarda segundos en una tabla orders de 50M filas que solo tiene un índice de clave primaria. ¿Qué debería hacer? Sé breve; pago por token.
  • Merge o rebase en una rama compartida — Mi equipo trabaja en una rama de funcionalidad compartida que otras personas ya han descargado. Quiero traer lo último de main. ¿Debo usar git merge o git rebase, y por qué? Sé breve; pago por token.

Ventajas

  • La skill se activó sin nombrarla: se leyó el archivo de la skill en 6/6 ejecuciones con skill.
  • Calidad absoluta alta con la skill: 4.67 sobre 5.

Inconvenientes

  • Sin mejora medible frente a sin skill (+0.00, dentro del ruido).
  • Usa 2.2 veces los tokens de sin skill.
  • Salvedad de la prueba: solo se instaló SKILL.md; los hooks y el instalador no se instalaron. El prompt de prueba contiene el disparador «be brief».
  • 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 una Mac de 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). Cada prompt es una pregunta técnica (un bucle useEffect infinito, una consulta Postgres lenta, merge vs rebase en una rama compartida) que termina con la frase «Be brief; I'm paying per token» («sé breve; pago por token»). Esa frase es uno de los propios disparadores de la skill, y el grupo de control recibe la misma frase. Así que la prueba pregunta qué aporta la skill además de una petición simple de ser breve.

Comparación de tres ramas

RamaPuntuación media (0-5)Tokens por ejecución
Sin la skill4.6714k
Prompt de una frase4.514k
Con la skill4.6731k

Medido con Codex CLI en 18 ejecuciones, puntuado con comprobaciones basadas en reglas y sin juez LLM. Total 21.7 / 30, veredicto Según el caso.

Aviso: Solo se instaló SKILL.md; los hooks y el instalador no. El prompt de prueba contiene el disparador «be brief».

Veredicto: Según el caso (21.7 / 30). Fuente: JuliusBrussee/caveman, skills/caveman, fijada en el commit 9b68f7e. Instalación: npx skills@latest add JuliusBrussee/caveman --skill caveman. Licencia: MIT (LICENSE del repositorio; los hooks y el instalador del repositorio NO se instalaron ni se ejecutaron).

Qué es

La skill caveman (solo skills/caveman/SKILL.md; los hooks y el instalador del repositorio no se instalaron). Un estilo de respuesta telegráfico: responde primero, elimina saludos y resúmenes, palabras cortas, quita artículos pero nunca negaciones, mantén el código, las rutas, los números y los errores tal cual, prosa normal para advertencias y acciones irreversibles. Se activa con 'caveman mode', 'be brief', 'less tokens'. Unas 600 palabras de Markdown, sin scripts.

Cómo lo probamos

Codex CLI 0.166 (gpt-6-astra, razonamiento bajo) en un Mac de 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 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).

Cada prompt es una pregunta técnica (un bucle infinito de useEffect, una consulta Postgres lenta, merge vs rebase en una rama compartida) que termina con 'Sé breve; pago por token'. Esa frase es uno de los propios disparadores de la skill, y el grupo de control recibe la misma frase. Así que la prueba mide qué aporta la skill por encima de una petición simple de brevedad.

  1. Explicar un bucle infinito de useEffect — En un componente React tengo const fetchData = async () => { const r = await fetch('/api/items'); setItems(await r.json()); } y useEffect(() => { fetchData(); }, [fetchData]);. El componente vuelve a hacer fetch en un bucle sin fin. ¿Por qué, y cuál es la solución? Sé bre…
  2. Arreglar una consulta Postgres lenta — Postgres: SELECT id, total FROM orders WHERE customer_id = 42 ORDER BY created_at DESC LIMIT 20; tarda segundos en una tabla orders de 50M de filas que solo tiene un índice de clave primaria. ¿Qué debería hacer? Sé breve; pago por token.
  3. Merge o rebase en una rama compartida — Mi equipo trabaja en una rama de feature compartida que otras personas ya se han descargado. Quiero traer lo último de main. ¿Debo usar git merge o git rebase, y por qué? Sé breve; pago por token.

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: "Responde de forma telegráfica: responde primero, sin saludos, relleno, matices ni resúmenes, elimina los artículos innecesarios y mantén exactos todos los datos técnicos, el código, los números y las negaciones."

TareaPuntuación controlUna fraseCon la skillTokens controlTokens de una fraseTokens con la skillSkill leída
t1-react-loop4.754.54.514k14k30k2/2
t2-pg-index5.05.05.014k14k34k2/2
t3-merge-rebase4.254.04.514k14k30k2/2

Puntuación media: 4.67 sin vs 4.67 con la skill (delta +0.0). Tokens por ejecución: 14k vs 31k (2.20x); tiempo 12s vs 19s. Grupo de una frase: 4.5 (la ganancia de la skill sobre la frase única: +0.17; la ganancia de la frase única sobre sin skill: -0.17); tokens de la frase única 14k por ejecución, así que la skill cuesta 2.20x la frase única.

Qué ocurrió

  • Sin la skill, el agente ya responde en unas 59 palabras (45-70) cuando se le pide brevedad; con la skill, 52 palabras (39-64), y con la versión de una frase, 54. La diferencia de 7 palabras está dentro de la variación entre ejecuciones. Ningún grupo usó aperturas o cierres de relleno; las 18 respuestas conservaron el código, los comandos y los datos clave.
  • La retención de datos fue la misma: 3-5 de 5 datos técnicos requeridos por respuesta en todos los grupos (proporción de datos requeridos conservados: 87% control, 80% una frase, 87% skill). El dato que los agentes omitieron con más frecuencia (que una actualización de estado vuelve a renderizar el componente y vuelve a ejecutar el efecto) lo omitieron los tres grupos por igual. El punto 'no hagas rebase de una rama compartida' coincidió con nuestra comprobación en 1 de 2 respuestas de control, 0 de 2 de una frase y 1 de 2 de skill; en las respuestas que leímos, todas recomendaban merge y reservaban rebase para trabajo privado o no publicado, así que esas omisiones son en parte de redacción.
  • La skill se leyó en 6/6 ejecuciones porque el prompt contiene su frase disparadora. Cuesta 31k tokens por ejecución frente a 14k (2.2x), porque el agente carga la skill y ejecuta dos comandos para leerla antes de responder a una pregunta que podría responder directamente. La frase única cuesta lo mismo que el control.
  • Al leer las respuestas, los estilos son iguales: respuesta primero, fragmentos, un bloque de código corto. No pudimos distinguir las respuestas de la skill de las de control.

Puntuaciones por dimensión

DimensiónPuntuaciónMotivo
1_output_quality4.67

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

2_lift_vs_no_skill2.0

+0.00 puntos frente a 4.67 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_portability4

Reglas en Markdown simple; algunas se refieren a hooks y a una statusline ( /caveman status) que solo existen cuando se instalan los hooks del repositorio.

5_efficiency12.20x tokens (31k vs 14k por ejecución) y 1.53x tiempo (19s vs 12s).
6_safety_hygiene5

Un único SKILL.md de reglas de estilo (leído entero); los hooks y el instalador del repositorio no se instalaron ni se revisaron.

Límites de esta prueba

  • La prueba mide la skill por encima de una petición explícita de brevedad. El uso real de la skill es persistente: permanece activa toda una sesión para que nunca tengas que repetir la petición, algo que esta prueba de tres preguntas no ejercita.
  • El coste en tokens contado aquí es una carga única de la skill por conversación; en una sesión larga, ahorrando unas pocas palabras por respuesta, podría amortizarse; no lo medimos.
  • Solo se comprobaron respuestas de chat a tres preguntas técnicas; los mensajes de commit, los comentarios de revisión de código y las sesiones largas de agente (donde la skill tiene otras reglas) no se probaron.
  • Los hooks, la statusline y las demás skills de caveman del repositorio no se instalaron ni se ejecutaron.
  • 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

Por encima de una petición simple de brevedad, caveman no hizo las respuestas más cortas ni menos precisas de forma medible, y cargarla duplicó los tokens de una respuesta breve. Si quieres que tu agente sea telegráfico durante toda una sesión sin pedirlo cada vez, la skill lo hace; si solo necesitas brevedad en una pregunta, dilo en el prompt.

Transcripción

Registro de ejecuciones: caveman (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-react-loop control-1: puntuación 5.0, tokens 14312, s 16.3, comprobaciones 3/3, no abrió nada
t1-react-loop control-2: puntuación 4.5, tokens 14318, s 10.7, comprobaciones 3/3, no abrió nada
t1-react-loop oneliner-1: puntuación 4.5, tokens 14348, s 16.9, comprobaciones 3/3, no abrió nada
t1-react-loop oneliner-2: puntuación 4.5, tokens 14341, s 8.7, comprobaciones 3/3, no abrió nada
t1-react-loop treatment-1: puntuación 4.5, tokens 30174, s 21.5, comprobaciones 3/3, abrió caveman
t1-react-loop treatment-2: puntuación 4.5, tokens 30067, s 26.2, comprobaciones 3/3, abrió caveman
t2-pg-index control-1: puntuación 5.0, tokens 14285, s 10.0, comprobaciones 3/3, no abrió nada
t2-pg-index control-2: puntuación 5.0, tokens 14301, s 10.5, comprobaciones 3/3, no abrió nada
t2-pg-index oneliner-1: puntuación 5.0, tokens 14362, s 12.3, comprobaciones 3/3, no abrió nada

18 ejecuciones, 3 artefactos

Resultado de ejemplo

SOTA · With the skill: final message (t1-react-loop, run 1, Codex)

`fetchData` is a new function every render. The effect runs, `setItems` triggers another render, and the cycle repeats. Move the function inside the effect: ```jsx useEffect(() => { async function fetchData() { const r = await fetch('/api/items'); setItems(await r.json()); } fetchData(); }, []); ``` If needed elsewhere, stabilize `fetchData` with `useCallback` and its actual dependencies.

Ver Pro