Review an API change for breaking changes
Reviews an API diff or spec for changes that break existing clients, such as removed fields, changed semantics, new defaults, error changes and versioning gaps. Use before releasing.
Schema diff tools catch removed fields and renamed operations. They miss the changes that break clients quietly: a field that is still there but now nullable, a default that changed, a new required request field, an enum value older clients cannot parse, a list that is now paginated, an error code that moved from 404 to 403, a stricter validation rule, or a different ordering that a client relied on. Whether a change breaks depends on the clients: an old mobile app version in the field cannot be upgraded, while internal services deployed in lockstep can absorb more.
Review this API change for client compatibility:
Only if [CLIENTS] is given: Clients:
Go through every change and classify it as breaking, risky (breaks some reasonable clients) or safe. Check at least:
- Removed or renamed: operations, endpoints, fields, query parameters, enum values, headers, GraphQL types and fields, proto fields (and whether removed proto field numbers are marked
reserved). - Type and shape: type changes, int to string ids, number precision, nullable or optional changes in either direction (response field becoming optional breaks readers; request field becoming required breaks writers), object to array, wrapping in an envelope, pagination added.
- Semantics: a changed default, units, time zone, rounding, sort order, idempotency, side effects, or meaning of an existing field.
- Validation: stricter formats, lengths, ranges, or newly rejected values.
- Errors: changed status codes, error body shape or error codes clients branch on; new error cases on existing operations.
- Enums: new values in responses (break clients that switch exhaustively unless they were told to expect unknown values).
- Auth and limits: new scopes or permissions required, lower rate limits, smaller maximum page or payload sizes.
- Versioning: whether the change is shipped behind a new version, a feature flag or a header, and whether the deprecation of the old behaviour is signalled.
For each breaking or risky change, give the specific client code that would fail and a compatible alternative (add a new field instead of changing one, accept both forms during a transition, version the operation, keep the old error code).
- Cite the exact location (path, operation, field or line) for every change you classify.
- Judge tolerance from the clients given; if none are given, assume external clients that cannot be upgraded in lockstep and say so.
- Do not call a change safe because a diff tool would; reason about semantics.
- Do not flag pure additions of optional request fields or new operations as breaking.
- Separate what you verified from what you inferred. Mark inferences as such.
- When you do not know, say "I don't know" once and state what would settle it.
Verdict
One line: compatible | compatible with risks | breaking, and whether a version bump is required.
Breaking changes
A table: location, change, which clients break and how, compatible alternative.
Risky changes
Same columns.
Safe changes
Bullets.
Recommended path
Numbered steps to ship the intent without breaking clients, or the versioning and deprecation plan if a break is unavoidable.
Tests to add
Contract or compatibility tests that would catch these in CI next time.
1 required value still a placeholder; the assistant will ask for it.
details
- kind
- Prompt: a task you run by name to get one finished thing back
- domain
- Software engineering
- category
- Code review
- level
- Intermediate
- made for
- Backend engineer, Tech lead / staff engineer, Software architect, Developer advocate
- risk
- read-only
- version
- v1.0.0 · incubating
- reviewed
- 2026-10-03
- works in
- Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Antigravity, OpenCode, Windsurf, Zed, Continue, AGENTS.md, ChatGPT, claude.ai
use in
npx @hermes-hq/hodios install review-api-breaking-changes --target claude-codenpx skills add hermes-hq/hodios-dist --skill review-api-breaking-changes -a claude-codeclaude plugin marketplace add hermes-hq/hodios-distclaude plugin install hodios-software-engineering@hodiosThe plugin brings every entry in this domain at once.
pairs well with
All of Code reviewBackend engineer
Acts as a backend engineer focused on correct data handling, clear API contracts, explicit failure modes and services that are easy to operate. Use as a builder or reviewer persona for server code.
backend-engineerWrite an API deprecation notice
Writes the notice to API consumers for a deprecation or breaking change, covering what changes, the timeline, migration steps and where to get help. Use before announcing an API change.
write-api-deprecation-noticePlan a breaking API version change
Plans a breaking API version change with a deprecation timeline, compatibility shims, a client migration guide and adoption telemetry. Use before changing anything clients rely on.
migrate-api-versionWrite consumer-driven contract tests
Writes consumer-driven contract tests between two services and the CI gate that runs them, so a breaking API change fails before deploy. Use when services that call each other ship independently.
write-contract-testsDesign an API contract
Designs an API contract before implementation, with operations, schemas, errors, pagination, idempotency and evolution rules. Use when adding an API that other teams or clients will call.
design-api-contractReview a pull request
Reviews a pull request diff for correctness bugs, risky changes and missing tests, and returns ranked findings. Use before merging a PR, branch or diff.
review-pull-request