SDK guide / 07

Assemble a release argument without manufacturing a confidence score.

Promotion, transfer validation, assurance, and surveillance remain separate gates. Each answers a different question and preserves the scope and defeaters that limit its conclusion.

Release evidence

A chain of qualified questions—not one score.

  1. 01
    Promote

    Verify that a reproduced failure is coherent enough to become a durable regression asset.

  2. 02
    Execute

    Run the promoted pack against the proposed system version and complete every declared gate.

  3. 03
    Validate transfer

    Compare simulation with real anchors inside predeclared regions and tolerances.

  4. 04
    Challenge

    Bring independent evidence designed to find what the known regressions may have missed.

  5. 05
    Assemble

    Bind regressions, challenges, scope, policy, and open defeaters into one dossier.

  6. 06
    Monitor

    Tie post-deployment signals back to the exact scoped assurance report.

Regression promotion

Qualify the asset before using it as a gate.

Discovery regressions require coherent provenance. Release-gate candidates additionally require a meaningful replicated intervention association, one-minimal counterexample, simulation validation, a real-world anchor, and the correct canonical case.

promotion.pyPython
from iso_obs.promotion import (
    PromotionIntent,
    RegressionPromotionRequest,
    review_regression_promotion,
)

request = RegressionPromotionRequest(
    request_id="promote-blind-intersection",
    request_version="1",
    intent=PromotionIntent.RELEASE_GATE_CANDIDATE,
    source_failure_content_digest=failure.content_digest(),
    counterfactual_design_digest=design.content_digest(),
    counterfactual_report_digest=counterfactual_report.content_digest(),
    minimal_counterexample_report_digest=minimal.content_digest(),
    regression_pack_digest=regression_pack.content_digest(),
    condition_bindings=condition_bindings,
    limitations=("Requires execution against the proposed version.",),
)

review = review_regression_promotion(
    request,
    source_failure=failure,
    counterfactual_design=design,
    counterfactual_report=counterfactual_report,
    minimal_counterexample=minimal,
    regression_pack=regression_pack,
)
NOT A RELEASE DECISION

Release-gate-candidate readiness says that a pack is qualified for execution. The campaign must still complete and pass against the proposed system version.

External validity

State where simulation evidence transfers—and where it does not.

Use SimToRealValidityPlan for region-specific feature and failure-rate gap tolerances. Use TransportValidationPlan when the question is whether simulator discrepancy remains bounded within a declared anchor envelope.

NO UNIVERSAL SIMULATOR SCORE

Transfer evidence cannot be extrapolated beyond sampled regions, anchors, populations, or operating conditions. Unquantified sources remain blockers or restrictions.

Release assurance

Let the weakest blocking evidence govern.

Every required failure fingerprint must link to a qualified promotion and a release-eligible campaign. Independent passing challenge evidence is required for support within scope.

assurance.pyPython
from iso_obs.assurance import (
    ReleaseAssuranceDossier,
    evaluate_release_assurance,
)

dossier = ReleaseAssuranceDossier(
    dossier_id="policy-v18-warehouse-release",
    dossier_version="1",
    release_scope=release_scope,
    policy=assurance_policy,
    regression_evidence=known_failure_evidence_links,
    challenge_evidence=independent_challenge_evidence,
    defeaters=declared_defeaters,
    limitations=("Human release authority remains accountable.",),
)

report = evaluate_release_assurance(
    dossier,
    promotion_reviews=promotion_reviews,
    campaign_reports=completed_campaign_reports,
)
HUMAN AUTHORITY

supported_within_scope is technical decision support. It is not deployment authorization, a safety guarantee, or evidence outside the declared release scope.

Post-deployment

Escalate when new evidence challenges the scoped claim.

Sequential monitoring uses preregistered e-processes whose thresholds may be checked after every observation. Historical threshold crossings remain visible even if the current evidence value later falls.

monitor.pyPython
from iso_obs.surveillance import (
    SequentialMonitoringPlan,
    evaluate_sequential_surveillance,
)

report = evaluate_sequential_surveillance(
    monitoring_plan,
    assurance_report,
    ordered_observations,
)

Relevant API

Classes and capabilities in the release chain.

Relevant SDK classes and functions
Class or functionImport fromUse it to
RegressionPromotionRequestiso_obs.promotionBind a failure, mechanism evidence, minimality result, and regression pack.
RegressionPromotionReviewiso_obs.promotionReport discovery readiness or release-gate-candidate readiness.
SimToRealValidityPlaniso_obs.sim_to_realDeclare regions, features, real anchors, and acceptable transfer gaps.
SimToRealValidityReportiso_obs.sim_to_realAssess simulation/real gaps with familywise uncertainty control.
TransportValidationPlaniso_obs.transportabilityValidate discrepancy within an explicit anchor envelope.
ReleaseScopeiso_obs.assuranceBind system artifacts, operating domain, evidence envelope, and risk policy.
ReleaseAssuranceDossieriso_obs.assuranceAssemble regressions, independent challenges, and open defeaters.
ReleaseAssuranceReportiso_obs.assuranceReturn blocked, restricted, or supported-within-scope plus reason codes.
SequentialMonitoringPlaniso_obs.surveillanceTie anytime-valid monitoring signals to one assurance report.
SequentialSurveillanceReportiso_obs.surveillanceContinue monitoring or escalate scoped review after threshold crossing.