Artifact Store
BMO artifact storage remains family-owned: typed run output, workflow plans, run-derived artifacts, eval/shadow captures, patch proposal diffs, scheduler run output, and A2A task payloads keep their own capture, mutation, retention, and raw-read policies. The shared artifact-store surface is a metadata-only posture layer over those families.
Inspect Posture
Section titled “Inspect Posture”Use these read-only surfaces when you need to know which artifact families are available, empty, degraded, unavailable, or unsupported by design:
| Surface | Command or route |
|---|---|
| CLI | bmo config show-artifacts or bmo config show-artifacts --json |
| TUI | /artifacts, /artifact-status, sidebar Artifacts |
| Agent tool | artifact_status |
| MCP | bmo_get_artifact_posture |
| HTTP | GET /v1/artifacts/posture |
Each surface reports family id, state, bounded counts, reason, drill-in hint, and recent bounded evidence when available. The posture output does not return raw report bodies, prompt snapshots, diff bodies, replay payloads, logs, or rendered HTML.
Source Truth
Section titled “Source Truth”Typed run output keeps Markdown and JSON emitted through emit_result as the
authoritative result. Rendered companions such as HTML reports must be recorded
through emit_artifact as workspace-local references. Rendered companions need
source-pairing metadata, such as artifact_role=companion plus source_path or
provenance, so agents and operators can see that the companion is subordinate
to a Markdown or JSON source.
The posture layer does not add a generic upload or create API. Family-owned write paths remain the only mutation paths, including eval/shadow capture, workflow plan updates, patch proposal diff storage, scheduler run residue, and A2A protocol task artifacts.