Generate release notes in 3 formats (CHANGELOG.md, PR body, Slack announcement) from git commits. Automatically categorizes changes and converts technical language to user-friendly messaging. Use when preparing a production release.
Install with Tessl CLI
npx tessl i github:FlorianBruniaux/claude-code-ultimate-guide --skill release-notes-generator83
Quality
77%
Does it follow best practices?
Impact
92%
1.37xAverage score across 3 eval scenarios
Optimize this skill with Tessl
npx tessl skill review --optimize ./examples/skills/release-notes-generator/SKILL.mdGenerate comprehensive release notes in 3 formats from git commits.
gh apiGenerate release notes since last releaseCreate release notes for version 0.18.0Generate release notes from v0.17.0 to HEADPreview release notes without writing filesTechnical format for developers:
## [0.18.0] - 2025-12-08
### Objective
[1-2 sentence summary]
### New Features
#### [Feature Name] (#PR)
- **Description**: ...
- **Impact**: ...
### Bug Fixes
- **[Module]**: Description (#issue, [error-tracker] ISSUE-XX)
### Technical Improvements
#### Performance / UI/UX / Architecture
- [Description]
### Database Migrations
[If applicable]
### Statistics
- PRs: X
- Features: Y
- Bugs: ZUses template from .github/PULL_REQUEST_TEMPLATE/release.md:
Product-focused format from .github/COMMUNICATION_TEMPLATE/slack-release.md:
This skill integrates with the release workflow:
1. Analyze commits: git log <last-tag>..HEAD
2. Determine version number (MAJOR.MINOR.PATCH)
3. Generate 3 outputs
4. Create PR develop -> main with "Release" label
5. Update CHANGELOG.md
6. After merge: create git tag
7. Generate Slack announcementThe skill automatically transforms technical language:
| Technical | Product |
|---|---|
| "N+1 query optimization with DataLoader" | "Faster list loading" |
| "AI embeddings implementation with pgvector" | "New intelligent search" |
| "Fix scope permissions in getPermissionScope()" | "Fixed access permissions bug" |
| "Migration webpack -> Turbopack" | Do not communicate |
| "React hooks refactoring" | Do not communicate |
| "Fix N+1 in user loaders" | "Performance improvement" |
| "Add retry logic for DB connection errors" | "Better connection stability" |
Commits are categorized by conventional commit prefix:
| Prefix | Category | Include in Slack? |
|---|---|---|
feat: | New Features | Yes |
fix: | Bug Fixes | Yes (if user-facing) |
perf: | Performance | Yes (simplified) |
security: | Security | Yes |
refactor: | Architecture | No |
chore: | Maintenance | No |
docs: | Documentation | No |
test: | Tests | No |
style: | Style | No |
When generating release notes, ALWAYS display a clear summary in the console with:
If migrations are detected, display prominently:
╔══════════════════════════════════════════════════════════════════╗
║ ⚠️ [WARNING] DATABASE MIGRATIONS REQUIRED ║
╠══════════════════════════════════════════════════════════════════╣
║ ║
║ This release contains X migration(s): ║
║ ║
║ • 20251210123456_add_feature_description ║
║ • 20251211094532_update_status_enum ║
║ ║
║ Action required BEFORE deployment: ║
║ → Run: [migration-command] ║
║ ║
╚══════════════════════════════════════════════════════════════════╝If NO migrations:
✅ [OK] No database migrations requiredCheck for new migration files since last release:
# Find new migrations since last tag
git diff <last-tag>..HEAD --name-only -- migrations/User: "Generate release notes since v0.17.0"
Output:
Analyzing commits from v0.17.0 to HEAD...
Found:
- 15 commits
- 8 PRs merged
- 2 new features
- 5 bug fixes
- 3 improvements
╔══════════════════════════════════════════════════════════════════╗
║ ⚠️ [WARNING] DATABASE MIGRATIONS REQUIRED ║
╠══════════════════════════════════════════════════════════════════╣
║ This release contains 1 migration(s): ║
║ • 20251208143021_add_user_preferences ║
║ Action required: [migration-command] ║
╚══════════════════════════════════════════════════════════════════╝
--- CHANGELOG.md Section ---
[Technical format output]
--- PR Release Body ---
[Semi-technical format output]
--- Slack Announcement ---
[Product-focused format output]
Write to files? (CHANGELOG.md, clipboard for PR/Slack)# Get last release tag
git tag --sort=-v:refname | head -n 1
# List commits since tag
git log <tag>..HEAD --oneline --no-merges
# Get PR details
gh api repos/{owner}/{repo}/pulls/{number}
# Get commit details
git show --stat <sha>gh CLI is authenticated--preview to see output without writingassets/changelog-template.md - CHANGELOG section templateassets/slack-template.md - Slack announcement templatereferences/tech-to-product-mappings.md - Transformation rulesreferences/commit-categories.md - Categorization rulesgithub-actions-templates - For CI/CD workflowschangelog-generator - Original inspiration (ComposioHQ)352e748
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.