Review run artifacts
Every run leaves a durable record: what started it, what each step returned, every API call it made, and what the agent did. A run in the container writes it to your repository. A cloud run keeps the same record in OutcomeCI, where the run log shows it.
The run directory
.outcomeci/outcomes/<run-id>/
run.json state, trigger payload, workflow revision
manifest.json every file the run produced
effects.json the outcome of each API call
<step>/outputs.json what the step returned
<step>/items/<n>.json one result per item, for a for_each step
<step>/consultation.json every turn and plan version, for a converse step
transcripts/<step>/ the agent's transcript and token usage
attachments/ files the run downloadedrun.json records the workflow_revision the run compiled, so a result can
always be traced to the exact workflow file and instructions that produced it.
Step results
A step's outputs.json matches the returns shape the workflow declares, and
the runtime validates it before any later step reads it. A step that reads
investigate.findings receives exactly the findings key of
investigate/outputs.json.
API calls
effects.json lists each call's capability, HTTP status, and status. The
broker's journal in .outcomeci/.broker/<run-id>/journal.json holds the full
record: each proposed request, its purpose, its review, and its result. The
journal is private: it holds full API responses, so it stays out of the run
directory and oci workflow sync never uploads it.
An identical request that was already confirmed returns its saved receipt
instead of running again. An uncertain request is never replayed on its
own; check its record before retrying the run.
Transcripts and usage
transcripts/<step>/ holds the agent's own transcript of the step, when the
runner exposes one, and usage.json with the tokens it reported. Read the
transcript to see why a step returned what it did.
Downloaded files
Files a run downloads through a connector, such as a screenshot attached to a
Slack message, are saved in attachments/. Agents read them from the
workspace, and people can open them from the run directory.
What to keep
Commit run directories when the repository is your system of record for how
work was decided. Check attachments/ first: it holds files people sent to
the run, which may not belong in the repository. Never commit
.outcomeci/.broker/ or .outcomeci/vault.enc; oci vault local init adds
both to .gitignore.