Help us improve
Share bugs, ideas, or general feedback.
From document-generator
Update existing CHANGELOG.md with new entries from recent commits
npx claudepluginhub bradleyboehmke/brads-marketplace --plugin document-generatorHow this command is triggered — by the user, by Claude, or both
Slash command
/document-generator:update-changelogThe summary Claude sees in its command listing — used to decide when to auto-load this command
# Update Changelog ## Objective Update existing CHANGELOG.md with new version entries based on recent git commits, maintaining standards and proper version sequencing. ## Activated Skills 1. **`changelog-standards`** (document-generator) - changelog format and structure 2. **`version-validation`** (document-generator) - Versioning rules and validation 3. **`git-history-analysis`** (document-generator) - Git commit parsing patterns ## Parameters - `--path` (optional): Changelog location (auto-detects if not specified) - `--style` (optional): Inherit from existing changelog or specify `...
/changelogGenerates and appends versioned entries to CHANGELOG.md from Git commits and staged changes, auto-classifying into Added/Changed/Fixed/etc. per Keep a Changelog. Uses <version> or today's date.
/changelogAnalyzes git history since last release, detects undocumented changes, drafts entries for CHANGELOG.md [Unreleased] section, and updates on confirmation.
/generate-changelogGenerates changelog from git history using conventional commits, grouping by type and version. Updates or prepends to CHANGELOG.md in Keep a Changelog format. Supports --from and --to flags.
/write-changelogGenerates detailed changelog entry from git commits and merged PRs since last release tag. Classifies changes, adds user-facing descriptions with PR links and credits, prepends to CHANGELOG.md.
/changelogParses git history since last release tag, categorizes commits by type, generates Keep a Changelog markdown with next version suggestion, and offers to prepend to CHANGELOG.md.
/changelogGenerates changelogs from git commit history with automatic categorization, semantic versioning detection, and multiple output formats.
Share bugs, ideas, or general feedback.
Update existing CHANGELOG.md with new version entries based on recent git commits, maintaining standards and proper version sequencing.
changelog-standards (document-generator) - changelog format and structureversion-validation (document-generator) - Versioning rules and validationgit-history-analysis (document-generator) - Git commit parsing patterns--path (optional): Changelog location (auto-detects if not specified)--style (optional): Inherit from existing changelog or specify standard/detailed--since (optional): Git ref to start from (default: last version tag or last changelog entry)--new-version (optional): Version for new release (auto-increment if not provided)--tier (optional): Update tier annotation (Prototype, MVP, Production)--draft (optional): Add to [Unreleased] section instead of creating versioned releaseLocate changelog file:
--path specified: Use that locationCHANGELOG.md (root)docs/CHANGELOG.mddocs/changelog/YYYY.md (current year)**/CHANGELOG.md or **/changelog/*.mdIf not found:
❌ No CHANGELOG.md found
Run /document-generator:generate-changelog to create one first.
Read and parse existing changelog:
Find last version:
# From changelog
grep -E "^## \[" CHANGELOG.md | head -n 2 | tail -n 1
# From git tags
git describe --tags --abbrev=0 2>/dev/null
Get commits since last version:
# If last tag exists
git log LAST_TAG..HEAD --no-merges --pretty=format:"%h|%s|%ad" --date=short
# If no tags (first release since changelog creation)
git log --since="$(git log -1 --format=%ai CHANGELOG.md)" --no-merges --pretty=format:"%h|%s|%ad" --date=short
If no new commits:
ℹ️ No new commits since last version
Changelog is up-to-date.
Parse commit messages, categorize into sections, filter noise, group related changes, and transform to user-facing language.
Extract PR/issue numbers from commit messages to include as links.
If --new-version specified: Use that (validate with version-validation skill)
If --draft flag: Add to [Unreleased] section
Otherwise, auto-increment:
For SemVer:
For CalVer (Year.Minor):
Ask user for confirmation:
Based on commits, I suggest version: [suggested-version]
Changes detected:
- X new features (Added)
- Y bug fixes (Fixed)
- Z improvements (Changed)
What version should I use?
1. [suggested-version] (recommended)
2. Specify custom version
3. Add to [Unreleased] instead
Format new entry based on detected or specified style:
Standard style:
## [NEW_VERSION] - YYYY-MM-DD [TIER]
### Added
- Feature description (#PR)
### Changed
- Improvement description (#PR)
### Fixed
- Bug fix (#PR)
Detailed style:
## [NEW_VERSION] - YYYY-MM-DD [TIER]
### Highlights
- Major capability added
- Significant improvement made
### Detailed Notes
#### Added
- Feature with technical context (#PR)
#### Changed
- Change with rationale (#PR)
#### Fixed
- Fix with context (#PR)
Insert location:
Update [Unreleased] section:
At bottom of changelog, add/update links:
[NEW_VERSION]: https://github.com/ORG/REPO/compare/vOLD_VERSION...vNEW_VERSION
[OLD_VERSION]: https://github.com/ORG/REPO/compare/vPREV_VERSION...vOLD_VERSION
Extract repo URL from:
git config --get remote.origin.url
Validate with version-validation skill:
Write updated file back to original location.
✓ Updated CHANGELOG.md with version NEW_VERSION
Changes:
- Added: X entries
- Changed: Y entries
- Fixed: Z entries
Next steps:
1. Review the new changelog entries
2. Commit changes: git add CHANGELOG.md
3. Tag release: git tag vNEW_VERSION
4. Push with tags: git push --tags
Console (default): Display summary and next steps
Markdown (if --output specified): Save updated changelog
Add to [Unreleased] instead of creating versioned release:
## [Unreleased]
### Added
- New feature in development
### Fixed
- Bug fix awaiting release
Use this when:
If [Unreleased] section exists but is empty, preserve it:
## [Unreleased]
## [1.2.0] - 2025-11-11
If changelog contains both CalVer and SemVer (migration scenario):
Basic usage:
/document-generator:update-changelog
→ Auto-detects last version, suggests next version, updates changelog
With specific version:
/document-generator:update-changelog --new-version=2.1.0
→ Creates version 2.1.0 entry with recent commits
Draft mode:
/document-generator:update-changelog --draft
→ Adds commits to [Unreleased] section
With tier annotation:
/document-generator:update-changelog --new-version=1.0.0 --tier=MVP
→ Creates [1.0.0] [MVP] entry
Since specific ref:
/document-generator:update-changelog --since=v1.5.0
→ Includes all commits since v1.5.0 tag
Custom location:
/document-generator:update-changelog --path=docs/CHANGELOG.md
→ Updates changelog at docs/CHANGELOG.md