{"content_id":"vduimuvis9","slug":"claude-code-prompt-six-principles-and-templates","locale":"es","schema_type":"HowTo","category":"tutorial","category_name":"Tutorial","title":"6 principios de prompts para mejorar la calidad de los resultados de Claude Code","summary":"Explica cómo comunicar de forma estructurada el contexto, el contrato de salida, la gestión de excepciones y los criterios de validación, en lugar de limitarse a pedir a Claude Code que genere código. También ofrece plantillas de prompts aplicables de inmediato al desarrollo de nuevos agentes, la incorporación de funciones y la corrección de errores.","sponsorship_disclosure":null,"author":{"name":"Equipo editorial de Injoys","url":"https://injoys.com/ko/about"},"key_points":["1. Antes de comenzar el trabajo, reúna en un solo documento el contexto del usuario, el problema que debe resolverse, los criterios de éxito y las restricciones técnicas.","2. Especifique la estructura de archivos, el formato de los datos, los límites permitidos y las condiciones de finalización mediante un contrato de salida concreto.","3. Defina las excepciones previsibles, como fallos de API externas, resultados vacíos, datos duplicados y errores de autenticación, junto con las políticas para responder a ellas.","4. Divida el trabajo en las fases de revisión del plan, implementación de las funciones mínimas, pruebas automatizadas y ampliación de funciones, y compruebe los resultados en cada etapa.","5. En lugar de solicitar una revisión ambigua, proporcione casos de error y objetivos de mejora medibles, y valídelos mediante las condiciones finales de aceptación."],"content_markdown":"Los agentes de programación como Claude Code no son herramientas que se limitan a generar un fragmento de código, sino entornos de trabajo capaces de explorar repositorios, modificar varios archivos y ejecutar pruebas y comandos. Por tanto, la calidad del resultado depende en gran medida, más que de lo verosímil que suene el texto, de **la claridad con la que se definan el alcance del trabajo y el método de validación**.\n\nUn buen prompt no es una explicación extensa, sino una especificación de trabajo ejecutable. Debe comunicar no solo qué se quiere crear, sino también por qué es necesario, qué condiciones deben cumplirse, cómo gestionar los fallos y qué debe superarse para considerar el trabajo terminado.\n\n## Lo primero que hay que distinguir: el prompt y el entorno de ejecución\n\nLa programación por vibraciones es una forma de colaboración en la que se comunica la intención mediante lenguaje natural y un agente de IA se encarga de la implementación. Sin embargo, el hecho de solicitar algo mediante lenguaje natural no garantiza la precisión del código ni la estabilidad operativa.\n\nEn un trabajo con Claude Code intervienen conjuntamente los siguientes elementos.\n\n| Elemento | Función | Qué comprobar en el prompt |\n|---|---|---|\n| Solicitud del usuario | Comunicar el objetivo y el alcance de los cambios | Propósito, prioridades, prohibiciones |\n| Contexto del repositorio | Proporcionar la estructura y las reglas existentes | Framework, comandos de ejecución, archivos relacionados |\n| `CLAUDE.md` | Proporcionar instrucciones del proyecto que se aplican repetidamente | Reglas de programación, métodos de prueba, convenciones de directorios |\n| Permisos de herramientas | Controlar el alcance permitido para modificar archivos y ejecutar comandos | Comandos que pueden ejecutarse y operaciones que requieren confirmación previa |\n| Conexiones externas | Acceder a API, bases de datos, servidores MCP, etc. | Método de autenticación, límites de confianza, política ante fallos |\n| Procedimiento de validación | Determinar si el resultado cumple los requisitos | Pruebas, análisis estático, elementos de comprobación manual |\n\nRedactar bien el prompt no resuelve por sí solo todos los problemas. Por ejemplo, Claude Code puede crear código para ejecuciones programadas, pero para que una tarea se ejecute incluso cuando el ordenador está apagado se necesita un servidor independiente, un servicio de CI o un programador del sistema operativo. Del mismo modo, el envío de correos electrónicos no puede completarse sin las credenciales de autenticación y los permisos de envío de un proveedor real.\n\n## Principio 1. Explicar primero el contexto, el propósito y las restricciones\n\nSi solo se indica el nombre del resultado, como `Crea un agente de recopilación de noticias`, el agente tendrá que deducir quién es el usuario, cuáles son las fuentes de datos, cuál es el entorno de ejecución y cuáles son los criterios de éxito. Incluso para un mismo recopilador de noticias, las fuentes y los criterios de clasificación que necesitan un responsable de desarrollo de negocio, un inversor y un editor de un periódico universitario son distintos.\n\n### Solicitud insuficiente\n\n```text\nCrea un agente de recopilación de noticias sobre IA.\n```\n\n### Solicitud mejorada\n\n```text\nSoy responsable de desarrollo de negocio en una startup de TI.\nAntes de comenzar a trabajar cada día, quiero consultar rápidamente noticias\nde los sectores de la IA, la nube y las fintech que puedan influir\nen las alianzas comerciales o en la estrategia de producto.\n\nObjetivos:\n- Recopilar candidatos de artículos recientes para cada palabra clave especificada.\n- Eliminar artículos con la misma URL y duplicados con títulos similares.\n- Clasificar el impacto como alto, medio o bajo según si es necesario\n  tomar una decisión sobre el producto o una alianza en un plazo de 3 meses.\n- Crear con los resultados un boletín por correo electrónico en coreano.\n\nRestricciones:\n- Mantener la versión de Python y el método de gestión de paquetes del repositorio actual.\n- Antes de añadir una biblioteca nueva, explicar su necesidad y las alternativas.\n- No registrar claves de API ni contraseñas de correo electrónico en el código o los registros.\n- Antes del envío real del correo, generar únicamente un archivo de vista previa.\n\nPrimero, investiga la estructura del repositorio y el método de ejecución,\ny después propón un plan de implementación.\nNo deduzcas la información desconocida del entorno; organízala como una lista de preguntas.\n```\n\nUna buena información de contexto contiene los cuatro elementos siguientes.\n\n1. **Usuario y situación de uso:** quién lo utiliza, cuándo y para qué decisión\n2. **Objetivo:** cuál es el problema que debe resolverse, más allá de escribir código\n3. **Restricciones:** qué tecnologías, reglas de seguridad y límites de coste o tiempo deben mantenerse\n4. **No objetivos:** qué funciones quedan excluidas explícitamente de este cambio\n\nEspecificar los no objetivos permite evitar que el alcance crezca indefinidamente. Por ejemplo, al establecer que `en esta fase se excluyen la ejecución programada y el envío real de correos electrónicos`, se pueden validar primero de forma estable la lógica de recopilación y la de clasificación.\n\n## Principio 2. Convertir el formato de salida deseado en un contrato de salida\n\n`Envíalo por correo con un formato atractivo` puede interpretarse de forma distinta según la persona. En lugar de mostrar únicamente un ejemplo del formato de salida, también deben definirse los campos obligatorios, los valores permitidos, la gestión de datos ausentes y el orden de clasificación.\n\n```text\nAsunto del correo:\n[Boletín de noticias] {YYYY-MM-DD} Noticias clave de hoy\n\nFormato de los artículos en el cuerpo:\n1. {Título}\nResumen: {1~2 frases en coreano}\nImpacto: {Alto|Medio|Bajo}\nMotivo de la decisión: {1 frase}\nFuente: {Nombre del medio}\nEnlace: {URL original}\n\nReglas de ordenación:\n1. De mayor a menor impacto\n2. Si el impacto es igual, por fecha de publicación, empezando por la más reciente\n\nEstadísticas al final:\n- Número total de artículos\n- Número de artículos por nivel de impacto\n- Palabras clave sin resultados de búsqueda\n\nRestricciones:\n- No inventar en el resumen cifras ni afirmaciones ausentes del original.\n- Si no puede comprobarse la fecha, no estimarla y mostrar 'No se puede comprobar'.\n- Excluir del boletín final los elementos que no tengan enlace.\n```\n\nSi el resultado debe transmitirse entre programas, conviene solicitar un esquema JSON o una definición de tipos junto con un ejemplo legible para las personas.\n\n```json\n{\n  \"title\": \"string\",\n  \"summary\": \"string\",\n  \"impact\": \"high | medium | low\",\n  \"reason\": \"string\",\n  \"source\": \"string\",\n  \"url\": \"absolute URL\",\n  \"published_at\": \"ISO 8601 string | null\"\n}\n```\n\nEl contrato de salida no solo incluye el formato, sino también el significado. Si no existen criterios para determinar qué significa `impact: high`, la sintaxis JSON puede ser correcta, pero los resultados de la clasificación pueden ser incoherentes.\n\n## Principio 3. Especificar las situaciones excepcionales y las políticas de recuperación\n\nLa calidad del código operativo se revela más en las rutas de fallo que en la ruta normal. El prompt debe incluir los fallos previsibles, si pueden reintentarse, las condiciones en las que debe informarse al usuario y la información que no debe registrarse.\n\n| Situación excepcional | Ejemplo de política recomendada |\n|---|---|\n| No hay resultados de búsqueda | Omitir esa palabra clave y registrarla en las estadísticas finales |\n| Error temporal de red | Reintentar un número limitado de veces a intervalos determinados |\n| Fallo de autenticación | No reintentar; detenerse de inmediato e indicar que se revise la configuración |\n| Límite de uso de la API | Respetar las instrucciones de espera de la respuesta y prohibir los reintentos infinitos |\n| Artículos duplicados | Eliminarlos según la URL normalizada y la similitud del título |\n| Datos con formato incorrecto | Conservar el original y aislar únicamente el elemento afectado |\n| Fallo en el envío del correo | Si sigue fallando tras los reintentos, emitir una notificación alternativa o registrar el estado de fallo |\n| Éxito parcial | Informar por separado de los resultados correctos y de los elementos fallidos |\n\nLa política puede solicitarse de forma concreta como se muestra a continuación.\n\n```text\nTrata los tiempos de espera agotados de la red como errores que pueden reintentarse.\nDeja un tiempo de espera entre los reintentos y, si se supera el número máximo,\nmarca como fallida únicamente la fuente afectada.\nDetente de inmediato ante errores de autenticación y solicitudes incorrectas,\nya que repetirlas no resolverá el problema.\n\nEn todos los registros de errores, incluye la hora, la etapa del trabajo,\nla fuente y el tipo de error, pero no registres la clave de API,\nla dirección de correo electrónico completa, las cabeceras de autenticación\nni el texto íntegro de los artículos.\nDistingue mediante el estado de finalización del proceso entre éxito total,\néxito parcial y fallo total.\n```\n\nValores como `reintentar tres veces` o `esperar 5 segundos` no son respuestas universalmente correctas. Deben decidirse en el proyecto según los límites oficiales del servicio externo, la urgencia del trabajo y el riesgo de ejecuciones duplicadas. Las operaciones con efectos secundarios, como pagos o envíos de mensajes, pueden procesarse por duplicado si se reintentan automáticamente sin garantizar la idempotencia.\n\n## Principio 4. Desarrollar progresivamente siguiendo el orden de planificación, implementación mínima y validación\n\nSi se conectan a la vez varios servicios externos y la ejecución automática, resulta difícil aislar la causa de los errores. Dividir la implementación en pequeñas unidades de validación permite comprobar las entradas y salidas de cada etapa.\n\n### Orden de trabajo recomendado\n\n1. Investigar la estructura del repositorio, los archivos relacionados y los comandos de ejecución.\n2. Pedir que se presente un plan y los archivos afectados antes de modificar el código.\n3. Implementar la función de recopilación con una sola palabra clave y datos de muestra fijos.\n4. Probar por separado la eliminación de duplicados y la clasificación del impacto.\n5. Validar el correo electrónico mediante una vista previa local en lugar de enviarlo realmente.\n6. Una vez superadas las pruebas, añadir la integración con el proveedor real y la ejecución programada.\n\nLa primera solicitud puede limitarse de la siguiente manera.\n\n```text\nPor ahora, realiza únicamente la fase 1.\nInvestiga el repositorio e informa de lo siguiente:\n- Punto de entrada de la aplicación actual\n- Módulos y archivos de prueba relacionados\n- Comandos de gestión de paquetes y pruebas utilizados\n- Archivos que previsiblemente habrá que modificar\n- Preguntas que deben resolverse antes de la implementación\n\nNo modifiques todavía ningún archivo.\n```\n\nDespués de revisar el plan, se implementa reduciendo el alcance de los cambios.\n\n```text\nDel plan aprobado, implementa únicamente la recopilación de noticias\ny la eliminación de duplicados.\nNo añadas la clasificación, el envío de correos ni la ejecución programada.\nHaz que pueda ejecutarse con datos de prueba fijos\ny, al final, resume los archivos modificados y los resultados de las pruebas ejecutadas.\n```\n\nSi en el entorno de Claude Code puede utilizarse un modo dedicado exclusivamente a la planificación, se puede aprovechar durante las fases de exploración y diseño. Sin embargo, que el plan parezca convincente no significa que la implementación sea correcta, por lo que deben realizarse después pruebas reales y una revisión del código.\n\n## Principio 5. Comunicar los comentarios mediante casos de fallo y cifras\n\n`El resultado no es bueno`, `el rendimiento es lento` o `la clasificación es incorrecta` no permiten decidir fácilmente la dirección de la corrección. Es necesario comunicar el estado actual, el estado esperado, la entrada con la que se reproduce el problema y el intervalo de cambios aceptable.\n\n### Solicitud para modificar la longitud\n\n```text\nActualmente, el cuerpo del correo se genera con unos 3,000 caracteres.\nQuiero reducirlo a como máximo 500 caracteres para poder leerlo rápidamente\nen un dispositivo móvil.\nLimita el resumen de cada artículo a 1~2 frases y conserva el motivo de la decisión.\nVincula la URL original al título y elimina la línea de enlace independiente.\nMantén las estadísticas al final.\n```\n\n### Solicitud para modificar los criterios de clasificación\n\n```text\nDe los 10 elementos de los datos de prueba, 8 se clasificaron como 'Alto'.\nClasifica como 'Bajo' las perspectivas tecnológicas a largo plazo\ny las presentaciones generales de productos.\nClasifica como 'Alto' únicamente cuando existan pruebas concretas de que,\nen un plazo de 3 meses, será necesario cambiar decisiones sobre precios,\nhoja de ruta del producto, respuesta regulatoria o alianzas.\n\nEn los casos adjuntos, las respuestas correctas son Alto para A y B, y Bajo para C.\nModifica las reglas de clasificación y añade estos casos como pruebas de regresión.\n```\n\n### Solicitud para modificar el rendimiento\n\n```text\nEl tiempo medio de ejecución con la misma entrada de muestra es actualmente\nde unos 45 segundos.\nEl objetivo es que sea de como máximo 30 segundos en el mismo entorno.\nPrimero, mide el tiempo de cada etapa y muestra el cuello de botella.\nNo elimines la precisión de los resultados ni la gestión de errores;\ncompara el efecto y el riesgo de las alternativas de mejora\ny aplica primero el cambio más pequeño.\n```\n\nLas cifras de rendimiento solo pueden compararse cuando el entorno de medición y los datos de entrada son los mismos. No debe concluirse que hubo una mejora basándose únicamente en el resultado de una ejecución; también deben fijarse el método de medición, la muestra y el estado de la caché.\n\n## Principio 6. Utilizar plantillas de prompt según el tipo de trabajo\n\n### Plantilla para crear un agente nuevo\n\n```text\n[Función y situación]\nSoy {profesión/función} y quiero resolver {situación problemática}.\nEste resultado será utilizado por {usuario o sistema posterior}.\n\n[Objetivo]\n{Resultado que debe alcanzarse y criterios de éxito}\n\n[Desencadenante de ejecución]\n{Ejecución manual, evento, hora programada, etc.}\n\n[Entrada]\n- Fuente de datos: {archivo/API/base de datos}\n- Campos obligatorios: {lista de campos}\n- Método de autenticación: {variable de entorno o método de gestión de secretos}\n\n[Lógica de procesamiento]\n1. {Etapa 1}\n2. {Etapa 2}\n3. {Etapa 3}\n\n[Contrato de salida]\n{Formato de archivo, esquema, plantilla, reglas de ordenación y datos ausentes}\n\n[Gestión de excepciones]\n{Políticas para resultados vacíos, tiempos de espera agotados,\nerrores de autenticación y fallos parciales}\n\n[Restricciones y no objetivos]\n- Tecnologías que deben mantenerse: {elemento}\n- Prohibiciones: {elemento}\n- Funciones excluidas de este trabajo: {elemento}\n\n[Validación]\n- Pruebas que deben superarse: {elemento}\n- Contenido que debe incluir el informe de finalización:\n  archivos modificados, comandos ejecutados, resultados de las pruebas y riesgos restantes\n\nPrimero, investiga el repositorio y presenta un plan de implementación.\nNo deduzcas la información desconocida; haz preguntas.\n```\n\n### Plantilla para añadir una función existente\n\n```text\nAñade {nueva función} al {nombre del agente o módulo} existente.\nLa función nueva debe ejecutarse después de {etapa existente A}\ny antes de {etapa existente B}.\n\nLógica detallada:\n- {Condiciones y reglas de procesamiento}\n- {Formato de entrada y salida}\n- {Comportamiento en caso de fallo}\n\nCondiciones que deben mantenerse:\n- No modificar la interfaz pública ni el formato de configuración existentes.\n- Mantener todas las pruebas existentes.\n- No modificar archivos que no estén relacionados.\n\nPrimero, explica el alcance del impacto y el riesgo de regresión.\nDespués, añade pruebas que conserven el comportamiento existente e implementa la función.\n```\n\n### Plantilla para corregir un error\n\n```text\nReproduce el siguiente error y corrige su causa raíz.\n\nMensaje de error completo:\n{Mensaje de error y seguimiento de pila del que se han eliminado\nlos datos secretos y la información personal}\n\nCondiciones en las que se produce:\n- Comando de ejecución: {comando}\n- Entrada: {entrada mínima de reproducción}\n- Entorno: {sistema operativo, runtime, versiones relacionadas}\n- Momento en que se produce: {en qué etapa}\n\nComportamiento esperado:\n{Resultado que debería aparecer si funcionara correctamente}\n\nComportamiento real:\n{Resultado observado actualmente}\n\nSolicitud:\n1. Primero, reproduce el error.\n2. Explica la causa basándote en pruebas.\n3. Corrígelo con el menor alcance posible.\n4. Añade una prueba de regresión que evite el mismo error.\n5. Informa de las pruebas ejecutadas y de los riesgos restantes.\n```\n\nAl pegar mensajes de error, deben eliminarse los datos sensibles, como claves de API, tokens de sesión, datos de clientes y direcciones internas.\n\n## Ejemplo completo: solicitud de un agente de boletines de noticias\n\nEl siguiente ejemplo combina los seis principios en una sola solicitud.\n\n```text\nSoy responsable de desarrollo de negocio en una startup de SaaS.\nQuiero consultar cada día únicamente las noticias sobre cambios en los mercados\nde la IA, la nube y las fintech que puedan modificar decisiones\nsobre productos o alianzas en un plazo de 3 meses.\n\nInvestiga el repositorio actual y diseña una herramienta de boletines de noticias.\nEn la primera fase, implementa únicamente la función de leer un JSON de muestra,\neliminar duplicados, clasificar el impacto y crear un archivo HTML de vista previa.\nLa búsqueda web, el envío real de correos electrónicos y la ejecución programada\nquedan excluidos de esta fase.\n\nCampos de entrada:\n- title, url, source, published_at, body\n\nReglas de procesamiento:\n- Si las URL normalizadas son iguales, se consideran duplicados.\n- Aunque las URL sean distintas, si los títulos son similares,\n  se marcan como posibles duplicados.\n- Clasifica como impacto 'Alto' únicamente los artículos que requieran\n  un cambio concreto en un plazo de 3 meses respecto a precios,\n  respuesta regulatoria, hoja de ruta del producto o decisiones sobre alianzas.\n- Si no hay pruebas suficientes, no supongas una calificación alta.\n\nSalida:\n- Mostrar el título, un resumen de 1~2 frases, el impacto,\n  el motivo de la decisión, la fuente y la URL.\n- Ordenar de mayor a menor impacto.\n- Mostrar al final el número total, el número de duplicados eliminados\n  y el número de elementos por nivel.\n\nGestión de excepciones:\n- No excluir los elementos sin campos obligatorios;\n  registrarlos en una lista de errores independiente.\n- No estimar las fechas incorrectas y mantenerlas como null.\n- No dejar en los registros el cuerpo íntegro de los artículos\n  ni la información de autenticación.\n\nValidación:\n- Probar entradas normales, entradas vacías, URL duplicadas,\n  fechas incorrectas y ausencia de campos obligatorios.\n- Si existen pruebas anteriores, todas deben superarse.\n\nOrden de trabajo:\n1. Investigar la estructura del repositorio y los archivos relacionados.\n2. Presentar los archivos que se modificarán y el plan de pruebas.\n3. No modificar el código antes de que yo revise el plan.\n4. Tras la aprobación, implementar la función mínima e informar\n   de los resultados de las pruebas.\n```\n\nEsta solicitud no exige desplegar de una sola vez todas las funciones en el entorno operativo. Su alcance es limitado y define conjuntamente el significado de la salida, la gestión de fallos y los elementos de prueba, lo que facilita evaluar el resultado.\n\n## Criterios de calidad fáciles de pasar por alto si solo se usa el prompt\n\nMuchas guías de programación por vibraciones se centran en redactar instrucciones más detalladas. Sin embargo, los elementos adicionales que determinan la calidad real son **la capacidad de validación, el control de cambios, la observabilidad y los límites de seguridad**.\n\n### 1. Convertir los criterios de aceptación en pruebas\n\nEn lugar de `Haz que funcione bien`, deben proporcionarse pares de entradas y salidas esperadas. Los casos de clasificación importantes deben conservarse como pruebas de regresión para comprobar que los resultados se mantengan también en cambios posteriores.\n\n### 2. No utilizar la autoevaluación del agente como prueba definitiva\n\nQue el agente diga `He terminado` no es lo mismo que haber superado las pruebas. Se le debe pedir que informe de los comandos ejecutados, los resultados de las pruebas, los archivos modificados y los riesgos no resueltos, y una persona debe revisar el diff.\n\n### 3. Minimizar los permisos y la información secreta\n\nNo deben proporcionarse de una sola vez directorios innecesarios, bases de datos de producción ni credenciales de despliegue. Las claves de API no deben introducirse directamente en el prompt o el repositorio; deben utilizarse variables de entorno o un sistema aprobado de gestión de secretos. No deben concederse permisos de acceso a repositorios sensibles a servidores MCP o scripts de origen desconocido.\n\n### 4. Exigir código observable\n\nEn los trabajos automatizados debe conservarse la información necesaria para localizar la causa de los fallos, como el estado de cada etapa, los errores estructurados, el tiempo de ejecución y el número de elementos procesados. Por el contrario, la información de autenticación y los datos personales deben eliminarse de los registros.\n\n### 5. Hacer que los cambios puedan revertirse\n\nNo deben mezclarse refactorizaciones no relacionadas y funciones adicionales en un mismo cambio. Revisar el diff en unidades pequeñas y registrarlo en el control de versiones facilita aislar y revertir los cambios incorrectos.\n\n## Consejos para gestionar proyectos con Claude Code\n\n- Registrar en `CLAUDE.md` las reglas recurrentes del proyecto de forma breve y concreta.\n- Proporcionar los comandos de compilación, pruebas y lint en una forma que pueda ejecutarse realmente.\n- No incluir en `CLAUDE.md` información secreta, registros de errores puntuales ni documentos de referencia extensos.\n- Antes de realizar cambios a gran escala, pedir que se investiguen los archivos relacionados y sus dependencias.\n- Al añadir un paquete nuevo, revisar su necesidad, licencia y riesgos de mantenimiento.\n- No aprobar automáticamente comandos peligrosos de eliminación, despliegue o modificación de datos.\n- Antes de conectar una API externa o MCP, comprobar adónde se transmiten los datos.\n- Al finalizar, pedir un resumen de los archivos modificados, los comandos ejecutados, los resultados de las pruebas y las limitaciones restantes.\n\n## Lista de comprobación previa al envío\n\n- [ ] ¿Se han explicado el usuario y la situación de uso?\n- [ ] ¿Se han separado los objetivos y los no objetivos?\n- [ ] ¿Se han especificado las tecnologías existentes y el alcance que no debe modificarse?\n- [ ] ¿Se han definido los datos de entrada y el formato de salida?\n- [ ] ¿Se ha explicado el significado de los valores de clasificación y de estado?\n- [ ] ¿Existen políticas para resultados vacíos, fallos de autenticación, tiempos de espera agotados y fallos parciales?\n- [ ] ¿Se han separado la planificación y la implementación por etapas?\n- [ ] ¿Existen pruebas para casos normales, límite y de fallo?\n- [ ] ¿Se excluyen la información secreta y los datos personales del prompt y los registros?\n- [ ] ¿Se han solicitado un diff para revisión humana y pruebas de ejecución?\n\nLa clave de un buen prompt para Claude Code no consiste en escribir instrucciones largas. Consiste en reducir lo que el agente debe deducir y hacer posible que un tercero también pueda reproducir y determinar si el resultado es correcto.","content_html":"\u003cp\u003eLos agentes de programación como Claude Code no son herramientas que se limitan a generar un fragmento de código, sino entornos de trabajo capaces de explorar repositorios, modificar varios archivos y ejecutar pruebas y comandos. Por tanto, la calidad del resultado depende en gran medida, más que de lo verosímil que suene el texto, de \u003cstrong\u003ela claridad con la que se definan el alcance del trabajo y el método de validación\u003c/strong\u003e.\u003c/p\u003e\n\u003cp\u003eUn buen prompt no es una explicación extensa, sino una especificación de trabajo ejecutable. Debe comunicar no solo qué se quiere crear, sino también por qué es necesario, qué condiciones deben cumplirse, cómo gestionar los fallos y qué debe superarse para considerar el trabajo terminado.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#lo-primero-que-hay-que-distinguir-el-prompt-y-el-entorno-de-ejecuci%C3%B3n\" class=\"anchor\" id=\"lo-primero-que-hay-que-distinguir-el-prompt-y-el-entorno-de-ejecución\"\u003e\u003c/a\u003eLo primero que hay que distinguir: el prompt y el entorno de ejecución\u003c/h2\u003e\n\u003cp\u003eLa programación por vibraciones es una forma de colaboración en la que se comunica la intención mediante lenguaje natural y un agente de IA se encarga de la implementación. Sin embargo, el hecho de solicitar algo mediante lenguaje natural no garantiza la precisión del código ni la estabilidad operativa.\u003c/p\u003e\n\u003cp\u003eEn un trabajo con Claude Code intervienen conjuntamente los siguientes elementos.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eElemento\u003c/th\u003e\n\u003cth\u003eFunción\u003c/th\u003e\n\u003cth\u003eQué comprobar en el prompt\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento\"\u003eSolicitud del usuario\u003c/td\u003e\n\u003ctd data-label=\"Función\"\u003eComunicar el objetivo y el alcance de los cambios\u003c/td\u003e\n\u003ctd data-label=\"Qué comprobar en el prompt\"\u003ePropósito, prioridades, prohibiciones\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento\"\u003eContexto del repositorio\u003c/td\u003e\n\u003ctd data-label=\"Función\"\u003eProporcionar la estructura y las reglas existentes\u003c/td\u003e\n\u003ctd data-label=\"Qué comprobar en el prompt\"\u003eFramework, comandos de ejecución, archivos relacionados\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento\"\u003e\u003ccode\u003eCLAUDE.md\u003c/code\u003e\u003c/td\u003e\n\u003ctd data-label=\"Función\"\u003eProporcionar instrucciones del proyecto que se aplican repetidamente\u003c/td\u003e\n\u003ctd data-label=\"Qué comprobar en el prompt\"\u003eReglas de programación, métodos de prueba, convenciones de directorios\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento\"\u003ePermisos de herramientas\u003c/td\u003e\n\u003ctd data-label=\"Función\"\u003eControlar el alcance permitido para modificar archivos y ejecutar comandos\u003c/td\u003e\n\u003ctd data-label=\"Qué comprobar en el prompt\"\u003eComandos que pueden ejecutarse y operaciones que requieren confirmación previa\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento\"\u003eConexiones externas\u003c/td\u003e\n\u003ctd data-label=\"Función\"\u003eAcceder a API, bases de datos, servidores MCP, etc.\u003c/td\u003e\n\u003ctd data-label=\"Qué comprobar en el prompt\"\u003eMétodo de autenticación, límites de confianza, política ante fallos\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Elemento\"\u003eProcedimiento de validación\u003c/td\u003e\n\u003ctd data-label=\"Función\"\u003eDeterminar si el resultado cumple los requisitos\u003c/td\u003e\n\u003ctd data-label=\"Qué comprobar en el prompt\"\u003ePruebas, análisis estático, elementos de comprobación manual\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eRedactar bien el prompt no resuelve por sí solo todos los problemas. Por ejemplo, Claude Code puede crear código para ejecuciones programadas, pero para que una tarea se ejecute incluso cuando el ordenador está apagado se necesita un servidor independiente, un servicio de CI o un programador del sistema operativo. Del mismo modo, el envío de correos electrónicos no puede completarse sin las credenciales de autenticación y los permisos de envío de un proveedor real.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#principio-1-explicar-primero-el-contexto-el-prop%C3%B3sito-y-las-restricciones\" class=\"anchor\" id=\"principio-1-explicar-primero-el-contexto-el-propósito-y-las-restricciones\"\u003e\u003c/a\u003ePrincipio 1. Explicar primero el contexto, el propósito y las restricciones\u003c/h2\u003e\n\u003cp\u003eSi solo se indica el nombre del resultado, como \u003ccode\u003eCrea un agente de recopilación de noticias\u003c/code\u003e, el agente tendrá que deducir quién es el usuario, cuáles son las fuentes de datos, cuál es el entorno de ejecución y cuáles son los criterios de éxito. Incluso para un mismo recopilador de noticias, las fuentes y los criterios de clasificación que necesitan un responsable de desarrollo de negocio, un inversor y un editor de un periódico universitario son distintos.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#solicitud-insuficiente\" class=\"anchor\" id=\"solicitud-insuficiente\"\u003e\u003c/a\u003eSolicitud insuficiente\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eCrea un agente de recopilación de noticias sobre IA.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003e\n\u003ca href=\"#solicitud-mejorada\" class=\"anchor\" id=\"solicitud-mejorada\"\u003e\u003c/a\u003eSolicitud mejorada\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eSoy responsable de desarrollo de negocio en una startup de TI.\n\u003c/span\u003e\u003cspan\u003eAntes de comenzar a trabajar cada día, quiero consultar rápidamente noticias\n\u003c/span\u003e\u003cspan\u003ede los sectores de la IA, la nube y las fintech que puedan influir\n\u003c/span\u003e\u003cspan\u003een las alianzas comerciales o en la estrategia de producto.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eObjetivos:\n\u003c/span\u003e\u003cspan\u003e- Recopilar candidatos de artículos recientes para cada palabra clave especificada.\n\u003c/span\u003e\u003cspan\u003e- Eliminar artículos con la misma URL y duplicados con títulos similares.\n\u003c/span\u003e\u003cspan\u003e- Clasificar el impacto como alto, medio o bajo según si es necesario\n\u003c/span\u003e\u003cspan\u003e  tomar una decisión sobre el producto o una alianza en un plazo de 3 meses.\n\u003c/span\u003e\u003cspan\u003e- Crear con los resultados un boletín por correo electrónico en coreano.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eRestricciones:\n\u003c/span\u003e\u003cspan\u003e- Mantener la versión de Python y el método de gestión de paquetes del repositorio actual.\n\u003c/span\u003e\u003cspan\u003e- Antes de añadir una biblioteca nueva, explicar su necesidad y las alternativas.\n\u003c/span\u003e\u003cspan\u003e- No registrar claves de API ni contraseñas de correo electrónico en el código o los registros.\n\u003c/span\u003e\u003cspan\u003e- Antes del envío real del correo, generar únicamente un archivo de vista previa.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003ePrimero, investiga la estructura del repositorio y el método de ejecución,\n\u003c/span\u003e\u003cspan\u003ey después propón un plan de implementación.\n\u003c/span\u003e\u003cspan\u003eNo deduzcas la información desconocida del entorno; organízala como una lista de preguntas.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eUna buena información de contexto contiene los cuatro elementos siguientes.\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e\n\u003cstrong\u003eUsuario y situación de uso:\u003c/strong\u003e quién lo utiliza, cuándo y para qué decisión\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eObjetivo:\u003c/strong\u003e cuál es el problema que debe resolverse, más allá de escribir código\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRestricciones:\u003c/strong\u003e qué tecnologías, reglas de seguridad y límites de coste o tiempo deben mantenerse\u003c/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eNo objetivos:\u003c/strong\u003e qué funciones quedan excluidas explícitamente de este cambio\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eEspecificar los no objetivos permite evitar que el alcance crezca indefinidamente. Por ejemplo, al establecer que \u003ccode\u003een esta fase se excluyen la ejecución programada y el envío real de correos electrónicos\u003c/code\u003e, se pueden validar primero de forma estable la lógica de recopilación y la de clasificación.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#principio-2-convertir-el-formato-de-salida-deseado-en-un-contrato-de-salida\" class=\"anchor\" id=\"principio-2-convertir-el-formato-de-salida-deseado-en-un-contrato-de-salida\"\u003e\u003c/a\u003ePrincipio 2. Convertir el formato de salida deseado en un contrato de salida\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eEnvíalo por correo con un formato atractivo\u003c/code\u003e puede interpretarse de forma distinta según la persona. En lugar de mostrar únicamente un ejemplo del formato de salida, también deben definirse los campos obligatorios, los valores permitidos, la gestión de datos ausentes y el orden de clasificación.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eAsunto del correo:\n\u003c/span\u003e\u003cspan\u003e[Boletín de noticias] {YYYY-MM-DD} Noticias clave de hoy\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eFormato de los artículos en el cuerpo:\n\u003c/span\u003e\u003cspan\u003e1. {Título}\n\u003c/span\u003e\u003cspan\u003eResumen: {1~2 frases en coreano}\n\u003c/span\u003e\u003cspan\u003eImpacto: {Alto|Medio|Bajo}\n\u003c/span\u003e\u003cspan\u003eMotivo de la decisión: {1 frase}\n\u003c/span\u003e\u003cspan\u003eFuente: {Nombre del medio}\n\u003c/span\u003e\u003cspan\u003eEnlace: {URL original}\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eReglas de ordenación:\n\u003c/span\u003e\u003cspan\u003e1. De mayor a menor impacto\n\u003c/span\u003e\u003cspan\u003e2. Si el impacto es igual, por fecha de publicación, empezando por la más reciente\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eEstadísticas al final:\n\u003c/span\u003e\u003cspan\u003e- Número total de artículos\n\u003c/span\u003e\u003cspan\u003e- Número de artículos por nivel de impacto\n\u003c/span\u003e\u003cspan\u003e- Palabras clave sin resultados de búsqueda\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eRestricciones:\n\u003c/span\u003e\u003cspan\u003e- No inventar en el resumen cifras ni afirmaciones ausentes del original.\n\u003c/span\u003e\u003cspan\u003e- Si no puede comprobarse la fecha, no estimarla y mostrar 'No se puede comprobar'.\n\u003c/span\u003e\u003cspan\u003e- Excluir del boletín final los elementos que no tengan enlace.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSi el resultado debe transmitirse entre programas, conviene solicitar un esquema JSON o una definición de tipos junto con un ejemplo legible para las personas.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003e{\n\u003c/span\u003e\u003cspan\u003e  \"\u003c/span\u003e\u003cspan\u003etitle\u003c/span\u003e\u003cspan\u003e\": \"\u003c/span\u003e\u003cspan\u003estring\u003c/span\u003e\u003cspan\u003e\",\n\u003c/span\u003e\u003cspan\u003e  \"\u003c/span\u003e\u003cspan\u003esummary\u003c/span\u003e\u003cspan\u003e\": \"\u003c/span\u003e\u003cspan\u003estring\u003c/span\u003e\u003cspan\u003e\",\n\u003c/span\u003e\u003cspan\u003e  \"\u003c/span\u003e\u003cspan\u003eimpact\u003c/span\u003e\u003cspan\u003e\": \"\u003c/span\u003e\u003cspan\u003ehigh | medium | low\u003c/span\u003e\u003cspan\u003e\",\n\u003c/span\u003e\u003cspan\u003e  \"\u003c/span\u003e\u003cspan\u003ereason\u003c/span\u003e\u003cspan\u003e\": \"\u003c/span\u003e\u003cspan\u003estring\u003c/span\u003e\u003cspan\u003e\",\n\u003c/span\u003e\u003cspan\u003e  \"\u003c/span\u003e\u003cspan\u003esource\u003c/span\u003e\u003cspan\u003e\": \"\u003c/span\u003e\u003cspan\u003estring\u003c/span\u003e\u003cspan\u003e\",\n\u003c/span\u003e\u003cspan\u003e  \"\u003c/span\u003e\u003cspan\u003eurl\u003c/span\u003e\u003cspan\u003e\": \"\u003c/span\u003e\u003cspan\u003eabsolute URL\u003c/span\u003e\u003cspan\u003e\",\n\u003c/span\u003e\u003cspan\u003e  \"\u003c/span\u003e\u003cspan\u003epublished_at\u003c/span\u003e\u003cspan\u003e\": \"\u003c/span\u003e\u003cspan\u003eISO 8601 string | null\u003c/span\u003e\u003cspan\u003e\"\n\u003c/span\u003e\u003cspan\u003e}\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eEl contrato de salida no solo incluye el formato, sino también el significado. Si no existen criterios para determinar qué significa \u003ccode\u003eimpact: high\u003c/code\u003e, la sintaxis JSON puede ser correcta, pero los resultados de la clasificación pueden ser incoherentes.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#principio-3-especificar-las-situaciones-excepcionales-y-las-pol%C3%ADticas-de-recuperaci%C3%B3n\" class=\"anchor\" id=\"principio-3-especificar-las-situaciones-excepcionales-y-las-políticas-de-recuperación\"\u003e\u003c/a\u003ePrincipio 3. Especificar las situaciones excepcionales y las políticas de recuperación\u003c/h2\u003e\n\u003cp\u003eLa calidad del código operativo se revela más en las rutas de fallo que en la ruta normal. El prompt debe incluir los fallos previsibles, si pueden reintentarse, las condiciones en las que debe informarse al usuario y la información que no debe registrarse.\u003c/p\u003e\n\u003cdiv class=\"overflow-x-auto\"\u003e\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eSituación excepcional\u003c/th\u003e\n\u003cth\u003eEjemplo de política recomendada\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Situación excepcional\"\u003eNo hay resultados de búsqueda\u003c/td\u003e\n\u003ctd data-label=\"Ejemplo de política recomendada\"\u003eOmitir esa palabra clave y registrarla en las estadísticas finales\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Situación excepcional\"\u003eError temporal de red\u003c/td\u003e\n\u003ctd data-label=\"Ejemplo de política recomendada\"\u003eReintentar un número limitado de veces a intervalos determinados\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Situación excepcional\"\u003eFallo de autenticación\u003c/td\u003e\n\u003ctd data-label=\"Ejemplo de política recomendada\"\u003eNo reintentar; detenerse de inmediato e indicar que se revise la configuración\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Situación excepcional\"\u003eLímite de uso de la API\u003c/td\u003e\n\u003ctd data-label=\"Ejemplo de política recomendada\"\u003eRespetar las instrucciones de espera de la respuesta y prohibir los reintentos infinitos\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Situación excepcional\"\u003eArtículos duplicados\u003c/td\u003e\n\u003ctd data-label=\"Ejemplo de política recomendada\"\u003eEliminarlos según la URL normalizada y la similitud del título\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Situación excepcional\"\u003eDatos con formato incorrecto\u003c/td\u003e\n\u003ctd data-label=\"Ejemplo de política recomendada\"\u003eConservar el original y aislar únicamente el elemento afectado\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Situación excepcional\"\u003eFallo en el envío del correo\u003c/td\u003e\n\u003ctd data-label=\"Ejemplo de política recomendada\"\u003eSi sigue fallando tras los reintentos, emitir una notificación alternativa o registrar el estado de fallo\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd data-label=\"Situación excepcional\"\u003eÉxito parcial\u003c/td\u003e\n\u003ctd data-label=\"Ejemplo de política recomendada\"\u003eInformar por separado de los resultados correctos y de los elementos fallidos\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\u003c/div\u003e\n\u003cp\u003eLa política puede solicitarse de forma concreta como se muestra a continuación.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eTrata los tiempos de espera agotados de la red como errores que pueden reintentarse.\n\u003c/span\u003e\u003cspan\u003eDeja un tiempo de espera entre los reintentos y, si se supera el número máximo,\n\u003c/span\u003e\u003cspan\u003emarca como fallida únicamente la fuente afectada.\n\u003c/span\u003e\u003cspan\u003eDetente de inmediato ante errores de autenticación y solicitudes incorrectas,\n\u003c/span\u003e\u003cspan\u003eya que repetirlas no resolverá el problema.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eEn todos los registros de errores, incluye la hora, la etapa del trabajo,\n\u003c/span\u003e\u003cspan\u003ela fuente y el tipo de error, pero no registres la clave de API,\n\u003c/span\u003e\u003cspan\u003ela dirección de correo electrónico completa, las cabeceras de autenticación\n\u003c/span\u003e\u003cspan\u003eni el texto íntegro de los artículos.\n\u003c/span\u003e\u003cspan\u003eDistingue mediante el estado de finalización del proceso entre éxito total,\n\u003c/span\u003e\u003cspan\u003eéxito parcial y fallo total.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eValores como \u003ccode\u003ereintentar tres veces\u003c/code\u003e o \u003ccode\u003eesperar 5 segundos\u003c/code\u003e no son respuestas universalmente correctas. Deben decidirse en el proyecto según los límites oficiales del servicio externo, la urgencia del trabajo y el riesgo de ejecuciones duplicadas. Las operaciones con efectos secundarios, como pagos o envíos de mensajes, pueden procesarse por duplicado si se reintentan automáticamente sin garantizar la idempotencia.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#principio-4-desarrollar-progresivamente-siguiendo-el-orden-de-planificaci%C3%B3n-implementaci%C3%B3n-m%C3%ADnima-y-validaci%C3%B3n\" class=\"anchor\" id=\"principio-4-desarrollar-progresivamente-siguiendo-el-orden-de-planificación-implementación-mínima-y-validación\"\u003e\u003c/a\u003ePrincipio 4. Desarrollar progresivamente siguiendo el orden de planificación, implementación mínima y validación\u003c/h2\u003e\n\u003cp\u003eSi se conectan a la vez varios servicios externos y la ejecución automática, resulta difícil aislar la causa de los errores. Dividir la implementación en pequeñas unidades de validación permite comprobar las entradas y salidas de cada etapa.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#orden-de-trabajo-recomendado\" class=\"anchor\" id=\"orden-de-trabajo-recomendado\"\u003e\u003c/a\u003eOrden de trabajo recomendado\u003c/h3\u003e\n\u003col\u003e\n\u003cli\u003eInvestigar la estructura del repositorio, los archivos relacionados y los comandos de ejecución.\u003c/li\u003e\n\u003cli\u003ePedir que se presente un plan y los archivos afectados antes de modificar el código.\u003c/li\u003e\n\u003cli\u003eImplementar la función de recopilación con una sola palabra clave y datos de muestra fijos.\u003c/li\u003e\n\u003cli\u003eProbar por separado la eliminación de duplicados y la clasificación del impacto.\u003c/li\u003e\n\u003cli\u003eValidar el correo electrónico mediante una vista previa local en lugar de enviarlo realmente.\u003c/li\u003e\n\u003cli\u003eUna vez superadas las pruebas, añadir la integración con el proveedor real y la ejecución programada.\u003c/li\u003e\n\u003c/ol\u003e\n\u003cp\u003eLa primera solicitud puede limitarse de la siguiente manera.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003ePor ahora, realiza únicamente la fase 1.\n\u003c/span\u003e\u003cspan\u003eInvestiga el repositorio e informa de lo siguiente:\n\u003c/span\u003e\u003cspan\u003e- Punto de entrada de la aplicación actual\n\u003c/span\u003e\u003cspan\u003e- Módulos y archivos de prueba relacionados\n\u003c/span\u003e\u003cspan\u003e- Comandos de gestión de paquetes y pruebas utilizados\n\u003c/span\u003e\u003cspan\u003e- Archivos que previsiblemente habrá que modificar\n\u003c/span\u003e\u003cspan\u003e- Preguntas que deben resolverse antes de la implementación\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eNo modifiques todavía ningún archivo.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eDespués de revisar el plan, se implementa reduciendo el alcance de los cambios.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eDel plan aprobado, implementa únicamente la recopilación de noticias\n\u003c/span\u003e\u003cspan\u003ey la eliminación de duplicados.\n\u003c/span\u003e\u003cspan\u003eNo añadas la clasificación, el envío de correos ni la ejecución programada.\n\u003c/span\u003e\u003cspan\u003eHaz que pueda ejecutarse con datos de prueba fijos\n\u003c/span\u003e\u003cspan\u003ey, al final, resume los archivos modificados y los resultados de las pruebas ejecutadas.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eSi en el entorno de Claude Code puede utilizarse un modo dedicado exclusivamente a la planificación, se puede aprovechar durante las fases de exploración y diseño. Sin embargo, que el plan parezca convincente no significa que la implementación sea correcta, por lo que deben realizarse después pruebas reales y una revisión del código.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#principio-5-comunicar-los-comentarios-mediante-casos-de-fallo-y-cifras\" class=\"anchor\" id=\"principio-5-comunicar-los-comentarios-mediante-casos-de-fallo-y-cifras\"\u003e\u003c/a\u003ePrincipio 5. Comunicar los comentarios mediante casos de fallo y cifras\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003eEl resultado no es bueno\u003c/code\u003e, \u003ccode\u003eel rendimiento es lento\u003c/code\u003e o \u003ccode\u003ela clasificación es incorrecta\u003c/code\u003e no permiten decidir fácilmente la dirección de la corrección. Es necesario comunicar el estado actual, el estado esperado, la entrada con la que se reproduce el problema y el intervalo de cambios aceptable.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#solicitud-para-modificar-la-longitud\" class=\"anchor\" id=\"solicitud-para-modificar-la-longitud\"\u003e\u003c/a\u003eSolicitud para modificar la longitud\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eActualmente, el cuerpo del correo se genera con unos 3,000 caracteres.\n\u003c/span\u003e\u003cspan\u003eQuiero reducirlo a como máximo 500 caracteres para poder leerlo rápidamente\n\u003c/span\u003e\u003cspan\u003een un dispositivo móvil.\n\u003c/span\u003e\u003cspan\u003eLimita el resumen de cada artículo a 1~2 frases y conserva el motivo de la decisión.\n\u003c/span\u003e\u003cspan\u003eVincula la URL original al título y elimina la línea de enlace independiente.\n\u003c/span\u003e\u003cspan\u003eMantén las estadísticas al final.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003e\n\u003ca href=\"#solicitud-para-modificar-los-criterios-de-clasificaci%C3%B3n\" class=\"anchor\" id=\"solicitud-para-modificar-los-criterios-de-clasificación\"\u003e\u003c/a\u003eSolicitud para modificar los criterios de clasificación\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eDe los 10 elementos de los datos de prueba, 8 se clasificaron como 'Alto'.\n\u003c/span\u003e\u003cspan\u003eClasifica como 'Bajo' las perspectivas tecnológicas a largo plazo\n\u003c/span\u003e\u003cspan\u003ey las presentaciones generales de productos.\n\u003c/span\u003e\u003cspan\u003eClasifica como 'Alto' únicamente cuando existan pruebas concretas de que,\n\u003c/span\u003e\u003cspan\u003een un plazo de 3 meses, será necesario cambiar decisiones sobre precios,\n\u003c/span\u003e\u003cspan\u003ehoja de ruta del producto, respuesta regulatoria o alianzas.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eEn los casos adjuntos, las respuestas correctas son Alto para A y B, y Bajo para C.\n\u003c/span\u003e\u003cspan\u003eModifica las reglas de clasificación y añade estos casos como pruebas de regresión.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003e\n\u003ca href=\"#solicitud-para-modificar-el-rendimiento\" class=\"anchor\" id=\"solicitud-para-modificar-el-rendimiento\"\u003e\u003c/a\u003eSolicitud para modificar el rendimiento\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eEl tiempo medio de ejecución con la misma entrada de muestra es actualmente\n\u003c/span\u003e\u003cspan\u003ede unos 45 segundos.\n\u003c/span\u003e\u003cspan\u003eEl objetivo es que sea de como máximo 30 segundos en el mismo entorno.\n\u003c/span\u003e\u003cspan\u003ePrimero, mide el tiempo de cada etapa y muestra el cuello de botella.\n\u003c/span\u003e\u003cspan\u003eNo elimines la precisión de los resultados ni la gestión de errores;\n\u003c/span\u003e\u003cspan\u003ecompara el efecto y el riesgo de las alternativas de mejora\n\u003c/span\u003e\u003cspan\u003ey aplica primero el cambio más pequeño.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eLas cifras de rendimiento solo pueden compararse cuando el entorno de medición y los datos de entrada son los mismos. No debe concluirse que hubo una mejora basándose únicamente en el resultado de una ejecución; también deben fijarse el método de medición, la muestra y el estado de la caché.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#principio-6-utilizar-plantillas-de-prompt-seg%C3%BAn-el-tipo-de-trabajo\" class=\"anchor\" id=\"principio-6-utilizar-plantillas-de-prompt-según-el-tipo-de-trabajo\"\u003e\u003c/a\u003ePrincipio 6. Utilizar plantillas de prompt según el tipo de trabajo\u003c/h2\u003e\n\u003ch3\u003e\n\u003ca href=\"#plantilla-para-crear-un-agente-nuevo\" class=\"anchor\" id=\"plantilla-para-crear-un-agente-nuevo\"\u003e\u003c/a\u003ePlantilla para crear un agente nuevo\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003e[Función y situación]\n\u003c/span\u003e\u003cspan\u003eSoy {profesión/función} y quiero resolver {situación problemática}.\n\u003c/span\u003e\u003cspan\u003eEste resultado será utilizado por {usuario o sistema posterior}.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e[Objetivo]\n\u003c/span\u003e\u003cspan\u003e{Resultado que debe alcanzarse y criterios de éxito}\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e[Desencadenante de ejecución]\n\u003c/span\u003e\u003cspan\u003e{Ejecución manual, evento, hora programada, etc.}\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e[Entrada]\n\u003c/span\u003e\u003cspan\u003e- Fuente de datos: {archivo/API/base de datos}\n\u003c/span\u003e\u003cspan\u003e- Campos obligatorios: {lista de campos}\n\u003c/span\u003e\u003cspan\u003e- Método de autenticación: {variable de entorno o método de gestión de secretos}\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e[Lógica de procesamiento]\n\u003c/span\u003e\u003cspan\u003e1. {Etapa 1}\n\u003c/span\u003e\u003cspan\u003e2. {Etapa 2}\n\u003c/span\u003e\u003cspan\u003e3. {Etapa 3}\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e[Contrato de salida]\n\u003c/span\u003e\u003cspan\u003e{Formato de archivo, esquema, plantilla, reglas de ordenación y datos ausentes}\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e[Gestión de excepciones]\n\u003c/span\u003e\u003cspan\u003e{Políticas para resultados vacíos, tiempos de espera agotados,\n\u003c/span\u003e\u003cspan\u003eerrores de autenticación y fallos parciales}\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e[Restricciones y no objetivos]\n\u003c/span\u003e\u003cspan\u003e- Tecnologías que deben mantenerse: {elemento}\n\u003c/span\u003e\u003cspan\u003e- Prohibiciones: {elemento}\n\u003c/span\u003e\u003cspan\u003e- Funciones excluidas de este trabajo: {elemento}\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003e[Validación]\n\u003c/span\u003e\u003cspan\u003e- Pruebas que deben superarse: {elemento}\n\u003c/span\u003e\u003cspan\u003e- Contenido que debe incluir el informe de finalización:\n\u003c/span\u003e\u003cspan\u003e  archivos modificados, comandos ejecutados, resultados de las pruebas y riesgos restantes\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003ePrimero, investiga el repositorio y presenta un plan de implementación.\n\u003c/span\u003e\u003cspan\u003eNo deduzcas la información desconocida; haz preguntas.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003e\n\u003ca href=\"#plantilla-para-a%C3%B1adir-una-funci%C3%B3n-existente\" class=\"anchor\" id=\"plantilla-para-añadir-una-función-existente\"\u003e\u003c/a\u003ePlantilla para añadir una función existente\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eAñade {nueva función} al {nombre del agente o módulo} existente.\n\u003c/span\u003e\u003cspan\u003eLa función nueva debe ejecutarse después de {etapa existente A}\n\u003c/span\u003e\u003cspan\u003ey antes de {etapa existente B}.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eLógica detallada:\n\u003c/span\u003e\u003cspan\u003e- {Condiciones y reglas de procesamiento}\n\u003c/span\u003e\u003cspan\u003e- {Formato de entrada y salida}\n\u003c/span\u003e\u003cspan\u003e- {Comportamiento en caso de fallo}\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eCondiciones que deben mantenerse:\n\u003c/span\u003e\u003cspan\u003e- No modificar la interfaz pública ni el formato de configuración existentes.\n\u003c/span\u003e\u003cspan\u003e- Mantener todas las pruebas existentes.\n\u003c/span\u003e\u003cspan\u003e- No modificar archivos que no estén relacionados.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003ePrimero, explica el alcance del impacto y el riesgo de regresión.\n\u003c/span\u003e\u003cspan\u003eDespués, añade pruebas que conserven el comportamiento existente e implementa la función.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003e\n\u003ca href=\"#plantilla-para-corregir-un-error\" class=\"anchor\" id=\"plantilla-para-corregir-un-error\"\u003e\u003c/a\u003ePlantilla para corregir un error\u003c/h3\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eReproduce el siguiente error y corrige su causa raíz.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eMensaje de error completo:\n\u003c/span\u003e\u003cspan\u003e{Mensaje de error y seguimiento de pila del que se han eliminado\n\u003c/span\u003e\u003cspan\u003elos datos secretos y la información personal}\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eCondiciones en las que se produce:\n\u003c/span\u003e\u003cspan\u003e- Comando de ejecución: {comando}\n\u003c/span\u003e\u003cspan\u003e- Entrada: {entrada mínima de reproducción}\n\u003c/span\u003e\u003cspan\u003e- Entorno: {sistema operativo, runtime, versiones relacionadas}\n\u003c/span\u003e\u003cspan\u003e- Momento en que se produce: {en qué etapa}\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eComportamiento esperado:\n\u003c/span\u003e\u003cspan\u003e{Resultado que debería aparecer si funcionara correctamente}\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eComportamiento real:\n\u003c/span\u003e\u003cspan\u003e{Resultado observado actualmente}\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eSolicitud:\n\u003c/span\u003e\u003cspan\u003e1. Primero, reproduce el error.\n\u003c/span\u003e\u003cspan\u003e2. Explica la causa basándote en pruebas.\n\u003c/span\u003e\u003cspan\u003e3. Corrígelo con el menor alcance posible.\n\u003c/span\u003e\u003cspan\u003e4. Añade una prueba de regresión que evite el mismo error.\n\u003c/span\u003e\u003cspan\u003e5. Informa de las pruebas ejecutadas y de los riesgos restantes.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eAl pegar mensajes de error, deben eliminarse los datos sensibles, como claves de API, tokens de sesión, datos de clientes y direcciones internas.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#ejemplo-completo-solicitud-de-un-agente-de-boletines-de-noticias\" class=\"anchor\" id=\"ejemplo-completo-solicitud-de-un-agente-de-boletines-de-noticias\"\u003e\u003c/a\u003eEjemplo completo: solicitud de un agente de boletines de noticias\u003c/h2\u003e\n\u003cp\u003eEl siguiente ejemplo combina los seis principios en una sola solicitud.\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\u003cspan\u003eSoy responsable de desarrollo de negocio en una startup de SaaS.\n\u003c/span\u003e\u003cspan\u003eQuiero consultar cada día únicamente las noticias sobre cambios en los mercados\n\u003c/span\u003e\u003cspan\u003ede la IA, la nube y las fintech que puedan modificar decisiones\n\u003c/span\u003e\u003cspan\u003esobre productos o alianzas en un plazo de 3 meses.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eInvestiga el repositorio actual y diseña una herramienta de boletines de noticias.\n\u003c/span\u003e\u003cspan\u003eEn la primera fase, implementa únicamente la función de leer un JSON de muestra,\n\u003c/span\u003e\u003cspan\u003eeliminar duplicados, clasificar el impacto y crear un archivo HTML de vista previa.\n\u003c/span\u003e\u003cspan\u003eLa búsqueda web, el envío real de correos electrónicos y la ejecución programada\n\u003c/span\u003e\u003cspan\u003equedan excluidos de esta fase.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eCampos de entrada:\n\u003c/span\u003e\u003cspan\u003e- title, url, source, published_at, body\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eReglas de procesamiento:\n\u003c/span\u003e\u003cspan\u003e- Si las URL normalizadas son iguales, se consideran duplicados.\n\u003c/span\u003e\u003cspan\u003e- Aunque las URL sean distintas, si los títulos son similares,\n\u003c/span\u003e\u003cspan\u003e  se marcan como posibles duplicados.\n\u003c/span\u003e\u003cspan\u003e- Clasifica como impacto 'Alto' únicamente los artículos que requieran\n\u003c/span\u003e\u003cspan\u003e  un cambio concreto en un plazo de 3 meses respecto a precios,\n\u003c/span\u003e\u003cspan\u003e  respuesta regulatoria, hoja de ruta del producto o decisiones sobre alianzas.\n\u003c/span\u003e\u003cspan\u003e- Si no hay pruebas suficientes, no supongas una calificación alta.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eSalida:\n\u003c/span\u003e\u003cspan\u003e- Mostrar el título, un resumen de 1~2 frases, el impacto,\n\u003c/span\u003e\u003cspan\u003e  el motivo de la decisión, la fuente y la URL.\n\u003c/span\u003e\u003cspan\u003e- Ordenar de mayor a menor impacto.\n\u003c/span\u003e\u003cspan\u003e- Mostrar al final el número total, el número de duplicados eliminados\n\u003c/span\u003e\u003cspan\u003e  y el número de elementos por nivel.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eGestión de excepciones:\n\u003c/span\u003e\u003cspan\u003e- No excluir los elementos sin campos obligatorios;\n\u003c/span\u003e\u003cspan\u003e  registrarlos en una lista de errores independiente.\n\u003c/span\u003e\u003cspan\u003e- No estimar las fechas incorrectas y mantenerlas como null.\n\u003c/span\u003e\u003cspan\u003e- No dejar en los registros el cuerpo íntegro de los artículos\n\u003c/span\u003e\u003cspan\u003e  ni la información de autenticación.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eValidación:\n\u003c/span\u003e\u003cspan\u003e- Probar entradas normales, entradas vacías, URL duplicadas,\n\u003c/span\u003e\u003cspan\u003e  fechas incorrectas y ausencia de campos obligatorios.\n\u003c/span\u003e\u003cspan\u003e- Si existen pruebas anteriores, todas deben superarse.\n\u003c/span\u003e\u003cspan\u003e\n\u003c/span\u003e\u003cspan\u003eOrden de trabajo:\n\u003c/span\u003e\u003cspan\u003e1. Investigar la estructura del repositorio y los archivos relacionados.\n\u003c/span\u003e\u003cspan\u003e2. Presentar los archivos que se modificarán y el plan de pruebas.\n\u003c/span\u003e\u003cspan\u003e3. No modificar el código antes de que yo revise el plan.\n\u003c/span\u003e\u003cspan\u003e4. Tras la aprobación, implementar la función mínima e informar\n\u003c/span\u003e\u003cspan\u003e   de los resultados de las pruebas.\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eEsta solicitud no exige desplegar de una sola vez todas las funciones en el entorno operativo. Su alcance es limitado y define conjuntamente el significado de la salida, la gestión de fallos y los elementos de prueba, lo que facilita evaluar el resultado.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#criterios-de-calidad-f%C3%A1ciles-de-pasar-por-alto-si-solo-se-usa-el-prompt\" class=\"anchor\" id=\"criterios-de-calidad-fáciles-de-pasar-por-alto-si-solo-se-usa-el-prompt\"\u003e\u003c/a\u003eCriterios de calidad fáciles de pasar por alto si solo se usa el prompt\u003c/h2\u003e\n\u003cp\u003eMuchas guías de programación por vibraciones se centran en redactar instrucciones más detalladas. Sin embargo, los elementos adicionales que determinan la calidad real son \u003cstrong\u003ela capacidad de validación, el control de cambios, la observabilidad y los límites de seguridad\u003c/strong\u003e.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#1-convertir-los-criterios-de-aceptaci%C3%B3n-en-pruebas\" class=\"anchor\" id=\"1-convertir-los-criterios-de-aceptación-en-pruebas\"\u003e\u003c/a\u003e1. Convertir los criterios de aceptación en pruebas\u003c/h3\u003e\n\u003cp\u003eEn lugar de \u003ccode\u003eHaz que funcione bien\u003c/code\u003e, deben proporcionarse pares de entradas y salidas esperadas. Los casos de clasificación importantes deben conservarse como pruebas de regresión para comprobar que los resultados se mantengan también en cambios posteriores.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#2-no-utilizar-la-autoevaluaci%C3%B3n-del-agente-como-prueba-definitiva\" class=\"anchor\" id=\"2-no-utilizar-la-autoevaluación-del-agente-como-prueba-definitiva\"\u003e\u003c/a\u003e2. No utilizar la autoevaluación del agente como prueba definitiva\u003c/h3\u003e\n\u003cp\u003eQue el agente diga \u003ccode\u003eHe terminado\u003c/code\u003e no es lo mismo que haber superado las pruebas. Se le debe pedir que informe de los comandos ejecutados, los resultados de las pruebas, los archivos modificados y los riesgos no resueltos, y una persona debe revisar el diff.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#3-minimizar-los-permisos-y-la-informaci%C3%B3n-secreta\" class=\"anchor\" id=\"3-minimizar-los-permisos-y-la-información-secreta\"\u003e\u003c/a\u003e3. Minimizar los permisos y la información secreta\u003c/h3\u003e\n\u003cp\u003eNo deben proporcionarse de una sola vez directorios innecesarios, bases de datos de producción ni credenciales de despliegue. Las claves de API no deben introducirse directamente en el prompt o el repositorio; deben utilizarse variables de entorno o un sistema aprobado de gestión de secretos. No deben concederse permisos de acceso a repositorios sensibles a servidores MCP o scripts de origen desconocido.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#4-exigir-c%C3%B3digo-observable\" class=\"anchor\" id=\"4-exigir-código-observable\"\u003e\u003c/a\u003e4. Exigir código observable\u003c/h3\u003e\n\u003cp\u003eEn los trabajos automatizados debe conservarse la información necesaria para localizar la causa de los fallos, como el estado de cada etapa, los errores estructurados, el tiempo de ejecución y el número de elementos procesados. Por el contrario, la información de autenticación y los datos personales deben eliminarse de los registros.\u003c/p\u003e\n\u003ch3\u003e\n\u003ca href=\"#5-hacer-que-los-cambios-puedan-revertirse\" class=\"anchor\" id=\"5-hacer-que-los-cambios-puedan-revertirse\"\u003e\u003c/a\u003e5. Hacer que los cambios puedan revertirse\u003c/h3\u003e\n\u003cp\u003eNo deben mezclarse refactorizaciones no relacionadas y funciones adicionales en un mismo cambio. Revisar el diff en unidades pequeñas y registrarlo en el control de versiones facilita aislar y revertir los cambios incorrectos.\u003c/p\u003e\n\u003ch2\u003e\n\u003ca href=\"#consejos-para-gestionar-proyectos-con-claude-code\" class=\"anchor\" id=\"consejos-para-gestionar-proyectos-con-claude-code\"\u003e\u003c/a\u003eConsejos para gestionar proyectos con Claude Code\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRegistrar en \u003ccode\u003eCLAUDE.md\u003c/code\u003e las reglas recurrentes del proyecto de forma breve y concreta.\u003c/li\u003e\n\u003cli\u003eProporcionar los comandos de compilación, pruebas y lint en una forma que pueda ejecutarse realmente.\u003c/li\u003e\n\u003cli\u003eNo incluir en \u003ccode\u003eCLAUDE.md\u003c/code\u003e información secreta, registros de errores puntuales ni documentos de referencia extensos.\u003c/li\u003e\n\u003cli\u003eAntes de realizar cambios a gran escala, pedir que se investiguen los archivos relacionados y sus dependencias.\u003c/li\u003e\n\u003cli\u003eAl añadir un paquete nuevo, revisar su necesidad, licencia y riesgos de mantenimiento.\u003c/li\u003e\n\u003cli\u003eNo aprobar automáticamente comandos peligrosos de eliminación, despliegue o modificación de datos.\u003c/li\u003e\n\u003cli\u003eAntes de conectar una API externa o MCP, comprobar adónde se transmiten los datos.\u003c/li\u003e\n\u003cli\u003eAl finalizar, pedir un resumen de los archivos modificados, los comandos ejecutados, los resultados de las pruebas y las limitaciones restantes.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\n\u003ca href=\"#lista-de-comprobaci%C3%B3n-previa-al-env%C3%ADo\" class=\"anchor\" id=\"lista-de-comprobación-previa-al-envío\"\u003e\u003c/a\u003eLista de comprobación previa al envío\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e ¿Se han explicado el usuario y la situación de uso?\u003c/li\u003e\n\u003cli\u003e ¿Se han separado los objetivos y los no objetivos?\u003c/li\u003e\n\u003cli\u003e ¿Se han especificado las tecnologías existentes y el alcance que no debe modificarse?\u003c/li\u003e\n\u003cli\u003e ¿Se han definido los datos de entrada y el formato de salida?\u003c/li\u003e\n\u003cli\u003e ¿Se ha explicado el significado de los valores de clasificación y de estado?\u003c/li\u003e\n\u003cli\u003e ¿Existen políticas para resultados vacíos, fallos de autenticación, tiempos de espera agotados y fallos parciales?\u003c/li\u003e\n\u003cli\u003e ¿Se han separado la planificación y la implementación por etapas?\u003c/li\u003e\n\u003cli\u003e ¿Existen pruebas para casos normales, límite y de fallo?\u003c/li\u003e\n\u003cli\u003e ¿Se excluyen la información secreta y los datos personales del prompt y los registros?\u003c/li\u003e\n\u003cli\u003e ¿Se han solicitado un diff para revisión humana y pruebas de ejecución?\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eLa clave de un buen prompt para Claude Code no consiste en escribir instrucciones largas. Consiste en reducir lo que el agente debe deducir y hacer posible que un tercero también pueda reproducir y determinar si el resultado es correcto.\u003c/p\u003e\n","tags":["Ingeniería de prompts","Ingeniería de harness","Claude Code","Programación con IA","Agente de programación"],"faqs":[{"question":"¿Cuanto más largo sea el prompt de Claude Code, mejor?","answer":"Más que la longitud, lo importante es que la información necesaria para la tarea esté incluida de forma estructurada. Conviene especificar claramente el contexto, el objetivo, las restricciones, el contrato de salida, el manejo de excepciones y los criterios de finalización, pero eliminar las explicaciones irrelevantes y las instrucciones redundantes."},{"question":"¿No se le puede pedir que cree el programa completo desde el principio?","answer":"Es posible si se trata de una herramienta pequeña e independiente, pero es más seguro desarrollar por etapas las tareas que combinan una API externa, una base de datos, correo electrónico y ejecución programada. Si primero se revisan el repositorio y el plan, y después se amplía en el orden de funcionalidad mínima, pruebas e integración externa, resulta más fácil aislar las causas de los fallos."},{"question":"¿Se pueden omitir las pruebas si se utiliza Plan Mode?","answer":"No. El modo de planificación es útil para revisar la estructura y el enfoque antes de realizar cambios, pero no demuestra la corrección del código real. Después de la implementación, deben realizarse por separado pruebas automatizadas, análisis estático, revisión de los cambios y las comprobaciones manuales necesarias."},{"question":"¿Qué se debe escribir en CLAUDE.md?","answer":"Es apropiado incluir instrucciones que se repiten en distintas tareas, como la estructura del proyecto, las normas de codificación, los comandos de compilación y prueba, y las áreas que no deben modificarse. Es mejor no incluir claves de API, contraseñas, información personal, descripciones de tareas puntuales ni materiales de referencia excesivamente extensos."},{"question":"¿Qué información se debe proporcionar al solicitar la corrección de un error?","answer":"Se deben proporcionar conjuntamente el mensaje de error y el seguimiento de la pila sin información sensible, el comando de ejecución, los datos mínimos para reproducir el problema, el entorno pertinente, el comportamiento real y el comportamiento esperado. También conviene solicitar una explicación de la causa, una corrección de alcance mínimo, pruebas de regresión y los resultados de la ejecución."},{"question":"¿Se puede proporcionar una clave de API a Claude Code mediante un prompt?","answer":"Por principio, no se deben escribir claves de API reales directamente en el prompt ni en el código fuente. Se deben utilizar variables de entorno aprobadas o sistemas de gestión de secretos, y evitar que las credenciales queden expuestas también en los registros y los resultados de las pruebas."},{"question":"¿Es obligatorio indicar en el prompt el número de reintentos y el tiempo de espera?","answer":"En la automatización operativa es importante distinguir entre los errores que permiten reintentos y los que requieren una interrupción inmediata. Sin embargo, el número concreto de reintentos y el tiempo de espera deben decidirse tras comprobar las limitaciones del servicio externo, la urgencia de la tarea y el riesgo de procesamiento duplicado; no se deben reintentar incondicionalmente todos los errores."},{"question":"¿Cómo se determina si el código generado está completo?","answer":"Se determina en función de los criterios de aceptación definidos previamente. Se debe comprobar si se han superado las pruebas de las funciones obligatorias y los casos excepcionales, los comandos ejecutados, los archivos modificados y el cumplimiento de las restricciones de rendimiento o seguridad, y una persona debe revisar los cambios del código."}],"sources":[{"url":"https://docs.anthropic.com/en/docs/claude-code/overview","title":"Descripción general de Claude Code","type":"source"},{"url":"https://www.anthropic.com/engineering/claude-code-best-practices","title":"Claude Code: mejores prácticas para la programación agéntica","type":"source"},{"url":"https://github.com/anthropics/claude-code","title":"Repositorio de GitHub de Anthropic Claude Code","type":"source"}],"images":[{"id":845,"url":"https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTExNTQsInB1ciI6ImJsb2JfaWQifX0=--9f2d2e2c8a61fc294a6019e4807ece297f36e85a/ai-4caeb237.webp","is_representative":true,"generation_method":"ai_photo","license":"ai_generated","mime_type":"image/webp","translations":{"ko":{"alt":"코드와 작업 흐름이 표시된 대형 모니터 앞에서 작업하는 개발자","caption":"개발자가 여러 화면의 코드와 문서를 검토하며 작업하고 있다.","description":null},"en":{"alt":"Developer working at a desk with code and a workflow diagram on a large monitor","caption":"A developer reviews code and documentation across multiple screens.","description":null},"ja":{"alt":"コードとワークフロー図を映した大型モニターの前で作業する開発者","caption":"開発者が複数の画面でコードとドキュメントを確認している。","description":null},"es":{"alt":"Desarrollador trabajando frente a un monitor grande con código y un diagrama de flujo","caption":"Un desarrollador revisa código y documentación en varias pantallas.","description":null},"id":{"alt":"Pengembang bekerja di depan monitor besar yang menampilkan kode dan diagram alur kerja","caption":"Seorang pengembang meninjau kode dan dokumentasi di beberapa layar.","description":null},"pt":{"alt":"Desenvolvedor trabalhando diante de um monitor grande com código e diagrama de fluxo","caption":"Um desenvolvedor analisa código e documentação em várias telas.","description":null},"zh-hant":{"alt":"開發人員在顯示程式碼與工作流程圖的大型螢幕前工作","caption":"開發人員正透過多個螢幕檢視程式碼與文件。","description":null},"de":{"alt":"Entwickler vor einem großen Monitor mit Code und einem Ablaufdiagramm","caption":"Ein Entwickler prüft Code und Dokumentation auf mehreren Bildschirmen.","description":null}}},{"id":846,"url":"https://injoys.com/rails/active_storage/blobs/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTExNjAsInB1ciI6ImJsb2JfaWQifX0=--285d7ecdc8209e07e0fc4eb68085cd8a304b9a81/ai-062b34c5.webp","is_representative":false,"generation_method":"ai_image","license":"ai_generated","mime_type":"image/webp","translations":{"ko":{"alt":"코드 편집기가 열린 노트북과 요구사항, 표, 오류, 버전 관리, 성과 차트를 연결한 개발 워크플로","caption":"체계적인 프롬프트가 코딩 결과물의 검증과 완성도를 높이는 과정을 보여준다.","description":null},"en":{"alt":"Laptop code editor connected to requirements, tables, errors, version control, and performance charts","caption":"The workflow shows how structured prompts support validation and more polished coding results.","description":null},"ja":{"alt":"要件、表、エラー、バージョン管理、成果グラフにつながるコードエディター搭載ノートPC","caption":"構造化されたプロンプトがコードの検証と完成度向上を支える流れを示している。","description":null},"es":{"alt":"Portátil con editor de código conectado a requisitos, tablas, errores, versiones y gráficos de rendimiento","caption":"El flujo muestra cómo los prompts estructurados ayudan a validar y perfeccionar el código.","description":null},"id":{"alt":"Laptop dengan editor kode yang terhubung ke spesifikasi, tabel, galat, kontrol versi, dan grafik kinerja","caption":"Alur ini menunjukkan bagaimana prompt terstruktur membantu validasi dan penyempurnaan hasil kode.","description":null},"pt":{"alt":"Notebook com editor de código ligado a requisitos, tabelas, erros, controle de versão e gráficos de desempenho","caption":"O fluxo mostra como prompts estruturados ajudam a validar e aprimorar os resultados do código.","description":null},"zh-hant":{"alt":"筆電程式碼編輯器連結需求、表格、錯誤、版本控制與成效圖表","caption":"此流程呈現結構化提示如何協助驗證程式碼並提升成果完成度。","description":null},"de":{"alt":"Laptop mit Code-Editor, verbunden mit Anforderungen, Tabellen, Fehlern, Versionskontrolle und Leistungsdiagrammen","caption":"Der Ablauf zeigt, wie strukturierte Prompts die Prüfung und Verfeinerung von Code unterstützen.","description":null}}}],"published_at":"2026-08-23T02:30:01+09:00","updated_at":"2026-08-23T02:30:01+09:00","license":"cc_by","translation_status":"reviewed","available_locales":["ko","en","ja","es"],"data_locales":["ko","en","ja","es","id","pt","zh-hant","de"],"url":"https://injoys.com/es/articles/claude-code-prompt-six-principles-and-templates"}