kbrdn1/dotfiles/changelog-generator
Claude Code and agent skill by kbrdn1/dotfiles
- community
Checking that the SKILL.md file is still in the repository.
Generate changelogs from Git history -- extract git logs, split CHANGELOG.md into individual version files, calculate working days with French holidays. Triggers on "generate changelog", "split changelog", "working days", "changelog for version X"
Install
npx vskill@latest install kbrdn1/dotfiles/changelog-generatorSKILL.md
Changelog Generator
CLI Go tool + skill for generating and managing changelogs from git history.
When to Use
- "generate the changelog for version X.Y.Z"
- "split the changelog into individual files"
- "extract the git log"
- "calculate working days for this release"
- "prepare changelog for the release"
Architecture
Setup (one time)
Or build manually:
Subcommands
extract -- git log to file
Extracts git history between two branches into git-log.txt using a structured format parsable by the tool.
Output: <project-root>/git-log.txt
split -- CHANGELOG.md to individual files
Parses CHANGELOG.md and generates one file per version in changelogs/:
- Release versions:
changelogs/vX.Y.Z.md - Pre-releases (major 0 or
-beta/-rcsuffix):changelogs/pre-releases/vX.Y.Z.md
Uses SHA-256 hash comparison to only write files that actually changed. Reports created/updated/unchanged counts.
Flags:
--changelog: path to main CHANGELOG.md (default: CHANGELOG.md)--output-dir: output directory (default: ./changelogs)--clean: remove orphaned files not present in CHANGELOG.md
metrics -- working days calculation
Calculates development productivity metrics per version:
- calendar days, working days (excluding weekends, French holidays, course weeks)
- unique days with commits, commits per day efficiency
- outputs JSON report
Configuration via changelog.config.json:
French holidays are calculated automatically (11 fixed + 3 Easter-dependent via computus algorithm).
generate -- full pipeline
Runs extract + prompts for redaction + split in sequence.
Steps:
- Extract git log from
base..compare - Print instructions for changelog redaction (via
/generate_changelogClaude command or manual edit) - Split existing CHANGELOG.md into individual files
Workflow
The recommended workflow for a new release:
Or use make targets if the project has them:
CHANGELOG.md Format
The parser supports two header formats:
# Version X.Y.Z - YYYY-MM-DD(Flippad convention)## [X.Y.Z] - YYYY-MM-DD(Keep a Changelog standard)
Entry format:
Entries are auto-categorized into Features, Fixes, and Chores based on bold level markers (**Feat**, **Fix**, **Chore**, etc.) or inferred from keywords.
Pre-release Detection
A version is considered pre-release when:
- Major version is 0 (e.g.
0.42.0) -- semver convention - Version has a pre-release suffix:
-alpha,-beta,-rc.1,-dev
This replaces the previous hardcoded logic (major == "0" && minor == "23").
Improvements Over Original Tools
| Issue in original | Fix | |
|---|---|---|
isPreRelease() hardcoded for v0.23.0 only | Proper semver: major 0 or -beta/-rc suffix | |
| Course weeks hardcoded in Go source | Configurable via changelog.config.json | |
Output dirs hardcoded as ../changelogs/ | Configurable via --output-dir flag | |
| Always overwrites files | SHA-256 hash comparison, only writes if changed | |
| No orphan cleanup | --clean flag removes files not in CHANGELOG | |
| Only one header format supported | Supports both # Version X.Y.Z and ## [X.Y.Z] | |
| No structured git log format | Uses ---COMMIT--- separator with field delimiters | |
| Working days report only in markdown | JSON output for programmatic use |
Error Handling
| Error | Cause | Fix | |
|---|---|---|---|
| "not inside a git repository" | Running outside a git repo | cd into the project | |
| "parse changelog: open..." | CHANGELOG.md not found | Check --changelog path | |
| "git log failed" | Branch doesn't exist or no commits in range | Verify branches with git branch -a | |
| config not found | No changelog.config.json | Copy from skill: config/changelog.config.json |
Boundaries
Will: extract git logs, parse changelogs, split into files, calculate working days, provide prompt for redaction
Will not: automatically write changelog content (that's the human/AI redaction step), push to git, create releases, interact with GitHub API
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingprivate_dot_claude/skills/changelog-generator/SKILL.md
Popularity
- 7-day trend score
- 0
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/kbrdn1/dotfiles/changelog-generator)