release
Skill144 starsChanged 6 months agoMITView on GitHub
Pre-release checklist to ensure CHANGELOG, version numbers, tests, and documentation are updated before cutting a release.
- 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.
The file
We split this skill into the rules it gives an agent
11 rules. 0 are common, 11 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 186 edited versions we read keep these.
11
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 12
Use this skill before cutting any release to validate:
- Distinctive: line 17
No uncommitted changes exist
- Distinctive: line 109
Check and update version in all files:
- Distinctive: line 177
Commit if they should be in the release
- Distinctive: line 197
Only after ALL previous steps pass.
- Distinctive: line 318
Solution: ALWAYS update CHANGELOG BEFORE creating tag.
- Distinctive: line 336
Solution: Update README and skills before release.
- Distinctive: line 349
If you need to rollback a bad release:
- Distinctive: line 493
Update CHANGELOG first: - Don't wait until after tagging
- Distinctive: line 495
Test the build: - Don't assume it works
- Distinctive: line 501
After using this skill, you should have:
“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 Skill - Pre-Release Validation
You are an expert at preparing software releases and ensuring no critical steps are missed.
When to Use
Use this skill before cutting any release to validate:
- CHANGELOG is updated with all changes
- Version numbers are consistent across files
- All tests pass
- Documentation reflects new features
- No uncommitted changes exist
The Problem
Releases often ship with:
- ❌ Missing CHANGELOG entries
- ❌ Inconsistent version numbers
- ❌ Outdated documentation
- ❌ Failing tests
- ❌ Uncommitted changes
This skill provides a systematic checklist to prevent these issues.
Pre-Release Checklist
Step 1: Determine Release Version
# Check current version
git describe --tags --abbrev=0
# Check recent commits for release type
git log --oneline $(git describe --tags --abbrev=0)..HEADSemantic Versioning:
MAJOR.MINOR.PATCH(e.g., 1.2.0)- MAJOR: Breaking changes
- MINOR: New features (backwards compatible)
- PATCH: Bug fixes only
Next version for this release:
- Breaking changes? → Bump MAJOR (2.0.0)
- New features? → Bump MINOR (1.3.0)
- Bug fixes only? → Bump PATCH (1.2.1)
Step 2: Update CHANGELOG.md
CRITICAL: This must be done BEFORE creating the release.
# 1. Read CHANGELOG.md
cat CHANGELOG.md
# 2. Check what's changed since last release
git log --oneline $(git describe --tags --abbrev=0)..HEAD --pretty=format:"%s"
# 3. Categorize commits
# - feat: → Added section
# - fix: → Fixed section
# - docs: → Changed section
# - refactor/perf: → Changed section
# - BREAKING: → mention in descriptionCHANGELOG Format:
## [X.Y.Z] - YYYY-MM-DD
### Added
- New features go here
- Each feature as a bullet point
- Use present tense ("Add feature" not "Added feature")
### Changed
- Breaking changes
- Improvements to existing features
- Documentation updates
### Fixed
- Bug fixes
- Security patches
### Removed
- Deprecated features removed
[X.Y.Z]: https://github.com/USER/REPO/compare/vX.Y.Z-1...vX.Y.ZWhat to Include:
- ✅ All user-facing changes
- ✅ New commands, flags, features
- ✅ Bug fixes that users would notice
- ✅ Breaking changes (ALWAYS mention these)
- ✅ New skills or major documentation
- ❌ Internal refactoring (unless it improves performance)
- ❌ Code cleanup that doesn't affect users
- ❌ Test-only changes
Step 3: Update Version Numbers
Check and update version in all files:
# 1. Homebrew formula
grep "version" Formula/linear-cli.rb
# 2. Any version constants in code
grep -r "version.*=.*\"" --include="*.go" .
# 3. Package files (if applicable)
grep "version" package.json 2>/dev/nullFiles to check:
Formula/linear-cli.rb- version field- Any version constants in Go code
- README badges (if version is shown)
Step 4: Verify Documentation
README.md:
# Check README mentions new features
grep -i "search" README.md # Example: check new feature is documentedCLAUDE.md:
# Check AI agent documentation is current
cat CLAUDE.md | head -100Questions to ask:
- Does README showcase new features?
- Are new commands in the help output?
- Do examples use the latest syntax?
- Are new skills listed?
Step 5: Run All Tests
# Run full test suite
make test
# Check for test failures
echo $? # Should be 0If tests fail:
- ❌ DO NOT proceed with release
- Fix the failing tests first
- Commit the fixes
- Run tests again
Step 6: Check for Uncommitted Changes
git statusMust show:
On branch main
nothing to commit, working tree cleanIf there are uncommitted changes:
- Review them carefully
- Commit if they should be in the release
- Discard if they're experimental
Step 7: Build and Smoke Test
# Build the binary
make build
# Test critical commands
./bin/linear --help
./bin/linear search --help
./bin/linear skills list
# Test a real command (if auth is configured)
./bin/linear issues list --limit 1Step 8: Execute Release
Only after ALL previous steps pass.
CRITICAL: Do NOT run goreleaser locally
# ❌ DON'T do this - causes duplicate upload errors: goreleaser release --clean # ✅ DO this instead - let GitHub Actions build: git tag vX.Y.Z && git push origin vX.Y.Z gh run watch --exit-status gh release download vX.Y.Z --pattern checksums.txt --output -Running goreleaser locally AND having GitHub Actions run it causes duplicate artifact uploads and release failures.
# 1. Commit any pending changes (CHANGELOG, code fixes)
git add -A
git commit -m "fix: Description of changes
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>"
git push origin main
# 2. Create and push tag (this triggers GitHub Actions)
git tag vX.Y.Z && git push origin vX.Y.Z
# 3. Wait for GitHub Actions to complete (~2 minutes)
gh run watch --exit-status
# 4. Get checksums from the release
gh release download vX.Y.Z --pattern checksums.txt --output -
# 5. Update Homebrew formula with new version and SHA256 checksums
# Edit Formula/linear-cli.rb:
# - version "X.Y.Z"
# - Update all sha256 values for each platform
# 6. Commit and push formula
git add Formula/linear-cli.rb
git commit -m "chore: Update formula to vX.Y.Z"
git push origin mainStep 9: Install and Verify
# 1. Update the local Homebrew tap
cd /opt/homebrew/Library/Taps/joa23/homebrew-linear-cli && git pull && cd -
# 2. Upgrade via Homebrew
brew upgrade linear-cli
# 3. Verify version
linear --version
# 4. Test the fix (example: if you fixed state filtering)
linear issues list --state "In Progress" --team TEST --limit 1
# 5. Test critical functionality
linear --help
linear issues list --limit 1If upgrade fails or wrong version:
# Force reinstall
brew uninstall linear-cli
brew install linear-cliRelease Checklist Template
Copy this checklist before each release:
## Release vX.Y.Z Checklist
### Pre-Release
- [ ] Determined version number (MAJOR.MINOR.PATCH)
- [ ] Updated CHANGELOG.md with all changes
- [ ] Added section
- [ ] Changed section
- [ ] Fixed section
- [ ] Version link at bottom
- [ ] Verified version numbers consistent
- [ ] Formula/linear-cli.rb
- [ ] Code constants (if any)
- [ ] Documentation updated
- [ ] README.md includes new features
- [ ] CLAUDE.md current
- [ ] Help text accurate
- [ ] All tests pass (`make test`)
- [ ] No uncommitted changes (`git status`)
- [ ] Built and smoke tested (`make build`)
### Release
- [ ] Committed all changes with proper message
- [ ] Pushed to main
- [ ] Created and pushed tag (`git tag vX.Y.Z && git push origin vX.Y.Z`)
- [ ] Waited for GitHub Actions (`gh run watch --exit-status`)
- [ ] Downloaded checksums (`gh release download vX.Y.Z --pattern checksums.txt --output -`)
- [ ] Updated Homebrew formula
- [ ] Version number
- [ ] All SHA256 checksums (Darwin arm64, Darwin x86_64, Linux arm64, Linux x86_64)
- [ ] Committed and pushed formula
### Post-Release
- [ ] Updated local Homebrew tap (`cd /opt/homebrew/.../homebrew-linear-cli && git pull`)
- [ ] Upgraded via Homebrew (`brew upgrade linear-cli`)
- [ ] Verified `linear --version` shows correct version
- [ ] Manually tested the fix/feature
- [ ] Smoke tested critical commandsCommon Mistakes to Avoid
❌ Forgetting CHANGELOG
Problem: Users don't know what changed.
Solution: ALWAYS update CHANGELOG BEFORE creating tag.
❌ Inconsistent Versions
Problem: Formula says v1.2.0 but tag is v1.3.0.
Solution: Grep for all version references before tagging.
❌ Releasing with Failing Tests
Problem: Broken release shipped to users.
Solution: make test must pass before release.
❌ Missing Documentation
Problem: New feature exists but isn't documented.
Solution: Update README and skills before release.
❌ Wrong Semantic Version
Problem: Bug fix released as MINOR version.
Solution: Review commit log to classify changes:
- New features = MINOR
- Bug fixes = PATCH
- Breaking changes = MAJOR
Rollback Procedure
If you need to rollback a bad release:
# 1. Delete the GitHub release
gh release delete vX.Y.Z --yes
# 2. Delete the tag locally and remotely
git tag -d vX.Y.Z
git push origin :refs/tags/vX.Y.Z
# 3. Fix the issues
# ... make fixes ...
# 4. Start release process again with same version (or bump to vX.Y.Z+1)Automation Notes
What could be automated:
- ✅ Version bump in files (script)
- ✅ CHANGELOG generation from commits (partially - needs human review)
- ✅ Running tests (CI/CD)
- ❌ Writing good CHANGELOG descriptions (needs human judgment)
- ❌ Deciding what's user-facing vs internal (needs context)
This skill focuses on the human judgment parts that can't be automated.
Example Release Session
User: I want to cut a new release for the search feature we just added.
Assistant (using /release skill):
Let me guide you through the pre-release checklist for cutting a release.
**Step 1: Determine Version**
Current version: v1.0.1
Commits since last release:
- feat: Add unified search command
- feat: Add dependency filtering
- feat: Add /link-deps skill
- docs: Update documentation
- fix: Token sanitization
This contains new features (search, link-deps skill), so we should bump MINOR version.
→ Next version: v1.2.0
**Step 2: CHANGELOG Check**
Let me read CHANGELOG.md...
❌ CHANGELOG.md is missing v1.2.0 section!
I need to add a section for v1.2.0. Let me review commits to categorize:
Added:
- Unified search command
- Dependency filters (--blocked-by, --blocks, etc.)
- /link-deps skill
- Enhanced documentation
Changed:
- All skills updated with search references
Fixed:
- Token sanitization
Let me update CHANGELOG.md now...
[Updates CHANGELOG]
✅ CHANGELOG.md now includes v1.2.0
**Step 3: Version Numbers**
Checking Formula/linear-cli.rb... shows v1.1.1
❌ Needs update to v1.2.0 (but this happens AFTER goreleaser)
**Step 4: Documentation**
Checking README.md... ✅ Search feature documented
Checking CLAUDE.md... ✅ Current
Checking --help output... ✅ Up to date
**Step 5: Tests**
Running: make test
✅ All tests pass
**Step 6: Uncommitted Changes**
Running: git status
Modified files:
- CHANGELOG.md
❌ We have uncommitted CHANGELOG changes
→ Commit these before proceeding
[User commits CHANGELOG]
**Step 7: Build and Smoke Test**
Running: make build
Testing: ./bin/linear search --help
✅ Build successful, commands working
**Step 8: Execute Release**
✅ All checks passed! Executing release:
1. git add -A && git commit -m "..." && git push origin main
2. git tag v1.2.0 && git push origin v1.2.0
3. gh run watch --exit-status # Wait for GitHub Actions
4. gh release download v1.2.0 --pattern checksums.txt --output -
5. [Update Formula/linear-cli.rb with checksums]
6. git add Formula/linear-cli.rb && git commit && git push
**Step 9: Install and Verify**
cd /opt/homebrew/Library/Taps/joa23/homebrew-linear-cli && git pull && cd -
brew upgrade linear-cli
linear --version # Shows v1.2.0
linear search --help # Test the new feature
✅ Release complete!This systematic approach caught the missing CHANGELOG entry!
Quick Reference
Before EVERY release, run through this:
# 1. What version?
git log --oneline $(git describe --tags --abbrev=0)..HEAD
# 2. CHANGELOG updated?
grep -A 20 "## \[.*\]" CHANGELOG.md | head -30
# 3. Tests pass?
make test
# 4. Clean git state?
git status
# 5. Build works?
make build && ./bin/linear --helpIf ANY check fails, stop and fix it before creating the tag.
Best Practices
- Update CHANGELOG first - Don't wait until after tagging
- Review every commit - Understand what's actually changing
- Test the build - Don't assume it works
- Document new features - Users need to know what's new
- Use semantic versioning - Breaking changes = MAJOR bump
Success Criteria
After using this skill, you should have:
- ✅ Complete CHANGELOG entry for the new version
- ✅ All version numbers updated
- ✅ All tests passing
- ✅ Documentation current
- ✅ Clean git state
- ✅ Confidence that the release is ready
Never skip the checklist. Ever.
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.

