LABORATORIO
Iteración IA Intermedio

El Arte del Prompting para Código

Lección 03: El Arte del Prompting para Código

Puntos Clave
  • La calidad del software generado depende directamente de la calidad del prompt. No es magia, es comunicación precisa.
  • Un buen prompt sigue la estructura Contexto, Tarea, Formato, Restricciones. Cada elemento reduce la ambigüedad del output.
  • Un PRD de una página mejora drásticamente los resultados al darle a la IA una referencia persistente del proyecto completo.
  • El vibe coding funciona como conversación iterativa, no como un comando único. Prompt, evalúa, ajusta, repite.
  • Los errores más comunes son prompts vagos, peticiones demasiado largas y aceptar el output sin probarlo.

Por qué el Prompting Importa

En vibe coding, tú no escribes código. Escribes instrucciones para que la IA lo haga por ti. Eso significa que tu única herramienta de desarrollo es el lenguaje natural. Si la instrucción es vaga, el resultado será mediocre. Si es precisa, el resultado puede ser sorprendentemente bueno.

El prompting para código no es lo mismo que conversar con un chatbot. No basta con "hazme una app". Necesitas comunicar requisitos, restricciones, comportamientos esperados y contexto técnico.

La diferencia entre un resultado utilizable y uno que descartas suele estar en una o dos frases adicionales en el prompt. Piensa en cada prompt como un brief para un desarrollador que no conoce tu proyecto. Cuanto mejor sea el brief, menos ida y vuelta necesitarás.

Principios Fundamentales del Prompting

Sé específico

La especificidad es la diferencia entre un resultado genérico y uno que puedes usar directamente. Compara estos dos enfoques:

Vago
Hazme un dashboard.
Específico
Crea un dashboard de ventas con un gráfico de barras que muestre las ventas semanales de los últimos 3 meses. Usa Recharts. Incluye un selector de rango de fechas y una tabla debajo con las 10 transacciones más recientes.

El primer prompt produce algo genérico: quizás una plantilla con datos placeholder. El segundo produce un componente funcional con la estructura exacta que necesitas. La IA no puede adivinar tus requisitos; tu trabajo es eliminar la ambigüedad.

Una tarea por prompt

Divide las peticiones grandes en pasos pequeños y enfocados. En lugar de pedir "crea una app de gestión de tareas con autenticación, base de datos, panel de admin y notificaciones por email", haz prompts individuales para cada funcionalidad:

  1. Primer prompt: Crea la estructura base del proyecto con React y Tailwind.
  2. Segundo prompt: Añade un formulario para crear tareas con título, descripción y prioridad.
  3. Tercer prompt: Implementa la lista de tareas con filtros por estado y prioridad.

Cada prompt construye sobre el anterior. La IA puede concentrarse en una sola responsabilidad y tú puedes verificar cada paso antes de avanzar.

Describe comportamiento, no implementación

Dile a la IA qué debe pasar, no cómo implementarlo. Cuando describes el comportamiento, la IA elige la implementación más adecuada. Cuando dictas el código, limitas sus opciones y aumentas la probabilidad de errores.

Implementación
Usa un useState para loading, pon un setLoading(true) antes del fetch y setLoading(false) en el finally. Renderiza un div con className spinner cuando loading sea true.Dictas el cómo, atando a la IA a una solución específica.
Comportamiento
Cuando el usuario haga click en Guardar, muestra un indicador de carga y desactiva el botón hasta que el servidor responda. Si hay error, muestra un mensaje descriptivo sin recargar la página.Describes el qué, dejando que la IA optimice el cómo.

Da contexto

La IA no tiene acceso a tu mente. Si trabajas con un stack específico, tienes restricciones de diseño o necesitas compatibilidad con algo existente, dilo explícitamente. El contexto evita que la IA tome decisiones que contradicen tus requisitos:

  • Stack: "Usa Next.js 14 con App Router y Tailwind CSS"
  • Restricciones: "No uses librerías externas para el formulario"
  • Estilo: "Tema oscuro con fondo #111111 y acentos en morado"
  • Existente: "El proyecto ya tiene Prisma configurado con PostgreSQL"

Estructura de un Buen Prompt

