agentleFS
jars-demojars-demo/jars-skills/skills/release/SKILL.md

release

Skill0 starsChanged 32 days agoMITView on GitHub

Orchestrate a full release: bump the version, update the changelog, create a git tag, and draft release notes — ready to push when the user says so. Use when the user asks to cut a release, tag a version, ship a release, or publish a new version. Never pushes, publishes, or deploys without being explicitly asked.

  • Commits and pushes

196 other projects use a version of this.

Adopted by

Most recently taken up by

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.
  • MicrosoftSkill

    create-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

  • GrinvSkill

    changelog-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

  • GrinvSkill

    docs-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 AzureSkill

    component-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 AzureSkill

    documentation-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-devSkill

    launch-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

The file

Show its rules and text

We split this skill into the rules it gives an agent

16 rules. 0 are common, 9 are distinctive, and 7 are very specific to this project.

  • 0

    Common

    Most of the 186 edited versions we read keep these.

  • 9

    Distinctive

    This author's own choices. Worth a look.

  • 7

    Very specific

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

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

    Read before writing: Read CHANGELOG.md, version files, and recent commits before changing anything.

    line 14
  2. Very specific:

    One commit for the release: All version bumps and the changelog entry go in a single chore(release): vX.Y.Z commit.

    line 18
  3. Very specific:

    Never push or publish without being asked: Create the tag locally and stop.

    line 20
  4. Very specific:

    Never skip hooks: Run git tag the normal way.

    line 23
  5. Distinctive:

    If CI or pre-commit hooks fail, stop and report: Don't work around them.

    line 24
  6. Distinctive:

    If there are uncommitted changes, stop and tell the user.

    line 36
  7. Distinctive:

    Read the version from the project's source of truth:

    line 40
  8. Distinctive:

    Write the confirmed version to every file that owns it:

    line 76
  9. Distinctive:

    Read each file first, make a targeted edit, and verify the change looks correct.

    line 90
  10. Very specific:

    If the project has a CHANGELOG.md, move the [Unreleased] section into a versioned entry:

    line 94
  11. Distinctive:

    Use today's date. Add the comparison link at the bottom:

    line 100
  12. Very specific:

    If no CHANGELOG.md exists, skip this step but note it to the user.

    line 106
  13. Distinctive:

    Wait for explicit confirmation before committing.

    line 122
  14. Distinctive:

    Verify the tag was created:

    line 134
  15. Distinctive:

    Do not run any of these unless the user asks.

    line 174
  16. Very specific:

    Treat the initial version as 0.1.0 (or 1.0.0 if the project is already used in production — ask the user).

    line 178

“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.

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

Release

Take a project from "changelog and version files up to date" to "tagged, release notes drafted, ready to ship" in a single structured pass. Every step is shown to the user before it runs; nothing is pushed or published until they say so.

Ground rules

  • Read before writing. Read CHANGELOG.md, version files, and recent commits before changing anything. Never guess the current version or what changed.
  • Propose the version; let the user confirm. Derive a semver bump from the commit types found, explain the reasoning, and wait for approval before writing any file.
  • One commit for the release. All version bumps and the changelog entry go in a single chore(release): vX.Y.Z commit. Don't mix release changes with feature work.
  • Never push or publish without being asked. Create the tag locally and stop. Pushing, creating GitHub releases, running npm publish, or uploading artifacts are separate actions the user must explicitly request.
  • Never skip hooks. Run git tag the normal way; don't use --no-verify or force flags.
  • If CI or pre-commit hooks fail, stop and report. Don't work around them.

Workflow

1. Confirm the baseline is clean

git status                            # must be clean before proceeding
git log --oneline -10                 # recent commits at a glance
git tag --sort=-version:refname | head -5   # last few tags

If there are uncommitted changes, stop and tell the user. A release must start from a clean tree.

2. Determine the new version

Read the version from the project's source of truth:

# Node
node -p "require('./package.json').version"

# Python
grep -E '^version' pyproject.toml | head -1
# or
grep '__version__' src/<package>/__init__.py

# Rust
grep '^version' Cargo.toml | head -1

# Generic
cat VERSION

Then read commits since the last tag to decide the bump:

git log <last-tag>..HEAD --oneline

Apply Semantic Versioning:

Commits containBump
feat!:, fix!:, BREAKING CHANGE:Major
Any feat:Minor
Only fix:, chore:, docs:, refactor:, perf:Patch

Present the proposed version and reasoning. Wait for the user to confirm before writing files.

3. Update version files

Write the confirmed version to every file that owns it:

# Node — update package.json (and package-lock.json / yarn.lock)
npm version <new-version> --no-git-tag-version
# or pnpm / yarn equivalent

For non-Node projects, edit the version field in:

  • pyproject.toml (version = "x.y.z")
  • Cargo.toml (version = "x.y.z")
  • VERSION file
  • __init__.py or wherever the project declares __version__

Read each file first, make a targeted edit, and verify the change looks correct.

4. Update CHANGELOG.md

If the project has a CHANGELOG.md, move the [Unreleased] section into a versioned entry:

## [X.Y.Z] - YYYY-MM-DD

Use today's date. Add the comparison link at the bottom:

[X.Y.Z]: https://github.com/owner/repo/compare/vA.B.C...vX.Y.Z

If no CHANGELOG.md exists, skip this step but note it to the user. If the project uses the changelog skill, call on it for the full categorised entry before running this step.

5. Show the full diff before committing

Display all staged changes so the user can review:

git diff HEAD

Point out:

  • Which files were changed and why
  • The proposed commit message
  • The tag name that will be created

Wait for explicit confirmation before committing.

6. Commit and tag

Once the user confirms:

git add <version files> CHANGELOG.md
git commit -m "chore(release): vX.Y.Z"
git tag -a vX.Y.Z -m "Release vX.Y.Z"

Verify the tag was created:

git log --oneline -3
git tag --sort=-version:refname | head -3

7. Draft release notes

Prepare release notes the user can paste into GitHub Releases, PyPI, npm, or wherever they publish. Pull the content from the changelog entry you just wrote (or from step 2 commits if there's no changelog):

## What's changed in vX.Y.Z

### Added
- ...

### Fixed
- ...

### Breaking changes
- ...

**Full changelog:** https://github.com/owner/repo/compare/vA.B.C...vX.Y.Z

8. Stop and hand over

Tell the user:

  • What was committed and tagged
  • The exact commands to push when ready:
git push origin <branch>
git push origin vX.Y.Z
  • Any extra publish steps for their ecosystem (e.g., npm publish, cargo publish, uv publish)

Do not run any of these unless the user asks.

If the project has no tags yet

Treat the initial version as 0.1.0 (or 1.0.0 if the project is already used in production — ask the user). Use the first commit as the range base:

git rev-list --max-parents=0 HEAD
git log <first-commit>..HEAD --oneline

Examples

WeakStrong
Bump version and push in one stepBump → show diff → wait for confirm → commit + tag → tell user how to push
git commit -m "release 1.4.0"git commit -m "chore(release): v1.4.0"
Skip changelog updateMove [Unreleased] entries into the versioned section before tagging
Create an annotated tag with an empty messagegit tag -a v1.4.0 -m "Release v1.4.0"
Push tags silentlyState the push command and wait for the user to run it

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.