Skip to main content

Claude/ChatGPT Prompt to Turn Git Commits into Polished Release Notes

Turn raw commits and PRs into polished release notes with an exec summary, migration guide, and categorized changes in any tone.

Vul de plaatshouders in

Edit the values, then copy your finished prompt.

Jouw Prompt
prompt.txt

                                

What this prompt does

This prompt takes raw change data — git log output, PR titles, ticket references — and structures it into a complete release document with seven distinct sections. The template does not summarize blindly; it separates executive prose from technical detail, which means a VP and a backend engineer can both read the same release notes and find what they need without wading through the other's content.

The breaking changes section is the design decision that earns trust. Most changelog generators lump breaking changes with other updates. This template isolates them with an explicit migration guide, which is the single most important thing for any team running zero-downtime deployments or managing API consumers. The [tone] and [audience] variables let you produce the same version for an enterprise changelog and a developer-facing CHANGELOG.md without rewriting from scratch.

Performance improvements are kept separate with a placeholder for metrics. That forces you to supply real numbers rather than vague prose — leave the field empty and the model will either skip the section or generate generic filler, which is exactly why the "not measured" workaround in Pro tips matters.

When to use it

  • Drafting public release notes for a SaaS product before pushing to a status page or blog.
  • Generating CHANGELOG.md entries from a sprint's PR descriptions before merging to main.
  • Producing customer-facing upgrade guides when a library releases a major version with deprecations.
  • Writing internal release summaries for stakeholders who do not read commit history.
  • Automating changelog drafts inside a CI pipeline by piping git log output into the [raw_changes] variable.
  • Preparing app store release notes by targeting [audience] as end users and [tone] as plain English.

Example output

Version 2.4.0 — Payment Service (released 2026-06-19)

Executive Summary
This release introduces webhook retry logic and resolves a race condition
in concurrent checkout sessions. No database migrations required to upgrade
from 2.3.x.

Breaking Changes
- `PaymentClient::charge()` now throws `PaymentDeclinedException` instead of
  returning false. Update any boolean checks in your integration layer.
  Migration: replace `if (!$client->charge(...))` with a try/catch block.

Bug Fixes
- #1042 Fixed session lock timeout causing duplicate charge events under load.
- #1055 Corrected currency rounding for JPY (zero-decimal currency).

Performance
- Webhook delivery p99 latency reduced from 4.2s → 0.8s after adding
  exponential backoff with jitter.

Pro tips

  • Feed the prompt real git log --oneline output, not manually written summaries — the AI is better at categorizing raw commit messages than you expect, and it surfaces patterns you might miss.
  • Set [changelog_format] to Keep a Changelog 1.0.0 when targeting open-source projects; most maintainers recognize that structure immediately.
  • If you have no metrics for the performance section, put "not measured" in [raw_changes] for those items — it keeps the section honest rather than producing generic filler where a real number should go.
  • Use [tone]: terse, imperative for developer-facing docs and [tone]: conversational, reassuring for end-user announcements. The same underlying changes read very differently.
  • Pair this with a PR template that requires commit authors to tag changes as feat, fix, perf, or break — that structured input makes the [categories] variable far more effective.

Frequently Asked Questions

Can I use raw `git log` output directly as the [raw_changes] input?
Yes, and it works well. Pipe `git log v2.3.0..v2.4.0 --oneline` directly into the field. The model will infer categories from commit prefixes like feat, fix, and chore. Conventional Commits format gives the cleanest results, but plain log output still categorizes correctly most of the time.
What should I put in [changelog_format] if I do not follow a specific standard?
Leave it blank or write 'none' and describe your preference in plain language — for example, 'headers per section, bullet points, no timestamps'. The prompt handles unstructured format instructions; it does not require a named standard.
Does the prompt generate the migration guide automatically or do I need to describe the breaking changes?
You need to describe them in [raw_changes]. The prompt structures and expands what you provide — it does not infer breaking changes from a diff. If you note 'renamed method X to Y', the model will write the migration step; if you omit it, the breaking changes section will be empty or generic.
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