✍️ Writing
OpenAPI Changelog from Two Spec Snippets (No Invented Endpoints)
Diff two pasted OpenAPI snippets into a human changelog. No invented paths, schemas, or status codes.
0Reviews
Prompt
Act as an API docs editor who only diffs two pasted OpenAPI snippets. You list Added, Changed, Deprecated, and Removed paths and schemas the snippets already show. You do not invent endpoints, status codes, or auth schemes. This is not a full OpenAPI generator and not a marketing release note. You work only from Inputs. Do not invent stats, citations, quotes, URLs, names, IDs, or records that are not in Inputs. Inputs: - Old OpenAPI snippet I lock: [Old] - New OpenAPI snippet I lock: [New] - API name I may name (or UNKNOWN): [Api] - Version labels I may name (or UNKNOWN/UNKNOWN): [Labels] - Words I must not use: [Banned] - What I must never invent (paths, schemas, status codes, auth): [Never] - Output format: [Format] - Language: [Lang] - Max bullets per section I lock: [Max] Generate: 1. Honesty ledger: Api, Labels, path nouns seen in Old and New, Max, Lang. Forbidden: invented paths, schemas, status codes. 2. Diff table: path or schema -> Added|Changed|Deprecated|Removed|Unchanged with evidence quotes from snippets only. 3. Changelog: sections with at most Max bullets. Quote path strings exactly. Missing detail write NOT IN INPUTS. 4. Unchanged note: list Unchanged or write NONE. 5. Refuse list: inventing /v2/users, inventing 429 tables, inventing OAuth scopes, writing SDKs. 6. Compliance pass: quote Banned and Never hits. Cut them. Print bullet counts. Format as Format. Constraints: - OpenAPI changelog from Old and New only. - Never invent endpoints or status codes. - Honor Max. - No emojis.
Instructions
Replace every [bracket] with your details before running. Works on ChatGPT, Claude, and Gemini.
Examples
Example Input
Old: paths: /invoices GET summary List invoices; /invoices/{id} GET summary Get invoice. components schemas Invoice id string amount number.
New: paths: /invoices GET summary List invoices; /invoices/{id} GET summary Get invoice; /invoices/{id}/pdf GET summary Download invoice PDF. components schemas Invoice id string amount number currency string.
Api: Billing API
Labels: UNKNOWN -> UNKNOWN (do not invent 1.2 / 1.3)
Banned: groundbreaking, seamless, #1
Never: invent paths, invent schemas, invent status codes, invent auth schemes
Format: ledger + table + changelog + unchanged + refuse + gaps
Lang: English
Max: 5Example Output
1. Ledger. Api Billing API. Labels UNKNOWN -> UNKNOWN. Old paths: /invoices, /invoices/{id}. New paths: /invoices, /invoices/{id}, /invoices/{id}/pdf. Old schemas: Invoice (id, amount). New schemas: Invoice (id, amount, currency). Max 5. Lang English. Forbidden: invented paths, schemas, status codes, auth, groundbreaking, seamless, #1.
2. Diff table.
/invoices GET -> Unchanged (present in Old and New).
/invoices/{id} GET -> Unchanged (present in Old and New).
/invoices/{id}/pdf GET -> Added (only in New: Download invoice PDF).
Invoice.currency -> Added (only in New: currency string).
Invoice.id / amount -> Unchanged.
Status codes NOT IN INPUTS. Auth NOT IN INPUTS.
3. Changelog.
### Added
- Path /invoices/{id}/pdf GET (summary: Download invoice PDF)
- Schema Invoice.currency (string)
### Changed
- NONE from snippets
### Deprecated
- NONE from snippets
### Removed
- NONE from snippets
Status code tables NOT IN INPUTS. OAuth scopes NOT IN INPUTS.
4. Unchanged. /invoices GET; /invoices/{id} GET; Invoice.id; Invoice.amount.
5. Refuse. Invented /v2/users: refused. Invented 429 matrix: refused. Invented OAuth scopes: refused. SDK stubs: refused. Version labels 1.2/1.3: refused.
6. Compliance. Banned hits none. Bullets Added 2, Changed 0, Deprecated 0, Removed 0 (under Max 5). Format ledger+table+changelog+unchanged+refuse+gaps. Gaps: version labels, status codes, auth, request bodies, examples.
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.