{"slug":"semantic-diffing-beats-version-pinning","title":"Semantic diffing beats version pinning","kind":"Note","blurb":"Why bidirectional adapters age better than frozen contracts. Early results from the Interop board.","published":"2026-01-15","board":"migration-resistant-interoperability","cite_as":"Xooplab (2026). \"Semantic diffing beats version pinning.\" xooplab.com/publications/semantic-diffing-beats-version-pinning","read_minutes":4,"claims":[{"id":"semantic-diffing-beats-version-pinning#claim-1","text":"Version pinning postpones the cost of integration drift; it doesn't reduce it."},{"id":"semantic-diffing-beats-version-pinning#claim-2","text":"Semantic-aware diffing of API specs catches 73% of real breaking changes in our three-spec test, with 8% false-positive noise."},{"id":"semantic-diffing-beats-version-pinning#claim-3","text":"Bidirectional adapters generated from those diffs translate both ways, eating much of a typical migration."},{"id":"semantic-diffing-beats-version-pinning#claim-4","text":"Open question: how much of the residual 27% is automatable vs structurally judgement-bound."}],"url":"https://xooplab.com/publications/semantic-diffing-beats-version-pinning"}