Compatibility Matrix
Compatibility Matrix
Contract Stability
| Surface | Stability Expectation |
|---|---|
| Exit codes | Stable and versioned as API |
--json envelope |
Stable keys for major line |
Schema assets in schemas/v1 |
Backward-compatible additive changes |
composed_action_paths and proposed Action Contracts |
Additive v1 surfaces; IDs are stable join keys and contracts remain report-only |
| Proposed Action Contract v2 | Frozen reader-compatible schema; never silently rewritten to v3 |
| Proposed Action Contract v3 | Typed authority, precondition, confirmation, approval, compensation, revision, and imported-lifecycle contract |
| Action Contract artifact v1 | Opt-in JCS-digested portable envelope from wrkr export action-contracts |
| Action Contract packet v1 | Opt-in single-contract JSON/Markdown buyer projection from the normalized portable artifact; excluded from default reports |
| Action Contract conformance fixture v1 | Exact production-generated artifact and packet bytes pinned by producer/schema versions and SHA-256 digests; deliberate updates only |
decision_trace proof records |
Additive within the v1 proof-output line; reference by record_id, not by chain position |
| Manifest spec | Managed by spec_version |
Consumer Guidance
- Validate schema before processing exported artifacts.
- Treat unknown required fields as blocking.
- Treat regress drift exit
5as a stable CI failure signal. - Treat
composed_action_paths[*].claim_stateas a conservative evidence claim. Static or declared compositions are not runtime enforcement proof, andproposed_action_contract.report_only=truemeans Wrkr is proposing a downstream control shape, not enforcing it. - Read version
2artifacts with their frozen schema. New scans emit version3; migration is an explicit re-scan/export path, never an in-place upgrade of a v2 contract ID. - A v3 authority or precondition requirement has separate required constraint, observed value, evidence state, and freshness state.
declared,inferred,unknown, stale, or contradictory evidence is not an authority grant or a satisfied condition. - A v3 successor requires a matching explicit predecessor, exactly one higher revision, and
supersedes_ref. Gait/Axym activation, rejection, execution, effect, and verification observations are imported evidence only; they do not represent Wrkr state transitions. - Validate a portable envelope against
proposed-action-contract-artifact.schema.json; recompute its RFC 8785 JCS digest using its documented canonical content projection. Presentation timestamps are excluded, while a redacted share profile produces a distinct artifact identity. - Validate an Action Contract packet against
report/action-contract-packet.schema.json. Require an explicit contract selector, preserve the artifact/contract/family/revision/digest tuple, treat every non-verified or non-fresh requirement as a visible gap, and never treat the packet as activation authority. JSON and Markdown are two projections of the same bounded packet model. - Consume cross-product fixtures only from
scenarios/cross-product/action-contract-interop/expected/fixture-manifest.json. Wrkr owns and regenerates these exact bytes throughscripts/generate_action_contract_conformance.sh; Gait and Axym own the configured consumers. Hand-authored Gait/Axym projections are not compatibility evidence. A release receipt must name fixture version1, the fixture-manifest digest, producer/schema versions, the external consumer version, each unchanged artifact digest, andstatus: pass. - Treat
decision_trace_refs, decision-tracecomposition_ids[]/proposed_action_contract_refs[], evidence-bundlecomposition_refs[], andproof-records/decision-traces.jsonlas additive traceability surfaces; existing consumers should ignore them if unused. - Treat
agent_action_bom.summary.primary_view.composition_idand its boundedcomposition_stage_map[]as the buyer lead when present. If absent, existing path-first primary-view behavior remains compatible.
Command Anchors
wrkr export --format inventory --json
wrkr export action-contracts --state ./.wrkr/last-scan.json --json
wrkr report --template action-contract-packet --contract-id pac-0123456789abcdef --state ./.wrkr/last-scan.json --json
wrkr manifest generate --json
wrkr regress run --baseline ./.tmp/wrkr-regress-baseline.json --jsonQ&A
Which Wrkr surfaces are stable across the v1 contract line?
Exit codes, primary --json envelopes, and schemas in schemas/v1 are treated as stable API surfaces for consumers.
How should consumers handle unknown fields in JSON outputs?
Ignore unknown optional fields, but fail on missing required fields and schema violations.
How do I pin compatibility in CI pipelines?
Validate exported artifacts against the intended schema version and assert expected exit-code behavior for contract-critical commands. For Action Contract interoperability, run scripts/generate_action_contract_conformance.sh --check, then configure the external Gait/Axym consumer entrypoints and run scripts/test_action_contract_interop.sh. Missing consumers return dependency-missing exit 7; a Wrkr-local stub is not a passing release receipt.