Open sembrestels opened 4 years ago
This is exactly what I was thinking. To visualize it in a graph, and use green, yellow, and red colors to show added, modified, and deleted elements, as in a git diff
I want this 🙌
Thanks for putting the idea together.
Some quick thoughts:
Thanks for your interest @john-light.
I like the general idea. If we can move much of the proposal workflow off of 3rd party platforms and into the Aragon client I think that's a UX win.
I like the idea of a suite that provides simple modules that work well together. I see Proposals as the new Voting app, an app that will use a Voting app underneath but will provide a lot more context and discussion to what people is voting. I think that it is better to keep Aragon Client thin, and move this kind of functionality to small apps that work as intended.
I would advocate for moving as much of this off-chain as possible.
Drafts, proposals, and comments will live on IPFS. We will only store hashes that are really necessary on chain (probably drafts and final proposals), and we'll try systems like IPFS pubsub and Swarm's PSS for comments, or ultimately relay on 3box discussions.
you may be interested in http://lexon.tech/
Wow that's lit! It will require a lot of research to to put into an aragon app, so letting it out of the scope for now, but it will be a source of inspiration! Thanks for sharing!
Drafts, proposals, and comments will live on IPFS. We will only store hashes that are really necessary on chain (probably drafts and final proposals)
Right, but this still requires a transaction on-chain. We should think of going on-chain as a last-resort mechanism, when no other solution will do. At least for keeping track of drafts and comments, I'm sure there are many solutions that don't require going on chain.
I think it has sense to write comments that change slightly the proposal and treat them as drafts, yes! I'll be exploring Autark's discussions app too to see if it fits our use case properly.
The Agora suite is a set of Aragon apps that prettend to help DAO governance.
The apps would be:
Documents app
A document app contains a set of pages (title + ipfs hash) that can be created and updated by entities with CREATE_PAGE and EDIT_PAGE permissions respectively. The Agreements app in the above scheme could just be a plain Documents app.
The Documents app could be used to storing meeting minutes, invoices and other important data for the DAO, but the most important thing are the Agreements, that need a specific format to be useful and easily accessible: Agreements should only contain long-term decisions that affect the DAO.
Proposals app can create, modify agreements, and/or do anything else (transfers, DAO structure changes...). So, for example AGP-1 would be an agreement, and in each ANV people can vote on proposed changes (proposals) to it's foundational text.
Here @burrrata was thinking of using p2pmodels wiki app for a DAO that handles ANVs vs using GitHub. Essentially some token holders would have read/write access to the wikis (AGP editors) and then some token holders (ANT holders) would have the ability to vote to approve or deny wiki entries (AGPs).
Agreements
An app to publish the agreements (wet code) of a DAO and how they are reflected in the DAO structure (dry code).
The agreement management in particular would be quite useful for legal wrappers, there is a bit of a parallel effort that should be starting soon within A1 relateted to DAO bylaws and the aragon court. A1's agreements would be compatible with this vision?
We don't need a specific Agreements app at the moment, because the general use case is covered with a Documents app. In the future we can think on specific features that an Agreements app could cover, such as including dry code checks to the state of the DAO, an ACL oracle that prevents certain actions that don't comply with the previous agreements, etc.
Managing privacy issues
The easier way I can think of storing private data on IPFS is with a symmetric key (in which DAO members would share a password that can decode the invoices and other private data). A more interesting scheme could be done with https://www.nucypher.com/ and member's public keys, but it really depends on the sensitivity of the data that we want to store, how bad would be a data breach, what metadata and how important it is, etc.
Proposals
A proposals app is a documents app that wrapps a voting app (any voting app that can forward an EVM script). So we have proposals published and discussed on IPFS (Autark was working on something similar called Discussions), including or not an action (a transfer, a change in the DAO...), and when the proposal is finalized it can be voted. If we succeed, the AGP process could potentially migrate from github to a DAO with the Agora Suite. The Proposals app alone could also be used to wrap any existing Voting app providing a lot more of context to votes in any DAO.
acceptProposal()
function). This means that the Proposals app can be the "new" Voting app that have most of the permissions of the organization, because it can "wrap" a Voting app, and improves the process of proposing changes to the DAO.Proposals workflow
An intuitive workflow for this app would be that you perform an action (eg attempt to make a finance transfer) and it prompts you to create a draft proposal first, but this is not possible in Aragon because
forward()
does not accept parameters other than the EVM script, so we will approach this problem in two ways:Proposals vs Agreements
Meeting minutes, invoices, etc. should not be included as DAO agreements, so we can use the Proposals app to log them (we can propose anything, they do not need to contain an EVM script), or they can be stored in another instance of the Documents app.
User stories
Proposals roadmap
How would the EVM script be generated? At the beginning only payment scripts would be generated by the Proposals app. On subsequent developments, the Blueprints app could propose EVM scripts that change apps, permissions and token holders all at once.
Blueprints
About the app to design the DAO it would be great if it would be a kind of graph of dependies of each app with they permissions...maybe comparing current DAO graph and what the modified DAO graph will look like.
This is exactly what I was thinking. To visualize it in a graph, and use green, yellow, and red colors to show added, modified, and deleted elements, as in a git diff these diffs generated by the "Blueprints" app could be exposed in the "Proposals" app among with some text to contextualize, and then proposals can be validated using the normal voting app, or other apps such as the dandelion or conviction voting, depending on how the "Proposals" app is configured
Connections
An app to interconnect different DAOs' apps with permissions, simplifying complex governances.
Thanks to @lkngtn, @burrrata, @0xGabi, @rperez89, and @louisgrx for helping refine this idea though their useful questions and comments.