Saltar al contenido principal

Especificación abierta · Versión 1

QZX Result Contract v1

Un envoltorio JSON pequeño y extensible que permite a agentes de IA, automatizaciones y personas determinar si un comando tuvo éxito, comprender el resultado y conservar evidencia específica sin adivinar columnas ni analizar prosa.

Creado y mantenido por Alejandro Sánchez como una especificación abierta de QZX.

Diagrama anatómico de un documento JSON QZX Result Contract v1 que destaca el booleano success, el message no vacío, la salida del comando y la metadata.
El envoltorio compartido permanece deliberadamente pequeño. Cada comando puede añadir campos tipados sin cambiar el significado de success ni message.

Núcleo estable

Dos campos en los que todo consumidor puede confiar

success · booleano
true únicamente cuando la operación solicitada terminó correctamente.
message · texto no vacío
Un resumen humano completo, no una etiqueta que obligue a realizar otra consulta.

Evidencia extensible

Cada tipo de comando conserva los hechos que necesita

Una búsqueda de archivos, una consulta DNS, una inspección de disco y una operación de procesos no deberían fingir que comparten los mismos campos de dominio. Los productores pueden añadir datos tipados, details, warnings y meta. Los consumidores deben ignorar los campos que no comprendan.

Núcleo independiente del transporte

Legible para una persona y confiable para software

El contrato central es independiente de CLI, MCP, HTTP o una biblioteca. QZX añade su propio perfil JSON para CLI: con --json, escribe un documento contractual completo en stdout y envía el progreso o la salida incidental de herramientas nativas a stderr.

  • Los fallos incluyen error o un error_code estable; los resultados exitosos no contienen ninguno de esos campos de fallo.
  • Los campos opcionales definidos conservan su tipo declarado cuando aparecen; los campos no disponibles se omiten en vez de usar null.
  • meta.schema_version identifica el envoltorio común cuando existe metadata.
  • Los campos adicionales desconocidos siguen siendo válidos, permitiendo evolución aditiva.
  • La compatibilidad contractual no implica autorización, sandbox ni soporte universal de plataformas.
{
  "success": true,
  "message": "Current local date and time returned in ISO 8601 format.",
  "output": "2026-08-07T21:45:00-05:00",
  "meta": {
    "command": "getCurrentDateTime",
    "duration_ms": 2.4,
    "schema_version": 1
  }
}

Adopción sin dependencia

Otras herramientas pueden implementar la forma del resultado sin adoptar los comandos QZX

El contrato separa transporte y vocabulario de operaciones. Una CLI local, servidor MCP, herramienta de build o wrapper interno puede emitir un resultado compatible con QZX y conservar sus propios nombres y campos de dominio.

1 · Producir

Emitir el núcleo

Devuelve success explícito, un message útil y evidencia verdadera del dominio.

2 · Validar

Usar el esquema

Valida JSON guardado o canalizado con el esquema descargable o el validador QZX sin dependencias.

3 · Informar

Publicar evidencia

Comparte límites, resultados de conformidad y desviaciones, sin afirmar certificaciones inexistentes.

Kit de conformidad · Evidencia lista para CI

Convierte un éxito y un fallo en una evidencia revisable

QZX incluye un validador de evidencia sin dependencias y una Composite Action reutilizable para GitHub. El validador comprueba que el archivo de éxito realmente declare success: true, que el de fallo declare success: false, aplica el perfil central o MCP elegido y genera una evidencia JSON determinista con los SHA-256 de los archivos exactos evaluados.

La Action ejecuta la misma prueba en el repositorio adoptante, hace fallar CI cuando no hay conformidad, restringe las rutas de evidencia y del informe a GITHUB_WORKSPACE y escribe un resumen PASS/FAIL. El propio CI de QZX ejercita los perfiles central y MCP con CPython 3.13.

Cada receipt se autoidentifica con el schema público QZX Result Contract Conformance Receipt v1. Cualquier implementación de JSON Schema 2020-12 puede validar así la estructura del informe sin ejecutar QZX. Una receipt válida según el schema puede registrar success: false; la validez estructural y la conformidad de la implementación son deliberadamente afirmaciones separadas.