Un prompt efectivo para vibe coding sigue un patrón de cuatro bloques. No necesitas usar etiquetas formales, pero sí cubrir cada área:

Contexto Stack, proyecto, estado actual Tarea Qué quieres que haga, concreto Formato Cómo quieres el output Restricciones Qué NO debe hacer o incluir ANATOMIA DE UN PROMPT EFECTIVO Cada bloque reduce la ambiguedad del output
01
Contexto
Stack, proyecto, estado actual
02
Tarea
Qué quieres que haga, concreto
03
Formato
Cómo quieres el output
04
Restricciones
Qué NO debe hacer o incluir

Veamos un ejemplo completo aplicando los cuatro bloques:

prompt-ejemplo.txt
# Contexto
Estoy construyendo una app de seguimiento de hábitos
con React + TypeScript + Tailwind. Tema oscuro.

# Tarea
Crea un componente HabitCard que muestre:
- Nombre del hábito
- Racha actual (días consecutivos)
- Grid de los últimos 30 días (verde = completado, gris = no)
- Botón para marcar el día actual como completado

# Formato
Un solo archivo TSX con los tipos inline.
Usa Tailwind para estilos, sin CSS externo.

# Restricciones
No uses librerías de calendario externas.
No hagas fetch a ningún API, usa datos mock.
El componente debe ser responsive.

Este prompt tiene menos de 15 líneas y le da a la IA toda la información necesaria para generar un componente funcional en el primer intento. La clave no es la longitud, sino la cobertura de los cuatro bloques.

PRD como Herramienta de Prompting

Un PRD (Product Requirements Document) es un documento de una página que describe tu proyecto completo. No es un documento formal de 50 páginas; es una referencia concisa que le da a la IA el mapa del territorio antes de que empiece a construir.

¿Por qué funciona? Porque elimina la necesidad de repetir contexto en cada prompt. En lugar de explicar el stack, el objetivo y las restricciones cada vez, le pasas el PRD como referencia y tus prompts pueden ser más cortos y enfocados.

PRD-ejemplo.md
## Objetivo
App de seguimiento de hábitos para uso personal.
MVP funcional en 1 sesión de vibe coding.

## Funcionalidades core
- Crear, editar y eliminar hábitos
- Marcar hábitos como completados por día
- Visualizar rachas y estadísticas semanales
- Persistencia local (localStorage)

## Stack
React 18 + TypeScript + Tailwind CSS
Vite como bundler. Sin backend.

## Restricciones
- Tema oscuro obligatorio
- Mobile-first
- Sin dependencias externas excepto React y Tailwind
- Máximo 5 archivos de componentes

Con este PRD en el contexto de la IA, un prompt tan simple como "crea el componente de estadísticas semanales" genera un resultado coherente con el resto del proyecto. La IA sabe que debe usar React con TypeScript, tema oscuro, sin dependencias externas y con datos de localStorage.

Wireframes y Sketches

Un dibujo vale más que mil palabras de prompt. Antes de escribir instrucciones complejas sobre layout, dibuja lo que quieres. No necesitas herramientas profesionales:

  • Papel y móvil: Dibuja el layout a mano y toma una foto. Muchas herramientas de vibe coding aceptan imágenes como input.
  • Excalidraw: Herramienta gratuita para wireframes rápidos con aspecto de boceto. Ideal para layouts y flujos.
  • Figma: Si ya tienes un diseño en Figma, exporta capturas de secciones específicas y úsalas como referencia visual.

El wireframe complementa al prompt textual. La IA interpreta la disposición visual y la combina con tus instrucciones escritas. Es la diferencia entre decir "pon una sidebar a la izquierda" y mostrar exactamente cómo se distribuyen los elementos.

El Loop de Iteración

El vibe coding no es un disparo único. Es una conversación con la IA donde cada prompt construye sobre el resultado anterior. El flujo natural es:

PROMPT Tu instrucción RESULTADO Output de la IA EVALUAR Probar y revisar AJUSTAR Feedback preciso Nuevo prompt con ajustes

Cada iteración debe ser un ajuste preciso, no una reescritura completa. En lugar de reformular todo el prompt cuando algo falla, identifica qué parte específica no funciona y da feedback enfocado:

