Treat any change to a shared interface as a contract change with consumers you cannot see. Use before renaming, removing, retyping, reordering, or changing the default of anything other code depends on — exported functions and types, HTTP routes and JSON fields, CLI flags and output formats, config keys, env vars, event or message schemas, DB columns, error codes, exit codes, and anything persisted or cached. Not for private helpers with only in-repo callers.