From document-generator
Update existing CHANGELOG.md with new entries from recent commits
npx claudepluginhub bradleyboehmke/brads-marketplace --plugin document-generator# 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 `...
/update-changelogUpdate project CHANGELOG.md automatically from git commits
/update-changelogUpdate project CHANGELOG.md automatically from git commits
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