Iteración mala
No, eso no es lo que quería. Hazlo de nuevo pero mejor. Quiero que se vea más profesional y que funcione bien en móvil.Vago, no dice qué falla ni cómo solucionarlo.
Iteración buena
El layout está bien pero necesito dos cambios: (1) el gráfico de barras debe usar colores degradados de morado en lugar de azul sólido, y (2) en móvil las cards deben apilarse verticalmente en una sola columna.Preciso, identifica los problemas exactos.
3x
Regla de las 3 Iteraciones

Si después de 3 iteraciones el resultado sigue sin ser lo que necesitas, el problema probablemente está en el prompt original. No sigas iterando sobre una base débil.

Iterar sobre una base mala solo produce resultados ligeramente menos malos. Haz un paso atrás y replantea desde cero.

1 Identifica qué falla
2 Reescribe con más contexto
3 Empieza la conversación de nuevo

Técnicas Avanzadas de Prompting

Una vez que dominas la estructura básica, estas técnicas te permiten abordar tareas más complejas con mayor precisión:

Pseudo-código para lógica compleja

Cuando la lógica de negocio es compleja, el lenguaje natural puede ser ambiguo. El pseudo-código elimina esa ambigüedad sin necesitar que escribas código real.

Usa pseudo-código para describir reglas de negocio, flujos condicionales y cálculos. La IA lo traduce al lenguaje y framework que estés usando.

Implementa esta lógica de precios:

SI el usuario tiene plan premium:
  precio = precio_base * 0.8  // 20% descuento
SI además tiene código de cupón válido:
  precio = precio * (1 - cupon.porcentaje)
SI el precio final es menor que precio_mínimo:
  precio = precio_mínimo

Siempre mostrar el precio original tachado
junto al precio final.

Referencias a archivos con @mentions

En herramientas como Cursor o Claude Code, puedes referenciar archivos específicos con @ para que la IA los tenga en contexto. Esto es crítico cuando tu prompt depende de código existente.

  • Referencia directa: "Mira @src/types/user.ts y crea un formulario de registro que use esos tipos"
  • Consistencia: "Sigue el mismo patrón de @src/components/ProductCard.tsx para crear OrderCard"
  • Debugging: "El error está en @src/api/checkout.ts línea 45, el total no incluye impuestos"

Las @mentions son más efectivas que copiar y pegar código porque le dan a la IA el archivo completo con su contexto, no solo un fragmento.

Pedir explicación antes de implementar

Para tareas complejas, pide que la IA explique su plan antes de ejecutar. Esto te permite corregir el rumbo antes de que genere cientos de líneas de código.

  • "Antes de implementarlo, explícame cómo vas a estructurar la autenticación y qué librerías piensas usar"
  • "Dame un plan de 5 pasos para refactorizar este módulo, sin escribir código todavía"

Esta técnica es especialmente útil para arquitectura, migraciones y refactorizaciones. Valida la dirección antes de invertir tiempo en generar código que quizás tengas que descartar.

Prompt chaining: secuencias conectadas

El prompt chaining es la técnica de diseñar una secuencia de prompts donde cada uno construye sobre el output del anterior. En lugar de un prompt gigante, creas una cadena deliberada:

  • Prompt 1: "Crea la estructura de datos y los tipos TypeScript para la app"
  • Prompt 2: "Usando esos tipos, crea las funciones de acceso a datos con localStorage"
  • Prompt 3: "Ahora crea los componentes de UI que consuman esas funciones"
  • Prompt 4: "Añade manejo de errores y estados de carga a los componentes"

Cada prompt tiene un alcance reducido, la IA no pierde el hilo, y tú puedes verificar cada capa antes de construir la siguiente.

Errores Comunes de Prompting

Después de observar cientos de sesiones de vibe coding, estos son los patrones que más afectan la calidad del output:

