Home/Blog/How to Write an API Deprecation Notice from a Changelog
Blog

How to Write an API Deprecation Notice from a Changelog

P
promptstudio
How to Write an API Deprecation Notice from a Changelog

Deprecation notices go wrong when a model picks Friday as the sunset because it sounded official. The changelog never named a date. Support then has to walk back a last-call that legal never signed.

The matching generator is the API Deprecation Notice from a Changelog (No Invented Sunset Dates) prompt. Browse related cards in the PromptDig library (Browse more prompts). When a filled run survives, share the version you actually use (Share a prompt).

Ledger versions and dates before you write a subject

Turn a pasted changelog into a customer deprecation notice. No invented sunset dates, replacement APIs, or traffic stats. Start by filling Inputs, not by asking the model to remember last week's run. If a field is blank, write NONE or NOT IN INPUTS and leave it blank through Generate. The card is built so the model cannot honestly invent a number, owner, URL, or command that you did not paste.

Paste these fields before you hit run:

Product and API surface: [Product]
Pasted changelog excerpt (include version and date if present): [Changelog]
Endpoints or fields being removed (quote from Changelog): [Removed]
Replacement I can prove (or NONE): [Replacement]
Sunset or last-call date that is already committed in Changelog or policy: [Sunset or NONE]
Support channel and SLA I may cite: [Support]
Who must act (role, not named people unless pasted): [Audience]
Migration steps I can prove: [Steps]
Words I must not use: [Banned]
Word budget: [Budget or 350]

That inventory is the honesty ledger. Anything that does not appear there is forbidden in the draft. If you catch yourself adding a nice-to-have after the run, you are no longer using the card. You are ghostwriting. Put the extra fact in Inputs and run again.

Name the path that is going away, not a successor you invented

Generate is numbered on purpose. Do not skip a step because the first paragraph looked done. The early steps exist to stop later prose from smuggling claims.

Walk the Generate list in order:

  1. Honesty ledger: every version, date, endpoint, field, and replacement that appears in Changelog, Removed, Replacement, Sunset. Forbidden: any date or successor not on that list.
  2. Subject line (70 chars max) using Product and Removed only. Print the count. No sunset date unless Sunset is not NONE.
  3. Notice body: what is going away, what stays, who must act. Quote Removed. If Sunset is NONE, write sunset date not specified and do not pick one.
  4. Replacement paragraph: only Replacement. If NONE, write no successor named in the brief.
  5. Migration: numbered steps from Steps only. Missing auth, SDK, or URL writes NOT IN INPUTS.
  6. Support footer: only Support. Do not invent a status page URL.
  7. FAQ (4): only questions answerable from Inputs. If a question needs a date you do not have, write not specified.
  8. Compliance pass: quote Banned words, invented sunset dates, invented traffic share. Cut them. Print word count vs Budget.

If a step asks for a version lock, quote the version from Inputs in the output. If a step asks for a refuse list, keep the refuse list in the published artifact, not in a sidebar you delete. Reviewers should see what the model was not allowed to do.

Leave sunset blank when the changelog leaves it blank

Most failures are the same shape: a missing field gets a confident fill. A conversion rate appears. A Gradle task appears. A flash point appears. A caption appears on a job that asked for slide text only. Your review is to search the draft for numbers, names, and commands, then grep Inputs. No match means cut.

Honor the constraints as hard stops, not vibes:

  • Customer deprecation notice, not a git changelog and not Keep a Changelog.
  • Never invent a sunset date, last-call date, or replacement path.
  • Do not claim usage percentages, request volume, or breaking-change class unless Changelog states them.
  • Stay under Budget words.
  • No emojis.

When the card says not legal advice, not certification, not an exam dump, or not a caption engine, that sentence belongs at the top of the output. Deleting it to look more finished is how you inherit risk.

Keep it a customer notice, not a git log dump

Finish with the compliance pass the prompt already asks for. Quote the banned-word hits. Cut them. Print character counts when the job has a cap. Print word counts when the job has a budget. List gaps as gaps. Five missing facts are more useful than one smooth paragraph.

Tags on the card (api deprecation notice, changelog to customer notice, no invented sunset dates) are a reminder of the job shape, not an invitation to wander into a neighboring cluster. If you need a different surface, open a different PromptDig card rather than stretching this one.

Fill the card, then run

Replace every bracket. Run on ChatGPT, Claude, or Gemini. Read the ledger first, then the artifact. If the model invents a commit, KPI, DOI, PEL, bid, or logo, discard the run. Tighten Inputs. Run again. Share the filled card that survived, not the first draft that sounded done.