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 downloaded

run.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.

Next

Take the workflow online.