Last updated: 2026-03-19
This document is the single source of truth for OxDeAI release governance and release execution.
This policy covers:
- protocol specifications and artifacts
- release governance for published packages
- versioning rules and breaking-change boundaries
- release workflow, tagging, and provenance
- validation and publication checks
Audience: maintainers, contributors, and auditors.
Protocol stack packages (coordinated releases):
@oxdeai/core@oxdeai/sdk@oxdeai/conformance
Adapter packages (coordinated, independent version line from protocol stack):
@oxdeai/guard@oxdeai/langgraph@oxdeai/openai-agents@oxdeai/crewai@oxdeai/autogen@oxdeai/openclaw
Tooling package (independent release line):
@oxdeai/cli
Non-release packages for protocol versioning:
- examples (for example
examples/openai-tools,examples/langgraph) - internal tests (for example
@oxdeai/tests)
Examples and internal tests do not define protocol release status.
- The protocol stack (
core,sdk,conformance) MUST move on a shared version line. - Protocol milestones and compatibility claims MUST map to the shared protocol stack version.
@oxdeai/cliMAY release independently until declared stable under the protocol-stack line.- Examples/tests MUST NOT be used as authoritative protocol version indicators.
- MUST be backward compatible with prior
1.0.y. - MUST NOT change protocol semantics:
- canonicalization
- hashing/signature binding
- envelope
formatVersionbehavior - verification result semantics
- MAY include:
- documentation clarifications
- schema validation tightening aligned to existing behavior
- CI/tooling hardening
- non-breaking fixes
- Adds backward-compatible capabilities.
- MUST preserve stable protocol artifacts from
1.0.0.
- Required for breaking protocol/API changes.
The following require a major release:
- Changing
VerificationResultin a non-backward-compatible way - Changing
VerificationEnvelopeV1wire semantics - Changing violation-code semantics used by stateless verifiers
- Changing canonical hashing behavior for stable artifacts
- Removing/renaming documented public API symbols
- Coordinated protocol stack releases MUST use repo tags
vX.Y.Z. - Tags MUST point to the exact commit used for publication.
- Package-specific tags are discouraged for coordinated protocol releases.
- Tooling-only releases SHOULD use package-scoped tags to avoid protocol-tag ambiguity (for example
cli-v0.2.0). - If package-specific tags are introduced, mapping rules to protocol tags MUST be documented first.
Every protocol stack release MUST be documented in:
packages/core/CHANGELOG.mdpackages/sdk/CHANGELOG.mdpackages/conformance/CHANGELOG.md
Release notes MUST map npm versions to Git history (commit/tag references).
All required gates MUST pass before protocol tagging/publication:
pnpm install --frozen-lockfilepnpm buildpnpm testpnpm -C packages/core api:checkpnpm -C packages/core api:fingerprint:checkpnpm -C packages/conformance validate- Demo smoke checks when affected
Update API baselines only when API change is intentional and reviewed.
- Run:
pnpm -C packages/core api:reportpnpm -C packages/core api:fingerprint
- Review diffs:
packages/core/temp/core.api.mdpackages/core/etc/core.api.mdpackages/core/API_FINGERPRINT
- If approved, update baselines in the same PR with rationale.
- Re-run
api:checkandapi:fingerprint:check.
- Ensure clean working tree.
- Bump
core,sdk, andconformanceto one target version. - Update changelogs and release notes.
- Run required validation gates.
- Commit release changes.
- Create/push coordinated tag (
vX.Y.Z). - Publish packages in order:
@oxdeai/core@oxdeai/sdk@oxdeai/conformance
- Verify published npm versions.
If publication fails, resolve and retry from the same committed state, or cut a new patch release with explicit notes.
- npm publication is immutable; Git tags/commits provide provenance context.
- Published versions MUST correspond to committed and tagged repository state.
- Post-release fixes MUST ship as new versions; published versions MUST NOT be rewritten.
- Follow coordinated disclosure process in SECURITY.md.
- Release notes MUST mention security-relevant changes.
- Test signing material MUST be explicitly test-only and non-production.
Shared protocol-stack versioning is the current model.
If protocol package cadence diverges significantly, maintainers MAY adopt a new model. Any change MUST be documented here before use.