Worktrunk Tend CI Guidance
max-sixty/worktrunk
Adds Worktrunk-specific rules to the tend CI workflows: Codecov polling, Rust test commands, labels and review criteria for pull requests handled in CI.
Cut a release of a Rust crate and publish to crates.io, with externally-gated merge and publish steps.
$ npx skills add imbue-ai/offload --skill release-to-crates -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install imbue-ai/offload release-to-crates --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/imbue-ai/offload.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release-to-crates .claude/skills/release-to-crates && 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-to-crates" agent skill from https://github.com/imbue-ai/offload/tree/main/.agents/skills/release-to-crates into .claude/skills/release-to-crates/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-to-crates", 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/imbue-ai/offload/tree/main/.agents/skills/release-to-cratesType 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 imbue-ai/offload --skill release-to-crates -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install imbue-ai/offload release-to-crates --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/imbue-ai/offload.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/release-to-crates .agents/skills/release-to-crates && 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-to-crates" agent skill from https://github.com/imbue-ai/offload/tree/main/.agents/skills/release-to-crates into .agents/skills/release-to-crates/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-to-crates", 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 imbue-ai/offload --skill release-to-crates -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install imbue-ai/offload release-to-crates --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/imbue-ai/offload.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/release-to-crates .cursor/skills/release-to-crates && 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-to-crates" agent skill from https://github.com/imbue-ai/offload/tree/main/.agents/skills/release-to-crates into .cursor/skills/release-to-crates/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-to-crates", 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/imbue-ai/offload.git --path .agents/skills/release-to-crates--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 imbue-ai/offload --skill release-to-crates -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install imbue-ai/offload release-to-crates --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/imbue-ai/offload.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/release-to-crates .gemini/skills/release-to-crates && 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-to-crates" agent skill from https://github.com/imbue-ai/offload/tree/main/.agents/skills/release-to-crates into .gemini/skills/release-to-crates/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-to-crates", 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 imbue-ai/offload release-to-cratesInstalls 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 imbue-ai/offload --skill release-to-crates -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/imbue-ai/offload.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/release-to-crates .github/skills/release-to-crates && 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-to-crates" agent skill from https://github.com/imbue-ai/offload/tree/main/.agents/skills/release-to-crates into .github/skills/release-to-crates/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-to-crates", 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 imbue-ai/offload --skill release-to-crates -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install imbue-ai/offload release-to-crates --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/imbue-ai/offload.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/release-to-crates .opencode/skills/release-to-crates && 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-to-crates" agent skill from https://github.com/imbue-ai/offload/tree/main/.agents/skills/release-to-crates into .opencode/skills/release-to-crates/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-to-crates", 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-to-cratesCut a release of a Rust crate and publish to crates.io, with externally-gated merge and publish steps.
Release To Crates is an agent skill from imbue-ai/offload. Cut a release of a Rust crate and publish to crates.io, with externally-gated merge and publish steps.
Its SKILL.md is about 2.3k 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. It works with Rust and Git. The repository describes itself as: Offload your test computation to ephemeral compute. The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit d3675da. 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:
gitghcargoglabFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
crates.ioFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
CARGO_REGISTRY_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Release To Crates loads about 2.3k tokens when it runs. Until then it costs about 30 tokens; SKILL.md has 1,176 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 imbue-ai/offload at commit d3675da, republished under its MIT licence (© imbue-ai). 1,176 words, ~2,324 tokens.
.claude/skills/release-to-crates/SKILL.md (or your agent's skills folder).<!-- Generated by rust-bucket v0.9.7. DO NOT EDIT BY HAND. -->
Make the version-bump edits directly. A release bump is a mechanical release-engineering operation, not feature work, so it does not need to be routed through whatever feature-delegation process the repo otherwise follows.
cargo publish is irreversible: a crates.io version can never be
re-uploaded or reused. Always run cargo publish --dry-run first, and only publish
from a revision whose Cargo.toml version is confirmed not yet on crates.io.These three facts drive every branching step below:
.jj/ exists → this is a colocated jujutsu/git repo; use jj for all
commits/bookmarks/push, since raw git commands can corrupt jj state. Otherwise use
plain git.gh. GitLab → glab. If the required forge CLI is not on
PATH, stop and ask the human — do not improvise a web/manual flow.name from [package] in Cargo.toml.jj st shows no changes; @ is empty (or run jj new).git status clean.jj git fetch; confirm main == main@origin.git switch main && git pull --ff-only.version under [package] in Cargo.toml.User-Agent):curl -s -H "User-Agent: <crate>-release (<you@example.com>)" \
https://crates.io/api/v1/crates/<crate> \
| python3 -c "import sys,json; print(json.load(sys.stdin)['crate']['max_version'])"crate object — treat as "never published".)Cargo.toml version != crates.io max_version, stop and report — the repo
is in an unexpected state (a prior release was half-finished or the tree is stale).<user>/bump-version-v<new-version> (e.g. danver/bump-version-v0.9.9).jj desc -m "Bump version to <new>" (add a body explaining the bump);
then edit, then jj bookmark create <user>/bump-version-v<new> -r @.git switch -c <user>/bump-version-v<new>.Cargo.toml: set version = "<new>".cargo build. This updates the crate's own entry in
Cargo.lock (easy to forget; the published package must carry a consistent lockfile).Cargo.toml and Cargo.lock, both just the
version line. jj diff --git / git diff.Bump version to <new>, no trailing period, no
Conventional-Commits prefix; optional body noting it's a non-breaking patch release.jj git push -b <bookmark> --allow-new (new bookmarks need --allow-new).git push -u origin <branch>.gh pr create --base main --head <branch> --title "Bump version to <new>" \
--body "Patch release of \`<crate>\`. Non-breaking; bumps Cargo.toml and Cargo.lock
from <old> to <new> in preparation for publishing to crates.io.
Last published version: <old>."gh pr checks <pr> --watch --interval 30gh pr view <pr> --json state,mergeable,mergeStateStatusgh pr merge <pr> --mergestate=MERGED.jj git fetch; then jj new main -m "Publish <crate> <new> to crates.io".git switch main && git pull --ff-only.grep '^version' Cargo.toml shows <new> (the merge brought the bump in).cargo publish --dry-runinclude list in Cargo.toml.cargo publishcargo login, or CARGO_REGISTRY_TOKEN in the env.)max_version == <new>.Publishing to crates.io does not create a git tag or a forge (GitHub/GitLab) release — do this explicitly so the version is reflected in the repo's history.
v<new> (e.g. v0.9.6). Target the merged trunk commit
that carries the new version (main HEAD from Step 6), referenced by its full SHA.git tag -l | sort -V) and find the most
recent one that actually has a forge release. If earlier published versions were never
tagged, scope the changelog from the last released tag and say so in the body, so
the skipped versions are not lost.<Crate> <new>) and notes (group commits since that tag by theme;
end with a compare/<lasttag>...v<new> changelog link). Write the body to a file and
pass it with --notes-file to avoid shell-quoting issues.gh release create v<new> --target <main-sha> --title "<Crate> <new>" \
--notes-file <notes-file> --latestgh release view v<new> shows draft=false, the expected targetCommitish,
and the tag (git ls-remote --tags origin v<new>) points at <main-sha>.Note for jj repos: gh release create creates the tag on the GitHub side, so it does
not touch local jj/git refs and is safe to run from a colocated repo.
@:
jj abandon @ (publishing changes no tracked files). Confirm jj st is clean.git status is clean.Each step maps to a swappable provider so the skill can support other stacks:
| Concern | GitHub + jj (this run) | git-only / GitLab variant |
|---|---|---|
| Commit/branch | jj desc + jj bookmark create | git switch -c |
| Push | jj git push -b … --allow-new | git push -u origin … |
| Open PR/MR | gh pr create | glab mr create |
| CI gate | gh pr checks --watch | glab ci status / pipeline poll |
| Merge | gh pr merge --merge | glab mr merge |
| Version truth | Cargo.toml ↔ crates.io API | same |
| Publish | cargo publish (+ --dry-run) | same |
| Tag release | gh release create v<new> | glab release create v<new> |
User-Agent; always send one.jj bookmarks do not auto-advance; create/move the bookmark to @ before pushing.--allow-new on push.cargo build leaves Cargo.lock's own package entry stale.--dry-run pre-flight is mandatory, not optional.cargo publish does not tag the repo; the forge release (Step 8) is a separate step.git tag -l before
scoping release notes so a previously-published-but-untagged version is not skipped.© imbue-ai, MIT. 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-to-crates of imbue-ai/offload.
Open the folder on GitHubat commit d3675da
Release To Crates 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 To Crates this skillimbue-ai/offload | 125 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Worktrunk Tend CI Guidancemax-sixty/worktrunk | 9.2k | — | ~6.4k | Automated safety check: Pass | Custom licence | |
| Worktrunk Release Workflowmax-sixty/worktrunk | 9.2k | — | ~7.5k | Automated safety check: Pass | Custom licence | |
| RustPython Stdlib UpgradeRustPython/RustPython | 22k | — | ~876 | Automated safety check: Pass | MIT | |
| BrDicklesworthstone/beads_rust | 1.1k | — | ~2.7k | Automated safety check: Pass | MIT | |
| Debug Tuitrasta298/keifu | 810 | — | ~1.3k | Automated safety check: Pass | MIT |
max-sixty/worktrunk
Adds Worktrunk-specific rules to the tend CI workflows: Codecov polling, Rust test commands, labels and review criteria for pull requests handled in CI.
max-sixty/worktrunk
Walks a maintainer through cutting a Worktrunk release: sync the release branch, pass two test gates, review the changes, then publish.
RustPython/RustPython
Upgrades a Python standard library module from CPython into RustPython with update_lib, then triages and marks the tests that still fail.
Dicklesworthstone/beads_rust
Official skill for beadsrust (br), a local-first, dependency-aware issue tracker for AI agents.
trasta298/keifu
Drive and debug the real keifu TUI autonomously via its remote-control debug server (--debug-listen) — launch headlessly, inject keys/mouse, dump the rendered screen as text, and inspect app state.
max-sixty/worktrunk
CLI output standards for worktrunk: message functions, ANSI color nesting and the shell integration that changes directory after the wt command exits.
imbue-ai/offload
Activate when you see offload.toml in a repo, offload referenced in build targets (justfile, Makefile, scripts), or when you need to run a large test suite in parallel.
imbue-ai/offload
Strip AI-codegen cruft from a branch — defensive checks the type system should make unrepresentable, redundant validation, speculative abstraction, no-op wrappers — while preserving load-bearing…
imbue-ai/offload
Run local vs Offload benchmarks for mng and sculptor, then update the Benchmarks section of the Offload README.
imbue-ai/offload
Onboard a repository to use Offload for parallel test execution on Modal.
Categories
Cut a release of a Rust crate and publish to crates.io, with externally-gated merge and publish steps. Release To Crates is an agent skill from imbue-ai/offload.io, with externally-gated merge and publish steps.
Release To Crates fits situations like: development work in your project.
Run `npx skills add imbue-ai/offload --skill release-to-crates -a claude-code`. Or copy the skill folder (.agents/skills/release-to-crates in imbue-ai/offload) into .claude/skills/release-to-crates in your project. Claude Code loads it when a task matches its description.
Run `npx skills add imbue-ai/offload --skill release-to-crates -a codex`. Or copy the skill folder (.agents/skills/release-to-crates in imbue-ai/offload) into .agents/skills/release-to-crates 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 imbue-ai/offload --skill release-to-crates -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-to-crates, .gemini/skills/release-to-crates, .github/skills/release-to-crates and .opencode/skills/release-to-crates in your project.
Going by SKILL.md and its folder, Release To Crates needs the command-line tools its instructions call (git, gh, cargo and glab) and credentials named CARGO_REGISTRY_TOKEN. Our summary lists: Python 3; A credential in CARGO_REGISTRY_TOKEN.
SKILL.md names 1 domain. As links in the text: crates.io. 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 To Crates is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.3k 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 To Crates: Worktrunk Tend CI Guidance (max-sixty/worktrunk, 9.2k stars), Worktrunk Release Workflow (max-sixty/worktrunk, 9.2k stars), RustPython Stdlib Upgrade (RustPython/RustPython, 22k stars) and Br (Dicklesworthstone/beads_rust, 1.1k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
imbue-ai (a GitHub organization) maintains it in imbue-ai/offload, which has 125 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on September 25, 2026.
Source: imbue-ai/offload on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.