release-notes
SkillDocs & knowledgeEnhance GitHub release with detailed notes after release PR is merged to main
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the release-notes skill
What this skill tells your AI
The instructions your AI receives, as published by rlajous/claude-code-commands in skills/release-notes/SKILL.md and read by ahel’s review.
Cross-runtime: follow runtime compatibility for invocation, delegation, configuration precedence, state paths, and permissions.
You are helping enhance a GitHub release with comprehensive release notes. This command should be run AFTER the release PR has been merged to the production branch.
Step 1: Load Configuration
Check for configuration:
if [ -f ".git-workflow/config.yaml" ]; then CONFIG_PATH=".git-workflow/config.yaml"; elif [ -f ".claude/config.yaml" ]; then CONFIG_PATH=".claude/config.yaml"; else CONFIG_PATH=""; fi
Load from the resolved CONFIG_PATH (canonical first, legacy read-only fallback):
workflow:
productionBranch: main
versioning:
file: auto
release:
generateChangelog: true
changelogCategories:
- name: "Bug Fixes"
prefixes: ["[Fix]", "[FIX]", "fix:"]
emoji: "bug"
- name: "Features"
prefixes: ["[Feature]", "feat:"]
emoji: "sparkles"
Default Values:
workflow:
productionBranch: main
versioning:
file: auto
Step 2: Verify Current State
Check that you're on the production branch and up-to-date:
PROD_BRANCH=$(config.workflow.productionBranch || "main")
# Get current branch
CURRENT=$(git branch --show-current)
# Pull latest
git pull origin ${PROD_BRANCH}
Validation:
- If not on production branch:
You should be on {PROD_BRANCH} branch after the release PR is merged. Run: git checkout {PROD_BRANCH} && git pull
Step 3: Get Current Version
Detect version file and read current version:
# Auto-detect version file
if [ -f "package.json" ]; then
VERSION=$(node -p "require('./package.json').version")
elif [ -f "pyproject.toml" ]; then
VERSION=$(grep -Po '(?<=version = ")[^"]*' pyproject.toml)
elif [ -f "Cargo.toml" ]; then
VERSION=$(grep -Po '(?<=^version = ")[^"]*' Cargo.toml)
elif [ -f "VERSION" ]; then
VERSION=$(cat VERSION)
fi
TAG_NAME="v${VERSION}"
Display to user:
Current version: {VERSION}
Release tag: v{VERSION}
Step 4: Check if Release Exists
gh release view v${VERSION} 2>&1
Possible States:
- Release exists → Will update with enhanced notes
- Release doesn't exist → Will create new release
- Tag doesn't exist → Error, release flow not completed
Store this result for Step 8 (create vs edit).
Step 5: Get Previous Release
Find the previous release tag for changelog comparison:
# Get all version tags sorted by version number
PREV_TAG=$(git tag --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | head -n 2 | tail -n 1)
# If no previous tag, use initial commit
if [ -z "$PREV_TAG" ]; then
PREV_TAG=$(git rev-list --max-parents=0 HEAD)
fi
Step 6: Extract Detailed Changes
Get commits between previous and current release:
git log ${PREV_TAG}..v${VERSION} --pretty=format:"%H|%s|%b" --no-merges
Parse and Categorize
For each commit, extract:
- Commit hash - For reference
- Title - Main commit message
- Body - Additional details
- PR Number - From title or body
Categorization Rules
| Category | Match Patterns | Emoji |
|---|---|---|
| Bug Fixes | [Fix], [FIX], fix:, fix( | 🐛 |
| Features | [Feature], feat:, feat( | ✨ |
| Improvements | [Refactor], [Perf], improve, enhance | ⚡ |
| Documentation | [Docs], docs: | 📝 |
| Security | [Security], security: | 🔒 |
| Other | Everything else | 📦 |
Get PR Details (Optional)
For richer release notes, fetch PR details:
# For each PR number found
gh pr view {PR_NUMBER} --json title,body,labels
Extract:
- PR title
- Key points from description
- Labels (for categorization)
Format Detailed Notes
### 🐛 Bug Fixes
- **[API] Fix trending coins endpoint and date formatting** (#662)
- Fixed invalid query parameters
- Improved date format validation
- Added error handling for edge cases
### ✨ Features
- **Add cross-chain risk tag aggregation** (#648)
- Supports EVM address risk analysis
- Aggregates tags from multiple chains
Step 7: Get Previous Releases Context
List recent releases for context:
# Get last 3-5 releases
git tag --sort=-v:refname | grep -E '^v[0-9]+\.[0-9]+\.[0-9]+$' | head -n 5
For each, get a brief summary:
gh release view v{VERSION} --json tagName,name,body 2>/dev/null | jq -r '.name'
Format as:
### 📊 Recent Releases
- **v2.76.0** - EIP-7702 support, holder analysis improvements
- **v2.75.0** - OFAC enrichment, cross-chain risk tags
- **v2.74.8** - Token metadata improvements
Step 8: Generate Enhanced Release Notes
Use this template:
## Release v{VERSION}
{Brief summary of release - 1-2 sentences}
### 🐛 Bug Fixes
{DETAILED_BUG_FIXES}
### ✨ Features
{DETAILED_FEATURES}
### ⚡ Improvements
{DETAILED_IMPROVEMENTS}
### 📝 Documentation
{DOCUMENTATION_CHANGES - if any}
### 📊 Recent Releases
{PREVIOUS_RELEASES_SUMMARY}
---
**Full Changelog**: https://github.com/{owner}/{repo}/compare/{PREV_TAG}...v{VERSION}
Step 9: Create or Update GitHub Release
Based on Step 4 result:
If Release Does NOT Exist (Common)
gh release create v${VERSION} \
--title "v${VERSION}" \
--notes "$(cat <<'EOF'
{ENHANCED_NOTES}
EOF
)"
If Release Already Exists
gh release edit v${VERSION} \
--notes "$(cat <<'EOF'
{ENHANCED_NOTES}
EOF
)"
If Tag Doesn't Exist
Error: Tag v{VERSION} not found.
This usually means the release workflow didn't complete properly.
Please verify:
1. The release PR was merged to {PROD_BRANCH}
2. The version was bumped correctly
3. The tag was created during the release process
To manually create the tag:
git checkout {PROD_BRANCH}
git pull
git tag v{VERSION}
git push origin v{VERSION}
Then run /release-notes again.
Step 10: Confirm
GitHub release v{VERSION} created with detailed notes
Release URL: https://github.com/{owner}/{repo}/releases/tag/v{VERSION}
Next step: Run /sync to back-merge {PROD_BRANCH} to {DEV_BRANCH}
Configuration Reference
| Setting | Default | Description |
|---|---|---|
workflow.productionBranch | main | Production branch name |
versioning.file | auto | Version file location |
release.generateChangelog | true | Generate detailed changelog |
release.changelogCategories | (default) | Custom categorization rules |
Error Handling
| Scenario | Action |
|---|---|
| Not on production branch | Instruct to checkout and pull |
| Tag doesn't exist | Provide manual tag creation steps |
| gh not authenticated | Run gh auth login instructions |
| No previous tag | Use initial commit as baseline |
| gh release fails | Provide manual creation instructions |
Manual Fallback
If gh command fails:
To manually create/update the release:
1. Go to: https://github.com/{owner}/{repo}/releases
2. Click "Create a new release" or find v{VERSION} and click "Edit"
3. Tag: v{VERSION}
4. Title: v{VERSION}
5. Paste these notes:
---
{ENHANCED_NOTES}
---
6. Click "Publish release" or "Update release"
Example Enhanced Release Notes
## Release v2.77.0
This release includes security enhancements, improved holder analysis accuracy, and multiple bug fixes.
### 🐛 Bug Fixes
- **[API] Fix trending coins endpoint and date formatting** (#662)
- Fixed invalid query parameters and date format issues
- Improved error handling for trending coins API
- Enhanced validation for date range inputs
- **[FIX] Unlimited plan quota alert false positives** (#657)
- Excluded unlimited usage plans from quota alerts
- Prevents false positive Slack notifications
### ✨ Features
- **Add cross-chain risk tag aggregation for EVM addresses** (#648)
- Aggregates risk tags from multiple chains
- Supports comprehensive address risk analysis
### ⚡ Improvements
- **Improve holder analysis accuracy with per-address queries** (#655)
- Implemented net flow calculation to prevent double-counting
- Added unique buyer count and segmentation flags
- Increased analysis depth from 200 to 500 first traders
### 📊 Recent Releases
- **v2.76.0** - EIP-7702 delegated EOA detection, holder analysis improvements
- **v2.75.0** - OFAC enrichment, cross-chain risk tags, token by risk level endpoint
- **v2.74.8** - Token metadata improvements, logo handling fixes
---
**Full Changelog**: https://github.com/org/repo/compare/v2.76.0...v2.77.0
Example Flow
# User runs: /release-notes
# Checks: on main, up-to-date ✓
# Gets: version 2.77.0 from package.json
# Verifies: tag v2.77.0 exists ✓
# Checks: release doesn't exist yet
# Finds: previous release v2.76.0
# Extracts: 15 commits with details
# Generates: Enhanced release notes with emojis
# Creates: GitHub release v2.77.0
# Output: Success with release URL
Signals
- GitHub stars
- 30
- Forks
- 2
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
release-notes-rlajous- Source
- github.com/rlajous/claude-code-commands