Skip to main content

Claude/ChatGPT Prompt to Convert a Git Log into a Keep a Changelog Entry

Convert raw git log output into a polished CHANGELOG.md entry in Keep a Changelog format, grouped and rewritten user-facing.

Vul de plaatshouders in

Edit the values, then copy your finished prompt.

Jouw Prompt
prompt.txt

                                

What this prompt does

This prompt converts raw git log output into a polished CHANGELOG.md entry in Keep a Changelog format. It casts the assistant as a senior release engineer and takes three context variables: [version], the [git_log] output, and [audience]. The deliverables are a version heading with today's date in ISO format, commits grouped into Added / Changed / Fixed / Removed / Security, trivial commits (formatting, merge noise, version bumps) dropped, each remaining line rewritten as user-facing present tense, PR or issue numbers linked where present, and a short "Breaking" callout at the top if any change is backward-incompatible.

The structure works because writing a changelog by hand is exactly the step that gets skipped under deadline, leaving an inconsistent or missing history. By categorizing commits into the standard Keep a Changelog sections and dropping noise, the prompt produces a clean, honest record automatically. The [audience] variable matters because end users and integrators need user-facing language, not raw commit messages — telling the model which prefixes are noise (chore, ci, style) lets it strip them instead of listing them.

When to use it

  • Tagging a release and needing a clean changelog without the manual grind
  • When changelogs keep getting skipped under deadline pressure
  • When raw commit messages aren't user-facing enough to publish
  • When you want consistent Keep a Changelog formatting across releases
  • When a release includes a breaking change that needs a prominent callout
  • When you want PR or issue numbers linked automatically from the log

Example output

You get a single Markdown block that pastes directly into an existing CHANGELOG.md: a version heading dated in ISO format, commits sorted under Added / Changed / Fixed / Removed / Security, trivial noise removed, each entry rewritten in user-facing present tense, and PR or issue references linked where the log contained them. If anything is backward-incompatible, a short "Breaking" callout sits at the top. It's formatted to slot into your existing changelog without reformatting. The rewrite step is where the real value lands — raw commit subjects like "fix: null check in parser" become reader-facing lines that explain what changed for the person upgrading, not what the developer typed in a hurry.

Pro tips

  • Tell the model which commit prefixes are noise (chore, ci, style) so it strips them instead of listing them
  • Set [audience] to your actual readers so the rewrites land in user-facing language, not developer shorthand
  • Paste the full [git_log] for the release range so nothing meaningful is silently dropped
  • Double-check the "Breaking" callout against your own judgment, since the model infers it from commit messages
  • Confirm the version heading date is correct if you're preparing the entry ahead of the actual tag
  • Review the grouping; a commit can land in the wrong category if its message was ambiguous

Frequently Asked Questions

What format does the changelog use?
It follows the Keep a Changelog convention, grouping entries under Added, Changed, Fixed, Removed, and Security with an ISO-dated version heading. The output is a single Markdown block designed to paste straight into an existing CHANGELOG.md without reformatting.
Does it drop trivial commits?
Yes, it drops formatting changes, merge noise, and version bumps. You can make this sharper by telling it which prefixes — like chore, ci, or style — count as noise, so it strips them rather than listing them as user-facing entries.
How does it know if a change is breaking?
It infers backward-incompatibility from the commit messages and adds a short "Breaking" callout at the top when it finds one. Since that inference depends on how commits were written, double-check the callout against your own knowledge of the release.
Will it link PR or issue numbers?
It links PR or issue numbers where they appear in the git log you paste. If your commit messages don't reference those numbers, it can't invent them, so include the full log with references for the linking to work.
Engr Mejba Ahmed

Need this built for real?

Engr Mejba Ahmed

AI Developer · Software Engineer

I'm Mejba — I design and ship production AI systems, automations, and full-stack apps. If you want this turned into a working solution for your team, let's talk.

Meer in AI Writing for Developers

Engr Mejba Ahmed

Engr Mejba Ahmed

Claude Code Expert · Online

👋

Hey there!

Quick Actions

WhatsApp Instant reply

Chat on WhatsApp

+880 1723 741224 · Instant reply

Popular Questions

Engr Mejba Ahmed is connected
Engr Mejba Ahmed is typing...
Engr Mejba Ahmed avatar

✉ Want me to follow up? Drop your email

Engr Mejba Ahmed avatar

📞 Connect Directly

Choose how you'd like to reach me

WhatsApp

+880 1723 741224

Email

[email protected]

✓ Details sent! I'll get back to you shortly.

Powered by OpenAI

335+

Blog Posts

25

AI Courses

63

Projects

Services & Expertise

Pricing & Process

Learning & Resources

Connect & Support