agentleFS
poweruserzpoweruserz/OpenTokenUsage/.agents/skills/release-tag/SKILL.md

release-tag

Skill37 starsChanged 8 months agoMITView on GitHub

Create a new release tag with version bump, generate a GitHub Release-style changelog, update CHANGELOG.md, and publish a GitHub Release. Use when the user asks to tag a release, bump the version, create a changelog, cut a release, or publish release notes.

  • Commits and pushes

5 other projects use a version of this.

Adopted by

Most recently taken up by

The file

Show its rules and text

We split this skill into the rules it gives an agent

15 rules. 0 are common, 10 are distinctive, and 5 are very specific to this project.

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 10

    Distinctive

    This author's own choices. Worth a look.

  • 5

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Read the current version from package.json and the latest git tag.

    line 18
  2. Distinctive:

    Default bump type is patch (e.g.

    line 19
  3. Distinctive:

    If the API returns null, fall back to the git author name from git log.

    line 40
  4. Distinctive:

    Wait for the user to explicitly approve the changelog before making any file changes.

    line 46
  5. Distinctive:

    Check for and update every version file that exists in the repo:

    line 50
  6. Very specific:

    After updating any Cargo.toml, run cargo update -p {package_name} to sync Cargo.lock.

    line 61
  7. Distinctive:

    Commit all changes (version bumps + CHANGELOG.md) in a single commit:

    line 65
  8. Very specific:

    Ask the user before pushing.

    line 79
  9. Distinctive:

    Do not create the release before the push — CI (e.g.

    line 88
  10. Very specific:

    If it does not exist: gh release create v{new_version} --title "v{new_version}" --notes "{changelog}"

    line 94
  11. Very specific:

    If it already exists (CI created it): gh release edit v{new_version} --notes "{changelog}" to add the release notes, then delete any …

    line 95
  12. Distinctive:

    Only include category sections that have entries.

    line 99
  13. Distinctive:

    Commit hashes in output are 7 characters (short hash).

    line 127
  14. Distinctive:

    Never push automatically -- always ask the user first.

    line 129
  15. Distinctive:

    Always publish release notes to GitHub Releases -- never skip this step.

    line 130

“Common” is measured: kept by at least 6 in 10 of the 4 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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Release Tag

Bump the project version, generate a categorized changelog with author attribution, tag the release, and publish to GitHub Releases.

Workflow

1. Determine New Version

  • Read the current version from package.json and the latest git tag.
  • Default bump type is patch (e.g. 0.1.0 → 0.1.1). The user may override with major or minor.
  • Show the proposed new version and confirm with the user before proceeding.

2. Generate Changelog

Collect commits since the previous tag and build the changelog:

Categorization rules:

Commit prefixCategory
feat, feature, or starts with "Add"New Features
fix or starts with "Fix"Bug Fixes
refactor, enhanceRefactor
chore, style, docs, perf, test, ci, buildChores
UncategorizedBug Fixes

Author attribution (required on every entry):

  • Commits with a PR number ((#123)): gh pr view {number} --json author -q '.author.login'
  • Commits without a PR number: gh api /repos/{owner}/{repo}/commits/{full_hash} -q '.author.login'
  • If the API returns null, fall back to the git author name from git log.

Output the changelog inside a markdown code block using the template below so the user can review it.

3. User Approval

Wait for the user to explicitly approve the changelog before making any file changes. Accept edits if offered.

4. Update Version Files + CHANGELOG.md

Check for and update every version file that exists in the repo:

  • package.json
  • src-tauri/tauri.conf.json
  • src-tauri/Cargo.toml (must update if tauri.conf.json exists)
  • Cargo.toml (root-level, Rust projects)
  • pyproject.toml
  • pubspec.yaml
  • build.gradle / build.gradle.kts
  • Info.plist (CFBundleShortVersionString)

After updating any Cargo.toml, run cargo update -p {package_name} to sync Cargo.lock.

Prepend the approved changelog to CHANGELOG.md immediately after the # Changelog header. Create the file with that header if it does not exist.

Commit all changes (version bumps + CHANGELOG.md) in a single commit:

chore: bump version to {new_version}

5. Create Git Tag

git tag -a v{new_version} -m "v{new_version}"

6. Push Commit + Tag

Ask the user before pushing. If confirmed, push the commit and tag before creating the GitHub Release — gh release create resolves the tag on the remote, so the version bump commit must already be there.

git push origin {branch}
git push origin v{new_version}

7. Create GitHub Release

Do not create the release before the push — CI (e.g. tauri-action) may create its own release when it sees the tag. After the push, check whether the release already exists:

gh release view v{new_version} -R {owner}/{repo} 2>/dev/null
  • If it does not exist: gh release create v{new_version} --title "v{new_version}" --notes "{changelog}"
  • If it already exists (CI created it): gh release edit v{new_version} --notes "{changelog}" to add the release notes, then delete any leftover draft duplicates.

Changelog Template

Only include category sections that have entries.

## v{new_version}

### New Features
- {message} ([#{pr}](https://github.com/{owner}/{repo}/pull/{pr})) by @{author}

### Bug Fixes
- {message} ([#{pr}](https://github.com/{owner}/{repo}/pull/{pr})) by @{author}

### Refactor
- {message} ([#{pr}](https://github.com/{owner}/{repo}/pull/{pr})) by @{author}

### Chores
- {message} ([#{pr}](https://github.com/{owner}/{repo}/pull/{pr})) by @{author}

---

### Changelog

**Full Changelog**: [{prev_tag}...v{new_version}](https://github.com/{owner}/{repo}/compare/{prev_tag}...v{new_version})

- [{short_hash}](https://github.com/{owner}/{repo}/commit/{full_hash}) {commit message} by @{author}

Rules

  • Commit hashes in output are 7 characters (short hash).
  • Tags are always prefixed with v (e.g. v0.1.1).
  • Never push automatically -- always ask the user first.
  • Always publish release notes to GitHub Releases -- never skip this step.
  • For commits without a PR number, omit the PR link but still include the author.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.