I work as a platform engineer and kept running into the same issue: the operational behavior of a service is never defined in one place.
Parts of it live across different tools:
APIs in OpenAPI Deployment assumptions in Helm values Runtime details in Kubernetes manifests Configuration in env vars Dependencies in READMEs or tribal knowledge
So platforms end up reverse-engineering how services behave.
Pacto is an attempt to define a machine-readable runtime contract for services.
A contract can describe things like:
interfaces (HTTP, gRPC, events) runtime semantics (stateless, stateful, hybrid) service dependencies configuration schema scaling expectations
All of this lives in a single pacto.yaml file that can be validated, diffed, and distributed as an OCI artifact.
The CLI currently supports: • validating contracts • detecting breaking operational changes (pacto diff) • resolving dependency graphs • packaging contracts as OCI artifacts
One thing I found particularly useful is making state semantics explicit, for example:
runtime.state.type: stateless | stateful | hybrid
This allows platforms to reason about storage, lifecycle and scaling without relying on implicit assumptions.
The project is still early but already usable. Curious to hear feedback from other platform or infrastructure engineers.