mova-contract-spec defines how MOVA language entities are assembled into an executable contract package.
This repository is the source of truth for the contract package canon.
Boundary:
mova-spec= language and semantic building blocksmova-contract-spec= contract package canon and composition rules- runtime / platform repos = execution, admission, access, verification, audit
This repository is intentionally narrow. It specifies:
- the canonical composition of an executable contract package
- the authoring -> classification -> contract -> runtime binding pipeline
- the minimal entities required for executability
- a reference package on invoice flow
- the boundary to MOVA State 1.5 without copying runtime code
This repository does not include:
- Engine 1.5 runtime code
- API, SDK, billing, dashboard, marketplace logic
- general AI framework abstractions
- Authoring layer
ds.step_classification_policy_v0ds.step_classification_option_set_v0ds.step_classification_result_v0
- Contract structure layer
ds.contract_step_v0ds.contract_flow_v0
- Runtime binding layer
env.runtime_execution_binding_v0env.runtime_binding_set_v0
- Package layer
package.contract_package_manifest_v0
manifest.jsonflow.jsonclassification_results.jsonruntime_binding_set.jsonmodels/input_model_v0.jsonmodels/verification_model_v0.jsonREADME.md
classification_policy.json
checks/when any executable step usesbinding_kind = "esm_function"
option_sets.jsonfixtures/execution_note.md- additional diagrams or notes
source_contract_package_v0.jsonruntime_manifest_v0.jsonpolicy_calibration_v0.json
- docs/CONTRACT_PACKAGE_CANON_v0.md
- docs/LAYER_MODEL_v0.md
- docs/AUTHORING_TO_RUNTIME_MODEL_v0.md
- schemas
- policies/mova.step_classification_policy_v0.json
- examples/invoice_processing_v0
- A contract step without classification is invalid.
- An executable step without runtime binding is invalid.
classification.execution_modemust equalbinding.execution_mode.- Runtime does not choose step type; it executes already classified step type.
AI_ATOMICcannot make final business decisions.- External calls must not hide decision logic.
- DS layer does not depend on ENV layer.
- PACKAGE layer binds DS and ENV without changing DS semantics.
- A
DETERMINISTICstep usingesm_functionmust resolve to a package-local.mjsfile underchecks/.
Source A:
mova_contract_runtime_package_v0.zip- provides the base schemas, package skeleton, and invoice example
Source B:
mova-state-1.5- provides package discipline, executable-form canon, and strict runtime boundary
mova-state-1.5 is used here as a source of package discipline and runtime boundary, not as the package canon.
If older State 1.5 package artifacts differ from this repository, they are legacy forms to be aligned later.
The active rule inherited from State 1.5 is simple:
- calibrated intent is not directly executable
- candidate contract must be shaped into a package
- package must be validated and bound before runtime executes it
- anything under examples must conform to this repository canon
- package-local refs are formalized:
classification://<step_id>binding://<step_id>
- the only canonical manifest name is
package.contract_package_manifest_v0 - the canonical package-local deterministic rule surface is
checks/*.mjs - canonical runtime binding kinds are:
esm_functioninternal_handlermcp_toolhuman_gate_channel