Release
jaemk/self_update
Prepare a release (bump the crate version, update CHANGELOG.md with a migration guide for breaking changes, regenerate README, commit), or run a pre-release review.
Prepare a release (bump versions across all Cargo.toml files, update CHANGELOG.md, refresh the migration guide, regenerate README, commit), or run a pre-release review.
$ npx skills add jaemk/cached --skill release -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jaemk/cached release --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/jaemk/cached.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/release .claude/skills/release && 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" agent skill from https://github.com/jaemk/cached/tree/master/.agents/skills/release into .claude/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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/jaemk/cached/tree/master/.agents/skills/releaseType 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 jaemk/cached --skill release -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jaemk/cached release --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jaemk/cached.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/release .agents/skills/release && 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" agent skill from https://github.com/jaemk/cached/tree/master/.agents/skills/release into .agents/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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 jaemk/cached --skill release -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jaemk/cached release --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jaemk/cached.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/release .cursor/skills/release && 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" agent skill from https://github.com/jaemk/cached/tree/master/.agents/skills/release into .cursor/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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/jaemk/cached.git --path .agents/skills/release--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 jaemk/cached --skill release -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jaemk/cached release --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jaemk/cached.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/release .gemini/skills/release && 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" agent skill from https://github.com/jaemk/cached/tree/master/.agents/skills/release into .gemini/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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 jaemk/cached releaseInstalls 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 jaemk/cached --skill release -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jaemk/cached.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/release .github/skills/release && 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" agent skill from https://github.com/jaemk/cached/tree/master/.agents/skills/release into .github/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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 jaemk/cached --skill release -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jaemk/cached release --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jaemk/cached.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/release .opencode/skills/release && 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" agent skill from https://github.com/jaemk/cached/tree/master/.agents/skills/release into .opencode/skills/release/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release", 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.
releasePrepare a release (bump versions across all Cargo.toml files, update CHANGELOG.md, refresh the migration guide, regenerate README, commit), or run a pre-release review.
Release is an agent skill from jaemk/cached. Prepare a release (bump versions across all Cargo.toml files, update CHANGELOG.md, refresh the migration guide, regenerate README, commit), or run a pre-release review. The review option kicks off a consistency review and an API-examination review to surface lingering inconsistencies and a categorized list of breaking and non-breaking improvements before you cut the release — advisory only, it changes nothing. Use when asked to "cut a release", "bump the version", "prepare a release", "release X.Y.Z", or "do a…
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `detect-crates.sh`).
It sits in Development, covering Changelog and release notes and Code migrations. It works with Rust. The repository describes itself as: Rust cache structures and easy function memoization. The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9da0ec2. 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.
Ships script files (Shell), which the agent can run.
Shell commands in SKILL.md call:
gitcargoghFrom 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 loads about 2.8k tokens when it runs. Until then it costs about 160 tokens; SKILL.md has 1,379 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 jaemk/cached at commit 9da0ec2, republished under its MIT licence (© jaemk). 1,379 words, ~2,766 tokens.
.claude/skills/release/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Prepare a new release by bumping versions and updating the changelog — or, with the
review option, run a pre-release audit that surfaces inconsistencies and improvement
ideas without changing anything.
The argument selects the mode:
review (or "release review", "review for release", "pre-release review") — run the
Release review below. This is advisory only: it bumps nothing, edits no files, and
makes no commit. Run it before cutting a release.1.2.0) — run the Version bump flow (the numbered steps).
If no argument is given and the intent is clearly to cut a release, ask which version.If the user asks for a release review and then to proceed, run the review first and the version bump second.
A pre-release audit. Run it before cutting a release — especially a major version, since a major bump is the only window in which breaking API changes are acceptable. It does not bump versions, edit the changelog/README, or commit anything; it produces a report. It kicks off two complementary reviews, then synthesizes them.
Audit the public surface for lingering inconsistencies across the whole crate, not just the latest diff. Scope it to everything accumulated since the last released version.
Establish the baseline with plain, side-effect-free commands — run each separately rather
than nesting a $(…) command substitution, so each invocation can be statically verified
and auto-approved (a $(git …) substitution defeats static analysis and forces a prompt):
git describe --tags --abbrev=0 # last released tag
git tag --sort=-creatordate # full tag list, newest first
git log --oneline -20 # recent commits — find the last "Release"/"release" commitRead the last-released version off the result, then diff against it explicitly, e.g.:
git diff v1.1.0..HEAD --stat # substitute the real last-released refTags in this repo are unreliable — they have lagged the crate version before (e.g.
git describe returned v0.8.0 while the crate was at 2.0.0). Do not trust the tag
blindly. Cross-check it against the […] version headings in CHANGELOG.md and the most
recent Release/release commit in the log; if they disagree, use the last actually
released commit (the one matching the newest released CHANGELOG section) as the diff
baseline, not the stale tag.
Check for:
max_size vs
size, with_* constructors, try_with_* fallible variants, cache_* method
prefixes). Flag any odd-one-out.&self vs &mut self)?[Unreleased]
CHANGELOG section, and the migration guide accurately describe the shipped API (named
types, signatures, attribute names, feature gates)?Delegate the correctness/idiom sweep to a pr-code-reviewer sub-agent fed the full
release diff, and reason through the cross-type parity items yourself — they need a
whole-surface view the diff alone does not give.
Run the consumer-experience-review skill. It builds a throwaway external consumer that
depends on the crate the way a real user would and surfaces API gaps, naming
inconsistencies, trait-import friction, and feature-flag dead-ends with
compiler-verified evidence. This is the authoritative "what would a new user trip
over" pass.
Merge both reviews into a single report. Apply no change — this mode is advisory. Produce:
file:line (or API path) and a one-line description.After presenting the report, ask whether to address findings first or proceed to the version bump below.
These numbered steps are the default mode — run them when the argument is a version string, or after a release review once the user opts to proceed.
This repo has three crates:
cached — always bumpedcached_proc_macro — bump if this PR/branch touched cached_proc_macro/cached_proc_macro_types — bump only if this PR/branch touched cached_proc_macro_types/Run the helper script to detect which crates need bumping:
.agents/skills/release/detect-crates.shThis outputs one crate name per line based on git diff origin/master. Its diff base is only
as good as the branch, so cross-check against the last release tag when the branch has been
merged into already, e.g. git diff --name-only v3.0.0..HEAD -- cached_proc_macro/.
A subcrate that did not change stays at its current version, and its [dependencies.*] pin in
the root Cargo.toml stays with it. bin/check-versions.sh does not require the three crates
to move together; it requires each pin to equal that subcrate's own package version, and it
forbids a stable root depending on a pre-release subcrate. A cached-only bump is normal and
has shipped before ([2.0.2], [0.58.0]). Do not bump a subcrate just to keep the numbers
aligned: that publishes a new version of an unchanged crate.
Cargo.toml versionsFiles to update (only for crates being bumped):
Cargo.toml (the cached crate):
[package] version → new version[dependencies.cached_proc_macro] version → new version (if bumping proc_macro)[dependencies.cached_proc_macro_types] version → new version (if bumping proc_macro_types)cached_proc_macro/Cargo.toml:
[package] version → new version (if bumping proc_macro)cached_proc_macro_types/Cargo.toml:
[package] version → new version (if bumping proc_macro_types)Use precise string replacement — do not change dependency versions for third-party crates.
CHANGELOG.md## [Unreleased] with ## [X.Y.Z / cached_proc_macro X.Y.Z] (include only the crates being bumped in the heading — omit cached_proc_macro_types if it is not bumped)## [Unreleased] section above the new version heading[Unreleased] section at the topEvery release requires a migration guide in docs/migrations/ named PREV-to-X.Y.Z.md
(e.g. 1.1-to-1.2.md). If there are no breaking changes, the guide still must exist and
must state there are no breaking changes.
Migration guides are written for agent consumption: terse, mechanical, grep-friendly. Required sections:
cargo build / cargo test commands needed to confirm a successful migration,
plus any expected new compile errors and their fixesSee existing guides in docs/migrations/ for the established format.
If the guide for this version already exists (e.g. was drafted ahead of the release), review it against the final diff and update any stale type names, method signatures, or behavior descriptions.
cargo readme --no-indent-headings > README.mdcargo check --no-default-features --features "proc_macro,time_stores"Fix any compilation errors before proceeding.
If there is already a single commit ahead of master on this branch, amend it:
git add Cargo.toml cached_proc_macro/Cargo.toml cached_proc_macro_types/Cargo.toml CHANGELOG.md README.md
git commit --amend --no-editOtherwise create a new commit:
git commit -m "release: bump version to X.Y.Z"Do not add a Co-Authored-By line.
Tell the user:
cached_proc_macro_types was left unchanged and whyPreparing the bump is the whole job. Do not tag, do not cargo publish, and do not run
bin/tag-release.sh or bin/publish.sh. .github/workflows/release.yml does all of it once
the version bump lands on master: it publishes in dependency order, tags, and creates the GitHub
release. Merging the bump is the release.
So do not report tagging or publishing as outstanding work, and do not offer to run either by hand. If the user asks whether a release went out, check it rather than assuming:
gh run list --workflow=release.yml --limit 3A run can also be sitting on the environment: release approval gate, which looks identical to
nothing having happened. Running the bin/ scripts locally is a fallback for the case where
Actions cannot run them at all (an outage, or a run that died in a way gh workflow run release.yml --ref master cannot retry), not a normal step.
© jaemk, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/release of jaemk/cached.
Open the folder on GitHubat commit 9da0ec2
Release 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 this skilljaemk/cached | 2.1k | — | ~2.8k | Automated safety check: Pass | MIT | |
| Releasejaemk/self_update | 961 | — | ~2.2k | Automated safety check: Pass | MIT | |
| Migrate Core Code to Submodulestinyhumansai/openhuman | 41k | — | ~2.6k | Automated safety check: Pass | GPL-3.0 | |
| Deprecate R Functions and Argumentstidyverse/dplyr | 5.1k | 1 repos | ~1.2k | Automated safety check: Pass | Custom licence | |
| Release Skillsnexmoe/eve | 421 | 3 repos | ~3.3k | Automated safety check: Pass | None | |
| Rust Path Typesopeninterpreter/openinterpreter | 69k | 2 repos | ~605 | Automated safety check: Pass | Apache-2.0 |
jaemk/self_update
Prepare a release (bump the crate version, update CHANGELOG.md with a migration guide for breaking changes, regenerate README, commit), or run a pre-release review.
tinyhumansai/openhuman
Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.
tidyverse/dplyr
Walks through deprecating an R function or argument in a package: lifecycle warning, silenced tests, a new snapshot test, documentation badge and NEWS entry.
nexmoe/eve
Universal release workflow. An agent skill from nexmoe/eve.
openinterpreter/openinterpreter
Rules for choosing Rust types for filesystem paths in new Codex code, covering protocol types, internal use and model tool arguments.
kucherenko/jscpd
Measures a code port between languages or frameworks with jscpd's function-level comparison, porting tests before code and tracking what is left unmatched.
jaemk/cached
PR review-and-update cycle — the orchestrator that takes a PR from review to resolved.
jaemk/cached
Targeted, read-only review of a PR or checked-out branch. An agent skill from jaemk/cached.
jaemk/cached
Review a library/package from the perspective of an external downstream consumer — build a throwaway crate/project that depends on it the way a real user would, exercise the public API, and surface…
Works with
Categories
Prepare a release (bump versions across all Cargo.toml files, update CHANGELOG.md, refresh the migration guide, regenerate README, commit), or run a pre-release review. Release is an agent skill from jaemk/cached.md, refresh the migration guide, regenerate README, commit), or run a pre-release review.
Release fits situations like: asked to cut a release; bump the version; prepare a release; do a release review / review for release.
Run `npx skills add jaemk/cached --skill release -a claude-code`. Or copy the skill folder (.agents/skills/release in jaemk/cached) into .claude/skills/release in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jaemk/cached --skill release -a codex`. Or copy the skill folder (.agents/skills/release in jaemk/cached) into .agents/skills/release 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 jaemk/cached --skill release -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, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.
Going by SKILL.md and its folder, Release needs a shell for the scripts in its folder and the command-line tools its instructions call (git, cargo and gh). Our summary lists: A Bash shell.
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 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.8k tokens (SKILL.md is roughly 11k 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: Release (jaemk/self_update, 961 stars), Migrate Core Code to Submodules (tinyhumansai/openhuman, 41k stars), Deprecate R Functions and Arguments (tidyverse/dplyr, 5.1k stars) and Release Skills (nexmoe/eve, 421 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jaemk (a GitHub user) maintains it in jaemk/cached, which has 2,098 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 1, 2026.
Source: jaemk/cached on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.