release
Skill314 starsChanged 52 days agoMITView on GitHub
Use when the user wants to cut a release of media_preview_generator — merges dev into main, drafts plain-English release notes from the commits since the last tag, suggests the next semver tag, and publishes a GitHub release after explicit confirmation.
- 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 repository3 other files it gives its agents.
- .claude/CLAUDE.mdCLAUDE.md
- docs/llms-full.txtllms.txt
- docs/llms.txtllms.txt
The file
We split this skill into the rules it gives an agent
6 rules. 0 are common, 4 are distinctive, and 2 are very specific to this project.
0
Common
Most of the 186 edited versions we read keep these.
4
Distinctive
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 13
Run only when the user explicitly asks to release.
- Distinctive: line 18
Never force-push. Never delete tags or releases.
- Very specific: line 19
Never touch /data (read-only Plex media).
- Distinctive: line 22
Stop and report if any preflight check fails.
- Very specific: line 53
If $LAST_TAG is empty (no semver tag found) → stop and report.
- Distinctive: line 57
Write release notes for end users, not commit-speak:
“Common” is measured: kept by at least 6 in 10 of the 186 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Release
Cuts a release: fast-forwards main to dev, then publishes a GitHub release
(which creates the version tag atomically). The git tag drives the package
version — pyproject.toml uses setuptools-scm with write_to = _version.py —
so the tag must be bare semver with no v prefix (4.1.0, not v4.1.0).
Run only when the user explicitly asks to release. Per project policy, "finish" or "do it all" does NOT authorize a release on its own.
Guardrails
- Never force-push. Never delete tags or releases.
- Never touch
/data(read-only Plex media). - The
plugin-v*,emby-plugin-v*andmarker-agent-v*tags belong to separate components — ignore them entirely when finding the last release or computing the next version. - Stop and report if any preflight check fails. Do not "fix" a dirty tree or divergence automatically.
Procedure
1. Preflight
git rev-parse --abbrev-ref HEAD # must be "dev"
git status --porcelain # must be empty (clean tree)
git fetch origin --quiet
git rev-list --left-right --count origin/main...dev # left count must be 0- Branch is not
dev→ stop, tell the user to switch todev. - Tree is dirty → stop, list the uncommitted files.
- Left count > 0 (main is ahead of local dev) → stop. main has diverged; a fast-forward is unsafe. Report and let the user resolve it.
Compare against local dev, not origin/dev — local dev is the source of
truth and may have unpushed commits. Everything downstream (notes, tag, push)
must describe the same local dev state.
2. Find the last release and draft notes
LAST_TAG=$(git tag --list --sort=-v:refname | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$' | head -1)
git log "$LAST_TAG"..dev --pretty='%s' # commit subjects since last release
git diff "$LAST_TAG"..dev --stat # files touched, for contextIf $LAST_TAG is empty (no semver tag found) → stop and report. Do not run the
git log/git diff with an empty left side; ..dev would dump the entire
history and silently mis-scope the notes.
Write release notes for end users, not commit-speak:
- Title: short, plain English, names the headline change (e.g. "Stale-mount diagnostics & job-log polish"). No version number.
- Description: tight bullets grouped as New (from
feat:) and Fixes (fromfix:). Translate each into what a user notices. Drop pure-internal commits (test:,chore:, refactors) unless user-visible.
3. Suggest the next version
Parse the commit subjects from step 2 against $LAST_TAG (MAJOR.MINOR.PATCH):
- Any
feat:since the last tag → bump MINOR, reset PATCH (4.0.1→4.1.0). - Otherwise → bump PATCH (
4.0.1→4.0.2). - Breaking changes (
feat!:,BREAKING CHANGE) → confirm a MAJOR bump with the user.
Propose the computed version and ask the user to confirm or type a different tag. Always wait for their answer — the tag is theirs to decide.
4. Confirmation gate
Show the user one block: final tag, title, and description. State
plainly that approving runs push dev → advance main → publish release, and
that advancing main is the point of no return (it triggers any CI/release
pipeline). Wait for an explicit OK. Do not proceed on silence or ambiguity.
5. Publish (only after OK)
COMMIT=$(git rev-parse dev) # pin the reviewed commit
git push origin dev # publish local dev
git push origin dev:main # fast-forward main to dev
gh release create "<TAG>" --target "$COMMIT" --title "<TITLE>" --notes "<NOTES>"Pass the captured $COMMIT SHA as --target, not main — this tags the exact
commit the notes were drafted from, even if main advances concurrently.
gh release create creates the tag and publishes the release in one step.
Report the release URL it prints.
Failure handling
git push origin dev:mainrejected (non-fast-forward) → main moved since preflight. Re-fetch, re-check divergence, do not force.gh release createfails because the tag already exists → stop and report; do not overwrite. The user picks a new tag or deletes the bad one themselves.
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.

