Update Changelog
Update CHANGELOG.md with user-facing changes from recent development work.
Input
Primary input: optional start reference — a date (YYYY-MM-DD) or commit hash.
Optional last parameter: -- <additional context>
Interpret $ARGUMENTS as one of:
-
<date>
-
<commit>
-
<date> -- <additional context>
-
<commit> -- <additional context>
-
-- <additional context>
If no start reference is provided, look at commits since the last changelog update. Use any additional context to influence grouping, emphasis, or release framing.
Process
Step 1: Read Current Changelog
Read CHANGELOG.md to understand the existing format and last update.
Step 2: Gather Recent Commits
git log --format="%h %s" --since="1 month ago"
Or from a specific commit:
git log --oneline <commit>..HEAD
Step 3: Filter and Deduplicate
Include only changes users would notice: features, bug fixes, performance improvements.
Skip internal changes: refactors, tests, chore, CI, docs (unless user-facing help docs).
Deduplicate against existing entries. Compare each candidate commit against what's already in the changelog — if a commit is already covered by an existing entry (even with different wording), skip it.
Step 4: Write Entries
Group by category (Features, Improvements, Bug Fixes, Performance). Adapt categories to the project's domain when appropriate, and factor in any optional additional context.
Writing rules:
-
Active voice: "Create shareable links" not "Shareable links were added"
-
Describe what users can do differently, not how the implementation works — even for technical projects. "Project setup is now smarter and faster" not "Adopted three-tier context model with signal-to-noise scoring"
-
Bold the feature name: Feature name - description
-
One line per entry
-
Combine multiple commits for one feature into a single entry
Step 5: Update CHANGELOG.md
Add a new section at the top (after the header):
Month Year
Category
- Feature name - Brief description
Step 6: Verify
-
Only user-facing changes included
-
No technical jargon
-
Consistent formatting with existing entries
-
No duplicates with existing changelog content
Example transformation — feat(auth): add OAuth2 login with Google becomes Google sign-in - Sign in with your Google account for faster access .
Guidelines
-
User perspective — ask "Would a user notice or care about this?"
-
No duplicates — check existing entries before adding
-
Combine related commits — multiple commits for one feature = one entry
-
Positive framing — "Fixed X" is better than "X was broken"
Related Skills
Before: Use forge-address-pr-feedback to address reviewer feedback before merging.
Example Usage
/forge-update-changelog /forge-update-changelog 2025-01-01 /forge-update-changelog 2025-01-01 -- emphasize user-visible setup workflow improvements