Integration walkthrough

Take one warehouse autonomy candidate from simulator evidence to a release decision.

This walkthrough answers three separate questions about observation latency, visibility degradation, and sim-to-real braking behavior—then combines them with a noncompensatory release policy.

Where the SDK fits

Adapt evidence from the systems you already run.

Simulator · logs · world model · physical testsDomain-to-evidence adapters
Causal reportBoundary reportTransport report
Release decision · CI · Reliability Studio

Reliability Studio does not dictate the simulator, policy framework, or trial store. The integration seam is a narrow adapter that translates records you already produce into typed SDK evidence.

End-to-end path

One candidate, three studies, one bounded decision.

  1. 01
    Instrument

    Record the state and metrics that operationally define a failure.

  2. 02
    Adapt

    Convert existing trial records into paired perturbations, boundary anchors, and physical/simulator pairs.

  3. 03
    Predeclare

    Fix thresholds, estimands, sample design, error allocation, and limitations before inspecting results.

  4. 04
    Run

    Execute causal, boundary, and transport studies independently.

  5. 05
    Persist

    Write every scientific report as canonical content-addressed JSON.

  6. 06
    Decide

    Apply a noncompensatory policy in which any critical blocker stops readiness.

  7. 07
    Gate

    Require readiness in CI while retaining the evidence directory when the build is blocked.

  8. 08
    Submit

    Send the same immutable reports to Reliability Studio idempotently.

  9. 09
    Regress

    Turn independently supported failures into replay capsules and regression packs.

Integration seam

Replace fixture builders with narrow domain adapters.

The executable studies expose build_observations as the seam. Preserve matching identity rather than inferring it: a pair must truly share its declared initial state and random context, and a physical anchor must correspond to its simulator anchor.

trial_adapter.pyPython
def build_observations(plan):
    records = trial_store.load(study_id=plan.plan_id)
    return tuple(
        PairedPerturbationObservation(
            plan_content_digest=plan.content_digest(),
            contrast_id=record.intervention_id,
            pair_id=record.pair_id,
            matched_context_digest=record.initial_state_digest,
            baseline_evidence_digest=record.baseline_digest,
            perturbed_evidence_digest=record.perturbed_digest,
            baseline_failed=record.baseline.minimum_margin_m < 0.0,
            perturbed_failed=record.perturbed.minimum_margin_m < 0.0,
        )
        for record in records
    )
Your existing outputSDK evidence recordStable identity
Baseline + intervention replayPairedPerturbationObservation

Initial state, seed, random stream

Trial at an operating anchorBoundaryObservation

Declared coordinate, sample index

Simulator + physical measurementPairedAnchorObservation

Commanded state, anchor ID

Run the workflow

Produce four reviewable artifacts.

The repository fixtures are deterministic, so the full workflow runs locally and in CI without a simulator. Replace their domain values and builders when adapting the workflow to a real system.

terminalShell
uv sync --package iso-obs

uv run python \
  packages/python-sdk/examples/warehouse_release_workflow.py \
  --output-dir evidence
evidence/├── causal-perturbation-report.json├── failure-boundary-report.json├── transportability-report.json└── release-decision.json
INTENTIONALLY BLOCKED

The included candidate is not release-ready. It demonstrates that a serious reliability workflow exposes unsupported claims and the experiments needed next instead of arranging a passing demo.

Read the result

The common condition cannot hide the rare critical one.

01

Latency harm

120 ms observation latency has a supported material harmful effect.

02

Boundary unresolved

The visibility map retains an unresolved band and a certified unreliable region.

03

Transfer limited

The rare low-friction stratum exceeds its sim-to-real discrepancy limit.

The next work is explicit: reduce latency sensitivity, collect fixed-design samples in the unresolved band, resolve or exclude the blackout region, and improve low-friction physics or narrow the supported envelope.

Operationalize

Use readiness in CI and retain the explanation.

With --require-ready, the example exits with status 2 whenever a critical requirement blocks release. Upload the evidence directory even on failure so the exact reports remain reviewable.

ci.shShell
uv run python \
  packages/python-sdk/examples/warehouse_release_workflow.py \
  --output-dir "evidence-${GITHUB_SHA}" \
  --require-ready
submit.shShell
iso evidence submit evidence/causal-perturbation-report.json \
  --project-id YOUR_PROJECT_ID
iso evidence submit evidence/failure-boundary-report.json \
  --project-id YOUR_PROJECT_ID
iso evidence submit evidence/transportability-report.json \
  --project-id YOUR_PROJECT_ID
IDEMPOTENT SUBMISSION

iso evidence submit uses report content identity, so retrying the same submission does not create duplicate evidence.

Before adapting

Protect the assumptions that make the evidence meaningful.

  • System, model, simulator, and environment versions are immutable.
  • Failure definitions and thresholds are chosen before analysis.
  • Matched comparisons truly share their declared context.
  • Critical operating strata cannot compensate for one another.
  • Real anchors cover the operating envelope being claimed.
  • Learned labels retain prediction and calibration provenance.
  • Discovery and confirmation datasets remain separate.
  • Reports, replay artifacts, and CI outputs are retained by digest.

Relevant API

The classes connecting this workflow.

Relevant SDK classes and functions
Class or functionImport fromUse it to
ReliabilityClientiso_obsInstrument the existing evaluation loop without replacing its simulator or policy.
PairedPerturbationObservationiso_obs.causal_perturbationsAdapt matched baseline and intervention outcomes.
CausalPerturbationReportiso_obs.causal_perturbationsCarry simultaneous effect intervals and campaign disposition.
BoundaryObservationiso_obs.failure_boundariesAdapt a fixed trial at one predeclared operating anchor.
FailureBoundaryMapiso_obs.failure_boundariesPartition the envelope into reliable, unresolved, and unreliable regions.
PairedAnchorObservationiso_obs.transportabilityBind matching simulator and physical evidence at one anchor.
TransportValidationReportiso_obs.transportabilityCarry local and overall discrepancy bounds plus limiting strata.
Read the maintained integration walkthrough