Prompts vagos
"Hazme una app bonita" no es un prompt. Sin especificidad, la IA rellena los huecos con suposiciones que probablemente no coinciden con tu visión.
Monólogos largos
Un prompt de 500 palabras con múltiples tareas mezcladas confunde a la IA. Divide en prompts cortos y enfocados.
No dar contexto
Asumir que la IA sabe tu stack, tu estilo visual o tus restricciones. Cada sesión empieza desde cero.
No iterar
Esperar que el primer prompt produzca el resultado perfecto. El vibe coding es iterativo por naturaleza.
Aceptar sin probar
Copiar el output directamente sin ejecutarlo, probarlo ni entender qué hace. Los errores silenciosos se acumulan.
Dictar implementación
Decirle a la IA exactamente cómo codificar cada línea en lugar de describir el comportamiento deseado. Limitas su capacidad.

Ejemplos Prácticos: Buenos vs Malos Prompts

Cada par muestra el mismo objetivo abordado de forma ineficaz y eficaz. La diferencia no es la complejidad del prompt, sino su precisión.

Malo
Hazme un formulario de login.
Bueno
Crea un formulario de login con email y contraseña. Validación client-side: email válido, contraseña mínimo 8 caracteres. Muestra errores debajo de cada campo. Botón desactivado hasta que el formulario sea válido. Tema oscuro, centrado en la pantalla.
Malo
Añade una sección de precios a la landing page.
Bueno
Añade una sección de precios con 3 columnas: Básico ($9/mes), Pro ($29/mes) y Enterprise (contacto). Cada columna lista 5 features con checkmarks. El plan Pro debe estar destacado visualmente como "Recomendado". Botón CTA en cada columna. Responsive: 1 columna en móvil.
Malo
El botón no funciona, arréglalo.
Bueno
El botón "Enviar" en el formulario de contacto no ejecuta la función handleSubmit al hacer click. Creo que el event listener no está vinculado. El botón está en @src/components/ContactForm.tsx. No hay errores en la consola.

El prompting es una habilidad que se entrena

No esperes dominar el prompting en tu primera sesión. Como cualquier habilidad, mejora con la práctica deliberada. Guarda tus mejores prompts como plantillas, analiza los que funcionan y los que no, y construye un repertorio personal que puedas reutilizar entre proyectos.

Preguntas Frecuentes

Sobre prompting para vibe coding

No hay una longitud ideal fija. La regla es que cada prompt debe cubrir una sola tarea concreta. Un prompt de 3 líneas bien estructurado (contexto, tarea, restricciones) suele superar a uno de 20 líneas vago. Para tareas complejas, usa un PRD como documento de referencia en lugar de escribir prompts enormes.
Un PRD (Product Requirements Document) es un documento de una página que describe el objetivo del proyecto, funcionalidades clave, stack tecnológico y restricciones. La IA lo usa como contexto persistente para mantener coherencia entre prompts sucesivos, lo que reduce drásticamente los errores y la necesidad de correcciones manuales.
Describir el comportamiento deseado. Cuando dices "cuando el usuario haga click en Guardar, muestra un spinner y desactiva el botón hasta que el servidor responda", la IA elige la implementación óptima para tu stack. Si dictas la implementación exacta línea por línea, limitas la capacidad de la IA y aumentas el riesgo de introducir errores que tú mismo no detectas.
No reescribas el prompt completo. Identifica qué falla específicamente y da feedback preciso: "El gráfico está bien pero cambia las barras por líneas y añade un tooltip con el valor exacto". Cada iteración debe ser un ajuste enfocado, no una repetición del prompt original. Si después de 3 iteraciones no llegas al resultado, replantea el prompt desde cero.
Sí. Herramientas como Cursor, Bolt.new, Lovable y v0 aceptan imágenes como parte del prompt. Un wireframe dibujado a mano, un sketch en Excalidraw o un mockup de Figma le da a la IA una referencia visual que complementa la descripción textual y reduce la ambigüedad significativamente. Es especialmente útil para layouts complejos donde la descripción textual se vuelve confusa.
Prompt chaining es diseñar una secuencia deliberada de prompts donde cada uno construye sobre el output del anterior. Úsalo cuando la tarea es demasiado compleja para un solo prompt: primero define los tipos de datos, luego la lógica de negocio, después los componentes de UI, y finalmente el manejo de errores. Cada paso tiene un alcance reducido y puedes verificar el resultado antes de avanzar.