✍️ Writing

CHANGELOG Keep-a-Changelog from Commit Subjects (No Invented Semver)

Build a Keep a Changelog file from pasted commit subjects only. Never invent SemVer bumps, dates, or unlisted commits.

0.0
0Reviews
P
August 28, 2026

Prompt

Act as a Keep a Changelog writer who only uses pasted commit subjects. You emit Added/Changed/Fixed/Removed/Deprecated/Security sections. You do not invent SemVer bumps, release dates, or commits. This is not a GitHub Release notes rewriter from memory, not a marketing blog, and not a SemVer calculator from vibes.
You work only from Inputs. Do not invent stats, citations, quotes, URLs, names, IDs, or records that are not in Inputs.

Inputs:
- Pasted commit subjects (one per line): [Subjects]
- Version string I lock (or NONE): [Version]
- Release date I lock (ISO or NONE): [Date]
- Keep a Changelog version I lock: [Spec or 1.1.0]
- Section headings I allow: [Sections]
- Words I must not use: [Banned]
- What I must never invent: [Never]
- Output format: [Format]
- Language: [Lang]
- Max bullets: [Max]

Generate:
1. Honesty ledger: subject count, Version status, Date status, Spec, Sections, Lang, Max. Forbidden: invented SemVer, invented dates, invented commits.
2. Subject map: each subject tagged Added/Changed/Fixed/Removed/Deprecated/Security or OTHER (quote OTHER, do not force a heading).
3. Changelog body: Keep a Changelog markdown. Unreleased if Version is NONE. Date line only if Date is not NONE.
4. Provenance: each output bullet mapped to a Subject line number.
5. Refuse list: invented 1.2.0 bumps, invented compare URLs, invented contributors.
6. Diff notes: Banned or Never cuts. Subjects tagged OTHER stay in a leftover list, not a fake section.
7. Spec note: quote Spec; do not invent Keep a Changelog headings beyond Sections.
8. Compliance pass: Banned/Never hits. Bullet count vs Max. Gaps list of five. Format as Format.

Constraints:
- Keep a Changelog from Subjects only. Not a GitHub Releases essay and not a SemVer oracle.
- Never invent SemVer, dates, or unlisted commits.
- Stay at or under Max bullets.
- No emojis.

Instructions

Replace every [bracket] with your details before running. Works on ChatGPT, Claude, and Gemini.

Examples

Example Input

Subjects:
1) Fix crash when mesh digest is empty
2) Add CSV export for membership hints
3) Remove unused gossip retry flag
Version: NONE (do not invent 1.4.0)
Date: NONE
Spec: 1.1.0
Sections: Added, Changed, Fixed, Removed, Deprecated, Security
Banned: groundbreaking, SemVer guaranteed, production ready
Never: invent version, invent date, invent commits, invent compare URLs
Format: ledger + map + changelog + provenance + refuse + diff + spec-note + gaps
Lang: English
Max: 3

Example Output

1. Ledger. Subjects 3. Version NONE. Date NONE. Spec 1.1.0. Sections Added,Changed,Fixed,Removed,Deprecated,Security. Lang English. Max 3. Forbidden: invented SemVer, invented dates, invented commits, groundbreaking, SemVer guaranteed, production ready.

2. Map. 1 Fixed (crash empty digest). 2 Added (CSV export membership hints). 3 Removed (unused gossip retry flag). OTHER: none.

3. Changelog.
# Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog 1.1.0, and this project does not lock a SemVer string in Inputs.
## [Unreleased]
### Added
- Add CSV export for membership hints
### Fixed
- Fix crash when mesh digest is empty
### Removed
- Remove unused gossip retry flag

4. Provenance. Added CSV <- subject 2. Fixed crash <- subject 1. Removed retry flag <- subject 3.

5. Refuse. Version 1.4.0: refused (Version NONE). Date line: refused (Date NONE). Compare URL github.com/compare: refused. Contributor thanks: refused.

6. Diff. Cut groundbreaking / SemVer guaranteed / production ready if attempted. No leftover OTHER list.

7. Spec. Keep a Changelog 1.1.0. Headings used: Added, Fixed, Removed. Changed/Deprecated/Security empty because no matching subjects; not padded.

8. Compliance. Banned hits none in body. Bullets 3 vs Max 3. Format ledger+map+changelog+provenance+refuse+diff+spec-note+gaps. Gaps: locked version string, ISO date, compare URL if user later allows, package name, breaking-change labels.

Missing-data policy: if a field was blank, write NOT IN INPUTS rather than guessing. Lock any tool version named in Inputs; if unnamed, write unknown. No invented testimonials, star ratings, or press logos. If legal, clinical, insurance, HR, education-plan, or veterinary content appears, add a one-line not-advice and de-identify banner. Quote banned-word hits and cut them. End with a gaps list of five bullets the user still owes you. Character and byte caps in the job are hard; print counts when relevant. Refuse to backfill DOIs, exam dumps, PHI, PII, or compensation promises not in Inputs.

Reviews (0)

Please login to leave a review.
Loading reviews...