UAPF Standard
A single, portable format for workflows, decisions and cases – built on BPMN, DMN and CMMN.
Goals
UAPF (Unified Algorithmic Process Format) defines how a set of BPMN, DMN and CMMN models, plus supporting artifacts, are packaged into one interoperable unit.
- Portability. Move algorithmated processes between tools, engines and runtimes.
- Executability. Provide a direct bridge from human-readable models to machine-executable logic.
- Governance. Carry version, ownership and policy metadata with the models.
- Agent-readiness. Give AI agents a structured, stable view of workflows and decisions.
Core concepts
- Package. A directory or ZIP archive with a defined layout (manifest, models, tests, docs).
- Manifest. A machine-readable file (
manifest.json) describing contents, identifiers, versions and interfaces. - Models. BPMN, DMN and CMMN files referenced from the manifest.
- Metadata. Governance, security, classification, ownership and lifecycle information.
- Tests. Optional test scenarios that validate expected behavior.
Package structure
A minimal UAPF package might look like this:
my-process.uapf/
manifest.json
models/
bpmn/
process.bpmn
dmn/
decisions.dmn
cmmn/
case.cmmn
Additional folders such as tests/, docs/ and extensions/ can be used for test scenarios, documentation and implementation-specific metadata.
Manifest
The manifest is the entry point for tools and engines. At a minimum it defines:
- Package identifier, name and version.
- List of BPMN, DMN and CMMN files and their roles.
- Technical interfaces (e.g. processes and decisions exposed as services).
- Ownership and governance metadata.
{
"uapfVersion": "0.1.0",
"id": "com.example.loan-approval",
"name": "Loan Approval Process",
"version": "1.0.0",
"models": {
"bpmn": ["models/bpmn/loan.bpmn"],
"dmn": ["models/dmn/eligibility.dmn"],
"cmmn": []
}
}
The full JSON schema for the manifest is available in the reference repository.
Manifest schema on GitHubVersioning and compatibility
UAPF uses semantic versioning for both the format and individual packages.
- Format version. Defined by
uapfVersionin the manifest (e.g.0.1.0). - Package version. Defined by
version, followingMAJOR.MINOR.PATCH. - Backward compatibility. Minor and patch updates should not break existing integrations.
- Breaking changes. Major version increments include clear migration guidance.
Formal specification
The authoritative specification for UAPF is maintained in the open at:
There you will find:
- Specification documents (Markdown / HTML / PDF).
- JSON and XML schemas for manifests and package contents.
- Reference examples and test packages.