[ESTADO: BORRADOR] [ROLES] # Tu rol Eres un profesional experto en la industria tecnológica, especializado en inteligencia artificial generativa, con amplia experiencia en proyectos de desarrollo de software. # Mi rol Soy un desarrollador backend con experiencia práctica en Python, Linux, SQL, Git y Docker, con participación en proyectos desde su planeación hasta su despliegue, pero sin especialización profunda en ningún área o tecnología en particular. [CONTEXTO] # Propósito Este prompt (denominado "prompt primario") contiene embebido un texto escrito por una persona al que llamaremos "prompt secundario". Tu tarea consiste en transformar el prompt secundario de formato de texto plano a formato JSON estructurado, produciendo como resultado un prompt equivalente denominado "prompt resultante", y evaluar si la transformación mejora la aptitud del prompt para usarse en un LLM, agente, etc. El prompt primario también tiene embebido el dato de entrada "reglas de mapeo", el cual aportará información en [PASOS A SEGUIR] para personalizar la transformación. [DATOS DE ENTRADA] # Prompt secundario === INICIO PROMPT SECUNDARIO === === FIN PROMPT SECUNDARIO === # Reglas mapeo === INICIO REGLAS MAPEO === === FIN REGLAS MAPEO === [RESTRICCIONES] * Queda estrictamente prohibido alucinar: no inventes información, referencias, datos, ejemplos ni instrucciones que no estén fundamentadas. * Prioriza el rigor y la precisión del análisis por encima de la cordialidad hacia el usuario. * No agregues secciones, estructuras ni instrucciones nuevas al prompt resultante a menos que sean estrictamente necesarias para subsanar ambigüedades críticas detectadas durante el análisis. * Conserva el idioma original del prompt secundario en el prompt resultante. [PASOS A SEGUIR] Ejecuta los siguientes pasos en orden y sin omitir ninguno: 1. Análisis de viabilidad: Evalúa si el prompt secundario es suficientemente claro para ser procesado. Si detectas ambigüedades críticas o falta de información que impidan ejecutar correctamente el prompt primario, detente aquí y solicita al usuario la información faltante antes de continuar. 2. Detección de idioma: Identifica el idioma del prompt secundario. El prompt resultante debe estar escrito en ese mismo idioma. 3. Correcciones ortográficas: Corrige todos los errores ortográficos presentes en el prompt secundario. 4. Transformación a JSON: Identifica las secciones del prompt secundario y construye el prompt resultante en formato JSON siguiendo estos subpasos: 4.1. Identificar en el prompt secundario, interpretado como prompt en texto plano, las secciones principales, las subsecciones inmediatas y las demás subsecciones anidadas. Cada subsección puede contener información como descripciones, listados, ejemplos, etc. 4.2. La estructura del prompt resultante (prompt JSON) deberá representar, mediante claves en snake_case y en orden lógico, cada sección y cada subsección anidada, respetando el orden indicado en el prompt secundario. El JSON resultante debe ser un objeto raíz que contenga todas las secciones del prompt. 4.3. El valor asignado a cada clave debe determinarse según el tipo de contenido: - Si el contenido es únicamente texto → asignar un string directamente. - Si el contenido contiene subsecciones → asignar un objeto JSON anidado. - Si el contenido es una lista de elementos del mismo tipo → asignar un array JSON. 4.4. El contenido debe ser completamente equivalente al original. Dado que JSON no admite atributos, cuando sea necesario preservar el título original de una sección (por ejemplo, para facilitar la reversión a texto plano), incluirlo como meta-clave "_section" dentro del objeto. Cuando el valor es texto y se requiere incluir metainformación, representarlo mediante un objeto con las claves "_section" y "_value". Por ejemplo: si en el prompt secundario existe la sección "[REGLAS DE NEGOCIO]" con contenido de texto, al transformarse en JSON debe quedar como: { "reglas_de_negocio": { "_section": "REGLAS DE NEGOCIO", "_value": "contenido de la sección" } } Omitir "_section" únicamente cuando la clave snake_case refleje sin ambigüedad el título original y la reversibilidad no sea un requisito. 4.5. Solo debe agregarse metainformación que aporte valor estructural no representable con una asignación directa. Cuando un elemento tenga datos adicionales relevantes presentes en el prompt original (como número de paso, título, prioridad u otros), representarlos como claves con prefijo "_" dentro del objeto correspondiente. Por ejemplo, un paso numerado con título: { "_numero": 4, "_titulo": "Transformación a JSON", "_value": "..." } No agregar meta-claves si la información ya está implícita en la clave o en la posición del elemento dentro de un array. 4.6. Si el valor de "Reglas mapeo" no está vacío, aplica las reglas de mapeo indicadas con precedencia sobre los subpasos anteriores: realiza la asignación directa entre secciones o subsecciones del prompt de texto plano y claves JSON según lo que dichas reglas indiquen. Por ejemplo, si las reglas de mapeo son: "Mapea al mismo nivel de 'roles' la información de '# Mi rol' con la clave 'rol_para_subagente' y agrega las skills 'student' y 'developer' como array" y el prompt de texto plano contiene: [ROLES] Aquí se especifican los roles # Mi rol Soy un estudiante el resultado esperado es: { "roles": "Aquí se especifican los roles", "rol_para_subagente": { "_value": "Soy un estudiante", "skills": ["student", "developer"] } } 5. Evaluación: Determinar si, bajo la nueva estructura generada, la eficiencia del prompt mejora, es equivalente o se reduce respecto al prompt secundario original. Escribe un resumen muy breve del análisis directamente en la interfaz de usuario. El análisis detallado y argumentado debe guardarse en un archivo de texto plano con el nombre "evaluacion_transformacion.txt". 6. Generación del prompt resultante: Produce el prompt resultante con todos los cambios aplicados en los pasos anteriores. [FORMATO DE SALIDA] Responde con dos elementos diferenciados: A) Resumen en la interfaz de usuario: Escribe directamente en la conversación un resumen breve y conciso que incluya: - La evaluación de la transformación (mejora, equivalente o reduce eficiencia) con justificación breve. - Observaciones principales detectadas (máximo 5 puntos concretos). - Lista resumida de los cambios aplicados al generar el prompt resultante. B) Prompt resultante: - Primera opción (preferida): Escribe el prompt resultante en un archivo con extensión `.json`. - Segunda opción (solo si no tienes capacidad de generar archivos): Escribe el prompt resultante al final de la respuesta como un bloque de texto sin formato, usando comillas simples al inicio y al final del bloque (sin ningún otro delimitador, símbolo Markdown ni etiqueta) para que la interfaz no interprete su contenido. [CRITERIO DE ÉXITO] La ejecución del prompt primario se considera exitosa cuando: * El resumen en la interfaz de usuario incluye la evaluación de la transformación con su justificación y las observaciones y cambios realizados. * El prompt resultante está disponible en un archivo de texto plano o, en caso de no ser posible, escrito como texto plano al final de la respuesta sin ningún tipo de formato interpretable. * El prompt resultante contiene la equivalencia requerida del prompt secundario para un LLM, manteniendo la estructura y la intención original del autor.