YAI Interfaces separates protocol compatibility, SDK package releases, generated surface provenance, conformance profiles, and repository releases.
This repository is currently
intf-6-conformance-generation-package-guardrails; active SDK package source
lives under packages/, while generated build outputs and SDK tombstone work
remain outside this wave.
The protocol version covers operations, transports, envelopes, errors, schemas, registries, mappings, lifecycle models, and compatibility contracts.
Protocol version is defined by interface artifacts, not by SDK packages or OpenAPI output.
The SDK package version is the language package version for Rust, Python, TypeScript, and C packages after SDK drain.
SDK packages must declare the protocol version and conformance profile version they support. SDK packages must not define protocol version.
Package versions remain language package versions:
- Rust crate:
yai-sdk-rust - Python distribution/import:
yailabs-yai-sdk/yai_sdk - TypeScript package:
@yailabs/sdk - C package: public include prefix
<yai_sdk/...>
C ABI compatibility is package/ABI compatibility, not protocol version. The old C command-id vocabulary remains compatibility vocabulary until a later conformance/provenance wave isolates it.
The generated surface version is the version or stamp attached to generated clients, schemas, OpenAPI output, registry outputs, and projection outputs.
Generated surfaces must record the protocol registry, schema, mapping, and generator inputs used to create them. INTF.6 requires generated surfaces to record source registry/schema/mapping versions or digests, generator name and version, generation command, generated surface version or stamp, source commit or release tag where available, and the conformance profile used for validation.
The conformance profile version identifies the required compatibility checks for protocol integrity, generated surface validity, and SDK package alignment.
The active INTF.6 package alignment profile is
conformance/profiles/interface-package-alignment.v1.md.
The repository release version identifies a release of the combined interfaces repository. It may contain multiple protocol, package, generated surface, and conformance profile versions, but it does not replace those layer-specific versions.
Interfaces releases must maintain a compatibility matrix that relates:
- repository release version;
- protocol version;
- conformance profile version;
- SDK package version for each language after drain;
- generated surface versions;
- OpenAPI projection version;
- minimum supported YAI runtime compatibility when known;
- Console projection compatibility when known.
Generated and package-facing surfaces must record provenance: input artifact versions or digests, generator identity, source commit or release tag, conformance profile, compatibility aliases, and deprecation state.
- Freeze protocol artifacts.
- Run protocol conformance checks.
- Generate or refresh generated surfaces.
- Validate generated surface provenance.
- Validate SDK packages against protocol and conformance profile versions.
- Update the compatibility matrix.
- Publish repository release notes.
- Publish package releases with explicit supported protocol and conformance versions.
Documentation must not collapse SDK package version into protocol version. Protocol, SDK package, generated surface, conformance profile, and repository release versions remain separate compatibility layers.
Package releases declare supported protocol and conformance versions. Current validation residuals remain explicit:
- Rust:
passed - Python:
no-tests-discovered - TypeScript:
dependency-install-required - C:
law-compatibility-export-required
Generated output exclusions are enforced by
tools/checks/check-generated-output-exclusion.sh. Package/protocol drift is
first guarded by tools/checks/check-package-protocol-drift.sh, which prints
manual-review warnings and does not replace full conformance.