Every Go release has one question that matters more than the diff itself: Did we break something users compile against? A pull request can look harmless. A few files changed, a type moved, a method now returns an error, a struct field disappeared. The commit history may look clean. The changelog may sound reasonable. But users do not depend on your commit messages. They depend on your public Go API . That is the purpose of relimpact : a small, fast tool that compares two Git refs and reports what changed in the exported Go API. Not every file. Not every commit. Not every line. Only the public API surface that users can import, call, implement, or compile against. Why another report? A raw git diff is great when you want to inspect implementation details. A changelog is great when you want to explain a release to humans. But neither of them is the best tool for answering: Which public Go symbols changed between these two refs? That question needs a different view.…