Por qué una especificación, y no solo intuición
Programar por intuición (vibe coding) no significa saltarse la planificación. Significa planificar rápido y ligero, y luego dirigir a la IA para que ejecute. Una especificación es el volante. Sin ella, la IA adivina tu intención en cada instrucción, y los pequeños malentendidos se acumulan hasta convertirse en un caos.
Una especificación te da tres cosas:
- Contexto compartido — puedes pegarla en cualquier de IA y restablecer al instante qué estás construyendo.
- Un límite de alcance — una línea escrita entre lo que "sí" y lo que "no", que frena la expansión descontrolada de funciones.
- Una lista de tareas — fragmentos construibles que la IA puede completar uno a la vez.
Una especificación funciona como un embudo: toma una idea amplia y difusa y la va reduciendo, paso a paso, hasta convertirla en pequeños fragmentos que la IA realmente puede construir.
┌─────────────────────────┐
│ IDEA │ fuzzy, one line
└───────────┬─────────────┘
▼
┌───────────────────┐
│ SPEC │ problem · scope · stories
└─────────┬─────────┘
▼
┌───────────────┐
│ TASKS │ small, ordered steps
└───────┬───────┘
▼
┌───────────┐
│ BUILD │ one chunk at a time
└───────────┘
No necesita ser larga. Una página es suficiente para la mayoría de los proyectos. De hecho, una especificación que crece más allá de dos páginas suele ser una señal de alerta: o estás planificando demasiado lejos en el futuro, o estás ampliando el alcance sin darte cuenta. Ante la duda, recorta. Las partes que eliminas rara vez se extrañan, y las partes que conservas se vuelven más nítidas.