# Open Workflow Graph (OWG) > Specification v0.92 (draft) — an open specification for describing media > production workflows as portable, validatable, executable JSON documents, > built on MovieLabs' Ontology for Media Creation (OMC), with provenance, > rights, and security carried in the schema rather than bolted on. OWG is published by Entertainment Technologists Inc. It is an open specification, not a ratified industry standard. v0.92 is a draft: expect field-level change, and pin the schema you validate against. Everything here is public. The schema is served at https://openworkflowgraph.org/schemas/core/v0.92.json and the JSON-LD context at /context/v0.9.jsonld. No authentication on any URL below. ## Start here - [Full documentation, single file](https://www.openworkflowgraph.org/llms-full.txt): every page concatenated as markdown — fetch this if you want everything at once. - [Agentic workflows and certainty](https://www.openworkflowgraph.org/raw/agentic-workflows.md): why an agent-authored workflow can be trusted to execute — the four properties that must be established before a run. - [Conformance corpus index](https://www.openworkflowgraph.org/corpus/index.json): 29 complete, validated OWG documents as downloadable JSON, with task/asset/participant counts. Reference data — start here rather than transcribing examples out of the prose. - [Core schema](https://www.openworkflowgraph.org/schemas/core/v0.92.json): validate against this. Every object is closed (additionalProperties: false); extend via `metadata`, an `x-` prefix, or (on context/asset/relationships) a namespaced `profiles.` key. - [For agents](https://www.openworkflowgraph.org/raw/for-agents.md): machine-oriented implementation guide, authoring rules, and a pre-flight checklist. - [Versioning and stability](https://www.openworkflowgraph.org/raw/versioning-and-stability.md): what v0.92 defines, and how stable each part is. - [Implementation considerations](https://www.openworkflowgraph.org/raw/implementation-considerations.md): decisions the specification leaves to implementers, with recommended approaches. ## Introduction - [Overview](https://www.openworkflowgraph.org/raw/overview.md): What the Open Workflow Graph is, the problem it solves, and how it relates to the standards already in your pipeline. - [Quickstart](https://www.openworkflowgraph.org/raw/quickstart.md): Write a valid OWG document, validate it, and understand what the graph now knows — in about ten minutes. - [Core concepts](https://www.openworkflowgraph.org/raw/concepts.md): The five node types, the provenance backbone beneath them, and the two design choices that make a workflow both a plan and a record. - [Agentic workflows and certainty](https://www.openworkflowgraph.org/raw/agentic-workflows.md): What changes when workflows are written by machines rather than people, the four things you must be able to establish about a workflow before running it, and how OWG makes each of them checkable. ## Specification - [Document structure](https://www.openworkflowgraph.org/raw/specification.md): The OWG v0.92 document — every top-level field, the entity registries, parameters, and governance ceilings. - [Tasks and executors](https://www.openworkflowgraph.org/raw/tasks.md): The task object in full — executors, provenance edges, dependencies, failure and compensation, retry, gates and re-routes. - [Assets and versioning](https://www.openworkflowgraph.org/raw/assets-and-versioning.md): Asset identity, storage locators, the five typed version relations, lifecycle states, and how composition and external identifiers ride along. - [Participants and authority](https://www.openworkflowgraph.org/raw/participants-and-authority.md): How humans, agents, and services are declared, and how an agent's authority chains to a responsible human. - [Relationships and assurance](https://www.openworkflowgraph.org/raw/relationships.md): Explicit edges, the three assurance levels, and exactly where a machine proposal's confidence score and method live in the payload. - [Subgraphs and turnovers](https://www.openworkflowgraph.org/raw/subgraphs-and-turnovers.md): How a task nests an interior graph, and how that same mechanism scopes a cross-company hand-off to exactly what a vendor needs. - [Reference syntax](https://www.openworkflowgraph.org/raw/reference-syntax.md): The formal grammar for $. references, string interpolation, and when expressions — with the run-state vocabulary they evaluate against. - [Profiles](https://www.openworkflowgraph.org/raw/profiles.md): How profiles declare the executors, tool vocabularies, and registry extensions a workflow may use, keeping domain and vendor detail out of the core specification. - [Run records](https://www.openworkflowgraph.org/raw/runs.md): The run document — how one execution of a definition is recorded, with per-attempt status, cost, and the actual infrastructure used. ## Implementing - [Validation](https://www.openworkflowgraph.org/raw/validation.md): Every check the validator performs — structural, referential, graph, and expression — and the error codes it emits. - [Conformance corpus](https://www.openworkflowgraph.org/raw/conformance.md): The reference workflows, what each tier proves, how the regression harness runs them, and the true inventory. - [Persistence requirements](https://www.openworkflowgraph.org/raw/persistence.md): What an implementation must be able to answer about an OWG graph — stated as required capabilities, not as a prescribed storage design. - [For agents](https://www.openworkflowgraph.org/raw/for-agents.md): A machine-oriented implementation guide — canonical endpoints, the minimum viable document, a pre-flight checklist, and what an agent-authored workflow must satisfy to be trusted. - [Examples](https://www.openworkflowgraph.org/raw/examples.md): Complete annotated workflows from the conformance corpus — atomic, generative, linear chain, and conditional with a human gate. - [Implementation considerations](https://www.openworkflowgraph.org/raw/implementation-considerations.md): Decisions the specification deliberately leaves to implementers, with recommended approaches and the trade-offs behind them. - [Failure-handling best practices](https://www.openworkflowgraph.org/raw/failure-handling.md): Four ways a task's failure can behave, when to reach for each one, and how they compose with fan-out and conditional merges. ## Bindings - [EIDR](https://www.openworkflowgraph.org/raw/eidr.md): How OWG carries EIDR Title and Edit IDs on assets, and models registration as a task against the registry. - [IMF](https://www.openworkflowgraph.org/raw/imf.md): How OWG governs an IMF package as one asset, with its track files related by edges and its validation as a gate before delivery. - [OpenTrackIO](https://www.openworkflowgraph.org/raw/opentrackio.md): How OWG records camera and lens tracking for a take as a governed asset, while the live stream stays outside the graph. - [MDDF Avails](https://www.openworkflowgraph.org/raw/mddf-avails.md): How OWG governs an MDDF Avails document and Media Manifest as assets tied to the edit they describe, with validation and approval as tasks. - [Rights and clearance](https://www.openworkflowgraph.org/raw/rights-and-clearance.md): A draft proposal for carrying ownership, licensing and clearance on a live production graph, built on ODRL and the distribution vocabulary already in the MovieLabs family. - [A2A](https://www.openworkflowgraph.org/raw/a2a.md): How OWG hands a task to another organization's agent over the Agent2Agent protocol, and keeps the meaning, the authority and the record that the protocol leaves out. - [C2PA](https://www.openworkflowgraph.org/raw/c2pa.md): How OWG records C2PA content credentials on assets, maps manifests and ingredients onto lineage, and earns the attested assurance level only after verification. - [ComfyUI](https://www.openworkflowgraph.org/raw/comfyui.md): How a ComfyUI run is recorded in OWG. One generative task whose interior is the executed graph, the models and media it used as assets, and an output labeled in IPTC terms. - [IPTC](https://www.openworkflowgraph.org/raw/iptc.md): How OWG labels how an asset came to be, using IPTC's Digital Source Type vocabulary and AI properties, so the record reads the same in C2PA and in image and video metadata. ## Ecosystem - [Standards bindings](https://www.openworkflowgraph.org/raw/standards-bindings.md): How OWG references OpenUSD, BBC TAMS, OpenTimelineIO, C2PA, SOM, and OMC without absorbing their internals — and the field-level hooks each binding uses. - [Security model](https://www.openworkflowgraph.org/raw/security-model.md): Why permissioning is a property of the graph rather than a system wrapped around it — and how scope- and time-bounded access falls out of the schema. - [AI disclosure and compliance](https://www.openworkflowgraph.org/raw/compliance.md): How EU AI Act Article 50 disclosure becomes a lineage query, and the six schema fields that make a per-asset disclosure manifest computable. - [Versioning and stability](https://www.openworkflowgraph.org/raw/versioning-and-stability.md): What v0.92 defines, how the specification versions, where it deliberately leaves room to extend, and what that means for building against it. - [Changelog](https://www.openworkflowgraph.org/raw/changelog.md): What changed in each version of the specification, and when. ## Articles - [When agents cross company lines](https://www.openworkflowgraph.org/raw/agents-across-company-lines.md): A2A lets one company's agent hand work to another's. Why the record has to travel with the work, and the three small additions in OWG v0.93 that make it do so. - [Recording a ComfyUI run](https://www.openworkflowgraph.org/raw/recording-comfyui-runs.md): ComfyUI already saves the exact graph behind every image it makes. How OWG carries that into the production record, labels it in IPTC terms, and what two test runs showed a record has to get right. ## Notes for implementers - Any page is available as raw markdown at /raw/.md - A document is entity registries (organizations, participants, infrastructure, assets, contexts) plus tasks[]. Required: `owg_version` ("0.92", "0.91", or "0.9") and `id`. - Every defined object sets `additionalProperties: false`. Unknown keys are validation errors; use `metadata`, an `x-` prefix, or (v0.92, on context/asset/relationships) a namespaced `profiles.` key to extend. - Reference syntax (`$.params.x`, `$.tasks.y.outputs.z`) and `when` expressions have formal EBNF grammars — see /raw/reference-syntax.md. - Validation runs in four passes: structural, referential, graph, expression. The reference implementation currently covers pass 1 fully and passes 2-3 partially, so verify referential integrity yourself. - An `inferred` assurance requires `confidence` (0-1) and `method`. See /raw/relationships.md.