I wrote a draft PEP to formalize the process to become a core dev: RFC: Process to become a core developer.
I also wrote a process as part of my PEP 8015:
Once an existing core developer considers that a contributor is ready to join the core group, to become a core developer, that core developer asks the contributor if they would like to become a core developer. If the contributor is interested in such new responsibilities, a vote is organized.
The vote is reserved to core developers, is public, and is open for 1 week. Usually the core developer who proposes the promotion has to describe the work and skills of the candidate in the description of the vote. A contributor is only promoted if two thirds (>= 2/3) of votes approve ("+1") the promotion. Only “+1” and “-1” votes are accounted; other votes (ex: null, “-0”, “+0.5”) are ignored.
If the candidate is promoted, usually they get a mentor for 1 month to help them to handle new responsibilities.
If the candidate is not promoted, a new vote can be organized later, when the candidate gets the missing skills, for example 6 months later.
I agree with @nad that it would be nice to better formalize the process. The PEP 13 is quite vague on that part: https://www.python.org/dev/peps/pep-0013/#membership