Worktrunk Release Workflow
max-sixty/worktrunk
Walks a maintainer through cutting a Worktrunk release: sync the release branch, pass two test gates, review the changes, then publish.
Publish a crate release to crates.io with changelog, standalone release notes, git tag, and GitHub release.
$ npx skills add r3bl-org/r3bl-open-core --skill release-crate -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install r3bl-org/r3bl-open-core release-crate --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/r3bl-org/r3bl-open-core.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release-crate .claude/skills/release-crate && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "release-crate" agent skill from https://github.com/r3bl-org/r3bl-open-core/tree/main/.agents/skills/release-crate into .claude/skills/release-crate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-crate", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/r3bl-org/r3bl-open-core/tree/main/.agents/skills/release-crateType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add r3bl-org/r3bl-open-core --skill release-crate -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install r3bl-org/r3bl-open-core release-crate --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/r3bl-org/r3bl-open-core.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/release-crate .agents/skills/release-crate && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "release-crate" agent skill from https://github.com/r3bl-org/r3bl-open-core/tree/main/.agents/skills/release-crate into .agents/skills/release-crate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-crate", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add r3bl-org/r3bl-open-core --skill release-crate -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install r3bl-org/r3bl-open-core release-crate --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/r3bl-org/r3bl-open-core.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/release-crate .cursor/skills/release-crate && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "release-crate" agent skill from https://github.com/r3bl-org/r3bl-open-core/tree/main/.agents/skills/release-crate into .cursor/skills/release-crate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-crate", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/r3bl-org/r3bl-open-core.git --path .agents/skills/release-crate--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add r3bl-org/r3bl-open-core --skill release-crate -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install r3bl-org/r3bl-open-core release-crate --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/r3bl-org/r3bl-open-core.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/release-crate .gemini/skills/release-crate && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "release-crate" agent skill from https://github.com/r3bl-org/r3bl-open-core/tree/main/.agents/skills/release-crate into .gemini/skills/release-crate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-crate", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install r3bl-org/r3bl-open-core release-crateInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add r3bl-org/r3bl-open-core --skill release-crate -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/r3bl-org/r3bl-open-core.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/release-crate .github/skills/release-crate && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "release-crate" agent skill from https://github.com/r3bl-org/r3bl-open-core/tree/main/.agents/skills/release-crate into .github/skills/release-crate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-crate", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add r3bl-org/r3bl-open-core --skill release-crate -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install r3bl-org/r3bl-open-core release-crate --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/r3bl-org/r3bl-open-core.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/release-crate .opencode/skills/release-crate && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "release-crate" agent skill from https://github.com/r3bl-org/r3bl-open-core/tree/main/.agents/skills/release-crate into .opencode/skills/release-crate/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-crate", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
release-cratePublish a crate release to crates.io with changelog, standalone release notes, git tag, and GitHub release.
Release Crate is an agent skill from r3bl-org/r3bl-open-core. Publish a crate release to crates.io with changelog, standalone release notes, git tag, and GitHub release. Use when releasing a new version of any workspace crate.
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Changelog and release notes. It works with GitHub, Rust, Git and Model Context Protocol. The repository describes itself as: TUI framework and developer productivity apps in Rust 🦀. The licence is Apache-2.0.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 89db352. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
cargogitghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Release Crate loads about 2.4k tokens when it runs. Until then it costs about 45 tokens; SKILL.md has 632 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from r3bl-org/r3bl-open-core at commit 89db352, republished under its Apache-2.0 licence (© r3bl-org). 632 words, ~2,361 tokens.
.claude/skills/release-crate/SKILL.md (or your agent's skills folder)./release <crate>build-infra, tui, cmdr,
rust-analyzer-mcp-server, analytics_schemar3bl- prefix for binary crates and r3bl_ prefix for
library crates - the prefix is applied to the folder name of the crate (e.g.,
r3bl_tui crate is in tui folder, r3bl-cmdr crate is in the cmdr folder, and
r3bl-rust-analyzer-mcp-server is in the rust-analyzer-mcp-server folder).Cargo.toml file of the crate to verify the crate name and current version
before executing the release workflow.Before starting a release, verify:
main and working tree is clean./check.fish --full (or ./check.fish --check + ./check.fish --test) passes cleanlyEvery release note must begin with a standardized introductory block to maximize discoverability across social and community channels (Hacker News, Reddit r/rust, LinkedIn, GitHub Releases):
r3bl_tui (Core Library)> **r3bl_tui** is a fully async, immediate-mode TUI framework for Rust inspired by React, Elm, and web technologies. It features flexbox layouts, CSS-like styling, reactive state architecture, a custom Markdown renderer with syntax highlighting, gradient colors, emoji/grapheme clustering, modal dialogs, mouse support, async non-blocking readline, and diff-based rendering optimized for SSH. Built with zero-copy gap buffers, SIMD-friendly offscreen buffers (`Flat2DArray`), zero-allocation ANSI string generation, and VT100 PTY multiplexing primitives.
Add to `Cargo.toml`:
```toml
[dependencies]
r3bl_tui = "<version>"
### `r3bl-cmdr` (CLI & Productivity Apps)
```markdown
> **r3bl-cmdr** is a suite of fast, fully async TUI & CLI developer productivity tools built on `r3bl_tui`.
>
> - 🌿 **`giti`**: Interactive Git CLI with visual branch selection and streamlined commit workflows.
> - 📝 **`edi`**: Terminal Markdown editor featuring syntax highlighting, gradient colors, emoji support, SSH-optimized diff-rendering, and a high-performance zero-copy gap buffer.
> - ⚡ **`env-source`**: Cross-platform environment loader that evaluates shell scripts across POSIX sh, Fish, PowerShell, and cmd.exe without blocking.
Install with:
```bash
cargo install r3bl-cmdr --force
### `r3bl-build-infra` (Tooling & Formatting)
```markdown
> **r3bl-build-infra** provides developer tools and utilities for Rust projects and documentation automation.
>
> - 📐 **`cargo-rustdoc-fmt`**: CLI tool that formats Markdown tables and automatically converts inline code references into clean reference-style intra-doc links with technical term linking.
Install with:
```bash
cargo install r3bl-build-infra --force
### `r3bl-rust-analyzer-mcp-server` (AI Coding Agent MCP Server)
```markdown
> **r3bl-rust-analyzer-mcp-server** is a high-performance Model Context Protocol (MCP) server for `rust-analyzer`. Built with pure Rust standard library threads (no async runtime overhead) to provide lightning-fast AST code navigation, type hover, definition lookup, code actions, and compiler diagnostics directly to AI coding agents (Claude, Antigravity, Cursor, etc.).
Install with:
```bash
cargo install r3bl-rust-analyzer-mcp-server --force
---
## Release Workflow
Follow these steps in exact sequential order. Reference `docs/release-guide.md` for canonical examples.
### Step 1. Determine Crate and Version
- Identify the crate directory from the argument: `tui`, `build-infra`, `cmdr`, `rust-analyzer-mcp-server`, `analytics_schema`
- Read `<crate>/Cargo.toml` to find the current version
- Determine the new version (ask the user if not specified)
- Identify if this is a **binary crate** (`build-infra`, `cmdr`, `rust-analyzer-mcp-server`) or **library crate** (`tui`, `analytics_schema`)
### Step 2. Bump Version in `<crate>/Cargo.toml`
- Update the `version` field to the new version
- If releasing a dependent crate, update its internal dependency on other workspace crates (e.g., `r3bl_tui = { path = "../tui", version = "X.Y.Z" }`)
### Step 3. Update `CHANGELOG.md` with Bi-Directional Link
- Add the new version entry under the crate's section in `CHANGELOG.md` (before existing entries)
- Add the bi-directional link callout to the top of the version header pointing to the GitHub Release page:
```markdown
### vX.Y.Z (YYYY-MM-DD)
> 🔗 **Release Notes & Migration Guide**: [vX.Y.Z-<crate>](https://github.com/r3bl-org/r3bl-open-core/releases/tag/vX.Y.Z-<crate>)CHANGELOG.md to include the new entrydocs/release-notes/<crate>/vX.Y.Z.mdmkdir -p docs/release-notes/<crate>docs/release-notes/<crate>/vX.Y.Z.md containing:CHANGELOG.md:## 📄 Full Changelog
- [<crate> vX.Y.Z Changelog Entry](https://github.com/r3bl-org/r3bl-open-core/blob/vX.Y.Z-<crate>/CHANGELOG.md#anchor)docs/release-guide.mdcargo update --workspace
./check.fish --fmt
./check.fish --clippy
./check.fish --quick-doc
./check.fish --testcd <crate> && cargo readme > README.md && cd ..Note: Only run this for crates where src/lib.rs is the Single Source of Truth (SSOT) for README.md (tui, build-infra, cmdr). Do NOT run this for rust-analyzer-mcp-server where README.md is hand-crafted and maintained directly for crates.io.
cd <crate> && cargo publish --dry-run --allow-dirty --no-verify && cd ..The --no-verify flag skips re-compilation of the packaged tarball, which fails with the wild linker configured in .cargo/config.toml. The build/test/clippy checks in Step 6 already verify correctness.
Verify that the dry-run succeeds before proceeding.
CRITICAL: Use AskUserQuestion (or request confirmation) before running cargo publish. This is a non-reversible action that publishes to crates.io.
Present:
Stage only the modified files for this crate release explicitly (avoid blanket git add -A):
git add <modified-crate-files>
git commit -m "vX.Y.Z-<crate>"
git tag -a vX.Y.Z-<crate> -m "vX.Y.Z-<crate>"Note: Do NOT use -S for signing - follow the project's git workflow conventions.
cd <crate> && cargo publish --no-verify --allow-dirty && cd ..If downstream workspace crates depend on this newly published version:
cargo search <crate> reports the new version before proceeding to publish dependent crates.git push origin main && git push origin vX.Y.Z-<crate>--notes-filegh release create vX.Y.Z-<crate> --title "vX.Y.Z-<crate>" --notes-file docs/release-notes/<crate>/vX.Y.Z.mdFor binary crates (build-infra, cmdr, rust-analyzer-mcp-server):
cargo install --path <crate> --force<crate>/Cargo.toml (and dependency versions updated)CHANGELOG.md updated (entry with tag-pinned release notes link + TOC)docs/release-notes/<crate>/vX.Y.Z.md created with intro, highlights, and changelog linkdocs/release-guide.md updated (version in script block)cargo readmecargo publishvX.Y.Z-<crate>)cargo search <crate>) if other crates depend on itmain + tag)--notes-filecargo install --path <crate> --force (if applicable)/release - Explicitly invokes this skill© r3bl-org, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/release-crate of r3bl-org/r3bl-open-core.
Open the folder on GitHubat commit 89db352
Release Crate next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Release Crate this skillr3bl-org/r3bl-open-core | 485 | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Worktrunk Release Workflowmax-sixty/worktrunk | 9.1k | — | ~6.9k | Automated safety check: Pass | Custom licence | |
| Git Releasewesammustafa/opencode-primer | 398 | — | ~409 | Automated safety check: Pass | MIT | |
| Release Managementtermide/termide | 172 | — | ~6.8k | Automated safety check: Pass | MIT | |
| Release Changelog HarnessArenukvern/mcp_flutter | 386 | — | ~2.6k | Automated safety check: Pass | MIT | |
| Release WorkflowGoldziher/spikard | 123 | — | ~909 | Automated safety check: Pass | MIT |
max-sixty/worktrunk
Walks a maintainer through cutting a Worktrunk release: sync the release branch, pass two test gates, review the changes, then publish.
wesammustafa/opencode-primer
Draft release notes from merged PRs, propose a semver bump, and emit a copy-pasteable gh release create command.
termide/termide
Prepare and publish a project release with version updates, changelog generation, tagging, and validation
Arenukvern/mcp_flutter
Chooses ecosystem-native release and changelog tooling (Changesets, Melos, release-plz) plus binary distribution (GitHub Release tarballs, install.sh) when the product is an executable.
Goldziher/spikard
Release/publish the spikard Rust core crate and CLI end-to-end.
jamiepine/voicebox
Writes or refreshes the Unreleased section of CHANGELOG.md as a themed narrative built from the commits, PRs and diff since the last version tag.
r3bl-org/r3bl-open-core
Analyze log files by stripping ANSI escape sequences first. An agent skill from r3bl-org/r3bl-open-core.
r3bl-org/r3bl-open-core
Establish performance baselines and detect regressions using flamegraph analysis.
r3bl-org/r3bl-open-core
Apply type-safe bounds checking patterns using VPIndex/VPLength types instead of usize.
r3bl-org/r3bl-open-core
Apply private modules with public re-exports (barrel export) pattern for clean API design.
r3bl-org/r3bl-open-core
Run comprehensive Rust code quality checks including compilation, linting, documentation, and tests.
r3bl-org/r3bl-open-core
Audit and verify test coverage for a specific file or module, ensuring all custom logic branches, state transitions, and boundary conditions are covered while strictly eliminating dependency test…
Works with
Categories
Publish a crate release to crates.io with changelog, standalone release notes, git tag, and GitHub release. Release Crate is an agent skill from r3bl-org/r3bl-open-core.io with changelog, standalone release notes, git tag, and GitHub release.
Release Crate fits situations like: releasing a new version of any workspace crate; tasks that involve Changelog and release notes.
Run `npx skills add r3bl-org/r3bl-open-core --skill release-crate -a claude-code`. Or copy the skill folder (.agents/skills/release-crate in r3bl-org/r3bl-open-core) into .claude/skills/release-crate in your project. Claude Code loads it when a task matches its description.
Run `npx skills add r3bl-org/r3bl-open-core --skill release-crate -a codex`. Or copy the skill folder (.agents/skills/release-crate in r3bl-org/r3bl-open-core) into .agents/skills/release-crate in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add r3bl-org/r3bl-open-core --skill release-crate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release-crate, .gemini/skills/release-crate, .github/skills/release-crate and .opencode/skills/release-crate in your project.
Going by SKILL.md and its folder, Release Crate needs the command-line tools its instructions call (cargo, git and gh).
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Release Crate is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Release Crate: Worktrunk Release Workflow (max-sixty/worktrunk, 9.1k stars), Git Release (wesammustafa/opencode-primer, 398 stars), Release Management (termide/termide, 172 stars) and Release Changelog Harness (Arenukvern/mcp_flutter, 386 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
r3bl-org (a GitHub organization) maintains it in r3bl-org/r3bl-open-core, which has 485 GitHub stars. The repository holds 25 skills in this directory. The repository was last updated on October 8, 2026.
Source: r3bl-org/r3bl-open-core on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.