"Añade autenticación completa a la aplicación" es una instrucción que un agente va a intentar cumplir, y el resultado casi siempre va a estar mal en algún sitio que no esperabas. No porque el agente sea incapaz, sino porque esa tarea en realidad son quince tareas distintas disfrazadas de una.
Dividir bien una tarea grande es, en mi experiencia, la habilidad que más diferencia el resultado, más incluso que el prompt en sí.
La señal de que una tarea es "grande"
Uso una regla simple: si no puedo describir en una frase corta cómo sé que el paso ha terminado bien, la tarea es demasiado grande y hay que partirla. "Añade autenticación" no tiene un criterio de terminado claro. "Añade un endpoint que valide email y contraseña contra la base de datos y devuelva un token" sí lo tiene.
Cómo divido en la práctica
Empiezo por el resultado final y voy hacia atrás, identificando qué tiene que existir antes de que el siguiente paso tenga sentido. Para el ejemplo de autenticación, eso suele verse así: primero el modelo de datos del usuario, después el endpoint de registro, después el de login, después la validación de sesión, y al final la protección de las rutas que la requieren. Cada uno de esos pasos es una tarea con criterio de éxito verificable por separado.
Por qué no dejo que el propio agente divida la tarea
Puedo pedirle al agente que proponga su propio desglose, y a veces lo hago como punto de partida. Pero no ejecuto ese desglose sin revisarlo primero: un agente tiende a agrupar pasos que a mí me interesa mantener separados, sobre todo cuando el agrupamiento reduce el número de interacciones pero aumenta el tamaño del cambio que tengo que revisar de una vez. El desglose lo propone el agente si quiero, pero la decisión final de dónde cortar es mía.
El orden de los pasos importa tanto como los pasos
Un desglose correcto pero en mal orden también falla. Prefiero avanzar de forma que cada paso deje el proyecto en un estado que sigue funcionando, en vez de dejar el sistema roto durante varios pasos intermedios hasta que "todo encaje al final". Esto tiene una ventaja práctica: si algo sale mal, sé exactamente en qué paso se rompió, porque los anteriores seguían funcionando.
Cuándo una tarea grande no hace falta dividirla
Si la tarea, aunque suene grande, tiene un criterio de éxito único y verificable de forma automática —por ejemplo, "haz que pase este test que ya existe"— no hace falta trocearla artificialmente. La señal de dividir no es el tamaño superficial de la petición, es la ambigüedad del criterio de éxito.
La recomendación
Antes de pedirle una tarea grande a un agente, pregúntate si puedes describir en una frase corta cómo sabrás que cada parte terminó bien. Si no puedes, divide hasta que sí puedas, y ejecuta en un orden que deje el proyecto funcionando después de cada paso. El tiempo que inviertes dividiendo se recupera varias veces en revisión.
Relacionado: Por qué planificar antes de programar no es perder el tiempo
