Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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 for releases, changelogs, version notes, what's new summaries, or ship announcements.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-15 | ✗→✓ | ▲ Improved | 93% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 53% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 51% | 0% |
| case-22 | ✗→✓ | ▲ Improved | 94% | 0% |
| case-23 | ✓→✗ | ▼ Worse | 76% | 0% |
Generate 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:
markdown## [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: Z
Uses 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:
bash# 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)bash# 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)Other measured skills in the registry, with their headline benchmark lift.