The implementations are part of the Nostr protocol.
Discussion
no, they aren't... protocol is a communication system, interpretation is a separate thing
That's what I originally thought, too, but I stand corrected. It's written right into the ReadMe.md of the protocol.
"Standards may emerge in two ways: the first way is that someone starts doing something, then others copy it; the second way is that someone has an idea of a new standard that could benefit multiple clients and the protocol in general without breaking backwards-compatibility and the principle of having a single way of doing things, then they write that idea and submit it to this repository, other interested parties read it and give their feedback, then once most people reasonably agree we codify that in a NIP which client and relay developers that are interested in the feature can proceed to implement."
Implementation is the first way.
So, you have to fight implementations spreading, to stop changes to the protocol.
Once two clients and one relay have implemented it, it is officially part of the protocol, regardless of what is in the NIP repo.
The clients don't even have to be from different development teams.