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 GitHub

Versioning and compatibility

UAPF uses semantic versioning for both the format and individual packages.

  • Format version. Defined by uapfVersion in the manifest (e.g. 0.1.0).
  • Package version. Defined by version, following MAJOR.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:

https://github.com/UAPFormat

There you will find:

  • Specification documents (Markdown / HTML / PDF).
  • JSON and XML schemas for manifests and package contents.
  • Reference examples and test packages.