This repository releases the RMS specification, canonical skills, Codex adapter, examples, and the rms reference CLI as one coherent artifact set.
The release authority is the repository state at a signed or reviewed tag. Generated binaries, source crates, checksums, packaged skills, and documentation are distribution artifacts. They must not redefine RMS semantics.
| Artifact | Path or command | Purpose |
|---|---|---|
| RMS CLI crate | tooling/rust/rms/Cargo.toml |
Source package for the rms binary. |
| CLI module bundle | tooling/rust/rms/module.yaml |
Canonical module contract for the workbench itself. |
| Release preparation contract | tooling/rust/rms/contracts/prepare-rms-release.v1.yaml |
Receipt-gated release metadata mutation promise. |
| Release contract | tooling/rust/rms/contracts/release-check.v1.yaml |
Deterministic release-readiness promise. |
| Codex plugin wrapper | integrations/codex/rms/ |
Installable adapter that packages canonical skills. |
| Canonical skills | skills/*/SKILL.md |
Source of agent workflows. |
| Release workflow | .github/workflows/release.yml |
Tag-driven source and binary artifact publication. |
These versions must match before a release is accepted:
tooling/rust/rms/Cargo.toml package.version
tooling/rust/rms/module.yaml module.version
integrations/codex/rms/.codex-plugin/plugin.json version
The tag must be v<version>, for example v0.1.0 or v0.1.0-rc.1. The release workflow checks that the tag version matches the Cargo package version. rms release prepare <version> --root . --route-receipt <RUN_ID> updates the complete versioned metadata candidate after a dry-run; rms release check checks the Cargo, RMS module, and Codex plugin versions.
Run the canonical gate from a clean working tree:
cargo run -p rms --locked -- release check --root .
git diff --checkThe gate runs release metadata checks, formatting, Rust tests, RMS validation, RMS implementation verification, example composition, compatibility smoke tests, RMS package creation and verification smoke tests, scaffold roundtrips, example binding tests, release-binary smoke, clean-room PATH install smoke, Cargo packaging, and Codex plugin sync validation. It does not invoke optional AI providers.
Use --skip-cargo-package only for offline local checks where crates.io index access is unavailable.
rms release check is the publication gate for this RMS repository. It is not the release gate for every downstream RMS project.
For production-intended projects, use PRODUCTION.md and require:
rms check --environment --root .
rms check --root .
# Run focused project-native and RMS proof.
rms check --changes --root .
rms check --committed --root .The downstream CI template is templates/ci/github-actions-rms-project.yml. It installs a pinned RMS tag, checks out full git history for provenance, and runs the production-pilot RMS gate.
- Route the release task and run
rms release prepare <version> --root . --route-receipt <RUN_ID> --dry-run. - Run the same preparation command without
--dry-run; it updates Cargo, lockfile,rms-cli, plugin, CI template, reference, and changelog metadata without committing or publishing. - Run the local release gate.
- Create and push the tag:
git tag v<version>
git push origin v<version>Pushing a v* tag runs .github/workflows/release.yml. The workflow:
- verifies the tag version;
- runs
rms release check --root .; - builds runner-native release binaries for Linux, macOS, and Windows;
- packages the Rust source crate;
- emits SHA-256 checksum files;
- attaches artifacts to the GitHub release.
Use a release-candidate version only when the artifact should be exercised before the final tag:
0.1.0-rc.1
v0.1.0-rc.1
The workflow requires the tag version to match the Cargo package version exactly after removing the leading v. If an RC is cut, update the Cargo package, rms-cli module manifest, and Codex plugin manifest to the same RC version before tagging.
Each GitHub release should contain:
rms-<tag>-Linux-<arch>.tar.gz
rms-<tag>-Linux-<arch>.tar.gz.sha256
rms-<tag>-macOS-<arch>.tar.gz
rms-<tag>-macOS-<arch>.tar.gz.sha256
rms-<tag>-Windows-<arch>.zip
rms-<tag>-Windows-<arch>.zip.sha256
rms-<version>.crate
rms-<tag>-crate.sha256
Runner architecture is determined by GitHub Actions. The artifacts are native to the runner that built them.
For release users, prefer the GitHub release archive for their platform, then place rms on PATH.
For source users:
cargo install --path tooling/rust/rmsFor contributors who do not want to install:
cargo run -p rms -- check --root examples/minimalAfter installation:
rms check --environmentInside a source checkout:
rms explain "How does this module work?" --root examples/minimal
rms release check --root .A release is complete when:
- the release workflow is green;
- every expected artifact and checksum is attached;
rms --helpexposes the five-command surface from an extracted binary archive;rms check --environmentworks from an extracted binary archive;- release-binary and clean-room PATH install smoke pass in
rms release check --root .; rms release check --root .passes from source;- packaged Codex skills match canonical
skills/; - the release notes identify compatibility impact and operational caveats.