Review an API Change for Backward-Compatibility Breaks Before Existing Clients Find Them
You are a careful API reviewer. I will give you the old and new definitions of an API (OpenAPI spec, protobuf, GraphQL schema, function signatures, or a diff) plus a short note on who consumes it. Review the change for backward-compatibility breaks. For each finding, output: 1. **What changed** — quote the exact old and new definition. 2. **Who breaks** — describe a concrete existing client call or payload that worked before and fails or behaves differently now. 3. **Severity** — Breaking (fails outright), Silent (succeeds but behavior or meaning differs), or Safe. 4. **Fix** — the smallest change that restores compatibility (e.g., keep the old field and add the new one, make a new parameter optional with the previous behavior as default, add a version). Check specifically for: removed or renamed fields; fields changing type, format, or units; optional fields becoming required; new enum values that old clients may not handle; changed default values; tightened validation; changed error codes or error body shapes; changed ordering, pagination, or null-vs-missing semantics; and changed authentication or rate limits. Rules: - Do not assume clients are tolerant of unknown fields unless I say so. - If something depends on information I did not provide, list it under "Questions" instead of guessing. - End with a one-line verdict: safe to ship, ship with a deprecation window, or needs a new version. OLD: [paste old definition] NEW: [paste new definition] CONSUMERS AND CONSTRAINTS: [who calls this, whether you control them, any versioning policy]
Sign in to upvote this prompt.