Tu LLM es tu nuevo Dev Junior. Escríbele Tickets Perfectos con esta Estructura


IA is junior devTodos hemos estado ahí. Le pides a una IA que genere un código y te devuelve un desastre: usa librerías obsoletas, ignora por completo el contexto de tu app o, peor aún, “alucina” una solución que parece plausible pero es fundamentalmente incorrecta.

El problema no es la IA. El problema es que la tratamos como a un oráculo mágico en lugar de lo que realmente es: un desarrollador junior increíblemente rápido, con acceso a todo Stack Overflow, pero sin una pizca de contexto sobre tu proyecto.

Si le das un ticket vago a un dev junior, obtienes resultados vagos. Si le das un ticket perfecto, obtienes código de calidad. Lo mismo pasa con los LLMs. Deja de improvisar y empieza a usar una estructura. Esta es la anatomía de un prompt que funciona.




La Anatomía de un Prompt de Nivel Profesional

Piensa en tu prompt como un ticket de Jira o una User Story. Necesita tener secciones claras para no dejar lugar a la ambigüedad.



1. Rol (Persona) 🎭

Qué es: Le dices al modelo quién debe ser.
Por qué funciona: Le das un “sombrero” que define su conocimiento, tono y estilo. No es lo mismo un “Experto en Ciberseguridad” que un “Creador de contenido viral”.

Ejemplo para código:

“Actúa como un desarrollador full-stack senior con 10 años de experiencia, especializado en el stack MERN y en la optimización de rendimiento.”



2. Contexto (Context) 背景

Qué es: El README.md de tu solicitud. La información de fondo que necesita para entender el panorama general.
Por qué funciona: Eliminas las suposiciones. Le das el stack tecnológico, el objetivo de negocio, el público, etc.

Ejemplo para código:

“Estoy construyendo el backend para una app de e-commerce con Node.js, Express y MongoDB. Estamos usando JWT para la autenticación.”



3. Tarea (Task) 🎯

Qué es: El título del ticket. La acción específica y directa que debe realizar.
Por qué funciona: Va al grano. “Genera una función” es mucho mejor que “háblame sobre funciones”.

Ejemplo para código:

“Crea una función middleware de Express.js llamada ‘authenticateToken’.”



4. Pasos / Instrucciones (Steps) 📝

Qué es: El desglose de la tarea, la lista de // TODO.
Por qué funciona: Obligas al modelo a seguir una lógica estructurada. Si el resultado es incorrecto, puedes depurar en qué paso falló.

Ejemplo para código:

“Sigue estos pasos:

  1. Extrae el token JWT del header ‘Authorization’.
  2. Valida el token con la librería jsonwebtoken y una clave secreta.
  3. Si es válido, adjunta el payload del usuario al objeto req y llama a next().
  4. Si no es válido o no existe, responde con un error 401 o 403.”



5. Formato de Salida (Output Format) 📄

Qué es: Cómo quieres que te entregue el “pull request”. ¿JSON? ¿Markdown? ¿Solo el bloque de código?
Por qué funciona: Te ahorra el trabajo de limpiar la respuesta. Esencial para automatizar tareas.

Ejemplo para código:

“Formato de Salida: Proporciona únicamente el código JavaScript dentro de un bloque de código markdown. No incluyas explicaciones adicionales.”



6. Restricciones (Constraints) ⛓️

Qué es: Las reglas del proyecto. El linter, las guías de estilo, las dependencias prohibidas.
Por qué funciona: Acota las posibles soluciones y asegura que el código se alinee con tus estándares.

Ejemplo para código:

“Restricciones: No uses librerías externas aparte de ‘express’ y ‘jsonwebtoken’. El código debe seguir las guías de estilo de Airbnb para ES6+.”




El Ingrediente Secreto: La Cláusula de Clarificación

Esta es la técnica que separa a los amateurs de los profesionales. Añade esto al final de tus prompts importantes:

“Si te falta información crítica para dar una respuesta precisa, no adivines. En su lugar, hazme las preguntas necesarias para obtener los detalles.”

Esto transforma al LLM de un generador de código a un colaborador activo. En lugar de inventar el esquema de una base de datos, te preguntará por él. Esto te ahorra horas de depuración.




Poniéndolo todo junto: Lazy Prompt vs. Pro Prompt

Veamos la diferencia en la vida real.

❌ El Prompt Vago (y los resultados que te mereces):

“Hazme una función en JS que valide un email.”

Probablemente obtendrás una función simple con una expresión regular que puede o no ser la mejor.

✅ El Prompt Profesional:

Rol: Actúa como un desarrollador backend senior enfocado en la seguridad y validación de datos.

Contexto: Estoy trabajando en un formulario de registro para una API en Node.js. La validación se realiza en el servidor antes de guardar los datos en la base de datos PostgreSQL.

Tarea: Crea una función llamada isValidEmail que valide de forma robusta una dirección de correo electrónico.

Instrucciones:

  1. La función debe recibir un string como único argumento.
  2. Debe devolver true si el email es válido y false en caso contrario.
  3. La validación debe comprobar no solo el formato (usando una regex recomendada por OWASP o similar), sino también que el dominio no sea de un servicio de email temporal conocido (incluye una pequeña lista negra de ejemplo como ['temp-mail.org', '10minutemail.com']).

Restricciones: No uses librerías externas para la validación, solo código nativo de JavaScript.

Formato de Salida: Responde únicamente con la función de JavaScript en un bloque de código, incluyendo comentarios JSDoc.

Ves la diferencia, ¿verdad? El segundo prompt te dará una solución lista para producción.




No lo hagas cada vez

He creado una pequeña app que genera el prompt a partir de las caracteristicas que necesites, es de codigo abierto por lo que puedes usarla o crear tu propia version.

Web: https://prompt-builder-sandy.vercel.app
Github: https://github.com/zenx5/prompt-builder



Source link

Leave a Reply

Your email address will not be published. Required fields are marked *