You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Export a workflow run as an immutable .xmd file that can leave CI, be
inspected on another machine, and become the source of a separate local run.
CI workflow run ──export──> build-failure.xmd
├──inspect──> same recorded evidence
└──fork─────> new independent local run
The file never becomes the original live run. It cannot resume, answer, cancel,
delete, or otherwise advance that run.
Example
A CI workflow fails after changing its Workspace and exchanging several turns
with an Agent.
The CI host exports build-failure.xmd. A developer downloads that one file and
can:
inspect the workflow's status and history without executing it;
inspect the committed Workspace and exact workflow definition associated
with that history;
see whether each recorded Agent conversation can be continued elsewhere; and
create a new local run from a selected checkpoint.
Creating the local run copies the selected workflow history and Workspace. It
does not modify or depend on the CI run.
When the selected history includes a portable Agent conversation, the
destination provider creates a separate conversation containing exactly the
turns through that checkpoint. Importing it executes no Prompt and produces no
new model response. Live Agent work becomes possible only after the new
workflow run has been committed successfully.
What the artifact contains
The artifact contains the complete XMD-owned evidence needed to understand and
fork the selected committed state:
the run record and committed journal history;
the selected event and Workspace state, called the artifact's frontier;
every Workspace byte and the associated Repository and Worktree records;
the root Markdown and component sources the workflow used, preserved together
as its authenticated definition; and
a portability result for every recorded Agent session, plus an opaque provider
bundle when that conversation can be reproduced through the selected
checkpoint.
The artifact does not contain destination credentials, host paths, live
provider stores, executor locks, SQLite sidecars, open transactions, or other
authority belonging to the machine that exported it.
Stable public boundary
.xmd and the artifact's semantic format are public. SQLite is only the private
encoding used by format V1.
The artifact's identity comes from the workflow evidence it represents, not its
filename, location, or incidental SQLite layout. Copying or renaming the file
does not change that identity.
Readers open the file read-only and validate the complete container, manifest,
contents, and derived identity before returning any information. A malformed,
unsupported, or modified artifact returns no partial status, history, Workspace,
or Agent-portability result.
Export
Export takes the source run's executor lock before selecting the committed
frontier. This prevents the run from advancing while the artifact is assembled.
The output path receives the complete artifact atomically or remains unchanged.
Export never replaces an existing file and never changes the source run,
journal, Workspace, or provider state.
The command reports both:
a semantic artifact identity for the evidence represented; and
a SHA-256 digest for the exact file bytes transferred or published by CI.
Inspection
Artifact status and history use the existing workflow inspection commands with
an explicit artifact path.
Inspection:
executes no document;
starts no Agent or external provider;
materializes no live Workspace;
reads no workflow definition from Git;
writes no journal, migration, or sidecar; and
gives the same semantic result after the file is copied, renamed, or mounted
read-only.
An artifact path is not a local workflow-run ID, and a directory of downloaded
artifacts does not become the local run registry.
Continue by forking
Continuation always creates a separate workflow run that can resume
independently, with a new identity.
The fork copies the selected journal prefix, Workspace state, and workflow
definition. It shares no writable state, lock, or provider-owned directory with
the artifact or source run.
The new run records its lineage:
artifact identity;
source run identity;
selected event; and
selected Workspace root.
Two artifacts containing different evidence cannot reuse one destination run
merely because they claim the same source run or checkpoint.
Agent conversation portability
Every Agent Prompt records the provider checkpoint needed to identify the exact
conversation prefix it produced.
For a portable conversation:
the artifact carries a confidential, opaque provider bundle;
the destination supplies its own authentication;
a qualified provider creates a separate conversation containing exactly the
turns through the recorded checkpoint, with no Prompt during import;
the provider publishes the new conversation state and asserts its identity;
XMD commits the new workflow-run mapping; and
only then may the new run execute another Prompt.
Provider storage and XMD's workflow database cannot be committed as one
transaction. Recovery therefore identifies which side completed and either
finishes the same mapping or refuses conflicting state. It never creates a
second conversation silently.
A provider that cannot reproduce the exact prefix remains unsupported and
fails closed.
Provider support
Codex qualifies through App Server conversation forking at an exact recorded
turn, without executing another turn.
#626 may add supported no-turn Claude portability afterward. It does not block
this Quest.
Completion
The Quest is complete when:
one immutable artifact preserves the complete selected workflow evidence;
inspection works anywhere without execution authority;
every Agent session has a complete portability result;
portable Agent conversations can be recreated through an exact checkpoint
without another model turn;
continuation creates an independent run and provider state;
conflicting identities refuse rather than reuse unrelated state;
interrupted provider/database publication recovers deterministically; and
all remaining blocking stories are delivered.
Authoritative contract
specs/xmd-artifact-spec.md
specs/workflow-workspace-spec.md
the workflow Agent sections of specs/executable-mdx-spec.md
architecture.md
plans/xmd-portable-artifact-quest.md
The specifications own the detailed structural and evidence matrices. Child
stories implement that contract rather than choosing different product
behavior.
Out of scope
Publishing or uploading artifacts from CI.
Signed provenance, retention policy, final-digest attestation, and redacted
reports.
Treating the artifact as authority to control the source run.
Carrying destination credentials or provider launch configuration.
Carrying live provider stores, locks, indexes, or ACPX queue state.
Converting or migrating artifacts between semantic format versions.
Quest outcome
Export a workflow run as an immutable
.xmdfile that can leave CI, beinspected on another machine, and become the source of a separate local run.
The file never becomes the original live run. It cannot resume, answer, cancel,
delete, or otherwise advance that run.
Example
A CI workflow fails after changing its Workspace and exchanging several turns
with an Agent.
The CI host exports
build-failure.xmd. A developer downloads that one file andcan:
with that history;
Creating the local run copies the selected workflow history and Workspace. It
does not modify or depend on the CI run.
When the selected history includes a portable Agent conversation, the
destination provider creates a separate conversation containing exactly the
turns through that checkpoint. Importing it executes no Prompt and produces no
new model response. Live Agent work becomes possible only after the new
workflow run has been committed successfully.
What the artifact contains
The artifact contains the complete XMD-owned evidence needed to understand and
fork the selected committed state:
as its authenticated definition; and
bundle when that conversation can be reproduced through the selected
checkpoint.
The artifact does not contain destination credentials, host paths, live
provider stores, executor locks, SQLite sidecars, open transactions, or other
authority belonging to the machine that exported it.
Stable public boundary
.xmdand the artifact's semantic format are public. SQLite is only the privateencoding used by format V1.
The artifact's identity comes from the workflow evidence it represents, not its
filename, location, or incidental SQLite layout. Copying or renaming the file
does not change that identity.
Readers open the file read-only and validate the complete container, manifest,
contents, and derived identity before returning any information. A malformed,
unsupported, or modified artifact returns no partial status, history, Workspace,
or Agent-portability result.
Export
Export takes the source run's executor lock before selecting the committed
frontier. This prevents the run from advancing while the artifact is assembled.
The output path receives the complete artifact atomically or remains unchanged.
Export never replaces an existing file and never changes the source run,
journal, Workspace, or provider state.
The command reports both:
Inspection
Artifact status and history use the existing workflow inspection commands with
an explicit artifact path.
Inspection:
read-only.
An artifact path is not a local workflow-run ID, and a directory of downloaded
artifacts does not become the local run registry.
Continue by forking
Continuation always creates a separate workflow run that can resume
independently, with a new identity.
The fork copies the selected journal prefix, Workspace state, and workflow
definition. It shares no writable state, lock, or provider-owned directory with
the artifact or source run.
The new run records its lineage:
Two artifacts containing different evidence cannot reuse one destination run
merely because they claim the same source run or checkpoint.
Agent conversation portability
Every Agent Prompt records the provider checkpoint needed to identify the exact
conversation prefix it produced.
For a portable conversation:
turns through the recorded checkpoint, with no Prompt during import;
Provider storage and XMD's workflow database cannot be committed as one
transaction. Recovery therefore identifies which side completed and either
finishes the same mapping or refuses conflicting state. It never creates a
second conversation silently.
A provider that cannot reproduce the exact prefix remains unsupported and
fails closed.
Provider support
turn, without executing another turn.
executes a Prompt. Claude remains unsupported for this capability unless Provide a supported no-turn Claude exact-prefix Agent bundle lifecycle #626
proves a supported no-turn path.
arbitrary exact-checkpoint request.
Delivered foundations
definition.
These stories remain complete. Agent-aware portability continues through the
remaining dependent stories.
Remaining blocking stories
support.
Delivery order
#626 may add supported no-turn Claude portability afterward. It does not block
this Quest.
Completion
The Quest is complete when:
without another model turn;
Authoritative contract
specs/xmd-artifact-spec.mdspecs/workflow-workspace-spec.mdspecs/executable-mdx-spec.mdarchitecture.mdplans/xmd-portable-artifact-quest.mdThe specifications own the detailed structural and evidence matrices. Child
stories implement that contract rather than choosing different product
behavior.
Out of scope
reports.