5.5 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	Especificación extendida para generación de Tests JSON
Este fichero complementa y extiende las normas básicas de /tests-estructura.md para escenarios en los que
se desea obtener una gran variedad de opciones por pregunta (múltiples preguntas equivalentes, varias respuestas
correctas, y un amplio conjunto de respuestas incorrectas plausibles). La sintaxis descrita aquí es estricta: cualquier
desviación en campos, tipos o nombres provocará errores de interpretación por las herramientas de ingestión.
1) Objetivo
- Permitir la generación de Tests con mayor densidad de opciones por pregunta sin cambiar la estructura raíz definida
en 
/tests-estructura.md. - Evitar cambios en la estructura: el parser que consume estos ficheros espera exactamente los campos documentados (ver sección 2). No se permiten campos adicionales, ni cambios en los nombres de campo.
 
2) Estructura raíz (obligatoria y única)
- El fichero JSON debe ser un array que contenga exactamente un objeto con las claves siguientes:
origin: String — autor o fuente de las preguntas.title: String — título del conjunto de preguntas.group: String — clave id del grupo. Debe cumplir la regex:/^[a-z0-9_]+$/i.source: String | Array[String] — fuentes o enlaces.queries: Array[Question] — lista de preguntas.
 
Nota: ningún otro campo raíz está permitido. Si se añade cualquier otra clave, el fichero será rechazado por el validador.
3) Estructura de Question (estricta)
- Cada elemento de 
querieses un objeto con únicamente estas claves:question: String | Array[String]- Si es 
Array[String], cada elemento es una variante textual válida de la misma pregunta. 
- Si es 
 rights: Array[String] (una o más respuestas correctas). Mínimo 1.wrongs: Array[String] (respuestas incorrectas plausibles). Mínimo 3.
 
Reglas estrictas de tipos y contenidos:
questiondebe ser String o Array de Strings — no se permiten objetos en su lugar.rightsywrongsdeben ser arrays de Strings. Ningún elemento puede sernullo cadena vacía.- No se permiten campos adicionales dentro de cada pregunta (por ejemplo 
difficulty,options,explanation, etc.). 
4) Reglas de contenido (recomendadas y exigentes)
- Prioriza la calidad y la fidelidad: las entradas en 
rightsdeben ser correctas según la fuente;wrongsdeben ser plausibles, mezclando errores comunes, confusiones terminológicas y alternativas semánticas. - Para este esquema extendido recomendamos (objetivos, no obligatorios):
- Intentar generar al menos 6 opciones por pregunta (combinando 
rightsywrongs). - Cuando el tema lo permita, incluir >=2 
rights(respuestas correctas alternativas o complementarias) y >=4wrongs. - Usar variantes en 
question(Array de Strings) cuando quieras mantener la misma idea expresada con distinto enfoque. 
 - Intentar generar al menos 6 opciones por pregunta (combinando 
 - Es importante entender que las preguntas pertenecen a una batería de preguntas que las une y por tanto, es importante determinar de qué se habla en las mismas para evitar ambigüedades.
 
5) Validaciones que ejecutará el parser (fallo en caso contrario)
groupdebe cumplir/^[a-z0-9_]+$/i.queriesdebe ser un array no vacío.- Cada 
querydebe tener>=1elemento enrightsy>=3enwrongs. - No se admiten campos extras en la raíz ni en 
queries. - Todos los valores deben ser de tipo 
stringdonde se requiera. 
Si cualquiera de estas validaciones falla, el fichero se considerará inválido y la herramienta devolverá un error que especifica el primer incumplimiento detectado.
6) Ejemplo mínimo válido (JSON simplificado)
[
  {
    "origin": "Fuente Ejemplo",
    "title": "Ejemplo mínimo",
    "group": "ejemplo_min",
    "source": "docs/ejemplo.md",
    "queries": [
      {
        "question": "¿Cuál es la finalidad del ejemplo?",
        "rights": ["Verificar el formato del test"],
        "wrongs": ["Crear campos nuevos","Usar tokens como campos","Dejar el JSON inválido"]
      }
    ]
  }
]
7) Ejemplo extendido (más opciones y múltiples rights)
[
  {
    "origin": "TREBEP - Preámbulo",
    "title": "Preguntas TREBEP - Extendido",
    "group": "trebep_preambulo_ext",
    "source": ["/Public/md/trebep/trebep.000.preambulo.md"],
    "queries": [
      {
        "question": [
          "Según el preámbulo, ¿qué autoriza el art. uno.g) de la Ley 20/2014?",
          "¿Qué facultad concede el art. uno.g) de la Ley 20/2014 en el preámbulo?"
        ],
        "rights": [
          "Autoriza al Gobierno a aprobar textos refundidos en el plazo previsto",
          "Permite integrar y armonizar disposiciones dispersas en un único texto"
        ],
        "wrongs": [
          "Derogar automáticamente la Ley 7/2007",
          "Transferir competencias legislativas a las Comunidades Autónomas sin ley",
          "Aprobar normas de carácter constitucional sin reforma",
          "Suprimir los derechos laborales sin tramitación" 
        ]
      }
    ]
  }
]
8) Buenas prácticas y recomendaciones editoriales
- Realiza revisiones jurídicas para confirmar que cada 
rightses correcta. - Diversifica 
wrongspara cubrir errores de concepto, confusiones terminológicas y alternativas plausibles. - Prefiere variantes textuales en 
questionpara facilitar tests por formato (formulación directa, de verdadero/falso, de selección múltiple). 
9) Nomenclatura y guardado
- Nombre sugerido del fichero JSON final: 
autor.tema.jsony se guardará en/Public/json/copilot/gpt5mini/. 
Fecha de la especificación: 2025-10-29