Release Kit
A canonical release workflow: one technology-agnostic method, per-technology bindings, and the rk CLI that carries and lands both.
What this is
Two products in one repository. The method is what a reader loads: method/ states the five-stage spine, the invariants, and the recovery paths, and bindings/ states where rust, python, and bash differ. The distribution is what a project installs: the rk binary, built from src/, embeds every distribution root — the method, the bindings, the landable files under snippets/, the spliced block texts under blocks/, the agent skills, and the pinned-tool registry — and lands the deterministic files with rk init.
The design in one sentence: work integrates on one trunk, a bot maintains one release pull request that bumps the version and the changelog, and merging it is the release that tags, publishes, and builds the artifacts.
Install
The binary is rk.
Quick paths
- Read the method: method/README.md, or
rk method --listanywhere. - Read a technology binding: bindings/, or
rk binding rust. - See what a project resolves to and what a landing would select:
rk profile --target ., which writes nothing. - Land the workflow in a project:
rk init --target .previews;--applywrites the files and the landing record. - See the candidate before it lands:
rk stage --target .writes this binary's proposed files and its version-matched knowledge into a disposable stage, kept through the landing and removed only byrk stage clean <path>. - Ask a landed project about itself:
rk status, with--checkfor a CI gate; take this binary's projection withrk upgrade, which replaces every recorded generated file, preserves every seeded and state file, and rewrites the receipt last; record a pre-record project already at the projection withrk adopt; classify a project before anything lands withrk assess. Each of these renders afresh from the installed binary and the target, reads no stage and no other release, and refuses an unattributed whole-file collision before its first write. - See the pinned tools and their freshness:
rk versions, andrk versions --checkto compare each pin upstream. - Take
rkthrough the tool manager a project already runs and keep it fresh:rk self-depend addprints the fragments for one manager and venue pair and seeds the file the project lacks;rk self-depend syncmoves the pin from.envrc;rk self-depend cleanremoves what a hand-rolled bump left. - Take another project as a dependency:
rk depend assess --source <path>reads how it distributes itself and how this project manages its tools;rk depend add --kind dev|prodprints the fragment or the native command, and--applyseeds a manager file only where none exists. - Check the host and load the whole surface:
rk doctorandrk usage. - Install the agent skills at user scope:
rk skill installpreviews;--applywrites~/.claude/skills/and~/.agents/skills/, plus what they share at~/.local/state/release-kit/skills/shared/. - Follow the recipe:
rk guide setuponce per repository,rk guide releasefor every release,rk guide backportfor a fix crossing to an older line,rk guide release-linesfor the line's own life,rk guide landingfor every landing write from stage to cleanup. - Start work an issue names:
rk issue start <issue>previews;--applymints the branch at the forge and seats it, withrk guide issueas the procedure. - Execute the repository-side setup:
rk setup --target .previews;--applyruns;rk setup checkproves it. - Read a forge's specifics:
rk forge githuborrk forge gitlab. - Audit what a setup run did:
rk runs listandrk runs show <id>. - Release this repository itself:
rk guidecarries the procedure; _docs/guides/release/ carries this repository's coordinates over it.
This repository dogfoods its own convention. The procedure lives in the shipped runbooks, served by rk guide; _docs/guides/release/ is this repository's overlay — the coordinates to export once, its deviations, and the transcript of a release cut end to end.
License
The method is under CC BY 4.0 and the distribution that lands it is under the MIT License. LICENSE states which side each file falls on, and rk license prints the terms the binary carries.