← ClaudeAtlas

padosoft-contract-changeslisted

Use this skill when something other code depends on is about to change shape — a method or function signature, a parameter added, removed, reordered or retyped, a return type, an overridden method, an interface, an event payload, a schema, a response contract, a default value. Also when the user reports a signature-incompatibility error, a caller broken after a refactor, a child class that no longer matches its parent, a fixture failing after a schema was tightened, or asks how to change an API without breaking consumers. It gives the search that finds every dependent, the classification that says what is breaking, and the rule that the whole change lands together. Do not use it for designing an API from scratch, for versioning a public package, or for database migrations (padosoft-database-design covers those).
padosoft/skills · ★ 1 · API & Backend · score 80
Install: claude install-skill padosoft/skills
# Contract changes Changing a signature is not editing a function. It is editing **everything that agreed to it** — callers, overrides, mocks, fixtures, serialised payloads, documentation — and the ones you do not find are the ones that fail later, somewhere else, in a way that does not name you. **The rule: find every dependent before you edit, classify what breaks, and land the whole change as one coherent unit.** --- ## 1. Four kinds of dependent, and only one is obvious | Dependent | Missed because | |---|---| | **Direct callers** | this is the one everybody greps for | | **Overrides** in subclasses, traits, interface implementations | they do not *call* the method, so a call-site search never shows them | | **Test doubles**: mocks, stubs, fakes, spies | they re-declare the signature to imitate it | | **Frozen copies**: fixtures, recorded payloads, contract snapshots, generated clients, documentation | nothing links them to the source at all | Search for all four, and use whatever the ecosystem gives you that understands *symbols* rather than text before falling back to a text search: ```bash # callers rg -n "->\s*<method>\s*\(|::\s*<method>\s*\(|\b<method>\s*\(" src/ tests/ # overrides and re-declarations — the ones the caller search cannot see rg -n "function\s+<method>\s*\(|def\s+<method>\s*\(|<method>\s*\(.*\)\s*[:{]" src/ tests/ # who extends or implements the declaring type rg -n "extends\s+<Type>\b|implements\s+<Type>\b|: <Type>\b" src/ tests/ # frozen copie