Formalization of proposals process

It’s becoming apparent to myself and others that it may be time to improve our governance processes, specifically the process for creating, evaluating, and progressing through proposals. For me this issue has come to a head as I’ve observed this proposal: Motion Request for Neuron Indexing

I felt the proposal progressed far too quickly without appropriately waiting to hear concerns from knowledgeable experts. I fear situations in the future where those without the requisite knowledge to understand what proposals may do to the Internet Computer system as a whole will push potentially harmful proposals through without due process.

I like what @Kyle_Langham said during his Twitter space on the proposal above, something like “I don’t care what the decision is as long as the decision-making process is good.”

I think our decision-making process can be improved. I personally think we should adopt a process similar to other well-known and mature governance processes from popular projects that we already know and love. Here are some examples:

There may be other processes that we should look to as well. Please provide other examples and your feedback for discussion!

Thanks everyone.


Completely agree with aligning on a process, but we can’t force “experts” (aka DFINITY engineers) to take more time than they already comment on all of these proposals. I for one would like to see DFINITY (employees and the foundation) a lot more involved in these proposals, where we even get to see back and forth discussion regarding differing opinions within DFINITY on the public forums - reading these conversations would be a great form of knowledge sharing and a great resource for all of us.

Idea :bulb:-> Maybe the solution is to have someone at DFINITY who will look through the community driven proposals and tag the experts in that specific area of the IC? Then have a minimum number of expert opinions that are required (like reviews of a pull request) before the proposal can be submitted. This could be overriden with a supermajority vote (something like 60% instead of just majority 50%).

It’s probably important to note that when any proposal passes (say the indexing proposal), it’s going to go into the DFINITY backlog for Q-“whenever free time exists” to complete.

As a side note - It’s great to have these community driven discussions and votes, but at the end of the day, can votes really force certain proposals to be prioritized instead of other features? Taking this further, can the community block DFINITY from pushing out a code/proposal update related to governance to the NNS with a vote?

If the answer is no, then these community driven proposals are really just highly suggested opinions of the staked majority - with no teeth to force implementation (what pressure is there other than threatening to dissolve your 8-year neuron :sweat_smile:).


I agree. I have to give credit where due, this is something that @jplevyak has been coaching me on, pushing for and I agree.

To be perfectly frank, I am not 100% sure what the full roadmap in re-factoring our decision making process is, but I believe a reasonable next step that where I can be productive is “let me see if i can get DFINITY buy-in that this is a priority” and lets continue the conversation in the forum so our thoughts are transparent to others in the community.

To be honest, while DFINITY is beset by dozens of priorities, I suspect it will be positively received.


I’m all for continuous improvement. I also think proposals should be clearly presented and well deliberated. If there are existing formal processes that make sense for the IC, then that is fine. What I don’t want to happen is for the proposals process to become onerous. The NNS was intentionally designed to allow a quick decision making process so that defining changes don’t get bogged down in a process that takes months to years. I think that design intent needs to be respected.

My observation is that the current proposals system already meets the majority of the concerns if framed correctly. The IC community cannot make proposals that are actionable with code implementation. We can only make governance motion proposals that are actionable by Dfinity. Hence, all governance proposals currently already fulfill a logical first step in making a change, which is for the author of the proposal to shape it in a way that is capable of being passed so it can then become the responsibility of Dfinity to further shape and implement according to how they see it best fits into their roadmap.

Taking @Kyle_Langham neuron indexing proposal as an example…I think he did all that should be necessary. He is an active community member that people know and respect. Through his activities, people know why he made his proposal. He made a proposal that he felt was reasonable and gave the community time to deliberate. Some points were made on both sides, but the conversation died down. He took all feedback into consideration and decided how he wanted to formally present the proposal. When the proposal was made, a lot of discussion happened again, but arguably at a higher intensity and with many more people involved who really gave it deep consideration. As it sits right now, his proposal will likely pass. He didn’t need to do anything more than he did in terms of proposal work process in order to deliberate, present, and advocate for adoption of his proposal. Now it is in the hands of Dfinity to figure out the next step and come back to the community with feedback and implementation plan.

I don’t see the problem with this work process. We cannot expect that governance motion proposals that pass are a final decision that becomes law. There is no code change with a governance motion proposal. Implementation already has to be a multi step process. Features and unintended consequences will be discovered along the path to implementation and likely will come back for further deliberation.

