Documentos de Decision Gate

Evaluación de puertas determinista, reproducible con decisiones auditables.

Documentación de Asset Core

Ciclo de Vida del Escenario de Puerta de Decisión + Arquitectura de Almacenamiento de Estado

Audience: Engineers implementing scenario execution, run lifecycle, and Audiencia: Ingenieros que implementan la ejecución de escenarios, el ciclo de vida de ejecución y la persistencia del estado de ejecución.


Tabla de Contenidos

  1. Resumen Ejecutivo
  2. Especificación del Escenario
  3. Ciclo de Vida de Ejecución de Escenarios (MCP)
  4. Modelo de Estado de Ejecución
  5. Flujo de Ejecución del Plano de Control
  6. Ejecutar Almacenes de Estado
  7. Referencia Cruzada Archivo por Archivo

Resumen Ejecutivo

Los escenarios definen flujos de trabajo de divulgación escalonados en una especificación determinista. La capa MCP valida y registra escenarios, luego instancia un tiempo de ejecución del plano de control para cada escenario. Las ejecuciones se persisten a través de una implementación de RunStateStore (en memoria o SQLite). El estado de ejecución es de solo anexado, registrando disparadores, resultados de puertas, decisiones, paquetes, envíos y llamadas a herramientas. F:crates/decision-gate-core/src/core/spec.rs L51-L114 F:crates/decision-gate-mcp/src/tools.rs L721-L895 F:crates/decision-gate-core/src/core/state.rs L357-L394


Especificación del Escenario

ScenarioSpec es la definición canónica del escenario:

  • Identificadores (escenario, espacio de nombres, versión de especificación)
  • Definiciones de etapas y lógica de puertas
  • Definiciones de condiciones y consultas de evidencia
  • Referencias de esquema opcionales e id de inquilino por defecto

Las especificaciones se validan al cargar para garantizar la unicidad y la consistencia interna. F:crates/decision-gate-core/src/core/spec.rs L51-L114

El comportamiento a nivel de etapa está definido por StageSpec (paquetes de entrada, puertas, ramificación, tiempo de espera opcional). F:crates/decision-gate-core/src/core/spec.rs L121-L140


Ciclo de Vida de Ejecución de Escenarios (MCP)

Definir Escenario

scenario_define registra un escenario y almacena un tiempo de ejecución en el enrutador de herramientas:

  • Aplicación de espacio de nombres
  • Validación del registro de capacidades
  • Validación estricta del comparador
  • Instanciación de ControlPlane con la política de confianza actual + política de anclaje

F:crates/decision-gate-mcp/src/tools.rs L721-L749 F:crates/decision-gate-mcp/src/tools.rs L2045-L2066

Iniciar Ejecución

scenario_start crea un nuevo estado de ejecución utilizando el plano de control y lo persiste a través del almacén configurado. F:crates/decision-gate-mcp/src/tools.rs L760-L814

Estado / Siguiente / Enviar / Activar

Las herramientas posteriores operan en el tiempo de ejecución en caché y el estado de ejecución persistido:

  • scenario_status lee el estado actual
  • scenario_next avanza en función de la evidencia disponible
  • scenario_submit carga artefactos externos
  • scenario_trigger inyecta un evento de activación externo

F:crates/decision-gate-mcp/src/tools.rs L816-L977

scenario_submit.payload y scenario_trigger.payload se persisten en los registros de estado de ejecución y se exportan a los artefactos de runpack por diseño. Las integraciones deben tratar estos canales de carga útil como visibles para auditoría y evitar enviar secretos en bruto.

scenario_next puede incluir opcionalmente comentarios (resumen/rastro/evidencia) en la respuesta de la herramienta cuando lo permita la política de comentarios del servidor. Los comentarios de rastro reutilizan evaluaciones de puerta almacenadas; los comentarios de evidencia pueden mostrar registros de evaluación de puerta con la política de divulgación aplicada. F:crates/decision-gate-mcp/src/tools.rs L2144-L2257 F:crates/decision-gate-core/src/core/state.rs L357-L394


Modelo de Estado de Ejecución

El estado de ejecución es un registro estructurado y de solo anexado que contiene:

  • Identificadores de inquilino, espacio de nombres, ejecución y escenario
  • Estado actual y estado del ciclo de vida
  • Objetivos de despacho
  • Registro de activación, registro de evaluación de puerta, registro de decisiones
  • Paquetes, envíos y transcripciones de llamadas a herramientas

F:crates/decision-gate-core/src/core/state.rs L357-L394

El estado del ciclo de ejecución es un enum cerrado: activo, completado, fallido. F:crates/decision-gate-core/src/core/state.rs L72-L85


Flujo de Ejecución del Plano de Control

El motor del plano de control ejecuta transiciones de escenario, evalúa evidencia y registra decisiones. Persiste el estado de ejecución después de transiciones clave y utiliza políticas de confianza/anclaje configuradas en tiempo de ejecución. F:crates/decision-gate-core/src/runtime/engine.rs L153-L178 F:crates/decision-gate-mcp/src/tools.rs L2029-L2066


Ejecutar Almacenes de Estado

Almacenamiento en Memoria

El almacenamiento en memoria está destinado a pruebas y demostraciones. Implementa RunStateStore con un mapa protegido por mutex. F:crates/decision-gate-core/src/runtime/store.rs L53-L127

Almacén SQLite

El almacenamiento SQLite proporciona instantáneas duraderas:

  • Cada guardado almacena JSON canónico más un hash.
  • Las cargas verifican la integridad del hash y la consistencia de la clave.
  • Las versiones se rastrean por ejecución, con poda de retención opcional.

F:crates/decision-gate-store-sqlite/src/store.rs L540-L640

La configuración de la tienda admite el modo WAL, el modo de sincronización, el tiempo de espera ocupado y los límites de retención. F:crates/decision-gate-store-sqlite/src/store.rs L135-L156

Configuración de MCP

La capa MCP selecciona el tipo de tienda a través de la configuración run_state_store. F:crates/decision-gate-config/src/config.rs L1523-L1582


Referencia Cruzada Archivo por Archivo

ÁreaArchivoNotas
Especificación del escenario + validacióncrates/decision-gate-core/src/core/spec.rsEstructura canónica del escenario + invariantes.
Modelo de estado de ejecucióncrates/decision-gate-core/src/core/state.rsEstado de ejecución + registros de solo anexado.
Motor del plano de controlcrates/decision-gate-core/src/runtime/engine.rsEjecución y flujo de decisiones.
Ciclo de vida de la herramienta MCPcrates/decision-gate-mcp/src/tools.rsscenario_define/start/next/submit/trigger/status.
Almacenamiento en memoriacrates/decision-gate-core/src/runtime/store.rsImplementación de almacenamiento de prueba/determinista.
Almacenamiento SQLitecrates/decision-gate-store-sqlite/src/store.rsAlmacenamiento duradero con verificación de hash + retención.
Configuración del almacenamientocrates/decision-gate-config/src/config.rsSelección de run_state_store + validación.