2026-10-28 · 4 min

las skills de código mínimo no te dicen lo que dejaron fuera

Medí lo que entrega una skill que escribe menos código. La cuenta baja, y el producto también.

Le pedí a Claude Sonnet 5.5 un tablero kanban cinco veces con Ponytail cargado, una skill que le dice a los agentes de código que escriban menos código. El pedido eran dos frases:

Build a personal kanban board as a web app. I want a complete product I could use every day, not a demo.

Ninguno de los cinco tableros tenía archivo o papelera. Ninguno tenía checklists ni subtareas. Ninguno guardaba sus datos con un número de versión, así que la siguiente versión de la app no tiene una forma segura de leerlos.

Eso sí, las corridas salieron baratas. $0.20 cada una, más o menos una cuarta parte menos que sin ninguna skill.

Lo que la cuenta no muestra

A las skills de código mínimo se las juzga por lo que ahorran: menos tokens, menos líneas, una cuenta más chica. Ese ahorro es real. Pero escribir menos código y construir menos producto se ven exactamente igual en la cuenta.

Ponytail es honesta sobre cuál de las dos hace. Su propia skill dice que un pedido vago "gets the smallest version that does the core job". Para un tablero que usaría todos los días, ese es el intercambio equivocado. La parte que falta la pago después, a mano o en otra corrida.

Así que escribí Whittle, una skill de 171 palabras que pide el producto completo y nada más, y un benchmark que revisa los dos lados: lo que costó cada corrida y lo que entregó.

Cómo lo medí

Mismo modelo, mismo repo congelado, mismo pedido. Lo único que cambia entre brazos es el texto que se agrega al system prompt. Cada corrida empieza en un directorio temporal sin ajustes, skills ni servidores MCP.

Después un checklist oculto puntúa lo que se construyó: 40 checks para el kanban, 36 para una app de notas. El agente nunca los ve. Cada check es una búsqueda de patrones en el HTML, CSS y JavaScript entregado, así que te dice que algo se construyó, no que funcione bien. El puntaje mide amplitud.

Los números

Ronda del 14 de octubre, Ponytail 5.2.0, cinco corridas por brazo:

Kanban Entregado (de 40) Costo por corrida
Sin skill 35.6 $0.26
Ponytail 31.4 $0.20
Whittle 36.8 $0.30
Notas Entregado (de 36) Costo por corrida
Sin skill 33.6 $0.33
Ponytail 31.6 $0.18
Whittle 34.4 $0.23

Ponytail es la más barata en las dos tareas, y el único brazo que entrega menos de forma consistente. En kanban su rango, de 30 a 32 checks, no se cruza con ninguno de los otros dos.

Whittle no es más barata que Ponytail. Cuesta como un tercio más. En el kanban incluso costó más que sin skill. El ahorro de esta ronda vino de notas, donde sin skill se escribieron 21,864 tokens de salida en promedio y con Whittle 12,955.

Lo que no estoy diciendo

La muestra es chica: dos rondas, cinco corridas por brazo, un modelo de Claude, dos pedidos. La diferencia entre Whittle y sin skill está dentro del ruido. El costo de una corrida de kanban sin skill pasó de $0.45 en la primera ronda a $0.26 en la segunda, sin que nada cambiara en el benchmark.

Los sesgos van a mi favor. Amplié el checklist del kanban después de ver lo que el modelo construye sin que se lo pidan. Whittle nombra cosas que el checklist busca, como modo oscuro y movimiento reducido. Y revisé la skill una vez después de sus primeros puntajes. El checklist de notas es el más limpio: se escribió antes de que existiera cualquier resultado.

Con GPT-6 Luna el efecto es mucho menor. En las cuatro tareas que traen una especificación explícita, todos los brazos quedan igual. Ahí, dos corridas de Whittle entregaron un CLI que se cae al arrancar, algo que no le pasó a ningún otro brazo.

Córrelo con tu skill

Cada corrida, parche y puntaje está en el repo de Whittle. Agrega tu skill como un brazo en bench/arms.json y corre:

cd bench
python3 bench.py run --harness claude --model claude-sonnet-5-5 --tasks kanban notes --out runs/mine
python3 bench.py summarize runs/mine

Si publicas una skill que ahorra tokens, me gustaría ver lo que dejó fuera. Si tus números no coinciden con los míos, abre un issue con el directorio de runs.