Release Notes & Changelog Generator
This skill analyzes git repositories to generate end-user friendly release notes and changelogs. It reads actual code diffs (not just commit messages), understands what changed, consolidates related changes, and produces clean markdown suitable for Slack updates and program documentation.
Key Differentiators
- Diff-Based Analysis: Reads actual code changes, not just commit messages
- End-User Focus: No technical jargon, functions, or variables in output
- Smart Consolidation: If something changed back and forth with no net result, it's not mentioned
- Final State Only: Shows what the end result is, not intermediate steps
- Breaking Change Detection: Automatically flags breaking changes from commits and diffs
- Cross-Platform: Works on Windows, macOS, and Linux
- Multi-Remote Support: GitHub, Bitbucket, and local git repositories
Capabilities
- Tag-to-Tag Analysis: Generate notes between any two release tags (e.g., v1.0.0 to v1.1.0)
- Since-Last-Tag: Automatically detect last tag and show changes since then
- Recent Commits: Analyze last N commits for quick updates
- Full Diff Reading: Understand actual code changes, not vague commit messages
- Change Consolidation: Merge related changes, eliminate flip-flop changes
- Category Bucketing: Organize into Features, Enhancements, Bug Fixes, Changes, Breaking Changes, Others
- Slack-Ready Output: Formatted markdown with bullet points and optional footnotes
- Footnotes Support: Add setup notes or important info without exposing secrets
Output Categories
Changes are organized into these buckets:
| Category |
Description |
When Used |
| New Features |
Brand new functionality |
New screens, new buttons, new capabilities |
| Enhancements |
Improvements to existing features |
Faster, better, more options |
| Bug Fixes |
Issues that were resolved |
Things that weren't working now work |
| Changes |
Modifications to behavior |
Something works differently now |
| Breaking Changes |
Changes requiring user action |
Must update settings, data migration needed |
| Others |
Miscellaneous updates |
Documentation, internal improvements users might notice |
Input Requirements
The skill needs:
- Repository Path (optional): Defaults to current directory
- Range Specification (one of):
from_tag and to_tag: Compare between two tags
since_tag: Everything since a specific tag to HEAD
last_n_commits: Analyze recent N commits (default: 50)
- Remote Type (optional):
github, bitbucket, or local (auto-detected)
Input Formats Accepted:
Natural language:
- "Generate release notes from v1.0.0 to v1.1.0"
- "What changed since the last release?"
- "Show me what's new in the last 30 commits"
Structured JSON:
{
"repo_path": "C:\\Projects\\MyApp",
"from_tag": "v1.0.0",
"to_tag": "v1.1.0"
}
Output Format
Markdown file with this structure:
# Release Notes - v1.1.0
## New Features
- Added dark mode toggle in settings
- New export to PDF option in reports
## Enhancements
- Improved loading speed when opening large files
- Search now finds partial matches
## Bug Fixes
- Fixed issue where login would fail on slow connections
- Resolved crash when uploading files over 10MB
## Changes
- Settings menu has been reorganized for clarity
- Default file format changed from CSV to Excel
## Breaking Changes
- Database format updated - run migration tool before upgrading
---
**Notes:**
- Dark mode requires display driver update on Windows 7
- PDF export needs Adobe Reader installed
How the Analysis Works
Step 1: Gather Commits
Collects all commits in the specified range from the git repository.
Step 2: Read Full Diffs
For each commit, reads the actual code changes (additions, deletions, modifications).
Step 3: Interpret Changes
Translates technical changes into plain English descriptions:
+ showWelcomeMessage = true → "Welcome message now displays when app starts"
- Deleted login retry logic → "Removed automatic login retry"
Step 4: Consolidate Changes
Groups related changes and eliminates noise:
- If a feature was added then removed, it's not mentioned
- If a value changed multiple times, only the final state matters
- Related commits are merged into single descriptions
Step 5: Categorize
Assigns each change to the appropriate bucket based on:
- Commit message keywords (feat, fix, enhancement, etc.)
- Type of code change (new files = feature, deleted code = removal)
- Breaking change indicators
Step 6: Format Output
Generates clean markdown with:
- Clear category headings
- Brief bullet points
- Optional footnotes for important notes
- No technical details, secrets, or jargon
Scripts
git_analyzer.py: Cross-platform git operations (Windows/macOS/Linux compatible)
diff_parser.py: Reads and interprets code diffs in plain English
change_consolidator.py: Merges related changes, detects net-zero changes
changelog_formatter.py: Generates Slack-ready markdown output
breaking_change_detector.py: Identifies breaking changes from commits and diffs
Best Practices
- Use Meaningful Tags: Tag releases with semantic versions (v1.0.0, v1.1.0)
- Run Before Release: Generate notes as part of your release process
- Review Output: AI interpretation is good but human review ensures accuracy
- Add Footnotes: Use the notes section for setup instructions or warnings
- Keep It Brief: Bullet points should be one line each
- No Secrets: Never include passwords, API keys, or internal URLs in notes
Limitations
- Requires Git Repository: Only works with valid git repos
- Tag Must Exist: Specified tags must exist in the repository
- Diff Size Limits: Very large diffs (1000+ files) may be summarized
- Language Detection: Best results with common programming languages
- Interpretation Accuracy: Complex changes may need human refinement
- No Real-Time: Analyzes existing commits, not live changes
When to Use This Skill
Perfect for:
- Release announcements to support teams (Slack)
- Customer-facing changelog updates
- Sprint review summaries
- Version upgrade documentation
- Non-technical stakeholder updates
Not Ideal for:
- Technical developer documentation
- Detailed code review
- Security audit reports
- Debugging commit history
1---2name: repo-changelog3description: Generates end-user friendly release notes and changelogs by analyzing git diffs, consolidating changes, and formatting for Slack and documentation4---5
6# Release Notes & Changelog Generator
7
8This skill analyzes git repositories to generate **end-user friendly** release notes and changelogs. It reads actual code diffs (not just commit messages), understands what changed, consolidates related changes, and produces clean markdown suitable for Slack updates and program documentation.
9
10## Key Differentiators
11
12- **Diff-Based Analysis**: Reads actual code changes, not just commit messages
13- **End-User Focus**: No technical jargon, functions, or variables in output
14- **Smart Consolidation**: If something changed back and forth with no net result, it's not mentioned
15- **Final State Only**: Shows what the end result is, not intermediate steps
16- **Breaking Change Detection**: Automatically flags breaking changes from commits and diffs
17- **Cross-Platform**: Works on Windows, macOS, and Linux
18- **Multi-Remote Support**: GitHub, Bitbucket, and local git repositories
19
20## Capabilities
21
22- **Tag-to-Tag Analysis**: Generate notes between any two release tags (e.g., v1.0.0 to v1.1.0)
23- **Since-Last-Tag**: Automatically detect last tag and show changes since then
24- **Recent Commits**: Analyze last N commits for quick updates
25- **Full Diff Reading**: Understand actual code changes, not vague commit messages
26- **Change Consolidation**: Merge related changes, eliminate flip-flop changes
27- **Category Bucketing**: Organize into Features, Enhancements, Bug Fixes, Changes, Breaking Changes, Others
28- **Slack-Ready Output**: Formatted markdown with bullet points and optional footnotes
29- **Footnotes Support**: Add setup notes or important info without exposing secrets
30
31## Output Categories
32
33Changes are organized into these buckets:
34
35| Category | Description | When Used |
36|----------|-------------|-----------|
37| **New Features** | Brand new functionality | New screens, new buttons, new capabilities |
38| **Enhancements** | Improvements to existing features | Faster, better, more options |
39| **Bug Fixes** | Issues that were resolved | Things that weren't working now work |
40| **Changes** | Modifications to behavior | Something works differently now |
41| **Breaking Changes** | Changes requiring user action | Must update settings, data migration needed |
42| **Others** | Miscellaneous updates | Documentation, internal improvements users might notice |
43
44## Input Requirements
45
46The skill needs:
47
481. **Repository Path** (optional): Defaults to current directory
492. **Range Specification** (one of):
50 - `from_tag` and `to_tag`: Compare between two tags
51 - `since_tag`: Everything since a specific tag to HEAD
52 - `last_n_commits`: Analyze recent N commits (default: 50)
533. **Remote Type** (optional): `github`, `bitbucket`, or `local` (auto-detected)
54
55**Input Formats Accepted**:
56
57Natural language:
58- "Generate release notes from v1.0.0 to v1.1.0"
59- "What changed since the last release?"
60- "Show me what's new in the last 30 commits"
61
62Structured JSON:
63```json
64{
65 "repo_path": "C:\\Projects\\MyApp",
66 "from_tag": "v1.0.0",
67 "to_tag": "v1.1.0"
68}
69```
70
71## Output Format
72
73Markdown file with this structure:
74
75```markdown
76# Release Notes - v1.1.0
77
78## New Features
79- Added dark mode toggle in settings
80- New export to PDF option in reports
81
82## Enhancements
83- Improved loading speed when opening large files
84- Search now finds partial matches
85
86## Bug Fixes
87- Fixed issue where login would fail on slow connections
88- Resolved crash when uploading files over 10MB
89
90## Changes
91- Settings menu has been reorganized for clarity
92- Default file format changed from CSV to Excel
93
94## Breaking Changes
95- Database format updated - run migration tool before upgrading
96
97---
98
99**Notes:**
100- Dark mode requires display driver update on Windows 7
101- PDF export needs Adobe Reader installed
102```
103
104## How the Analysis Works
105
106### Step 1: Gather Commits
107Collects all commits in the specified range from the git repository.
108
109### Step 2: Read Full Diffs
110For each commit, reads the actual code changes (additions, deletions, modifications).
111
112### Step 3: Interpret Changes
113Translates technical changes into plain English descriptions:
114- `+ showWelcomeMessage = true` → "Welcome message now displays when app starts"
115- Deleted login retry logic → "Removed automatic login retry"
116
117### Step 4: Consolidate Changes
118Groups related changes and eliminates noise:
119- If a feature was added then removed, it's not mentioned
120- If a value changed multiple times, only the final state matters
121- Related commits are merged into single descriptions
122
123### Step 5: Categorize
124Assigns each change to the appropriate bucket based on:
125- Commit message keywords (feat, fix, enhancement, etc.)
126- Type of code change (new files = feature, deleted code = removal)
127- Breaking change indicators
128
129### Step 6: Format Output
130Generates clean markdown with:
131- Clear category headings
132- Brief bullet points
133- Optional footnotes for important notes
134- No technical details, secrets, or jargon
135
136## Scripts
137
138- `git_analyzer.py`: Cross-platform git operations (Windows/macOS/Linux compatible)
139- `diff_parser.py`: Reads and interprets code diffs in plain English
140- `change_consolidator.py`: Merges related changes, detects net-zero changes
141- `changelog_formatter.py`: Generates Slack-ready markdown output
142- `breaking_change_detector.py`: Identifies breaking changes from commits and diffs
143
144## Best Practices
145
1461. **Use Meaningful Tags**: Tag releases with semantic versions (v1.0.0, v1.1.0)
1472. **Run Before Release**: Generate notes as part of your release process
1483. **Review Output**: AI interpretation is good but human review ensures accuracy
1494. **Add Footnotes**: Use the notes section for setup instructions or warnings
1505. **Keep It Brief**: Bullet points should be one line each
1516. **No Secrets**: Never include passwords, API keys, or internal URLs in notes
152
153## Limitations
154
155- **Requires Git Repository**: Only works with valid git repos
156- **Tag Must Exist**: Specified tags must exist in the repository
157- **Diff Size Limits**: Very large diffs (1000+ files) may be summarized
158- **Language Detection**: Best results with common programming languages
159- **Interpretation Accuracy**: Complex changes may need human refinement
160- **No Real-Time**: Analyzes existing commits, not live changes
161
162## When to Use This Skill
163
164**Perfect for:**
165- Release announcements to support teams (Slack)
166- Customer-facing changelog updates
167- Sprint review summaries
168- Version upgrade documentation
169- Non-technical stakeholder updates
170
171**Not Ideal for:**
172- Technical developer documentation
173- Detailed code review
174- Security audit reports
175- Debugging commit history