Reference

Lifecycle Proof

Prove a bounded service start, readiness, assertion, and teardown transaction.

referenceautomation buildersintermediatestable2026-05-30

Use this for a declared lifecycle transition

ota proof lifecycle owns one workflow-declared service transaction instead of asking CI to copy start and stop shell commands.

It proves only the selected manager boundary. It is not application-output, deployment, or repo-global proof.

Archive a bounded lifecycle proofsh
ota proof lifecycle --workflow smoke --json --archive .

Declare service authority once

The workflow references an existing service manager. Start, stop, readiness, and dependency order remain on the canonical service surface rather than being duplicated in workflow shell.

Compose-managed lifecycle proofyaml
services:  database:    manager:      kind: compose      name: app      file: compose.yaml      service: database    lifecycle:      teardown_assertion: manager_inactive workflows:  smoke:    run:      task: build    proof:      lifecycle:        services: [database]        assertion:          task: assert-database

Read the boundary, not only the green result

  • Ota obtains cleanup authority before start and finalizes leased services in reverse order after success, failure, or interruption.
  • manager_inactive requires a typed manager observation. A failed HTTP or TCP probe never proves a service stopped.
  • boundary_terminated is narrower: it proves Ota removed its exact ephemeral container session after structured manager commands, not that a host process is absent. Machine consumers should require the same boundary_identity in archive scope and every isolated service record.
  • A failed isolated-session removal is runner-attested incomplete cleanup. It cannot become boundary_terminated or manager-derived inactivity evidence.
  • Read proof_verdict and not_proved[]; a successful lifecycle transaction still retains application-output and broader-repository boundaries.