Nueve skills que ojalá mis agentes trajeran de fábrica
Mi agente me dijo que ya había terminado. Le pregunté qué significaba "terminado". Me lo repitió, con más confianza.
Ese es todo el origen del proyecto. Los agentes dicen "todos los tests pasan" y nadie sabe cuáles tests, en qué commit, ni si el código se movió después. Las sesiones terminan y la siguiente arranca con un resumen vago. Una decisión grande la toma un solo modelo en una sola ventana de contexto, y nadie le lleva la contraria. Así que escribí nueve skills chiquitas que arreglan esas tres cosas, les puse licencia MIT y las publiqué todas: github.com/luci-efe/skills.
Aquí el reparto:
/doctorlista las herramientas que faltan e imprime el comando de instalación de cada una./compassmanda una tarea a la skill correcta, después de checar que existan las herramientas./cartographermapea un flujo a símbolos y tests reales./cruciblelee primero el código y pregunta solo lo que el código no puede responder./councilmanda un artefacto a asientos de distintas familias de modelos, dos rondas, y un chair escribe la síntesis./reproduceexige un test que falle antes de cualquier fix./proofregistra tus checks contra el estado exacto del código. Si tocas un archivo después, la evidencia caduca./red-teamescanea dependencias y se niega a llamar "hallazgo" al conteo de un scanner./relaypasa el trabajo a otra sesión como un checkpoint que nadie puede editar a escondidas.
¿Es magia? No. Hace que las afirmaciones de un agente se puedan verificar, que es bastante menos glamoroso y bastante más útil. Si falta una herramienta, la skill se detiene y te dice qué instalar. Nada se degrada en silencio, porque la degradación silenciosa es como terminas con un demo que "funciona".
No las probé con fixtures que escribí para quedar bien. Corrí cada skill en repos reales, ocho en total, y los write-ups públicos están en uno nuestro, ultimate-harness, un proyecto en TypeScript y Python con casi 900 tests. Encontró bugs en mi código. Los tests de la propia suite pasaron de 99 a 127 en el camino.
Los límites, desde ya. El único gate duro (el hook de stop de /proof) está conectado para Claude Code y Codex, y vi a Codex bloquear un "listo" caduco en vivo. Gemini CLI está conectado según su documentación y no lo vi en vivo. En Cursor, Copilot y OpenCode los mismos scripts corren como checks manuales. El gate es local, así que la evidencia escrita a mano todavía puede pasarlo; a eso le llamo "terminado", y "verificado" requiere que un CI vuelva a correr los checks y que lo revise alguien que no sea el agente. Y /council solo se ha corrido con dos familias de modelos, no tres. A Gemini se le acabó la cuota. Llora.
npx skills@latest add luci-efe/skills
Luego corre /doctor en tu repo. ¿Quieres menos skills? -s proof -s relay funciona.
Reportes de bugs, historias de guerra y maltrato cariñoso: abre un issue, o búscame en r/AgenticEngineeringCo.
Fernando Ramos, co-CEO de Agentic Engineering. Más en ferramos.com.