ワンクリックで
release
Pre-release checklist to ensure CHANGELOG, version numbers, tests, and documentation are updated before cutting a release.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Pre-release checklist to ensure CHANGELOG, version numbers, tests, and documentation are updated before cutting a release.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Triage and prioritize Linear backlog issues using the linear CLI. Analyzes staleness, blockers, dependency health, and priority mismatches. Use when the user asks about backlog grooming, sprint planning, issue prioritization, managing stale tickets, or cleaning up Linear issues.
Visualize and analyze issue dependencies in Linear. Finds blocking chains, circular dependencies, and critical path items.
Discover and link related issues as dependencies. Searches for issues that should be connected and recommends dependency relationships to establish proper work order.
Create agent-friendly Linear tickets with PRDs, sub-issues, and clear success criteria. Use when planning features or breaking down work for agentic coding.
Triage and prioritize Linear backlog. Analyzes issues for staleness, blockers, and suggests priorities based on dependencies and capacity.
Plan Linear cycles using velocity analytics. Suggests scope based on historical capacity, identifies dependency risks, balances workload.
| name | release |
| description | Pre-release checklist to ensure CHANGELOG, version numbers, tests, and documentation are updated before cutting a release. |
You are an expert at preparing software releases and ensuring no critical steps are missed.
Use this skill before cutting any release to validate:
Releases often ship with:
This skill provides a systematic checklist to prevent these issues.
# Check current version
git describe --tags --abbrev=0
# Check recent commits for release type
git log --oneline $(git describe --tags --abbrev=0)..HEAD
Semantic Versioning:
MAJOR.MINOR.PATCH (e.g., 1.2.0)Next version for this release:
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 description
CHANGELOG 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.Z
What to Include:
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/null
Files to check:
Formula/linear-cli.rb - version fieldREADME.md:
# Check README mentions new features
grep -i "search" README.md # Example: check new feature is documented
CLAUDE.md:
# Check AI agent documentation is current
cat CLAUDE.md | head -100
Questions to ask:
# Run full test suite
make test
# Check for test failures
echo $? # Should be 0
If tests fail:
git status
Must show:
On branch main
nothing to commit, working tree clean
If there are uncommitted changes:
# 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 1
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 main
# 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 1
If upgrade fails or wrong version:
# Force reinstall
brew uninstall linear-cli
brew install linear-cli
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 commands
Problem: Users don't know what changed.
Solution: ALWAYS update CHANGELOG BEFORE creating tag.
Problem: Formula says v1.2.0 but tag is v1.3.0.
Solution: Grep for all version references before tagging.
Problem: Broken release shipped to users.
Solution: make test must pass before release.
Problem: New feature exists but isn't documented.
Solution: Update README and skills before release.
Problem: Bug fix released as MINOR version.
Solution: Review commit log to classify changes:
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)
What could be automated:
This skill focuses on the human judgment parts that can't be automated.
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!
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 --help
If ANY check fails, stop and fix it before creating the tag.
After using this skill, you should have:
Never skip the checklist. Ever.