031-public-api-and-release-family
Public API facade, compatibility policy and release family (amends 021)
Amends spec 021 so the first public release becomes a release family: the existing eight crates plus `rustev-pkg-lodging`, a facade crate `rustev` with no default features and one optional feature per adoptable slice, further integration crates as each lands, native and WebAssembly npm packages, a multi-arch service container image and prebuilt CLI binaries. Fixes one compatibility policy for every public surface (Rust API, documents, protocols, npm packages, service API, PlanId, MSRV), a supply chain of CycloneDX SBOMs, `cargo deny`, reproducible package checks, signed tags, signed artifacts with stated SLSA build provenance, npm provenance where the registry accepts it, a changelog generated from the governed corpus, and `cargo semver-checks` against the previous release. Narrowly amends spec 001 3.4.4, spec 010 I-2 and spec 008 for the facade and lodging. Approved (A-27) under R-39. Approval authorizes implementation and candidate evidence; publication of the first release is authorized only by the conditional owner act quoted in section 3.11, and no other release, yank, repair version, workflow change without the owner's environment approval, or availability claim is authorized.
Read the full pinned specification ↗Relationships
depends on
depended on by
- 034-parameterized-definitions
- 039-model-backed-rank
- 040-decision-explanation
- 041-ranking-and-rubric-metrics
- 042-decision-service-and-remote-seams
- 044-runtime-optimization-increment-2
- 045-command-surface-release-layer
- 050-wasm-without-parameterized-definitions
- 053-signed-release-candidates
- 054-npm-rustev-scope
- 056-release-0-1-1-and-consumer-qualification
- 058-one-tagged-run-releases-the-family
- 059-shared-remote-transport-by-dependency
- 060-the-service-image-in-the-release
- 061-host-scored-repeat-sets
- 063-node-binding-parity
- 064-selection-gate-case-regressions
- 065-selection-gate-run-integrity
- 066-segment-ancestry-predicate
- 067-node-live-repeat-runs
amends
Claimed units
- establishes
{ "kind": "directory", "path": "integrations/rustev/" } - establishes
{ "kind": "directory", "path": "tools/rustev-release/" } - establishes
{ "kind": "file", "path": ".cargo/config.toml" } - extends
{ "nature": "amending", "spec": "001-boundaries-and-authority", "unit": { "kind": "file", "path": "Cargo.toml" } } - extends
{ "nature": "amending", "spec": "001-boundaries-and-authority", "unit": { "kind": "file", "path": "Cargo.lock" } } - extends
{ "nature": "additive", "spec": "001-boundaries-and-authority", "unit": { "kind": "file", "path": "Makefile" } } - extends
{ "nature": "additive", "spec": "001-boundaries-and-authority", "unit": { "kind": "directory", "path": "scripts/acceptance/" } } - extends
{ "nature": "amending", "spec": "001-boundaries-and-authority", "unit": { "kind": "directory", "path": "tools/rustev-boundaries/" } } - extends
{ "nature": "amending", "spec": "002-decision-contract-and-pure-core", "unit": { "kind": "file", "path": "crates/rustev-contract/Cargo.toml" } } - extends
{ "nature": "amending", "spec": "002-decision-contract-and-pure-core", "unit": { "kind": "file", "path": "crates/rustev-core/Cargo.toml" } } - extends
{ "nature": "amending", "spec": "003-runtime-execution-and-evidence", "unit": { "kind": "file", "path": "crates/rustev-runtime/Cargo.toml" } } - extends
{ "nature": "amending", "spec": "004-evaluation-and-replay", "unit": { "kind": "file", "path": "crates/rustev-eval/Cargo.toml" } } - extends
{ "nature": "amending", "spec": "005-reference-backends", "unit": { "kind": "file", "path": "backends/rustev-backend-rules/Cargo.toml" } } - extends
{ "nature": "amending", "spec": "006-cli-surface", "unit": { "kind": "file", "path": "crates/rustev-cli/Cargo.toml" } } - extends
{ "nature": "amending", "spec": "007-support-routing-package", "unit": { "kind": "file", "path": "packages/rustev-pkg-support-routing/Cargo.toml" } } - extends
{ "nature": "amending", "spec": "008-reference-package-lodging", "unit": { "kind": "file", "path": "packages/rustev-pkg-lodging/Cargo.toml" } } - extends
{ "nature": "additive", "spec": "008-reference-package-lodging", "unit": { "kind": "file", "path": "packages/rustev-pkg-lodging/LICENSE" } } - extends
{ "nature": "amending", "spec": "009-remote-adapter-protocol", "unit": { "kind": "file", "path": "integrations/rustev-remote-http/Cargo.toml" } } - extends
{ "nature": "amending", "spec": "028-opentelemetry-evidence-sink", "unit": { "kind": "file", "path": "integrations/rustev-otel/Cargo.toml" } } - extends
{ "nature": "additive", "spec": "028-opentelemetry-evidence-sink", "unit": { "kind": "file", "path": "integrations/rustev-otel/LICENSE" } }
Source headings
- 031: Public API facade, compatibility policy and release family (amends 021)
- 1. Purpose
- 2. Territory
- 2.1 Current state (observed 2026-10-16)
- 2.2 What changes
- 2.3 What does not change
- 3. Behavior
- 3.1 Release family and layer order
- 3.2 The facade crate `rustev`
- 3.3 Boundary amendment for the facade
- 3.4 Feature map and staged features
- 3.5 Partial-adoption subsets
- 3.6 Compatibility policy
- 3.7 Plan identity stability
- 3.8 API compatibility checks
- 3.9 Supply chain
- 3.10 Changelog from implementation records
- 3.11 Publication authority
- 3.12 CI and release workflows
- 3.13 Binding principles of #76
- 4. Out of scope
- 5. Observable negative cases
- Acceptance
- Verification
- Implementation record
- Decisions at approval
Frozen anchors
No frozen anchors declared.