Usar el validador de QZX es opcional: el contrato puede implementarse con cualquier validador independiente de JSON Schema o del perfil. Para evidencia pública durable, fija la Action al SHA exacto del commit QZX que probaste.

Un comando de evidencia

python scripts/validate_result_contract_evidence.py \
  --profile mcp-2025-11-25 \
  --success evidence/success.json \
  --failure evidence/failure.json \
  --tool-definition evidence/tool-definition.json \
  --report evidence/qzx-conformance.json
Entradas
Éxito y fallo completados reales; definición de la herramienta MCP cuando aplique ese perfil.
Evidencia
Perfil, hallazgos del validador, output_schema_mode de MCP, roles semánticos y SHA-256 de la evidencia exacta.
Límite de la afirmación
Evidencia de conformidad solamente: no certifica seguridad, corrección del dominio ni aval de QZX.

Interoperabilidad MCP · 2025-06-18 → 2026-07-28

Adopta el contrato de resultados sin reemplazar — ni actualizar — MCP

MCP admite outputSchema, structuredContent e isError para herramientas desde la especificación 2025-06-18. Por eso QZX ofrece perfiles específicos para 2025-06-18, 2025-11-25 y 2026-07-28, en vez de obligar a un productor compatible a actualizar toda su pila MCP sólo para probar un contrato de resultados.

Una herramienta conserva su nombre, entradas, permisos, transporte y campos de dominio. QZX registra si la relación de su outputSchema es una referencia canónica, el schema exacto inline, una composición allOf o la forma más débil y portable entre SDKs structural_core. La receipt expone esa diferencia en vez de ocultarla detrás de un simple indicador verde.

Un cliente que entiende MCP ya dispone de isError. QZX mantiene success dentro del resultado estructurado por otra razón: el resultado sigue describiendo por sí mismo su desenlace cuando se registra, cachea, encola, almacena, prueba o reutiliza fuera de su wrapper MCP original. Dentro de MCP no hay dos fuentes de verdad: el estado efectivo de error MCP en un resultado completado debe ser igual a !success. MCP interpreta un isError ausente como false, por lo que un éxito puede omitir el campo y un fallo debe seguir emitiendo isError: true.

MCP 2026-07-28 exige además resultType: "complete" para un resultado completado. Los perfiles de 2025 deliberadamente no inventan ese campo.

Mapeo determinista

outputSchema
Schema canónico de QZX cuando el SDK lo permite; de lo contrario, un núcleo estructural restringido cuya relación más débil queda registrada en la receipt.
structuredContent
El objeto completo de resultado QZX, validado contra Result Contract v1.
isError
En resultados completos, el estado efectivo debe ser igual a !success; el campo sólo puede omitirse cuando ese valor efectivo sea false.
resultType
Obligatorio como complete en el perfil 2026-07-28; no es requisito en los perfiles de 2025.
Errores de protocolo MCP / JSON-RPC
Siguen siendo errores del protocolo; no se fabrica un resultado QZX completado.

Validar sin otra dependencia

El repositorio fuente incluye un validador que lee un archivo o stdin:

qzx getCurrentDateTime --output-format iso --json \
  | python scripts/validate_result_contract.py -

python scripts/validate_result_contract.py result.json --json

El runtime de QZX valida su propio envoltorio final antes de imprimirlo. Un productor interno inválido se reemplaza por un fallo conforme invalid_result_contract.

La versión 1 evoluciona de forma aditiva

Los nuevos campos opcionales, códigos de error y perfiles de transporte son compatibles cuando conservan la semántica central. Eliminar un campo obligatorio, cambiar el significado o tipo de success o message, o cambiar la raíz para que deje de ser un objeto JSON por resultado completado exige una nueva versión contractual.

“Compatible con QZX Result Contract v1” describe una forma de resultado. No implica aval, paridad de comandos, ejecución segura ni permiso para presentar otro producto como QZX.

Revisión pública y pilotos empresariales

Ayuda a comprobar si este contrato merece una adopción más amplia

Alejandro recibe implementaciones independientes, revisiones de interoperabilidad, pilotos reales con agentes y trabajo público de conformidad patrocinado. El apoyo económico puede financiar pruebas y documentación, pero nunca control privado del contrato abierto ni resultados favorables garantizados.