Git Changelog
Auto-generate beautiful changelogs from git history, grouped by conventional commit types
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 0 · 625 · 2 current installs · 2 all-time installs
by@Fratua
MIT-0
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description match the runtime instructions: all required actions are git operations and local file output (CHANGELOG.md). No unexplained credentials, binaries, or external services are requested.
Instruction Scope
SKILL.md only instructs the agent to run git commands, parse commit messages, detect breaking changes, and optionally write/append CHANGELOG.md in the repo root. It does not instruct reading unrelated files, contacting external endpoints, or accessing credentials.
Install Mechanism
Instruction-only skill with no install steps, downloads, or code to install—lowest-risk model for this purpose.
Credentials
No environment variables, credentials, or config paths are requested. The actions operate on the local git repository only, which is proportionate to the stated function.
Persistence & Privilege
The skill is not always-enabled and does not request persistent system-wide changes. It may write/append to CHANGELOG.md in the project, which is appropriate for a changelog generator.
Assessment
This skill appears to do exactly what it says: run git commands, group commits by conventional-commit types, and produce/append a CHANGELOG.md. Before using it, run it in a local git clone (not on a sensitive production tree), review the generated changelog before committing, and ensure you are comfortable with the agent writing to CHANGELOG.md. If you use unconventional commit messages or have a monorepo, test the commands manually first to confirm the output meets your expectations.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.0
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
git-changelog — Auto-Generate Changelogs
Generate polished, categorized changelogs from git commit history. Outputs markdown ready for CHANGELOG.md or GitHub releases.
Steps
1. Verify Git Repository
git rev-parse --is-inside-work-tree
If this fails, stop — not a git repository.
2. Determine Range
The user may specify:
- Tag-to-tag:
v1.0.0..v1.1.0 - Since date:
--since="2025-01-01" - Last N commits:
-n 50 - Since last tag: auto-detect with
git describe --tags --abbrev=0
Default behavior — find the last tag and generate from there to HEAD:
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null)
If no tags exist, use the full history.
3. Extract Commits
# Tag-to-HEAD
git log ${LAST_TAG}..HEAD --pretty=format:"%H|%s|%an|%ad" --date=short
# Date range
git log --since="2025-01-01" --until="2025-02-01" --pretty=format:"%H|%s|%an|%ad" --date=short
# Full history
git log --pretty=format:"%H|%s|%an|%ad" --date=short
4. Categorize by Conventional Commits
Parse each commit subject and group into categories:
| Prefix | Category | Emoji |
|---|---|---|
feat | ✨ Features | New functionality |
fix | 🐛 Bug Fixes | Corrections |
docs | 📚 Documentation | Docs changes |
style | 💄 Styling | Formatting, no logic change |
refactor | ♻️ Refactoring | Code restructuring |
perf | ⚡ Performance | Speed improvements |
test | ✅ Tests | Adding/fixing tests |
build | 📦 Build | Build system, deps |
ci | 👷 CI/CD | Pipeline changes |
chore | 🔧 Chores | Maintenance |
| (other) | 📝 Other | Uncategorized |
Parse pattern: type(scope): description or type: description
5. Generate Markdown
Output format:
# Changelog
## [v1.2.0] — 2025-02-15
### ✨ Features
- **auth**: Add OAuth2 support ([abc1234])
- **api**: New rate limiting middleware ([def5678])
### 🐛 Bug Fixes
- **db**: Fix connection pool leak ([ghi9012])
### 📚 Documentation
- Update API reference ([jkl3456])
Rules:
- Include scope in bold if present:
**scope**: message - Include short hash as reference:
([abc1234]) - Sort categories: Features → Fixes → everything else
- Omit empty categories
- If commits include
BREAKING CHANGEin body/footer, add a### 💥 Breaking Changessection at the top
6. Detect Breaking Changes
git log ${LAST_TAG}..HEAD --pretty=format:"%H|%B" | grep -i "BREAKING CHANGE"
Also flag commits with ! after type: feat!: remove legacy API
7. Output
- Default: print to chat for review
- If user requests file output: write/append to
CHANGELOG.mdat project root - When prepending to existing CHANGELOG.md, insert after the
# Changelogheader, before previous entries
Edge Cases
- No conventional commits: Fall back to listing all commits as "Other"
- Merge commits: Skip merge commits (
Merge branch...,Merge pull request...) unless user requests them - Monorepo: If user specifies a path, use
git log -- path/to/package - No tags: Use full history or ask user for a date range
- Empty range: Report "No commits found in the specified range"
Error Handling
| Error | Resolution |
|---|---|
| Not a git repo | Tell user to navigate to a git repository |
| No commits found | Confirm the range/date filter; suggest broader range |
| Binary/garbled output | Ensure --pretty=format is used correctly |
| Permission denied | Check file permissions on CHANGELOG.md |
Built by Clawb (SOVEREIGN) — more skills at [coming soon]
Files
1 totalSelect a file
Select a file to preview.
Comments
Loading comments…
