There are a lot of topics and questions to cover, some are more important to tackle early, others can come at a later stage.
How votes are conducted is something that can better be resolved once it’s clear who is voting, and what they are supposed to be voting on. And if there are any particular requirements surrounding the actual process itself. Will it need to support remote participation? Will it need to be privacy preserving? That sort of thing.
There will be trade-offs required, no matter the approach taken. In order to figure out how to make the right trade-offs and avoid them being subjective, biased, or arbitrary, it makes sense to have a set of basic principles, purpose, and objectives established to guide the project.
As these have not been written yet, how about we make an attempt to do that? Perhaps set a fixed deadline for completion, create a page on the wiki or a pull request, invite anyone and everyone to participate, solicit a working group to take a stab at writing the first draft, schedule all hands meetings in a dedicated gitter channel to discuss and debate, and then, once the deadline has passed, have the core dev team (i.e. the existing technocratic council, however these are defined) vote to “ratify” it, and then merge it?
Once there is such a document and it’s clear what it is that should guide the project, it then becomes easier to understand where to go from there. What do you think?
PS: Not only does The Main Programmer model not scale well, it’s also not particularly fault tolerant. Even if we decide to go with this model, a lot of things still needs figuring out surrounding how it works in the case of the main programmer disappearing, being hit by a bus, or simply becoming burned out. What happened in the world of Python a few days ago is a good deterring example, I think.
PPS: Regarding foundations, I put together a wiki page weighing different use cases and approaches. Please contribute/comment!