Core Model
Decision Gate is a deterministic control plane. It does not run conversations or agents. It ingests triggers, evaluates evidence-backed predicates, and emits auditable decisions.
ScenarioSpec
A scenario is the unit of execution. The ScenarioSpec captures:
- scenario_id: stable identifier used across runs
- spec_version: contract version
- stages: ordered phases with gates and advance policies
- predicates: named evidence checks used by gates
- policies + schemas: optional governance and payload constraints
StageSpec
Stages control progression. Each stage defines:
- gates: one or more GateSpecs to evaluate
- advance_to: linear, fixed, branch, or terminal
- entry_packets: optional disclosures emitted on entry
- timeout + on_timeout: deterministic failure policy
GateSpec
Gates contain a requirement tree. A gate passes only when the requirement evaluates to true.
Requirement Evaluation Trees (RET) are the predicate algebra. They support AND / OR / NOT / groups and are deterministic by construction. See RET logic for operators and tri-state evaluation.
PredicateSpec and Evidence
Predicates bind a requirement leaf to an evidence query and comparator.
- EvidenceQuery: provider_id, predicate, params
- EvidenceResult: value, hash, anchor, signature metadata
RET defines how predicates compose. Providers define what a predicate means and which parameters it accepts.
Why this matters
- Every decision is reproducible from the spec + evidence inputs.
- Gates can be audited and verified offline.
- Providers are pluggable without changing scenario semantics.