$ recombobulate _
home / tips / maintain-your-changelogmd-with-claude
1

Maintain Your CHANGELOG.md with Claude

bagwaa @bagwaa · Mar 25, 2026 · Workflows
maintain-your-changelogmd-with-claude

A CHANGELOG.md in Keep a Changelog format is the canonical place developers look for what changed between versions. Stop writing it by hand — pipe your git log and let Claude produce the entry.

git log v1.2.0..HEAD --oneline | claude -p "
Format these commits as a CHANGELOG.md entry for version 1.3.0
following the Keep a Changelog format. Group into Added, Changed,
Fixed, and Removed sections. Today's date is $(date +%Y-%m-%d).
Skip merge commits and internal chore entries.
"

Claude reads the raw commits, filters out noise like merge commits and typo fixes, infers intent from the messages, and produces a clean categorised entry ready to paste into your file:

## [1.3.0] - 2026-03-25

### Added
- User profile avatars with automatic resizing

### Fixed
- Cart total not updating when quantity changes
- Password reset email not sending on staging

Works best with conventional commit messages (feat:, fix:, chore:) but Claude handles natural-language commits too — it's good at inferring whether "tweak button styles" belongs under Changed or Fixed.

To keep this consistent, add a shell alias that always targets your last tag:

alias changelog='git log $(git describe --tags --abbrev=0)..HEAD --oneline | claude -p "Generate a Keep a Changelog entry for the next version. Group into Added, Changed, Fixed, Removed."'

Run it before every release, paste the output, commit — your CHANGELOG practically writes itself.

~/recombobulate $ tip --comments --count=0

Log in to leave a comment.

~/recombobulate $ tip --related --limit=3
0
Scan Pending Changes for Security Issues with /security-review

The /security-review command scans your uncommitted changes for injection vectors, auth gaps, hardcoded secrets, and other common vulnerabilities.

bagwaa @bagwaa · 1 hour ago
0
Run Setup Scripts on Every Session with the SessionStart Hook

The SessionStart hook fires when any session begins or resumes, making it ideal for loading environment variables and running one-time setup scripts.

bagwaa @bagwaa · 1 hour ago
0
Write Property-Based Tests with fast-check and Claude

Ask Claude to write property-based tests for your functions using fast-check — it identifies the mathematical invariants in your code and generates tests that cover inputs you'd never enumerate by hand.

bagwaa @bagwaa · 2 hours ago