release
Skill3 starsChanged 3 months agoMITView on GitHub
Cut an AgentHub release using the repository's preflight, versioning, changelog, tagging, and post-release verification procedure. Use when preparing or publishing a release.
- Pipes a download into a shell
- Deletes or force-pushes
- Installs packages
- Commits and pushes
196 other projects use a version of this.
Adopted by
Most recently taken up by
- zxcvbn-ts/zxcvbntheir own version, first seen Nov 9, 2026
- TechbeeAT/jtxBoardtheir own version, first seen Nov 9, 2026
- ddnexus/pagytheir own version, first seen Nov 9, 2026
- zerx-lab/FluxDowntheir own version, first seen Nov 9, 2026
- orioledb/orioledbtheir own version, first seen Nov 9, 2026
- AmruthPillai/Reactive-Resumetheir own version, first seen Nov 8, 2026
Used with
Projects with it also use create-agent-adapter, changelog-style and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
MicrosoftSkillcreate-agent-adapter
Technical guide for creating a new Paperclip agent adapter. Use when building a new adapter package, adding support for a new AI coding tool (e.g. a new CLI agent, API-based agent, or custom process), or when modifying the adapter system. Covers the required interfaces, module structure, registration points, and conventions derived from the existing claude-local and codex-local adapters.
Also in 5 projects that use this
GrinvSkillchangelog-style
Turn a commit range into CHANGELOG.md entries following common-changelog style. Use when finishing a PR or cutting a release, to write/fix the [Unreleased] section's entries — moving [Unreleased] under a new dated version heading is a separate, automated step (see the release skill / scripts/sync-version.ts), not this skill's job.
Also in 4 projects that use this
GrinvSkilldocs-consistency-check
Check README/manifest.json/server.json/CHANGELOG.md/AGENTS.md and docs/*.md for drift against the actual registered tools and source. Use after adding, renaming, or removing a tool, or as part of a live-audit pass.
Also in 4 projects that use this
Microsoft AzureSkillcomponent-release
Prepares a verifiable Agent Landing Zone UI release. Use for release branches, VERSION, changelog entries, tags, release notes, and compatibility evidence; never publish without explicit human approval.
Also in 4 projects that use this
Microsoft AzureSkilldocumentation-consistency
Keeps AI Landing Zone contributor, user, and operator documentation aligned with shipped Bicep behavior. Use for parameters, defaults, outputs, topology, deployment flow, operations, or releases.
Also in 8 projects that use this
rivet-devSkilllaunch-graphics
Generate agentOS marketing/launch graphics (launch & social heroes, code-snippet cards) from the committed generators in docs-internal/graphics. Use when asked to make, update, or render an agentOS launch image, social image, "agentOS Apps" graphic, or technical code-snippet image.
Also in 3 projects that use this
- +3 more from Grinv
Other versions196 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 196
- paperclipai/paperclip★ 112ksame name
- modelcontextprotocol/servers★ 92ksame name
- remotion-dev/remotion★ 72ksame name
- traefik/traefik★ 65ksame name
- usememos/memos★ 64ksame name
- tw93/Pake★ 63ksame name
- AmruthPillai/Reactive-Resume★ 45ksame name
- amruthpillai/reactive-resume★ 45ksame name
- reactive-resume/reactive-resume★ 45ksame name
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
186 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository6 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- new-featureSkill
- nightly-tidySkill
- security-auditSkill
- agenthubSkill
The file
Files
Releasing
One tag push does the work. Everything before it is local and reversible; everything after it is public within seconds, so the cheap checks come first.
0. Preflight
git fetch origin
git status --short # must print nothing
git log --oneline -1 origin/main # must equal local main
git worktree list # anything here is NOT being releasedA release ships main exactly as it stands. Nothing is cherry-picked. If a worktree holds work
that belongs in this version, land it first by the new-feature skill step 5 and start over
at step 0. Otherwise say out loud which branches are being left out, so "I thought that was in" is
caught now rather than by a user.
1. Choose the number
Against the user-visible surface, not the size of the diff. When two rows could apply, take the lower one.
| What changed | Bump |
| Docs, comments, tests, internal refactors; help text corrections | patch — 0.13.0 → 0.13.1 |
| A new command or flag, a new capability, a changed default | minor — 0.13.1 → 0.14.0 |
| A removed command or flag, or a moved frozen identifier (docs/conventions.md#frozen-identifiers) | major |
A pre-release carries a - (0.14.0-rc1) and the workflow marks the Release accordingly.
2. Bump VERSION
new=0.13.2
printf '%s\n' "$new" > VERSION
git diff --stat # exactly 1 fileVERSION reaches the binary, the .app's Info.plist and the Release title on its own. The README
version badges query GitHub's latest release, so they follow the tag pushed in step 5 without an
edit — and until that push they keep showing the previous version, which is the truth.
3. Write the changelog
The changelog is the release commit message. There is no CHANGELOG.md. The published notes come
from three sources; only the first is yours — the commit list is GitHub's
(generate_release_notes: true), and the install instructions already live in
.github/workflows/release.yml.
git log --oneline "$(git describe --tags --abbrev=0)"..mainThe message answers "does this version affect me?". Lead with the one thing a user would feel; if nothing is observable, say so in a line — that is useful, and "various fixes and improvements" is not. GitHub prints the commit list underneath you, so restating it is wasted.
release: 0.13.1
Documentation, comments and three new build-rule guards. No behaviour change
beyond two help strings that were shipping internal milestone names to users.
The one item a user actually feels is in the skill the tap ships: it named
two streaming commands where there are four, so an agent following it parsed
NDJSON as a single object and failed on the first progress line.4. Verify, commit, push
make ci # must be green BEFORE the tag exists
git add VERSION
git commit # message from step 3
git push origin main5. Tag and push
The tag is the trigger and the claim about what is being released, so it must equal VERSION.
git tag -a "v${new}" -m "v${new}"
git push origin "v${new}"6. Watch the workflow
gh run list --workflow=release.yml --limit 1
gh run watch <run-id> --exit-statusSix jobs, about four minutes: verify (checks tag against VERSION and the tap token; gates the
rest), cli (darwin/linux/windows tarballs), gui-macos (universal DMG), gui-windows (amd64 and
arm64 zips), publish (the Release with every artifact), homebrew (formula, cask and skill to the
tap, one commit — skipped, and saying so, when the HOMEBREW_TAP_REPO variable is unset).
7. Check what shipped
A green workflow is a weaker claim than a correct release.
gh release view "v${new}" --json isDraft,isPrerelease -q '.isDraft, .isPrerelease' # false false
gh release view "v${new}" --json assets -q '.assets[].name' | wc -l # 12Twelve assets: four CLI tarballs (darwin/linux × amd64/arm64), the macOS DMG, a Windows amd64
tarball, two Windows zips, three checksums-*.txt, and manifest.json.
That last one carries the whole Homebrew-less install path, and its absence is the invisible
failure: the Release publishes, the tap updates, and only curl … | sh breaks.
curl -fsSL https://raw.githubusercontent.com/dinstein/agent-hub/main/scripts/install.sh \
| sh -s -- --prefix /tmp/agenthub-check --force
/tmp/agenthub-check/bin/agenthub --version # ${new}, and must NOT say (dev)
rm -rf /tmp/agenthub-check--force is not optional here, and it is not loosening anything. The machine cutting a release
almost always has agenthub from the tap — the section at the bottom of this file assumes exactly
that — and the installer refuses, correctly, to fight another package manager for the name. Without
the flag it dies before downloading anything, so the check cannot run on the machine it is written
for. The flag is read in one place and only there: it skips that refusal. The install still goes to
--prefix, and Homebrew's copy is not touched.
test/installer runs that script end to end against a served release on every make ci; the two
lines above are the half it cannot cover — that the real Release holds what the script goes looking
for.
Then the tap, a different repository that fails on its own:
for f in Formula/agenthub.rb Casks/agenthub-gui.rb; do
gh api "repos/dinstein/homebrew-agenthub/contents/${f}" -q .content \
| base64 -d | grep -E 'version|url|depends_on formula' | head -4
doneThe version must be the new one in both — the cask's carries the build hash after a comma — and
every url must point at dinstein/agent-hub, not at the tap. Both files land in one commit, so
one of them being stale is a bug in tap-sync.sh, not a re-run.
The cask is the only artifact whose install is not exercised by anything in CI. Once per release, on a machine that has not installed it before — a fresh user account is enough, the quarantine flag is per-download and this machine's copies are already cleared:
brew install --cask dinstein/agenthub/agenthub-gui # pulls the formula with it
open -a AgentHub # must launch with no Gatekeeper prompt
which agenthub && agenthub --version # from the formula, and must NOT say (dev)
brew uninstall --cask --zap dinstein/agenthub/agenthub-guibrew audit --cask --strict --online dinstein/agenthub/agenthub-gui grades the file; only the four
lines above grade the install.
When it goes wrong
| Symptom | Meaning | Do |
verify fails on the tag | Tag and VERSION disagree; nothing was built or published | git tag -d and git push --delete, fix VERSION, re-tag |
| A build job fails | Usually toolchain, not code — v0.13.0 failed on wails3 needing CGO_ENABLED=0 | Fix on main, move the tag to the new commit, force-push it. No Release exists yet |
publish green, homebrew red | The Release is complete; only the tap lagged | Re-run that job. Do not re-cut the release |
| A wrong Release is already public | gh release delete leaves the tag behind | Cut the next patch forward rather than deleting |
| GitHub Actions unavailable | — | scripts/release-local.sh vX.Y.Z — without --push it stops before the two irreversible steps and prints them |
Rehearse the whole pipeline without a tag via workflow_dispatch: every job runs and publish skips
itself.
Not a release: run this checkout where Homebrew installed one
Publishes nothing — no tag, no Release, no tap commit. Use it to exercise a build with a real client before releasing it.
make install-to-brew # release-channel build → $(brew --prefix)/bin/agenthub
scripts/install-to-brew.sh --restore # give the path back to HomebrewA dirty tree is fine here; the version carries -dirty. A dev-channel binary is refused. Replacing
the file does not replace a running daemon: quit and reopen AgentHub if the application is running
one, or agenthub daemon restart --headless if an operator is.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

