Playground
Prueba cómo una respuesta .mini se convierte a JSON. Después compara cuánto texto necesita cada formato.Try converting a .mini response to JSON. Then compare how much text each format needs.
Práctica del formato base en tu navegador. Para conectar tu propio contrato generado por setup, sigue laBase-format practice in your browser. To connect your own setup-generated contract, follow the guía de integraciónintegration guide →
Cada línea de la izquierda es un ticket de soporte. A la derecha, el parser lo convierte a un objeto JSON para tu aplicación. Cambia un valor para comprobarlo; «Inyectar errores» muestra qué se rechaza.
1 · Respuesta de la IA en .mini
2 · JSON para tu aplicación
Reglas de los campos e instrucciones para la IA
Firma del contrato
Bloque de prompt para un modelo generativo (EN)
Bloque de especificación para un modelo generativo (ES)
contract.json
Mismos tickets, tres formas de escribirlos. Los tokens son fragmentos de texto facturables: una barra menor cuesta menos en la respuesta, con el mismo modelo y tarifa. Instrucciones y reintentos aparte.
¿Cuánto texto escribe la IA en su respuesta?
Todos los formatos y detalles de medición
Referencia TOON v4.1.1. Recuento de tokens: …. Sólo se mide la respuesta serializada; aquí no se mide la calidad de generación ni el coste total de la API.
Ver los mismos datos en otro formato
Diseña tu contrato: empieza en blanco o amplía la muestra, añade campos, examina el documento y el prompt generados, y descarga contract.json. Para comprobar después tus contratos y fixtures, ejecuta mini --forks DIR check-forks.
1 · Identidad
2 · Campos
Comprobación de invariantes
3 · Contrato generado
Bloque de prompt
Documento de ejemplo
Estructura
prefix|n=12|key=value|key=a,b,c ← header (contract + count + metadata)
f1|f2|f3,f4*,f5|a,b,c|… ← one record per line, fields by position
list elements separated by ','
selected element ends with *
tuple = fixed comma-separated group
Escapes
\| literal vertical bar (everywhere) \\ literal backslash (everywhere) \n line break inside a value (everywhere) \, literal list separator (inside list elements) \* literal trailing asterisk (inside list elements)
Invariantes de familia
I1 one line = one valid record I4 new fields only at the tail I2 prefix and n are mandatory I5 fixtures must round-trip I3 inherited core never changes (breaking change ⇒ new prefix)
Códigos de error
| Código | Condición |
|---|---|
| E01 | no header |
| E02 | prefix ≠ contract |
| E03 | missing n |
| E04 | record count ≠ n |
| E05 | record arity outside core…core+extensions |
| E06 | type mismatch / required empty |
| E07 | list or tuple arity |
| E08 | marker rule violated |
| E09 | bad escape |
| E10 | enum violation |
| E11 | duplicate unique value |
| E12 | header entry malformed/missing |
| E13 | numeric range |
| E20/E21 | invalid contract / fork invariant |
Especificación completa: /docs/spec/. Índice de errores con una página por código: /docs/errors/. Motor de esta página: js/mini.js, generado desde la biblioteca TypeScript y verificado con la suite de conformidad.