Compatibility Matrix
Compatibility Matrix
This matrix defines compatibility between producer and consumer surfaces.
Version Semantics
- This page is the contract-level source for version compatibility.
- Evergreen operational docs should not carry release tags in titles.
- Internal rollout labels belong in changelog and plan documents, not evergreen compatibility copy.
Version Matrix
| Gait CLI | PackSpec | gait pack verify behavior |
Legacy runpack verify via pack verify |
|---|---|---|---|
current 1.x release line |
1.0.0 | verifies PackSpec v1 (run, job, call) with additive verifier hardening and context-aware diff metadata where applicable |
supported |
| Action Contract producer/consumer | Artifact schema | Contract schema | Compatibility behavior |
|---|---|---|---|
Wrkr proposed_action_contract v1.14.0 -> Gait v1.4.0 |
1 | 3 | Gait validates one explicit report-only proposal; the committed activation compatibility pack covers valid scenarios with current-selection evidence; activations are separate signed artifacts and new revisions require reactivation |
| Gait consumer receipt | 1 | n/a | Direct deterministic JSON receipt; self_attestation=false, no execution/effect claim |
| Gait runtime classification/readiness/lifecycle | 1 | n/a | Additive pre-execution schemas; required readiness evidence is fail-closed, lifecycle records use Proof v0.7.0 relationship refs/correlation, and no surface claims execution/effect |
| Effect snapshot / contract / grade | 1.0.0 | 1.0.0 | Bounded before/after evidence with Proof JCS digests; pure expect/forbid/invariant grading is pass, fail, or inconclusive and never executes effects |
The activation compatibility pack under testdata/action-contract-interop/v1/
is generated from exact Wrkr proposal bytes by
scripts/action_contract_fixture_generator --check. Its six valid scenario
activations are marked development_signing: true, use the labeled fixture-only
seed documented by the manifest, and are rejected by default verification. The
three intentionally invalid Wrkr scenarios remain represented with explicit
non-activation reason codes. These fixtures prove byte/schema/signature
compatibility, not production authority or execution approval.
Stability Guarantees
Within major 1.x of PackSpec:
- additive fields are allowed
- unknown fields must be ignored by compatible readers
- required fields are not removed/renamed
Breaking changes require:
- major schema version bump
- explicit migration guidance
- compatibility-window policy documented in release notes
Producer Guidance
If you are emitting PackSpec outside Gait runtime:
- implement RFC 8785 canonicalization for digest/signature inputs
- keep zip output deterministic
- validate outputs with
gait pack verifyin CI, and treat wrong-key signature failures as hard verification failures even in standard mode when a verify key is supplied
Reference kit: docs/contracts/pack_producer_kit.md
Action Contract details: docs/contracts/action_contract_activation.md and
schemas/v1/action-contract/README.md.