TwinForce — Práctica real de extracción de texto a CSV, 6 de noviembre de 2026. Se ejecutó una petición a GPT-6 Astra con esfuerzo high por Codex OAuth. La entrada consistió en cinco fichas didácticas con nombres ficticios. La ejecución, su salida y su validación son reales; no proceden de un proveedor mock ni de una simulación de modelo. Los datos de ejemplo no describen personas reales. Se pidió devolver únicamente un CSV con cabecera id,nombre,nota; conservar ceros iniciales, acentos, comas, comillas y saltos de línea; dejar los datos ausentes vacíos. El modelo devolvió cinco registros. Python csv.DictReader leyó la respuesta y una comparación exacta con los cinco diccionarios originales dio True: las cinco filas y sus tres columnas coincidieron sin cambios. Se conservaron los identificadores 001, 002, 003, 004 y 005. Es una única prueba pequeña, no una garantía general de fiabilidad ni una comparación entre modelos. La instrucción y las fichas se transcriben a continuación para poder repetir la práctica. Tras obtener una respuesta, debe leerse con un lector CSV y cotejar valores con el original; contar líneas físicas no equivale a contar registros cuando existe un salto de línea dentro de un campo. Una coma en una nota requiere comillas en la representación CSV; las comillas internas se duplican. El campo ausente debe quedar vacío, no completarse por intuición. Los identificadores son texto: convertirlos a números pierde los ceros iniciales. El resultado de esta prueba no demuestra cómo se comportará otra aplicación al importar el archivo; se debe comprobar también la importación de destino. Petición real: Extrae estas cinco fichas ficticias a CSV. Responde únicamente CSV, sin markdown. Cabecera id,nombre,nota. Conserva identificadores como texto con ceros iniciales, acentos, comas, comillas y saltos internos; ausente significa celda vacía. No inventes valores. Ficha: identificador 001. Nombre: Ana Muñoz. Nota: Azul, pequeño Ficha: identificador 002. Nombre: José Pérez. Nota: Dijo "sí" Ficha: identificador 003. Nombre: Núria Soler. Nota: (ausente) Ficha: identificador 004. Nombre: Iñaki León. Nota: Entrega mañana Ficha: identificador 005. Nombre: Lúa Díaz. Nota: Dos líneas segunda línea Respuesta real: id,nombre,nota "001",Ana Muñoz,"Azul, pequeño" "002",José Pérez,"Dijo ""sí""" "003",Núria Soler, "004",Iñaki León,Entrega mañana "005",Lúa Díaz,"Dos líneas segunda línea" Original estructurado usado en la comparación: [ { "id": "001", "nombre": "Ana Muñoz", "nota": "Azul, pequeño" }, { "id": "002", "nombre": "José Pérez", "nota": "Dijo \"sí\"" }, { "id": "003", "nombre": "Núria Soler", "nota": "" }, { "id": "004", "nombre": "Iñaki León", "nota": "Entrega mañana" }, { "id": "005", "nombre": "Lúa Díaz", "nota": "Dos líneas\nsegunda línea" } ]