It is easy to be a critic of a proposal. It is hard to lead an actionable and well deliberated proposal. There is a very humanizing and emotional roller coaster that a proposal author experiences throughout the process of making and advocating for a proposal. Commenting on proposals during deliberation is the responsibility of the community and we all have an opinion that can be easily and freely shared. It is up to the author of the proposal to take those comments into consideration in a way that they feel is most actionable toward enabling their proposal to pass. If they do a good job, then it will pass. If they don’t, then it will fail and they will have to decide if and how they want to try again or if they should give up. I think we should leave a lot of room for authors to define the strategy they think works best for their proposal. They are the one doing the work to initiate the change that they believe is important.


I fully support @lastmjs request to define a formal process. I believe it will facilitate better planning and more effective communication. I also think Dfinity should clearly state how they plan to approach requests from the community. @Jan suggested that more information on this would be coming soon, and I look forward to reading about that.

Generally speaking, I have concerns about the direction our governance system is heading. During the last half of 2021, and the first couple months of this year, it seemed like the community and Dfinity had found a nice middle ground on how proposals should be presented, deliberated, and voted on. Over the last few weeks there has been a big push for increasing the volume of NNS governance proposals being submitted. If that narrative persists, I worry that the quality of governance proposals will be diluted to the point that the NNS effectively becomes a proposal mill.

My hope is that these formal processes might establish some minimum acceptance criteria; making it easier for manual voters to assess the quality of each proposal. For example, the TC39 process referenced by @lastmjs has a “Stage 0” whereby anyone is allowed to submit an idea to be accepted into the specification. In the context of the NNS, I do not believe these “strawperson” proposals should be submitted as governance proposals. In my mind, these proposals would be submitted to the forum, and only submitted to the NNS once the entrance criteria had been met. This way, the stakeholders can develop a better understanding of what they are voting on, and Dfinity can help the proposal author shape their proposal so it meets the entrance criteria.

I do not presume to tell Dfinity how they should handle their own tasking. I just find it daunting, as someone who has committed to voting manually on governance proposals, to keep up with what I believe will eventually be an overwhelming tidal wave of requests and suggestions.


A simple step would be a standard syntax for the title of a Governance discussion. The last three (currently running) votes are all presented differently:

  • [Feedback Wanted] Security Patch Policy and Procedure (posted in Developers, Dfinity)
  • Request for feedback: Compounding Maturity Proposal (posted in Governance, Dfinity)
  • Motion Request for Neuron Indexing (posted in Governance, Kyle Langham)

Also a minimum period between a discussion opening and then a proposal being formed followed by a minimum period before it’s submission to the NNS would be helpful.


Thank you Jordan for getting this conversation started. I plan to write more thoughts on a potential solution in later posts (once I’ve read and understood the links provided), but for now I want to define the problem from my perspective, using my recent proposal as a framework for my After Action Review. Sometimes defining the problem and getting agreement on it helps to define the path forward on the solution.

Goal: All rejected proposals in the NNS should be rejected on account of the proposal content, not the process followed to generate and socialize the proposal.

All voters on the NNS should feel empowered to vote Nay on any proposal that was generated and socialized in a process for which they felt was insufficient. Therefore, to accomplish the above goal, we, as a community, should agree on standards for which every governance proposal process should judged against. Defining those standards, getting broad agreement on them and documenting them for future reference and amendment should be the goal of this discussion.

Again, I want to hold back discussing solutions in this post so I can better understand possible solutions. However, to help define the problem more, below are the ways in which I believe my proposal process (for neuron indexing) could have been improved. These are just my own self-reflections and I certainly welcome any and all additional deficiencies that the community wants to add to this list.

Deficiencies in my proposal process for neuron indexing:

  • Technology and Opportunity Costs - My proposal should have included a discussion around technological and opportunity costs of implementing the proposal.
  • Key Opinion Leaders - It’s important for this community to have KOLs across a broad spectrum (technology, economics, etc). My proposal, and the subsequent discussion in the forum and through social media, lacked detailed opinions from KOLs.
  • Relationship between Dfinity and community - While my proposal was phrased as a “request for prioritization” to Dfinity, in retrospect I’m not sure how Dfinity could interpret a passed proposal as only a “request”. It’s a moot point in this instance since Dfinity voted in favor of the proposal, however I worry that I may have set a precedent where the NNS could be used as a mechanism to control Dfinity, which violates the model that the Internet Computer and Dfinity are separate entities, with neither controlling each other. I think it’s important that we (Dfinity and the NNS community) really define the working relationship between each party so that we can operate proposals in a manner that allow both Dfinity and the Internet Computer to pursue their intended goals.