Decision Gate acepta la entrada de autoría RawScenarioSpec en JSON o RON. JSON es el formato canónico utilizado para hashing, esquemas y runpacks. RON existe solo como una capa de autoría amigable para humanos y debe ser normalizado a JSON canónico antes de la ejecución.
JSON Canónico
- JSON canónico utiliza RFC 8785 (JCS) para un orden determinista.
- Los hashes de origen identifican sintaxis hostil y no son identidades legales validadas.
- JSON canónico es emitido por
decision-gate authoring normalize.
Entradas Soportadas
- JSON: formato canónico para almacenamiento, hashing y validación.
- RON: formato solo de autoría normalizado a JSON canónico.
- YAML: no soportado por defecto (agregar solo con requerimiento explícito).
Normalización de la tubería
- Analizar JSON o RON en un valor estructurado.
- Validar contra
schemas/scenario.schema.json. - Deserializar la sintaxis RawScenarioSpec hostil cerrada.
- Canonizar JSON de origen (RFC 8785).
- Calcular el hash de origen; scenario_define realiza la admisión de prueba.
Límites
- Tamaño máximo de entrada de autoría: 16777216 bytes.
- Profundidad máxima de anidamiento: 64.
Uso de la CLI
Validar la entrada de autoría RON:
cargo run -p decision-gate-cli -- authoring validate --input Docs/generated/decision-gate/examples/scenario.ron --format ron
Normalizar a JSON canónico:
cargo run -p decision-gate-cli -- authoring normalize --input Docs/generated/decision-gate/examples/scenario.ron --format ron \
+ --output /tmp/dg-doc-scenario.json
Referencias
Docs/generated/decision-gate/examples/scenario.ron: ejemplo de autoría en RON.Docs/generated/decision-gate/examples/scenario.json: salida JSON canónica.schemas/scenario.schema.json: Esquema JSON para RawScenarioSpec.