The Test Execution Protocol establishes a common interface for passing arguments to test runners, in order to make it easier for tools such as IDEs and CI/CD systems to interact with test frameworks.
See RFC 0001 for an explanation the protocol and the motivation behind why it exists.
Changes to the protocol are made using the RFC process. All changes must have a document written and posted as a pull request to be reviewed publicly before being merged. RFCs act as both documentation and an archaeological record of the changes made to the protocol, and serve as a way for all consumers of the protocol to have a say in what changes get made.